From 44f897f28ee2d9499ea4e7d3b53c6b62daf2e93b Mon Sep 17 00:00:00 2001 From: Erik Reckase Date: Fri, 24 Jun 2011 09:59:14 -0600 Subject: [PATCH] fixed enable/disable chaos 'if chain' in iter kernel function --- cuburn/code/iter.py | 2 +- cuburn/render.py | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/cuburn/code/iter.py b/cuburn/code/iter.py index 7a867a2..721daa7 100644 --- a/cuburn/code/iter.py +++ b/cuburn/code/iter.py @@ -92,7 +92,7 @@ void iter(mwc_st *msts, iter_info *infos, float4 *accbuf, float *denbuf) { while (nsamps > 0) { float xfsel = mwc_next_01(&rctx); - {{if packer.get("cp.chaos_used")==True}} + {{if features.chaos_used}} {{for density_row_idx, prior_xform_idx in enumerate(features.std_xforms)}} {{for density_col_idx, this_xform_idx in enumerate(features.std_xforms)}} if (last_xf_used == {{prior_xform_idx}} && diff --git a/cuburn/render.py b/cuburn/render.py index 5b7b403..3664a78 100644 --- a/cuburn/render.py +++ b/cuburn/render.py @@ -46,11 +46,8 @@ class Genome(object): # Chaos support num_std_xf = len(dens) self.chaos_densities = np.zeros( (num_std_xf,num_std_xf) ) - self.chaos_used = False for r in range(num_std_xf): chaos_row = np.array([ctypes_genome.chaos[r][c] for c in range(num_std_xf)]) - if np.any(chaos_row != 1.0): - self.chaos_used = True chaos_row = chaos_row * dens chaos_row /= np.sum(chaos_row) chaos_row = [np.sum(chaos_row[:i+1]) for i in range(len(dens))] @@ -458,6 +455,14 @@ class Features(object): self.acc_height = genomes[0].height + 2 * self.gutter self.acc_stride = 32 * int(math.ceil(self.acc_width / 32.)) self.std_xforms = filter(lambda v: v != self.final_xform_index, range(self.nxforms)) + self.chaos_used = False + for cp in genomes: + for r in range(len(self.std_xforms)): + for c in range(len(self.std_xforms)): + if cp.chaos[r][c] != 1.0: + self.chaos_used = True + + class XFormFeatures(object): def __init__(self, xforms, xform_id):