# SCM Repository

# View of /branches/vis12/test/hlic/hlic-BUG3.diderot

Parent Directory | Revision Log

Revision

File size: 1417 byte(s)

**1767**- (**download**) (**annotate**)*Sat Mar 24 12:09:41 2012 UTC*(7 years, 10 months ago) by*jhr*File size: 1417 byte(s)

Switch out to vec3, so that it matches the API used by main.c

// Appears to be fixed by CFG fix for BUG8 int imgSize = 200; real h = 0.25; // step size of integration int stepNum = 15; // take this many steps both upstream and downstream field#1(2)[2] V = load("tor2slice-evec.nrrd") ⊛ ctmr; field#0(2)[] R = load("tor2slice-rand.nrrd") ⊛ tent; strand LIC (int xi, int yi) { real xx = lerp(0.0, 79.0, -0.5, real(xi), real(imgSize)-0.5); real yy = lerp(0.0, 79.0, -0.5, real(yi), real(imgSize)-0.5); vec2 pos0 = [xx,yy]; vec2 pos = pos0; vec2 step = [0.0,0.0]; output vec3 out = [0.0,0.0,0.0]; real sum = 0.0; int num = 0; real dir = 1.0; vec2 vec0 = [0.0,0.0]; vec2 vec1 = [0.0,0.0]; tensor[2,2] ten = [[0.0,0.0],[0.0,0.0]]; // BUG: if you don't comment out the variable declaration line above, // you get a segfault when running the (single-threaded C-version) executable // but if you put the declaration inside update, it works ok update { step = h*dir*V(pos); if (inside(pos + step, V)) { pos += step; } if (num == stepNum) { if (dir > 0.0) { num = 0; pos = pos0; dir = -1.0; } } if (num == stepNum && dir < 0.0) { stabilize; } sum += R(pos); num += 1; } stabilize { out = [sum,0.0,0.0]; } } initially [ LIC(xi, yi) | yi in 0..(imgSize-1), xi in 0..(imgSize-1) ];

root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |

Powered by ViewVC 1.0.0 |