Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] View of /branches/vis12/test/square-detect/square_score-15.log
ViewVC logotype

View of /branches/vis12/test/square-detect/square_score-15.log

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1928 - (download) (annotate)
Sat Jun 23 18:09:34 2012 UTC (7 years, 4 months ago) by jhr
File size: 829250 byte(s)
  converting to use "image" instead of "load" for image nrrd loading
/* Program start */
field#2(2)[] T = ⊛<#2; %2; $[]> (bspln3, load<%2; $[]> ("square-template.nrrd"));
field#2(2)[] F = ⊛<#2; %2; $[]> (bspln3, load<%2; $[]> ("square-rotate.nrrd"));
vec2 v00 = [unary -<$[]> (0.5e0), unary -<$[]> (0.5e0)];
vec2 v01 = [unary -<$[]> (0.5e0), unary -<$[]> (0.15e0)];
vec2 v02 = [unary -<$[]> (0.5e0), 0.15e0];
vec2 v03 = [unary -<$[]> (0.5e0), 0.5e0];
vec2 v04 = [unary -<$[]> (0.15e0), 0.5e0];
vec2 v05 = [unary -<$[]> (0.15e0), unary -<$[]> (0.15e0)];
vec2 v06 = [unary -<$[]> (0.15e0), 0.15e0];
vec2 v07 = [unary -<$[]> (0.15e0), 0.5e0];
vec2 v08 = [0.15e0, unary -<$[]> (0.5e0)];
vec2 v09 = [0.15e0, unary -<$[]> (0.15e0)];
vec2 v10 = [0.15e0, 0.15e0];
vec2 v11 = [0.15e0, 0.5e0];
vec2 v12 = [0.5e0, unary -<$[]> (0.5e0)];
vec2 v13 = [0.5e0, unary -<$[]> (0.15e0)];
vec2 v14 = [0.5e0, 0.15e0];
strand R (int i, int j, int k)
{
  vec3 t = [-<$[]> (/ ($i2r (i), 0.60e2), 0.5e0), -<$[]> (/ ($i2r (j), 0.60e2), 0.5e0), -<$[]> (/ ($i2r (k), 0.60e2), 0.5e0)];
  output real score = 0.0;
  vec2 r0 = [0.0, 0.0];
  vec2 r1 = [0.0, 0.0];
  vec2 pos = [0.0, 0.0];
  Update
  {
  r0 = [-<$[]> (0.1e1, * (* (0.2e1, t[2]), t[2])), * (* (unary -<$[]> (0.2e1), sqrt (-<$[]> (0.1e1, * (t[2], t[2])))), t[2])];
    r1 = [* (* (0.2e1, sqrt (-<$[]> (0.1e1, * (t[2], t[2])))), t[2]), -<$[]> (0.1e1, * (* (0.2e1, t[2]), t[2]))];
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v00), •<$[2]; $[2]; $[]> (r1, v00)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v00, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v00)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v00))));
      }
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v01), •<$[2]; $[2]; $[]> (r1, v01)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v01, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v01)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v01))));
      }
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v02), •<$[2]; $[2]; $[]> (r1, v02)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v02, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v02)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v02))));
      }
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v03), •<$[2]; $[2]; $[]> (r1, v03)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v03, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v03)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v03))));
      }
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v04), •<$[2]; $[2]; $[]> (r1, v04)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v04, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v04)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v04))));
      }
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v05), •<$[2]; $[2]; $[]> (r1, v05)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v05, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v05)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v05))));
      }
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v06), •<$[2]; $[2]; $[]> (r1, v06)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v06, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v06)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v06))));
      }
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v07), •<$[2]; $[2]; $[]> (r1, v07)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v07, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v07)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v07))));
      }
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v08), •<$[2]; $[2]; $[]> (r1, v08)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v08, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v08)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v08))));
      }
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v09), •<$[2]; $[2]; $[]> (r1, v09)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v09, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v09)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v09))));
      }
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v10), •<$[2]; $[2]; $[]> (r1, v10)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v10, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v10)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v10))));
      }
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v11), •<$[2]; $[2]; $[]> (r1, v11)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v11, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v11)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v11))));
      }
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v12), •<$[2]; $[2]; $[]> (r1, v12)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v12, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v12)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v12))));
      }
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v13), •<$[2]; $[2]; $[]> (r1, v13)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v13, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v13)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v13))));
      }
    pos = +<$[2]> ([•<$[2]; $[2]; $[]> (r0, v14), •<$[2]; $[2]; $[]> (r1, v14)], [t[0], t[1]]);
    if inside<#2; %2; $[]> (v14, T) if inside<#2; %2; $[]> (pos, F) else false {
    score = +<$[]> (score, * (-<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v14)), -<$[]> (@<#2; %2; $[]> (F, pos), @<#2; %2; $[]> (T, v14))));
      }
    stabilize;
    }
  
  Stabilize
  {
  }
  
}
/* Program end */
/* Simplified Program start */
{
  field#2(2)[] T00A3;
  field#2(2)[] F00AC;
  vec2 v0000B5;
  vec2 v0100B8;
  vec2 v0200BB;
  vec2 v0300BD;
  vec2 v0400BF;
  vec2 v0500C1;
  vec2 v0600C4;
  vec2 v0700C6;
  vec2 v0800C8;
  vec2 v0900CA;
  vec2 v1000CC;
  vec2 v1100CD;
  vec2 v1200CE;
  vec2 v1300D0;
  vec2 v1400D2;
  _t02B2 = bspln30095 ();
  _t02B3 = "square-template.nrrd";
  _t02B4 = load0080<%2; $[]> (_t02B3);
  T00A3 = ⊛003A<#2; %2; $[]> (_t02B2, _t02B4);
  _t02B5 = bspln30095 ();
  _t02B6 = "square-rotate.nrrd";
  _t02B7 = load0080<%2; $[]> (_t02B6);
  F00AC = ⊛003A<#2; %2; $[]> (_t02B5, _t02B7);
  _t02B8 = 0.5e0;
  _t02B9 = unary -004D<$[]> (_t02B8);
  _t02BA = 0.5e0;
  _t02BB = unary -004D<$[]> (_t02BA);
  v0000B5 = [_t02B9, _t02BB];
  _t02BC = 0.5e0;
  _t02BD = unary -004D<$[]> (_t02BC);
  _t02BE = 0.15e0;
  _t02BF = unary -004D<$[]> (_t02BE);
  v0100B8 = [_t02BD, _t02BF];
  _t02C0 = 0.5e0;
  _t02C1 = unary -004D<$[]> (_t02C0);
  _t02C2 = 0.15e0;
  v0200BB = [_t02C1, _t02C2];
  _t02C3 = 0.5e0;
  _t02C4 = unary -004D<$[]> (_t02C3);
  _t02C5 = 0.5e0;
  v0300BD = [_t02C4, _t02C5];
  _t02C6 = 0.15e0;
  _t02C7 = unary -004D<$[]> (_t02C6);
  _t02C8 = 0.5e0;
  v0400BF = [_t02C7, _t02C8];
  _t02C9 = 0.15e0;
  _t02CA = unary -004D<$[]> (_t02C9);
  _t02CB = 0.15e0;
  _t02CC = unary -004D<$[]> (_t02CB);
  v0500C1 = [_t02CA, _t02CC];
  _t02CD = 0.15e0;
  _t02CE = unary -004D<$[]> (_t02CD);
  _t02CF = 0.15e0;
  v0600C4 = [_t02CE, _t02CF];
  _t02D0 = 0.15e0;
  _t02D1 = unary -004D<$[]> (_t02D0);
  _t02D2 = 0.5e0;
  v0700C6 = [_t02D1, _t02D2];
  _t02D3 = 0.15e0;
  _t02D4 = 0.5e0;
  _t02D5 = unary -004D<$[]> (_t02D4);
  v0800C8 = [_t02D3, _t02D5];
  _t02D6 = 0.15e0;
  _t02D7 = 0.15e0;
  _t02D8 = unary -004D<$[]> (_t02D7);
  v0900CA = [_t02D6, _t02D8];
  _t02D9 = 0.15e0;
  _t02DA = 0.15e0;
  v1000CC = [_t02D9, _t02DA];
  _t02DB = 0.15e0;
  _t02DC = 0.5e0;
  v1100CD = [_t02DB, _t02DC];
  _t02DD = 0.5e0;
  _t02DE = 0.5e0;
  _t02DF = unary -004D<$[]> (_t02DE);
  v1200CE = [_t02DD, _t02DF];
  _t02E0 = 0.5e0;
  _t02E1 = 0.15e0;
  _t02E2 = unary -004D<$[]> (_t02E1);
  v1300D0 = [_t02E0, _t02E2];
  _t02E3 = 0.5e0;
  _t02E4 = 0.15e0;
  v1400D2 = [_t02E3, _t02E4];
}
Array
  {
    _t0426 = 0;
    _t0427 = 60;
    _t0428 = 0;
    _t0429 = 60;
    _t042A = 0;
    _t042B = 60;
  }
  for int i02AF = _t0426 .. _t0427
    for int j02B0 = _t0428 .. _t0429
      for int k02B1 = _t042A .. _t042B
        { }
        new R(i02AF, j02B0, k02B1);
strand R (int i00D5, int j00D4, int k00D3)
{{
    vec3 t00D6;
    output real score00DA;
    vec2 r000DB;
    vec2 r100DC;
    vec2 pos00DD;
    _t02E5 = $i2r009B (i00D5);
    _t02E6 = 0.60e2;
    _t02E7 = /002A (_t02E5, _t02E6);
    _t02E8 = 0.5e0;
    _t02E9 = -0016<$[]> (_t02E7, _t02E8);
    _t02EA = $i2r009B (j00D4);
    _t02EB = 0.60e2;
    _t02EC = /002A (_t02EA, _t02EB);
    _t02ED = 0.5e0;
    _t02EE = -0016<$[]> (_t02EC, _t02ED);
    _t02EF = $i2r009B (k00D3);
    _t02F0 = 0.60e2;
    _t02F1 = /002A (_t02EF, _t02F0);
    _t02F2 = 0.5e0;
    _t02F3 = -0016<$[]> (_t02F1, _t02F2);
    t00D6 = [_t02E9, _t02EE, _t02F3];
    score00DA = 0.0;
    _t02F4 = 0.0;
    _t02F5 = 0.0;
    r000DB = [_t02F4, _t02F5];
    _t02F6 = 0.0;
    _t02F7 = 0.0;
    r100DC = [_t02F6, _t02F7];
    _t02F8 = 0.0;
    _t02F9 = 0.0;
    pos00DD = [_t02F8, _t02F9];
  }
  Update
  {
    _t02FA = 0.1e1;
    _t02FB = 0.2e1;
    _t02FC = 2;
    _t02FD = t00D6[_t02FC];
    _t02FE = *001C (_t02FB, _t02FD);
    _t02FF = 2;
    _t0300 = t00D6[_t02FF];
    _t0301 = *001C (_t02FE, _t0300);
    _t0302 = -0016<$[]> (_t02FA, _t0301);
    _t0303 = 0.2e1;
    _t0304 = unary -004D<$[]> (_t0303);
    _t0305 = 0.1e1;
    _t0306 = 2;
    _t0307 = t00D6[_t0306];
    _t0308 = 2;
    _t0309 = t00D6[_t0308];
    _t030A = *001C (_t0307, _t0309);
    _t030B = -0016<$[]> (_t0305, _t030A);
    _t030C = sqrt0091 (_t030B);
    _t030D = *001C (_t0304, _t030C);
    _t030E = 2;
    _t030F = t00D6[_t030E];
    _t0310 = *001C (_t030D, _t030F);
    r000DB = [_t0302, _t0310];
    _t0311 = 0.2e1;
    _t0312 = 0.1e1;
    _t0313 = 2;
    _t0314 = t00D6[_t0313];
    _t0315 = 2;
    _t0316 = t00D6[_t0315];
    _t0317 = *001C (_t0314, _t0316);
    _t0318 = -0016<$[]> (_t0312, _t0317);
    _t0319 = sqrt0091 (_t0318);
    _t031A = *001C (_t0311, _t0319);
    _t031B = 2;
    _t031C = t00D6[_t031B];
    _t031D = *001C (_t031A, _t031C);
    _t031E = 0.1e1;
    _t031F = 0.2e1;
    _t0320 = 2;
    _t0321 = t00D6[_t0320];
    _t0322 = *001C (_t031F, _t0321);
    _t0323 = 2;
    _t0324 = t00D6[_t0323];
    _t0325 = *001C (_t0322, _t0324);
    _t0326 = -0016<$[]> (_t031E, _t0325);
    r100DC = [_t031D, _t0326];
    _t0327 = •0079<$[2]; $[2]; $[]> (r000DB, v0000B5);
    _t0328 = •0079<$[2]; $[2]; $[]> (r100DC, v0000B5);
    _t0329 = [_t0327, _t0328];
    _t032A = 0;
    _t032B = t00D6[_t032A];
    _t032C = 1;
    _t032D = t00D6[_t032C];
    _t032E = [_t032B, _t032D];
    pos00DD = +000F<$[2]> (_t0329, _t032E);
    bool _t032F;
    _t0330 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t0330
      _t032F = inside007D<#2; %2; $[]> (v0000B5, T00A3);
    else
      _t032F = false;
    if _t032F {
      _t0331 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0332 = @0060<#2; %2; $[]> (T00A3, v0000B5);
      _t0333 = -0016<$[]> (_t0331, _t0332);
      _t0334 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0335 = @0060<#2; %2; $[]> (T00A3, v0000B5);
      _t0336 = -0016<$[]> (_t0334, _t0335);
      _t0337 = *001C (_t0333, _t0336);
      score00DA = +000F<$[]> (score00DA, _t0337);
    }
    _t0338 = •0079<$[2]; $[2]; $[]> (r000DB, v0100B8);
    _t0339 = •0079<$[2]; $[2]; $[]> (r100DC, v0100B8);
    _t033A = [_t0338, _t0339];
    _t033B = 0;
    _t033C = t00D6[_t033B];
    _t033D = 1;
    _t033E = t00D6[_t033D];
    _t033F = [_t033C, _t033E];
    pos00DD = +000F<$[2]> (_t033A, _t033F);
    bool _t0340;
    _t0341 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t0341
      _t0340 = inside007D<#2; %2; $[]> (v0100B8, T00A3);
    else
      _t0340 = false;
    if _t0340 {
      _t0342 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0343 = @0060<#2; %2; $[]> (T00A3, v0100B8);
      _t0344 = -0016<$[]> (_t0342, _t0343);
      _t0345 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0346 = @0060<#2; %2; $[]> (T00A3, v0100B8);
      _t0347 = -0016<$[]> (_t0345, _t0346);
      _t0348 = *001C (_t0344, _t0347);
      score00DA = +000F<$[]> (score00DA, _t0348);
    }
    _t0349 = •0079<$[2]; $[2]; $[]> (r000DB, v0200BB);
    _t034A = •0079<$[2]; $[2]; $[]> (r100DC, v0200BB);
    _t034B = [_t0349, _t034A];
    _t034C = 0;
    _t034D = t00D6[_t034C];
    _t034E = 1;
    _t034F = t00D6[_t034E];
    _t0350 = [_t034D, _t034F];
    pos00DD = +000F<$[2]> (_t034B, _t0350);
    bool _t0351;
    _t0352 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t0352
      _t0351 = inside007D<#2; %2; $[]> (v0200BB, T00A3);
    else
      _t0351 = false;
    if _t0351 {
      _t0353 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0354 = @0060<#2; %2; $[]> (T00A3, v0200BB);
      _t0355 = -0016<$[]> (_t0353, _t0354);
      _t0356 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0357 = @0060<#2; %2; $[]> (T00A3, v0200BB);
      _t0358 = -0016<$[]> (_t0356, _t0357);
      _t0359 = *001C (_t0355, _t0358);
      score00DA = +000F<$[]> (score00DA, _t0359);
    }
    _t035A = •0079<$[2]; $[2]; $[]> (r000DB, v0300BD);
    _t035B = •0079<$[2]; $[2]; $[]> (r100DC, v0300BD);
    _t035C = [_t035A, _t035B];
    _t035D = 0;
    _t035E = t00D6[_t035D];
    _t035F = 1;
    _t0360 = t00D6[_t035F];
    _t0361 = [_t035E, _t0360];
    pos00DD = +000F<$[2]> (_t035C, _t0361);
    bool _t0362;
    _t0363 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t0363
      _t0362 = inside007D<#2; %2; $[]> (v0300BD, T00A3);
    else
      _t0362 = false;
    if _t0362 {
      _t0364 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0365 = @0060<#2; %2; $[]> (T00A3, v0300BD);
      _t0366 = -0016<$[]> (_t0364, _t0365);
      _t0367 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0368 = @0060<#2; %2; $[]> (T00A3, v0300BD);
      _t0369 = -0016<$[]> (_t0367, _t0368);
      _t036A = *001C (_t0366, _t0369);
      score00DA = +000F<$[]> (score00DA, _t036A);
    }
    _t036B = •0079<$[2]; $[2]; $[]> (r000DB, v0400BF);
    _t036C = •0079<$[2]; $[2]; $[]> (r100DC, v0400BF);
    _t036D = [_t036B, _t036C];
    _t036E = 0;
    _t036F = t00D6[_t036E];
    _t0370 = 1;
    _t0371 = t00D6[_t0370];
    _t0372 = [_t036F, _t0371];
    pos00DD = +000F<$[2]> (_t036D, _t0372);
    bool _t0373;
    _t0374 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t0374
      _t0373 = inside007D<#2; %2; $[]> (v0400BF, T00A3);
    else
      _t0373 = false;
    if _t0373 {
      _t0375 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0376 = @0060<#2; %2; $[]> (T00A3, v0400BF);
      _t0377 = -0016<$[]> (_t0375, _t0376);
      _t0378 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0379 = @0060<#2; %2; $[]> (T00A3, v0400BF);
      _t037A = -0016<$[]> (_t0378, _t0379);
      _t037B = *001C (_t0377, _t037A);
      score00DA = +000F<$[]> (score00DA, _t037B);
    }
    _t037C = •0079<$[2]; $[2]; $[]> (r000DB, v0500C1);
    _t037D = •0079<$[2]; $[2]; $[]> (r100DC, v0500C1);
    _t037E = [_t037C, _t037D];
    _t037F = 0;
    _t0380 = t00D6[_t037F];
    _t0381 = 1;
    _t0382 = t00D6[_t0381];
    _t0383 = [_t0380, _t0382];
    pos00DD = +000F<$[2]> (_t037E, _t0383);
    bool _t0384;
    _t0385 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t0385
      _t0384 = inside007D<#2; %2; $[]> (v0500C1, T00A3);
    else
      _t0384 = false;
    if _t0384 {
      _t0386 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0387 = @0060<#2; %2; $[]> (T00A3, v0500C1);
      _t0388 = -0016<$[]> (_t0386, _t0387);
      _t0389 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t038A = @0060<#2; %2; $[]> (T00A3, v0500C1);
      _t038B = -0016<$[]> (_t0389, _t038A);
      _t038C = *001C (_t0388, _t038B);
      score00DA = +000F<$[]> (score00DA, _t038C);
    }
    _t038D = •0079<$[2]; $[2]; $[]> (r000DB, v0600C4);
    _t038E = •0079<$[2]; $[2]; $[]> (r100DC, v0600C4);
    _t038F = [_t038D, _t038E];
    _t0390 = 0;
    _t0391 = t00D6[_t0390];
    _t0392 = 1;
    _t0393 = t00D6[_t0392];
    _t0394 = [_t0391, _t0393];
    pos00DD = +000F<$[2]> (_t038F, _t0394);
    bool _t0395;
    _t0396 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t0396
      _t0395 = inside007D<#2; %2; $[]> (v0600C4, T00A3);
    else
      _t0395 = false;
    if _t0395 {
      _t0397 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0398 = @0060<#2; %2; $[]> (T00A3, v0600C4);
      _t0399 = -0016<$[]> (_t0397, _t0398);
      _t039A = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t039B = @0060<#2; %2; $[]> (T00A3, v0600C4);
      _t039C = -0016<$[]> (_t039A, _t039B);
      _t039D = *001C (_t0399, _t039C);
      score00DA = +000F<$[]> (score00DA, _t039D);
    }
    _t039E = •0079<$[2]; $[2]; $[]> (r000DB, v0700C6);
    _t039F = •0079<$[2]; $[2]; $[]> (r100DC, v0700C6);
    _t03A0 = [_t039E, _t039F];
    _t03A1 = 0;
    _t03A2 = t00D6[_t03A1];
    _t03A3 = 1;
    _t03A4 = t00D6[_t03A3];
    _t03A5 = [_t03A2, _t03A4];
    pos00DD = +000F<$[2]> (_t03A0, _t03A5);
    bool _t03A6;
    _t03A7 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t03A7
      _t03A6 = inside007D<#2; %2; $[]> (v0700C6, T00A3);
    else
      _t03A6 = false;
    if _t03A6 {
      _t03A8 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03A9 = @0060<#2; %2; $[]> (T00A3, v0700C6);
      _t03AA = -0016<$[]> (_t03A8, _t03A9);
      _t03AB = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03AC = @0060<#2; %2; $[]> (T00A3, v0700C6);
      _t03AD = -0016<$[]> (_t03AB, _t03AC);
      _t03AE = *001C (_t03AA, _t03AD);
      score00DA = +000F<$[]> (score00DA, _t03AE);
    }
    _t03AF = •0079<$[2]; $[2]; $[]> (r000DB, v0800C8);
    _t03B0 = •0079<$[2]; $[2]; $[]> (r100DC, v0800C8);
    _t03B1 = [_t03AF, _t03B0];
    _t03B2 = 0;
    _t03B3 = t00D6[_t03B2];
    _t03B4 = 1;
    _t03B5 = t00D6[_t03B4];
    _t03B6 = [_t03B3, _t03B5];
    pos00DD = +000F<$[2]> (_t03B1, _t03B6);
    bool _t03B7;
    _t03B8 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t03B8
      _t03B7 = inside007D<#2; %2; $[]> (v0800C8, T00A3);
    else
      _t03B7 = false;
    if _t03B7 {
      _t03B9 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03BA = @0060<#2; %2; $[]> (T00A3, v0800C8);
      _t03BB = -0016<$[]> (_t03B9, _t03BA);
      _t03BC = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03BD = @0060<#2; %2; $[]> (T00A3, v0800C8);
      _t03BE = -0016<$[]> (_t03BC, _t03BD);
      _t03BF = *001C (_t03BB, _t03BE);
      score00DA = +000F<$[]> (score00DA, _t03BF);
    }
    _t03C0 = •0079<$[2]; $[2]; $[]> (r000DB, v0900CA);
    _t03C1 = •0079<$[2]; $[2]; $[]> (r100DC, v0900CA);
    _t03C2 = [_t03C0, _t03C1];
    _t03C3 = 0;
    _t03C4 = t00D6[_t03C3];
    _t03C5 = 1;
    _t03C6 = t00D6[_t03C5];
    _t03C7 = [_t03C4, _t03C6];
    pos00DD = +000F<$[2]> (_t03C2, _t03C7);
    bool _t03C8;
    _t03C9 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t03C9
      _t03C8 = inside007D<#2; %2; $[]> (v0900CA, T00A3);
    else
      _t03C8 = false;
    if _t03C8 {
      _t03CA = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03CB = @0060<#2; %2; $[]> (T00A3, v0900CA);
      _t03CC = -0016<$[]> (_t03CA, _t03CB);
      _t03CD = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03CE = @0060<#2; %2; $[]> (T00A3, v0900CA);
      _t03CF = -0016<$[]> (_t03CD, _t03CE);
      _t03D0 = *001C (_t03CC, _t03CF);
      score00DA = +000F<$[]> (score00DA, _t03D0);
    }
    _t03D1 = •0079<$[2]; $[2]; $[]> (r000DB, v1000CC);
    _t03D2 = •0079<$[2]; $[2]; $[]> (r100DC, v1000CC);
    _t03D3 = [_t03D1, _t03D2];
    _t03D4 = 0;
    _t03D5 = t00D6[_t03D4];
    _t03D6 = 1;
    _t03D7 = t00D6[_t03D6];
    _t03D8 = [_t03D5, _t03D7];
    pos00DD = +000F<$[2]> (_t03D3, _t03D8);
    bool _t03D9;
    _t03DA = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t03DA
      _t03D9 = inside007D<#2; %2; $[]> (v1000CC, T00A3);
    else
      _t03D9 = false;
    if _t03D9 {
      _t03DB = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03DC = @0060<#2; %2; $[]> (T00A3, v1000CC);
      _t03DD = -0016<$[]> (_t03DB, _t03DC);
      _t03DE = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03DF = @0060<#2; %2; $[]> (T00A3, v1000CC);
      _t03E0 = -0016<$[]> (_t03DE, _t03DF);
      _t03E1 = *001C (_t03DD, _t03E0);
      score00DA = +000F<$[]> (score00DA, _t03E1);
    }
    _t03E2 = •0079<$[2]; $[2]; $[]> (r000DB, v1100CD);
    _t03E3 = •0079<$[2]; $[2]; $[]> (r100DC, v1100CD);
    _t03E4 = [_t03E2, _t03E3];
    _t03E5 = 0;
    _t03E6 = t00D6[_t03E5];
    _t03E7 = 1;
    _t03E8 = t00D6[_t03E7];
    _t03E9 = [_t03E6, _t03E8];
    pos00DD = +000F<$[2]> (_t03E4, _t03E9);
    bool _t03EA;
    _t03EB = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t03EB
      _t03EA = inside007D<#2; %2; $[]> (v1100CD, T00A3);
    else
      _t03EA = false;
    if _t03EA {
      _t03EC = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03ED = @0060<#2; %2; $[]> (T00A3, v1100CD);
      _t03EE = -0016<$[]> (_t03EC, _t03ED);
      _t03EF = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03F0 = @0060<#2; %2; $[]> (T00A3, v1100CD);
      _t03F1 = -0016<$[]> (_t03EF, _t03F0);
      _t03F2 = *001C (_t03EE, _t03F1);
      score00DA = +000F<$[]> (score00DA, _t03F2);
    }
    _t03F3 = •0079<$[2]; $[2]; $[]> (r000DB, v1200CE);
    _t03F4 = •0079<$[2]; $[2]; $[]> (r100DC, v1200CE);
    _t03F5 = [_t03F3, _t03F4];
    _t03F6 = 0;
    _t03F7 = t00D6[_t03F6];
    _t03F8 = 1;
    _t03F9 = t00D6[_t03F8];
    _t03FA = [_t03F7, _t03F9];
    pos00DD = +000F<$[2]> (_t03F5, _t03FA);
    bool _t03FB;
    _t03FC = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t03FC
      _t03FB = inside007D<#2; %2; $[]> (v1200CE, T00A3);
    else
      _t03FB = false;
    if _t03FB {
      _t03FD = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03FE = @0060<#2; %2; $[]> (T00A3, v1200CE);
      _t03FF = -0016<$[]> (_t03FD, _t03FE);
      _t0400 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0401 = @0060<#2; %2; $[]> (T00A3, v1200CE);
      _t0402 = -0016<$[]> (_t0400, _t0401);
      _t0403 = *001C (_t03FF, _t0402);
      score00DA = +000F<$[]> (score00DA, _t0403);
    }
    _t0404 = •0079<$[2]; $[2]; $[]> (r000DB, v1300D0);
    _t0405 = •0079<$[2]; $[2]; $[]> (r100DC, v1300D0);
    _t0406 = [_t0404, _t0405];
    _t0407 = 0;
    _t0408 = t00D6[_t0407];
    _t0409 = 1;
    _t040A = t00D6[_t0409];
    _t040B = [_t0408, _t040A];
    pos00DD = +000F<$[2]> (_t0406, _t040B);
    bool _t040C;
    _t040D = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t040D
      _t040C = inside007D<#2; %2; $[]> (v1300D0, T00A3);
    else
      _t040C = false;
    if _t040C {
      _t040E = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t040F = @0060<#2; %2; $[]> (T00A3, v1300D0);
      _t0410 = -0016<$[]> (_t040E, _t040F);
      _t0411 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0412 = @0060<#2; %2; $[]> (T00A3, v1300D0);
      _t0413 = -0016<$[]> (_t0411, _t0412);
      _t0414 = *001C (_t0410, _t0413);
      score00DA = +000F<$[]> (score00DA, _t0414);
    }
    _t0415 = •0079<$[2]; $[2]; $[]> (r000DB, v1400D2);
    _t0416 = •0079<$[2]; $[2]; $[]> (r100DC, v1400D2);
    _t0417 = [_t0415, _t0416];
    _t0418 = 0;
    _t0419 = t00D6[_t0418];
    _t041A = 1;
    _t041B = t00D6[_t041A];
    _t041C = [_t0419, _t041B];
    pos00DD = +000F<$[2]> (_t0417, _t041C);
    bool _t041D;
    _t041E = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t041E
      _t041D = inside007D<#2; %2; $[]> (v1400D2, T00A3);
    else
      _t041D = false;
    if _t041D {
      _t041F = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0420 = @0060<#2; %2; $[]> (T00A3, v1400D2);
      _t0421 = -0016<$[]> (_t041F, _t0420);
      _t0422 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0423 = @0060<#2; %2; $[]> (T00A3, v1400D2);
      _t0424 = -0016<$[]> (_t0422, _t0423);
      _t0425 = *001C (_t0421, _t0424);
      score00DA = +000F<$[]> (score00DA, _t0425);
    }
    stabilize;
  }
  Stabilize
  { }
}
/* Program end */
**** static variables:  _t02B3 _t02B4 _t02B6 _t02B7
eval assignment: _t02B3 = "square-template.nrrd"
square-template.nrrd file header:
  type: int
  dimension: 2
  space dimension: 2
  sizes: 21 21
  space directions: (0.050000000000000003,0) (0,0.050000000000000003)
  kinds: space space
  endian: little
  encoding: raw
  space origin: (-0.5,-0.5)
eval assignment: _t02B4 = IMAGE2D<int>
eval assignment: _t02B6 = "square-rotate.nrrd"
square-rotate.nrrd file header:
  type: float
  dimension: 2
  space dimension: 2
  sizes: 21 21
  space directions: (0.050000000000000003,0) (0,0.050000000000000003)
  kinds: space space
  endian: little
  encoding: raw
  space origin: (-0.5,-0.5)
eval assignment: _t02B7 = IMAGE2D<float>
eval assignment: _t02B8 = 0.5
eval assignment: _t02BA = 0.5
eval assignment: _t02BC = 0.5
eval assignment: _t02BE = 0.15
eval assignment: _t02C0 = 0.5
eval assignment: _t02C2 = 0.15
eval assignment: _t02C3 = 0.5
eval assignment: _t02C5 = 0.5
eval assignment: _t02C6 = 0.15
eval assignment: _t02C8 = 0.5
eval assignment: _t02C9 = 0.15
eval assignment: _t02CB = 0.15
eval assignment: _t02CD = 0.15
eval assignment: _t02CF = 0.15
eval assignment: _t02D0 = 0.15
eval assignment: _t02D2 = 0.5
eval assignment: _t02D3 = 0.15
eval assignment: _t02D4 = 0.5
eval assignment: _t02D6 = 0.15
eval assignment: _t02D7 = 0.15
eval assignment: _t02D9 = 0.15
eval assignment: _t02DA = 0.15
eval assignment: v1000CC = tensor
eval assignment: _t02DB = 0.15
eval assignment: _t02DC = 0.5
eval assignment: v1100CD = tensor
eval assignment: _t02DD = 0.5
eval assignment: _t02DE = 0.5
eval assignment: _t02E0 = 0.5
eval assignment: _t02E1 = 0.15
eval assignment: _t02E3 = 0.5
eval assignment: _t02E4 = 0.15
eval assignment: v1400D2 = tensor
/* Simplified Program start */
{
  field#2(2)[] T00A3;
  field#2(2)[] F00AC;
  vec2 v0000B5;
  vec2 v0100B8;
  vec2 v0200BB;
  vec2 v0300BD;
  vec2 v0400BF;
  vec2 v0500C1;
  vec2 v0600C4;
  vec2 v0700C6;
  vec2 v0800C8;
  vec2 v0900CA;
  vec2 v1000CC;
  vec2 v1100CD;
  vec2 v1200CE;
  vec2 v1300D0;
  vec2 v1400D2;
  _t02B2 = bspln30095 ();
  _t02B3 = "square-template.nrrd";
  _t02B4 = load (IMAGE2D<int> ,_t02B3);
  T00A3 = ⊛003A<#2; %2; $[]> (_t02B2, _t02B4);
  _t02B5 = bspln30095 ();
  _t02B6 = "square-rotate.nrrd";
  _t02B7 = load (IMAGE2D<float> ,_t02B6);
  F00AC = ⊛003A<#2; %2; $[]> (_t02B5, _t02B7);
  _t02B8 = 0.5e0;
  _t02B9 = unary -004D<$[]> (_t02B8);
  _t02BA = 0.5e0;
  _t02BB = unary -004D<$[]> (_t02BA);
  v0000B5 = [_t02B9, _t02BB];
  _t02BC = 0.5e0;
  _t02BD = unary -004D<$[]> (_t02BC);
  _t02BE = 0.15e0;
  _t02BF = unary -004D<$[]> (_t02BE);
  v0100B8 = [_t02BD, _t02BF];
  _t02C0 = 0.5e0;
  _t02C1 = unary -004D<$[]> (_t02C0);
  _t02C2 = 0.15e0;
  v0200BB = [_t02C1, _t02C2];
  _t02C3 = 0.5e0;
  _t02C4 = unary -004D<$[]> (_t02C3);
  _t02C5 = 0.5e0;
  v0300BD = [_t02C4, _t02C5];
  _t02C6 = 0.15e0;
  _t02C7 = unary -004D<$[]> (_t02C6);
  _t02C8 = 0.5e0;
  v0400BF = [_t02C7, _t02C8];
  _t02C9 = 0.15e0;
  _t02CA = unary -004D<$[]> (_t02C9);
  _t02CB = 0.15e0;
  _t02CC = unary -004D<$[]> (_t02CB);
  v0500C1 = [_t02CA, _t02CC];
  _t02CD = 0.15e0;
  _t02CE = unary -004D<$[]> (_t02CD);
  _t02CF = 0.15e0;
  v0600C4 = [_t02CE, _t02CF];
  _t02D0 = 0.15e0;
  _t02D1 = unary -004D<$[]> (_t02D0);
  _t02D2 = 0.5e0;
  v0700C6 = [_t02D1, _t02D2];
  _t02D3 = 0.15e0;
  _t02D4 = 0.5e0;
  _t02D5 = unary -004D<$[]> (_t02D4);
  v0800C8 = [_t02D3, _t02D5];
  _t02D6 = 0.15e0;
  _t02D7 = 0.15e0;
  _t02D8 = unary -004D<$[]> (_t02D7);
  v0900CA = [_t02D6, _t02D8];
  _t02D9 = 0.15e0;
  _t02DA = 0.15e0;
  v1000CC = [_t02D9, _t02DA];
  _t02DB = 0.15e0;
  _t02DC = 0.5e0;
  v1100CD = [_t02DB, _t02DC];
  _t02DD = 0.5e0;
  _t02DE = 0.5e0;
  _t02DF = unary -004D<$[]> (_t02DE);
  v1200CE = [_t02DD, _t02DF];
  _t02E0 = 0.5e0;
  _t02E1 = 0.15e0;
  _t02E2 = unary -004D<$[]> (_t02E1);
  v1300D0 = [_t02E0, _t02E2];
  _t02E3 = 0.5e0;
  _t02E4 = 0.15e0;
  v1400D2 = [_t02E3, _t02E4];
}
Array
  {
    _t0426 = 0;
    _t0427 = 60;
    _t0428 = 0;
    _t0429 = 60;
    _t042A = 0;
    _t042B = 60;
  }
  for int i02AF = _t0426 .. _t0427
    for int j02B0 = _t0428 .. _t0429
      for int k02B1 = _t042A .. _t042B
        { }
        new R(i02AF, j02B0, k02B1);
strand R (int i00D5, int j00D4, int k00D3)
{{
    vec3 t00D6;
    output real score00DA;
    vec2 r000DB;
    vec2 r100DC;
    vec2 pos00DD;
    _t02E5 = $i2r009B (i00D5);
    _t02E6 = 0.60e2;
    _t02E7 = /002A (_t02E5, _t02E6);
    _t02E8 = 0.5e0;
    _t02E9 = -0016<$[]> (_t02E7, _t02E8);
    _t02EA = $i2r009B (j00D4);
    _t02EB = 0.60e2;
    _t02EC = /002A (_t02EA, _t02EB);
    _t02ED = 0.5e0;
    _t02EE = -0016<$[]> (_t02EC, _t02ED);
    _t02EF = $i2r009B (k00D3);
    _t02F0 = 0.60e2;
    _t02F1 = /002A (_t02EF, _t02F0);
    _t02F2 = 0.5e0;
    _t02F3 = -0016<$[]> (_t02F1, _t02F2);
    t00D6 = [_t02E9, _t02EE, _t02F3];
    score00DA = 0.0;
    _t02F4 = 0.0;
    _t02F5 = 0.0;
    r000DB = [_t02F4, _t02F5];
    _t02F6 = 0.0;
    _t02F7 = 0.0;
    r100DC = [_t02F6, _t02F7];
    _t02F8 = 0.0;
    _t02F9 = 0.0;
    pos00DD = [_t02F8, _t02F9];
  }
  Update
  {
    _t02FA = 0.1e1;
    _t02FB = 0.2e1;
    _t02FC = 2;
    _t02FD = t00D6[_t02FC];
    _t02FE = *001C (_t02FB, _t02FD);
    _t02FF = 2;
    _t0300 = t00D6[_t02FF];
    _t0301 = *001C (_t02FE, _t0300);
    _t0302 = -0016<$[]> (_t02FA, _t0301);
    _t0303 = 0.2e1;
    _t0304 = unary -004D<$[]> (_t0303);
    _t0305 = 0.1e1;
    _t0306 = 2;
    _t0307 = t00D6[_t0306];
    _t0308 = 2;
    _t0309 = t00D6[_t0308];
    _t030A = *001C (_t0307, _t0309);
    _t030B = -0016<$[]> (_t0305, _t030A);
    _t030C = sqrt0091 (_t030B);
    _t030D = *001C (_t0304, _t030C);
    _t030E = 2;
    _t030F = t00D6[_t030E];
    _t0310 = *001C (_t030D, _t030F);
    r000DB = [_t0302, _t0310];
    _t0311 = 0.2e1;
    _t0312 = 0.1e1;
    _t0313 = 2;
    _t0314 = t00D6[_t0313];
    _t0315 = 2;
    _t0316 = t00D6[_t0315];
    _t0317 = *001C (_t0314, _t0316);
    _t0318 = -0016<$[]> (_t0312, _t0317);
    _t0319 = sqrt0091 (_t0318);
    _t031A = *001C (_t0311, _t0319);
    _t031B = 2;
    _t031C = t00D6[_t031B];
    _t031D = *001C (_t031A, _t031C);
    _t031E = 0.1e1;
    _t031F = 0.2e1;
    _t0320 = 2;
    _t0321 = t00D6[_t0320];
    _t0322 = *001C (_t031F, _t0321);
    _t0323 = 2;
    _t0324 = t00D6[_t0323];
    _t0325 = *001C (_t0322, _t0324);
    _t0326 = -0016<$[]> (_t031E, _t0325);
    r100DC = [_t031D, _t0326];
    _t0327 = •0079<$[2]; $[2]; $[]> (r000DB, v0000B5);
    _t0328 = •0079<$[2]; $[2]; $[]> (r100DC, v0000B5);
    _t0329 = [_t0327, _t0328];
    _t032A = 0;
    _t032B = t00D6[_t032A];
    _t032C = 1;
    _t032D = t00D6[_t032C];
    _t032E = [_t032B, _t032D];
    pos00DD = +000F<$[2]> (_t0329, _t032E);
    bool _t032F;
    _t0330 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t0330
      _t032F = inside007D<#2; %2; $[]> (v0000B5, T00A3);
    else
      _t032F = false;
    if _t032F {
      _t0331 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0332 = @0060<#2; %2; $[]> (T00A3, v0000B5);
      _t0333 = -0016<$[]> (_t0331, _t0332);
      _t0334 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0335 = @0060<#2; %2; $[]> (T00A3, v0000B5);
      _t0336 = -0016<$[]> (_t0334, _t0335);
      _t0337 = *001C (_t0333, _t0336);
      score00DA = +000F<$[]> (score00DA, _t0337);
    }
    _t0338 = •0079<$[2]; $[2]; $[]> (r000DB, v0100B8);
    _t0339 = •0079<$[2]; $[2]; $[]> (r100DC, v0100B8);
    _t033A = [_t0338, _t0339];
    _t033B = 0;
    _t033C = t00D6[_t033B];
    _t033D = 1;
    _t033E = t00D6[_t033D];
    _t033F = [_t033C, _t033E];
    pos00DD = +000F<$[2]> (_t033A, _t033F);
    bool _t0340;
    _t0341 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t0341
      _t0340 = inside007D<#2; %2; $[]> (v0100B8, T00A3);
    else
      _t0340 = false;
    if _t0340 {
      _t0342 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0343 = @0060<#2; %2; $[]> (T00A3, v0100B8);
      _t0344 = -0016<$[]> (_t0342, _t0343);
      _t0345 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0346 = @0060<#2; %2; $[]> (T00A3, v0100B8);
      _t0347 = -0016<$[]> (_t0345, _t0346);
      _t0348 = *001C (_t0344, _t0347);
      score00DA = +000F<$[]> (score00DA, _t0348);
    }
    _t0349 = •0079<$[2]; $[2]; $[]> (r000DB, v0200BB);
    _t034A = •0079<$[2]; $[2]; $[]> (r100DC, v0200BB);
    _t034B = [_t0349, _t034A];
    _t034C = 0;
    _t034D = t00D6[_t034C];
    _t034E = 1;
    _t034F = t00D6[_t034E];
    _t0350 = [_t034D, _t034F];
    pos00DD = +000F<$[2]> (_t034B, _t0350);
    bool _t0351;
    _t0352 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t0352
      _t0351 = inside007D<#2; %2; $[]> (v0200BB, T00A3);
    else
      _t0351 = false;
    if _t0351 {
      _t0353 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0354 = @0060<#2; %2; $[]> (T00A3, v0200BB);
      _t0355 = -0016<$[]> (_t0353, _t0354);
      _t0356 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0357 = @0060<#2; %2; $[]> (T00A3, v0200BB);
      _t0358 = -0016<$[]> (_t0356, _t0357);
      _t0359 = *001C (_t0355, _t0358);
      score00DA = +000F<$[]> (score00DA, _t0359);
    }
    _t035A = •0079<$[2]; $[2]; $[]> (r000DB, v0300BD);
    _t035B = •0079<$[2]; $[2]; $[]> (r100DC, v0300BD);
    _t035C = [_t035A, _t035B];
    _t035D = 0;
    _t035E = t00D6[_t035D];
    _t035F = 1;
    _t0360 = t00D6[_t035F];
    _t0361 = [_t035E, _t0360];
    pos00DD = +000F<$[2]> (_t035C, _t0361);
    bool _t0362;
    _t0363 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t0363
      _t0362 = inside007D<#2; %2; $[]> (v0300BD, T00A3);
    else
      _t0362 = false;
    if _t0362 {
      _t0364 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0365 = @0060<#2; %2; $[]> (T00A3, v0300BD);
      _t0366 = -0016<$[]> (_t0364, _t0365);
      _t0367 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0368 = @0060<#2; %2; $[]> (T00A3, v0300BD);
      _t0369 = -0016<$[]> (_t0367, _t0368);
      _t036A = *001C (_t0366, _t0369);
      score00DA = +000F<$[]> (score00DA, _t036A);
    }
    _t036B = •0079<$[2]; $[2]; $[]> (r000DB, v0400BF);
    _t036C = •0079<$[2]; $[2]; $[]> (r100DC, v0400BF);
    _t036D = [_t036B, _t036C];
    _t036E = 0;
    _t036F = t00D6[_t036E];
    _t0370 = 1;
    _t0371 = t00D6[_t0370];
    _t0372 = [_t036F, _t0371];
    pos00DD = +000F<$[2]> (_t036D, _t0372);
    bool _t0373;
    _t0374 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t0374
      _t0373 = inside007D<#2; %2; $[]> (v0400BF, T00A3);
    else
      _t0373 = false;
    if _t0373 {
      _t0375 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0376 = @0060<#2; %2; $[]> (T00A3, v0400BF);
      _t0377 = -0016<$[]> (_t0375, _t0376);
      _t0378 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0379 = @0060<#2; %2; $[]> (T00A3, v0400BF);
      _t037A = -0016<$[]> (_t0378, _t0379);
      _t037B = *001C (_t0377, _t037A);
      score00DA = +000F<$[]> (score00DA, _t037B);
    }
    _t037C = •0079<$[2]; $[2]; $[]> (r000DB, v0500C1);
    _t037D = •0079<$[2]; $[2]; $[]> (r100DC, v0500C1);
    _t037E = [_t037C, _t037D];
    _t037F = 0;
    _t0380 = t00D6[_t037F];
    _t0381 = 1;
    _t0382 = t00D6[_t0381];
    _t0383 = [_t0380, _t0382];
    pos00DD = +000F<$[2]> (_t037E, _t0383);
    bool _t0384;
    _t0385 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t0385
      _t0384 = inside007D<#2; %2; $[]> (v0500C1, T00A3);
    else
      _t0384 = false;
    if _t0384 {
      _t0386 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0387 = @0060<#2; %2; $[]> (T00A3, v0500C1);
      _t0388 = -0016<$[]> (_t0386, _t0387);
      _t0389 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t038A = @0060<#2; %2; $[]> (T00A3, v0500C1);
      _t038B = -0016<$[]> (_t0389, _t038A);
      _t038C = *001C (_t0388, _t038B);
      score00DA = +000F<$[]> (score00DA, _t038C);
    }
    _t038D = •0079<$[2]; $[2]; $[]> (r000DB, v0600C4);
    _t038E = •0079<$[2]; $[2]; $[]> (r100DC, v0600C4);
    _t038F = [_t038D, _t038E];
    _t0390 = 0;
    _t0391 = t00D6[_t0390];
    _t0392 = 1;
    _t0393 = t00D6[_t0392];
    _t0394 = [_t0391, _t0393];
    pos00DD = +000F<$[2]> (_t038F, _t0394);
    bool _t0395;
    _t0396 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t0396
      _t0395 = inside007D<#2; %2; $[]> (v0600C4, T00A3);
    else
      _t0395 = false;
    if _t0395 {
      _t0397 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0398 = @0060<#2; %2; $[]> (T00A3, v0600C4);
      _t0399 = -0016<$[]> (_t0397, _t0398);
      _t039A = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t039B = @0060<#2; %2; $[]> (T00A3, v0600C4);
      _t039C = -0016<$[]> (_t039A, _t039B);
      _t039D = *001C (_t0399, _t039C);
      score00DA = +000F<$[]> (score00DA, _t039D);
    }
    _t039E = •0079<$[2]; $[2]; $[]> (r000DB, v0700C6);
    _t039F = •0079<$[2]; $[2]; $[]> (r100DC, v0700C6);
    _t03A0 = [_t039E, _t039F];
    _t03A1 = 0;
    _t03A2 = t00D6[_t03A1];
    _t03A3 = 1;
    _t03A4 = t00D6[_t03A3];
    _t03A5 = [_t03A2, _t03A4];
    pos00DD = +000F<$[2]> (_t03A0, _t03A5);
    bool _t03A6;
    _t03A7 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t03A7
      _t03A6 = inside007D<#2; %2; $[]> (v0700C6, T00A3);
    else
      _t03A6 = false;
    if _t03A6 {
      _t03A8 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03A9 = @0060<#2; %2; $[]> (T00A3, v0700C6);
      _t03AA = -0016<$[]> (_t03A8, _t03A9);
      _t03AB = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03AC = @0060<#2; %2; $[]> (T00A3, v0700C6);
      _t03AD = -0016<$[]> (_t03AB, _t03AC);
      _t03AE = *001C (_t03AA, _t03AD);
      score00DA = +000F<$[]> (score00DA, _t03AE);
    }
    _t03AF = •0079<$[2]; $[2]; $[]> (r000DB, v0800C8);
    _t03B0 = •0079<$[2]; $[2]; $[]> (r100DC, v0800C8);
    _t03B1 = [_t03AF, _t03B0];
    _t03B2 = 0;
    _t03B3 = t00D6[_t03B2];
    _t03B4 = 1;
    _t03B5 = t00D6[_t03B4];
    _t03B6 = [_t03B3, _t03B5];
    pos00DD = +000F<$[2]> (_t03B1, _t03B6);
    bool _t03B7;
    _t03B8 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t03B8
      _t03B7 = inside007D<#2; %2; $[]> (v0800C8, T00A3);
    else
      _t03B7 = false;
    if _t03B7 {
      _t03B9 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03BA = @0060<#2; %2; $[]> (T00A3, v0800C8);
      _t03BB = -0016<$[]> (_t03B9, _t03BA);
      _t03BC = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03BD = @0060<#2; %2; $[]> (T00A3, v0800C8);
      _t03BE = -0016<$[]> (_t03BC, _t03BD);
      _t03BF = *001C (_t03BB, _t03BE);
      score00DA = +000F<$[]> (score00DA, _t03BF);
    }
    _t03C0 = •0079<$[2]; $[2]; $[]> (r000DB, v0900CA);
    _t03C1 = •0079<$[2]; $[2]; $[]> (r100DC, v0900CA);
    _t03C2 = [_t03C0, _t03C1];
    _t03C3 = 0;
    _t03C4 = t00D6[_t03C3];
    _t03C5 = 1;
    _t03C6 = t00D6[_t03C5];
    _t03C7 = [_t03C4, _t03C6];
    pos00DD = +000F<$[2]> (_t03C2, _t03C7);
    bool _t03C8;
    _t03C9 = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t03C9
      _t03C8 = inside007D<#2; %2; $[]> (v0900CA, T00A3);
    else
      _t03C8 = false;
    if _t03C8 {
      _t03CA = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03CB = @0060<#2; %2; $[]> (T00A3, v0900CA);
      _t03CC = -0016<$[]> (_t03CA, _t03CB);
      _t03CD = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03CE = @0060<#2; %2; $[]> (T00A3, v0900CA);
      _t03CF = -0016<$[]> (_t03CD, _t03CE);
      _t03D0 = *001C (_t03CC, _t03CF);
      score00DA = +000F<$[]> (score00DA, _t03D0);
    }
    _t03D1 = •0079<$[2]; $[2]; $[]> (r000DB, v1000CC);
    _t03D2 = •0079<$[2]; $[2]; $[]> (r100DC, v1000CC);
    _t03D3 = [_t03D1, _t03D2];
    _t03D4 = 0;
    _t03D5 = t00D6[_t03D4];
    _t03D6 = 1;
    _t03D7 = t00D6[_t03D6];
    _t03D8 = [_t03D5, _t03D7];
    pos00DD = +000F<$[2]> (_t03D3, _t03D8);
    bool _t03D9;
    _t03DA = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t03DA
      _t03D9 = inside007D<#2; %2; $[]> (v1000CC, T00A3);
    else
      _t03D9 = false;
    if _t03D9 {
      _t03DB = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03DC = @0060<#2; %2; $[]> (T00A3, v1000CC);
      _t03DD = -0016<$[]> (_t03DB, _t03DC);
      _t03DE = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03DF = @0060<#2; %2; $[]> (T00A3, v1000CC);
      _t03E0 = -0016<$[]> (_t03DE, _t03DF);
      _t03E1 = *001C (_t03DD, _t03E0);
      score00DA = +000F<$[]> (score00DA, _t03E1);
    }
    _t03E2 = •0079<$[2]; $[2]; $[]> (r000DB, v1100CD);
    _t03E3 = •0079<$[2]; $[2]; $[]> (r100DC, v1100CD);
    _t03E4 = [_t03E2, _t03E3];
    _t03E5 = 0;
    _t03E6 = t00D6[_t03E5];
    _t03E7 = 1;
    _t03E8 = t00D6[_t03E7];
    _t03E9 = [_t03E6, _t03E8];
    pos00DD = +000F<$[2]> (_t03E4, _t03E9);
    bool _t03EA;
    _t03EB = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t03EB
      _t03EA = inside007D<#2; %2; $[]> (v1100CD, T00A3);
    else
      _t03EA = false;
    if _t03EA {
      _t03EC = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03ED = @0060<#2; %2; $[]> (T00A3, v1100CD);
      _t03EE = -0016<$[]> (_t03EC, _t03ED);
      _t03EF = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03F0 = @0060<#2; %2; $[]> (T00A3, v1100CD);
      _t03F1 = -0016<$[]> (_t03EF, _t03F0);
      _t03F2 = *001C (_t03EE, _t03F1);
      score00DA = +000F<$[]> (score00DA, _t03F2);
    }
    _t03F3 = •0079<$[2]; $[2]; $[]> (r000DB, v1200CE);
    _t03F4 = •0079<$[2]; $[2]; $[]> (r100DC, v1200CE);
    _t03F5 = [_t03F3, _t03F4];
    _t03F6 = 0;
    _t03F7 = t00D6[_t03F6];
    _t03F8 = 1;
    _t03F9 = t00D6[_t03F8];
    _t03FA = [_t03F7, _t03F9];
    pos00DD = +000F<$[2]> (_t03F5, _t03FA);
    bool _t03FB;
    _t03FC = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t03FC
      _t03FB = inside007D<#2; %2; $[]> (v1200CE, T00A3);
    else
      _t03FB = false;
    if _t03FB {
      _t03FD = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t03FE = @0060<#2; %2; $[]> (T00A3, v1200CE);
      _t03FF = -0016<$[]> (_t03FD, _t03FE);
      _t0400 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0401 = @0060<#2; %2; $[]> (T00A3, v1200CE);
      _t0402 = -0016<$[]> (_t0400, _t0401);
      _t0403 = *001C (_t03FF, _t0402);
      score00DA = +000F<$[]> (score00DA, _t0403);
    }
    _t0404 = •0079<$[2]; $[2]; $[]> (r000DB, v1300D0);
    _t0405 = •0079<$[2]; $[2]; $[]> (r100DC, v1300D0);
    _t0406 = [_t0404, _t0405];
    _t0407 = 0;
    _t0408 = t00D6[_t0407];
    _t0409 = 1;
    _t040A = t00D6[_t0409];
    _t040B = [_t0408, _t040A];
    pos00DD = +000F<$[2]> (_t0406, _t040B);
    bool _t040C;
    _t040D = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t040D
      _t040C = inside007D<#2; %2; $[]> (v1300D0, T00A3);
    else
      _t040C = false;
    if _t040C {
      _t040E = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t040F = @0060<#2; %2; $[]> (T00A3, v1300D0);
      _t0410 = -0016<$[]> (_t040E, _t040F);
      _t0411 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0412 = @0060<#2; %2; $[]> (T00A3, v1300D0);
      _t0413 = -0016<$[]> (_t0411, _t0412);
      _t0414 = *001C (_t0410, _t0413);
      score00DA = +000F<$[]> (score00DA, _t0414);
    }
    _t0415 = •0079<$[2]; $[2]; $[]> (r000DB, v1400D2);
    _t0416 = •0079<$[2]; $[2]; $[]> (r100DC, v1400D2);
    _t0417 = [_t0415, _t0416];
    _t0418 = 0;
    _t0419 = t00D6[_t0418];
    _t041A = 1;
    _t041B = t00D6[_t041A];
    _t041C = [_t0419, _t041B];
    pos00DD = +000F<$[2]> (_t0417, _t041C);
    bool _t041D;
    _t041E = inside007D<#2; %2; $[]> (pos00DD, F00AC);
    if _t041E
      _t041D = inside007D<#2; %2; $[]> (v1400D2, T00A3);
    else
      _t041D = false;
    if _t041D {
      _t041F = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0420 = @0060<#2; %2; $[]> (T00A3, v1400D2);
      _t0421 = -0016<$[]> (_t041F, _t0420);
      _t0422 = @0060<#2; %2; $[]> (F00AC, pos00DD);
      _t0423 = @0060<#2; %2; $[]> (T00A3, v1400D2);
      _t0424 = -0016<$[]> (_t0422, _t0423);
      _t0425 = *001C (_t0421, _t0424);
      score00DA = +000F<$[]> (score00DA, _t0425);
    }
    stabilize;
  }
  Stabilize
  { }
}
/* Program end */
##### HighIL after translation to HighIL ####
## properties
  none
## globals
  global field T0432#45
  global field F043A#45
  global tensor[2] v000444#5
  global tensor[2] v01044E#5
  global tensor[2] v020456#5
  global tensor[2] v03045E#5
  global tensor[2] v040466#5
  global tensor[2] v050470#5
  global tensor[2] v060478#5
  global tensor[2] v070480#5
  global tensor[2] v080488#5
  global tensor[2] v090490#5
  global tensor[2] v100496#5
  global tensor[2] v11049C#5
  global tensor[2] v1204A4#5
  global tensor[2] v1304AC#5
  global tensor[2] v1404B2#5
  global kernel _t042C#1
  global string _t042E#1
  global image2D _t0430#1
  global kernel _t0434#1
  global string _t0436#1
  global image2D _t0438#1
  global real _t043C#1
  global real _t043E#1
  global real _t0440#1
  global real _t0442#1
  global real _t0446#1
  global real _t0448#1
  global real _t044A#1
  global real _t044C#1
  global real _t0450#1
  global real _t0452#1
  global real _t0454#1
  global real _t0458#1
  global real _t045A#1
  global real _t045C#1
  global real _t0460#1
  global real _t0462#1
  global real _t0464#1
  global real _t0468#1
  global real _t046A#1
  global real _t046C#1
  global real _t046E#1
  global real _t0472#1
  global real _t0474#1
  global real _t0476#1
  global real _t047A#1
  global real _t047C#1
  global real _t047E#1
  global real _t0482#1
  global real _t0484#1
  global real _t0486#1
  global real _t048A#1
  global real _t048C#1
  global real _t048E#1
  global real _t0492#1
  global real _t0494#1
  global real _t0498#1
  global real _t049A#1
  global real _t049E#1
  global real _t04A0#1
  global real _t04A2#1
  global real _t04A6#1
  global real _t04A8#1
  global real _t04AA#1
  global real _t04AE#1
  global real _t04B0#1
## global initialization
  ENTRY04B4:  preds = []
    kernel _t042C#1 = Kernel<bspln3,0>;
    string _t042E#1 = "square-template.nrrd";
    image2D _t0430#1 = LoadImage<IMAGE2D<int>>(_t042E);
    field T0432#45 = Field<2>(_t0430,_t042C);
    kernel _t0434#1 = Kernel<bspln3,0>;
    string _t0436#1 = "square-rotate.nrrd";
    image2D _t0438#1 = LoadImage<IMAGE2D<float>>(_t0436);
    field F043A#45 = Field<2>(_t0438,_t0434);
    real _t043C#1 = 0.5e0;
    real _t043E#1 = Neg<real>(_t043C);
    real _t0440#1 = 0.5e0;
    real _t0442#1 = Neg<real>(_t0440);
    tensor[2] v000444#5 = <tensor[2]>[_t043E,_t0442];
    real _t0446#1 = 0.5e0;
    real _t0448#1 = Neg<real>(_t0446);
    real _t044A#1 = 0.15e0;
    real _t044C#1 = Neg<real>(_t044A);
    tensor[2] v01044E#5 = <tensor[2]>[_t0448,_t044C];
    real _t0450#1 = 0.5e0;
    real _t0452#1 = Neg<real>(_t0450);
    real _t0454#1 = 0.15e0;
    tensor[2] v020456#5 = <tensor[2]>[_t0452,_t0454];
    real _t0458#1 = 0.5e0;
    real _t045A#1 = Neg<real>(_t0458);
    real _t045C#1 = 0.5e0;
    tensor[2] v03045E#5 = <tensor[2]>[_t045A,_t045C];
    real _t0460#1 = 0.15e0;
    real _t0462#1 = Neg<real>(_t0460);
    real _t0464#1 = 0.5e0;
    tensor[2] v040466#5 = <tensor[2]>[_t0462,_t0464];
    real _t0468#1 = 0.15e0;
    real _t046A#1 = Neg<real>(_t0468);
    real _t046C#1 = 0.15e0;
    real _t046E#1 = Neg<real>(_t046C);
    tensor[2] v050470#5 = <tensor[2]>[_t046A,_t046E];
    real _t0472#1 = 0.15e0;
    real _t0474#1 = Neg<real>(_t0472);
    real _t0476#1 = 0.15e0;
    tensor[2] v060478#5 = <tensor[2]>[_t0474,_t0476];
    real _t047A#1 = 0.15e0;
    real _t047C#1 = Neg<real>(_t047A);
    real _t047E#1 = 0.5e0;
    tensor[2] v070480#5 = <tensor[2]>[_t047C,_t047E];
    real _t0482#1 = 0.15e0;
    real _t0484#1 = 0.5e0;
    real _t0486#1 = Neg<real>(_t0484);
    tensor[2] v080488#5 = <tensor[2]>[_t0482,_t0486];
    real _t048A#1 = 0.15e0;
    real _t048C#1 = 0.15e0;
    real _t048E#1 = Neg<real>(_t048C);
    tensor[2] v090490#5 = <tensor[2]>[_t048A,_t048E];
    real _t0492#1 = 0.15e0;
    real _t0494#1 = 0.15e0;
    tensor[2] v100496#5 = <tensor[2]>[_t0492,_t0494];
    real _t0498#1 = 0.15e0;
    real _t049A#1 = 0.5e0;
    tensor[2] v11049C#5 = <tensor[2]>[_t0498,_t049A];
    real _t049E#1 = 0.5e0;
    real _t04A0#1 = 0.5e0;
    real _t04A2#1 = Neg<real>(_t04A0);
    tensor[2] v1204A4#5 = <tensor[2]>[_t049E,_t04A2];
    real _t04A6#1 = 0.5e0;
    real _t04A8#1 = 0.15e0;
    real _t04AA#1 = Neg<real>(_t04A8);
    tensor[2] v1304AC#5 = <tensor[2]>[_t04A6,_t04AA];
    real _t04AE#1 = 0.5e0;
    real _t04B0#1 = 0.15e0;
    tensor[2] v1404B2#5 = <tensor[2]>[_t04AE,_t04B0];
    return (T0432,F043A,v000444,v01044E,v020456,v03045E,v040466,v050470,v060478,v070480,v080488,v090490,v100496,v11049C,v1204A4,v1304AC,v1404B2,_t042C,_t042E,_t0430,_t0434,_t0436,_t0438,_t043C,_t043E,_t0440,_t0442,_t0446,_t0448,_t044A,_t044C,_t0450,_t0452,_t0454,_t0458,_t045A,_t045C,_t0460,_t0462,_t0464,_t0468,_t046A,_t046C,_t046E,_t0472,_t0474,_t0476,_t047A,_t047C,_t047E,_t0482,_t0484,_t0486,_t048A,_t048C,_t048E,_t0492,_t0494,_t0498,_t049A,_t049E,_t04A0,_t04A2,_t04A6,_t04A8,_t04AA,_t04AE,_t04B0)
## initially
  ARRAY
    ENTRY04C2:  preds = []
      int _t04B6#2 = 0;
      int _t04B8#2 = 60;
      int _t04BA#2 = 0;
      int _t04BC#2 = 60;
      int _t04BE#2 = 0;
      int _t04C0#2 = 60;
      live vars = (_t04C0,_t04BE,_t04BC,_t04BA,_t04B8,_t04B6)
    for int i04C4#1 = _t04B6 .. _t04B8
      for int j04C5#1 = _t04BA .. _t04BC
        for int k04C6#1 = _t04BE .. _t04C0
          ENTRY04C7:  preds = []
            live vars = ()
          new R(i04C4,j04C5,k04C6);
## strands
  strand R (int i04C9#1, int j04CA#1, int k04CB#1)
    state: tensor[3] self.t;output real self.score;tensor[2] self.r0;tensor[2] self.r1;tensor[2] self.pos;
      ENTRY0505:  preds = []
        real _t04D1#1 = IntToReal(i04C9);
        real _t04D3#1 = 0.60e2;
        real _t04D5#1 = Div<real>(_t04D1,_t04D3);
        real _t04D7#1 = 0.5e0;
        real _t04D9#1 = Sub<real>(_t04D5,_t04D7);
        real _t04DB#1 = IntToReal(j04CA);
        real _t04DD#1 = 0.60e2;
        real _t04DF#1 = Div<real>(_t04DB,_t04DD);
        real _t04E1#1 = 0.5e0;
        real _t04E3#1 = Sub<real>(_t04DF,_t04E1);
        real _t04E5#1 = IntToReal(k04CB);
        real _t04E7#1 = 0.60e2;
        real _t04E9#1 = Div<real>(_t04E5,_t04E7);
        real _t04EB#1 = 0.5e0;
        real _t04ED#1 = Sub<real>(_t04E9,_t04EB);
        tensor[3] t04EF#1 = <tensor[3]>[_t04D9,_t04E3,_t04ED];
        real score04F1#1 = 0.0;
        real _t04F3#1 = 0.0;
        real _t04F5#1 = 0.0;
        tensor[2] r004F7#1 = <tensor[2]>[_t04F3,_t04F5];
        real _t04F9#1 = 0.0;
        real _t04FB#1 = 0.0;
        tensor[2] r104FD#1 = <tensor[2]>[_t04F9,_t04FB];
        real _t04FF#1 = 0.0;
        real _t0501#1 = 0.0;
        tensor[2] pos0503#1 = <tensor[2]>[_t04FF,_t0501];
        self.t = t04EF;
        self.score = score04F1;
        self.r0 = r004F7;
        self.r1 = r104FD;
        self.pos = pos0503;
        strand_init ()
    method Update
        ENTRY083B:  preds = []
          tensor[3] t050C#41 = self.t;
          real score050D#2 = self.score;
          tensor[2] r0050E#0 = self.r0;
          tensor[2] r1050F#0 = self.r1;
          tensor[2] pos0510#0 = self.pos;
          real _t0516#1 = 0.1e1;
          real _t0518#1 = 0.2e1;
          int _t051A#1 = 2;
          real _t051C#1 = TensorSub<tensor[3]>(t050C,_t051A);
          real _t051E#1 = Mul<real>(_t0518,_t051C);
          int _t0520#1 = 2;
          real _t0522#1 = TensorSub<tensor[3]>(t050C,_t0520);
          real _t0524#1 = Mul<real>(_t051E,_t0522);
          real _t0526#1 = Sub<real>(_t0516,_t0524);
          real _t0528#1 = 0.2e1;
          real _t052A#1 = Neg<real>(_t0528);
          real _t052C#1 = 0.1e1;
          int _t052E#1 = 2;
          real _t0530#1 = TensorSub<tensor[3]>(t050C,_t052E);
          int _t0532#1 = 2;
          real _t0534#1 = TensorSub<tensor[3]>(t050C,_t0532);
          real _t0536#1 = Mul<real>(_t0530,_t0534);
          real _t0538#1 = Sub<real>(_t052C,_t0536);
          real _t053A#1 = sqrt(_t0538);
          real _t053C#1 = Mul<real>(_t052A,_t053A);
          int _t053E#1 = 2;
          real _t0540#1 = TensorSub<tensor[3]>(t050C,_t053E);
          real _t0542#1 = Mul<real>(_t053C,_t0540);
          tensor[2] r00544#16 = <tensor[2]>[_t0526,_t0542];
          real _t0546#1 = 0.2e1;
          real _t0548#1 = 0.1e1;
          int _t054A#1 = 2;
          real _t054C#1 = TensorSub<tensor[3]>(t050C,_t054A);
          int _t054E#1 = 2;
          real _t0550#1 = TensorSub<tensor[3]>(t050C,_t054E);
          real _t0552#1 = Mul<real>(_t054C,_t0550);
          real _t0554#1 = Sub<real>(_t0548,_t0552);
          real _t0556#1 = sqrt(_t0554);
          real _t0558#1 = Mul<real>(_t0546,_t0556);
          int _t055A#1 = 2;
          real _t055C#1 = TensorSub<tensor[3]>(t050C,_t055A);
          real _t055E#1 = Mul<real>(_t0558,_t055C);
          real _t0560#1 = 0.1e1;
          real _t0562#1 = 0.2e1;
          int _t0564#1 = 2;
          real _t0566#1 = TensorSub<tensor[3]>(t050C,_t0564);
          real _t0568#1 = Mul<real>(_t0562,_t0566);
          int _t056A#1 = 2;
          real _t056C#1 = TensorSub<tensor[3]>(t050C,_t056A);
          real _t056E#1 = Mul<real>(_t0568,_t056C);
          real _t0570#1 = Sub<real>(_t0560,_t056E);
          tensor[2] r10572#16 = <tensor[2]>[_t055E,_t0570];
          real _t0574#1 = Dot<tensor[2]>(r00544,v000444);
          real _t0576#1 = Dot<tensor[2]>(r10572,v000444);
          tensor[2] _t0578#1 = <tensor[2]>[_t0574,_t0576];
          int _t057A#1 = 0;
          real _t057C#1 = TensorSub<tensor[3]>(t050C,_t057A);
          int _t057E#1 = 1;
          real _t0580#1 = TensorSub<tensor[3]>(t050C,_t057E);
          tensor[2] _t0582#1 = <tensor[2]>[_t057C,_t0580];
          tensor[2] pos0584#3 = Add<tensor[2]>(_t0578,_t0582);
          bool _t0587#1 = Inside<2>(pos0584,F043A);
          if _t0587 then goto ASSIGN058C else goto ASSIGN058E
        ASSIGN058C:  preds = [COND058F]
          bool _t058A#1 = Inside<2>(v000444,T0432);
          goto JOIN0589
        JOIN0589:  preds = [ASSIGN058C,ASSIGN058E]
          bool _t058B#1 = phi(_t058A,_t058D)
          if _t058B then goto ASSIGN0592 else goto JOIN0590
        ASSIGN0592:  preds = [COND05A2]
          real _t0591#1 = Probe<tensor[2],real>(F043A,pos0584);
          real _t0593#1 = Probe<tensor[2],real>(T0432,v000444);
          real _t0595#1 = Sub<real>(_t0591,_t0593);
          real _t0597#1 = Probe<tensor[2],real>(F043A,pos0584);
          real _t0599#1 = Probe<tensor[2],real>(T0432,v000444);
          real _t059B#1 = Sub<real>(_t0597,_t0599);
          real _t059D#1 = Mul<real>(_t0595,_t059B);
          real score059F#1 = Add<real>(score050D,_t059D);
          goto JOIN0590
        JOIN0590:  preds = [ASSIGN05A1,COND05A2]
          real score05A0#2 = phi(score059F,score050D)
          real _t05A3#1 = Dot<tensor[2]>(r00544,v01044E);
          real _t05A5#1 = Dot<tensor[2]>(r10572,v01044E);
          tensor[2] _t05A7#1 = <tensor[2]>[_t05A3,_t05A5];
          int _t05A9#1 = 0;
          real _t05AB#1 = TensorSub<tensor[3]>(t050C,_t05A9);
          int _t05AD#1 = 1;
          real _t05AF#1 = TensorSub<tensor[3]>(t050C,_t05AD);
          tensor[2] _t05B1#1 = <tensor[2]>[_t05AB,_t05AF];
          tensor[2] pos05B3#3 = Add<tensor[2]>(_t05A7,_t05B1);
          bool _t05B6#1 = Inside<2>(pos05B3,F043A);
          if _t05B6 then goto ASSIGN05BB else goto ASSIGN05BD
        ASSIGN05BB:  preds = [COND05BE]
          bool _t05B9#1 = Inside<2>(v01044E,T0432);
          goto JOIN05B8
        JOIN05B8:  preds = [ASSIGN05BB,ASSIGN05BD]
          bool _t05BA#1 = phi(_t05B9,_t05BC)
          if _t05BA then goto ASSIGN05C1 else goto JOIN05BF
        ASSIGN05C1:  preds = [COND05D1]
          real _t05C0#1 = Probe<tensor[2],real>(F043A,pos05B3);
          real _t05C2#1 = Probe<tensor[2],real>(T0432,v01044E);
          real _t05C4#1 = Sub<real>(_t05C0,_t05C2);
          real _t05C6#1 = Probe<tensor[2],real>(F043A,pos05B3);
          real _t05C8#1 = Probe<tensor[2],real>(T0432,v01044E);
          real _t05CA#1 = Sub<real>(_t05C6,_t05C8);
          real _t05CC#1 = Mul<real>(_t05C4,_t05CA);
          real score05CE#1 = Add<real>(score05A0,_t05CC);
          goto JOIN05BF
        JOIN05BF:  preds = [ASSIGN05D0,COND05D1]
          real score05CF#2 = phi(score05CE,score05A0)
          real _t05D2#1 = Dot<tensor[2]>(r00544,v020456);
          real _t05D4#1 = Dot<tensor[2]>(r10572,v020456);
          tensor[2] _t05D6#1 = <tensor[2]>[_t05D2,_t05D4];
          int _t05D8#1 = 0;
          real _t05DA#1 = TensorSub<tensor[3]>(t050C,_t05D8);
          int _t05DC#1 = 1;
          real _t05DE#1 = TensorSub<tensor[3]>(t050C,_t05DC);
          tensor[2] _t05E0#1 = <tensor[2]>[_t05DA,_t05DE];
          tensor[2] pos05E2#3 = Add<tensor[2]>(_t05D6,_t05E0);
          bool _t05E5#1 = Inside<2>(pos05E2,F043A);
          if _t05E5 then goto ASSIGN05EA else goto ASSIGN05EC
        ASSIGN05EA:  preds = [COND05ED]
          bool _t05E8#1 = Inside<2>(v020456,T0432);
          goto JOIN05E7
        JOIN05E7:  preds = [ASSIGN05EA,ASSIGN05EC]
          bool _t05E9#1 = phi(_t05E8,_t05EB)
          if _t05E9 then goto ASSIGN05F0 else goto JOIN05EE
        ASSIGN05F0:  preds = [COND0600]
          real _t05EF#1 = Probe<tensor[2],real>(F043A,pos05E2);
          real _t05F1#1 = Probe<tensor[2],real>(T0432,v020456);
          real _t05F3#1 = Sub<real>(_t05EF,_t05F1);
          real _t05F5#1 = Probe<tensor[2],real>(F043A,pos05E2);
          real _t05F7#1 = Probe<tensor[2],real>(T0432,v020456);
          real _t05F9#1 = Sub<real>(_t05F5,_t05F7);
          real _t05FB#1 = Mul<real>(_t05F3,_t05F9);
          real score05FD#1 = Add<real>(score05CF,_t05FB);
          goto JOIN05EE
        JOIN05EE:  preds = [ASSIGN05FF,COND0600]
          real score05FE#2 = phi(score05FD,score05CF)
          real _t0601#1 = Dot<tensor[2]>(r00544,v03045E);
          real _t0603#1 = Dot<tensor[2]>(r10572,v03045E);
          tensor[2] _t0605#1 = <tensor[2]>[_t0601,_t0603];
          int _t0607#1 = 0;
          real _t0609#1 = TensorSub<tensor[3]>(t050C,_t0607);
          int _t060B#1 = 1;
          real _t060D#1 = TensorSub<tensor[3]>(t050C,_t060B);
          tensor[2] _t060F#1 = <tensor[2]>[_t0609,_t060D];
          tensor[2] pos0611#3 = Add<tensor[2]>(_t0605,_t060F);
          bool _t0614#1 = Inside<2>(pos0611,F043A);
          if _t0614 then goto ASSIGN0619 else goto ASSIGN061B
        ASSIGN0619:  preds = [COND061C]
          bool _t0617#1 = Inside<2>(v03045E,T0432);
          goto JOIN0616
        JOIN0616:  preds = [ASSIGN0619,ASSIGN061B]
          bool _t0618#1 = phi(_t0617,_t061A)
          if _t0618 then goto ASSIGN061F else goto JOIN061D
        ASSIGN061F:  preds = [COND062F]
          real _t061E#1 = Probe<tensor[2],real>(F043A,pos0611);
          real _t0620#1 = Probe<tensor[2],real>(T0432,v03045E);
          real _t0622#1 = Sub<real>(_t061E,_t0620);
          real _t0624#1 = Probe<tensor[2],real>(F043A,pos0611);
          real _t0626#1 = Probe<tensor[2],real>(T0432,v03045E);
          real _t0628#1 = Sub<real>(_t0624,_t0626);
          real _t062A#1 = Mul<real>(_t0622,_t0628);
          real score062C#1 = Add<real>(score05FE,_t062A);
          goto JOIN061D
        JOIN061D:  preds = [ASSIGN062E,COND062F]
          real score062D#2 = phi(score062C,score05FE)
          real _t0630#1 = Dot<tensor[2]>(r00544,v040466);
          real _t0632#1 = Dot<tensor[2]>(r10572,v040466);
          tensor[2] _t0634#1 = <tensor[2]>[_t0630,_t0632];
          int _t0636#1 = 0;
          real _t0638#1 = TensorSub<tensor[3]>(t050C,_t0636);
          int _t063A#1 = 1;
          real _t063C#1 = TensorSub<tensor[3]>(t050C,_t063A);
          tensor[2] _t063E#1 = <tensor[2]>[_t0638,_t063C];
          tensor[2] pos0640#3 = Add<tensor[2]>(_t0634,_t063E);
          bool _t0643#1 = Inside<2>(pos0640,F043A);
          if _t0643 then goto ASSIGN0648 else goto ASSIGN064A
        ASSIGN0648:  preds = [COND064B]
          bool _t0646#1 = Inside<2>(v040466,T0432);
          goto JOIN0645
        JOIN0645:  preds = [ASSIGN0648,ASSIGN064A]
          bool _t0647#1 = phi(_t0646,_t0649)
          if _t0647 then goto ASSIGN064E else goto JOIN064C
        ASSIGN064E:  preds = [COND065E]
          real _t064D#1 = Probe<tensor[2],real>(F043A,pos0640);
          real _t064F#1 = Probe<tensor[2],real>(T0432,v040466);
          real _t0651#1 = Sub<real>(_t064D,_t064F);
          real _t0653#1 = Probe<tensor[2],real>(F043A,pos0640);
          real _t0655#1 = Probe<tensor[2],real>(T0432,v040466);
          real _t0657#1 = Sub<real>(_t0653,_t0655);
          real _t0659#1 = Mul<real>(_t0651,_t0657);
          real score065B#1 = Add<real>(score062D,_t0659);
          goto JOIN064C
        JOIN064C:  preds = [ASSIGN065D,COND065E]
          real score065C#2 = phi(score065B,score062D)
          real _t065F#1 = Dot<tensor[2]>(r00544,v050470);
          real _t0661#1 = Dot<tensor[2]>(r10572,v050470);
          tensor[2] _t0663#1 = <tensor[2]>[_t065F,_t0661];
          int _t0665#1 = 0;
          real _t0667#1 = TensorSub<tensor[3]>(t050C,_t0665);
          int _t0669#1 = 1;
          real _t066B#1 = TensorSub<tensor[3]>(t050C,_t0669);
          tensor[2] _t066D#1 = <tensor[2]>[_t0667,_t066B];
          tensor[2] pos066F#3 = Add<tensor[2]>(_t0663,_t066D);
          bool _t0672#1 = Inside<2>(pos066F,F043A);
          if _t0672 then goto ASSIGN0677 else goto ASSIGN0679
        ASSIGN0677:  preds = [COND067A]
          bool _t0675#1 = Inside<2>(v050470,T0432);
          goto JOIN0674
        JOIN0674:  preds = [ASSIGN0677,ASSIGN0679]
          bool _t0676#1 = phi(_t0675,_t0678)
          if _t0676 then goto ASSIGN067D else goto JOIN067B
        ASSIGN067D:  preds = [COND068D]
          real _t067C#1 = Probe<tensor[2],real>(F043A,pos066F);
          real _t067E#1 = Probe<tensor[2],real>(T0432,v050470);
          real _t0680#1 = Sub<real>(_t067C,_t067E);
          real _t0682#1 = Probe<tensor[2],real>(F043A,pos066F);
          real _t0684#1 = Probe<tensor[2],real>(T0432,v050470);
          real _t0686#1 = Sub<real>(_t0682,_t0684);
          real _t0688#1 = Mul<real>(_t0680,_t0686);
          real score068A#1 = Add<real>(score065C,_t0688);
          goto JOIN067B
        JOIN067B:  preds = [ASSIGN068C,COND068D]
          real score068B#2 = phi(score068A,score065C)
          real _t068E#1 = Dot<tensor[2]>(r00544,v060478);
          real _t0690#1 = Dot<tensor[2]>(r10572,v060478);
          tensor[2] _t0692#1 = <tensor[2]>[_t068E,_t0690];
          int _t0694#1 = 0;
          real _t0696#1 = TensorSub<tensor[3]>(t050C,_t0694);
          int _t0698#1 = 1;
          real _t069A#1 = TensorSub<tensor[3]>(t050C,_t0698);
          tensor[2] _t069C#1 = <tensor[2]>[_t0696,_t069A];
          tensor[2] pos069E#3 = Add<tensor[2]>(_t0692,_t069C);
          bool _t06A1#1 = Inside<2>(pos069E,F043A);
          if _t06A1 then goto ASSIGN06A6 else goto ASSIGN06A8
        ASSIGN06A6:  preds = [COND06A9]
          bool _t06A4#1 = Inside<2>(v060478,T0432);
          goto JOIN06A3
        JOIN06A3:  preds = [ASSIGN06A6,ASSIGN06A8]
          bool _t06A5#1 = phi(_t06A4,_t06A7)
          if _t06A5 then goto ASSIGN06AC else goto JOIN06AA
        ASSIGN06AC:  preds = [COND06BC]
          real _t06AB#1 = Probe<tensor[2],real>(F043A,pos069E);
          real _t06AD#1 = Probe<tensor[2],real>(T0432,v060478);
          real _t06AF#1 = Sub<real>(_t06AB,_t06AD);
          real _t06B1#1 = Probe<tensor[2],real>(F043A,pos069E);
          real _t06B3#1 = Probe<tensor[2],real>(T0432,v060478);
          real _t06B5#1 = Sub<real>(_t06B1,_t06B3);
          real _t06B7#1 = Mul<real>(_t06AF,_t06B5);
          real score06B9#1 = Add<real>(score068B,_t06B7);
          goto JOIN06AA
        JOIN06AA:  preds = [ASSIGN06BB,COND06BC]
          real score06BA#2 = phi(score06B9,score068B)
          real _t06BD#1 = Dot<tensor[2]>(r00544,v070480);
          real _t06BF#1 = Dot<tensor[2]>(r10572,v070480);
          tensor[2] _t06C1#1 = <tensor[2]>[_t06BD,_t06BF];
          int _t06C3#1 = 0;
          real _t06C5#1 = TensorSub<tensor[3]>(t050C,_t06C3);
          int _t06C7#1 = 1;
          real _t06C9#1 = TensorSub<tensor[3]>(t050C,_t06C7);
          tensor[2] _t06CB#1 = <tensor[2]>[_t06C5,_t06C9];
          tensor[2] pos06CD#3 = Add<tensor[2]>(_t06C1,_t06CB);
          bool _t06D0#1 = Inside<2>(pos06CD,F043A);
          if _t06D0 then goto ASSIGN06D5 else goto ASSIGN06D7
        ASSIGN06D5:  preds = [COND06D8]
          bool _t06D3#1 = Inside<2>(v070480,T0432);
          goto JOIN06D2
        JOIN06D2:  preds = [ASSIGN06D5,ASSIGN06D7]
          bool _t06D4#1 = phi(_t06D3,_t06D6)
          if _t06D4 then goto ASSIGN06DB else goto JOIN06D9
        ASSIGN06DB:  preds = [COND06EB]
          real _t06DA#1 = Probe<tensor[2],real>(F043A,pos06CD);
          real _t06DC#1 = Probe<tensor[2],real>(T0432,v070480);
          real _t06DE#1 = Sub<real>(_t06DA,_t06DC);
          real _t06E0#1 = Probe<tensor[2],real>(F043A,pos06CD);
          real _t06E2#1 = Probe<tensor[2],real>(T0432,v070480);
          real _t06E4#1 = Sub<real>(_t06E0,_t06E2);
          real _t06E6#1 = Mul<real>(_t06DE,_t06E4);
          real score06E8#1 = Add<real>(score06BA,_t06E6);
          goto JOIN06D9
        JOIN06D9:  preds = [ASSIGN06EA,COND06EB]
          real score06E9#2 = phi(score06E8,score06BA)
          real _t06EC#1 = Dot<tensor[2]>(r00544,v080488);
          real _t06EE#1 = Dot<tensor[2]>(r10572,v080488);
          tensor[2] _t06F0#1 = <tensor[2]>[_t06EC,_t06EE];
          int _t06F2#1 = 0;
          real _t06F4#1 = TensorSub<tensor[3]>(t050C,_t06F2);
          int _t06F6#1 = 1;
          real _t06F8#1 = TensorSub<tensor[3]>(t050C,_t06F6);
          tensor[2] _t06FA#1 = <tensor[2]>[_t06F4,_t06F8];
          tensor[2] pos06FC#3 = Add<tensor[2]>(_t06F0,_t06FA);
          bool _t06FF#1 = Inside<2>(pos06FC,F043A);
          if _t06FF then goto ASSIGN0704 else goto ASSIGN0706
        ASSIGN0704:  preds = [COND0707]
          bool _t0702#1 = Inside<2>(v080488,T0432);
          goto JOIN0701
        JOIN0701:  preds = [ASSIGN0704,ASSIGN0706]
          bool _t0703#1 = phi(_t0702,_t0705)
          if _t0703 then goto ASSIGN070A else goto JOIN0708
        ASSIGN070A:  preds = [COND071A]
          real _t0709#1 = Probe<tensor[2],real>(F043A,pos06FC);
          real _t070B#1 = Probe<tensor[2],real>(T0432,v080488);
          real _t070D#1 = Sub<real>(_t0709,_t070B);
          real _t070F#1 = Probe<tensor[2],real>(F043A,pos06FC);
          real _t0711#1 = Probe<tensor[2],real>(T0432,v080488);
          real _t0713#1 = Sub<real>(_t070F,_t0711);
          real _t0715#1 = Mul<real>(_t070D,_t0713);
          real score0717#1 = Add<real>(score06E9,_t0715);
          goto JOIN0708
        JOIN0708:  preds = [ASSIGN0719,COND071A]
          real score0718#2 = phi(score0717,score06E9)
          real _t071B#1 = Dot<tensor[2]>(r00544,v090490);
          real _t071D#1 = Dot<tensor[2]>(r10572,v090490);
          tensor[2] _t071F#1 = <tensor[2]>[_t071B,_t071D];
          int _t0721#1 = 0;
          real _t0723#1 = TensorSub<tensor[3]>(t050C,_t0721);
          int _t0725#1 = 1;
          real _t0727#1 = TensorSub<tensor[3]>(t050C,_t0725);
          tensor[2] _t0729#1 = <tensor[2]>[_t0723,_t0727];
          tensor[2] pos072B#3 = Add<tensor[2]>(_t071F,_t0729);
          bool _t072E#1 = Inside<2>(pos072B,F043A);
          if _t072E then goto ASSIGN0733 else goto ASSIGN0735
        ASSIGN0733:  preds = [COND0736]
          bool _t0731#1 = Inside<2>(v090490,T0432);
          goto JOIN0730
        JOIN0730:  preds = [ASSIGN0733,ASSIGN0735]
          bool _t0732#1 = phi(_t0731,_t0734)
          if _t0732 then goto ASSIGN0739 else goto JOIN0737
        ASSIGN0739:  preds = [COND0749]
          real _t0738#1 = Probe<tensor[2],real>(F043A,pos072B);
          real _t073A#1 = Probe<tensor[2],real>(T0432,v090490);
          real _t073C#1 = Sub<real>(_t0738,_t073A);
          real _t073E#1 = Probe<tensor[2],real>(F043A,pos072B);
          real _t0740#1 = Probe<tensor[2],real>(T0432,v090490);
          real _t0742#1 = Sub<real>(_t073E,_t0740);
          real _t0744#1 = Mul<real>(_t073C,_t0742);
          real score0746#1 = Add<real>(score0718,_t0744);
          goto JOIN0737
        JOIN0737:  preds = [ASSIGN0748,COND0749]
          real score0747#2 = phi(score0746,score0718)
          real _t074A#1 = Dot<tensor[2]>(r00544,v100496);
          real _t074C#1 = Dot<tensor[2]>(r10572,v100496);
          tensor[2] _t074E#1 = <tensor[2]>[_t074A,_t074C];
          int _t0750#1 = 0;
          real _t0752#1 = TensorSub<tensor[3]>(t050C,_t0750);
          int _t0754#1 = 1;
          real _t0756#1 = TensorSub<tensor[3]>(t050C,_t0754);
          tensor[2] _t0758#1 = <tensor[2]>[_t0752,_t0756];
          tensor[2] pos075A#3 = Add<tensor[2]>(_t074E,_t0758);
          bool _t075D#1 = Inside<2>(pos075A,F043A);
          if _t075D then goto ASSIGN0762 else goto ASSIGN0764
        ASSIGN0762:  preds = [COND0765]
          bool _t0760#1 = Inside<2>(v100496,T0432);
          goto JOIN075F
        JOIN075F:  preds = [ASSIGN0762,ASSIGN0764]
          bool _t0761#1 = phi(_t0760,_t0763)
          if _t0761 then goto ASSIGN0768 else goto JOIN0766
        ASSIGN0768:  preds = [COND0778]
          real _t0767#1 = Probe<tensor[2],real>(F043A,pos075A);
          real _t0769#1 = Probe<tensor[2],real>(T0432,v100496);
          real _t076B#1 = Sub<real>(_t0767,_t0769);
          real _t076D#1 = Probe<tensor[2],real>(F043A,pos075A);
          real _t076F#1 = Probe<tensor[2],real>(T0432,v100496);
          real _t0771#1 = Sub<real>(_t076D,_t076F);
          real _t0773#1 = Mul<real>(_t076B,_t0771);
          real score0775#1 = Add<real>(score0747,_t0773);
          goto JOIN0766
        JOIN0766:  preds = [ASSIGN0777,COND0778]
          real score0776#2 = phi(score0775,score0747)
          real _t0779#1 = Dot<tensor[2]>(r00544,v11049C);
          real _t077B#1 = Dot<tensor[2]>(r10572,v11049C);
          tensor[2] _t077D#1 = <tensor[2]>[_t0779,_t077B];
          int _t077F#1 = 0;
          real _t0781#1 = TensorSub<tensor[3]>(t050C,_t077F);
          int _t0783#1 = 1;
          real _t0785#1 = TensorSub<tensor[3]>(t050C,_t0783);
          tensor[2] _t0787#1 = <tensor[2]>[_t0781,_t0785];
          tensor[2] pos0789#3 = Add<tensor[2]>(_t077D,_t0787);
          bool _t078C#1 = Inside<2>(pos0789,F043A);
          if _t078C then goto ASSIGN0791 else goto ASSIGN0793
        ASSIGN0791:  preds = [COND0794]
          bool _t078F#1 = Inside<2>(v11049C,T0432);
          goto JOIN078E
        JOIN078E:  preds = [ASSIGN0791,ASSIGN0793]
          bool _t0790#1 = phi(_t078F,_t0792)
          if _t0790 then goto ASSIGN0797 else goto JOIN0795
        ASSIGN0797:  preds = [COND07A7]
          real _t0796#1 = Probe<tensor[2],real>(F043A,pos0789);
          real _t0798#1 = Probe<tensor[2],real>(T0432,v11049C);
          real _t079A#1 = Sub<real>(_t0796,_t0798);
          real _t079C#1 = Probe<tensor[2],real>(F043A,pos0789);
          real _t079E#1 = Probe<tensor[2],real>(T0432,v11049C);
          real _t07A0#1 = Sub<real>(_t079C,_t079E);
          real _t07A2#1 = Mul<real>(_t079A,_t07A0);
          real score07A4#1 = Add<real>(score0776,_t07A2);
          goto JOIN0795
        JOIN0795:  preds = [ASSIGN07A6,COND07A7]
          real score07A5#2 = phi(score07A4,score0776)
          real _t07A8#1 = Dot<tensor[2]>(r00544,v1204A4);
          real _t07AA#1 = Dot<tensor[2]>(r10572,v1204A4);
          tensor[2] _t07AC#1 = <tensor[2]>[_t07A8,_t07AA];
          int _t07AE#1 = 0;
          real _t07B0#1 = TensorSub<tensor[3]>(t050C,_t07AE);
          int _t07B2#1 = 1;
          real _t07B4#1 = TensorSub<tensor[3]>(t050C,_t07B2);
          tensor[2] _t07B6#1 = <tensor[2]>[_t07B0,_t07B4];
          tensor[2] pos07B8#3 = Add<tensor[2]>(_t07AC,_t07B6);
          bool _t07BB#1 = Inside<2>(pos07B8,F043A);
          if _t07BB then goto ASSIGN07C0 else goto ASSIGN07C2
        ASSIGN07C0:  preds = [COND07C3]
          bool _t07BE#1 = Inside<2>(v1204A4,T0432);
          goto JOIN07BD
        JOIN07BD:  preds = [ASSIGN07C0,ASSIGN07C2]
          bool _t07BF#1 = phi(_t07BE,_t07C1)
          if _t07BF then goto ASSIGN07C6 else goto JOIN07C4
        ASSIGN07C6:  preds = [COND07D6]
          real _t07C5#1 = Probe<tensor[2],real>(F043A,pos07B8);
          real _t07C7#1 = Probe<tensor[2],real>(T0432,v1204A4);
          real _t07C9#1 = Sub<real>(_t07C5,_t07C7);
          real _t07CB#1 = Probe<tensor[2],real>(F043A,pos07B8);
          real _t07CD#1 = Probe<tensor[2],real>(T0432,v1204A4);
          real _t07CF#1 = Sub<real>(_t07CB,_t07CD);
          real _t07D1#1 = Mul<real>(_t07C9,_t07CF);
          real score07D3#1 = Add<real>(score07A5,_t07D1);
          goto JOIN07C4
        JOIN07C4:  preds = [ASSIGN07D5,COND07D6]
          real score07D4#2 = phi(score07D3,score07A5)
          real _t07D7#1 = Dot<tensor[2]>(r00544,v1304AC);
          real _t07D9#1 = Dot<tensor[2]>(r10572,v1304AC);
          tensor[2] _t07DB#1 = <tensor[2]>[_t07D7,_t07D9];
          int _t07DD#1 = 0;
          real _t07DF#1 = TensorSub<tensor[3]>(t050C,_t07DD);
          int _t07E1#1 = 1;
          real _t07E3#1 = TensorSub<tensor[3]>(t050C,_t07E1);
          tensor[2] _t07E5#1 = <tensor[2]>[_t07DF,_t07E3];
          tensor[2] pos07E7#3 = Add<tensor[2]>(_t07DB,_t07E5);
          bool _t07EA#1 = Inside<2>(pos07E7,F043A);
          if _t07EA then goto ASSIGN07EF else goto ASSIGN07F1
        ASSIGN07EF:  preds = [COND07F2]
          bool _t07ED#1 = Inside<2>(v1304AC,T0432);
          goto JOIN07EC
        JOIN07EC:  preds = [ASSIGN07EF,ASSIGN07F1]
          bool _t07EE#1 = phi(_t07ED,_t07F0)
          if _t07EE then goto ASSIGN07F5 else goto JOIN07F3
        ASSIGN07F5:  preds = [COND0805]
          real _t07F4#1 = Probe<tensor[2],real>(F043A,pos07E7);
          real _t07F6#1 = Probe<tensor[2],real>(T0432,v1304AC);
          real _t07F8#1 = Sub<real>(_t07F4,_t07F6);
          real _t07FA#1 = Probe<tensor[2],real>(F043A,pos07E7);
          real _t07FC#1 = Probe<tensor[2],real>(T0432,v1304AC);
          real _t07FE#1 = Sub<real>(_t07FA,_t07FC);
          real _t0800#1 = Mul<real>(_t07F8,_t07FE);
          real score0802#1 = Add<real>(score07D4,_t0800);
          goto JOIN07F3
        JOIN07F3:  preds = [ASSIGN0804,COND0805]
          real score0803#2 = phi(score0802,score07D4)
          real _t0806#1 = Dot<tensor[2]>(r00544,v1404B2);
          real _t0808#1 = Dot<tensor[2]>(r10572,v1404B2);
          tensor[2] _t080A#1 = <tensor[2]>[_t0806,_t0808];
          int _t080C#1 = 0;
          real _t080E#1 = TensorSub<tensor[3]>(t050C,_t080C);
          int _t0810#1 = 1;
          real _t0812#1 = TensorSub<tensor[3]>(t050C,_t0810);
          tensor[2] _t0814#1 = <tensor[2]>[_t080E,_t0812];
          tensor[2] pos0816#4 = Add<tensor[2]>(_t080A,_t0814);
          bool _t0819#1 = Inside<2>(pos0816,F043A);
          if _t0819 then goto ASSIGN081E else goto ASSIGN0820
        ASSIGN081E:  preds = [COND0821]
          bool _t081C#1 = Inside<2>(v1404B2,T0432);
          goto JOIN081B
        JOIN081B:  preds = [ASSIGN081E,ASSIGN0820]
          bool _t081D#1 = phi(_t081C,_t081F)
          if _t081D then goto ASSIGN0824 else goto JOIN0822
        ASSIGN0824:  preds = [COND0834]
          real _t0823#1 = Probe<tensor[2],real>(F043A,pos0816);
          real _t0825#1 = Probe<tensor[2],real>(T0432,v1404B2);
          real _t0827#1 = Sub<real>(_t0823,_t0825);
          real _t0829#1 = Probe<tensor[2],real>(F043A,pos0816);
          real _t082B#1 = Probe<tensor[2],real>(T0432,v1404B2);
          real _t082D#1 = Sub<real>(_t0829,_t082B);
          real _t082F#1 = Mul<real>(_t0827,_t082D);
          real score0831#1 = Add<real>(score0803,_t082F);
          goto JOIN0822
        JOIN0822:  preds = [ASSIGN0833,COND0834]
          real score0832#1 = phi(score0831,score0803)
          self.t = t050C;
          self.score = score0832;
          self.r0 = r00544;
          self.r1 = r10572;
          self.pos = pos0816;
          stabilize ()
        ASSIGN0820:  preds = [COND0821]
          bool _t081F#1 = false;
          goto JOIN081B
        ASSIGN07F1:  preds = [COND07F2]
          bool _t07F0#1 = false;
          goto JOIN07EC
        ASSIGN07C2:  preds = [COND07C3]
          bool _t07C1#1 = false;
          goto JOIN07BD
        ASSIGN0793:  preds = [COND0794]
          bool _t0792#1 = false;
          goto JOIN078E
        ASSIGN0764:  preds = [COND0765]
          bool _t0763#1 = false;
          goto JOIN075F
        ASSIGN0735:  preds = [COND0736]
          bool _t0734#1 = false;
          goto JOIN0730
        ASSIGN0706:  preds = [COND0707]
          bool _t0705#1 = false;
          goto JOIN0701
        ASSIGN06D7:  preds = [COND06D8]
          bool _t06D6#1 = false;
          goto JOIN06D2
        ASSIGN06A8:  preds = [COND06A9]
          bool _t06A7#1 = false;
          goto JOIN06A3
        ASSIGN0679:  preds = [COND067A]
          bool _t0678#1 = false;
          goto JOIN0674
        ASSIGN064A:  preds = [COND064B]
          bool _t0649#1 = false;
          goto JOIN0645
        ASSIGN061B:  preds = [COND061C]
          bool _t061A#1 = false;
          goto JOIN0616
        ASSIGN05EC:  preds = [COND05ED]
          bool _t05EB#1 = false;
          goto JOIN05E7
        ASSIGN05BD:  preds = [COND05BE]
          bool _t05BC#1 = false;
          goto JOIN05B8
        ASSIGN058E:  preds = [COND058F]
          bool _t058D#1 = false;
          goto JOIN0589
    end Update
    method Stabilize
        ENTRY0847:  preds = []
          tensor[3] t083D#1 = self.t;
          real score083E#1 = self.score;
          tensor[2] r0083F#1 = self.r0;
          tensor[2] r10840#1 = self.r1;
          tensor[2] pos0841#1 = self.pos;
          self.t = t083D;
          self.score = score083E;
          self.r0 = r0083F;
          self.r1 = r10840;
          self.pos = pos0841;
          return ()
    end Stabilize
  end R
#### end program ####
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-phi
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
++ high-il:redundant-assign
##### HighIL after value numbering ####
## properties
  none
## globals
  global field T0432#45
  global field F043A#45
  global tensor[2] v000444#5
  global tensor[2] v01044E#5
  global tensor[2] v020456#5
  global tensor[2] v03045E#5
  global tensor[2] v050470#5
  global tensor[2] v060478#5
  global tensor[2] v040466#8
  global tensor[2] v080488#5
  global tensor[2] v090490#5
  global tensor[2] v100496#5
  global tensor[2] v11049C#5
  global tensor[2] v1204A4#5
  global tensor[2] v1304AC#5
  global tensor[2] v1404B2#5
  global string _t042E#1
  global image2D _t0430#1
  global kernel _t042C#3
  global string _t0436#1
  global image2D _t0438#1
  global real _t043E#13
  global real _t044C#14
  global real _t043C#20
  global real _t044A#24
## global initialization
  ENTRY04B4:  preds = []
    kernel _t042C#3 = Kernel<bspln3,0>;
    string _t042E#1 = "square-template.nrrd";
    image2D _t0430#1 = LoadImage<IMAGE2D<int>>(_t042E);
    field T0432#45 = Field<2>(_t0430,_t042C);
    string _t0436#1 = "square-rotate.nrrd";
    image2D _t0438#1 = LoadImage<IMAGE2D<float>>(_t0436);
    field F043A#45 = Field<2>(_t0438,_t042C);
    real _t043C#20 = 0.5e0;
    real _t043E#13 = Neg<real>(_t043C);
    tensor[2] v000444#5 = <tensor[2]>[_t043E,_t043E];
    real _t044A#24 = 0.15e0;
    real _t044C#14 = Neg<real>(_t044A);
    tensor[2] v01044E#5 = <tensor[2]>[_t043E,_t044C];
    tensor[2] v020456#5 = <tensor[2]>[_t043E,_t044A];
    tensor[2] v03045E#5 = <tensor[2]>[_t043E,_t043C];
    tensor[2] v040466#8 = <tensor[2]>[_t044C,_t043C];
    tensor[2] v050470#5 = <tensor[2]>[_t044C,_t044C];
    tensor[2] v060478#5 = <tensor[2]>[_t044C,_t044A];
    tensor[2] v080488#5 = <tensor[2]>[_t044A,_t043E];
    tensor[2] v090490#5 = <tensor[2]>[_t044A,_t044C];
    tensor[2] v100496#5 = <tensor[2]>[_t044A,_t044A];
    tensor[2] v11049C#5 = <tensor[2]>[_t044A,_t043C];
    tensor[2] v1204A4#5 = <tensor[2]>[_t043C,_t043E];
    tensor[2] v1304AC#5 = <tensor[2]>[_t043C,_t044C];
    tensor[2] v1404B2#5 = <tensor[2]>[_t043C,_t044A];
    return (T0432,F043A,v000444,v01044E,v020456,v03045E,v050470,v060478,v040466,v080488,v090490,v100496,v11049C,v1204A4,v1304AC,v1404B2,_t042E,_t0430,_t042C,_t0436,_t0438,_t043E,_t044C,_t043C,_t044A)
## initially
  ARRAY
    ENTRY04C2:  preds = []
      int _t04B6#4 = 0;
      int _t04B8#4 = 60;
      live vars = (_t04B8,_t04B6)
    for int i04C4#1 = _t04B6 .. _t04B8
      for int j04C5#1 = _t04B6 .. _t04B8
        for int k04C6#1 = _t04B6 .. _t04B8
          ENTRY04C7:  preds = []
            live vars = ()
          new R(i04C4,j04C5,k04C6);
## strands
  strand R (int i04C9#1, int j04CA#1, int k04CB#1)
    state: tensor[3] self.t;output real self.score;tensor[2] self.r0;tensor[2] self.r1;tensor[2] self.pos;
      ENTRY0505:  preds = []
        real _t04D1#1 = IntToReal(i04C9);
        real _t04D3#3 = 0.60e2;
        real _t04D5#1 = Div<real>(_t04D1,_t04D3);
        real _t04D7#3 = 0.5e0;
        real _t04D9#1 = Sub<real>(_t04D5,_t04D7);
        real _t04DB#1 = IntToReal(j04CA);
        real _t04DF#1 = Div<real>(_t04DB,_t04D3);
        real _t04E3#1 = Sub<real>(_t04DF,_t04D7);
        real _t04E5#1 = IntToReal(k04CB);
        real _t04E9#1 = Div<real>(_t04E5,_t04D3);
        real _t04ED#1 = Sub<real>(_t04E9,_t04D7);
        tensor[3] t04EF#1 = <tensor[3]>[_t04D9,_t04E3,_t04ED];
        real score04F1#3 = 0.0;
        tensor[2] r004F7#3 = <tensor[2]>[score04F1,score04F1];
        self.t = t04EF;
        self.score = score04F1;
        self.r0 = r004F7;
        self.r1 = r004F7;
        self.pos = r004F7;
        strand_init ()
    method Update
        ENTRY083B:  preds = []
          tensor[3] t050C#41 = self.t;
          real score050D#2 = self.score;
          tensor[2] r0050E#0 = self.r0;
          tensor[2] r1050F#0 = self.r1;
          tensor[2] pos0510#0 = self.pos;
          real _t0516#2 = 0.1e1;
          real _t0518#3 = 0.2e1;
          int _t051A#1 = 2;
          real _t051C#6 = TensorSub<tensor[3]>(t050C,_t051A);
          real _t051E#1 = Mul<real>(_t0518,_t051C);
          real _t0524#1 = Mul<real>(_t051E,_t051C);
          real _t0526#2 = Sub<real>(_t0516,_t0524);
          real _t052A#1 = Neg<real>(_t0518);
          real _t0536#1 = Mul<real>(_t051C,_t051C);
          real _t0538#1 = Sub<real>(_t0516,_t0536);
          real _t053A#2 = sqrt(_t0538);
          real _t053C#1 = Mul<real>(_t052A,_t053A);
          real _t0542#1 = Mul<real>(_t053C,_t051C);
          tensor[2] r00544#16 = <tensor[2]>[_t0526,_t0542];
          real _t0558#1 = Mul<real>(_t0518,_t053A);
          real _t055E#1 = Mul<real>(_t0558,_t051C);
          tensor[2] r10572#16 = <tensor[2]>[_t055E,_t0526];
          real _t0574#1 = Dot<tensor[2]>(r00544,v000444);
          real _t0576#1 = Dot<tensor[2]>(r10572,v000444);
          tensor[2] _t0578#1 = <tensor[2]>[_t0574,_t0576];
          int _t057A#1 = 0;
          real _t057C#1 = TensorSub<tensor[3]>(t050C,_t057A);
          int _t057E#1 = 1;
          real _t0580#1 = TensorSub<tensor[3]>(t050C,_t057E);
          tensor[2] _t0582#14 = <tensor[2]>[_t057C,_t0580];
          tensor[2] pos0584#3 = Add<tensor[2]>(_t0578,_t0582);
          bool _t0587#1 = Inside<2>(pos0584,F043A);
          if _t0587 then goto ASSIGN058C else goto ASSIGN058E
        ASSIGN058C:  preds = [COND058F]
          bool _t058A#1 = Inside<2>(v000444,T0432);
          goto JOIN0589
        JOIN0589:  preds = [ASSIGN058C,ASSIGN058E]
          bool _t058B#1 = phi(_t058A,_t058D)
          if _t058B then goto ASSIGN0592 else goto JOIN0590
        ASSIGN0592:  preds = [COND05A2]
          real _t0591#1 = Probe<tensor[2],real>(F043A,pos0584);
          real _t0593#1 = Probe<tensor[2],real>(T0432,v000444);
          real _t0595#2 = Sub<real>(_t0591,_t0593);
          real _t059D#1 = Mul<real>(_t0595,_t0595);
          real score059F#1 = Add<real>(score050D,_t059D);
          goto JOIN0590
        JOIN0590:  preds = [ASSIGN05A1,COND05A2]
          real score05A0#2 = phi(score059F,score050D)
          real _t05A3#1 = Dot<tensor[2]>(r00544,v01044E);
          real _t05A5#1 = Dot<tensor[2]>(r10572,v01044E);
          tensor[2] _t05A7#1 = <tensor[2]>[_t05A3,_t05A5];
          tensor[2] pos05B3#3 = Add<tensor[2]>(_t05A7,_t0582);
          bool _t05B6#1 = Inside<2>(pos05B3,F043A);
          if _t05B6 then goto ASSIGN05BB else goto ASSIGN05BD
        ASSIGN05BB:  preds = [COND05BE]
          bool _t05B9#1 = Inside<2>(v01044E,T0432);
          goto JOIN05B8
        JOIN05B8:  preds = [ASSIGN05BB,ASSIGN05BD]
          bool _t05BA#1 = phi(_t05B9,_t05BC)
          if _t05BA then goto ASSIGN05C1 else goto JOIN05BF
        ASSIGN05C1:  preds = [COND05D1]
          real _t05C0#1 = Probe<tensor[2],real>(F043A,pos05B3);
          real _t05C2#1 = Probe<tensor[2],real>(T0432,v01044E);
          real _t05C4#2 = Sub<real>(_t05C0,_t05C2);
          real _t05CC#1 = Mul<real>(_t05C4,_t05C4);
          real score05CE#1 = Add<real>(score05A0,_t05CC);
          goto JOIN05BF
        JOIN05BF:  preds = [ASSIGN05D0,COND05D1]
          real score05CF#2 = phi(score05CE,score05A0)
          real _t05D2#1 = Dot<tensor[2]>(r00544,v020456);
          real _t05D4#1 = Dot<tensor[2]>(r10572,v020456);
          tensor[2] _t05D6#1 = <tensor[2]>[_t05D2,_t05D4];
          tensor[2] pos05E2#3 = Add<tensor[2]>(_t05D6,_t0582);
          bool _t05E5#1 = Inside<2>(pos05E2,F043A);
          if _t05E5 then goto ASSIGN05EA else goto ASSIGN05EC
        ASSIGN05EA:  preds = [COND05ED]
          bool _t05E8#1 = Inside<2>(v020456,T0432);
          goto JOIN05E7
        JOIN05E7:  preds = [ASSIGN05EA,ASSIGN05EC]
          bool _t05E9#1 = phi(_t05E8,_t05EB)
          if _t05E9 then goto ASSIGN05F0 else goto JOIN05EE
        ASSIGN05F0:  preds = [COND0600]
          real _t05EF#1 = Probe<tensor[2],real>(F043A,pos05E2);
          real _t05F1#1 = Probe<tensor[2],real>(T0432,v020456);
          real _t05F3#2 = Sub<real>(_t05EF,_t05F1);
          real _t05FB#1 = Mul<real>(_t05F3,_t05F3);
          real score05FD#1 = Add<real>(score05CF,_t05FB);
          goto JOIN05EE
        JOIN05EE:  preds = [ASSIGN05FF,COND0600]
          real score05FE#2 = phi(score05FD,score05CF)
          real _t0601#1 = Dot<tensor[2]>(r00544,v03045E);
          real _t0603#1 = Dot<tensor[2]>(r10572,v03045E);
          tensor[2] _t0605#1 = <tensor[2]>[_t0601,_t0603];
          tensor[2] pos0611#3 = Add<tensor[2]>(_t0605,_t0582);
          bool _t0614#1 = Inside<2>(pos0611,F043A);
          if _t0614 then goto ASSIGN0619 else goto ASSIGN061B
        ASSIGN0619:  preds = [COND061C]
          bool _t0617#1 = Inside<2>(v03045E,T0432);
          goto JOIN0616
        JOIN0616:  preds = [ASSIGN0619,ASSIGN061B]
          bool _t0618#1 = phi(_t0617,_t061A)
          if _t0618 then goto ASSIGN061F else goto JOIN061D
        ASSIGN061F:  preds = [COND062F]
          real _t061E#1 = Probe<tensor[2],real>(F043A,pos0611);
          real _t0620#1 = Probe<tensor[2],real>(T0432,v03045E);
          real _t0622#2 = Sub<real>(_t061E,_t0620);
          real _t062A#1 = Mul<real>(_t0622,_t0622);
          real score062C#1 = Add<real>(score05FE,_t062A);
          goto JOIN061D
        JOIN061D:  preds = [ASSIGN062E,COND062F]
          real score062D#2 = phi(score062C,score05FE)
          real _t0630#1 = Dot<tensor[2]>(r00544,v040466);
          real _t0632#1 = Dot<tensor[2]>(r10572,v040466);
          tensor[2] _t0634#1 = <tensor[2]>[_t0630,_t0632];
          tensor[2] pos0640#4 = Add<tensor[2]>(_t0634,_t0582);
          bool _t0643#2 = Inside<2>(pos0640,F043A);
          if _t0643 then goto ASSIGN0648 else goto ASSIGN064A
        ASSIGN0648:  preds = [COND064B]
          bool _t0646#1 = Inside<2>(v040466,T0432);
          goto JOIN0645
        JOIN0645:  preds = [ASSIGN0648,ASSIGN064A]
          bool _t0647#2 = phi(_t0646,_t0649)
          if _t0647 then goto ASSIGN064E else goto JOIN064C
        ASSIGN064E:  preds = [COND065E]
          real _t064D#1 = Probe<tensor[2],real>(F043A,pos0640);
          real _t064F#1 = Probe<tensor[2],real>(T0432,v040466);
          real _t0651#2 = Sub<real>(_t064D,_t064F);
          real _t0659#1 = Mul<real>(_t0651,_t0651);
          real score065B#1 = Add<real>(score062D,_t0659);
          goto JOIN064C
        JOIN064C:  preds = [ASSIGN065D,COND065E]
          real score065C#2 = phi(score065B,score062D)
          real _t065F#1 = Dot<tensor[2]>(r00544,v050470);
          real _t0661#1 = Dot<tensor[2]>(r10572,v050470);
          tensor[2] _t0663#1 = <tensor[2]>[_t065F,_t0661];
          tensor[2] pos066F#3 = Add<tensor[2]>(_t0663,_t0582);
          bool _t0672#1 = Inside<2>(pos066F,F043A);
          if _t0672 then goto ASSIGN0677 else goto ASSIGN0679
        ASSIGN0677:  preds = [COND067A]
          bool _t0675#1 = Inside<2>(v050470,T0432);
          goto JOIN0674
        JOIN0674:  preds = [ASSIGN0677,ASSIGN0679]
          bool _t0676#1 = phi(_t0675,_t0678)
          if _t0676 then goto ASSIGN067D else goto JOIN067B
        ASSIGN067D:  preds = [COND068D]
          real _t067C#1 = Probe<tensor[2],real>(F043A,pos066F);
          real _t067E#1 = Probe<tensor[2],real>(T0432,v050470);
          real _t0680#2 = Sub<real>(_t067C,_t067E);
          real _t0688#1 = Mul<real>(_t0680,_t0680);
          real score068A#1 = Add<real>(score065C,_t0688);
          goto JOIN067B
        JOIN067B:  preds = [ASSIGN068C,COND068D]
          real score068B#2 = phi(score068A,score065C)
          real _t068E#1 = Dot<tensor[2]>(r00544,v060478);
          real _t0690#1 = Dot<tensor[2]>(r10572,v060478);
          tensor[2] _t0692#1 = <tensor[2]>[_t068E,_t0690];
          tensor[2] pos069E#3 = Add<tensor[2]>(_t0692,_t0582);
          bool _t06A1#1 = Inside<2>(pos069E,F043A);
          if _t06A1 then goto ASSIGN06A6 else goto ASSIGN06A8
        ASSIGN06A6:  preds = [COND06A9]
          bool _t06A4#1 = Inside<2>(v060478,T0432);
          goto JOIN06A3
        JOIN06A3:  preds = [ASSIGN06A6,ASSIGN06A8]
          bool _t06A5#1 = phi(_t06A4,_t06A7)
          if _t06A5 then goto ASSIGN06AC else goto JOIN06AA
        ASSIGN06AC:  preds = [COND06BC]
          real _t06AB#1 = Probe<tensor[2],real>(F043A,pos069E);
          real _t06AD#1 = Probe<tensor[2],real>(T0432,v060478);
          real _t06AF#2 = Sub<real>(_t06AB,_t06AD);
          real _t06B7#1 = Mul<real>(_t06AF,_t06AF);
          real score06B9#1 = Add<real>(score068B,_t06B7);
          goto JOIN06AA
        JOIN06AA:  preds = [ASSIGN06BB,COND06BC]
          real score06BA#2 = phi(score06B9,score068B)
          if _t0643 then goto ASSIGN087E else goto ASSIGN06D7
        ASSIGN087E:  preds = [COND087D]
          bool _t06D3#0 = Inside<2>(v040466,T0432);
          goto JOIN06D2
        JOIN06D2:  preds = [ASSIGN087E,ASSIGN06D7]
          if _t0647 then goto ASSIGN0880 else goto JOIN06D9
        ASSIGN0880:  preds = [COND087F]
          real _t06DA#1 = Probe<tensor[2],real>(F043A,pos0640);
          real _t06DC#1 = Probe<tensor[2],real>(T0432,v040466);
          real _t06DE#2 = Sub<real>(_t06DA,_t06DC);
          real _t06E6#1 = Mul<real>(_t06DE,_t06DE);
          real score06E8#1 = Add<real>(score06BA,_t06E6);
          goto JOIN06D9
        JOIN06D9:  preds = [ASSIGN06EA,COND087F]
          real score06E9#2 = phi(score06E8,score06BA)
          real _t06EC#1 = Dot<tensor[2]>(r00544,v080488);
          real _t06EE#1 = Dot<tensor[2]>(r10572,v080488);
          tensor[2] _t06F0#1 = <tensor[2]>[_t06EC,_t06EE];
          tensor[2] pos06FC#3 = Add<tensor[2]>(_t06F0,_t0582);
          bool _t06FF#1 = Inside<2>(pos06FC,F043A);
          if _t06FF then goto ASSIGN0704 else goto ASSIGN0706
        ASSIGN0704:  preds = [COND0707]
          bool _t0702#1 = Inside<2>(v080488,T0432);
          goto JOIN0701
        JOIN0701:  preds = [ASSIGN0704,ASSIGN0706]
          bool _t0703#1 = phi(_t0702,_t0705)
          if _t0703 then goto ASSIGN070A else goto JOIN0708
        ASSIGN070A:  preds = [COND071A]
          real _t0709#1 = Probe<tensor[2],real>(F043A,pos06FC);
          real _t070B#1 = Probe<tensor[2],real>(T0432,v080488);
          real _t070D#2 = Sub<real>(_t0709,_t070B);
          real _t0715#1 = Mul<real>(_t070D,_t070D);
          real score0717#1 = Add<real>(score06E9,_t0715);
          goto JOIN0708
        JOIN0708:  preds = [ASSIGN0719,COND071A]
          real score0718#2 = phi(score0717,score06E9)
          real _t071B#1 = Dot<tensor[2]>(r00544,v090490);
          real _t071D#1 = Dot<tensor[2]>(r10572,v090490);
          tensor[2] _t071F#1 = <tensor[2]>[_t071B,_t071D];
          tensor[2] pos072B#3 = Add<tensor[2]>(_t071F,_t0582);
          bool _t072E#1 = Inside<2>(pos072B,F043A);
          if _t072E then goto ASSIGN0733 else goto ASSIGN0735
        ASSIGN0733:  preds = [COND0736]
          bool _t0731#1 = Inside<2>(v090490,T0432);
          goto JOIN0730
        JOIN0730:  preds = [ASSIGN0733,ASSIGN0735]
          bool _t0732#1 = phi(_t0731,_t0734)
          if _t0732 then goto ASSIGN0739 else goto JOIN0737
        ASSIGN0739:  preds = [COND0749]
          real _t0738#1 = Probe<tensor[2],real>(F043A,pos072B);
          real _t073A#1 = Probe<tensor[2],real>(T0432,v090490);
          real _t073C#2 = Sub<real>(_t0738,_t073A);
          real _t0744#1 = Mul<real>(_t073C,_t073C);
          real score0746#1 = Add<real>(score0718,_t0744);
          goto JOIN0737
        JOIN0737:  preds = [ASSIGN0748,COND0749]
          real score0747#2 = phi(score0746,score0718)
          real _t074A#1 = Dot<tensor[2]>(r00544,v100496);
          real _t074C#1 = Dot<tensor[2]>(r10572,v100496);
          tensor[2] _t074E#1 = <tensor[2]>[_t074A,_t074C];
          tensor[2] pos075A#3 = Add<tensor[2]>(_t074E,_t0582);
          bool _t075D#1 = Inside<2>(pos075A,F043A);
          if _t075D then goto ASSIGN0762 else goto ASSIGN0764
        ASSIGN0762:  preds = [COND0765]
          bool _t0760#1 = Inside<2>(v100496,T0432);
          goto JOIN075F
        JOIN075F:  preds = [ASSIGN0762,ASSIGN0764]
          bool _t0761#1 = phi(_t0760,_t0763)
          if _t0761 then goto ASSIGN0768 else goto JOIN0766
        ASSIGN0768:  preds = [COND0778]
          real _t0767#1 = Probe<tensor[2],real>(F043A,pos075A);
          real _t0769#1 = Probe<tensor[2],real>(T0432,v100496);
          real _t076B#2 = Sub<real>(_t0767,_t0769);
          real _t0773#1 = Mul<real>(_t076B,_t076B);
          real score0775#1 = Add<real>(score0747,_t0773);
          goto JOIN0766
        JOIN0766:  preds = [ASSIGN0777,COND0778]
          real score0776#2 = phi(score0775,score0747)
          real _t0779#1 = Dot<tensor[2]>(r00544,v11049C);
          real _t077B#1 = Dot<tensor[2]>(r10572,v11049C);
          tensor[2] _t077D#1 = <tensor[2]>[_t0779,_t077B];
          tensor[2] pos0789#3 = Add<tensor[2]>(_t077D,_t0582);
          bool _t078C#1 = Inside<2>(pos0789,F043A);
          if _t078C then goto ASSIGN0791 else goto ASSIGN0793
        ASSIGN0791:  preds = [COND0794]
          bool _t078F#1 = Inside<2>(v11049C,T0432);
          goto JOIN078E
        JOIN078E:  preds = [ASSIGN0791,ASSIGN0793]
          bool _t0790#1 = phi(_t078F,_t0792)
          if _t0790 then goto ASSIGN0797 else goto JOIN0795
        ASSIGN0797:  preds = [COND07A7]
          real _t0796#1 = Probe<tensor[2],real>(F043A,pos0789);
          real _t0798#1 = Probe<tensor[2],real>(T0432,v11049C);
          real _t079A#2 = Sub<real>(_t0796,_t0798);
          real _t07A2#1 = Mul<real>(_t079A,_t079A);
          real score07A4#1 = Add<real>(score0776,_t07A2);
          goto JOIN0795
        JOIN0795:  preds = [ASSIGN07A6,COND07A7]
          real score07A5#2 = phi(score07A4,score0776)
          real _t07A8#1 = Dot<tensor[2]>(r00544,v1204A4);
          real _t07AA#1 = Dot<tensor[2]>(r10572,v1204A4);
          tensor[2] _t07AC#1 = <tensor[2]>[_t07A8,_t07AA];
          tensor[2] pos07B8#3 = Add<tensor[2]>(_t07AC,_t0582);
          bool _t07BB#1 = Inside<2>(pos07B8,F043A);
          if _t07BB then goto ASSIGN07C0 else goto ASSIGN07C2
        ASSIGN07C0:  preds = [COND07C3]
          bool _t07BE#1 = Inside<2>(v1204A4,T0432);
          goto JOIN07BD
        JOIN07BD:  preds = [ASSIGN07C0,ASSIGN07C2]
          bool _t07BF#1 = phi(_t07BE,_t07C1)
          if _t07BF then goto ASSIGN07C6 else goto JOIN07C4
        ASSIGN07C6:  preds = [COND07D6]
          real _t07C5#1 = Probe<tensor[2],real>(F043A,pos07B8);
          real _t07C7#1 = Probe<tensor[2],real>(T0432,v1204A4);
          real _t07C9#2 = Sub<real>(_t07C5,_t07C7);
          real _t07D1#1 = Mul<real>(_t07C9,_t07C9);
          real score07D3#1 = Add<real>(score07A5,_t07D1);
          goto JOIN07C4
        JOIN07C4:  preds = [ASSIGN07D5,COND07D6]
          real score07D4#2 = phi(score07D3,score07A5)
          real _t07D7#1 = Dot<tensor[2]>(r00544,v1304AC);
          real _t07D9#1 = Dot<tensor[2]>(r10572,v1304AC);
          tensor[2] _t07DB#1 = <tensor[2]>[_t07D7,_t07D9];
          tensor[2] pos07E7#3 = Add<tensor[2]>(_t07DB,_t0582);
          bool _t07EA#1 = Inside<2>(pos07E7,F043A);
          if _t07EA then goto ASSIGN07EF else goto ASSIGN07F1
        ASSIGN07EF:  preds = [COND07F2]
          bool _t07ED#1 = Inside<2>(v1304AC,T0432);
          goto JOIN07EC
        JOIN07EC:  preds = [ASSIGN07EF,ASSIGN07F1]
          bool _t07EE#1 = phi(_t07ED,_t07F0)
          if _t07EE then goto ASSIGN07F5 else goto JOIN07F3
        ASSIGN07F5:  preds = [COND0805]
          real _t07F4#1 = Probe<tensor[2],real>(F043A,pos07E7);
          real _t07F6#1 = Probe<tensor[2],real>(T0432,v1304AC);
          real _t07F8#2 = Sub<real>(_t07F4,_t07F6);
          real _t0800#1 = Mul<real>(_t07F8,_t07F8);
          real score0802#1 = Add<real>(score07D4,_t0800);
          goto JOIN07F3
        JOIN07F3:  preds = [ASSIGN0804,COND0805]
          real score0803#2 = phi(score0802,score07D4)
          real _t0806#1 = Dot<tensor[2]>(r00544,v1404B2);
          real _t0808#1 = Dot<tensor[2]>(r10572,v1404B2);
          tensor[2] _t080A#1 = <tensor[2]>[_t0806,_t0808];
          tensor[2] pos0816#4 = Add<tensor[2]>(_t080A,_t0582);
          bool _t0819#1 = Inside<2>(pos0816,F043A);
          if _t0819 then goto ASSIGN081E else goto ASSIGN0820
        ASSIGN081E:  preds = [COND0821]
          bool _t081C#1 = Inside<2>(v1404B2,T0432);
          goto JOIN081B
        JOIN081B:  preds = [ASSIGN081E,ASSIGN0820]
          bool _t081D#1 = phi(_t081C,_t081F)
          if _t081D then goto ASSIGN0824 else goto JOIN0822
        ASSIGN0824:  preds = [COND0834]
          real _t0823#1 = Probe<tensor[2],real>(F043A,pos0816);
          real _t0825#1 = Probe<tensor[2],real>(T0432,v1404B2);
          real _t0827#2 = Sub<real>(_t0823,_t0825);
          real _t082F#1 = Mul<real>(_t0827,_t0827);
          real score0831#1 = Add<real>(score0803,_t082F);
          goto JOIN0822
        JOIN0822:  preds = [ASSIGN0833,COND0834]
          real score0832#1 = phi(score0831,score0803)
          self.t = t050C;
          self.score = score0832;
          self.r0 = r00544;
          self.r1 = r10572;
          self.pos = pos0816;
          stabilize ()
        ASSIGN0820:  preds = [COND0821]
          bool _t081F#1 = false;
          goto JOIN081B
        ASSIGN07F1:  preds = [COND07F2]
          bool _t07F0#1 = false;
          goto JOIN07EC
        ASSIGN07C2:  preds = [COND07C3]
          bool _t07C1#1 = false;
          goto JOIN07BD
        ASSIGN0793:  preds = [COND0794]
          bool _t0792#1 = false;
          goto JOIN078E
        ASSIGN0764:  preds = [COND0765]
          bool _t0763#1 = false;
          goto JOIN075F
        ASSIGN0735:  preds = [COND0736]
          bool _t0734#1 = false;
          goto JOIN0730
        ASSIGN0706:  preds = [COND0707]
          bool _t0705#1 = false;
          goto JOIN0701
        ASSIGN06D7:  preds = [COND087D]
          bool _t06D6#0 = false;
          goto JOIN06D2
        ASSIGN06A8:  preds = [COND06A9]
          bool _t06A7#1 = false;
          goto JOIN06A3
        ASSIGN0679:  preds = [COND067A]
          bool _t0678#1 = false;
          goto JOIN0674
        ASSIGN064A:  preds = [COND064B]
          bool _t0649#1 = false;
          goto JOIN0645
        ASSIGN061B:  preds = [COND061C]
          bool _t061A#1 = false;
          goto JOIN0616
        ASSIGN05EC:  preds = [COND05ED]
          bool _t05EB#1 = false;
          goto JOIN05E7
        ASSIGN05BD:  preds = [COND05BE]
          bool _t05BC#1 = false;
          goto JOIN05B8
        ASSIGN058E:  preds = [COND058F]
          bool _t058D#1 = false;
          goto JOIN0589
    end Update
    method Stabilize
        ENTRY0847:  preds = []
          tensor[3] t083D#1 = self.t;
          real score083E#1 = self.score;
          tensor[2] r0083F#1 = self.r0;
          tensor[2] r10840#1 = self.r1;
          tensor[2] pos0841#1 = self.pos;
          self.t = t083D;
          self.score = score083E;
          self.r0 = r0083F;
          self.r1 = r10840;
          self.pos = pos0841;
          return ()
    end Stabilize
  end R
#### end program ####
++ high-opt:unused
++ high-opt:unused
++ high-opt:unused
++ high-opt:unused
++ high-opt:unused
##### HighIL after normalization ####
## properties
  none
## globals
  global field T0432#44
  global field F043A#45
  global tensor[2] v000444#5
  global tensor[2] v01044E#5
  global tensor[2] v020456#5
  global tensor[2] v03045E#5
  global tensor[2] v050470#5
  global tensor[2] v060478#5
  global tensor[2] v040466#7
  global tensor[2] v080488#5
  global tensor[2] v090490#5
  global tensor[2] v100496#5
  global tensor[2] v11049C#5
  global tensor[2] v1204A4#5
  global tensor[2] v1304AC#5
  global tensor[2] v1404B2#5
  global string _t042E#1
  global image2D _t0430#1
  global kernel _t042C#3
  global string _t0436#1
  global image2D _t0438#1
  global real _t043E#13
  global real _t044C#14
  global real _t043C#20
  global real _t044A#24
## global initialization
  ENTRY04B4:  preds = []
    kernel _t042C#3 = Kernel<bspln3,0>;
    string _t042E#1 = "square-template.nrrd";
    image2D _t0430#1 = LoadImage<IMAGE2D<int>>(_t042E);
    field T0432#44 = Field<2>(_t0430,_t042C);
    string _t0436#1 = "square-rotate.nrrd";
    image2D _t0438#1 = LoadImage<IMAGE2D<float>>(_t0436);
    field F043A#45 = Field<2>(_t0438,_t042C);
    real _t043C#20 = 0.5e0;
    real _t043E#13 = Neg<real>(_t043C);
    tensor[2] v000444#5 = <tensor[2]>[_t043E,_t043E];
    real _t044A#24 = 0.15e0;
    real _t044C#14 = Neg<real>(_t044A);
    tensor[2] v01044E#5 = <tensor[2]>[_t043E,_t044C];
    tensor[2] v020456#5 = <tensor[2]>[_t043E,_t044A];
    tensor[2] v03045E#5 = <tensor[2]>[_t043E,_t043C];
    tensor[2] v040466#7 = <tensor[2]>[_t044C,_t043C];
    tensor[2] v050470#5 = <tensor[2]>[_t044C,_t044C];
    tensor[2] v060478#5 = <tensor[2]>[_t044C,_t044A];
    tensor[2] v080488#5 = <tensor[2]>[_t044A,_t043E];
    tensor[2] v090490#5 = <tensor[2]>[_t044A,_t044C];
    tensor[2] v100496#5 = <tensor[2]>[_t044A,_t044A];
    tensor[2] v11049C#5 = <tensor[2]>[_t044A,_t043C];
    tensor[2] v1204A4#5 = <tensor[2]>[_t043C,_t043E];
    tensor[2] v1304AC#5 = <tensor[2]>[_t043C,_t044C];
    tensor[2] v1404B2#5 = <tensor[2]>[_t043C,_t044A];
    return (T0432,F043A,v000444,v01044E,v020456,v03045E,v050470,v060478,v040466,v080488,v090490,v100496,v11049C,v1204A4,v1304AC,v1404B2,_t042E,_t0430,_t042C,_t0436,_t0438,_t043E,_t044C,_t043C,_t044A)
## initially
  ARRAY
    ENTRY04C2:  preds = []
      int _t04B6#4 = 0;
      int _t04B8#4 = 60;
      live vars = (_t04B8,_t04B6)
    for int i04C4#1 = _t04B6 .. _t04B8
      for int j04C5#1 = _t04B6 .. _t04B8
        for int k04C6#1 = _t04B6 .. _t04B8
          ENTRY04C7:  preds = []
            live vars = ()
          new R(i04C4,j04C5,k04C6);
## strands
  strand R (int i04C9#1, int j04CA#1, int k04CB#1)
    state: tensor[3] self.t;output real self.score;tensor[2] self.r0;tensor[2] self.r1;tensor[2] self.pos;
      ENTRY0505:  preds = []
        real _t04D1#1 = IntToReal(i04C9);
        real _t04D3#3 = 0.60e2;
        real _t04D5#1 = Div<real>(_t04D1,_t04D3);
        real _t04D7#3 = 0.5e0;
        real _t04D9#1 = Sub<real>(_t04D5,_t04D7);
        real _t04DB#1 = IntToReal(j04CA);
        real _t04DF#1 = Div<real>(_t04DB,_t04D3);
        real _t04E3#1 = Sub<real>(_t04DF,_t04D7);
        real _t04E5#1 = IntToReal(k04CB);
        real _t04E9#1 = Div<real>(_t04E5,_t04D3);
        real _t04ED#1 = Sub<real>(_t04E9,_t04D7);
        tensor[3] t04EF#1 = <tensor[3]>[_t04D9,_t04E3,_t04ED];
        real score04F1#3 = 0.0;
        tensor[2] r004F7#3 = <tensor[2]>[score04F1,score04F1];
        self.t = t04EF;
        self.score = score04F1;
        self.r0 = r004F7;
        self.r1 = r004F7;
        self.pos = r004F7;
        strand_init ()
    method Update
        ENTRY083B:  preds = []
          tensor[3] t050C#41 = self.t;
          real score050D#2 = self.score;
          real _t0516#2 = 0.1e1;
          real _t0518#3 = 0.2e1;
          int _t051A#1 = 2;
          real _t051C#6 = TensorSub<tensor[3]>(t050C,_t051A);
          real _t051E#1 = Mul<real>(_t0518,_t051C);
          real _t0524#1 = Mul<real>(_t051E,_t051C);
          real _t0526#2 = Sub<real>(_t0516,_t0524);
          real _t052A#1 = Neg<real>(_t0518);
          real _t0536#1 = Mul<real>(_t051C,_t051C);
          real _t0538#1 = Sub<real>(_t0516,_t0536);
          real _t053A#2 = sqrt(_t0538);
          real _t053C#1 = Mul<real>(_t052A,_t053A);
          real _t0542#1 = Mul<real>(_t053C,_t051C);
          tensor[2] r00544#16 = <tensor[2]>[_t0526,_t0542];
          real _t0558#1 = Mul<real>(_t0518,_t053A);
          real _t055E#1 = Mul<real>(_t0558,_t051C);
          tensor[2] r10572#16 = <tensor[2]>[_t055E,_t0526];
          real _t0574#1 = Dot<tensor[2]>(r00544,v000444);
          real _t0576#1 = Dot<tensor[2]>(r10572,v000444);
          tensor[2] _t0578#1 = <tensor[2]>[_t0574,_t0576];
          int _t057A#1 = 0;
          real _t057C#1 = TensorSub<tensor[3]>(t050C,_t057A);
          int _t057E#1 = 1;
          real _t0580#1 = TensorSub<tensor[3]>(t050C,_t057E);
          tensor[2] _t0582#14 = <tensor[2]>[_t057C,_t0580];
          tensor[2] pos0584#3 = Add<tensor[2]>(_t0578,_t0582);
          bool _t0587#1 = Inside<2>(pos0584,F043A);
          if _t0587 then goto ASSIGN058C else goto ASSIGN058E
        ASSIGN058C:  preds = [COND058F]
          bool _t058A#1 = Inside<2>(v000444,T0432);
          goto JOIN0589
        JOIN0589:  preds = [ASSIGN058C,ASSIGN058E]
          bool _t058B#1 = phi(_t058A,_t058D)
          if _t058B then goto ASSIGN0592 else goto JOIN0590
        ASSIGN0592:  preds = [COND05A2]
          real _t0591#1 = Probe<tensor[2],real>(F043A,pos0584);
          real _t0593#1 = Probe<tensor[2],real>(T0432,v000444);
          real _t0595#2 = Sub<real>(_t0591,_t0593);
          real _t059D#1 = Mul<real>(_t0595,_t0595);
          real score059F#1 = Add<real>(score050D,_t059D);
          goto JOIN0590
        JOIN0590:  preds = [ASSIGN05A1,COND05A2]
          real score05A0#2 = phi(score059F,score050D)
          real _t05A3#1 = Dot<tensor[2]>(r00544,v01044E);
          real _t05A5#1 = Dot<tensor[2]>(r10572,v01044E);
          tensor[2] _t05A7#1 = <tensor[2]>[_t05A3,_t05A5];
          tensor[2] pos05B3#3 = Add<tensor[2]>(_t05A7,_t0582);
          bool _t05B6#1 = Inside<2>(pos05B3,F043A);
          if _t05B6 then goto ASSIGN05BB else goto ASSIGN05BD
        ASSIGN05BB:  preds = [COND05BE]
          bool _t05B9#1 = Inside<2>(v01044E,T0432);
          goto JOIN05B8
        JOIN05B8:  preds = [ASSIGN05BB,ASSIGN05BD]
          bool _t05BA#1 = phi(_t05B9,_t05BC)
          if _t05BA then goto ASSIGN05C1 else goto JOIN05BF
        ASSIGN05C1:  preds = [COND05D1]
          real _t05C0#1 = Probe<tensor[2],real>(F043A,pos05B3);
          real _t05C2#1 = Probe<tensor[2],real>(T0432,v01044E);
          real _t05C4#2 = Sub<real>(_t05C0,_t05C2);
          real _t05CC#1 = Mul<real>(_t05C4,_t05C4);
          real score05CE#1 = Add<real>(score05A0,_t05CC);
          goto JOIN05BF
        JOIN05BF:  preds = [ASSIGN05D0,COND05D1]
          real score05CF#2 = phi(score05CE,score05A0)
          real _t05D2#1 = Dot<tensor[2]>(r00544,v020456);
          real _t05D4#1 = Dot<tensor[2]>(r10572,v020456);
          tensor[2] _t05D6#1 = <tensor[2]>[_t05D2,_t05D4];
          tensor[2] pos05E2#3 = Add<tensor[2]>(_t05D6,_t0582);
          bool _t05E5#1 = Inside<2>(pos05E2,F043A);
          if _t05E5 then goto ASSIGN05EA else goto ASSIGN05EC
        ASSIGN05EA:  preds = [COND05ED]
          bool _t05E8#1 = Inside<2>(v020456,T0432);
          goto JOIN05E7
        JOIN05E7:  preds = [ASSIGN05EA,ASSIGN05EC]
          bool _t05E9#1 = phi(_t05E8,_t05EB)
          if _t05E9 then goto ASSIGN05F0 else goto JOIN05EE
        ASSIGN05F0:  preds = [COND0600]
          real _t05EF#1 = Probe<tensor[2],real>(F043A,pos05E2);
          real _t05F1#1 = Probe<tensor[2],real>(T0432,v020456);
          real _t05F3#2 = Sub<real>(_t05EF,_t05F1);
          real _t05FB#1 = Mul<real>(_t05F3,_t05F3);
          real score05FD#1 = Add<real>(score05CF,_t05FB);
          goto JOIN05EE
        JOIN05EE:  preds = [ASSIGN05FF,COND0600]
          real score05FE#2 = phi(score05FD,score05CF)
          real _t0601#1 = Dot<tensor[2]>(r00544,v03045E);
          real _t0603#1 = Dot<tensor[2]>(r10572,v03045E);
          tensor[2] _t0605#1 = <tensor[2]>[_t0601,_t0603];
          tensor[2] pos0611#3 = Add<tensor[2]>(_t0605,_t0582);
          bool _t0614#1 = Inside<2>(pos0611,F043A);
          if _t0614 then goto ASSIGN0619 else goto ASSIGN061B
        ASSIGN0619:  preds = [COND061C]
          bool _t0617#1 = Inside<2>(v03045E,T0432);
          goto JOIN0616
        JOIN0616:  preds = [ASSIGN0619,ASSIGN061B]
          bool _t0618#1 = phi(_t0617,_t061A)
          if _t0618 then goto ASSIGN061F else goto JOIN061D
        ASSIGN061F:  preds = [COND062F]
          real _t061E#1 = Probe<tensor[2],real>(F043A,pos0611);
          real _t0620#1 = Probe<tensor[2],real>(T0432,v03045E);
          real _t0622#2 = Sub<real>(_t061E,_t0620);
          real _t062A#1 = Mul<real>(_t0622,_t0622);
          real score062C#1 = Add<real>(score05FE,_t062A);
          goto JOIN061D
        JOIN061D:  preds = [ASSIGN062E,COND062F]
          real score062D#2 = phi(score062C,score05FE)
          real _t0630#1 = Dot<tensor[2]>(r00544,v040466);
          real _t0632#1 = Dot<tensor[2]>(r10572,v040466);
          tensor[2] _t0634#1 = <tensor[2]>[_t0630,_t0632];
          tensor[2] pos0640#4 = Add<tensor[2]>(_t0634,_t0582);
          bool _t0643#2 = Inside<2>(pos0640,F043A);
          if _t0643 then goto ASSIGN0648 else goto ASSIGN064A
        ASSIGN0648:  preds = [COND064B]
          bool _t0646#1 = Inside<2>(v040466,T0432);
          goto JOIN0645
        JOIN0645:  preds = [ASSIGN0648,ASSIGN064A]
          bool _t0647#2 = phi(_t0646,_t0649)
          if _t0647 then goto ASSIGN064E else goto JOIN064C
        ASSIGN064E:  preds = [COND065E]
          real _t064D#1 = Probe<tensor[2],real>(F043A,pos0640);
          real _t064F#1 = Probe<tensor[2],real>(T0432,v040466);
          real _t0651#2 = Sub<real>(_t064D,_t064F);
          real _t0659#1 = Mul<real>(_t0651,_t0651);
          real score065B#1 = Add<real>(score062D,_t0659);
          goto JOIN064C
        JOIN064C:  preds = [ASSIGN065D,COND065E]
          real score065C#2 = phi(score065B,score062D)
          real _t065F#1 = Dot<tensor[2]>(r00544,v050470);
          real _t0661#1 = Dot<tensor[2]>(r10572,v050470);
          tensor[2] _t0663#1 = <tensor[2]>[_t065F,_t0661];
          tensor[2] pos066F#3 = Add<tensor[2]>(_t0663,_t0582);
          bool _t0672#1 = Inside<2>(pos066F,F043A);
          if _t0672 then goto ASSIGN0677 else goto ASSIGN0679
        ASSIGN0677:  preds = [COND067A]
          bool _t0675#1 = Inside<2>(v050470,T0432);
          goto JOIN0674
        JOIN0674:  preds = [ASSIGN0677,ASSIGN0679]
          bool _t0676#1 = phi(_t0675,_t0678)
          if _t0676 then goto ASSIGN067D else goto JOIN067B
        ASSIGN067D:  preds = [COND068D]
          real _t067C#1 = Probe<tensor[2],real>(F043A,pos066F);
          real _t067E#1 = Probe<tensor[2],real>(T0432,v050470);
          real _t0680#2 = Sub<real>(_t067C,_t067E);
          real _t0688#1 = Mul<real>(_t0680,_t0680);
          real score068A#1 = Add<real>(score065C,_t0688);
          goto JOIN067B
        JOIN067B:  preds = [ASSIGN068C,COND068D]
          real score068B#2 = phi(score068A,score065C)
          real _t068E#1 = Dot<tensor[2]>(r00544,v060478);
          real _t0690#1 = Dot<tensor[2]>(r10572,v060478);
          tensor[2] _t0692#1 = <tensor[2]>[_t068E,_t0690];
          tensor[2] pos069E#3 = Add<tensor[2]>(_t0692,_t0582);
          bool _t06A1#1 = Inside<2>(pos069E,F043A);
          if _t06A1 then goto ASSIGN06A6 else goto ASSIGN06A8
        ASSIGN06A6:  preds = [COND06A9]
          bool _t06A4#1 = Inside<2>(v060478,T0432);
          goto JOIN06A3
        JOIN06A3:  preds = [ASSIGN06A6,ASSIGN06A8]
          bool _t06A5#1 = phi(_t06A4,_t06A7)
          if _t06A5 then goto ASSIGN06AC else goto JOIN06AA
        ASSIGN06AC:  preds = [COND06BC]
          real _t06AB#1 = Probe<tensor[2],real>(F043A,pos069E);
          real _t06AD#1 = Probe<tensor[2],real>(T0432,v060478);
          real _t06AF#2 = Sub<real>(_t06AB,_t06AD);
          real _t06B7#1 = Mul<real>(_t06AF,_t06AF);
          real score06B9#1 = Add<real>(score068B,_t06B7);
          goto JOIN06AA
        JOIN06AA:  preds = [ASSIGN06BB,COND06BC]
          real score06BA#2 = phi(score06B9,score068B)
          if _t0643 then goto JOIN06D2 else goto JOIN06D2
        JOIN06D2:  preds = [ASSIGN087E,ASSIGN06D7,COND087D]
          if _t0647 then goto ASSIGN0880 else goto JOIN06D9
        ASSIGN0880:  preds = [COND087F]
          real _t06DA#1 = Probe<tensor[2],real>(F043A,pos0640);
          real _t06DC#1 = Probe<tensor[2],real>(T0432,v040466);
          real _t06DE#2 = Sub<real>(_t06DA,_t06DC);
          real _t06E6#1 = Mul<real>(_t06DE,_t06DE);
          real score06E8#1 = Add<real>(score06BA,_t06E6);
          goto JOIN06D9
        JOIN06D9:  preds = [ASSIGN06EA,COND087F]
          real score06E9#2 = phi(score06E8,score06BA)
          real _t06EC#1 = Dot<tensor[2]>(r00544,v080488);
          real _t06EE#1 = Dot<tensor[2]>(r10572,v080488);
          tensor[2] _t06F0#1 = <tensor[2]>[_t06EC,_t06EE];
          tensor[2] pos06FC#3 = Add<tensor[2]>(_t06F0,_t0582);
          bool _t06FF#1 = Inside<2>(pos06FC,F043A);
          if _t06FF then goto ASSIGN0704 else goto ASSIGN0706
        ASSIGN0704:  preds = [COND0707]
          bool _t0702#1 = Inside<2>(v080488,T0432);
          goto JOIN0701
        JOIN0701:  preds = [ASSIGN0704,ASSIGN0706]
          bool _t0703#1 = phi(_t0702,_t0705)
          if _t0703 then goto ASSIGN070A else goto JOIN0708
        ASSIGN070A:  preds = [COND071A]
          real _t0709#1 = Probe<tensor[2],real>(F043A,pos06FC);
          real _t070B#1 = Probe<tensor[2],real>(T0432,v080488);
          real _t070D#2 = Sub<real>(_t0709,_t070B);
          real _t0715#1 = Mul<real>(_t070D,_t070D);
          real score0717#1 = Add<real>(score06E9,_t0715);
          goto JOIN0708
        JOIN0708:  preds = [ASSIGN0719,COND071A]
          real score0718#2 = phi(score0717,score06E9)
          real _t071B#1 = Dot<tensor[2]>(r00544,v090490);
          real _t071D#1 = Dot<tensor[2]>(r10572,v090490);
          tensor[2] _t071F#1 = <tensor[2]>[_t071B,_t071D];
          tensor[2] pos072B#3 = Add<tensor[2]>(_t071F,_t0582);
          bool _t072E#1 = Inside<2>(pos072B,F043A);
          if _t072E then goto ASSIGN0733 else goto ASSIGN0735
        ASSIGN0733:  preds = [COND0736]
          bool _t0731#1 = Inside<2>(v090490,T0432);
          goto JOIN0730
        JOIN0730:  preds = [ASSIGN0733,ASSIGN0735]
          bool _t0732#1 = phi(_t0731,_t0734)
          if _t0732 then goto ASSIGN0739 else goto JOIN0737
        ASSIGN0739:  preds = [COND0749]
          real _t0738#1 = Probe<tensor[2],real>(F043A,pos072B);
          real _t073A#1 = Probe<tensor[2],real>(T0432,v090490);
          real _t073C#2 = Sub<real>(_t0738,_t073A);
          real _t0744#1 = Mul<real>(_t073C,_t073C);
          real score0746#1 = Add<real>(score0718,_t0744);
          goto JOIN0737
        JOIN0737:  preds = [ASSIGN0748,COND0749]
          real score0747#2 = phi(score0746,score0718)
          real _t074A#1 = Dot<tensor[2]>(r00544,v100496);
          real _t074C#1 = Dot<tensor[2]>(r10572,v100496);
          tensor[2] _t074E#1 = <tensor[2]>[_t074A,_t074C];
          tensor[2] pos075A#3 = Add<tensor[2]>(_t074E,_t0582);
          bool _t075D#1 = Inside<2>(pos075A,F043A);
          if _t075D then goto ASSIGN0762 else goto ASSIGN0764
        ASSIGN0762:  preds = [COND0765]
          bool _t0760#1 = Inside<2>(v100496,T0432);
          goto JOIN075F
        JOIN075F:  preds = [ASSIGN0762,ASSIGN0764]
          bool _t0761#1 = phi(_t0760,_t0763)
          if _t0761 then goto ASSIGN0768 else goto JOIN0766
        ASSIGN0768:  preds = [COND0778]
          real _t0767#1 = Probe<tensor[2],real>(F043A,pos075A);
          real _t0769#1 = Probe<tensor[2],real>(T0432,v100496);
          real _t076B#2 = Sub<real>(_t0767,_t0769);
          real _t0773#1 = Mul<real>(_t076B,_t076B);
          real score0775#1 = Add<real>(score0747,_t0773);
          goto JOIN0766
        JOIN0766:  preds = [ASSIGN0777,COND0778]
          real score0776#2 = phi(score0775,score0747)
          real _t0779#1 = Dot<tensor[2]>(r00544,v11049C);
          real _t077B#1 = Dot<tensor[2]>(r10572,v11049C);
          tensor[2] _t077D#1 = <tensor[2]>[_t0779,_t077B];
          tensor[2] pos0789#3 = Add<tensor[2]>(_t077D,_t0582);
          bool _t078C#1 = Inside<2>(pos0789,F043A);
          if _t078C then goto ASSIGN0791 else goto ASSIGN0793
        ASSIGN0791:  preds = [COND0794]
          bool _t078F#1 = Inside<2>(v11049C,T0432);
          goto JOIN078E
        JOIN078E:  preds = [ASSIGN0791,ASSIGN0793]
          bool _t0790#1 = phi(_t078F,_t0792)
          if _t0790 then goto ASSIGN0797 else goto JOIN0795
        ASSIGN0797:  preds = [COND07A7]
          real _t0796#1 = Probe<tensor[2],real>(F043A,pos0789);
          real _t0798#1 = Probe<tensor[2],real>(T0432,v11049C);
          real _t079A#2 = Sub<real>(_t0796,_t0798);
          real _t07A2#1 = Mul<real>(_t079A,_t079A);
          real score07A4#1 = Add<real>(score0776,_t07A2);
          goto JOIN0795
        JOIN0795:  preds = [ASSIGN07A6,COND07A7]
          real score07A5#2 = phi(score07A4,score0776)
          real _t07A8#1 = Dot<tensor[2]>(r00544,v1204A4);
          real _t07AA#1 = Dot<tensor[2]>(r10572,v1204A4);
          tensor[2] _t07AC#1 = <tensor[2]>[_t07A8,_t07AA];
          tensor[2] pos07B8#3 = Add<tensor[2]>(_t07AC,_t0582);
          bool _t07BB#1 = Inside<2>(pos07B8,F043A);
          if _t07BB then goto ASSIGN07C0 else goto ASSIGN07C2
        ASSIGN07C0:  preds = [COND07C3]
          bool _t07BE#1 = Inside<2>(v1204A4,T0432);
          goto JOIN07BD
        JOIN07BD:  preds = [ASSIGN07C0,ASSIGN07C2]
          bool _t07BF#1 = phi(_t07BE,_t07C1)
          if _t07BF then goto ASSIGN07C6 else goto JOIN07C4
        ASSIGN07C6:  preds = [COND07D6]
          real _t07C5#1 = Probe<tensor[2],real>(F043A,pos07B8);
          real _t07C7#1 = Probe<tensor[2],real>(T0432,v1204A4);
          real _t07C9#2 = Sub<real>(_t07C5,_t07C7);
          real _t07D1#1 = Mul<real>(_t07C9,_t07C9);
          real score07D3#1 = Add<real>(score07A5,_t07D1);
          goto JOIN07C4
        JOIN07C4:  preds = [ASSIGN07D5,COND07D6]
          real score07D4#2 = phi(score07D3,score07A5)
          real _t07D7#1 = Dot<tensor[2]>(r00544,v1304AC);
          real _t07D9#1 = Dot<tensor[2]>(r10572,v1304AC);
          tensor[2] _t07DB#1 = <tensor[2]>[_t07D7,_t07D9];
          tensor[2] pos07E7#3 = Add<tensor[2]>(_t07DB,_t0582);
          bool _t07EA#1 = Inside<2>(pos07E7,F043A);
          if _t07EA then goto ASSIGN07EF else goto ASSIGN07F1
        ASSIGN07EF:  preds = [COND07F2]
          bool _t07ED#1 = Inside<2>(v1304AC,T0432);
          goto JOIN07EC
        JOIN07EC:  preds = [ASSIGN07EF,ASSIGN07F1]
          bool _t07EE#1 = phi(_t07ED,_t07F0)
          if _t07EE then goto ASSIGN07F5 else goto JOIN07F3
        ASSIGN07F5:  preds = [COND0805]
          real _t07F4#1 = Probe<tensor[2],real>(F043A,pos07E7);
          real _t07F6#1 = Probe<tensor[2],real>(T0432,v1304AC);
          real _t07F8#2 = Sub<real>(_t07F4,_t07F6);
          real _t0800#1 = Mul<real>(_t07F8,_t07F8);
          real score0802#1 = Add<real>(score07D4,_t0800);
          goto JOIN07F3
        JOIN07F3:  preds = [ASSIGN0804,COND0805]
          real score0803#2 = phi(score0802,score07D4)
          real _t0806#1 = Dot<tensor[2]>(r00544,v1404B2);
          real _t0808#1 = Dot<tensor[2]>(r10572,v1404B2);
          tensor[2] _t080A#1 = <tensor[2]>[_t0806,_t0808];
          tensor[2] pos0816#4 = Add<tensor[2]>(_t080A,_t0582);
          bool _t0819#1 = Inside<2>(pos0816,F043A);
          if _t0819 then goto ASSIGN081E else goto ASSIGN0820
        ASSIGN081E:  preds = [COND0821]
          bool _t081C#1 = Inside<2>(v1404B2,T0432);
          goto JOIN081B
        JOIN081B:  preds = [ASSIGN081E,ASSIGN0820]
          bool _t081D#1 = phi(_t081C,_t081F)
          if _t081D then goto ASSIGN0824 else goto JOIN0822
        ASSIGN0824:  preds = [COND0834]
          real _t0823#1 = Probe<tensor[2],real>(F043A,pos0816);
          real _t0825#1 = Probe<tensor[2],real>(T0432,v1404B2);
          real _t0827#2 = Sub<real>(_t0823,_t0825);
          real _t082F#1 = Mul<real>(_t0827,_t0827);
          real score0831#1 = Add<real>(score0803,_t082F);
          goto JOIN0822
        JOIN0822:  preds = [ASSIGN0833,COND0834]
          real score0832#1 = phi(score0831,score0803)
          self.t = t050C;
          self.score = score0832;
          self.r0 = r00544;
          self.r1 = r10572;
          self.pos = pos0816;
          stabilize ()
        ASSIGN0820:  preds = [COND0821]
          bool _t081F#1 = false;
          goto JOIN081B
        ASSIGN07F1:  preds = [COND07F2]
          bool _t07F0#1 = false;
          goto JOIN07EC
        ASSIGN07C2:  preds = [COND07C3]
          bool _t07C1#1 = false;
          goto JOIN07BD
        ASSIGN0793:  preds = [COND0794]
          bool _t0792#1 = false;
          goto JOIN078E
        ASSIGN0764:  preds = [COND0765]
          bool _t0763#1 = false;
          goto JOIN075F
        ASSIGN0735:  preds = [COND0736]
          bool _t0734#1 = false;
          goto JOIN0730
        ASSIGN0706:  preds = [COND0707]
          bool _t0705#1 = false;
          goto JOIN0701
        ASSIGN06A8:  preds = [COND06A9]
          bool _t06A7#1 = false;
          goto JOIN06A3
        ASSIGN0679:  preds = [COND067A]
          bool _t0678#1 = false;
          goto JOIN0674
        ASSIGN064A:  preds = [COND064B]
          bool _t0649#1 = false;
          goto JOIN0645
        ASSIGN061B:  preds = [COND061C]
          bool _t061A#1 = false;
          goto JOIN0616
        ASSIGN05EC:  preds = [COND05ED]
          bool _t05EB#1 = false;
          goto JOIN05E7
        ASSIGN05BD:  preds = [COND05BE]
          bool _t05BC#1 = false;
          goto JOIN05B8
        ASSIGN058E:  preds = [COND058F]
          bool _t058D#1 = false;
          goto JOIN0589
    end Update
    method Stabilize
        ENTRY0847:  preds = []
          tensor[3] t083D#1 = self.t;
          real score083E#1 = self.score;
          tensor[2] r0083F#1 = self.r0;
          tensor[2] r10840#1 = self.r1;
          tensor[2] pos0841#1 = self.pos;
          self.t = t083D;
          self.score = score083E;
          self.r0 = r0083F;
          self.r1 = r10840;
          self.pos = pos0841;
          return ()
    end Stabilize
  end R
#### end program ####
##### MidIL after translation to MidIL ####
## properties
  none
## globals
  global int T08C0#0
  global int F08C1#0
  global real2 v0008A0#4
  global real2 v0108A6#4
  global real2 v0208A8#4
  global real2 v0308AA#4
  global real2 v0508AE#4
  global real2 v0608B0#4
  global real2 v0408AC#5
  global real2 v0808B2#4
  global real2 v0908B4#4
  global real2 v1008B6#4
  global real2 v1108B8#4
  global real2 v1208BA#4
  global real2 v1308BC#4
  global real2 v1408BE#4
  global string _t0894#1
  global image(IMAGE2D<int>) _t0896#103
  global int _t0892#0
  global string _t0898#1
  global image(IMAGE2D<float>) _t089A#103
  global real _t089E#7
  global real _t08A4#7
  global real _t089C#7
  global real _t08A2#9
## global initialization
  ENTRY0891:  preds = []
    int _t0892#0 = 0;
    string _t0894#1 = "square-template.nrrd";
    image(IMAGE2D<int>) _t0896#103 = LoadImage<IMAGE2D<int>>(_t0894);
    string _t0898#1 = "square-rotate.nrrd";
    image(IMAGE2D<float>) _t089A#103 = LoadImage<IMAGE2D<float>>(_t0898);
    real _t089C#7 = 0.5e0;
    real _t089E#7 = Neg<real>(_t089C);
    real2 v0008A0#4 = <real2>[_t089E,_t089E];
    real _t08A2#9 = 0.15e0;
    real _t08A4#7 = Neg<real>(_t08A2);
    real2 v0108A6#4 = <real2>[_t089E,_t08A4];
    real2 v0208A8#4 = <real2>[_t089E,_t08A2];
    real2 v0308AA#4 = <real2>[_t089E,_t089C];
    real2 v0408AC#5 = <real2>[_t08A4,_t089C];
    real2 v0508AE#4 = <real2>[_t08A4,_t08A4];
    real2 v0608B0#4 = <real2>[_t08A4,_t08A2];
    real2 v0808B2#4 = <real2>[_t08A2,_t089E];
    real2 v0908B4#4 = <real2>[_t08A2,_t08A4];
    real2 v1008B6#4 = <real2>[_t08A2,_t08A2];
    real2 v1108B8#4 = <real2>[_t08A2,_t089C];
    real2 v1208BA#4 = <real2>[_t089C,_t089E];
    real2 v1308BC#4 = <real2>[_t089C,_t08A4];
    real2 v1408BE#4 = <real2>[_t089C,_t08A2];
    return (T08C0,F08C1,v0008A0,v0108A6,v0208A8,v0308AA,v0508AE,v0608B0,v0408AC,v0808B2,v0908B4,v1008B6,v1108B8,v1208BA,v1308BC,v1408BE,_t0894,_t0896,_t0892,_t0898,_t089A,_t089E,_t08A4,_t089C,_t08A2)
## initially
  ARRAY
    ENTRY08C8:  preds = []
      int _t08C4#4 = 0;
      int _t08C5#4 = 60;
      live vars = (_t08C5,_t08C4)
    for int i08C3#1 = _t08C4 .. _t08C5
      for int j08C6#1 = _t08C4 .. _t08C5
        for int k08C7#1 = _t08C4 .. _t08C5
          ENTRY08CC:  preds = []
            live vars = ()
          new R(i08C3,j08C6,k08C7);
## strands
  strand R (int i08CE#1, int j08CF#1, int k08D0#1)
    state: real3 self.t;output real self.score;real2 self.r0;real2 self.r1;real2 self.pos;
      ENTRY08D6:  preds = []
        real _t08D7#1 = IntToReal(i08CE);
        real _t08D9#3 = 0.60e2;
        real _t08DB#1 = Div<real>(_t08D7,_t08D9);
        real _t08DD#3 = 0.5e0;
        real _t08DF#1 = Sub<real>(_t08DB,_t08DD);
        real _t08E1#1 = IntToReal(j08CF);
        real _t08E3#1 = Div<real>(_t08E1,_t08D9);
        real _t08E5#1 = Sub<real>(_t08E3,_t08DD);
        real _t08E7#1 = IntToReal(k08D0);
        real _t08E9#1 = Div<real>(_t08E7,_t08D9);
        real _t08EB#1 = Sub<real>(_t08E9,_t08DD);
        real3 t08ED#1 = <real3>[_t08DF,_t08E5,_t08EB];
        real score08EF#3 = 0.0;
        real2 r008F1#3 = <real2>[score08EF,score08EF];
        self.t = t08ED;
        self.score = score08EF;
        self.r0 = r008F1;
        self.r1 = r008F1;
        self.pos = r008F1;
        strand_init ()
    method Update
        ENTRY08F9:  preds = []
          real3 t08FA#4 = self.t;
          real score08FC#2 = self.score;
          real _t08FE#2 = 0.1e1;
          real _t0900#3 = 0.2e1;
          int _t0902#1 = 2;
          real _t0904#6 = Subscript<real3>(t08FA,_t0902);
          real _t0906#1 = Mul<real>(_t0900,_t0904);
          real _t0908#1 = Mul<real>(_t0906,_t0904);
          real _t090A#2 = Sub<real>(_t08FE,_t0908);
          real _t090C#1 = Neg<real>(_t0900);
          real _t090E#1 = Mul<real>(_t0904,_t0904);
          real _t0910#1 = Sub<real>(_t08FE,_t090E);
          real _t0912#2 = sqrt(_t0910);
          real _t0914#1 = Mul<real>(_t090C,_t0912);
          real _t0916#1 = Mul<real>(_t0914,_t0904);
          real2 r00918#15 = <real2>[_t090A,_t0916];
          real _t091A#1 = Mul<real>(_t0900,_t0912);
          real _t091C#1 = Mul<real>(_t091A,_t0904);
          real2 r1091E#15 = <real2>[_t091C,_t090A];
          real _t0920#1 = Dot<2>(r00918,v0008A0);
          real _t0922#1 = Dot<2>(r1091E,v0008A0);
          real2 _t0924#1 = <real2>[_t0920,_t0922];
          int _t0926#1 = 0;
          real _t0928#1 = Subscript<real3>(t08FA,_t0926);
          int _t092A#1 = 1;
          real _t092C#1 = Subscript<real3>(t08FA,_t092A);
          real2 _t092E#14 = <real2>[_t0928,_t092C];
          real2 pos0930#2 = Add<real2>(_t0924,_t092E);
          real2 x0933#1 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0930);
          bool _t0932#1 = Inside<IMAGE2D<float>,2>(x0933,_t089A);
          if _t0932 then goto ASSIGN0939 else goto ASSIGN1984
        ASSIGN0939:  preds = [COND0936]
          real2 x0938#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0008A0);
          bool _t0937#1 = Inside<IMAGE2D<int>,2>(x0938,_t0896);
          goto JOIN093D
        JOIN093D:  preds = [ASSIGN093A,ASSIGN1984]
          bool _t093B#1 = phi(_t0937,_t093C)
          if _t093B then goto ASSIGN097E else goto JOIN0A40
        ASSIGN097E:  preds = [COND093E]
          real2 x0940#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0930);
          real2 nd0942#2 = Floor<2>(x0940);
          real2 f0941#2 = Sub<real2>(x0940,nd0942);
          int{2} n0943#8 = RealToInt<2>(nd0942);
          int t1095F#1 = -1;
          int t20960#1 = Index<int{2},0>(n0943);
          int ix095E#1 = Add<int>(t1095F,t20960);
          int t10962#1 = -1;
          int t20963#1 = Index<int{2},1>(n0943);
          int iy0961#1 = Add<int>(t10962,t20963);
          addr(IMAGE2D<float>) a0964#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix095E,iy0961);
          real4 v00945#1 = LoadVoxels<IMAGE2D<float>,4>(a0964);
          int t10958#1 = -1;
          int t20959#1 = Index<int{2},0>(n0943);
          int ix0957#1 = Add<int>(t10958,t20959);
          int t1095B#1 = 0;
          int t2095C#1 = Index<int{2},1>(n0943);
          int iy095A#1 = Add<int>(t1095B,t2095C);
          addr(IMAGE2D<float>) a095D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0957,iy095A);
          real4 v10946#1 = LoadVoxels<IMAGE2D<float>,4>(a095D);
          int t10951#1 = -1;
          int t20952#1 = Index<int{2},0>(n0943);
          int ix0950#1 = Add<int>(t10951,t20952);
          int t10954#1 = 1;
          int t20955#1 = Index<int{2},1>(n0943);
          int iy0953#1 = Add<int>(t10954,t20955);
          addr(IMAGE2D<float>) a0956#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0950,iy0953);
          real4 v20947#1 = LoadVoxels<IMAGE2D<float>,4>(a0956);
          int t1094A#1 = -1;
          int t2094B#1 = Index<int{2},0>(n0943);
          int ix0949#1 = Add<int>(t1094A,t2094B);
          int t1094D#1 = 2;
          int t2094E#1 = Index<int{2},1>(n0943);
          int iy094C#1 = Add<int>(t1094D,t2094E);
          addr(IMAGE2D<float>) a094F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0949,iy094C);
          real4 v30948#1 = LoadVoxels<IMAGE2D<float>,4>(a094F);
          real fy0970#4 = Index<real2,1>(f0941);
          real r0978#1 = 0.1e1;
          real t30975#1 = Add<real>(fy0970,r0978);
          real t20974#1 = fy0970;
          real r0977#1 = 0.1e1;
          real t10973#1 = Sub<real>(fy0970,r0977);
          real r0976#1 = 0.2e1;
          real t00972#1 = Sub<real>(fy0970,r0976);
          real4 a0971#1 = <real4>[t30975,t20974,t10973,t00972];
          real4 hy0966#1 = EvalKernel<4,bspln3,0>(a0971);
          real fx0967#4 = Index<real2,0>(f0941);
          real r096F#1 = 0.1e1;
          real t3096C#1 = Add<real>(fx0967,r096F);
          real t2096B#1 = fx0967;
          real r096E#1 = 0.1e1;
          real t1096A#1 = Sub<real>(fx0967,r096E);
          real r096D#1 = 0.2e1;
          real t00969#1 = Sub<real>(fx0967,r096D);
          real4 a0968#1 = <real4>[t3096C,t2096B,t1096A,t00969];
          real4 hx0965#4 = EvalKernel<4,bspln3,0>(a0968);
          real t0097A#1 = Dot<4>(v00945,hx0965);
          real t1097B#1 = Dot<4>(v10946,hx0965);
          real t2097C#1 = Dot<4>(v20947,hx0965);
          real t3097D#1 = Dot<4>(v30948,hx0965);
          real4 tv0979#1 = <real4>[t0097A,t1097B,t2097C,t3097D];
          real _t093F#1 = Dot<4>(hy0966,tv0979);
          real2 x09BD#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0008A0);
          real2 nd09BF#2 = Floor<2>(x09BD);
          real2 f09BE#2 = Sub<real2>(x09BD,nd09BF);
          int{2} n09C0#8 = RealToInt<2>(nd09BF);
          int t109DC#1 = -1;
          int t209DD#1 = Index<int{2},0>(n09C0);
          int ix09DB#1 = Add<int>(t109DC,t209DD);
          int t109DF#1 = -1;
          int t209E0#1 = Index<int{2},1>(n09C0);
          int iy09DE#1 = Add<int>(t109DF,t209E0);
          addr(IMAGE2D<int>) a09E1#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix09DB,iy09DE);
          real4 v009C2#1 = LoadVoxels<IMAGE2D<int>,4>(a09E1);
          int t109D5#1 = -1;
          int t209D6#1 = Index<int{2},0>(n09C0);
          int ix09D4#1 = Add<int>(t109D5,t209D6);
          int t109D8#1 = 0;
          int t209D9#1 = Index<int{2},1>(n09C0);
          int iy09D7#1 = Add<int>(t109D8,t209D9);
          addr(IMAGE2D<int>) a09DA#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix09D4,iy09D7);
          real4 v109C3#1 = LoadVoxels<IMAGE2D<int>,4>(a09DA);
          int t109CE#1 = -1;
          int t209CF#1 = Index<int{2},0>(n09C0);
          int ix09CD#1 = Add<int>(t109CE,t209CF);
          int t109D1#1 = 1;
          int t209D2#1 = Index<int{2},1>(n09C0);
          int iy09D0#1 = Add<int>(t109D1,t209D2);
          addr(IMAGE2D<int>) a09D3#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix09CD,iy09D0);
          real4 v209C4#1 = LoadVoxels<IMAGE2D<int>,4>(a09D3);
          int t109C7#1 = -1;
          int t209C8#1 = Index<int{2},0>(n09C0);
          int ix09C6#1 = Add<int>(t109C7,t209C8);
          int t109CA#1 = 2;
          int t209CB#1 = Index<int{2},1>(n09C0);
          int iy09C9#1 = Add<int>(t109CA,t209CB);
          addr(IMAGE2D<int>) a09CC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix09C6,iy09C9);
          real4 v309C5#1 = LoadVoxels<IMAGE2D<int>,4>(a09CC);
          real fy09ED#4 = Index<real2,1>(f09BE);
          real r09F5#1 = 0.1e1;
          real t309F2#1 = Add<real>(fy09ED,r09F5);
          real t209F1#1 = fy09ED;
          real r09F4#1 = 0.1e1;
          real t109F0#1 = Sub<real>(fy09ED,r09F4);
          real r09F3#1 = 0.2e1;
          real t009EF#1 = Sub<real>(fy09ED,r09F3);
          real4 a09EE#1 = <real4>[t309F2,t209F1,t109F0,t009EF];
          real4 hy09E3#1 = EvalKernel<4,bspln3,0>(a09EE);
          real fx09E4#4 = Index<real2,0>(f09BE);
          real r09EC#1 = 0.1e1;
          real t309E9#1 = Add<real>(fx09E4,r09EC);
          real t209E8#1 = fx09E4;
          real r09EB#1 = 0.1e1;
          real t109E7#1 = Sub<real>(fx09E4,r09EB);
          real r09EA#1 = 0.2e1;
          real t009E6#1 = Sub<real>(fx09E4,r09EA);
          real4 a09E5#1 = <real4>[t309E9,t209E8,t109E7,t009E6];
          real4 hx09E2#4 = EvalKernel<4,bspln3,0>(a09E5);
          real t009F7#1 = Dot<4>(v009C2,hx09E2);
          real t109F8#1 = Dot<4>(v109C3,hx09E2);
          real t209F9#1 = Dot<4>(v209C4,hx09E2);
          real t309FA#1 = Dot<4>(v309C5,hx09E2);
          real4 tv09F6#1 = <real4>[t009F7,t109F8,t209F9,t309FA];
          real _t09BC#1 = Dot<4>(hy09E3,tv09F6);
          real _t0A39#2 = Sub<real>(_t093F,_t09BC);
          real _t0A3B#1 = Mul<real>(_t0A39,_t0A39);
          real score0A3D#1 = Add<real>(score08FC,_t0A3B);
          goto JOIN0A40
        JOIN0A40:  preds = [ASSIGN0A3E,COND093E]
          real score0A3F#2 = phi(score0A3D,score08FC)
          real _t0A41#1 = Dot<2>(r00918,v0108A6);
          real _t0A43#1 = Dot<2>(r1091E,v0108A6);
          real2 _t0A45#1 = <real2>[_t0A41,_t0A43];
          real2 pos0A47#2 = Add<real2>(_t0A45,_t092E);
          real2 x0A4A#1 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0A47);
          bool _t0A49#1 = Inside<IMAGE2D<float>,2>(x0A4A,_t089A);
          if _t0A49 then goto ASSIGN0A50 else goto ASSIGN1983
        ASSIGN0A50:  preds = [COND0A4D]
          real2 x0A4F#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0108A6);
          bool _t0A4E#1 = Inside<IMAGE2D<int>,2>(x0A4F,_t0896);
          goto JOIN0A54
        JOIN0A54:  preds = [ASSIGN0A51,ASSIGN1983]
          bool _t0A52#1 = phi(_t0A4E,_t0A53)
          if _t0A52 then goto ASSIGN0A95 else goto JOIN0B57
        ASSIGN0A95:  preds = [COND0A55]
          real2 x0A57#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0A47);
          real2 nd0A59#2 = Floor<2>(x0A57);
          real2 f0A58#2 = Sub<real2>(x0A57,nd0A59);
          int{2} n0A5A#8 = RealToInt<2>(nd0A59);
          int t10A76#1 = -1;
          int t20A77#1 = Index<int{2},0>(n0A5A);
          int ix0A75#1 = Add<int>(t10A76,t20A77);
          int t10A79#1 = -1;
          int t20A7A#1 = Index<int{2},1>(n0A5A);
          int iy0A78#1 = Add<int>(t10A79,t20A7A);
          addr(IMAGE2D<float>) a0A7B#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0A75,iy0A78);
          real4 v00A5C#1 = LoadVoxels<IMAGE2D<float>,4>(a0A7B);
          int t10A6F#1 = -1;
          int t20A70#1 = Index<int{2},0>(n0A5A);
          int ix0A6E#1 = Add<int>(t10A6F,t20A70);
          int t10A72#1 = 0;
          int t20A73#1 = Index<int{2},1>(n0A5A);
          int iy0A71#1 = Add<int>(t10A72,t20A73);
          addr(IMAGE2D<float>) a0A74#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0A6E,iy0A71);
          real4 v10A5D#1 = LoadVoxels<IMAGE2D<float>,4>(a0A74);
          int t10A68#1 = -1;
          int t20A69#1 = Index<int{2},0>(n0A5A);
          int ix0A67#1 = Add<int>(t10A68,t20A69);
          int t10A6B#1 = 1;
          int t20A6C#1 = Index<int{2},1>(n0A5A);
          int iy0A6A#1 = Add<int>(t10A6B,t20A6C);
          addr(IMAGE2D<float>) a0A6D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0A67,iy0A6A);
          real4 v20A5E#1 = LoadVoxels<IMAGE2D<float>,4>(a0A6D);
          int t10A61#1 = -1;
          int t20A62#1 = Index<int{2},0>(n0A5A);
          int ix0A60#1 = Add<int>(t10A61,t20A62);
          int t10A64#1 = 2;
          int t20A65#1 = Index<int{2},1>(n0A5A);
          int iy0A63#1 = Add<int>(t10A64,t20A65);
          addr(IMAGE2D<float>) a0A66#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0A60,iy0A63);
          real4 v30A5F#1 = LoadVoxels<IMAGE2D<float>,4>(a0A66);
          real fy0A87#4 = Index<real2,1>(f0A58);
          real r0A8F#1 = 0.1e1;
          real t30A8C#1 = Add<real>(fy0A87,r0A8F);
          real t20A8B#1 = fy0A87;
          real r0A8E#1 = 0.1e1;
          real t10A8A#1 = Sub<real>(fy0A87,r0A8E);
          real r0A8D#1 = 0.2e1;
          real t00A89#1 = Sub<real>(fy0A87,r0A8D);
          real4 a0A88#1 = <real4>[t30A8C,t20A8B,t10A8A,t00A89];
          real4 hy0A7D#1 = EvalKernel<4,bspln3,0>(a0A88);
          real fx0A7E#4 = Index<real2,0>(f0A58);
          real r0A86#1 = 0.1e1;
          real t30A83#1 = Add<real>(fx0A7E,r0A86);
          real t20A82#1 = fx0A7E;
          real r0A85#1 = 0.1e1;
          real t10A81#1 = Sub<real>(fx0A7E,r0A85);
          real r0A84#1 = 0.2e1;
          real t00A80#1 = Sub<real>(fx0A7E,r0A84);
          real4 a0A7F#1 = <real4>[t30A83,t20A82,t10A81,t00A80];
          real4 hx0A7C#4 = EvalKernel<4,bspln3,0>(a0A7F);
          real t00A91#1 = Dot<4>(v00A5C,hx0A7C);
          real t10A92#1 = Dot<4>(v10A5D,hx0A7C);
          real t20A93#1 = Dot<4>(v20A5E,hx0A7C);
          real t30A94#1 = Dot<4>(v30A5F,hx0A7C);
          real4 tv0A90#1 = <real4>[t00A91,t10A92,t20A93,t30A94];
          real _t0A56#1 = Dot<4>(hy0A7D,tv0A90);
          real2 x0AD4#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0108A6);
          real2 nd0AD6#2 = Floor<2>(x0AD4);
          real2 f0AD5#2 = Sub<real2>(x0AD4,nd0AD6);
          int{2} n0AD7#8 = RealToInt<2>(nd0AD6);
          int t10AF3#1 = -1;
          int t20AF4#1 = Index<int{2},0>(n0AD7);
          int ix0AF2#1 = Add<int>(t10AF3,t20AF4);
          int t10AF6#1 = -1;
          int t20AF7#1 = Index<int{2},1>(n0AD7);
          int iy0AF5#1 = Add<int>(t10AF6,t20AF7);
          addr(IMAGE2D<int>) a0AF8#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0AF2,iy0AF5);
          real4 v00AD9#1 = LoadVoxels<IMAGE2D<int>,4>(a0AF8);
          int t10AEC#1 = -1;
          int t20AED#1 = Index<int{2},0>(n0AD7);
          int ix0AEB#1 = Add<int>(t10AEC,t20AED);
          int t10AEF#1 = 0;
          int t20AF0#1 = Index<int{2},1>(n0AD7);
          int iy0AEE#1 = Add<int>(t10AEF,t20AF0);
          addr(IMAGE2D<int>) a0AF1#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0AEB,iy0AEE);
          real4 v10ADA#1 = LoadVoxels<IMAGE2D<int>,4>(a0AF1);
          int t10AE5#1 = -1;
          int t20AE6#1 = Index<int{2},0>(n0AD7);
          int ix0AE4#1 = Add<int>(t10AE5,t20AE6);
          int t10AE8#1 = 1;
          int t20AE9#1 = Index<int{2},1>(n0AD7);
          int iy0AE7#1 = Add<int>(t10AE8,t20AE9);
          addr(IMAGE2D<int>) a0AEA#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0AE4,iy0AE7);
          real4 v20ADB#1 = LoadVoxels<IMAGE2D<int>,4>(a0AEA);
          int t10ADE#1 = -1;
          int t20ADF#1 = Index<int{2},0>(n0AD7);
          int ix0ADD#1 = Add<int>(t10ADE,t20ADF);
          int t10AE1#1 = 2;
          int t20AE2#1 = Index<int{2},1>(n0AD7);
          int iy0AE0#1 = Add<int>(t10AE1,t20AE2);
          addr(IMAGE2D<int>) a0AE3#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0ADD,iy0AE0);
          real4 v30ADC#1 = LoadVoxels<IMAGE2D<int>,4>(a0AE3);
          real fy0B04#4 = Index<real2,1>(f0AD5);
          real r0B0C#1 = 0.1e1;
          real t30B09#1 = Add<real>(fy0B04,r0B0C);
          real t20B08#1 = fy0B04;
          real r0B0B#1 = 0.1e1;
          real t10B07#1 = Sub<real>(fy0B04,r0B0B);
          real r0B0A#1 = 0.2e1;
          real t00B06#1 = Sub<real>(fy0B04,r0B0A);
          real4 a0B05#1 = <real4>[t30B09,t20B08,t10B07,t00B06];
          real4 hy0AFA#1 = EvalKernel<4,bspln3,0>(a0B05);
          real fx0AFB#4 = Index<real2,0>(f0AD5);
          real r0B03#1 = 0.1e1;
          real t30B00#1 = Add<real>(fx0AFB,r0B03);
          real t20AFF#1 = fx0AFB;
          real r0B02#1 = 0.1e1;
          real t10AFE#1 = Sub<real>(fx0AFB,r0B02);
          real r0B01#1 = 0.2e1;
          real t00AFD#1 = Sub<real>(fx0AFB,r0B01);
          real4 a0AFC#1 = <real4>[t30B00,t20AFF,t10AFE,t00AFD];
          real4 hx0AF9#4 = EvalKernel<4,bspln3,0>(a0AFC);
          real t00B0E#1 = Dot<4>(v00AD9,hx0AF9);
          real t10B0F#1 = Dot<4>(v10ADA,hx0AF9);
          real t20B10#1 = Dot<4>(v20ADB,hx0AF9);
          real t30B11#1 = Dot<4>(v30ADC,hx0AF9);
          real4 tv0B0D#1 = <real4>[t00B0E,t10B0F,t20B10,t30B11];
          real _t0AD3#1 = Dot<4>(hy0AFA,tv0B0D);
          real _t0B50#2 = Sub<real>(_t0A56,_t0AD3);
          real _t0B52#1 = Mul<real>(_t0B50,_t0B50);
          real score0B54#1 = Add<real>(score0A3F,_t0B52);
          goto JOIN0B57
        JOIN0B57:  preds = [ASSIGN0B55,COND0A55]
          real score0B56#2 = phi(score0B54,score0A3F)
          real _t0B58#1 = Dot<2>(r00918,v0208A8);
          real _t0B5A#1 = Dot<2>(r1091E,v0208A8);
          real2 _t0B5C#1 = <real2>[_t0B58,_t0B5A];
          real2 pos0B5E#2 = Add<real2>(_t0B5C,_t092E);
          real2 x0B61#1 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0B5E);
          bool _t0B60#1 = Inside<IMAGE2D<float>,2>(x0B61,_t089A);
          if _t0B60 then goto ASSIGN0B67 else goto ASSIGN1982
        ASSIGN0B67:  preds = [COND0B64]
          real2 x0B66#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0208A8);
          bool _t0B65#1 = Inside<IMAGE2D<int>,2>(x0B66,_t0896);
          goto JOIN0B6B
        JOIN0B6B:  preds = [ASSIGN0B68,ASSIGN1982]
          bool _t0B69#1 = phi(_t0B65,_t0B6A)
          if _t0B69 then goto ASSIGN0BAC else goto JOIN0C6E
        ASSIGN0BAC:  preds = [COND0B6C]
          real2 x0B6E#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0B5E);
          real2 nd0B70#2 = Floor<2>(x0B6E);
          real2 f0B6F#2 = Sub<real2>(x0B6E,nd0B70);
          int{2} n0B71#8 = RealToInt<2>(nd0B70);
          int t10B8D#1 = -1;
          int t20B8E#1 = Index<int{2},0>(n0B71);
          int ix0B8C#1 = Add<int>(t10B8D,t20B8E);
          int t10B90#1 = -1;
          int t20B91#1 = Index<int{2},1>(n0B71);
          int iy0B8F#1 = Add<int>(t10B90,t20B91);
          addr(IMAGE2D<float>) a0B92#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0B8C,iy0B8F);
          real4 v00B73#1 = LoadVoxels<IMAGE2D<float>,4>(a0B92);
          int t10B86#1 = -1;
          int t20B87#1 = Index<int{2},0>(n0B71);
          int ix0B85#1 = Add<int>(t10B86,t20B87);
          int t10B89#1 = 0;
          int t20B8A#1 = Index<int{2},1>(n0B71);
          int iy0B88#1 = Add<int>(t10B89,t20B8A);
          addr(IMAGE2D<float>) a0B8B#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0B85,iy0B88);
          real4 v10B74#1 = LoadVoxels<IMAGE2D<float>,4>(a0B8B);
          int t10B7F#1 = -1;
          int t20B80#1 = Index<int{2},0>(n0B71);
          int ix0B7E#1 = Add<int>(t10B7F,t20B80);
          int t10B82#1 = 1;
          int t20B83#1 = Index<int{2},1>(n0B71);
          int iy0B81#1 = Add<int>(t10B82,t20B83);
          addr(IMAGE2D<float>) a0B84#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0B7E,iy0B81);
          real4 v20B75#1 = LoadVoxels<IMAGE2D<float>,4>(a0B84);
          int t10B78#1 = -1;
          int t20B79#1 = Index<int{2},0>(n0B71);
          int ix0B77#1 = Add<int>(t10B78,t20B79);
          int t10B7B#1 = 2;
          int t20B7C#1 = Index<int{2},1>(n0B71);
          int iy0B7A#1 = Add<int>(t10B7B,t20B7C);
          addr(IMAGE2D<float>) a0B7D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0B77,iy0B7A);
          real4 v30B76#1 = LoadVoxels<IMAGE2D<float>,4>(a0B7D);
          real fy0B9E#4 = Index<real2,1>(f0B6F);
          real r0BA6#1 = 0.1e1;
          real t30BA3#1 = Add<real>(fy0B9E,r0BA6);
          real t20BA2#1 = fy0B9E;
          real r0BA5#1 = 0.1e1;
          real t10BA1#1 = Sub<real>(fy0B9E,r0BA5);
          real r0BA4#1 = 0.2e1;
          real t00BA0#1 = Sub<real>(fy0B9E,r0BA4);
          real4 a0B9F#1 = <real4>[t30BA3,t20BA2,t10BA1,t00BA0];
          real4 hy0B94#1 = EvalKernel<4,bspln3,0>(a0B9F);
          real fx0B95#4 = Index<real2,0>(f0B6F);
          real r0B9D#1 = 0.1e1;
          real t30B9A#1 = Add<real>(fx0B95,r0B9D);
          real t20B99#1 = fx0B95;
          real r0B9C#1 = 0.1e1;
          real t10B98#1 = Sub<real>(fx0B95,r0B9C);
          real r0B9B#1 = 0.2e1;
          real t00B97#1 = Sub<real>(fx0B95,r0B9B);
          real4 a0B96#1 = <real4>[t30B9A,t20B99,t10B98,t00B97];
          real4 hx0B93#4 = EvalKernel<4,bspln3,0>(a0B96);
          real t00BA8#1 = Dot<4>(v00B73,hx0B93);
          real t10BA9#1 = Dot<4>(v10B74,hx0B93);
          real t20BAA#1 = Dot<4>(v20B75,hx0B93);
          real t30BAB#1 = Dot<4>(v30B76,hx0B93);
          real4 tv0BA7#1 = <real4>[t00BA8,t10BA9,t20BAA,t30BAB];
          real _t0B6D#1 = Dot<4>(hy0B94,tv0BA7);
          real2 x0BEB#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0208A8);
          real2 nd0BED#2 = Floor<2>(x0BEB);
          real2 f0BEC#2 = Sub<real2>(x0BEB,nd0BED);
          int{2} n0BEE#8 = RealToInt<2>(nd0BED);
          int t10C0A#1 = -1;
          int t20C0B#1 = Index<int{2},0>(n0BEE);
          int ix0C09#1 = Add<int>(t10C0A,t20C0B);
          int t10C0D#1 = -1;
          int t20C0E#1 = Index<int{2},1>(n0BEE);
          int iy0C0C#1 = Add<int>(t10C0D,t20C0E);
          addr(IMAGE2D<int>) a0C0F#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0C09,iy0C0C);
          real4 v00BF0#1 = LoadVoxels<IMAGE2D<int>,4>(a0C0F);
          int t10C03#1 = -1;
          int t20C04#1 = Index<int{2},0>(n0BEE);
          int ix0C02#1 = Add<int>(t10C03,t20C04);
          int t10C06#1 = 0;
          int t20C07#1 = Index<int{2},1>(n0BEE);
          int iy0C05#1 = Add<int>(t10C06,t20C07);
          addr(IMAGE2D<int>) a0C08#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0C02,iy0C05);
          real4 v10BF1#1 = LoadVoxels<IMAGE2D<int>,4>(a0C08);
          int t10BFC#1 = -1;
          int t20BFD#1 = Index<int{2},0>(n0BEE);
          int ix0BFB#1 = Add<int>(t10BFC,t20BFD);
          int t10BFF#1 = 1;
          int t20C00#1 = Index<int{2},1>(n0BEE);
          int iy0BFE#1 = Add<int>(t10BFF,t20C00);
          addr(IMAGE2D<int>) a0C01#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0BFB,iy0BFE);
          real4 v20BF2#1 = LoadVoxels<IMAGE2D<int>,4>(a0C01);
          int t10BF5#1 = -1;
          int t20BF6#1 = Index<int{2},0>(n0BEE);
          int ix0BF4#1 = Add<int>(t10BF5,t20BF6);
          int t10BF8#1 = 2;
          int t20BF9#1 = Index<int{2},1>(n0BEE);
          int iy0BF7#1 = Add<int>(t10BF8,t20BF9);
          addr(IMAGE2D<int>) a0BFA#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0BF4,iy0BF7);
          real4 v30BF3#1 = LoadVoxels<IMAGE2D<int>,4>(a0BFA);
          real fy0C1B#4 = Index<real2,1>(f0BEC);
          real r0C23#1 = 0.1e1;
          real t30C20#1 = Add<real>(fy0C1B,r0C23);
          real t20C1F#1 = fy0C1B;
          real r0C22#1 = 0.1e1;
          real t10C1E#1 = Sub<real>(fy0C1B,r0C22);
          real r0C21#1 = 0.2e1;
          real t00C1D#1 = Sub<real>(fy0C1B,r0C21);
          real4 a0C1C#1 = <real4>[t30C20,t20C1F,t10C1E,t00C1D];
          real4 hy0C11#1 = EvalKernel<4,bspln3,0>(a0C1C);
          real fx0C12#4 = Index<real2,0>(f0BEC);
          real r0C1A#1 = 0.1e1;
          real t30C17#1 = Add<real>(fx0C12,r0C1A);
          real t20C16#1 = fx0C12;
          real r0C19#1 = 0.1e1;
          real t10C15#1 = Sub<real>(fx0C12,r0C19);
          real r0C18#1 = 0.2e1;
          real t00C14#1 = Sub<real>(fx0C12,r0C18);
          real4 a0C13#1 = <real4>[t30C17,t20C16,t10C15,t00C14];
          real4 hx0C10#4 = EvalKernel<4,bspln3,0>(a0C13);
          real t00C25#1 = Dot<4>(v00BF0,hx0C10);
          real t10C26#1 = Dot<4>(v10BF1,hx0C10);
          real t20C27#1 = Dot<4>(v20BF2,hx0C10);
          real t30C28#1 = Dot<4>(v30BF3,hx0C10);
          real4 tv0C24#1 = <real4>[t00C25,t10C26,t20C27,t30C28];
          real _t0BEA#1 = Dot<4>(hy0C11,tv0C24);
          real _t0C67#2 = Sub<real>(_t0B6D,_t0BEA);
          real _t0C69#1 = Mul<real>(_t0C67,_t0C67);
          real score0C6B#1 = Add<real>(score0B56,_t0C69);
          goto JOIN0C6E
        JOIN0C6E:  preds = [ASSIGN0C6C,COND0B6C]
          real score0C6D#2 = phi(score0C6B,score0B56)
          real _t0C6F#1 = Dot<2>(r00918,v0308AA);
          real _t0C71#1 = Dot<2>(r1091E,v0308AA);
          real2 _t0C73#1 = <real2>[_t0C6F,_t0C71];
          real2 pos0C75#2 = Add<real2>(_t0C73,_t092E);
          real2 x0C78#1 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0C75);
          bool _t0C77#1 = Inside<IMAGE2D<float>,2>(x0C78,_t089A);
          if _t0C77 then goto ASSIGN0C7E else goto ASSIGN1981
        ASSIGN0C7E:  preds = [COND0C7B]
          real2 x0C7D#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0308AA);
          bool _t0C7C#1 = Inside<IMAGE2D<int>,2>(x0C7D,_t0896);
          goto JOIN0C82
        JOIN0C82:  preds = [ASSIGN0C7F,ASSIGN1981]
          bool _t0C80#1 = phi(_t0C7C,_t0C81)
          if _t0C80 then goto ASSIGN0CC3 else goto JOIN0D85
        ASSIGN0CC3:  preds = [COND0C83]
          real2 x0C85#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0C75);
          real2 nd0C87#2 = Floor<2>(x0C85);
          real2 f0C86#2 = Sub<real2>(x0C85,nd0C87);
          int{2} n0C88#8 = RealToInt<2>(nd0C87);
          int t10CA4#1 = -1;
          int t20CA5#1 = Index<int{2},0>(n0C88);
          int ix0CA3#1 = Add<int>(t10CA4,t20CA5);
          int t10CA7#1 = -1;
          int t20CA8#1 = Index<int{2},1>(n0C88);
          int iy0CA6#1 = Add<int>(t10CA7,t20CA8);
          addr(IMAGE2D<float>) a0CA9#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0CA3,iy0CA6);
          real4 v00C8A#1 = LoadVoxels<IMAGE2D<float>,4>(a0CA9);
          int t10C9D#1 = -1;
          int t20C9E#1 = Index<int{2},0>(n0C88);
          int ix0C9C#1 = Add<int>(t10C9D,t20C9E);
          int t10CA0#1 = 0;
          int t20CA1#1 = Index<int{2},1>(n0C88);
          int iy0C9F#1 = Add<int>(t10CA0,t20CA1);
          addr(IMAGE2D<float>) a0CA2#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0C9C,iy0C9F);
          real4 v10C8B#1 = LoadVoxels<IMAGE2D<float>,4>(a0CA2);
          int t10C96#1 = -1;
          int t20C97#1 = Index<int{2},0>(n0C88);
          int ix0C95#1 = Add<int>(t10C96,t20C97);
          int t10C99#1 = 1;
          int t20C9A#1 = Index<int{2},1>(n0C88);
          int iy0C98#1 = Add<int>(t10C99,t20C9A);
          addr(IMAGE2D<float>) a0C9B#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0C95,iy0C98);
          real4 v20C8C#1 = LoadVoxels<IMAGE2D<float>,4>(a0C9B);
          int t10C8F#1 = -1;
          int t20C90#1 = Index<int{2},0>(n0C88);
          int ix0C8E#1 = Add<int>(t10C8F,t20C90);
          int t10C92#1 = 2;
          int t20C93#1 = Index<int{2},1>(n0C88);
          int iy0C91#1 = Add<int>(t10C92,t20C93);
          addr(IMAGE2D<float>) a0C94#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0C8E,iy0C91);
          real4 v30C8D#1 = LoadVoxels<IMAGE2D<float>,4>(a0C94);
          real fy0CB5#4 = Index<real2,1>(f0C86);
          real r0CBD#1 = 0.1e1;
          real t30CBA#1 = Add<real>(fy0CB5,r0CBD);
          real t20CB9#1 = fy0CB5;
          real r0CBC#1 = 0.1e1;
          real t10CB8#1 = Sub<real>(fy0CB5,r0CBC);
          real r0CBB#1 = 0.2e1;
          real t00CB7#1 = Sub<real>(fy0CB5,r0CBB);
          real4 a0CB6#1 = <real4>[t30CBA,t20CB9,t10CB8,t00CB7];
          real4 hy0CAB#1 = EvalKernel<4,bspln3,0>(a0CB6);
          real fx0CAC#4 = Index<real2,0>(f0C86);
          real r0CB4#1 = 0.1e1;
          real t30CB1#1 = Add<real>(fx0CAC,r0CB4);
          real t20CB0#1 = fx0CAC;
          real r0CB3#1 = 0.1e1;
          real t10CAF#1 = Sub<real>(fx0CAC,r0CB3);
          real r0CB2#1 = 0.2e1;
          real t00CAE#1 = Sub<real>(fx0CAC,r0CB2);
          real4 a0CAD#1 = <real4>[t30CB1,t20CB0,t10CAF,t00CAE];
          real4 hx0CAA#4 = EvalKernel<4,bspln3,0>(a0CAD);
          real t00CBF#1 = Dot<4>(v00C8A,hx0CAA);
          real t10CC0#1 = Dot<4>(v10C8B,hx0CAA);
          real t20CC1#1 = Dot<4>(v20C8C,hx0CAA);
          real t30CC2#1 = Dot<4>(v30C8D,hx0CAA);
          real4 tv0CBE#1 = <real4>[t00CBF,t10CC0,t20CC1,t30CC2];
          real _t0C84#1 = Dot<4>(hy0CAB,tv0CBE);
          real2 x0D02#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0308AA);
          real2 nd0D04#2 = Floor<2>(x0D02);
          real2 f0D03#2 = Sub<real2>(x0D02,nd0D04);
          int{2} n0D05#8 = RealToInt<2>(nd0D04);
          int t10D21#1 = -1;
          int t20D22#1 = Index<int{2},0>(n0D05);
          int ix0D20#1 = Add<int>(t10D21,t20D22);
          int t10D24#1 = -1;
          int t20D25#1 = Index<int{2},1>(n0D05);
          int iy0D23#1 = Add<int>(t10D24,t20D25);
          addr(IMAGE2D<int>) a0D26#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0D20,iy0D23);
          real4 v00D07#1 = LoadVoxels<IMAGE2D<int>,4>(a0D26);
          int t10D1A#1 = -1;
          int t20D1B#1 = Index<int{2},0>(n0D05);
          int ix0D19#1 = Add<int>(t10D1A,t20D1B);
          int t10D1D#1 = 0;
          int t20D1E#1 = Index<int{2},1>(n0D05);
          int iy0D1C#1 = Add<int>(t10D1D,t20D1E);
          addr(IMAGE2D<int>) a0D1F#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0D19,iy0D1C);
          real4 v10D08#1 = LoadVoxels<IMAGE2D<int>,4>(a0D1F);
          int t10D13#1 = -1;
          int t20D14#1 = Index<int{2},0>(n0D05);
          int ix0D12#1 = Add<int>(t10D13,t20D14);
          int t10D16#1 = 1;
          int t20D17#1 = Index<int{2},1>(n0D05);
          int iy0D15#1 = Add<int>(t10D16,t20D17);
          addr(IMAGE2D<int>) a0D18#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0D12,iy0D15);
          real4 v20D09#1 = LoadVoxels<IMAGE2D<int>,4>(a0D18);
          int t10D0C#1 = -1;
          int t20D0D#1 = Index<int{2},0>(n0D05);
          int ix0D0B#1 = Add<int>(t10D0C,t20D0D);
          int t10D0F#1 = 2;
          int t20D10#1 = Index<int{2},1>(n0D05);
          int iy0D0E#1 = Add<int>(t10D0F,t20D10);
          addr(IMAGE2D<int>) a0D11#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0D0B,iy0D0E);
          real4 v30D0A#1 = LoadVoxels<IMAGE2D<int>,4>(a0D11);
          real fy0D32#4 = Index<real2,1>(f0D03);
          real r0D3A#1 = 0.1e1;
          real t30D37#1 = Add<real>(fy0D32,r0D3A);
          real t20D36#1 = fy0D32;
          real r0D39#1 = 0.1e1;
          real t10D35#1 = Sub<real>(fy0D32,r0D39);
          real r0D38#1 = 0.2e1;
          real t00D34#1 = Sub<real>(fy0D32,r0D38);
          real4 a0D33#1 = <real4>[t30D37,t20D36,t10D35,t00D34];
          real4 hy0D28#1 = EvalKernel<4,bspln3,0>(a0D33);
          real fx0D29#4 = Index<real2,0>(f0D03);
          real r0D31#1 = 0.1e1;
          real t30D2E#1 = Add<real>(fx0D29,r0D31);
          real t20D2D#1 = fx0D29;
          real r0D30#1 = 0.1e1;
          real t10D2C#1 = Sub<real>(fx0D29,r0D30);
          real r0D2F#1 = 0.2e1;
          real t00D2B#1 = Sub<real>(fx0D29,r0D2F);
          real4 a0D2A#1 = <real4>[t30D2E,t20D2D,t10D2C,t00D2B];
          real4 hx0D27#4 = EvalKernel<4,bspln3,0>(a0D2A);
          real t00D3C#1 = Dot<4>(v00D07,hx0D27);
          real t10D3D#1 = Dot<4>(v10D08,hx0D27);
          real t20D3E#1 = Dot<4>(v20D09,hx0D27);
          real t30D3F#1 = Dot<4>(v30D0A,hx0D27);
          real4 tv0D3B#1 = <real4>[t00D3C,t10D3D,t20D3E,t30D3F];
          real _t0D01#1 = Dot<4>(hy0D28,tv0D3B);
          real _t0D7E#2 = Sub<real>(_t0C84,_t0D01);
          real _t0D80#1 = Mul<real>(_t0D7E,_t0D7E);
          real score0D82#1 = Add<real>(score0C6D,_t0D80);
          goto JOIN0D85
        JOIN0D85:  preds = [ASSIGN0D83,COND0C83]
          real score0D84#2 = phi(score0D82,score0C6D)
          real _t0D86#1 = Dot<2>(r00918,v0408AC);
          real _t0D88#1 = Dot<2>(r1091E,v0408AC);
          real2 _t0D8A#1 = <real2>[_t0D86,_t0D88];
          real2 pos0D8C#3 = Add<real2>(_t0D8A,_t092E);
          real2 x0D8F#1 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0D8C);
          bool _t0D8E#2 = Inside<IMAGE2D<float>,2>(x0D8F,_t089A);
          if _t0D8E then goto ASSIGN0D95 else goto ASSIGN1980
        ASSIGN0D95:  preds = [COND0D92]
          real2 x0D94#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0408AC);
          bool _t0D93#1 = Inside<IMAGE2D<int>,2>(x0D94,_t0896);
          goto JOIN0D99
        JOIN0D99:  preds = [ASSIGN0D96,ASSIGN1980]
          bool _t0D97#2 = phi(_t0D93,_t0D98)
          if _t0D97 then goto ASSIGN0DDA else goto JOIN0E9C
        ASSIGN0DDA:  preds = [COND0D9A]
          real2 x0D9C#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0D8C);
          real2 nd0D9E#2 = Floor<2>(x0D9C);
          real2 f0D9D#2 = Sub<real2>(x0D9C,nd0D9E);
          int{2} n0D9F#8 = RealToInt<2>(nd0D9E);
          int t10DBB#1 = -1;
          int t20DBC#1 = Index<int{2},0>(n0D9F);
          int ix0DBA#1 = Add<int>(t10DBB,t20DBC);
          int t10DBE#1 = -1;
          int t20DBF#1 = Index<int{2},1>(n0D9F);
          int iy0DBD#1 = Add<int>(t10DBE,t20DBF);
          addr(IMAGE2D<float>) a0DC0#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0DBA,iy0DBD);
          real4 v00DA1#1 = LoadVoxels<IMAGE2D<float>,4>(a0DC0);
          int t10DB4#1 = -1;
          int t20DB5#1 = Index<int{2},0>(n0D9F);
          int ix0DB3#1 = Add<int>(t10DB4,t20DB5);
          int t10DB7#1 = 0;
          int t20DB8#1 = Index<int{2},1>(n0D9F);
          int iy0DB6#1 = Add<int>(t10DB7,t20DB8);
          addr(IMAGE2D<float>) a0DB9#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0DB3,iy0DB6);
          real4 v10DA2#1 = LoadVoxels<IMAGE2D<float>,4>(a0DB9);
          int t10DAD#1 = -1;
          int t20DAE#1 = Index<int{2},0>(n0D9F);
          int ix0DAC#1 = Add<int>(t10DAD,t20DAE);
          int t10DB0#1 = 1;
          int t20DB1#1 = Index<int{2},1>(n0D9F);
          int iy0DAF#1 = Add<int>(t10DB0,t20DB1);
          addr(IMAGE2D<float>) a0DB2#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0DAC,iy0DAF);
          real4 v20DA3#1 = LoadVoxels<IMAGE2D<float>,4>(a0DB2);
          int t10DA6#1 = -1;
          int t20DA7#1 = Index<int{2},0>(n0D9F);
          int ix0DA5#1 = Add<int>(t10DA6,t20DA7);
          int t10DA9#1 = 2;
          int t20DAA#1 = Index<int{2},1>(n0D9F);
          int iy0DA8#1 = Add<int>(t10DA9,t20DAA);
          addr(IMAGE2D<float>) a0DAB#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0DA5,iy0DA8);
          real4 v30DA4#1 = LoadVoxels<IMAGE2D<float>,4>(a0DAB);
          real fy0DCC#4 = Index<real2,1>(f0D9D);
          real r0DD4#1 = 0.1e1;
          real t30DD1#1 = Add<real>(fy0DCC,r0DD4);
          real t20DD0#1 = fy0DCC;
          real r0DD3#1 = 0.1e1;
          real t10DCF#1 = Sub<real>(fy0DCC,r0DD3);
          real r0DD2#1 = 0.2e1;
          real t00DCE#1 = Sub<real>(fy0DCC,r0DD2);
          real4 a0DCD#1 = <real4>[t30DD1,t20DD0,t10DCF,t00DCE];
          real4 hy0DC2#1 = EvalKernel<4,bspln3,0>(a0DCD);
          real fx0DC3#4 = Index<real2,0>(f0D9D);
          real r0DCB#1 = 0.1e1;
          real t30DC8#1 = Add<real>(fx0DC3,r0DCB);
          real t20DC7#1 = fx0DC3;
          real r0DCA#1 = 0.1e1;
          real t10DC6#1 = Sub<real>(fx0DC3,r0DCA);
          real r0DC9#1 = 0.2e1;
          real t00DC5#1 = Sub<real>(fx0DC3,r0DC9);
          real4 a0DC4#1 = <real4>[t30DC8,t20DC7,t10DC6,t00DC5];
          real4 hx0DC1#4 = EvalKernel<4,bspln3,0>(a0DC4);
          real t00DD6#1 = Dot<4>(v00DA1,hx0DC1);
          real t10DD7#1 = Dot<4>(v10DA2,hx0DC1);
          real t20DD8#1 = Dot<4>(v20DA3,hx0DC1);
          real t30DD9#1 = Dot<4>(v30DA4,hx0DC1);
          real4 tv0DD5#1 = <real4>[t00DD6,t10DD7,t20DD8,t30DD9];
          real _t0D9B#1 = Dot<4>(hy0DC2,tv0DD5);
          real2 x0E19#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0408AC);
          real2 nd0E1B#2 = Floor<2>(x0E19);
          real2 f0E1A#2 = Sub<real2>(x0E19,nd0E1B);
          int{2} n0E1C#8 = RealToInt<2>(nd0E1B);
          int t10E38#1 = -1;
          int t20E39#1 = Index<int{2},0>(n0E1C);
          int ix0E37#1 = Add<int>(t10E38,t20E39);
          int t10E3B#1 = -1;
          int t20E3C#1 = Index<int{2},1>(n0E1C);
          int iy0E3A#1 = Add<int>(t10E3B,t20E3C);
          addr(IMAGE2D<int>) a0E3D#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0E37,iy0E3A);
          real4 v00E1E#1 = LoadVoxels<IMAGE2D<int>,4>(a0E3D);
          int t10E31#1 = -1;
          int t20E32#1 = Index<int{2},0>(n0E1C);
          int ix0E30#1 = Add<int>(t10E31,t20E32);
          int t10E34#1 = 0;
          int t20E35#1 = Index<int{2},1>(n0E1C);
          int iy0E33#1 = Add<int>(t10E34,t20E35);
          addr(IMAGE2D<int>) a0E36#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0E30,iy0E33);
          real4 v10E1F#1 = LoadVoxels<IMAGE2D<int>,4>(a0E36);
          int t10E2A#1 = -1;
          int t20E2B#1 = Index<int{2},0>(n0E1C);
          int ix0E29#1 = Add<int>(t10E2A,t20E2B);
          int t10E2D#1 = 1;
          int t20E2E#1 = Index<int{2},1>(n0E1C);
          int iy0E2C#1 = Add<int>(t10E2D,t20E2E);
          addr(IMAGE2D<int>) a0E2F#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0E29,iy0E2C);
          real4 v20E20#1 = LoadVoxels<IMAGE2D<int>,4>(a0E2F);
          int t10E23#1 = -1;
          int t20E24#1 = Index<int{2},0>(n0E1C);
          int ix0E22#1 = Add<int>(t10E23,t20E24);
          int t10E26#1 = 2;
          int t20E27#1 = Index<int{2},1>(n0E1C);
          int iy0E25#1 = Add<int>(t10E26,t20E27);
          addr(IMAGE2D<int>) a0E28#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0E22,iy0E25);
          real4 v30E21#1 = LoadVoxels<IMAGE2D<int>,4>(a0E28);
          real fy0E49#4 = Index<real2,1>(f0E1A);
          real r0E51#1 = 0.1e1;
          real t30E4E#1 = Add<real>(fy0E49,r0E51);
          real t20E4D#1 = fy0E49;
          real r0E50#1 = 0.1e1;
          real t10E4C#1 = Sub<real>(fy0E49,r0E50);
          real r0E4F#1 = 0.2e1;
          real t00E4B#1 = Sub<real>(fy0E49,r0E4F);
          real4 a0E4A#1 = <real4>[t30E4E,t20E4D,t10E4C,t00E4B];
          real4 hy0E3F#1 = EvalKernel<4,bspln3,0>(a0E4A);
          real fx0E40#4 = Index<real2,0>(f0E1A);
          real r0E48#1 = 0.1e1;
          real t30E45#1 = Add<real>(fx0E40,r0E48);
          real t20E44#1 = fx0E40;
          real r0E47#1 = 0.1e1;
          real t10E43#1 = Sub<real>(fx0E40,r0E47);
          real r0E46#1 = 0.2e1;
          real t00E42#1 = Sub<real>(fx0E40,r0E46);
          real4 a0E41#1 = <real4>[t30E45,t20E44,t10E43,t00E42];
          real4 hx0E3E#4 = EvalKernel<4,bspln3,0>(a0E41);
          real t00E53#1 = Dot<4>(v00E1E,hx0E3E);
          real t10E54#1 = Dot<4>(v10E1F,hx0E3E);
          real t20E55#1 = Dot<4>(v20E20,hx0E3E);
          real t30E56#1 = Dot<4>(v30E21,hx0E3E);
          real4 tv0E52#1 = <real4>[t00E53,t10E54,t20E55,t30E56];
          real _t0E18#1 = Dot<4>(hy0E3F,tv0E52);
          real _t0E95#2 = Sub<real>(_t0D9B,_t0E18);
          real _t0E97#1 = Mul<real>(_t0E95,_t0E95);
          real score0E99#1 = Add<real>(score0D84,_t0E97);
          goto JOIN0E9C
        JOIN0E9C:  preds = [ASSIGN0E9A,COND0D9A]
          real score0E9B#2 = phi(score0E99,score0D84)
          real _t0E9D#1 = Dot<2>(r00918,v0508AE);
          real _t0E9F#1 = Dot<2>(r1091E,v0508AE);
          real2 _t0EA1#1 = <real2>[_t0E9D,_t0E9F];
          real2 pos0EA3#2 = Add<real2>(_t0EA1,_t092E);
          real2 x0EA6#1 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0EA3);
          bool _t0EA5#1 = Inside<IMAGE2D<float>,2>(x0EA6,_t089A);
          if _t0EA5 then goto ASSIGN0EAC else goto ASSIGN197F
        ASSIGN0EAC:  preds = [COND0EA9]
          real2 x0EAB#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0508AE);
          bool _t0EAA#1 = Inside<IMAGE2D<int>,2>(x0EAB,_t0896);
          goto JOIN0EB0
        JOIN0EB0:  preds = [ASSIGN0EAD,ASSIGN197F]
          bool _t0EAE#1 = phi(_t0EAA,_t0EAF)
          if _t0EAE then goto ASSIGN0EF1 else goto JOIN0FB3
        ASSIGN0EF1:  preds = [COND0EB1]
          real2 x0EB3#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0EA3);
          real2 nd0EB5#2 = Floor<2>(x0EB3);
          real2 f0EB4#2 = Sub<real2>(x0EB3,nd0EB5);
          int{2} n0EB6#8 = RealToInt<2>(nd0EB5);
          int t10ED2#1 = -1;
          int t20ED3#1 = Index<int{2},0>(n0EB6);
          int ix0ED1#1 = Add<int>(t10ED2,t20ED3);
          int t10ED5#1 = -1;
          int t20ED6#1 = Index<int{2},1>(n0EB6);
          int iy0ED4#1 = Add<int>(t10ED5,t20ED6);
          addr(IMAGE2D<float>) a0ED7#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0ED1,iy0ED4);
          real4 v00EB8#1 = LoadVoxels<IMAGE2D<float>,4>(a0ED7);
          int t10ECB#1 = -1;
          int t20ECC#1 = Index<int{2},0>(n0EB6);
          int ix0ECA#1 = Add<int>(t10ECB,t20ECC);
          int t10ECE#1 = 0;
          int t20ECF#1 = Index<int{2},1>(n0EB6);
          int iy0ECD#1 = Add<int>(t10ECE,t20ECF);
          addr(IMAGE2D<float>) a0ED0#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0ECA,iy0ECD);
          real4 v10EB9#1 = LoadVoxels<IMAGE2D<float>,4>(a0ED0);
          int t10EC4#1 = -1;
          int t20EC5#1 = Index<int{2},0>(n0EB6);
          int ix0EC3#1 = Add<int>(t10EC4,t20EC5);
          int t10EC7#1 = 1;
          int t20EC8#1 = Index<int{2},1>(n0EB6);
          int iy0EC6#1 = Add<int>(t10EC7,t20EC8);
          addr(IMAGE2D<float>) a0EC9#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0EC3,iy0EC6);
          real4 v20EBA#1 = LoadVoxels<IMAGE2D<float>,4>(a0EC9);
          int t10EBD#1 = -1;
          int t20EBE#1 = Index<int{2},0>(n0EB6);
          int ix0EBC#1 = Add<int>(t10EBD,t20EBE);
          int t10EC0#1 = 2;
          int t20EC1#1 = Index<int{2},1>(n0EB6);
          int iy0EBF#1 = Add<int>(t10EC0,t20EC1);
          addr(IMAGE2D<float>) a0EC2#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0EBC,iy0EBF);
          real4 v30EBB#1 = LoadVoxels<IMAGE2D<float>,4>(a0EC2);
          real fy0EE3#4 = Index<real2,1>(f0EB4);
          real r0EEB#1 = 0.1e1;
          real t30EE8#1 = Add<real>(fy0EE3,r0EEB);
          real t20EE7#1 = fy0EE3;
          real r0EEA#1 = 0.1e1;
          real t10EE6#1 = Sub<real>(fy0EE3,r0EEA);
          real r0EE9#1 = 0.2e1;
          real t00EE5#1 = Sub<real>(fy0EE3,r0EE9);
          real4 a0EE4#1 = <real4>[t30EE8,t20EE7,t10EE6,t00EE5];
          real4 hy0ED9#1 = EvalKernel<4,bspln3,0>(a0EE4);
          real fx0EDA#4 = Index<real2,0>(f0EB4);
          real r0EE2#1 = 0.1e1;
          real t30EDF#1 = Add<real>(fx0EDA,r0EE2);
          real t20EDE#1 = fx0EDA;
          real r0EE1#1 = 0.1e1;
          real t10EDD#1 = Sub<real>(fx0EDA,r0EE1);
          real r0EE0#1 = 0.2e1;
          real t00EDC#1 = Sub<real>(fx0EDA,r0EE0);
          real4 a0EDB#1 = <real4>[t30EDF,t20EDE,t10EDD,t00EDC];
          real4 hx0ED8#4 = EvalKernel<4,bspln3,0>(a0EDB);
          real t00EED#1 = Dot<4>(v00EB8,hx0ED8);
          real t10EEE#1 = Dot<4>(v10EB9,hx0ED8);
          real t20EEF#1 = Dot<4>(v20EBA,hx0ED8);
          real t30EF0#1 = Dot<4>(v30EBB,hx0ED8);
          real4 tv0EEC#1 = <real4>[t00EED,t10EEE,t20EEF,t30EF0];
          real _t0EB2#1 = Dot<4>(hy0ED9,tv0EEC);
          real2 x0F30#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0508AE);
          real2 nd0F32#2 = Floor<2>(x0F30);
          real2 f0F31#2 = Sub<real2>(x0F30,nd0F32);
          int{2} n0F33#8 = RealToInt<2>(nd0F32);
          int t10F4F#1 = -1;
          int t20F50#1 = Index<int{2},0>(n0F33);
          int ix0F4E#1 = Add<int>(t10F4F,t20F50);
          int t10F52#1 = -1;
          int t20F53#1 = Index<int{2},1>(n0F33);
          int iy0F51#1 = Add<int>(t10F52,t20F53);
          addr(IMAGE2D<int>) a0F54#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0F4E,iy0F51);
          real4 v00F35#1 = LoadVoxels<IMAGE2D<int>,4>(a0F54);
          int t10F48#1 = -1;
          int t20F49#1 = Index<int{2},0>(n0F33);
          int ix0F47#1 = Add<int>(t10F48,t20F49);
          int t10F4B#1 = 0;
          int t20F4C#1 = Index<int{2},1>(n0F33);
          int iy0F4A#1 = Add<int>(t10F4B,t20F4C);
          addr(IMAGE2D<int>) a0F4D#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0F47,iy0F4A);
          real4 v10F36#1 = LoadVoxels<IMAGE2D<int>,4>(a0F4D);
          int t10F41#1 = -1;
          int t20F42#1 = Index<int{2},0>(n0F33);
          int ix0F40#1 = Add<int>(t10F41,t20F42);
          int t10F44#1 = 1;
          int t20F45#1 = Index<int{2},1>(n0F33);
          int iy0F43#1 = Add<int>(t10F44,t20F45);
          addr(IMAGE2D<int>) a0F46#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0F40,iy0F43);
          real4 v20F37#1 = LoadVoxels<IMAGE2D<int>,4>(a0F46);
          int t10F3A#1 = -1;
          int t20F3B#1 = Index<int{2},0>(n0F33);
          int ix0F39#1 = Add<int>(t10F3A,t20F3B);
          int t10F3D#1 = 2;
          int t20F3E#1 = Index<int{2},1>(n0F33);
          int iy0F3C#1 = Add<int>(t10F3D,t20F3E);
          addr(IMAGE2D<int>) a0F3F#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0F39,iy0F3C);
          real4 v30F38#1 = LoadVoxels<IMAGE2D<int>,4>(a0F3F);
          real fy0F60#4 = Index<real2,1>(f0F31);
          real r0F68#1 = 0.1e1;
          real t30F65#1 = Add<real>(fy0F60,r0F68);
          real t20F64#1 = fy0F60;
          real r0F67#1 = 0.1e1;
          real t10F63#1 = Sub<real>(fy0F60,r0F67);
          real r0F66#1 = 0.2e1;
          real t00F62#1 = Sub<real>(fy0F60,r0F66);
          real4 a0F61#1 = <real4>[t30F65,t20F64,t10F63,t00F62];
          real4 hy0F56#1 = EvalKernel<4,bspln3,0>(a0F61);
          real fx0F57#4 = Index<real2,0>(f0F31);
          real r0F5F#1 = 0.1e1;
          real t30F5C#1 = Add<real>(fx0F57,r0F5F);
          real t20F5B#1 = fx0F57;
          real r0F5E#1 = 0.1e1;
          real t10F5A#1 = Sub<real>(fx0F57,r0F5E);
          real r0F5D#1 = 0.2e1;
          real t00F59#1 = Sub<real>(fx0F57,r0F5D);
          real4 a0F58#1 = <real4>[t30F5C,t20F5B,t10F5A,t00F59];
          real4 hx0F55#4 = EvalKernel<4,bspln3,0>(a0F58);
          real t00F6A#1 = Dot<4>(v00F35,hx0F55);
          real t10F6B#1 = Dot<4>(v10F36,hx0F55);
          real t20F6C#1 = Dot<4>(v20F37,hx0F55);
          real t30F6D#1 = Dot<4>(v30F38,hx0F55);
          real4 tv0F69#1 = <real4>[t00F6A,t10F6B,t20F6C,t30F6D];
          real _t0F2F#1 = Dot<4>(hy0F56,tv0F69);
          real _t0FAC#2 = Sub<real>(_t0EB2,_t0F2F);
          real _t0FAE#1 = Mul<real>(_t0FAC,_t0FAC);
          real score0FB0#1 = Add<real>(score0E9B,_t0FAE);
          goto JOIN0FB3
        JOIN0FB3:  preds = [ASSIGN0FB1,COND0EB1]
          real score0FB2#2 = phi(score0FB0,score0E9B)
          real _t0FB4#1 = Dot<2>(r00918,v0608B0);
          real _t0FB6#1 = Dot<2>(r1091E,v0608B0);
          real2 _t0FB8#1 = <real2>[_t0FB4,_t0FB6];
          real2 pos0FBA#2 = Add<real2>(_t0FB8,_t092E);
          real2 x0FBD#1 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0FBA);
          bool _t0FBC#1 = Inside<IMAGE2D<float>,2>(x0FBD,_t089A);
          if _t0FBC then goto ASSIGN0FC3 else goto ASSIGN197E
        ASSIGN0FC3:  preds = [COND0FC0]
          real2 x0FC2#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0608B0);
          bool _t0FC1#1 = Inside<IMAGE2D<int>,2>(x0FC2,_t0896);
          goto JOIN0FC7
        JOIN0FC7:  preds = [ASSIGN0FC4,ASSIGN197E]
          bool _t0FC5#1 = phi(_t0FC1,_t0FC6)
          if _t0FC5 then goto ASSIGN1008 else goto JOIN10CA
        ASSIGN1008:  preds = [COND0FC8]
          real2 x0FCA#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0FBA);
          real2 nd0FCC#2 = Floor<2>(x0FCA);
          real2 f0FCB#2 = Sub<real2>(x0FCA,nd0FCC);
          int{2} n0FCD#8 = RealToInt<2>(nd0FCC);
          int t10FE9#1 = -1;
          int t20FEA#1 = Index<int{2},0>(n0FCD);
          int ix0FE8#1 = Add<int>(t10FE9,t20FEA);
          int t10FEC#1 = -1;
          int t20FED#1 = Index<int{2},1>(n0FCD);
          int iy0FEB#1 = Add<int>(t10FEC,t20FED);
          addr(IMAGE2D<float>) a0FEE#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0FE8,iy0FEB);
          real4 v00FCF#1 = LoadVoxels<IMAGE2D<float>,4>(a0FEE);
          int t10FE2#1 = -1;
          int t20FE3#1 = Index<int{2},0>(n0FCD);
          int ix0FE1#1 = Add<int>(t10FE2,t20FE3);
          int t10FE5#1 = 0;
          int t20FE6#1 = Index<int{2},1>(n0FCD);
          int iy0FE4#1 = Add<int>(t10FE5,t20FE6);
          addr(IMAGE2D<float>) a0FE7#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0FE1,iy0FE4);
          real4 v10FD0#1 = LoadVoxels<IMAGE2D<float>,4>(a0FE7);
          int t10FDB#1 = -1;
          int t20FDC#1 = Index<int{2},0>(n0FCD);
          int ix0FDA#1 = Add<int>(t10FDB,t20FDC);
          int t10FDE#1 = 1;
          int t20FDF#1 = Index<int{2},1>(n0FCD);
          int iy0FDD#1 = Add<int>(t10FDE,t20FDF);
          addr(IMAGE2D<float>) a0FE0#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0FDA,iy0FDD);
          real4 v20FD1#1 = LoadVoxels<IMAGE2D<float>,4>(a0FE0);
          int t10FD4#1 = -1;
          int t20FD5#1 = Index<int{2},0>(n0FCD);
          int ix0FD3#1 = Add<int>(t10FD4,t20FD5);
          int t10FD7#1 = 2;
          int t20FD8#1 = Index<int{2},1>(n0FCD);
          int iy0FD6#1 = Add<int>(t10FD7,t20FD8);
          addr(IMAGE2D<float>) a0FD9#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0FD3,iy0FD6);
          real4 v30FD2#1 = LoadVoxels<IMAGE2D<float>,4>(a0FD9);
          real fy0FFA#4 = Index<real2,1>(f0FCB);
          real r1002#1 = 0.1e1;
          real t30FFF#1 = Add<real>(fy0FFA,r1002);
          real t20FFE#1 = fy0FFA;
          real r1001#1 = 0.1e1;
          real t10FFD#1 = Sub<real>(fy0FFA,r1001);
          real r1000#1 = 0.2e1;
          real t00FFC#1 = Sub<real>(fy0FFA,r1000);
          real4 a0FFB#1 = <real4>[t30FFF,t20FFE,t10FFD,t00FFC];
          real4 hy0FF0#1 = EvalKernel<4,bspln3,0>(a0FFB);
          real fx0FF1#4 = Index<real2,0>(f0FCB);
          real r0FF9#1 = 0.1e1;
          real t30FF6#1 = Add<real>(fx0FF1,r0FF9);
          real t20FF5#1 = fx0FF1;
          real r0FF8#1 = 0.1e1;
          real t10FF4#1 = Sub<real>(fx0FF1,r0FF8);
          real r0FF7#1 = 0.2e1;
          real t00FF3#1 = Sub<real>(fx0FF1,r0FF7);
          real4 a0FF2#1 = <real4>[t30FF6,t20FF5,t10FF4,t00FF3];
          real4 hx0FEF#4 = EvalKernel<4,bspln3,0>(a0FF2);
          real t01004#1 = Dot<4>(v00FCF,hx0FEF);
          real t11005#1 = Dot<4>(v10FD0,hx0FEF);
          real t21006#1 = Dot<4>(v20FD1,hx0FEF);
          real t31007#1 = Dot<4>(v30FD2,hx0FEF);
          real4 tv1003#1 = <real4>[t01004,t11005,t21006,t31007];
          real _t0FC9#1 = Dot<4>(hy0FF0,tv1003);
          real2 x1047#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0608B0);
          real2 nd1049#2 = Floor<2>(x1047);
          real2 f1048#2 = Sub<real2>(x1047,nd1049);
          int{2} n104A#8 = RealToInt<2>(nd1049);
          int t11066#1 = -1;
          int t21067#1 = Index<int{2},0>(n104A);
          int ix1065#1 = Add<int>(t11066,t21067);
          int t11069#1 = -1;
          int t2106A#1 = Index<int{2},1>(n104A);
          int iy1068#1 = Add<int>(t11069,t2106A);
          addr(IMAGE2D<int>) a106B#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1065,iy1068);
          real4 v0104C#1 = LoadVoxels<IMAGE2D<int>,4>(a106B);
          int t1105F#1 = -1;
          int t21060#1 = Index<int{2},0>(n104A);
          int ix105E#1 = Add<int>(t1105F,t21060);
          int t11062#1 = 0;
          int t21063#1 = Index<int{2},1>(n104A);
          int iy1061#1 = Add<int>(t11062,t21063);
          addr(IMAGE2D<int>) a1064#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix105E,iy1061);
          real4 v1104D#1 = LoadVoxels<IMAGE2D<int>,4>(a1064);
          int t11058#1 = -1;
          int t21059#1 = Index<int{2},0>(n104A);
          int ix1057#1 = Add<int>(t11058,t21059);
          int t1105B#1 = 1;
          int t2105C#1 = Index<int{2},1>(n104A);
          int iy105A#1 = Add<int>(t1105B,t2105C);
          addr(IMAGE2D<int>) a105D#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1057,iy105A);
          real4 v2104E#1 = LoadVoxels<IMAGE2D<int>,4>(a105D);
          int t11051#1 = -1;
          int t21052#1 = Index<int{2},0>(n104A);
          int ix1050#1 = Add<int>(t11051,t21052);
          int t11054#1 = 2;
          int t21055#1 = Index<int{2},1>(n104A);
          int iy1053#1 = Add<int>(t11054,t21055);
          addr(IMAGE2D<int>) a1056#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1050,iy1053);
          real4 v3104F#1 = LoadVoxels<IMAGE2D<int>,4>(a1056);
          real fy1077#4 = Index<real2,1>(f1048);
          real r107F#1 = 0.1e1;
          real t3107C#1 = Add<real>(fy1077,r107F);
          real t2107B#1 = fy1077;
          real r107E#1 = 0.1e1;
          real t1107A#1 = Sub<real>(fy1077,r107E);
          real r107D#1 = 0.2e1;
          real t01079#1 = Sub<real>(fy1077,r107D);
          real4 a1078#1 = <real4>[t3107C,t2107B,t1107A,t01079];
          real4 hy106D#1 = EvalKernel<4,bspln3,0>(a1078);
          real fx106E#4 = Index<real2,0>(f1048);
          real r1076#1 = 0.1e1;
          real t31073#1 = Add<real>(fx106E,r1076);
          real t21072#1 = fx106E;
          real r1075#1 = 0.1e1;
          real t11071#1 = Sub<real>(fx106E,r1075);
          real r1074#1 = 0.2e1;
          real t01070#1 = Sub<real>(fx106E,r1074);
          real4 a106F#1 = <real4>[t31073,t21072,t11071,t01070];
          real4 hx106C#4 = EvalKernel<4,bspln3,0>(a106F);
          real t01081#1 = Dot<4>(v0104C,hx106C);
          real t11082#1 = Dot<4>(v1104D,hx106C);
          real t21083#1 = Dot<4>(v2104E,hx106C);
          real t31084#1 = Dot<4>(v3104F,hx106C);
          real4 tv1080#1 = <real4>[t01081,t11082,t21083,t31084];
          real _t1046#1 = Dot<4>(hy106D,tv1080);
          real _t10C3#2 = Sub<real>(_t0FC9,_t1046);
          real _t10C5#1 = Mul<real>(_t10C3,_t10C3);
          real score10C7#1 = Add<real>(score0FB2,_t10C5);
          goto JOIN10CA
        JOIN10CA:  preds = [ASSIGN10C8,COND0FC8]
          real score10C9#2 = phi(score10C7,score0FB2)
          if _t0D8E then goto JOIN10CC else goto JOIN10CC
        JOIN10CC:  preds = [COND10CB]
          if _t0D97 then goto ASSIGN110D else goto JOIN11CF
        ASSIGN110D:  preds = [COND10CD]
          real2 x10CF#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0D8C);
          real2 nd10D1#2 = Floor<2>(x10CF);
          real2 f10D0#2 = Sub<real2>(x10CF,nd10D1);
          int{2} n10D2#8 = RealToInt<2>(nd10D1);
          int t110EE#1 = -1;
          int t210EF#1 = Index<int{2},0>(n10D2);
          int ix10ED#1 = Add<int>(t110EE,t210EF);
          int t110F1#1 = -1;
          int t210F2#1 = Index<int{2},1>(n10D2);
          int iy10F0#1 = Add<int>(t110F1,t210F2);
          addr(IMAGE2D<float>) a10F3#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix10ED,iy10F0);
          real4 v010D4#1 = LoadVoxels<IMAGE2D<float>,4>(a10F3);
          int t110E7#1 = -1;
          int t210E8#1 = Index<int{2},0>(n10D2);
          int ix10E6#1 = Add<int>(t110E7,t210E8);
          int t110EA#1 = 0;
          int t210EB#1 = Index<int{2},1>(n10D2);
          int iy10E9#1 = Add<int>(t110EA,t210EB);
          addr(IMAGE2D<float>) a10EC#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix10E6,iy10E9);
          real4 v110D5#1 = LoadVoxels<IMAGE2D<float>,4>(a10EC);
          int t110E0#1 = -1;
          int t210E1#1 = Index<int{2},0>(n10D2);
          int ix10DF#1 = Add<int>(t110E0,t210E1);
          int t110E3#1 = 1;
          int t210E4#1 = Index<int{2},1>(n10D2);
          int iy10E2#1 = Add<int>(t110E3,t210E4);
          addr(IMAGE2D<float>) a10E5#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix10DF,iy10E2);
          real4 v210D6#1 = LoadVoxels<IMAGE2D<float>,4>(a10E5);
          int t110D9#1 = -1;
          int t210DA#1 = Index<int{2},0>(n10D2);
          int ix10D8#1 = Add<int>(t110D9,t210DA);
          int t110DC#1 = 2;
          int t210DD#1 = Index<int{2},1>(n10D2);
          int iy10DB#1 = Add<int>(t110DC,t210DD);
          addr(IMAGE2D<float>) a10DE#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix10D8,iy10DB);
          real4 v310D7#1 = LoadVoxels<IMAGE2D<float>,4>(a10DE);
          real fy10FF#4 = Index<real2,1>(f10D0);
          real r1107#1 = 0.1e1;
          real t31104#1 = Add<real>(fy10FF,r1107);
          real t21103#1 = fy10FF;
          real r1106#1 = 0.1e1;
          real t11102#1 = Sub<real>(fy10FF,r1106);
          real r1105#1 = 0.2e1;
          real t01101#1 = Sub<real>(fy10FF,r1105);
          real4 a1100#1 = <real4>[t31104,t21103,t11102,t01101];
          real4 hy10F5#1 = EvalKernel<4,bspln3,0>(a1100);
          real fx10F6#4 = Index<real2,0>(f10D0);
          real r10FE#1 = 0.1e1;
          real t310FB#1 = Add<real>(fx10F6,r10FE);
          real t210FA#1 = fx10F6;
          real r10FD#1 = 0.1e1;
          real t110F9#1 = Sub<real>(fx10F6,r10FD);
          real r10FC#1 = 0.2e1;
          real t010F8#1 = Sub<real>(fx10F6,r10FC);
          real4 a10F7#1 = <real4>[t310FB,t210FA,t110F9,t010F8];
          real4 hx10F4#4 = EvalKernel<4,bspln3,0>(a10F7);
          real t01109#1 = Dot<4>(v010D4,hx10F4);
          real t1110A#1 = Dot<4>(v110D5,hx10F4);
          real t2110B#1 = Dot<4>(v210D6,hx10F4);
          real t3110C#1 = Dot<4>(v310D7,hx10F4);
          real4 tv1108#1 = <real4>[t01109,t1110A,t2110B,t3110C];
          real _t10CE#1 = Dot<4>(hy10F5,tv1108);
          real2 x114C#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0408AC);
          real2 nd114E#2 = Floor<2>(x114C);
          real2 f114D#2 = Sub<real2>(x114C,nd114E);
          int{2} n114F#8 = RealToInt<2>(nd114E);
          int t1116B#1 = -1;
          int t2116C#1 = Index<int{2},0>(n114F);
          int ix116A#1 = Add<int>(t1116B,t2116C);
          int t1116E#1 = -1;
          int t2116F#1 = Index<int{2},1>(n114F);
          int iy116D#1 = Add<int>(t1116E,t2116F);
          addr(IMAGE2D<int>) a1170#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix116A,iy116D);
          real4 v01151#1 = LoadVoxels<IMAGE2D<int>,4>(a1170);
          int t11164#1 = -1;
          int t21165#1 = Index<int{2},0>(n114F);
          int ix1163#1 = Add<int>(t11164,t21165);
          int t11167#1 = 0;
          int t21168#1 = Index<int{2},1>(n114F);
          int iy1166#1 = Add<int>(t11167,t21168);
          addr(IMAGE2D<int>) a1169#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1163,iy1166);
          real4 v11152#1 = LoadVoxels<IMAGE2D<int>,4>(a1169);
          int t1115D#1 = -1;
          int t2115E#1 = Index<int{2},0>(n114F);
          int ix115C#1 = Add<int>(t1115D,t2115E);
          int t11160#1 = 1;
          int t21161#1 = Index<int{2},1>(n114F);
          int iy115F#1 = Add<int>(t11160,t21161);
          addr(IMAGE2D<int>) a1162#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix115C,iy115F);
          real4 v21153#1 = LoadVoxels<IMAGE2D<int>,4>(a1162);
          int t11156#1 = -1;
          int t21157#1 = Index<int{2},0>(n114F);
          int ix1155#1 = Add<int>(t11156,t21157);
          int t11159#1 = 2;
          int t2115A#1 = Index<int{2},1>(n114F);
          int iy1158#1 = Add<int>(t11159,t2115A);
          addr(IMAGE2D<int>) a115B#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1155,iy1158);
          real4 v31154#1 = LoadVoxels<IMAGE2D<int>,4>(a115B);
          real fy117C#4 = Index<real2,1>(f114D);
          real r1184#1 = 0.1e1;
          real t31181#1 = Add<real>(fy117C,r1184);
          real t21180#1 = fy117C;
          real r1183#1 = 0.1e1;
          real t1117F#1 = Sub<real>(fy117C,r1183);
          real r1182#1 = 0.2e1;
          real t0117E#1 = Sub<real>(fy117C,r1182);
          real4 a117D#1 = <real4>[t31181,t21180,t1117F,t0117E];
          real4 hy1172#1 = EvalKernel<4,bspln3,0>(a117D);
          real fx1173#4 = Index<real2,0>(f114D);
          real r117B#1 = 0.1e1;
          real t31178#1 = Add<real>(fx1173,r117B);
          real t21177#1 = fx1173;
          real r117A#1 = 0.1e1;
          real t11176#1 = Sub<real>(fx1173,r117A);
          real r1179#1 = 0.2e1;
          real t01175#1 = Sub<real>(fx1173,r1179);
          real4 a1174#1 = <real4>[t31178,t21177,t11176,t01175];
          real4 hx1171#4 = EvalKernel<4,bspln3,0>(a1174);
          real t01186#1 = Dot<4>(v01151,hx1171);
          real t11187#1 = Dot<4>(v11152,hx1171);
          real t21188#1 = Dot<4>(v21153,hx1171);
          real t31189#1 = Dot<4>(v31154,hx1171);
          real4 tv1185#1 = <real4>[t01186,t11187,t21188,t31189];
          real _t114B#1 = Dot<4>(hy1172,tv1185);
          real _t11C8#2 = Sub<real>(_t10CE,_t114B);
          real _t11CA#1 = Mul<real>(_t11C8,_t11C8);
          real score11CC#1 = Add<real>(score10C9,_t11CA);
          goto JOIN11CF
        JOIN11CF:  preds = [ASSIGN11CD,COND10CD]
          real score11CE#2 = phi(score11CC,score10C9)
          real _t11D0#1 = Dot<2>(r00918,v0808B2);
          real _t11D2#1 = Dot<2>(r1091E,v0808B2);
          real2 _t11D4#1 = <real2>[_t11D0,_t11D2];
          real2 pos11D6#2 = Add<real2>(_t11D4,_t092E);
          real2 x11D9#1 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos11D6);
          bool _t11D8#1 = Inside<IMAGE2D<float>,2>(x11D9,_t089A);
          if _t11D8 then goto ASSIGN11DF else goto ASSIGN197D
        ASSIGN11DF:  preds = [COND11DC]
          real2 x11DE#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0808B2);
          bool _t11DD#1 = Inside<IMAGE2D<int>,2>(x11DE,_t0896);
          goto JOIN11E3
        JOIN11E3:  preds = [ASSIGN11E0,ASSIGN197D]
          bool _t11E1#1 = phi(_t11DD,_t11E2)
          if _t11E1 then goto ASSIGN1224 else goto JOIN12E6
        ASSIGN1224:  preds = [COND11E4]
          real2 x11E6#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos11D6);
          real2 nd11E8#2 = Floor<2>(x11E6);
          real2 f11E7#2 = Sub<real2>(x11E6,nd11E8);
          int{2} n11E9#8 = RealToInt<2>(nd11E8);
          int t11205#1 = -1;
          int t21206#1 = Index<int{2},0>(n11E9);
          int ix1204#1 = Add<int>(t11205,t21206);
          int t11208#1 = -1;
          int t21209#1 = Index<int{2},1>(n11E9);
          int iy1207#1 = Add<int>(t11208,t21209);
          addr(IMAGE2D<float>) a120A#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1204,iy1207);
          real4 v011EB#1 = LoadVoxels<IMAGE2D<float>,4>(a120A);
          int t111FE#1 = -1;
          int t211FF#1 = Index<int{2},0>(n11E9);
          int ix11FD#1 = Add<int>(t111FE,t211FF);
          int t11201#1 = 0;
          int t21202#1 = Index<int{2},1>(n11E9);
          int iy1200#1 = Add<int>(t11201,t21202);
          addr(IMAGE2D<float>) a1203#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix11FD,iy1200);
          real4 v111EC#1 = LoadVoxels<IMAGE2D<float>,4>(a1203);
          int t111F7#1 = -1;
          int t211F8#1 = Index<int{2},0>(n11E9);
          int ix11F6#1 = Add<int>(t111F7,t211F8);
          int t111FA#1 = 1;
          int t211FB#1 = Index<int{2},1>(n11E9);
          int iy11F9#1 = Add<int>(t111FA,t211FB);
          addr(IMAGE2D<float>) a11FC#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix11F6,iy11F9);
          real4 v211ED#1 = LoadVoxels<IMAGE2D<float>,4>(a11FC);
          int t111F0#1 = -1;
          int t211F1#1 = Index<int{2},0>(n11E9);
          int ix11EF#1 = Add<int>(t111F0,t211F1);
          int t111F3#1 = 2;
          int t211F4#1 = Index<int{2},1>(n11E9);
          int iy11F2#1 = Add<int>(t111F3,t211F4);
          addr(IMAGE2D<float>) a11F5#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix11EF,iy11F2);
          real4 v311EE#1 = LoadVoxels<IMAGE2D<float>,4>(a11F5);
          real fy1216#4 = Index<real2,1>(f11E7);
          real r121E#1 = 0.1e1;
          real t3121B#1 = Add<real>(fy1216,r121E);
          real t2121A#1 = fy1216;
          real r121D#1 = 0.1e1;
          real t11219#1 = Sub<real>(fy1216,r121D);
          real r121C#1 = 0.2e1;
          real t01218#1 = Sub<real>(fy1216,r121C);
          real4 a1217#1 = <real4>[t3121B,t2121A,t11219,t01218];
          real4 hy120C#1 = EvalKernel<4,bspln3,0>(a1217);
          real fx120D#4 = Index<real2,0>(f11E7);
          real r1215#1 = 0.1e1;
          real t31212#1 = Add<real>(fx120D,r1215);
          real t21211#1 = fx120D;
          real r1214#1 = 0.1e1;
          real t11210#1 = Sub<real>(fx120D,r1214);
          real r1213#1 = 0.2e1;
          real t0120F#1 = Sub<real>(fx120D,r1213);
          real4 a120E#1 = <real4>[t31212,t21211,t11210,t0120F];
          real4 hx120B#4 = EvalKernel<4,bspln3,0>(a120E);
          real t01220#1 = Dot<4>(v011EB,hx120B);
          real t11221#1 = Dot<4>(v111EC,hx120B);
          real t21222#1 = Dot<4>(v211ED,hx120B);
          real t31223#1 = Dot<4>(v311EE,hx120B);
          real4 tv121F#1 = <real4>[t01220,t11221,t21222,t31223];
          real _t11E5#1 = Dot<4>(hy120C,tv121F);
          real2 x1263#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0808B2);
          real2 nd1265#2 = Floor<2>(x1263);
          real2 f1264#2 = Sub<real2>(x1263,nd1265);
          int{2} n1266#8 = RealToInt<2>(nd1265);
          int t11282#1 = -1;
          int t21283#1 = Index<int{2},0>(n1266);
          int ix1281#1 = Add<int>(t11282,t21283);
          int t11285#1 = -1;
          int t21286#1 = Index<int{2},1>(n1266);
          int iy1284#1 = Add<int>(t11285,t21286);
          addr(IMAGE2D<int>) a1287#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1281,iy1284);
          real4 v01268#1 = LoadVoxels<IMAGE2D<int>,4>(a1287);
          int t1127B#1 = -1;
          int t2127C#1 = Index<int{2},0>(n1266);
          int ix127A#1 = Add<int>(t1127B,t2127C);
          int t1127E#1 = 0;
          int t2127F#1 = Index<int{2},1>(n1266);
          int iy127D#1 = Add<int>(t1127E,t2127F);
          addr(IMAGE2D<int>) a1280#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix127A,iy127D);
          real4 v11269#1 = LoadVoxels<IMAGE2D<int>,4>(a1280);
          int t11274#1 = -1;
          int t21275#1 = Index<int{2},0>(n1266);
          int ix1273#1 = Add<int>(t11274,t21275);
          int t11277#1 = 1;
          int t21278#1 = Index<int{2},1>(n1266);
          int iy1276#1 = Add<int>(t11277,t21278);
          addr(IMAGE2D<int>) a1279#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1273,iy1276);
          real4 v2126A#1 = LoadVoxels<IMAGE2D<int>,4>(a1279);
          int t1126D#1 = -1;
          int t2126E#1 = Index<int{2},0>(n1266);
          int ix126C#1 = Add<int>(t1126D,t2126E);
          int t11270#1 = 2;
          int t21271#1 = Index<int{2},1>(n1266);
          int iy126F#1 = Add<int>(t11270,t21271);
          addr(IMAGE2D<int>) a1272#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix126C,iy126F);
          real4 v3126B#1 = LoadVoxels<IMAGE2D<int>,4>(a1272);
          real fy1293#4 = Index<real2,1>(f1264);
          real r129B#1 = 0.1e1;
          real t31298#1 = Add<real>(fy1293,r129B);
          real t21297#1 = fy1293;
          real r129A#1 = 0.1e1;
          real t11296#1 = Sub<real>(fy1293,r129A);
          real r1299#1 = 0.2e1;
          real t01295#1 = Sub<real>(fy1293,r1299);
          real4 a1294#1 = <real4>[t31298,t21297,t11296,t01295];
          real4 hy1289#1 = EvalKernel<4,bspln3,0>(a1294);
          real fx128A#4 = Index<real2,0>(f1264);
          real r1292#1 = 0.1e1;
          real t3128F#1 = Add<real>(fx128A,r1292);
          real t2128E#1 = fx128A;
          real r1291#1 = 0.1e1;
          real t1128D#1 = Sub<real>(fx128A,r1291);
          real r1290#1 = 0.2e1;
          real t0128C#1 = Sub<real>(fx128A,r1290);
          real4 a128B#1 = <real4>[t3128F,t2128E,t1128D,t0128C];
          real4 hx1288#4 = EvalKernel<4,bspln3,0>(a128B);
          real t0129D#1 = Dot<4>(v01268,hx1288);
          real t1129E#1 = Dot<4>(v11269,hx1288);
          real t2129F#1 = Dot<4>(v2126A,hx1288);
          real t312A0#1 = Dot<4>(v3126B,hx1288);
          real4 tv129C#1 = <real4>[t0129D,t1129E,t2129F,t312A0];
          real _t1262#1 = Dot<4>(hy1289,tv129C);
          real _t12DF#2 = Sub<real>(_t11E5,_t1262);
          real _t12E1#1 = Mul<real>(_t12DF,_t12DF);
          real score12E3#1 = Add<real>(score11CE,_t12E1);
          goto JOIN12E6
        JOIN12E6:  preds = [ASSIGN12E4,COND11E4]
          real score12E5#2 = phi(score12E3,score11CE)
          real _t12E7#1 = Dot<2>(r00918,v0908B4);
          real _t12E9#1 = Dot<2>(r1091E,v0908B4);
          real2 _t12EB#1 = <real2>[_t12E7,_t12E9];
          real2 pos12ED#2 = Add<real2>(_t12EB,_t092E);
          real2 x12F0#1 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos12ED);
          bool _t12EF#1 = Inside<IMAGE2D<float>,2>(x12F0,_t089A);
          if _t12EF then goto ASSIGN12F6 else goto ASSIGN197C
        ASSIGN12F6:  preds = [COND12F3]
          real2 x12F5#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0908B4);
          bool _t12F4#1 = Inside<IMAGE2D<int>,2>(x12F5,_t0896);
          goto JOIN12FA
        JOIN12FA:  preds = [ASSIGN12F7,ASSIGN197C]
          bool _t12F8#1 = phi(_t12F4,_t12F9)
          if _t12F8 then goto ASSIGN133B else goto JOIN13FD
        ASSIGN133B:  preds = [COND12FB]
          real2 x12FD#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos12ED);
          real2 nd12FF#2 = Floor<2>(x12FD);
          real2 f12FE#2 = Sub<real2>(x12FD,nd12FF);
          int{2} n1300#8 = RealToInt<2>(nd12FF);
          int t1131C#1 = -1;
          int t2131D#1 = Index<int{2},0>(n1300);
          int ix131B#1 = Add<int>(t1131C,t2131D);
          int t1131F#1 = -1;
          int t21320#1 = Index<int{2},1>(n1300);
          int iy131E#1 = Add<int>(t1131F,t21320);
          addr(IMAGE2D<float>) a1321#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix131B,iy131E);
          real4 v01302#1 = LoadVoxels<IMAGE2D<float>,4>(a1321);
          int t11315#1 = -1;
          int t21316#1 = Index<int{2},0>(n1300);
          int ix1314#1 = Add<int>(t11315,t21316);
          int t11318#1 = 0;
          int t21319#1 = Index<int{2},1>(n1300);
          int iy1317#1 = Add<int>(t11318,t21319);
          addr(IMAGE2D<float>) a131A#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1314,iy1317);
          real4 v11303#1 = LoadVoxels<IMAGE2D<float>,4>(a131A);
          int t1130E#1 = -1;
          int t2130F#1 = Index<int{2},0>(n1300);
          int ix130D#1 = Add<int>(t1130E,t2130F);
          int t11311#1 = 1;
          int t21312#1 = Index<int{2},1>(n1300);
          int iy1310#1 = Add<int>(t11311,t21312);
          addr(IMAGE2D<float>) a1313#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix130D,iy1310);
          real4 v21304#1 = LoadVoxels<IMAGE2D<float>,4>(a1313);
          int t11307#1 = -1;
          int t21308#1 = Index<int{2},0>(n1300);
          int ix1306#1 = Add<int>(t11307,t21308);
          int t1130A#1 = 2;
          int t2130B#1 = Index<int{2},1>(n1300);
          int iy1309#1 = Add<int>(t1130A,t2130B);
          addr(IMAGE2D<float>) a130C#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1306,iy1309);
          real4 v31305#1 = LoadVoxels<IMAGE2D<float>,4>(a130C);
          real fy132D#4 = Index<real2,1>(f12FE);
          real r1335#1 = 0.1e1;
          real t31332#1 = Add<real>(fy132D,r1335);
          real t21331#1 = fy132D;
          real r1334#1 = 0.1e1;
          real t11330#1 = Sub<real>(fy132D,r1334);
          real r1333#1 = 0.2e1;
          real t0132F#1 = Sub<real>(fy132D,r1333);
          real4 a132E#1 = <real4>[t31332,t21331,t11330,t0132F];
          real4 hy1323#1 = EvalKernel<4,bspln3,0>(a132E);
          real fx1324#4 = Index<real2,0>(f12FE);
          real r132C#1 = 0.1e1;
          real t31329#1 = Add<real>(fx1324,r132C);
          real t21328#1 = fx1324;
          real r132B#1 = 0.1e1;
          real t11327#1 = Sub<real>(fx1324,r132B);
          real r132A#1 = 0.2e1;
          real t01326#1 = Sub<real>(fx1324,r132A);
          real4 a1325#1 = <real4>[t31329,t21328,t11327,t01326];
          real4 hx1322#4 = EvalKernel<4,bspln3,0>(a1325);
          real t01337#1 = Dot<4>(v01302,hx1322);
          real t11338#1 = Dot<4>(v11303,hx1322);
          real t21339#1 = Dot<4>(v21304,hx1322);
          real t3133A#1 = Dot<4>(v31305,hx1322);
          real4 tv1336#1 = <real4>[t01337,t11338,t21339,t3133A];
          real _t12FC#1 = Dot<4>(hy1323,tv1336);
          real2 x137A#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0908B4);
          real2 nd137C#2 = Floor<2>(x137A);
          real2 f137B#2 = Sub<real2>(x137A,nd137C);
          int{2} n137D#8 = RealToInt<2>(nd137C);
          int t11399#1 = -1;
          int t2139A#1 = Index<int{2},0>(n137D);
          int ix1398#1 = Add<int>(t11399,t2139A);
          int t1139C#1 = -1;
          int t2139D#1 = Index<int{2},1>(n137D);
          int iy139B#1 = Add<int>(t1139C,t2139D);
          addr(IMAGE2D<int>) a139E#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1398,iy139B);
          real4 v0137F#1 = LoadVoxels<IMAGE2D<int>,4>(a139E);
          int t11392#1 = -1;
          int t21393#1 = Index<int{2},0>(n137D);
          int ix1391#1 = Add<int>(t11392,t21393);
          int t11395#1 = 0;
          int t21396#1 = Index<int{2},1>(n137D);
          int iy1394#1 = Add<int>(t11395,t21396);
          addr(IMAGE2D<int>) a1397#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1391,iy1394);
          real4 v11380#1 = LoadVoxels<IMAGE2D<int>,4>(a1397);
          int t1138B#1 = -1;
          int t2138C#1 = Index<int{2},0>(n137D);
          int ix138A#1 = Add<int>(t1138B,t2138C);
          int t1138E#1 = 1;
          int t2138F#1 = Index<int{2},1>(n137D);
          int iy138D#1 = Add<int>(t1138E,t2138F);
          addr(IMAGE2D<int>) a1390#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix138A,iy138D);
          real4 v21381#1 = LoadVoxels<IMAGE2D<int>,4>(a1390);
          int t11384#1 = -1;
          int t21385#1 = Index<int{2},0>(n137D);
          int ix1383#1 = Add<int>(t11384,t21385);
          int t11387#1 = 2;
          int t21388#1 = Index<int{2},1>(n137D);
          int iy1386#1 = Add<int>(t11387,t21388);
          addr(IMAGE2D<int>) a1389#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1383,iy1386);
          real4 v31382#1 = LoadVoxels<IMAGE2D<int>,4>(a1389);
          real fy13AA#4 = Index<real2,1>(f137B);
          real r13B2#1 = 0.1e1;
          real t313AF#1 = Add<real>(fy13AA,r13B2);
          real t213AE#1 = fy13AA;
          real r13B1#1 = 0.1e1;
          real t113AD#1 = Sub<real>(fy13AA,r13B1);
          real r13B0#1 = 0.2e1;
          real t013AC#1 = Sub<real>(fy13AA,r13B0);
          real4 a13AB#1 = <real4>[t313AF,t213AE,t113AD,t013AC];
          real4 hy13A0#1 = EvalKernel<4,bspln3,0>(a13AB);
          real fx13A1#4 = Index<real2,0>(f137B);
          real r13A9#1 = 0.1e1;
          real t313A6#1 = Add<real>(fx13A1,r13A9);
          real t213A5#1 = fx13A1;
          real r13A8#1 = 0.1e1;
          real t113A4#1 = Sub<real>(fx13A1,r13A8);
          real r13A7#1 = 0.2e1;
          real t013A3#1 = Sub<real>(fx13A1,r13A7);
          real4 a13A2#1 = <real4>[t313A6,t213A5,t113A4,t013A3];
          real4 hx139F#4 = EvalKernel<4,bspln3,0>(a13A2);
          real t013B4#1 = Dot<4>(v0137F,hx139F);
          real t113B5#1 = Dot<4>(v11380,hx139F);
          real t213B6#1 = Dot<4>(v21381,hx139F);
          real t313B7#1 = Dot<4>(v31382,hx139F);
          real4 tv13B3#1 = <real4>[t013B4,t113B5,t213B6,t313B7];
          real _t1379#1 = Dot<4>(hy13A0,tv13B3);
          real _t13F6#2 = Sub<real>(_t12FC,_t1379);
          real _t13F8#1 = Mul<real>(_t13F6,_t13F6);
          real score13FA#1 = Add<real>(score12E5,_t13F8);
          goto JOIN13FD
        JOIN13FD:  preds = [ASSIGN13FB,COND12FB]
          real score13FC#2 = phi(score13FA,score12E5)
          real _t13FE#1 = Dot<2>(r00918,v1008B6);
          real _t1400#1 = Dot<2>(r1091E,v1008B6);
          real2 _t1402#1 = <real2>[_t13FE,_t1400];
          real2 pos1404#2 = Add<real2>(_t1402,_t092E);
          real2 x1407#1 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1404);
          bool _t1406#1 = Inside<IMAGE2D<float>,2>(x1407,_t089A);
          if _t1406 then goto ASSIGN140D else goto ASSIGN197B
        ASSIGN140D:  preds = [COND140A]
          real2 x140C#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1008B6);
          bool _t140B#1 = Inside<IMAGE2D<int>,2>(x140C,_t0896);
          goto JOIN1411
        JOIN1411:  preds = [ASSIGN140E,ASSIGN197B]
          bool _t140F#1 = phi(_t140B,_t1410)
          if _t140F then goto ASSIGN1452 else goto JOIN1514
        ASSIGN1452:  preds = [COND1412]
          real2 x1414#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1404);
          real2 nd1416#2 = Floor<2>(x1414);
          real2 f1415#2 = Sub<real2>(x1414,nd1416);
          int{2} n1417#8 = RealToInt<2>(nd1416);
          int t11433#1 = -1;
          int t21434#1 = Index<int{2},0>(n1417);
          int ix1432#1 = Add<int>(t11433,t21434);
          int t11436#1 = -1;
          int t21437#1 = Index<int{2},1>(n1417);
          int iy1435#1 = Add<int>(t11436,t21437);
          addr(IMAGE2D<float>) a1438#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1432,iy1435);
          real4 v01419#1 = LoadVoxels<IMAGE2D<float>,4>(a1438);
          int t1142C#1 = -1;
          int t2142D#1 = Index<int{2},0>(n1417);
          int ix142B#1 = Add<int>(t1142C,t2142D);
          int t1142F#1 = 0;
          int t21430#1 = Index<int{2},1>(n1417);
          int iy142E#1 = Add<int>(t1142F,t21430);
          addr(IMAGE2D<float>) a1431#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix142B,iy142E);
          real4 v1141A#1 = LoadVoxels<IMAGE2D<float>,4>(a1431);
          int t11425#1 = -1;
          int t21426#1 = Index<int{2},0>(n1417);
          int ix1424#1 = Add<int>(t11425,t21426);
          int t11428#1 = 1;
          int t21429#1 = Index<int{2},1>(n1417);
          int iy1427#1 = Add<int>(t11428,t21429);
          addr(IMAGE2D<float>) a142A#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1424,iy1427);
          real4 v2141B#1 = LoadVoxels<IMAGE2D<float>,4>(a142A);
          int t1141E#1 = -1;
          int t2141F#1 = Index<int{2},0>(n1417);
          int ix141D#1 = Add<int>(t1141E,t2141F);
          int t11421#1 = 2;
          int t21422#1 = Index<int{2},1>(n1417);
          int iy1420#1 = Add<int>(t11421,t21422);
          addr(IMAGE2D<float>) a1423#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix141D,iy1420);
          real4 v3141C#1 = LoadVoxels<IMAGE2D<float>,4>(a1423);
          real fy1444#4 = Index<real2,1>(f1415);
          real r144C#1 = 0.1e1;
          real t31449#1 = Add<real>(fy1444,r144C);
          real t21448#1 = fy1444;
          real r144B#1 = 0.1e1;
          real t11447#1 = Sub<real>(fy1444,r144B);
          real r144A#1 = 0.2e1;
          real t01446#1 = Sub<real>(fy1444,r144A);
          real4 a1445#1 = <real4>[t31449,t21448,t11447,t01446];
          real4 hy143A#1 = EvalKernel<4,bspln3,0>(a1445);
          real fx143B#4 = Index<real2,0>(f1415);
          real r1443#1 = 0.1e1;
          real t31440#1 = Add<real>(fx143B,r1443);
          real t2143F#1 = fx143B;
          real r1442#1 = 0.1e1;
          real t1143E#1 = Sub<real>(fx143B,r1442);
          real r1441#1 = 0.2e1;
          real t0143D#1 = Sub<real>(fx143B,r1441);
          real4 a143C#1 = <real4>[t31440,t2143F,t1143E,t0143D];
          real4 hx1439#4 = EvalKernel<4,bspln3,0>(a143C);
          real t0144E#1 = Dot<4>(v01419,hx1439);
          real t1144F#1 = Dot<4>(v1141A,hx1439);
          real t21450#1 = Dot<4>(v2141B,hx1439);
          real t31451#1 = Dot<4>(v3141C,hx1439);
          real4 tv144D#1 = <real4>[t0144E,t1144F,t21450,t31451];
          real _t1413#1 = Dot<4>(hy143A,tv144D);
          real2 x1491#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1008B6);
          real2 nd1493#2 = Floor<2>(x1491);
          real2 f1492#2 = Sub<real2>(x1491,nd1493);
          int{2} n1494#8 = RealToInt<2>(nd1493);
          int t114B0#1 = -1;
          int t214B1#1 = Index<int{2},0>(n1494);
          int ix14AF#1 = Add<int>(t114B0,t214B1);
          int t114B3#1 = -1;
          int t214B4#1 = Index<int{2},1>(n1494);
          int iy14B2#1 = Add<int>(t114B3,t214B4);
          addr(IMAGE2D<int>) a14B5#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix14AF,iy14B2);
          real4 v01496#1 = LoadVoxels<IMAGE2D<int>,4>(a14B5);
          int t114A9#1 = -1;
          int t214AA#1 = Index<int{2},0>(n1494);
          int ix14A8#1 = Add<int>(t114A9,t214AA);
          int t114AC#1 = 0;
          int t214AD#1 = Index<int{2},1>(n1494);
          int iy14AB#1 = Add<int>(t114AC,t214AD);
          addr(IMAGE2D<int>) a14AE#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix14A8,iy14AB);
          real4 v11497#1 = LoadVoxels<IMAGE2D<int>,4>(a14AE);
          int t114A2#1 = -1;
          int t214A3#1 = Index<int{2},0>(n1494);
          int ix14A1#1 = Add<int>(t114A2,t214A3);
          int t114A5#1 = 1;
          int t214A6#1 = Index<int{2},1>(n1494);
          int iy14A4#1 = Add<int>(t114A5,t214A6);
          addr(IMAGE2D<int>) a14A7#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix14A1,iy14A4);
          real4 v21498#1 = LoadVoxels<IMAGE2D<int>,4>(a14A7);
          int t1149B#1 = -1;
          int t2149C#1 = Index<int{2},0>(n1494);
          int ix149A#1 = Add<int>(t1149B,t2149C);
          int t1149E#1 = 2;
          int t2149F#1 = Index<int{2},1>(n1494);
          int iy149D#1 = Add<int>(t1149E,t2149F);
          addr(IMAGE2D<int>) a14A0#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix149A,iy149D);
          real4 v31499#1 = LoadVoxels<IMAGE2D<int>,4>(a14A0);
          real fy14C1#4 = Index<real2,1>(f1492);
          real r14C9#1 = 0.1e1;
          real t314C6#1 = Add<real>(fy14C1,r14C9);
          real t214C5#1 = fy14C1;
          real r14C8#1 = 0.1e1;
          real t114C4#1 = Sub<real>(fy14C1,r14C8);
          real r14C7#1 = 0.2e1;
          real t014C3#1 = Sub<real>(fy14C1,r14C7);
          real4 a14C2#1 = <real4>[t314C6,t214C5,t114C4,t014C3];
          real4 hy14B7#1 = EvalKernel<4,bspln3,0>(a14C2);
          real fx14B8#4 = Index<real2,0>(f1492);
          real r14C0#1 = 0.1e1;
          real t314BD#1 = Add<real>(fx14B8,r14C0);
          real t214BC#1 = fx14B8;
          real r14BF#1 = 0.1e1;
          real t114BB#1 = Sub<real>(fx14B8,r14BF);
          real r14BE#1 = 0.2e1;
          real t014BA#1 = Sub<real>(fx14B8,r14BE);
          real4 a14B9#1 = <real4>[t314BD,t214BC,t114BB,t014BA];
          real4 hx14B6#4 = EvalKernel<4,bspln3,0>(a14B9);
          real t014CB#1 = Dot<4>(v01496,hx14B6);
          real t114CC#1 = Dot<4>(v11497,hx14B6);
          real t214CD#1 = Dot<4>(v21498,hx14B6);
          real t314CE#1 = Dot<4>(v31499,hx14B6);
          real4 tv14CA#1 = <real4>[t014CB,t114CC,t214CD,t314CE];
          real _t1490#1 = Dot<4>(hy14B7,tv14CA);
          real _t150D#2 = Sub<real>(_t1413,_t1490);
          real _t150F#1 = Mul<real>(_t150D,_t150D);
          real score1511#1 = Add<real>(score13FC,_t150F);
          goto JOIN1514
        JOIN1514:  preds = [ASSIGN1512,COND1412]
          real score1513#2 = phi(score1511,score13FC)
          real _t1515#1 = Dot<2>(r00918,v1108B8);
          real _t1517#1 = Dot<2>(r1091E,v1108B8);
          real2 _t1519#1 = <real2>[_t1515,_t1517];
          real2 pos151B#2 = Add<real2>(_t1519,_t092E);
          real2 x151E#1 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos151B);
          bool _t151D#1 = Inside<IMAGE2D<float>,2>(x151E,_t089A);
          if _t151D then goto ASSIGN1524 else goto ASSIGN197A
        ASSIGN1524:  preds = [COND1521]
          real2 x1523#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1108B8);
          bool _t1522#1 = Inside<IMAGE2D<int>,2>(x1523,_t0896);
          goto JOIN1528
        JOIN1528:  preds = [ASSIGN1525,ASSIGN197A]
          bool _t1526#1 = phi(_t1522,_t1527)
          if _t1526 then goto ASSIGN1569 else goto JOIN162B
        ASSIGN1569:  preds = [COND1529]
          real2 x152B#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos151B);
          real2 nd152D#2 = Floor<2>(x152B);
          real2 f152C#2 = Sub<real2>(x152B,nd152D);
          int{2} n152E#8 = RealToInt<2>(nd152D);
          int t1154A#1 = -1;
          int t2154B#1 = Index<int{2},0>(n152E);
          int ix1549#1 = Add<int>(t1154A,t2154B);
          int t1154D#1 = -1;
          int t2154E#1 = Index<int{2},1>(n152E);
          int iy154C#1 = Add<int>(t1154D,t2154E);
          addr(IMAGE2D<float>) a154F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1549,iy154C);
          real4 v01530#1 = LoadVoxels<IMAGE2D<float>,4>(a154F);
          int t11543#1 = -1;
          int t21544#1 = Index<int{2},0>(n152E);
          int ix1542#1 = Add<int>(t11543,t21544);
          int t11546#1 = 0;
          int t21547#1 = Index<int{2},1>(n152E);
          int iy1545#1 = Add<int>(t11546,t21547);
          addr(IMAGE2D<float>) a1548#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1542,iy1545);
          real4 v11531#1 = LoadVoxels<IMAGE2D<float>,4>(a1548);
          int t1153C#1 = -1;
          int t2153D#1 = Index<int{2},0>(n152E);
          int ix153B#1 = Add<int>(t1153C,t2153D);
          int t1153F#1 = 1;
          int t21540#1 = Index<int{2},1>(n152E);
          int iy153E#1 = Add<int>(t1153F,t21540);
          addr(IMAGE2D<float>) a1541#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix153B,iy153E);
          real4 v21532#1 = LoadVoxels<IMAGE2D<float>,4>(a1541);
          int t11535#1 = -1;
          int t21536#1 = Index<int{2},0>(n152E);
          int ix1534#1 = Add<int>(t11535,t21536);
          int t11538#1 = 2;
          int t21539#1 = Index<int{2},1>(n152E);
          int iy1537#1 = Add<int>(t11538,t21539);
          addr(IMAGE2D<float>) a153A#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1534,iy1537);
          real4 v31533#1 = LoadVoxels<IMAGE2D<float>,4>(a153A);
          real fy155B#4 = Index<real2,1>(f152C);
          real r1563#1 = 0.1e1;
          real t31560#1 = Add<real>(fy155B,r1563);
          real t2155F#1 = fy155B;
          real r1562#1 = 0.1e1;
          real t1155E#1 = Sub<real>(fy155B,r1562);
          real r1561#1 = 0.2e1;
          real t0155D#1 = Sub<real>(fy155B,r1561);
          real4 a155C#1 = <real4>[t31560,t2155F,t1155E,t0155D];
          real4 hy1551#1 = EvalKernel<4,bspln3,0>(a155C);
          real fx1552#4 = Index<real2,0>(f152C);
          real r155A#1 = 0.1e1;
          real t31557#1 = Add<real>(fx1552,r155A);
          real t21556#1 = fx1552;
          real r1559#1 = 0.1e1;
          real t11555#1 = Sub<real>(fx1552,r1559);
          real r1558#1 = 0.2e1;
          real t01554#1 = Sub<real>(fx1552,r1558);
          real4 a1553#1 = <real4>[t31557,t21556,t11555,t01554];
          real4 hx1550#4 = EvalKernel<4,bspln3,0>(a1553);
          real t01565#1 = Dot<4>(v01530,hx1550);
          real t11566#1 = Dot<4>(v11531,hx1550);
          real t21567#1 = Dot<4>(v21532,hx1550);
          real t31568#1 = Dot<4>(v31533,hx1550);
          real4 tv1564#1 = <real4>[t01565,t11566,t21567,t31568];
          real _t152A#1 = Dot<4>(hy1551,tv1564);
          real2 x15A8#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1108B8);
          real2 nd15AA#2 = Floor<2>(x15A8);
          real2 f15A9#2 = Sub<real2>(x15A8,nd15AA);
          int{2} n15AB#8 = RealToInt<2>(nd15AA);
          int t115C7#1 = -1;
          int t215C8#1 = Index<int{2},0>(n15AB);
          int ix15C6#1 = Add<int>(t115C7,t215C8);
          int t115CA#1 = -1;
          int t215CB#1 = Index<int{2},1>(n15AB);
          int iy15C9#1 = Add<int>(t115CA,t215CB);
          addr(IMAGE2D<int>) a15CC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix15C6,iy15C9);
          real4 v015AD#1 = LoadVoxels<IMAGE2D<int>,4>(a15CC);
          int t115C0#1 = -1;
          int t215C1#1 = Index<int{2},0>(n15AB);
          int ix15BF#1 = Add<int>(t115C0,t215C1);
          int t115C3#1 = 0;
          int t215C4#1 = Index<int{2},1>(n15AB);
          int iy15C2#1 = Add<int>(t115C3,t215C4);
          addr(IMAGE2D<int>) a15C5#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix15BF,iy15C2);
          real4 v115AE#1 = LoadVoxels<IMAGE2D<int>,4>(a15C5);
          int t115B9#1 = -1;
          int t215BA#1 = Index<int{2},0>(n15AB);
          int ix15B8#1 = Add<int>(t115B9,t215BA);
          int t115BC#1 = 1;
          int t215BD#1 = Index<int{2},1>(n15AB);
          int iy15BB#1 = Add<int>(t115BC,t215BD);
          addr(IMAGE2D<int>) a15BE#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix15B8,iy15BB);
          real4 v215AF#1 = LoadVoxels<IMAGE2D<int>,4>(a15BE);
          int t115B2#1 = -1;
          int t215B3#1 = Index<int{2},0>(n15AB);
          int ix15B1#1 = Add<int>(t115B2,t215B3);
          int t115B5#1 = 2;
          int t215B6#1 = Index<int{2},1>(n15AB);
          int iy15B4#1 = Add<int>(t115B5,t215B6);
          addr(IMAGE2D<int>) a15B7#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix15B1,iy15B4);
          real4 v315B0#1 = LoadVoxels<IMAGE2D<int>,4>(a15B7);
          real fy15D8#4 = Index<real2,1>(f15A9);
          real r15E0#1 = 0.1e1;
          real t315DD#1 = Add<real>(fy15D8,r15E0);
          real t215DC#1 = fy15D8;
          real r15DF#1 = 0.1e1;
          real t115DB#1 = Sub<real>(fy15D8,r15DF);
          real r15DE#1 = 0.2e1;
          real t015DA#1 = Sub<real>(fy15D8,r15DE);
          real4 a15D9#1 = <real4>[t315DD,t215DC,t115DB,t015DA];
          real4 hy15CE#1 = EvalKernel<4,bspln3,0>(a15D9);
          real fx15CF#4 = Index<real2,0>(f15A9);
          real r15D7#1 = 0.1e1;
          real t315D4#1 = Add<real>(fx15CF,r15D7);
          real t215D3#1 = fx15CF;
          real r15D6#1 = 0.1e1;
          real t115D2#1 = Sub<real>(fx15CF,r15D6);
          real r15D5#1 = 0.2e1;
          real t015D1#1 = Sub<real>(fx15CF,r15D5);
          real4 a15D0#1 = <real4>[t315D4,t215D3,t115D2,t015D1];
          real4 hx15CD#4 = EvalKernel<4,bspln3,0>(a15D0);
          real t015E2#1 = Dot<4>(v015AD,hx15CD);
          real t115E3#1 = Dot<4>(v115AE,hx15CD);
          real t215E4#1 = Dot<4>(v215AF,hx15CD);
          real t315E5#1 = Dot<4>(v315B0,hx15CD);
          real4 tv15E1#1 = <real4>[t015E2,t115E3,t215E4,t315E5];
          real _t15A7#1 = Dot<4>(hy15CE,tv15E1);
          real _t1624#2 = Sub<real>(_t152A,_t15A7);
          real _t1626#1 = Mul<real>(_t1624,_t1624);
          real score1628#1 = Add<real>(score1513,_t1626);
          goto JOIN162B
        JOIN162B:  preds = [ASSIGN1629,COND1529]
          real score162A#2 = phi(score1628,score1513)
          real _t162C#1 = Dot<2>(r00918,v1208BA);
          real _t162E#1 = Dot<2>(r1091E,v1208BA);
          real2 _t1630#1 = <real2>[_t162C,_t162E];
          real2 pos1632#2 = Add<real2>(_t1630,_t092E);
          real2 x1635#1 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1632);
          bool _t1634#1 = Inside<IMAGE2D<float>,2>(x1635,_t089A);
          if _t1634 then goto ASSIGN163B else goto ASSIGN1979
        ASSIGN163B:  preds = [COND1638]
          real2 x163A#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1208BA);
          bool _t1639#1 = Inside<IMAGE2D<int>,2>(x163A,_t0896);
          goto JOIN163F
        JOIN163F:  preds = [ASSIGN163C,ASSIGN1979]
          bool _t163D#1 = phi(_t1639,_t163E)
          if _t163D then goto ASSIGN1680 else goto JOIN1742
        ASSIGN1680:  preds = [COND1640]
          real2 x1642#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1632);
          real2 nd1644#2 = Floor<2>(x1642);
          real2 f1643#2 = Sub<real2>(x1642,nd1644);
          int{2} n1645#8 = RealToInt<2>(nd1644);
          int t11661#1 = -1;
          int t21662#1 = Index<int{2},0>(n1645);
          int ix1660#1 = Add<int>(t11661,t21662);
          int t11664#1 = -1;
          int t21665#1 = Index<int{2},1>(n1645);
          int iy1663#1 = Add<int>(t11664,t21665);
          addr(IMAGE2D<float>) a1666#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1660,iy1663);
          real4 v01647#1 = LoadVoxels<IMAGE2D<float>,4>(a1666);
          int t1165A#1 = -1;
          int t2165B#1 = Index<int{2},0>(n1645);
          int ix1659#1 = Add<int>(t1165A,t2165B);
          int t1165D#1 = 0;
          int t2165E#1 = Index<int{2},1>(n1645);
          int iy165C#1 = Add<int>(t1165D,t2165E);
          addr(IMAGE2D<float>) a165F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1659,iy165C);
          real4 v11648#1 = LoadVoxels<IMAGE2D<float>,4>(a165F);
          int t11653#1 = -1;
          int t21654#1 = Index<int{2},0>(n1645);
          int ix1652#1 = Add<int>(t11653,t21654);
          int t11656#1 = 1;
          int t21657#1 = Index<int{2},1>(n1645);
          int iy1655#1 = Add<int>(t11656,t21657);
          addr(IMAGE2D<float>) a1658#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1652,iy1655);
          real4 v21649#1 = LoadVoxels<IMAGE2D<float>,4>(a1658);
          int t1164C#1 = -1;
          int t2164D#1 = Index<int{2},0>(n1645);
          int ix164B#1 = Add<int>(t1164C,t2164D);
          int t1164F#1 = 2;
          int t21650#1 = Index<int{2},1>(n1645);
          int iy164E#1 = Add<int>(t1164F,t21650);
          addr(IMAGE2D<float>) a1651#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix164B,iy164E);
          real4 v3164A#1 = LoadVoxels<IMAGE2D<float>,4>(a1651);
          real fy1672#4 = Index<real2,1>(f1643);
          real r167A#1 = 0.1e1;
          real t31677#1 = Add<real>(fy1672,r167A);
          real t21676#1 = fy1672;
          real r1679#1 = 0.1e1;
          real t11675#1 = Sub<real>(fy1672,r1679);
          real r1678#1 = 0.2e1;
          real t01674#1 = Sub<real>(fy1672,r1678);
          real4 a1673#1 = <real4>[t31677,t21676,t11675,t01674];
          real4 hy1668#1 = EvalKernel<4,bspln3,0>(a1673);
          real fx1669#4 = Index<real2,0>(f1643);
          real r1671#1 = 0.1e1;
          real t3166E#1 = Add<real>(fx1669,r1671);
          real t2166D#1 = fx1669;
          real r1670#1 = 0.1e1;
          real t1166C#1 = Sub<real>(fx1669,r1670);
          real r166F#1 = 0.2e1;
          real t0166B#1 = Sub<real>(fx1669,r166F);
          real4 a166A#1 = <real4>[t3166E,t2166D,t1166C,t0166B];
          real4 hx1667#4 = EvalKernel<4,bspln3,0>(a166A);
          real t0167C#1 = Dot<4>(v01647,hx1667);
          real t1167D#1 = Dot<4>(v11648,hx1667);
          real t2167E#1 = Dot<4>(v21649,hx1667);
          real t3167F#1 = Dot<4>(v3164A,hx1667);
          real4 tv167B#1 = <real4>[t0167C,t1167D,t2167E,t3167F];
          real _t1641#1 = Dot<4>(hy1668,tv167B);
          real2 x16BF#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1208BA);
          real2 nd16C1#2 = Floor<2>(x16BF);
          real2 f16C0#2 = Sub<real2>(x16BF,nd16C1);
          int{2} n16C2#8 = RealToInt<2>(nd16C1);
          int t116DE#1 = -1;
          int t216DF#1 = Index<int{2},0>(n16C2);
          int ix16DD#1 = Add<int>(t116DE,t216DF);
          int t116E1#1 = -1;
          int t216E2#1 = Index<int{2},1>(n16C2);
          int iy16E0#1 = Add<int>(t116E1,t216E2);
          addr(IMAGE2D<int>) a16E3#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix16DD,iy16E0);
          real4 v016C4#1 = LoadVoxels<IMAGE2D<int>,4>(a16E3);
          int t116D7#1 = -1;
          int t216D8#1 = Index<int{2},0>(n16C2);
          int ix16D6#1 = Add<int>(t116D7,t216D8);
          int t116DA#1 = 0;
          int t216DB#1 = Index<int{2},1>(n16C2);
          int iy16D9#1 = Add<int>(t116DA,t216DB);
          addr(IMAGE2D<int>) a16DC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix16D6,iy16D9);
          real4 v116C5#1 = LoadVoxels<IMAGE2D<int>,4>(a16DC);
          int t116D0#1 = -1;
          int t216D1#1 = Index<int{2},0>(n16C2);
          int ix16CF#1 = Add<int>(t116D0,t216D1);
          int t116D3#1 = 1;
          int t216D4#1 = Index<int{2},1>(n16C2);
          int iy16D2#1 = Add<int>(t116D3,t216D4);
          addr(IMAGE2D<int>) a16D5#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix16CF,iy16D2);
          real4 v216C6#1 = LoadVoxels<IMAGE2D<int>,4>(a16D5);
          int t116C9#1 = -1;
          int t216CA#1 = Index<int{2},0>(n16C2);
          int ix16C8#1 = Add<int>(t116C9,t216CA);
          int t116CC#1 = 2;
          int t216CD#1 = Index<int{2},1>(n16C2);
          int iy16CB#1 = Add<int>(t116CC,t216CD);
          addr(IMAGE2D<int>) a16CE#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix16C8,iy16CB);
          real4 v316C7#1 = LoadVoxels<IMAGE2D<int>,4>(a16CE);
          real fy16EF#4 = Index<real2,1>(f16C0);
          real r16F7#1 = 0.1e1;
          real t316F4#1 = Add<real>(fy16EF,r16F7);
          real t216F3#1 = fy16EF;
          real r16F6#1 = 0.1e1;
          real t116F2#1 = Sub<real>(fy16EF,r16F6);
          real r16F5#1 = 0.2e1;
          real t016F1#1 = Sub<real>(fy16EF,r16F5);
          real4 a16F0#1 = <real4>[t316F4,t216F3,t116F2,t016F1];
          real4 hy16E5#1 = EvalKernel<4,bspln3,0>(a16F0);
          real fx16E6#4 = Index<real2,0>(f16C0);
          real r16EE#1 = 0.1e1;
          real t316EB#1 = Add<real>(fx16E6,r16EE);
          real t216EA#1 = fx16E6;
          real r16ED#1 = 0.1e1;
          real t116E9#1 = Sub<real>(fx16E6,r16ED);
          real r16EC#1 = 0.2e1;
          real t016E8#1 = Sub<real>(fx16E6,r16EC);
          real4 a16E7#1 = <real4>[t316EB,t216EA,t116E9,t016E8];
          real4 hx16E4#4 = EvalKernel<4,bspln3,0>(a16E7);
          real t016F9#1 = Dot<4>(v016C4,hx16E4);
          real t116FA#1 = Dot<4>(v116C5,hx16E4);
          real t216FB#1 = Dot<4>(v216C6,hx16E4);
          real t316FC#1 = Dot<4>(v316C7,hx16E4);
          real4 tv16F8#1 = <real4>[t016F9,t116FA,t216FB,t316FC];
          real _t16BE#1 = Dot<4>(hy16E5,tv16F8);
          real _t173B#2 = Sub<real>(_t1641,_t16BE);
          real _t173D#1 = Mul<real>(_t173B,_t173B);
          real score173F#1 = Add<real>(score162A,_t173D);
          goto JOIN1742
        JOIN1742:  preds = [ASSIGN1740,COND1640]
          real score1741#2 = phi(score173F,score162A)
          real _t1743#1 = Dot<2>(r00918,v1308BC);
          real _t1745#1 = Dot<2>(r1091E,v1308BC);
          real2 _t1747#1 = <real2>[_t1743,_t1745];
          real2 pos1749#2 = Add<real2>(_t1747,_t092E);
          real2 x174C#1 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1749);
          bool _t174B#1 = Inside<IMAGE2D<float>,2>(x174C,_t089A);
          if _t174B then goto ASSIGN1752 else goto ASSIGN1978
        ASSIGN1752:  preds = [COND174F]
          real2 x1751#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1308BC);
          bool _t1750#1 = Inside<IMAGE2D<int>,2>(x1751,_t0896);
          goto JOIN1756
        JOIN1756:  preds = [ASSIGN1753,ASSIGN1978]
          bool _t1754#1 = phi(_t1750,_t1755)
          if _t1754 then goto ASSIGN1797 else goto JOIN1859
        ASSIGN1797:  preds = [COND1757]
          real2 x1759#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1749);
          real2 nd175B#2 = Floor<2>(x1759);
          real2 f175A#2 = Sub<real2>(x1759,nd175B);
          int{2} n175C#8 = RealToInt<2>(nd175B);
          int t11778#1 = -1;
          int t21779#1 = Index<int{2},0>(n175C);
          int ix1777#1 = Add<int>(t11778,t21779);
          int t1177B#1 = -1;
          int t2177C#1 = Index<int{2},1>(n175C);
          int iy177A#1 = Add<int>(t1177B,t2177C);
          addr(IMAGE2D<float>) a177D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1777,iy177A);
          real4 v0175E#1 = LoadVoxels<IMAGE2D<float>,4>(a177D);
          int t11771#1 = -1;
          int t21772#1 = Index<int{2},0>(n175C);
          int ix1770#1 = Add<int>(t11771,t21772);
          int t11774#1 = 0;
          int t21775#1 = Index<int{2},1>(n175C);
          int iy1773#1 = Add<int>(t11774,t21775);
          addr(IMAGE2D<float>) a1776#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1770,iy1773);
          real4 v1175F#1 = LoadVoxels<IMAGE2D<float>,4>(a1776);
          int t1176A#1 = -1;
          int t2176B#1 = Index<int{2},0>(n175C);
          int ix1769#1 = Add<int>(t1176A,t2176B);
          int t1176D#1 = 1;
          int t2176E#1 = Index<int{2},1>(n175C);
          int iy176C#1 = Add<int>(t1176D,t2176E);
          addr(IMAGE2D<float>) a176F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1769,iy176C);
          real4 v21760#1 = LoadVoxels<IMAGE2D<float>,4>(a176F);
          int t11763#1 = -1;
          int t21764#1 = Index<int{2},0>(n175C);
          int ix1762#1 = Add<int>(t11763,t21764);
          int t11766#1 = 2;
          int t21767#1 = Index<int{2},1>(n175C);
          int iy1765#1 = Add<int>(t11766,t21767);
          addr(IMAGE2D<float>) a1768#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1762,iy1765);
          real4 v31761#1 = LoadVoxels<IMAGE2D<float>,4>(a1768);
          real fy1789#4 = Index<real2,1>(f175A);
          real r1791#1 = 0.1e1;
          real t3178E#1 = Add<real>(fy1789,r1791);
          real t2178D#1 = fy1789;
          real r1790#1 = 0.1e1;
          real t1178C#1 = Sub<real>(fy1789,r1790);
          real r178F#1 = 0.2e1;
          real t0178B#1 = Sub<real>(fy1789,r178F);
          real4 a178A#1 = <real4>[t3178E,t2178D,t1178C,t0178B];
          real4 hy177F#1 = EvalKernel<4,bspln3,0>(a178A);
          real fx1780#4 = Index<real2,0>(f175A);
          real r1788#1 = 0.1e1;
          real t31785#1 = Add<real>(fx1780,r1788);
          real t21784#1 = fx1780;
          real r1787#1 = 0.1e1;
          real t11783#1 = Sub<real>(fx1780,r1787);
          real r1786#1 = 0.2e1;
          real t01782#1 = Sub<real>(fx1780,r1786);
          real4 a1781#1 = <real4>[t31785,t21784,t11783,t01782];
          real4 hx177E#4 = EvalKernel<4,bspln3,0>(a1781);
          real t01793#1 = Dot<4>(v0175E,hx177E);
          real t11794#1 = Dot<4>(v1175F,hx177E);
          real t21795#1 = Dot<4>(v21760,hx177E);
          real t31796#1 = Dot<4>(v31761,hx177E);
          real4 tv1792#1 = <real4>[t01793,t11794,t21795,t31796];
          real _t1758#1 = Dot<4>(hy177F,tv1792);
          real2 x17D6#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1308BC);
          real2 nd17D8#2 = Floor<2>(x17D6);
          real2 f17D7#2 = Sub<real2>(x17D6,nd17D8);
          int{2} n17D9#8 = RealToInt<2>(nd17D8);
          int t117F5#1 = -1;
          int t217F6#1 = Index<int{2},0>(n17D9);
          int ix17F4#1 = Add<int>(t117F5,t217F6);
          int t117F8#1 = -1;
          int t217F9#1 = Index<int{2},1>(n17D9);
          int iy17F7#1 = Add<int>(t117F8,t217F9);
          addr(IMAGE2D<int>) a17FA#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix17F4,iy17F7);
          real4 v017DB#1 = LoadVoxels<IMAGE2D<int>,4>(a17FA);
          int t117EE#1 = -1;
          int t217EF#1 = Index<int{2},0>(n17D9);
          int ix17ED#1 = Add<int>(t117EE,t217EF);
          int t117F1#1 = 0;
          int t217F2#1 = Index<int{2},1>(n17D9);
          int iy17F0#1 = Add<int>(t117F1,t217F2);
          addr(IMAGE2D<int>) a17F3#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix17ED,iy17F0);
          real4 v117DC#1 = LoadVoxels<IMAGE2D<int>,4>(a17F3);
          int t117E7#1 = -1;
          int t217E8#1 = Index<int{2},0>(n17D9);
          int ix17E6#1 = Add<int>(t117E7,t217E8);
          int t117EA#1 = 1;
          int t217EB#1 = Index<int{2},1>(n17D9);
          int iy17E9#1 = Add<int>(t117EA,t217EB);
          addr(IMAGE2D<int>) a17EC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix17E6,iy17E9);
          real4 v217DD#1 = LoadVoxels<IMAGE2D<int>,4>(a17EC);
          int t117E0#1 = -1;
          int t217E1#1 = Index<int{2},0>(n17D9);
          int ix17DF#1 = Add<int>(t117E0,t217E1);
          int t117E3#1 = 2;
          int t217E4#1 = Index<int{2},1>(n17D9);
          int iy17E2#1 = Add<int>(t117E3,t217E4);
          addr(IMAGE2D<int>) a17E5#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix17DF,iy17E2);
          real4 v317DE#1 = LoadVoxels<IMAGE2D<int>,4>(a17E5);
          real fy1806#4 = Index<real2,1>(f17D7);
          real r180E#1 = 0.1e1;
          real t3180B#1 = Add<real>(fy1806,r180E);
          real t2180A#1 = fy1806;
          real r180D#1 = 0.1e1;
          real t11809#1 = Sub<real>(fy1806,r180D);
          real r180C#1 = 0.2e1;
          real t01808#1 = Sub<real>(fy1806,r180C);
          real4 a1807#1 = <real4>[t3180B,t2180A,t11809,t01808];
          real4 hy17FC#1 = EvalKernel<4,bspln3,0>(a1807);
          real fx17FD#4 = Index<real2,0>(f17D7);
          real r1805#1 = 0.1e1;
          real t31802#1 = Add<real>(fx17FD,r1805);
          real t21801#1 = fx17FD;
          real r1804#1 = 0.1e1;
          real t11800#1 = Sub<real>(fx17FD,r1804);
          real r1803#1 = 0.2e1;
          real t017FF#1 = Sub<real>(fx17FD,r1803);
          real4 a17FE#1 = <real4>[t31802,t21801,t11800,t017FF];
          real4 hx17FB#4 = EvalKernel<4,bspln3,0>(a17FE);
          real t01810#1 = Dot<4>(v017DB,hx17FB);
          real t11811#1 = Dot<4>(v117DC,hx17FB);
          real t21812#1 = Dot<4>(v217DD,hx17FB);
          real t31813#1 = Dot<4>(v317DE,hx17FB);
          real4 tv180F#1 = <real4>[t01810,t11811,t21812,t31813];
          real _t17D5#1 = Dot<4>(hy17FC,tv180F);
          real _t1852#2 = Sub<real>(_t1758,_t17D5);
          real _t1854#1 = Mul<real>(_t1852,_t1852);
          real score1856#1 = Add<real>(score1741,_t1854);
          goto JOIN1859
        JOIN1859:  preds = [ASSIGN1857,COND1757]
          real score1858#2 = phi(score1856,score1741)
          real _t185A#1 = Dot<2>(r00918,v1408BE);
          real _t185C#1 = Dot<2>(r1091E,v1408BE);
          real2 _t185E#1 = <real2>[_t185A,_t185C];
          real2 pos1860#3 = Add<real2>(_t185E,_t092E);
          real2 x1863#1 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1860);
          bool _t1862#1 = Inside<IMAGE2D<float>,2>(x1863,_t089A);
          if _t1862 then goto ASSIGN1869 else goto ASSIGN1977
        ASSIGN1869:  preds = [COND1866]
          real2 x1868#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1408BE);
          bool _t1867#1 = Inside<IMAGE2D<int>,2>(x1868,_t0896);
          goto JOIN186D
        JOIN186D:  preds = [ASSIGN186A,ASSIGN1977]
          bool _t186B#1 = phi(_t1867,_t186C)
          if _t186B then goto ASSIGN18AE else goto JOIN1970
        ASSIGN18AE:  preds = [COND186E]
          real2 x1870#2 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1860);
          real2 nd1872#2 = Floor<2>(x1870);
          real2 f1871#2 = Sub<real2>(x1870,nd1872);
          int{2} n1873#8 = RealToInt<2>(nd1872);
          int t1188F#1 = -1;
          int t21890#1 = Index<int{2},0>(n1873);
          int ix188E#1 = Add<int>(t1188F,t21890);
          int t11892#1 = -1;
          int t21893#1 = Index<int{2},1>(n1873);
          int iy1891#1 = Add<int>(t11892,t21893);
          addr(IMAGE2D<float>) a1894#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix188E,iy1891);
          real4 v01875#1 = LoadVoxels<IMAGE2D<float>,4>(a1894);
          int t11888#1 = -1;
          int t21889#1 = Index<int{2},0>(n1873);
          int ix1887#1 = Add<int>(t11888,t21889);
          int t1188B#1 = 0;
          int t2188C#1 = Index<int{2},1>(n1873);
          int iy188A#1 = Add<int>(t1188B,t2188C);
          addr(IMAGE2D<float>) a188D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1887,iy188A);
          real4 v11876#1 = LoadVoxels<IMAGE2D<float>,4>(a188D);
          int t11881#1 = -1;
          int t21882#1 = Index<int{2},0>(n1873);
          int ix1880#1 = Add<int>(t11881,t21882);
          int t11884#1 = 1;
          int t21885#1 = Index<int{2},1>(n1873);
          int iy1883#1 = Add<int>(t11884,t21885);
          addr(IMAGE2D<float>) a1886#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1880,iy1883);
          real4 v21877#1 = LoadVoxels<IMAGE2D<float>,4>(a1886);
          int t1187A#1 = -1;
          int t2187B#1 = Index<int{2},0>(n1873);
          int ix1879#1 = Add<int>(t1187A,t2187B);
          int t1187D#1 = 2;
          int t2187E#1 = Index<int{2},1>(n1873);
          int iy187C#1 = Add<int>(t1187D,t2187E);
          addr(IMAGE2D<float>) a187F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1879,iy187C);
          real4 v31878#1 = LoadVoxels<IMAGE2D<float>,4>(a187F);
          real fy18A0#4 = Index<real2,1>(f1871);
          real r18A8#1 = 0.1e1;
          real t318A5#1 = Add<real>(fy18A0,r18A8);
          real t218A4#1 = fy18A0;
          real r18A7#1 = 0.1e1;
          real t118A3#1 = Sub<real>(fy18A0,r18A7);
          real r18A6#1 = 0.2e1;
          real t018A2#1 = Sub<real>(fy18A0,r18A6);
          real4 a18A1#1 = <real4>[t318A5,t218A4,t118A3,t018A2];
          real4 hy1896#1 = EvalKernel<4,bspln3,0>(a18A1);
          real fx1897#4 = Index<real2,0>(f1871);
          real r189F#1 = 0.1e1;
          real t3189C#1 = Add<real>(fx1897,r189F);
          real t2189B#1 = fx1897;
          real r189E#1 = 0.1e1;
          real t1189A#1 = Sub<real>(fx1897,r189E);
          real r189D#1 = 0.2e1;
          real t01899#1 = Sub<real>(fx1897,r189D);
          real4 a1898#1 = <real4>[t3189C,t2189B,t1189A,t01899];
          real4 hx1895#4 = EvalKernel<4,bspln3,0>(a1898);
          real t018AA#1 = Dot<4>(v01875,hx1895);
          real t118AB#1 = Dot<4>(v11876,hx1895);
          real t218AC#1 = Dot<4>(v21877,hx1895);
          real t318AD#1 = Dot<4>(v31878,hx1895);
          real4 tv18A9#1 = <real4>[t018AA,t118AB,t218AC,t318AD];
          real _t186F#1 = Dot<4>(hy1896,tv18A9);
          real2 x18ED#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1408BE);
          real2 nd18EF#2 = Floor<2>(x18ED);
          real2 f18EE#2 = Sub<real2>(x18ED,nd18EF);
          int{2} n18F0#8 = RealToInt<2>(nd18EF);
          int t1190C#1 = -1;
          int t2190D#1 = Index<int{2},0>(n18F0);
          int ix190B#1 = Add<int>(t1190C,t2190D);
          int t1190F#1 = -1;
          int t21910#1 = Index<int{2},1>(n18F0);
          int iy190E#1 = Add<int>(t1190F,t21910);
          addr(IMAGE2D<int>) a1911#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix190B,iy190E);
          real4 v018F2#1 = LoadVoxels<IMAGE2D<int>,4>(a1911);
          int t11905#1 = -1;
          int t21906#1 = Index<int{2},0>(n18F0);
          int ix1904#1 = Add<int>(t11905,t21906);
          int t11908#1 = 0;
          int t21909#1 = Index<int{2},1>(n18F0);
          int iy1907#1 = Add<int>(t11908,t21909);
          addr(IMAGE2D<int>) a190A#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1904,iy1907);
          real4 v118F3#1 = LoadVoxels<IMAGE2D<int>,4>(a190A);
          int t118FE#1 = -1;
          int t218FF#1 = Index<int{2},0>(n18F0);
          int ix18FD#1 = Add<int>(t118FE,t218FF);
          int t11901#1 = 1;
          int t21902#1 = Index<int{2},1>(n18F0);
          int iy1900#1 = Add<int>(t11901,t21902);
          addr(IMAGE2D<int>) a1903#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix18FD,iy1900);
          real4 v218F4#1 = LoadVoxels<IMAGE2D<int>,4>(a1903);
          int t118F7#1 = -1;
          int t218F8#1 = Index<int{2},0>(n18F0);
          int ix18F6#1 = Add<int>(t118F7,t218F8);
          int t118FA#1 = 2;
          int t218FB#1 = Index<int{2},1>(n18F0);
          int iy18F9#1 = Add<int>(t118FA,t218FB);
          addr(IMAGE2D<int>) a18FC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix18F6,iy18F9);
          real4 v318F5#1 = LoadVoxels<IMAGE2D<int>,4>(a18FC);
          real fy191D#4 = Index<real2,1>(f18EE);
          real r1925#1 = 0.1e1;
          real t31922#1 = Add<real>(fy191D,r1925);
          real t21921#1 = fy191D;
          real r1924#1 = 0.1e1;
          real t11920#1 = Sub<real>(fy191D,r1924);
          real r1923#1 = 0.2e1;
          real t0191F#1 = Sub<real>(fy191D,r1923);
          real4 a191E#1 = <real4>[t31922,t21921,t11920,t0191F];
          real4 hy1913#1 = EvalKernel<4,bspln3,0>(a191E);
          real fx1914#4 = Index<real2,0>(f18EE);
          real r191C#1 = 0.1e1;
          real t31919#1 = Add<real>(fx1914,r191C);
          real t21918#1 = fx1914;
          real r191B#1 = 0.1e1;
          real t11917#1 = Sub<real>(fx1914,r191B);
          real r191A#1 = 0.2e1;
          real t01916#1 = Sub<real>(fx1914,r191A);
          real4 a1915#1 = <real4>[t31919,t21918,t11917,t01916];
          real4 hx1912#4 = EvalKernel<4,bspln3,0>(a1915);
          real t01927#1 = Dot<4>(v018F2,hx1912);
          real t11928#1 = Dot<4>(v118F3,hx1912);
          real t21929#1 = Dot<4>(v218F4,hx1912);
          real t3192A#1 = Dot<4>(v318F5,hx1912);
          real4 tv1926#1 = <real4>[t01927,t11928,t21929,t3192A];
          real _t18EC#1 = Dot<4>(hy1913,tv1926);
          real _t1969#2 = Sub<real>(_t186F,_t18EC);
          real _t196B#1 = Mul<real>(_t1969,_t1969);
          real score196D#1 = Add<real>(score1858,_t196B);
          goto JOIN1970
        JOIN1970:  preds = [ASSIGN196E,COND186E]
          real score196F#1 = phi(score196D,score1858)
          self.t = t08FA;
          self.score = score196F;
          self.r0 = r00918;
          self.r1 = r1091E;
          self.pos = pos1860;
          stabilize ()
        ASSIGN1977:  preds = [COND1866]
          bool _t186C#1 = false;
          goto JOIN186D
        ASSIGN1978:  preds = [COND174F]
          bool _t1755#1 = false;
          goto JOIN1756
        ASSIGN1979:  preds = [COND1638]
          bool _t163E#1 = false;
          goto JOIN163F
        ASSIGN197A:  preds = [COND1521]
          bool _t1527#1 = false;
          goto JOIN1528
        ASSIGN197B:  preds = [COND140A]
          bool _t1410#1 = false;
          goto JOIN1411
        ASSIGN197C:  preds = [COND12F3]
          bool _t12F9#1 = false;
          goto JOIN12FA
        ASSIGN197D:  preds = [COND11DC]
          bool _t11E2#1 = false;
          goto JOIN11E3
        ASSIGN197E:  preds = [COND0FC0]
          bool _t0FC6#1 = false;
          goto JOIN0FC7
        ASSIGN197F:  preds = [COND0EA9]
          bool _t0EAF#1 = false;
          goto JOIN0EB0
        ASSIGN1980:  preds = [COND0D92]
          bool _t0D98#1 = false;
          goto JOIN0D99
        ASSIGN1981:  preds = [COND0C7B]
          bool _t0C81#1 = false;
          goto JOIN0C82
        ASSIGN1982:  preds = [COND0B64]
          bool _t0B6A#1 = false;
          goto JOIN0B6B
        ASSIGN1983:  preds = [COND0A4D]
          bool _t0A53#1 = false;
          goto JOIN0A54
        ASSIGN1984:  preds = [COND0936]
          bool _t093C#1 = false;
          goto JOIN093D
    end Update
    method Stabilize
        ENTRY1986:  preds = []
          real3 t1987#1 = self.t;
          real score1989#1 = self.score;
          real2 r0198B#1 = self.r0;
          real2 r1198D#1 = self.r1;
          real2 pos198F#1 = self.pos;
          self.t = t1987;
          self.score = score1989;
          self.r0 = r0198B;
          self.r1 = r1198D;
          self.pos = pos198F;
          return ()
    end Stabilize
  end R
#### end program ####
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
++ mid-il:redundant-assign
##### MidIL after value numbering ####
## properties
  none
## globals
  global int T08C0#0
  global int F08C1#0
  global real2 v0008A0#4
  global real2 v0108A6#4
  global real2 v0208A8#4
  global real2 v0308AA#4
  global real2 v0508AE#4
  global real2 v0608B0#4
  global real2 v0408AC#5
  global real2 v0808B2#4
  global real2 v0908B4#4
  global real2 v1008B6#4
  global real2 v1108B8#4
  global real2 v1208BA#4
  global real2 v1308BC#4
  global real2 v1408BE#4
  global string _t0894#1
  global image(IMAGE2D<int>) _t0896#103
  global int _t0892#0
  global string _t0898#1
  global image(IMAGE2D<float>) _t089A#103
  global real _t089E#7
  global real _t08A4#7
  global real _t089C#7
  global real _t08A2#9
## global initialization
  ENTRY0891:  preds = []
    int _t0892#0 = 0;
    string _t0894#1 = "square-template.nrrd";
    image(IMAGE2D<int>) _t0896#103 = LoadImage<IMAGE2D<int>>(_t0894);
    string _t0898#1 = "square-rotate.nrrd";
    image(IMAGE2D<float>) _t089A#103 = LoadImage<IMAGE2D<float>>(_t0898);
    real _t089C#7 = 0.5e0;
    real _t089E#7 = Neg<real>(_t089C);
    real2 v0008A0#4 = <real2>[_t089E,_t089E];
    real _t08A2#9 = 0.15e0;
    real _t08A4#7 = Neg<real>(_t08A2);
    real2 v0108A6#4 = <real2>[_t089E,_t08A4];
    real2 v0208A8#4 = <real2>[_t089E,_t08A2];
    real2 v0308AA#4 = <real2>[_t089E,_t089C];
    real2 v0408AC#5 = <real2>[_t08A4,_t089C];
    real2 v0508AE#4 = <real2>[_t08A4,_t08A4];
    real2 v0608B0#4 = <real2>[_t08A4,_t08A2];
    real2 v0808B2#4 = <real2>[_t08A2,_t089E];
    real2 v0908B4#4 = <real2>[_t08A2,_t08A4];
    real2 v1008B6#4 = <real2>[_t08A2,_t08A2];
    real2 v1108B8#4 = <real2>[_t08A2,_t089C];
    real2 v1208BA#4 = <real2>[_t089C,_t089E];
    real2 v1308BC#4 = <real2>[_t089C,_t08A4];
    real2 v1408BE#4 = <real2>[_t089C,_t08A2];
    return (T08C0,F08C1,v0008A0,v0108A6,v0208A8,v0308AA,v0508AE,v0608B0,v0408AC,v0808B2,v0908B4,v1008B6,v1108B8,v1208BA,v1308BC,v1408BE,_t0894,_t0896,_t0892,_t0898,_t089A,_t089E,_t08A4,_t089C,_t08A2)
## initially
  ARRAY
    ENTRY08C8:  preds = []
      int _t08C4#4 = 0;
      int _t08C5#4 = 60;
      live vars = (_t08C5,_t08C4)
    for int i08C3#1 = _t08C4 .. _t08C5
      for int j08C6#1 = _t08C4 .. _t08C5
        for int k08C7#1 = _t08C4 .. _t08C5
          ENTRY08CC:  preds = []
            live vars = ()
          new R(i08C3,j08C6,k08C7);
## strands
  strand R (int i08CE#1, int j08CF#1, int k08D0#1)
    state: real3 self.t;output real self.score;real2 self.r0;real2 self.r1;real2 self.pos;
      ENTRY08D6:  preds = []
        real _t08D7#1 = IntToReal(i08CE);
        real _t08D9#3 = 0.60e2;
        real _t08DB#1 = Div<real>(_t08D7,_t08D9);
        real _t08DD#3 = 0.5e0;
        real _t08DF#1 = Sub<real>(_t08DB,_t08DD);
        real _t08E1#1 = IntToReal(j08CF);
        real _t08E3#1 = Div<real>(_t08E1,_t08D9);
        real _t08E5#1 = Sub<real>(_t08E3,_t08DD);
        real _t08E7#1 = IntToReal(k08D0);
        real _t08E9#1 = Div<real>(_t08E7,_t08D9);
        real _t08EB#1 = Sub<real>(_t08E9,_t08DD);
        real3 t08ED#1 = <real3>[_t08DF,_t08E5,_t08EB];
        real score08EF#3 = 0.0;
        real2 r008F1#3 = <real2>[score08EF,score08EF];
        self.t = t08ED;
        self.score = score08EF;
        self.r0 = r008F1;
        self.r1 = r008F1;
        self.pos = r008F1;
        strand_init ()
    method Update
        ENTRY08F9:  preds = []
          real3 t08FA#4 = self.t;
          real score08FC#2 = self.score;
          real _t08FE#122 = 0.1e1;
          real _t0900#63 = 0.2e1;
          int _t0902#31 = 2;
          real _t0904#6 = Subscript<real3>(t08FA,_t0902);
          real _t0906#1 = Mul<real>(_t0900,_t0904);
          real _t0908#1 = Mul<real>(_t0906,_t0904);
          real _t090A#2 = Sub<real>(_t08FE,_t0908);
          real _t090C#1 = Neg<real>(_t0900);
          real _t090E#1 = Mul<real>(_t0904,_t0904);
          real _t0910#1 = Sub<real>(_t08FE,_t090E);
          real _t0912#2 = sqrt(_t0910);
          real _t0914#1 = Mul<real>(_t090C,_t0912);
          real _t0916#1 = Mul<real>(_t0914,_t0904);
          real2 r00918#15 = <real2>[_t090A,_t0916];
          real _t091A#1 = Mul<real>(_t0900,_t0912);
          real _t091C#1 = Mul<real>(_t091A,_t0904);
          real2 r1091E#15 = <real2>[_t091C,_t090A];
          real _t0920#1 = Dot<2>(r00918,v0008A0);
          real _t0922#1 = Dot<2>(r1091E,v0008A0);
          real2 _t0924#1 = <real2>[_t0920,_t0922];
          int _t0926#31 = 0;
          real _t0928#1 = Subscript<real3>(t08FA,_t0926);
          int _t092A#31 = 1;
          real _t092C#1 = Subscript<real3>(t08FA,_t092A);
          real2 _t092E#14 = <real2>[_t0928,_t092C];
          real2 pos0930#2 = Add<real2>(_t0924,_t092E);
          real2 x0933#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0930);
          bool _t0932#1 = Inside<IMAGE2D<float>,2>(x0933,_t089A);
          if _t0932 then goto ASSIGN0939 else goto ASSIGN1984
        ASSIGN0939:  preds = [COND0936]
          real2 x0938#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0008A0);
          bool _t0937#1 = Inside<IMAGE2D<int>,2>(x0938,_t0896);
          goto JOIN093D
        JOIN093D:  preds = [ASSIGN093A,ASSIGN1984]
          bool _t093B#1 = phi(_t0937,_t093C)
          if _t093B then goto ASSIGN1997 else goto JOIN0A40
        ASSIGN1997:  preds = [COND093E]
          real2 nd0942#2 = Floor<2>(x0933);
          real2 f0941#2 = Sub<real2>(x0933,nd0942);
          int{2} n0943#8 = RealToInt<2>(nd0942);
          int t1095F#4 = -1;
          int t20960#1 = Index<int{2},0>(n0943);
          int ix095E#4 = Add<int>(t1095F,t20960);
          int t20963#4 = Index<int{2},1>(n0943);
          int iy0961#1 = Add<int>(t1095F,t20963);
          addr(IMAGE2D<float>) a0964#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix095E,iy0961);
          real4 v00945#1 = LoadVoxels<IMAGE2D<float>,4>(a0964);
          int iy095A#1 = Add<int>(_t0926,t20963);
          addr(IMAGE2D<float>) a095D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix095E,iy095A);
          real4 v10946#1 = LoadVoxels<IMAGE2D<float>,4>(a095D);
          int iy0953#1 = Add<int>(_t092A,t20963);
          addr(IMAGE2D<float>) a0956#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix095E,iy0953);
          real4 v20947#1 = LoadVoxels<IMAGE2D<float>,4>(a0956);
          int iy094C#1 = Add<int>(_t0902,t20963);
          addr(IMAGE2D<float>) a094F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix095E,iy094C);
          real4 v30948#1 = LoadVoxels<IMAGE2D<float>,4>(a094F);
          real fy0970#5 = Index<real2,1>(f0941);
          real t30975#1 = Add<real>(fy0970,_t08FE);
          real t10973#1 = Sub<real>(fy0970,_t08FE);
          real t00972#1 = Sub<real>(fy0970,_t0900);
          real4 a0971#1 = <real4>[t30975,fy0970,t10973,t00972];
          real4 hy0966#1 = EvalKernel<4,bspln3,0>(a0971);
          real fx0967#5 = Index<real2,0>(f0941);
          real t3096C#1 = Add<real>(fx0967,_t08FE);
          real t1096A#1 = Sub<real>(fx0967,_t08FE);
          real t00969#1 = Sub<real>(fx0967,_t0900);
          real4 a0968#1 = <real4>[t3096C,fx0967,t1096A,t00969];
          real4 hx0965#4 = EvalKernel<4,bspln3,0>(a0968);
          real t0097A#1 = Dot<4>(v00945,hx0965);
          real t1097B#1 = Dot<4>(v10946,hx0965);
          real t2097C#1 = Dot<4>(v20947,hx0965);
          real t3097D#1 = Dot<4>(v30948,hx0965);
          real4 tv0979#1 = <real4>[t0097A,t1097B,t2097C,t3097D];
          real _t093F#1 = Dot<4>(hy0966,tv0979);
          real2 x09BD#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0008A0);
          real2 nd09BF#2 = Floor<2>(x09BD);
          real2 f09BE#2 = Sub<real2>(x09BD,nd09BF);
          int{2} n09C0#8 = RealToInt<2>(nd09BF);
          int t209DD#1 = Index<int{2},0>(n09C0);
          int ix09DB#4 = Add<int>(t1095F,t209DD);
          int t209E0#4 = Index<int{2},1>(n09C0);
          int iy09DE#1 = Add<int>(t1095F,t209E0);
          addr(IMAGE2D<int>) a09E1#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix09DB,iy09DE);
          real4 v009C2#1 = LoadVoxels<IMAGE2D<int>,4>(a09E1);
          int iy09D7#1 = Add<int>(_t0926,t209E0);
          addr(IMAGE2D<int>) a09DA#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix09DB,iy09D7);
          real4 v109C3#1 = LoadVoxels<IMAGE2D<int>,4>(a09DA);
          int iy09D0#1 = Add<int>(_t092A,t209E0);
          addr(IMAGE2D<int>) a09D3#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix09DB,iy09D0);
          real4 v209C4#1 = LoadVoxels<IMAGE2D<int>,4>(a09D3);
          int iy09C9#1 = Add<int>(_t0902,t209E0);
          addr(IMAGE2D<int>) a09CC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix09DB,iy09C9);
          real4 v309C5#1 = LoadVoxels<IMAGE2D<int>,4>(a09CC);
          real fy09ED#5 = Index<real2,1>(f09BE);
          real t309F2#1 = Add<real>(fy09ED,_t08FE);
          real t109F0#1 = Sub<real>(fy09ED,_t08FE);
          real t009EF#1 = Sub<real>(fy09ED,_t0900);
          real4 a09EE#1 = <real4>[t309F2,fy09ED,t109F0,t009EF];
          real4 hy09E3#1 = EvalKernel<4,bspln3,0>(a09EE);
          real fx09E4#5 = Index<real2,0>(f09BE);
          real t309E9#1 = Add<real>(fx09E4,_t08FE);
          real t109E7#1 = Sub<real>(fx09E4,_t08FE);
          real t009E6#1 = Sub<real>(fx09E4,_t0900);
          real4 a09E5#1 = <real4>[t309E9,fx09E4,t109E7,t009E6];
          real4 hx09E2#4 = EvalKernel<4,bspln3,0>(a09E5);
          real t009F7#1 = Dot<4>(v009C2,hx09E2);
          real t109F8#1 = Dot<4>(v109C3,hx09E2);
          real t209F9#1 = Dot<4>(v209C4,hx09E2);
          real t309FA#1 = Dot<4>(v309C5,hx09E2);
          real4 tv09F6#1 = <real4>[t009F7,t109F8,t209F9,t309FA];
          real _t09BC#1 = Dot<4>(hy09E3,tv09F6);
          real _t0A39#2 = Sub<real>(_t093F,_t09BC);
          real _t0A3B#1 = Mul<real>(_t0A39,_t0A39);
          real score0A3D#1 = Add<real>(score08FC,_t0A3B);
          goto JOIN0A40
        JOIN0A40:  preds = [ASSIGN0A3E,COND093E]
          real score0A3F#2 = phi(score0A3D,score08FC)
          real _t0A41#1 = Dot<2>(r00918,v0108A6);
          real _t0A43#1 = Dot<2>(r1091E,v0108A6);
          real2 _t0A45#1 = <real2>[_t0A41,_t0A43];
          real2 pos0A47#2 = Add<real2>(_t0A45,_t092E);
          real2 x0A4A#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0A47);
          bool _t0A49#1 = Inside<IMAGE2D<float>,2>(x0A4A,_t089A);
          if _t0A49 then goto ASSIGN0A50 else goto ASSIGN1983
        ASSIGN0A50:  preds = [COND0A4D]
          real2 x0A4F#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0108A6);
          bool _t0A4E#1 = Inside<IMAGE2D<int>,2>(x0A4F,_t0896);
          goto JOIN0A54
        JOIN0A54:  preds = [ASSIGN0A51,ASSIGN1983]
          bool _t0A52#1 = phi(_t0A4E,_t0A53)
          if _t0A52 then goto ASSIGN19B8 else goto JOIN0B57
        ASSIGN19B8:  preds = [COND0A55]
          real2 nd0A59#2 = Floor<2>(x0A4A);
          real2 f0A58#2 = Sub<real2>(x0A4A,nd0A59);
          int{2} n0A5A#8 = RealToInt<2>(nd0A59);
          int t10A76#4 = -1;
          int t20A77#1 = Index<int{2},0>(n0A5A);
          int ix0A75#4 = Add<int>(t10A76,t20A77);
          int t20A7A#4 = Index<int{2},1>(n0A5A);
          int iy0A78#1 = Add<int>(t10A76,t20A7A);
          addr(IMAGE2D<float>) a0A7B#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0A75,iy0A78);
          real4 v00A5C#1 = LoadVoxels<IMAGE2D<float>,4>(a0A7B);
          int iy0A71#1 = Add<int>(_t0926,t20A7A);
          addr(IMAGE2D<float>) a0A74#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0A75,iy0A71);
          real4 v10A5D#1 = LoadVoxels<IMAGE2D<float>,4>(a0A74);
          int iy0A6A#1 = Add<int>(_t092A,t20A7A);
          addr(IMAGE2D<float>) a0A6D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0A75,iy0A6A);
          real4 v20A5E#1 = LoadVoxels<IMAGE2D<float>,4>(a0A6D);
          int iy0A63#1 = Add<int>(_t0902,t20A7A);
          addr(IMAGE2D<float>) a0A66#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0A75,iy0A63);
          real4 v30A5F#1 = LoadVoxels<IMAGE2D<float>,4>(a0A66);
          real fy0A87#5 = Index<real2,1>(f0A58);
          real t30A8C#1 = Add<real>(fy0A87,_t08FE);
          real t10A8A#1 = Sub<real>(fy0A87,_t08FE);
          real t00A89#1 = Sub<real>(fy0A87,_t0900);
          real4 a0A88#1 = <real4>[t30A8C,fy0A87,t10A8A,t00A89];
          real4 hy0A7D#1 = EvalKernel<4,bspln3,0>(a0A88);
          real fx0A7E#5 = Index<real2,0>(f0A58);
          real t30A83#1 = Add<real>(fx0A7E,_t08FE);
          real t10A81#1 = Sub<real>(fx0A7E,_t08FE);
          real t00A80#1 = Sub<real>(fx0A7E,_t0900);
          real4 a0A7F#1 = <real4>[t30A83,fx0A7E,t10A81,t00A80];
          real4 hx0A7C#4 = EvalKernel<4,bspln3,0>(a0A7F);
          real t00A91#1 = Dot<4>(v00A5C,hx0A7C);
          real t10A92#1 = Dot<4>(v10A5D,hx0A7C);
          real t20A93#1 = Dot<4>(v20A5E,hx0A7C);
          real t30A94#1 = Dot<4>(v30A5F,hx0A7C);
          real4 tv0A90#1 = <real4>[t00A91,t10A92,t20A93,t30A94];
          real _t0A56#1 = Dot<4>(hy0A7D,tv0A90);
          real2 x0AD4#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0108A6);
          real2 nd0AD6#2 = Floor<2>(x0AD4);
          real2 f0AD5#2 = Sub<real2>(x0AD4,nd0AD6);
          int{2} n0AD7#8 = RealToInt<2>(nd0AD6);
          int t20AF4#1 = Index<int{2},0>(n0AD7);
          int ix0AF2#4 = Add<int>(t10A76,t20AF4);
          int t20AF7#4 = Index<int{2},1>(n0AD7);
          int iy0AF5#1 = Add<int>(t10A76,t20AF7);
          addr(IMAGE2D<int>) a0AF8#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0AF2,iy0AF5);
          real4 v00AD9#1 = LoadVoxels<IMAGE2D<int>,4>(a0AF8);
          int iy0AEE#1 = Add<int>(_t0926,t20AF7);
          addr(IMAGE2D<int>) a0AF1#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0AF2,iy0AEE);
          real4 v10ADA#1 = LoadVoxels<IMAGE2D<int>,4>(a0AF1);
          int iy0AE7#1 = Add<int>(_t092A,t20AF7);
          addr(IMAGE2D<int>) a0AEA#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0AF2,iy0AE7);
          real4 v20ADB#1 = LoadVoxels<IMAGE2D<int>,4>(a0AEA);
          int iy0AE0#1 = Add<int>(_t0902,t20AF7);
          addr(IMAGE2D<int>) a0AE3#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0AF2,iy0AE0);
          real4 v30ADC#1 = LoadVoxels<IMAGE2D<int>,4>(a0AE3);
          real fy0B04#5 = Index<real2,1>(f0AD5);
          real t30B09#1 = Add<real>(fy0B04,_t08FE);
          real t10B07#1 = Sub<real>(fy0B04,_t08FE);
          real t00B06#1 = Sub<real>(fy0B04,_t0900);
          real4 a0B05#1 = <real4>[t30B09,fy0B04,t10B07,t00B06];
          real4 hy0AFA#1 = EvalKernel<4,bspln3,0>(a0B05);
          real fx0AFB#5 = Index<real2,0>(f0AD5);
          real t30B00#1 = Add<real>(fx0AFB,_t08FE);
          real t10AFE#1 = Sub<real>(fx0AFB,_t08FE);
          real t00AFD#1 = Sub<real>(fx0AFB,_t0900);
          real4 a0AFC#1 = <real4>[t30B00,fx0AFB,t10AFE,t00AFD];
          real4 hx0AF9#4 = EvalKernel<4,bspln3,0>(a0AFC);
          real t00B0E#1 = Dot<4>(v00AD9,hx0AF9);
          real t10B0F#1 = Dot<4>(v10ADA,hx0AF9);
          real t20B10#1 = Dot<4>(v20ADB,hx0AF9);
          real t30B11#1 = Dot<4>(v30ADC,hx0AF9);
          real4 tv0B0D#1 = <real4>[t00B0E,t10B0F,t20B10,t30B11];
          real _t0AD3#1 = Dot<4>(hy0AFA,tv0B0D);
          real _t0B50#2 = Sub<real>(_t0A56,_t0AD3);
          real _t0B52#1 = Mul<real>(_t0B50,_t0B50);
          real score0B54#1 = Add<real>(score0A3F,_t0B52);
          goto JOIN0B57
        JOIN0B57:  preds = [ASSIGN0B55,COND0A55]
          real score0B56#2 = phi(score0B54,score0A3F)
          real _t0B58#1 = Dot<2>(r00918,v0208A8);
          real _t0B5A#1 = Dot<2>(r1091E,v0208A8);
          real2 _t0B5C#1 = <real2>[_t0B58,_t0B5A];
          real2 pos0B5E#2 = Add<real2>(_t0B5C,_t092E);
          real2 x0B61#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0B5E);
          bool _t0B60#1 = Inside<IMAGE2D<float>,2>(x0B61,_t089A);
          if _t0B60 then goto ASSIGN0B67 else goto ASSIGN1982
        ASSIGN0B67:  preds = [COND0B64]
          real2 x0B66#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0208A8);
          bool _t0B65#1 = Inside<IMAGE2D<int>,2>(x0B66,_t0896);
          goto JOIN0B6B
        JOIN0B6B:  preds = [ASSIGN0B68,ASSIGN1982]
          bool _t0B69#1 = phi(_t0B65,_t0B6A)
          if _t0B69 then goto ASSIGN19D9 else goto JOIN0C6E
        ASSIGN19D9:  preds = [COND0B6C]
          real2 nd0B70#2 = Floor<2>(x0B61);
          real2 f0B6F#2 = Sub<real2>(x0B61,nd0B70);
          int{2} n0B71#8 = RealToInt<2>(nd0B70);
          int t10B8D#4 = -1;
          int t20B8E#1 = Index<int{2},0>(n0B71);
          int ix0B8C#4 = Add<int>(t10B8D,t20B8E);
          int t20B91#4 = Index<int{2},1>(n0B71);
          int iy0B8F#1 = Add<int>(t10B8D,t20B91);
          addr(IMAGE2D<float>) a0B92#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0B8C,iy0B8F);
          real4 v00B73#1 = LoadVoxels<IMAGE2D<float>,4>(a0B92);
          int iy0B88#1 = Add<int>(_t0926,t20B91);
          addr(IMAGE2D<float>) a0B8B#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0B8C,iy0B88);
          real4 v10B74#1 = LoadVoxels<IMAGE2D<float>,4>(a0B8B);
          int iy0B81#1 = Add<int>(_t092A,t20B91);
          addr(IMAGE2D<float>) a0B84#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0B8C,iy0B81);
          real4 v20B75#1 = LoadVoxels<IMAGE2D<float>,4>(a0B84);
          int iy0B7A#1 = Add<int>(_t0902,t20B91);
          addr(IMAGE2D<float>) a0B7D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0B8C,iy0B7A);
          real4 v30B76#1 = LoadVoxels<IMAGE2D<float>,4>(a0B7D);
          real fy0B9E#5 = Index<real2,1>(f0B6F);
          real t30BA3#1 = Add<real>(fy0B9E,_t08FE);
          real t10BA1#1 = Sub<real>(fy0B9E,_t08FE);
          real t00BA0#1 = Sub<real>(fy0B9E,_t0900);
          real4 a0B9F#1 = <real4>[t30BA3,fy0B9E,t10BA1,t00BA0];
          real4 hy0B94#1 = EvalKernel<4,bspln3,0>(a0B9F);
          real fx0B95#5 = Index<real2,0>(f0B6F);
          real t30B9A#1 = Add<real>(fx0B95,_t08FE);
          real t10B98#1 = Sub<real>(fx0B95,_t08FE);
          real t00B97#1 = Sub<real>(fx0B95,_t0900);
          real4 a0B96#1 = <real4>[t30B9A,fx0B95,t10B98,t00B97];
          real4 hx0B93#4 = EvalKernel<4,bspln3,0>(a0B96);
          real t00BA8#1 = Dot<4>(v00B73,hx0B93);
          real t10BA9#1 = Dot<4>(v10B74,hx0B93);
          real t20BAA#1 = Dot<4>(v20B75,hx0B93);
          real t30BAB#1 = Dot<4>(v30B76,hx0B93);
          real4 tv0BA7#1 = <real4>[t00BA8,t10BA9,t20BAA,t30BAB];
          real _t0B6D#1 = Dot<4>(hy0B94,tv0BA7);
          real2 x0BEB#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0208A8);
          real2 nd0BED#2 = Floor<2>(x0BEB);
          real2 f0BEC#2 = Sub<real2>(x0BEB,nd0BED);
          int{2} n0BEE#8 = RealToInt<2>(nd0BED);
          int t20C0B#1 = Index<int{2},0>(n0BEE);
          int ix0C09#4 = Add<int>(t10B8D,t20C0B);
          int t20C0E#4 = Index<int{2},1>(n0BEE);
          int iy0C0C#1 = Add<int>(t10B8D,t20C0E);
          addr(IMAGE2D<int>) a0C0F#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0C09,iy0C0C);
          real4 v00BF0#1 = LoadVoxels<IMAGE2D<int>,4>(a0C0F);
          int iy0C05#1 = Add<int>(_t0926,t20C0E);
          addr(IMAGE2D<int>) a0C08#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0C09,iy0C05);
          real4 v10BF1#1 = LoadVoxels<IMAGE2D<int>,4>(a0C08);
          int iy0BFE#1 = Add<int>(_t092A,t20C0E);
          addr(IMAGE2D<int>) a0C01#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0C09,iy0BFE);
          real4 v20BF2#1 = LoadVoxels<IMAGE2D<int>,4>(a0C01);
          int iy0BF7#1 = Add<int>(_t0902,t20C0E);
          addr(IMAGE2D<int>) a0BFA#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0C09,iy0BF7);
          real4 v30BF3#1 = LoadVoxels<IMAGE2D<int>,4>(a0BFA);
          real fy0C1B#5 = Index<real2,1>(f0BEC);
          real t30C20#1 = Add<real>(fy0C1B,_t08FE);
          real t10C1E#1 = Sub<real>(fy0C1B,_t08FE);
          real t00C1D#1 = Sub<real>(fy0C1B,_t0900);
          real4 a0C1C#1 = <real4>[t30C20,fy0C1B,t10C1E,t00C1D];
          real4 hy0C11#1 = EvalKernel<4,bspln3,0>(a0C1C);
          real fx0C12#5 = Index<real2,0>(f0BEC);
          real t30C17#1 = Add<real>(fx0C12,_t08FE);
          real t10C15#1 = Sub<real>(fx0C12,_t08FE);
          real t00C14#1 = Sub<real>(fx0C12,_t0900);
          real4 a0C13#1 = <real4>[t30C17,fx0C12,t10C15,t00C14];
          real4 hx0C10#4 = EvalKernel<4,bspln3,0>(a0C13);
          real t00C25#1 = Dot<4>(v00BF0,hx0C10);
          real t10C26#1 = Dot<4>(v10BF1,hx0C10);
          real t20C27#1 = Dot<4>(v20BF2,hx0C10);
          real t30C28#1 = Dot<4>(v30BF3,hx0C10);
          real4 tv0C24#1 = <real4>[t00C25,t10C26,t20C27,t30C28];
          real _t0BEA#1 = Dot<4>(hy0C11,tv0C24);
          real _t0C67#2 = Sub<real>(_t0B6D,_t0BEA);
          real _t0C69#1 = Mul<real>(_t0C67,_t0C67);
          real score0C6B#1 = Add<real>(score0B56,_t0C69);
          goto JOIN0C6E
        JOIN0C6E:  preds = [ASSIGN0C6C,COND0B6C]
          real score0C6D#2 = phi(score0C6B,score0B56)
          real _t0C6F#1 = Dot<2>(r00918,v0308AA);
          real _t0C71#1 = Dot<2>(r1091E,v0308AA);
          real2 _t0C73#1 = <real2>[_t0C6F,_t0C71];
          real2 pos0C75#2 = Add<real2>(_t0C73,_t092E);
          real2 x0C78#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0C75);
          bool _t0C77#1 = Inside<IMAGE2D<float>,2>(x0C78,_t089A);
          if _t0C77 then goto ASSIGN0C7E else goto ASSIGN1981
        ASSIGN0C7E:  preds = [COND0C7B]
          real2 x0C7D#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0308AA);
          bool _t0C7C#1 = Inside<IMAGE2D<int>,2>(x0C7D,_t0896);
          goto JOIN0C82
        JOIN0C82:  preds = [ASSIGN0C7F,ASSIGN1981]
          bool _t0C80#1 = phi(_t0C7C,_t0C81)
          if _t0C80 then goto ASSIGN19FA else goto JOIN0D85
        ASSIGN19FA:  preds = [COND0C83]
          real2 nd0C87#2 = Floor<2>(x0C78);
          real2 f0C86#2 = Sub<real2>(x0C78,nd0C87);
          int{2} n0C88#8 = RealToInt<2>(nd0C87);
          int t10CA4#4 = -1;
          int t20CA5#1 = Index<int{2},0>(n0C88);
          int ix0CA3#4 = Add<int>(t10CA4,t20CA5);
          int t20CA8#4 = Index<int{2},1>(n0C88);
          int iy0CA6#1 = Add<int>(t10CA4,t20CA8);
          addr(IMAGE2D<float>) a0CA9#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0CA3,iy0CA6);
          real4 v00C8A#1 = LoadVoxels<IMAGE2D<float>,4>(a0CA9);
          int iy0C9F#1 = Add<int>(_t0926,t20CA8);
          addr(IMAGE2D<float>) a0CA2#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0CA3,iy0C9F);
          real4 v10C8B#1 = LoadVoxels<IMAGE2D<float>,4>(a0CA2);
          int iy0C98#1 = Add<int>(_t092A,t20CA8);
          addr(IMAGE2D<float>) a0C9B#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0CA3,iy0C98);
          real4 v20C8C#1 = LoadVoxels<IMAGE2D<float>,4>(a0C9B);
          int iy0C91#1 = Add<int>(_t0902,t20CA8);
          addr(IMAGE2D<float>) a0C94#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0CA3,iy0C91);
          real4 v30C8D#1 = LoadVoxels<IMAGE2D<float>,4>(a0C94);
          real fy0CB5#5 = Index<real2,1>(f0C86);
          real t30CBA#1 = Add<real>(fy0CB5,_t08FE);
          real t10CB8#1 = Sub<real>(fy0CB5,_t08FE);
          real t00CB7#1 = Sub<real>(fy0CB5,_t0900);
          real4 a0CB6#1 = <real4>[t30CBA,fy0CB5,t10CB8,t00CB7];
          real4 hy0CAB#1 = EvalKernel<4,bspln3,0>(a0CB6);
          real fx0CAC#5 = Index<real2,0>(f0C86);
          real t30CB1#1 = Add<real>(fx0CAC,_t08FE);
          real t10CAF#1 = Sub<real>(fx0CAC,_t08FE);
          real t00CAE#1 = Sub<real>(fx0CAC,_t0900);
          real4 a0CAD#1 = <real4>[t30CB1,fx0CAC,t10CAF,t00CAE];
          real4 hx0CAA#4 = EvalKernel<4,bspln3,0>(a0CAD);
          real t00CBF#1 = Dot<4>(v00C8A,hx0CAA);
          real t10CC0#1 = Dot<4>(v10C8B,hx0CAA);
          real t20CC1#1 = Dot<4>(v20C8C,hx0CAA);
          real t30CC2#1 = Dot<4>(v30C8D,hx0CAA);
          real4 tv0CBE#1 = <real4>[t00CBF,t10CC0,t20CC1,t30CC2];
          real _t0C84#1 = Dot<4>(hy0CAB,tv0CBE);
          real2 x0D02#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0308AA);
          real2 nd0D04#2 = Floor<2>(x0D02);
          real2 f0D03#2 = Sub<real2>(x0D02,nd0D04);
          int{2} n0D05#8 = RealToInt<2>(nd0D04);
          int t20D22#1 = Index<int{2},0>(n0D05);
          int ix0D20#4 = Add<int>(t10CA4,t20D22);
          int t20D25#4 = Index<int{2},1>(n0D05);
          int iy0D23#1 = Add<int>(t10CA4,t20D25);
          addr(IMAGE2D<int>) a0D26#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0D20,iy0D23);
          real4 v00D07#1 = LoadVoxels<IMAGE2D<int>,4>(a0D26);
          int iy0D1C#1 = Add<int>(_t0926,t20D25);
          addr(IMAGE2D<int>) a0D1F#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0D20,iy0D1C);
          real4 v10D08#1 = LoadVoxels<IMAGE2D<int>,4>(a0D1F);
          int iy0D15#1 = Add<int>(_t092A,t20D25);
          addr(IMAGE2D<int>) a0D18#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0D20,iy0D15);
          real4 v20D09#1 = LoadVoxels<IMAGE2D<int>,4>(a0D18);
          int iy0D0E#1 = Add<int>(_t0902,t20D25);
          addr(IMAGE2D<int>) a0D11#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0D20,iy0D0E);
          real4 v30D0A#1 = LoadVoxels<IMAGE2D<int>,4>(a0D11);
          real fy0D32#5 = Index<real2,1>(f0D03);
          real t30D37#1 = Add<real>(fy0D32,_t08FE);
          real t10D35#1 = Sub<real>(fy0D32,_t08FE);
          real t00D34#1 = Sub<real>(fy0D32,_t0900);
          real4 a0D33#1 = <real4>[t30D37,fy0D32,t10D35,t00D34];
          real4 hy0D28#1 = EvalKernel<4,bspln3,0>(a0D33);
          real fx0D29#5 = Index<real2,0>(f0D03);
          real t30D2E#1 = Add<real>(fx0D29,_t08FE);
          real t10D2C#1 = Sub<real>(fx0D29,_t08FE);
          real t00D2B#1 = Sub<real>(fx0D29,_t0900);
          real4 a0D2A#1 = <real4>[t30D2E,fx0D29,t10D2C,t00D2B];
          real4 hx0D27#4 = EvalKernel<4,bspln3,0>(a0D2A);
          real t00D3C#1 = Dot<4>(v00D07,hx0D27);
          real t10D3D#1 = Dot<4>(v10D08,hx0D27);
          real t20D3E#1 = Dot<4>(v20D09,hx0D27);
          real t30D3F#1 = Dot<4>(v30D0A,hx0D27);
          real4 tv0D3B#1 = <real4>[t00D3C,t10D3D,t20D3E,t30D3F];
          real _t0D01#1 = Dot<4>(hy0D28,tv0D3B);
          real _t0D7E#2 = Sub<real>(_t0C84,_t0D01);
          real _t0D80#1 = Mul<real>(_t0D7E,_t0D7E);
          real score0D82#1 = Add<real>(score0C6D,_t0D80);
          goto JOIN0D85
        JOIN0D85:  preds = [ASSIGN0D83,COND0C83]
          real score0D84#2 = phi(score0D82,score0C6D)
          real _t0D86#1 = Dot<2>(r00918,v0408AC);
          real _t0D88#1 = Dot<2>(r1091E,v0408AC);
          real2 _t0D8A#1 = <real2>[_t0D86,_t0D88];
          real2 pos0D8C#3 = Add<real2>(_t0D8A,_t092E);
          real2 x0D8F#5 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0D8C);
          bool _t0D8E#2 = Inside<IMAGE2D<float>,2>(x0D8F,_t089A);
          if _t0D8E then goto ASSIGN0D95 else goto ASSIGN1980
        ASSIGN0D95:  preds = [COND0D92]
          real2 x0D94#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0408AC);
          bool _t0D93#1 = Inside<IMAGE2D<int>,2>(x0D94,_t0896);
          goto JOIN0D99
        JOIN0D99:  preds = [ASSIGN0D96,ASSIGN1980]
          bool _t0D97#2 = phi(_t0D93,_t0D98)
          if _t0D97 then goto ASSIGN1A1B else goto JOIN0E9C
        ASSIGN1A1B:  preds = [COND0D9A]
          real2 nd0D9E#2 = Floor<2>(x0D8F);
          real2 f0D9D#2 = Sub<real2>(x0D8F,nd0D9E);
          int{2} n0D9F#8 = RealToInt<2>(nd0D9E);
          int t10DBB#4 = -1;
          int t20DBC#1 = Index<int{2},0>(n0D9F);
          int ix0DBA#4 = Add<int>(t10DBB,t20DBC);
          int t20DBF#4 = Index<int{2},1>(n0D9F);
          int iy0DBD#1 = Add<int>(t10DBB,t20DBF);
          addr(IMAGE2D<float>) a0DC0#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0DBA,iy0DBD);
          real4 v00DA1#1 = LoadVoxels<IMAGE2D<float>,4>(a0DC0);
          int iy0DB6#1 = Add<int>(_t0926,t20DBF);
          addr(IMAGE2D<float>) a0DB9#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0DBA,iy0DB6);
          real4 v10DA2#1 = LoadVoxels<IMAGE2D<float>,4>(a0DB9);
          int iy0DAF#1 = Add<int>(_t092A,t20DBF);
          addr(IMAGE2D<float>) a0DB2#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0DBA,iy0DAF);
          real4 v20DA3#1 = LoadVoxels<IMAGE2D<float>,4>(a0DB2);
          int iy0DA8#1 = Add<int>(_t0902,t20DBF);
          addr(IMAGE2D<float>) a0DAB#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0DBA,iy0DA8);
          real4 v30DA4#1 = LoadVoxels<IMAGE2D<float>,4>(a0DAB);
          real fy0DCC#5 = Index<real2,1>(f0D9D);
          real t30DD1#1 = Add<real>(fy0DCC,_t08FE);
          real t10DCF#1 = Sub<real>(fy0DCC,_t08FE);
          real t00DCE#1 = Sub<real>(fy0DCC,_t0900);
          real4 a0DCD#1 = <real4>[t30DD1,fy0DCC,t10DCF,t00DCE];
          real4 hy0DC2#1 = EvalKernel<4,bspln3,0>(a0DCD);
          real fx0DC3#5 = Index<real2,0>(f0D9D);
          real t30DC8#1 = Add<real>(fx0DC3,_t08FE);
          real t10DC6#1 = Sub<real>(fx0DC3,_t08FE);
          real t00DC5#1 = Sub<real>(fx0DC3,_t0900);
          real4 a0DC4#1 = <real4>[t30DC8,fx0DC3,t10DC6,t00DC5];
          real4 hx0DC1#4 = EvalKernel<4,bspln3,0>(a0DC4);
          real t00DD6#1 = Dot<4>(v00DA1,hx0DC1);
          real t10DD7#1 = Dot<4>(v10DA2,hx0DC1);
          real t20DD8#1 = Dot<4>(v20DA3,hx0DC1);
          real t30DD9#1 = Dot<4>(v30DA4,hx0DC1);
          real4 tv0DD5#1 = <real4>[t00DD6,t10DD7,t20DD8,t30DD9];
          real _t0D9B#1 = Dot<4>(hy0DC2,tv0DD5);
          real2 x0E19#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0408AC);
          real2 nd0E1B#2 = Floor<2>(x0E19);
          real2 f0E1A#2 = Sub<real2>(x0E19,nd0E1B);
          int{2} n0E1C#8 = RealToInt<2>(nd0E1B);
          int t20E39#1 = Index<int{2},0>(n0E1C);
          int ix0E37#4 = Add<int>(t10DBB,t20E39);
          int t20E3C#4 = Index<int{2},1>(n0E1C);
          int iy0E3A#1 = Add<int>(t10DBB,t20E3C);
          addr(IMAGE2D<int>) a0E3D#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0E37,iy0E3A);
          real4 v00E1E#1 = LoadVoxels<IMAGE2D<int>,4>(a0E3D);
          int iy0E33#1 = Add<int>(_t0926,t20E3C);
          addr(IMAGE2D<int>) a0E36#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0E37,iy0E33);
          real4 v10E1F#1 = LoadVoxels<IMAGE2D<int>,4>(a0E36);
          int iy0E2C#1 = Add<int>(_t092A,t20E3C);
          addr(IMAGE2D<int>) a0E2F#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0E37,iy0E2C);
          real4 v20E20#1 = LoadVoxels<IMAGE2D<int>,4>(a0E2F);
          int iy0E25#1 = Add<int>(_t0902,t20E3C);
          addr(IMAGE2D<int>) a0E28#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0E37,iy0E25);
          real4 v30E21#1 = LoadVoxels<IMAGE2D<int>,4>(a0E28);
          real fy0E49#5 = Index<real2,1>(f0E1A);
          real t30E4E#1 = Add<real>(fy0E49,_t08FE);
          real t10E4C#1 = Sub<real>(fy0E49,_t08FE);
          real t00E4B#1 = Sub<real>(fy0E49,_t0900);
          real4 a0E4A#1 = <real4>[t30E4E,fy0E49,t10E4C,t00E4B];
          real4 hy0E3F#1 = EvalKernel<4,bspln3,0>(a0E4A);
          real fx0E40#5 = Index<real2,0>(f0E1A);
          real t30E45#1 = Add<real>(fx0E40,_t08FE);
          real t10E43#1 = Sub<real>(fx0E40,_t08FE);
          real t00E42#1 = Sub<real>(fx0E40,_t0900);
          real4 a0E41#1 = <real4>[t30E45,fx0E40,t10E43,t00E42];
          real4 hx0E3E#4 = EvalKernel<4,bspln3,0>(a0E41);
          real t00E53#1 = Dot<4>(v00E1E,hx0E3E);
          real t10E54#1 = Dot<4>(v10E1F,hx0E3E);
          real t20E55#1 = Dot<4>(v20E20,hx0E3E);
          real t30E56#1 = Dot<4>(v30E21,hx0E3E);
          real4 tv0E52#1 = <real4>[t00E53,t10E54,t20E55,t30E56];
          real _t0E18#1 = Dot<4>(hy0E3F,tv0E52);
          real _t0E95#2 = Sub<real>(_t0D9B,_t0E18);
          real _t0E97#1 = Mul<real>(_t0E95,_t0E95);
          real score0E99#1 = Add<real>(score0D84,_t0E97);
          goto JOIN0E9C
        JOIN0E9C:  preds = [ASSIGN0E9A,COND0D9A]
          real score0E9B#2 = phi(score0E99,score0D84)
          real _t0E9D#1 = Dot<2>(r00918,v0508AE);
          real _t0E9F#1 = Dot<2>(r1091E,v0508AE);
          real2 _t0EA1#1 = <real2>[_t0E9D,_t0E9F];
          real2 pos0EA3#2 = Add<real2>(_t0EA1,_t092E);
          real2 x0EA6#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0EA3);
          bool _t0EA5#1 = Inside<IMAGE2D<float>,2>(x0EA6,_t089A);
          if _t0EA5 then goto ASSIGN0EAC else goto ASSIGN197F
        ASSIGN0EAC:  preds = [COND0EA9]
          real2 x0EAB#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0508AE);
          bool _t0EAA#1 = Inside<IMAGE2D<int>,2>(x0EAB,_t0896);
          goto JOIN0EB0
        JOIN0EB0:  preds = [ASSIGN0EAD,ASSIGN197F]
          bool _t0EAE#1 = phi(_t0EAA,_t0EAF)
          if _t0EAE then goto ASSIGN1A3C else goto JOIN0FB3
        ASSIGN1A3C:  preds = [COND0EB1]
          real2 nd0EB5#2 = Floor<2>(x0EA6);
          real2 f0EB4#2 = Sub<real2>(x0EA6,nd0EB5);
          int{2} n0EB6#8 = RealToInt<2>(nd0EB5);
          int t10ED2#4 = -1;
          int t20ED3#1 = Index<int{2},0>(n0EB6);
          int ix0ED1#4 = Add<int>(t10ED2,t20ED3);
          int t20ED6#4 = Index<int{2},1>(n0EB6);
          int iy0ED4#1 = Add<int>(t10ED2,t20ED6);
          addr(IMAGE2D<float>) a0ED7#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0ED1,iy0ED4);
          real4 v00EB8#1 = LoadVoxels<IMAGE2D<float>,4>(a0ED7);
          int iy0ECD#1 = Add<int>(_t0926,t20ED6);
          addr(IMAGE2D<float>) a0ED0#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0ED1,iy0ECD);
          real4 v10EB9#1 = LoadVoxels<IMAGE2D<float>,4>(a0ED0);
          int iy0EC6#1 = Add<int>(_t092A,t20ED6);
          addr(IMAGE2D<float>) a0EC9#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0ED1,iy0EC6);
          real4 v20EBA#1 = LoadVoxels<IMAGE2D<float>,4>(a0EC9);
          int iy0EBF#1 = Add<int>(_t0902,t20ED6);
          addr(IMAGE2D<float>) a0EC2#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0ED1,iy0EBF);
          real4 v30EBB#1 = LoadVoxels<IMAGE2D<float>,4>(a0EC2);
          real fy0EE3#5 = Index<real2,1>(f0EB4);
          real t30EE8#1 = Add<real>(fy0EE3,_t08FE);
          real t10EE6#1 = Sub<real>(fy0EE3,_t08FE);
          real t00EE5#1 = Sub<real>(fy0EE3,_t0900);
          real4 a0EE4#1 = <real4>[t30EE8,fy0EE3,t10EE6,t00EE5];
          real4 hy0ED9#1 = EvalKernel<4,bspln3,0>(a0EE4);
          real fx0EDA#5 = Index<real2,0>(f0EB4);
          real t30EDF#1 = Add<real>(fx0EDA,_t08FE);
          real t10EDD#1 = Sub<real>(fx0EDA,_t08FE);
          real t00EDC#1 = Sub<real>(fx0EDA,_t0900);
          real4 a0EDB#1 = <real4>[t30EDF,fx0EDA,t10EDD,t00EDC];
          real4 hx0ED8#4 = EvalKernel<4,bspln3,0>(a0EDB);
          real t00EED#1 = Dot<4>(v00EB8,hx0ED8);
          real t10EEE#1 = Dot<4>(v10EB9,hx0ED8);
          real t20EEF#1 = Dot<4>(v20EBA,hx0ED8);
          real t30EF0#1 = Dot<4>(v30EBB,hx0ED8);
          real4 tv0EEC#1 = <real4>[t00EED,t10EEE,t20EEF,t30EF0];
          real _t0EB2#1 = Dot<4>(hy0ED9,tv0EEC);
          real2 x0F30#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0508AE);
          real2 nd0F32#2 = Floor<2>(x0F30);
          real2 f0F31#2 = Sub<real2>(x0F30,nd0F32);
          int{2} n0F33#8 = RealToInt<2>(nd0F32);
          int t20F50#1 = Index<int{2},0>(n0F33);
          int ix0F4E#4 = Add<int>(t10ED2,t20F50);
          int t20F53#4 = Index<int{2},1>(n0F33);
          int iy0F51#1 = Add<int>(t10ED2,t20F53);
          addr(IMAGE2D<int>) a0F54#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0F4E,iy0F51);
          real4 v00F35#1 = LoadVoxels<IMAGE2D<int>,4>(a0F54);
          int iy0F4A#1 = Add<int>(_t0926,t20F53);
          addr(IMAGE2D<int>) a0F4D#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0F4E,iy0F4A);
          real4 v10F36#1 = LoadVoxels<IMAGE2D<int>,4>(a0F4D);
          int iy0F43#1 = Add<int>(_t092A,t20F53);
          addr(IMAGE2D<int>) a0F46#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0F4E,iy0F43);
          real4 v20F37#1 = LoadVoxels<IMAGE2D<int>,4>(a0F46);
          int iy0F3C#1 = Add<int>(_t0902,t20F53);
          addr(IMAGE2D<int>) a0F3F#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0F4E,iy0F3C);
          real4 v30F38#1 = LoadVoxels<IMAGE2D<int>,4>(a0F3F);
          real fy0F60#5 = Index<real2,1>(f0F31);
          real t30F65#1 = Add<real>(fy0F60,_t08FE);
          real t10F63#1 = Sub<real>(fy0F60,_t08FE);
          real t00F62#1 = Sub<real>(fy0F60,_t0900);
          real4 a0F61#1 = <real4>[t30F65,fy0F60,t10F63,t00F62];
          real4 hy0F56#1 = EvalKernel<4,bspln3,0>(a0F61);
          real fx0F57#5 = Index<real2,0>(f0F31);
          real t30F5C#1 = Add<real>(fx0F57,_t08FE);
          real t10F5A#1 = Sub<real>(fx0F57,_t08FE);
          real t00F59#1 = Sub<real>(fx0F57,_t0900);
          real4 a0F58#1 = <real4>[t30F5C,fx0F57,t10F5A,t00F59];
          real4 hx0F55#4 = EvalKernel<4,bspln3,0>(a0F58);
          real t00F6A#1 = Dot<4>(v00F35,hx0F55);
          real t10F6B#1 = Dot<4>(v10F36,hx0F55);
          real t20F6C#1 = Dot<4>(v20F37,hx0F55);
          real t30F6D#1 = Dot<4>(v30F38,hx0F55);
          real4 tv0F69#1 = <real4>[t00F6A,t10F6B,t20F6C,t30F6D];
          real _t0F2F#1 = Dot<4>(hy0F56,tv0F69);
          real _t0FAC#2 = Sub<real>(_t0EB2,_t0F2F);
          real _t0FAE#1 = Mul<real>(_t0FAC,_t0FAC);
          real score0FB0#1 = Add<real>(score0E9B,_t0FAE);
          goto JOIN0FB3
        JOIN0FB3:  preds = [ASSIGN0FB1,COND0EB1]
          real score0FB2#2 = phi(score0FB0,score0E9B)
          real _t0FB4#1 = Dot<2>(r00918,v0608B0);
          real _t0FB6#1 = Dot<2>(r1091E,v0608B0);
          real2 _t0FB8#1 = <real2>[_t0FB4,_t0FB6];
          real2 pos0FBA#2 = Add<real2>(_t0FB8,_t092E);
          real2 x0FBD#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0FBA);
          bool _t0FBC#1 = Inside<IMAGE2D<float>,2>(x0FBD,_t089A);
          if _t0FBC then goto ASSIGN0FC3 else goto ASSIGN197E
        ASSIGN0FC3:  preds = [COND0FC0]
          real2 x0FC2#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0608B0);
          bool _t0FC1#1 = Inside<IMAGE2D<int>,2>(x0FC2,_t0896);
          goto JOIN0FC7
        JOIN0FC7:  preds = [ASSIGN0FC4,ASSIGN197E]
          bool _t0FC5#1 = phi(_t0FC1,_t0FC6)
          if _t0FC5 then goto ASSIGN1A5D else goto JOIN10CA
        ASSIGN1A5D:  preds = [COND0FC8]
          real2 nd0FCC#2 = Floor<2>(x0FBD);
          real2 f0FCB#2 = Sub<real2>(x0FBD,nd0FCC);
          int{2} n0FCD#8 = RealToInt<2>(nd0FCC);
          int t10FE9#4 = -1;
          int t20FEA#1 = Index<int{2},0>(n0FCD);
          int ix0FE8#4 = Add<int>(t10FE9,t20FEA);
          int t20FED#4 = Index<int{2},1>(n0FCD);
          int iy0FEB#1 = Add<int>(t10FE9,t20FED);
          addr(IMAGE2D<float>) a0FEE#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0FE8,iy0FEB);
          real4 v00FCF#1 = LoadVoxels<IMAGE2D<float>,4>(a0FEE);
          int iy0FE4#1 = Add<int>(_t0926,t20FED);
          addr(IMAGE2D<float>) a0FE7#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0FE8,iy0FE4);
          real4 v10FD0#1 = LoadVoxels<IMAGE2D<float>,4>(a0FE7);
          int iy0FDD#1 = Add<int>(_t092A,t20FED);
          addr(IMAGE2D<float>) a0FE0#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0FE8,iy0FDD);
          real4 v20FD1#1 = LoadVoxels<IMAGE2D<float>,4>(a0FE0);
          int iy0FD6#1 = Add<int>(_t0902,t20FED);
          addr(IMAGE2D<float>) a0FD9#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0FE8,iy0FD6);
          real4 v30FD2#1 = LoadVoxels<IMAGE2D<float>,4>(a0FD9);
          real fy0FFA#5 = Index<real2,1>(f0FCB);
          real t30FFF#1 = Add<real>(fy0FFA,_t08FE);
          real t10FFD#1 = Sub<real>(fy0FFA,_t08FE);
          real t00FFC#1 = Sub<real>(fy0FFA,_t0900);
          real4 a0FFB#1 = <real4>[t30FFF,fy0FFA,t10FFD,t00FFC];
          real4 hy0FF0#1 = EvalKernel<4,bspln3,0>(a0FFB);
          real fx0FF1#5 = Index<real2,0>(f0FCB);
          real t30FF6#1 = Add<real>(fx0FF1,_t08FE);
          real t10FF4#1 = Sub<real>(fx0FF1,_t08FE);
          real t00FF3#1 = Sub<real>(fx0FF1,_t0900);
          real4 a0FF2#1 = <real4>[t30FF6,fx0FF1,t10FF4,t00FF3];
          real4 hx0FEF#4 = EvalKernel<4,bspln3,0>(a0FF2);
          real t01004#1 = Dot<4>(v00FCF,hx0FEF);
          real t11005#1 = Dot<4>(v10FD0,hx0FEF);
          real t21006#1 = Dot<4>(v20FD1,hx0FEF);
          real t31007#1 = Dot<4>(v30FD2,hx0FEF);
          real4 tv1003#1 = <real4>[t01004,t11005,t21006,t31007];
          real _t0FC9#1 = Dot<4>(hy0FF0,tv1003);
          real2 x1047#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0608B0);
          real2 nd1049#2 = Floor<2>(x1047);
          real2 f1048#2 = Sub<real2>(x1047,nd1049);
          int{2} n104A#8 = RealToInt<2>(nd1049);
          int t21067#1 = Index<int{2},0>(n104A);
          int ix1065#4 = Add<int>(t10FE9,t21067);
          int t2106A#4 = Index<int{2},1>(n104A);
          int iy1068#1 = Add<int>(t10FE9,t2106A);
          addr(IMAGE2D<int>) a106B#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1065,iy1068);
          real4 v0104C#1 = LoadVoxels<IMAGE2D<int>,4>(a106B);
          int iy1061#1 = Add<int>(_t0926,t2106A);
          addr(IMAGE2D<int>) a1064#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1065,iy1061);
          real4 v1104D#1 = LoadVoxels<IMAGE2D<int>,4>(a1064);
          int iy105A#1 = Add<int>(_t092A,t2106A);
          addr(IMAGE2D<int>) a105D#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1065,iy105A);
          real4 v2104E#1 = LoadVoxels<IMAGE2D<int>,4>(a105D);
          int iy1053#1 = Add<int>(_t0902,t2106A);
          addr(IMAGE2D<int>) a1056#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1065,iy1053);
          real4 v3104F#1 = LoadVoxels<IMAGE2D<int>,4>(a1056);
          real fy1077#5 = Index<real2,1>(f1048);
          real t3107C#1 = Add<real>(fy1077,_t08FE);
          real t1107A#1 = Sub<real>(fy1077,_t08FE);
          real t01079#1 = Sub<real>(fy1077,_t0900);
          real4 a1078#1 = <real4>[t3107C,fy1077,t1107A,t01079];
          real4 hy106D#1 = EvalKernel<4,bspln3,0>(a1078);
          real fx106E#5 = Index<real2,0>(f1048);
          real t31073#1 = Add<real>(fx106E,_t08FE);
          real t11071#1 = Sub<real>(fx106E,_t08FE);
          real t01070#1 = Sub<real>(fx106E,_t0900);
          real4 a106F#1 = <real4>[t31073,fx106E,t11071,t01070];
          real4 hx106C#4 = EvalKernel<4,bspln3,0>(a106F);
          real t01081#1 = Dot<4>(v0104C,hx106C);
          real t11082#1 = Dot<4>(v1104D,hx106C);
          real t21083#1 = Dot<4>(v2104E,hx106C);
          real t31084#1 = Dot<4>(v3104F,hx106C);
          real4 tv1080#1 = <real4>[t01081,t11082,t21083,t31084];
          real _t1046#1 = Dot<4>(hy106D,tv1080);
          real _t10C3#2 = Sub<real>(_t0FC9,_t1046);
          real _t10C5#1 = Mul<real>(_t10C3,_t10C3);
          real score10C7#1 = Add<real>(score0FB2,_t10C5);
          goto JOIN10CA
        JOIN10CA:  preds = [ASSIGN10C8,COND0FC8]
          real score10C9#2 = phi(score10C7,score0FB2)
          if _t0D8E then goto JOIN10CC else goto JOIN10CC
        JOIN10CC:  preds = [COND10CB]
          if _t0D97 then goto ASSIGN1A7E else goto JOIN11CF
        ASSIGN1A7E:  preds = [COND10CD]
          real2 nd10D1#2 = Floor<2>(x0D8F);
          real2 f10D0#2 = Sub<real2>(x0D8F,nd10D1);
          int{2} n10D2#8 = RealToInt<2>(nd10D1);
          int t110EE#4 = -1;
          int t210EF#1 = Index<int{2},0>(n10D2);
          int ix10ED#4 = Add<int>(t110EE,t210EF);
          int t210F2#4 = Index<int{2},1>(n10D2);
          int iy10F0#1 = Add<int>(t110EE,t210F2);
          addr(IMAGE2D<float>) a10F3#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix10ED,iy10F0);
          real4 v010D4#1 = LoadVoxels<IMAGE2D<float>,4>(a10F3);
          int iy10E9#1 = Add<int>(_t0926,t210F2);
          addr(IMAGE2D<float>) a10EC#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix10ED,iy10E9);
          real4 v110D5#1 = LoadVoxels<IMAGE2D<float>,4>(a10EC);
          int iy10E2#1 = Add<int>(_t092A,t210F2);
          addr(IMAGE2D<float>) a10E5#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix10ED,iy10E2);
          real4 v210D6#1 = LoadVoxels<IMAGE2D<float>,4>(a10E5);
          int iy10DB#1 = Add<int>(_t0902,t210F2);
          addr(IMAGE2D<float>) a10DE#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix10ED,iy10DB);
          real4 v310D7#1 = LoadVoxels<IMAGE2D<float>,4>(a10DE);
          real fy10FF#5 = Index<real2,1>(f10D0);
          real t31104#1 = Add<real>(fy10FF,_t08FE);
          real t11102#1 = Sub<real>(fy10FF,_t08FE);
          real t01101#1 = Sub<real>(fy10FF,_t0900);
          real4 a1100#1 = <real4>[t31104,fy10FF,t11102,t01101];
          real4 hy10F5#1 = EvalKernel<4,bspln3,0>(a1100);
          real fx10F6#5 = Index<real2,0>(f10D0);
          real t310FB#1 = Add<real>(fx10F6,_t08FE);
          real t110F9#1 = Sub<real>(fx10F6,_t08FE);
          real t010F8#1 = Sub<real>(fx10F6,_t0900);
          real4 a10F7#1 = <real4>[t310FB,fx10F6,t110F9,t010F8];
          real4 hx10F4#4 = EvalKernel<4,bspln3,0>(a10F7);
          real t01109#1 = Dot<4>(v010D4,hx10F4);
          real t1110A#1 = Dot<4>(v110D5,hx10F4);
          real t2110B#1 = Dot<4>(v210D6,hx10F4);
          real t3110C#1 = Dot<4>(v310D7,hx10F4);
          real4 tv1108#1 = <real4>[t01109,t1110A,t2110B,t3110C];
          real _t10CE#1 = Dot<4>(hy10F5,tv1108);
          real2 x114C#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0408AC);
          real2 nd114E#2 = Floor<2>(x114C);
          real2 f114D#2 = Sub<real2>(x114C,nd114E);
          int{2} n114F#8 = RealToInt<2>(nd114E);
          int t2116C#1 = Index<int{2},0>(n114F);
          int ix116A#4 = Add<int>(t110EE,t2116C);
          int t2116F#4 = Index<int{2},1>(n114F);
          int iy116D#1 = Add<int>(t110EE,t2116F);
          addr(IMAGE2D<int>) a1170#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix116A,iy116D);
          real4 v01151#1 = LoadVoxels<IMAGE2D<int>,4>(a1170);
          int iy1166#1 = Add<int>(_t0926,t2116F);
          addr(IMAGE2D<int>) a1169#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix116A,iy1166);
          real4 v11152#1 = LoadVoxels<IMAGE2D<int>,4>(a1169);
          int iy115F#1 = Add<int>(_t092A,t2116F);
          addr(IMAGE2D<int>) a1162#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix116A,iy115F);
          real4 v21153#1 = LoadVoxels<IMAGE2D<int>,4>(a1162);
          int iy1158#1 = Add<int>(_t0902,t2116F);
          addr(IMAGE2D<int>) a115B#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix116A,iy1158);
          real4 v31154#1 = LoadVoxels<IMAGE2D<int>,4>(a115B);
          real fy117C#5 = Index<real2,1>(f114D);
          real t31181#1 = Add<real>(fy117C,_t08FE);
          real t1117F#1 = Sub<real>(fy117C,_t08FE);
          real t0117E#1 = Sub<real>(fy117C,_t0900);
          real4 a117D#1 = <real4>[t31181,fy117C,t1117F,t0117E];
          real4 hy1172#1 = EvalKernel<4,bspln3,0>(a117D);
          real fx1173#5 = Index<real2,0>(f114D);
          real t31178#1 = Add<real>(fx1173,_t08FE);
          real t11176#1 = Sub<real>(fx1173,_t08FE);
          real t01175#1 = Sub<real>(fx1173,_t0900);
          real4 a1174#1 = <real4>[t31178,fx1173,t11176,t01175];
          real4 hx1171#4 = EvalKernel<4,bspln3,0>(a1174);
          real t01186#1 = Dot<4>(v01151,hx1171);
          real t11187#1 = Dot<4>(v11152,hx1171);
          real t21188#1 = Dot<4>(v21153,hx1171);
          real t31189#1 = Dot<4>(v31154,hx1171);
          real4 tv1185#1 = <real4>[t01186,t11187,t21188,t31189];
          real _t114B#1 = Dot<4>(hy1172,tv1185);
          real _t11C8#2 = Sub<real>(_t10CE,_t114B);
          real _t11CA#1 = Mul<real>(_t11C8,_t11C8);
          real score11CC#1 = Add<real>(score10C9,_t11CA);
          goto JOIN11CF
        JOIN11CF:  preds = [ASSIGN11CD,COND10CD]
          real score11CE#2 = phi(score11CC,score10C9)
          real _t11D0#1 = Dot<2>(r00918,v0808B2);
          real _t11D2#1 = Dot<2>(r1091E,v0808B2);
          real2 _t11D4#1 = <real2>[_t11D0,_t11D2];
          real2 pos11D6#2 = Add<real2>(_t11D4,_t092E);
          real2 x11D9#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos11D6);
          bool _t11D8#1 = Inside<IMAGE2D<float>,2>(x11D9,_t089A);
          if _t11D8 then goto ASSIGN11DF else goto ASSIGN197D
        ASSIGN11DF:  preds = [COND11DC]
          real2 x11DE#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0808B2);
          bool _t11DD#1 = Inside<IMAGE2D<int>,2>(x11DE,_t0896);
          goto JOIN11E3
        JOIN11E3:  preds = [ASSIGN11E0,ASSIGN197D]
          bool _t11E1#1 = phi(_t11DD,_t11E2)
          if _t11E1 then goto ASSIGN1A9F else goto JOIN12E6
        ASSIGN1A9F:  preds = [COND11E4]
          real2 nd11E8#2 = Floor<2>(x11D9);
          real2 f11E7#2 = Sub<real2>(x11D9,nd11E8);
          int{2} n11E9#8 = RealToInt<2>(nd11E8);
          int t11205#4 = -1;
          int t21206#1 = Index<int{2},0>(n11E9);
          int ix1204#4 = Add<int>(t11205,t21206);
          int t21209#4 = Index<int{2},1>(n11E9);
          int iy1207#1 = Add<int>(t11205,t21209);
          addr(IMAGE2D<float>) a120A#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1204,iy1207);
          real4 v011EB#1 = LoadVoxels<IMAGE2D<float>,4>(a120A);
          int iy1200#1 = Add<int>(_t0926,t21209);
          addr(IMAGE2D<float>) a1203#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1204,iy1200);
          real4 v111EC#1 = LoadVoxels<IMAGE2D<float>,4>(a1203);
          int iy11F9#1 = Add<int>(_t092A,t21209);
          addr(IMAGE2D<float>) a11FC#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1204,iy11F9);
          real4 v211ED#1 = LoadVoxels<IMAGE2D<float>,4>(a11FC);
          int iy11F2#1 = Add<int>(_t0902,t21209);
          addr(IMAGE2D<float>) a11F5#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1204,iy11F2);
          real4 v311EE#1 = LoadVoxels<IMAGE2D<float>,4>(a11F5);
          real fy1216#5 = Index<real2,1>(f11E7);
          real t3121B#1 = Add<real>(fy1216,_t08FE);
          real t11219#1 = Sub<real>(fy1216,_t08FE);
          real t01218#1 = Sub<real>(fy1216,_t0900);
          real4 a1217#1 = <real4>[t3121B,fy1216,t11219,t01218];
          real4 hy120C#1 = EvalKernel<4,bspln3,0>(a1217);
          real fx120D#5 = Index<real2,0>(f11E7);
          real t31212#1 = Add<real>(fx120D,_t08FE);
          real t11210#1 = Sub<real>(fx120D,_t08FE);
          real t0120F#1 = Sub<real>(fx120D,_t0900);
          real4 a120E#1 = <real4>[t31212,fx120D,t11210,t0120F];
          real4 hx120B#4 = EvalKernel<4,bspln3,0>(a120E);
          real t01220#1 = Dot<4>(v011EB,hx120B);
          real t11221#1 = Dot<4>(v111EC,hx120B);
          real t21222#1 = Dot<4>(v211ED,hx120B);
          real t31223#1 = Dot<4>(v311EE,hx120B);
          real4 tv121F#1 = <real4>[t01220,t11221,t21222,t31223];
          real _t11E5#1 = Dot<4>(hy120C,tv121F);
          real2 x1263#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0808B2);
          real2 nd1265#2 = Floor<2>(x1263);
          real2 f1264#2 = Sub<real2>(x1263,nd1265);
          int{2} n1266#8 = RealToInt<2>(nd1265);
          int t21283#1 = Index<int{2},0>(n1266);
          int ix1281#4 = Add<int>(t11205,t21283);
          int t21286#4 = Index<int{2},1>(n1266);
          int iy1284#1 = Add<int>(t11205,t21286);
          addr(IMAGE2D<int>) a1287#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1281,iy1284);
          real4 v01268#1 = LoadVoxels<IMAGE2D<int>,4>(a1287);
          int iy127D#1 = Add<int>(_t0926,t21286);
          addr(IMAGE2D<int>) a1280#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1281,iy127D);
          real4 v11269#1 = LoadVoxels<IMAGE2D<int>,4>(a1280);
          int iy1276#1 = Add<int>(_t092A,t21286);
          addr(IMAGE2D<int>) a1279#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1281,iy1276);
          real4 v2126A#1 = LoadVoxels<IMAGE2D<int>,4>(a1279);
          int iy126F#1 = Add<int>(_t0902,t21286);
          addr(IMAGE2D<int>) a1272#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1281,iy126F);
          real4 v3126B#1 = LoadVoxels<IMAGE2D<int>,4>(a1272);
          real fy1293#5 = Index<real2,1>(f1264);
          real t31298#1 = Add<real>(fy1293,_t08FE);
          real t11296#1 = Sub<real>(fy1293,_t08FE);
          real t01295#1 = Sub<real>(fy1293,_t0900);
          real4 a1294#1 = <real4>[t31298,fy1293,t11296,t01295];
          real4 hy1289#1 = EvalKernel<4,bspln3,0>(a1294);
          real fx128A#5 = Index<real2,0>(f1264);
          real t3128F#1 = Add<real>(fx128A,_t08FE);
          real t1128D#1 = Sub<real>(fx128A,_t08FE);
          real t0128C#1 = Sub<real>(fx128A,_t0900);
          real4 a128B#1 = <real4>[t3128F,fx128A,t1128D,t0128C];
          real4 hx1288#4 = EvalKernel<4,bspln3,0>(a128B);
          real t0129D#1 = Dot<4>(v01268,hx1288);
          real t1129E#1 = Dot<4>(v11269,hx1288);
          real t2129F#1 = Dot<4>(v2126A,hx1288);
          real t312A0#1 = Dot<4>(v3126B,hx1288);
          real4 tv129C#1 = <real4>[t0129D,t1129E,t2129F,t312A0];
          real _t1262#1 = Dot<4>(hy1289,tv129C);
          real _t12DF#2 = Sub<real>(_t11E5,_t1262);
          real _t12E1#1 = Mul<real>(_t12DF,_t12DF);
          real score12E3#1 = Add<real>(score11CE,_t12E1);
          goto JOIN12E6
        JOIN12E6:  preds = [ASSIGN12E4,COND11E4]
          real score12E5#2 = phi(score12E3,score11CE)
          real _t12E7#1 = Dot<2>(r00918,v0908B4);
          real _t12E9#1 = Dot<2>(r1091E,v0908B4);
          real2 _t12EB#1 = <real2>[_t12E7,_t12E9];
          real2 pos12ED#2 = Add<real2>(_t12EB,_t092E);
          real2 x12F0#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos12ED);
          bool _t12EF#1 = Inside<IMAGE2D<float>,2>(x12F0,_t089A);
          if _t12EF then goto ASSIGN12F6 else goto ASSIGN197C
        ASSIGN12F6:  preds = [COND12F3]
          real2 x12F5#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0908B4);
          bool _t12F4#1 = Inside<IMAGE2D<int>,2>(x12F5,_t0896);
          goto JOIN12FA
        JOIN12FA:  preds = [ASSIGN12F7,ASSIGN197C]
          bool _t12F8#1 = phi(_t12F4,_t12F9)
          if _t12F8 then goto ASSIGN1AC0 else goto JOIN13FD
        ASSIGN1AC0:  preds = [COND12FB]
          real2 nd12FF#2 = Floor<2>(x12F0);
          real2 f12FE#2 = Sub<real2>(x12F0,nd12FF);
          int{2} n1300#8 = RealToInt<2>(nd12FF);
          int t1131C#4 = -1;
          int t2131D#1 = Index<int{2},0>(n1300);
          int ix131B#4 = Add<int>(t1131C,t2131D);
          int t21320#4 = Index<int{2},1>(n1300);
          int iy131E#1 = Add<int>(t1131C,t21320);
          addr(IMAGE2D<float>) a1321#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix131B,iy131E);
          real4 v01302#1 = LoadVoxels<IMAGE2D<float>,4>(a1321);
          int iy1317#1 = Add<int>(_t0926,t21320);
          addr(IMAGE2D<float>) a131A#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix131B,iy1317);
          real4 v11303#1 = LoadVoxels<IMAGE2D<float>,4>(a131A);
          int iy1310#1 = Add<int>(_t092A,t21320);
          addr(IMAGE2D<float>) a1313#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix131B,iy1310);
          real4 v21304#1 = LoadVoxels<IMAGE2D<float>,4>(a1313);
          int iy1309#1 = Add<int>(_t0902,t21320);
          addr(IMAGE2D<float>) a130C#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix131B,iy1309);
          real4 v31305#1 = LoadVoxels<IMAGE2D<float>,4>(a130C);
          real fy132D#5 = Index<real2,1>(f12FE);
          real t31332#1 = Add<real>(fy132D,_t08FE);
          real t11330#1 = Sub<real>(fy132D,_t08FE);
          real t0132F#1 = Sub<real>(fy132D,_t0900);
          real4 a132E#1 = <real4>[t31332,fy132D,t11330,t0132F];
          real4 hy1323#1 = EvalKernel<4,bspln3,0>(a132E);
          real fx1324#5 = Index<real2,0>(f12FE);
          real t31329#1 = Add<real>(fx1324,_t08FE);
          real t11327#1 = Sub<real>(fx1324,_t08FE);
          real t01326#1 = Sub<real>(fx1324,_t0900);
          real4 a1325#1 = <real4>[t31329,fx1324,t11327,t01326];
          real4 hx1322#4 = EvalKernel<4,bspln3,0>(a1325);
          real t01337#1 = Dot<4>(v01302,hx1322);
          real t11338#1 = Dot<4>(v11303,hx1322);
          real t21339#1 = Dot<4>(v21304,hx1322);
          real t3133A#1 = Dot<4>(v31305,hx1322);
          real4 tv1336#1 = <real4>[t01337,t11338,t21339,t3133A];
          real _t12FC#1 = Dot<4>(hy1323,tv1336);
          real2 x137A#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0908B4);
          real2 nd137C#2 = Floor<2>(x137A);
          real2 f137B#2 = Sub<real2>(x137A,nd137C);
          int{2} n137D#8 = RealToInt<2>(nd137C);
          int t2139A#1 = Index<int{2},0>(n137D);
          int ix1398#4 = Add<int>(t1131C,t2139A);
          int t2139D#4 = Index<int{2},1>(n137D);
          int iy139B#1 = Add<int>(t1131C,t2139D);
          addr(IMAGE2D<int>) a139E#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1398,iy139B);
          real4 v0137F#1 = LoadVoxels<IMAGE2D<int>,4>(a139E);
          int iy1394#1 = Add<int>(_t0926,t2139D);
          addr(IMAGE2D<int>) a1397#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1398,iy1394);
          real4 v11380#1 = LoadVoxels<IMAGE2D<int>,4>(a1397);
          int iy138D#1 = Add<int>(_t092A,t2139D);
          addr(IMAGE2D<int>) a1390#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1398,iy138D);
          real4 v21381#1 = LoadVoxels<IMAGE2D<int>,4>(a1390);
          int iy1386#1 = Add<int>(_t0902,t2139D);
          addr(IMAGE2D<int>) a1389#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1398,iy1386);
          real4 v31382#1 = LoadVoxels<IMAGE2D<int>,4>(a1389);
          real fy13AA#5 = Index<real2,1>(f137B);
          real t313AF#1 = Add<real>(fy13AA,_t08FE);
          real t113AD#1 = Sub<real>(fy13AA,_t08FE);
          real t013AC#1 = Sub<real>(fy13AA,_t0900);
          real4 a13AB#1 = <real4>[t313AF,fy13AA,t113AD,t013AC];
          real4 hy13A0#1 = EvalKernel<4,bspln3,0>(a13AB);
          real fx13A1#5 = Index<real2,0>(f137B);
          real t313A6#1 = Add<real>(fx13A1,_t08FE);
          real t113A4#1 = Sub<real>(fx13A1,_t08FE);
          real t013A3#1 = Sub<real>(fx13A1,_t0900);
          real4 a13A2#1 = <real4>[t313A6,fx13A1,t113A4,t013A3];
          real4 hx139F#4 = EvalKernel<4,bspln3,0>(a13A2);
          real t013B4#1 = Dot<4>(v0137F,hx139F);
          real t113B5#1 = Dot<4>(v11380,hx139F);
          real t213B6#1 = Dot<4>(v21381,hx139F);
          real t313B7#1 = Dot<4>(v31382,hx139F);
          real4 tv13B3#1 = <real4>[t013B4,t113B5,t213B6,t313B7];
          real _t1379#1 = Dot<4>(hy13A0,tv13B3);
          real _t13F6#2 = Sub<real>(_t12FC,_t1379);
          real _t13F8#1 = Mul<real>(_t13F6,_t13F6);
          real score13FA#1 = Add<real>(score12E5,_t13F8);
          goto JOIN13FD
        JOIN13FD:  preds = [ASSIGN13FB,COND12FB]
          real score13FC#2 = phi(score13FA,score12E5)
          real _t13FE#1 = Dot<2>(r00918,v1008B6);
          real _t1400#1 = Dot<2>(r1091E,v1008B6);
          real2 _t1402#1 = <real2>[_t13FE,_t1400];
          real2 pos1404#2 = Add<real2>(_t1402,_t092E);
          real2 x1407#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1404);
          bool _t1406#1 = Inside<IMAGE2D<float>,2>(x1407,_t089A);
          if _t1406 then goto ASSIGN140D else goto ASSIGN197B
        ASSIGN140D:  preds = [COND140A]
          real2 x140C#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1008B6);
          bool _t140B#1 = Inside<IMAGE2D<int>,2>(x140C,_t0896);
          goto JOIN1411
        JOIN1411:  preds = [ASSIGN140E,ASSIGN197B]
          bool _t140F#1 = phi(_t140B,_t1410)
          if _t140F then goto ASSIGN1AE1 else goto JOIN1514
        ASSIGN1AE1:  preds = [COND1412]
          real2 nd1416#2 = Floor<2>(x1407);
          real2 f1415#2 = Sub<real2>(x1407,nd1416);
          int{2} n1417#8 = RealToInt<2>(nd1416);
          int t11433#4 = -1;
          int t21434#1 = Index<int{2},0>(n1417);
          int ix1432#4 = Add<int>(t11433,t21434);
          int t21437#4 = Index<int{2},1>(n1417);
          int iy1435#1 = Add<int>(t11433,t21437);
          addr(IMAGE2D<float>) a1438#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1432,iy1435);
          real4 v01419#1 = LoadVoxels<IMAGE2D<float>,4>(a1438);
          int iy142E#1 = Add<int>(_t0926,t21437);
          addr(IMAGE2D<float>) a1431#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1432,iy142E);
          real4 v1141A#1 = LoadVoxels<IMAGE2D<float>,4>(a1431);
          int iy1427#1 = Add<int>(_t092A,t21437);
          addr(IMAGE2D<float>) a142A#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1432,iy1427);
          real4 v2141B#1 = LoadVoxels<IMAGE2D<float>,4>(a142A);
          int iy1420#1 = Add<int>(_t0902,t21437);
          addr(IMAGE2D<float>) a1423#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1432,iy1420);
          real4 v3141C#1 = LoadVoxels<IMAGE2D<float>,4>(a1423);
          real fy1444#5 = Index<real2,1>(f1415);
          real t31449#1 = Add<real>(fy1444,_t08FE);
          real t11447#1 = Sub<real>(fy1444,_t08FE);
          real t01446#1 = Sub<real>(fy1444,_t0900);
          real4 a1445#1 = <real4>[t31449,fy1444,t11447,t01446];
          real4 hy143A#1 = EvalKernel<4,bspln3,0>(a1445);
          real fx143B#5 = Index<real2,0>(f1415);
          real t31440#1 = Add<real>(fx143B,_t08FE);
          real t1143E#1 = Sub<real>(fx143B,_t08FE);
          real t0143D#1 = Sub<real>(fx143B,_t0900);
          real4 a143C#1 = <real4>[t31440,fx143B,t1143E,t0143D];
          real4 hx1439#4 = EvalKernel<4,bspln3,0>(a143C);
          real t0144E#1 = Dot<4>(v01419,hx1439);
          real t1144F#1 = Dot<4>(v1141A,hx1439);
          real t21450#1 = Dot<4>(v2141B,hx1439);
          real t31451#1 = Dot<4>(v3141C,hx1439);
          real4 tv144D#1 = <real4>[t0144E,t1144F,t21450,t31451];
          real _t1413#1 = Dot<4>(hy143A,tv144D);
          real2 x1491#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1008B6);
          real2 nd1493#2 = Floor<2>(x1491);
          real2 f1492#2 = Sub<real2>(x1491,nd1493);
          int{2} n1494#8 = RealToInt<2>(nd1493);
          int t214B1#1 = Index<int{2},0>(n1494);
          int ix14AF#4 = Add<int>(t11433,t214B1);
          int t214B4#4 = Index<int{2},1>(n1494);
          int iy14B2#1 = Add<int>(t11433,t214B4);
          addr(IMAGE2D<int>) a14B5#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix14AF,iy14B2);
          real4 v01496#1 = LoadVoxels<IMAGE2D<int>,4>(a14B5);
          int iy14AB#1 = Add<int>(_t0926,t214B4);
          addr(IMAGE2D<int>) a14AE#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix14AF,iy14AB);
          real4 v11497#1 = LoadVoxels<IMAGE2D<int>,4>(a14AE);
          int iy14A4#1 = Add<int>(_t092A,t214B4);
          addr(IMAGE2D<int>) a14A7#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix14AF,iy14A4);
          real4 v21498#1 = LoadVoxels<IMAGE2D<int>,4>(a14A7);
          int iy149D#1 = Add<int>(_t0902,t214B4);
          addr(IMAGE2D<int>) a14A0#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix14AF,iy149D);
          real4 v31499#1 = LoadVoxels<IMAGE2D<int>,4>(a14A0);
          real fy14C1#5 = Index<real2,1>(f1492);
          real t314C6#1 = Add<real>(fy14C1,_t08FE);
          real t114C4#1 = Sub<real>(fy14C1,_t08FE);
          real t014C3#1 = Sub<real>(fy14C1,_t0900);
          real4 a14C2#1 = <real4>[t314C6,fy14C1,t114C4,t014C3];
          real4 hy14B7#1 = EvalKernel<4,bspln3,0>(a14C2);
          real fx14B8#5 = Index<real2,0>(f1492);
          real t314BD#1 = Add<real>(fx14B8,_t08FE);
          real t114BB#1 = Sub<real>(fx14B8,_t08FE);
          real t014BA#1 = Sub<real>(fx14B8,_t0900);
          real4 a14B9#1 = <real4>[t314BD,fx14B8,t114BB,t014BA];
          real4 hx14B6#4 = EvalKernel<4,bspln3,0>(a14B9);
          real t014CB#1 = Dot<4>(v01496,hx14B6);
          real t114CC#1 = Dot<4>(v11497,hx14B6);
          real t214CD#1 = Dot<4>(v21498,hx14B6);
          real t314CE#1 = Dot<4>(v31499,hx14B6);
          real4 tv14CA#1 = <real4>[t014CB,t114CC,t214CD,t314CE];
          real _t1490#1 = Dot<4>(hy14B7,tv14CA);
          real _t150D#2 = Sub<real>(_t1413,_t1490);
          real _t150F#1 = Mul<real>(_t150D,_t150D);
          real score1511#1 = Add<real>(score13FC,_t150F);
          goto JOIN1514
        JOIN1514:  preds = [ASSIGN1512,COND1412]
          real score1513#2 = phi(score1511,score13FC)
          real _t1515#1 = Dot<2>(r00918,v1108B8);
          real _t1517#1 = Dot<2>(r1091E,v1108B8);
          real2 _t1519#1 = <real2>[_t1515,_t1517];
          real2 pos151B#2 = Add<real2>(_t1519,_t092E);
          real2 x151E#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos151B);
          bool _t151D#1 = Inside<IMAGE2D<float>,2>(x151E,_t089A);
          if _t151D then goto ASSIGN1524 else goto ASSIGN197A
        ASSIGN1524:  preds = [COND1521]
          real2 x1523#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1108B8);
          bool _t1522#1 = Inside<IMAGE2D<int>,2>(x1523,_t0896);
          goto JOIN1528
        JOIN1528:  preds = [ASSIGN1525,ASSIGN197A]
          bool _t1526#1 = phi(_t1522,_t1527)
          if _t1526 then goto ASSIGN1B02 else goto JOIN162B
        ASSIGN1B02:  preds = [COND1529]
          real2 nd152D#2 = Floor<2>(x151E);
          real2 f152C#2 = Sub<real2>(x151E,nd152D);
          int{2} n152E#8 = RealToInt<2>(nd152D);
          int t1154A#4 = -1;
          int t2154B#1 = Index<int{2},0>(n152E);
          int ix1549#4 = Add<int>(t1154A,t2154B);
          int t2154E#4 = Index<int{2},1>(n152E);
          int iy154C#1 = Add<int>(t1154A,t2154E);
          addr(IMAGE2D<float>) a154F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1549,iy154C);
          real4 v01530#1 = LoadVoxels<IMAGE2D<float>,4>(a154F);
          int iy1545#1 = Add<int>(_t0926,t2154E);
          addr(IMAGE2D<float>) a1548#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1549,iy1545);
          real4 v11531#1 = LoadVoxels<IMAGE2D<float>,4>(a1548);
          int iy153E#1 = Add<int>(_t092A,t2154E);
          addr(IMAGE2D<float>) a1541#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1549,iy153E);
          real4 v21532#1 = LoadVoxels<IMAGE2D<float>,4>(a1541);
          int iy1537#1 = Add<int>(_t0902,t2154E);
          addr(IMAGE2D<float>) a153A#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1549,iy1537);
          real4 v31533#1 = LoadVoxels<IMAGE2D<float>,4>(a153A);
          real fy155B#5 = Index<real2,1>(f152C);
          real t31560#1 = Add<real>(fy155B,_t08FE);
          real t1155E#1 = Sub<real>(fy155B,_t08FE);
          real t0155D#1 = Sub<real>(fy155B,_t0900);
          real4 a155C#1 = <real4>[t31560,fy155B,t1155E,t0155D];
          real4 hy1551#1 = EvalKernel<4,bspln3,0>(a155C);
          real fx1552#5 = Index<real2,0>(f152C);
          real t31557#1 = Add<real>(fx1552,_t08FE);
          real t11555#1 = Sub<real>(fx1552,_t08FE);
          real t01554#1 = Sub<real>(fx1552,_t0900);
          real4 a1553#1 = <real4>[t31557,fx1552,t11555,t01554];
          real4 hx1550#4 = EvalKernel<4,bspln3,0>(a1553);
          real t01565#1 = Dot<4>(v01530,hx1550);
          real t11566#1 = Dot<4>(v11531,hx1550);
          real t21567#1 = Dot<4>(v21532,hx1550);
          real t31568#1 = Dot<4>(v31533,hx1550);
          real4 tv1564#1 = <real4>[t01565,t11566,t21567,t31568];
          real _t152A#1 = Dot<4>(hy1551,tv1564);
          real2 x15A8#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1108B8);
          real2 nd15AA#2 = Floor<2>(x15A8);
          real2 f15A9#2 = Sub<real2>(x15A8,nd15AA);
          int{2} n15AB#8 = RealToInt<2>(nd15AA);
          int t215C8#1 = Index<int{2},0>(n15AB);
          int ix15C6#4 = Add<int>(t1154A,t215C8);
          int t215CB#4 = Index<int{2},1>(n15AB);
          int iy15C9#1 = Add<int>(t1154A,t215CB);
          addr(IMAGE2D<int>) a15CC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix15C6,iy15C9);
          real4 v015AD#1 = LoadVoxels<IMAGE2D<int>,4>(a15CC);
          int iy15C2#1 = Add<int>(_t0926,t215CB);
          addr(IMAGE2D<int>) a15C5#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix15C6,iy15C2);
          real4 v115AE#1 = LoadVoxels<IMAGE2D<int>,4>(a15C5);
          int iy15BB#1 = Add<int>(_t092A,t215CB);
          addr(IMAGE2D<int>) a15BE#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix15C6,iy15BB);
          real4 v215AF#1 = LoadVoxels<IMAGE2D<int>,4>(a15BE);
          int iy15B4#1 = Add<int>(_t0902,t215CB);
          addr(IMAGE2D<int>) a15B7#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix15C6,iy15B4);
          real4 v315B0#1 = LoadVoxels<IMAGE2D<int>,4>(a15B7);
          real fy15D8#5 = Index<real2,1>(f15A9);
          real t315DD#1 = Add<real>(fy15D8,_t08FE);
          real t115DB#1 = Sub<real>(fy15D8,_t08FE);
          real t015DA#1 = Sub<real>(fy15D8,_t0900);
          real4 a15D9#1 = <real4>[t315DD,fy15D8,t115DB,t015DA];
          real4 hy15CE#1 = EvalKernel<4,bspln3,0>(a15D9);
          real fx15CF#5 = Index<real2,0>(f15A9);
          real t315D4#1 = Add<real>(fx15CF,_t08FE);
          real t115D2#1 = Sub<real>(fx15CF,_t08FE);
          real t015D1#1 = Sub<real>(fx15CF,_t0900);
          real4 a15D0#1 = <real4>[t315D4,fx15CF,t115D2,t015D1];
          real4 hx15CD#4 = EvalKernel<4,bspln3,0>(a15D0);
          real t015E2#1 = Dot<4>(v015AD,hx15CD);
          real t115E3#1 = Dot<4>(v115AE,hx15CD);
          real t215E4#1 = Dot<4>(v215AF,hx15CD);
          real t315E5#1 = Dot<4>(v315B0,hx15CD);
          real4 tv15E1#1 = <real4>[t015E2,t115E3,t215E4,t315E5];
          real _t15A7#1 = Dot<4>(hy15CE,tv15E1);
          real _t1624#2 = Sub<real>(_t152A,_t15A7);
          real _t1626#1 = Mul<real>(_t1624,_t1624);
          real score1628#1 = Add<real>(score1513,_t1626);
          goto JOIN162B
        JOIN162B:  preds = [ASSIGN1629,COND1529]
          real score162A#2 = phi(score1628,score1513)
          real _t162C#1 = Dot<2>(r00918,v1208BA);
          real _t162E#1 = Dot<2>(r1091E,v1208BA);
          real2 _t1630#1 = <real2>[_t162C,_t162E];
          real2 pos1632#2 = Add<real2>(_t1630,_t092E);
          real2 x1635#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1632);
          bool _t1634#1 = Inside<IMAGE2D<float>,2>(x1635,_t089A);
          if _t1634 then goto ASSIGN163B else goto ASSIGN1979
        ASSIGN163B:  preds = [COND1638]
          real2 x163A#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1208BA);
          bool _t1639#1 = Inside<IMAGE2D<int>,2>(x163A,_t0896);
          goto JOIN163F
        JOIN163F:  preds = [ASSIGN163C,ASSIGN1979]
          bool _t163D#1 = phi(_t1639,_t163E)
          if _t163D then goto ASSIGN1B23 else goto JOIN1742
        ASSIGN1B23:  preds = [COND1640]
          real2 nd1644#2 = Floor<2>(x1635);
          real2 f1643#2 = Sub<real2>(x1635,nd1644);
          int{2} n1645#8 = RealToInt<2>(nd1644);
          int t11661#4 = -1;
          int t21662#1 = Index<int{2},0>(n1645);
          int ix1660#4 = Add<int>(t11661,t21662);
          int t21665#4 = Index<int{2},1>(n1645);
          int iy1663#1 = Add<int>(t11661,t21665);
          addr(IMAGE2D<float>) a1666#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1660,iy1663);
          real4 v01647#1 = LoadVoxels<IMAGE2D<float>,4>(a1666);
          int iy165C#1 = Add<int>(_t0926,t21665);
          addr(IMAGE2D<float>) a165F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1660,iy165C);
          real4 v11648#1 = LoadVoxels<IMAGE2D<float>,4>(a165F);
          int iy1655#1 = Add<int>(_t092A,t21665);
          addr(IMAGE2D<float>) a1658#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1660,iy1655);
          real4 v21649#1 = LoadVoxels<IMAGE2D<float>,4>(a1658);
          int iy164E#1 = Add<int>(_t0902,t21665);
          addr(IMAGE2D<float>) a1651#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1660,iy164E);
          real4 v3164A#1 = LoadVoxels<IMAGE2D<float>,4>(a1651);
          real fy1672#5 = Index<real2,1>(f1643);
          real t31677#1 = Add<real>(fy1672,_t08FE);
          real t11675#1 = Sub<real>(fy1672,_t08FE);
          real t01674#1 = Sub<real>(fy1672,_t0900);
          real4 a1673#1 = <real4>[t31677,fy1672,t11675,t01674];
          real4 hy1668#1 = EvalKernel<4,bspln3,0>(a1673);
          real fx1669#5 = Index<real2,0>(f1643);
          real t3166E#1 = Add<real>(fx1669,_t08FE);
          real t1166C#1 = Sub<real>(fx1669,_t08FE);
          real t0166B#1 = Sub<real>(fx1669,_t0900);
          real4 a166A#1 = <real4>[t3166E,fx1669,t1166C,t0166B];
          real4 hx1667#4 = EvalKernel<4,bspln3,0>(a166A);
          real t0167C#1 = Dot<4>(v01647,hx1667);
          real t1167D#1 = Dot<4>(v11648,hx1667);
          real t2167E#1 = Dot<4>(v21649,hx1667);
          real t3167F#1 = Dot<4>(v3164A,hx1667);
          real4 tv167B#1 = <real4>[t0167C,t1167D,t2167E,t3167F];
          real _t1641#1 = Dot<4>(hy1668,tv167B);
          real2 x16BF#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1208BA);
          real2 nd16C1#2 = Floor<2>(x16BF);
          real2 f16C0#2 = Sub<real2>(x16BF,nd16C1);
          int{2} n16C2#8 = RealToInt<2>(nd16C1);
          int t216DF#1 = Index<int{2},0>(n16C2);
          int ix16DD#4 = Add<int>(t11661,t216DF);
          int t216E2#4 = Index<int{2},1>(n16C2);
          int iy16E0#1 = Add<int>(t11661,t216E2);
          addr(IMAGE2D<int>) a16E3#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix16DD,iy16E0);
          real4 v016C4#1 = LoadVoxels<IMAGE2D<int>,4>(a16E3);
          int iy16D9#1 = Add<int>(_t0926,t216E2);
          addr(IMAGE2D<int>) a16DC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix16DD,iy16D9);
          real4 v116C5#1 = LoadVoxels<IMAGE2D<int>,4>(a16DC);
          int iy16D2#1 = Add<int>(_t092A,t216E2);
          addr(IMAGE2D<int>) a16D5#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix16DD,iy16D2);
          real4 v216C6#1 = LoadVoxels<IMAGE2D<int>,4>(a16D5);
          int iy16CB#1 = Add<int>(_t0902,t216E2);
          addr(IMAGE2D<int>) a16CE#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix16DD,iy16CB);
          real4 v316C7#1 = LoadVoxels<IMAGE2D<int>,4>(a16CE);
          real fy16EF#5 = Index<real2,1>(f16C0);
          real t316F4#1 = Add<real>(fy16EF,_t08FE);
          real t116F2#1 = Sub<real>(fy16EF,_t08FE);
          real t016F1#1 = Sub<real>(fy16EF,_t0900);
          real4 a16F0#1 = <real4>[t316F4,fy16EF,t116F2,t016F1];
          real4 hy16E5#1 = EvalKernel<4,bspln3,0>(a16F0);
          real fx16E6#5 = Index<real2,0>(f16C0);
          real t316EB#1 = Add<real>(fx16E6,_t08FE);
          real t116E9#1 = Sub<real>(fx16E6,_t08FE);
          real t016E8#1 = Sub<real>(fx16E6,_t0900);
          real4 a16E7#1 = <real4>[t316EB,fx16E6,t116E9,t016E8];
          real4 hx16E4#4 = EvalKernel<4,bspln3,0>(a16E7);
          real t016F9#1 = Dot<4>(v016C4,hx16E4);
          real t116FA#1 = Dot<4>(v116C5,hx16E4);
          real t216FB#1 = Dot<4>(v216C6,hx16E4);
          real t316FC#1 = Dot<4>(v316C7,hx16E4);
          real4 tv16F8#1 = <real4>[t016F9,t116FA,t216FB,t316FC];
          real _t16BE#1 = Dot<4>(hy16E5,tv16F8);
          real _t173B#2 = Sub<real>(_t1641,_t16BE);
          real _t173D#1 = Mul<real>(_t173B,_t173B);
          real score173F#1 = Add<real>(score162A,_t173D);
          goto JOIN1742
        JOIN1742:  preds = [ASSIGN1740,COND1640]
          real score1741#2 = phi(score173F,score162A)
          real _t1743#1 = Dot<2>(r00918,v1308BC);
          real _t1745#1 = Dot<2>(r1091E,v1308BC);
          real2 _t1747#1 = <real2>[_t1743,_t1745];
          real2 pos1749#2 = Add<real2>(_t1747,_t092E);
          real2 x174C#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1749);
          bool _t174B#1 = Inside<IMAGE2D<float>,2>(x174C,_t089A);
          if _t174B then goto ASSIGN1752 else goto ASSIGN1978
        ASSIGN1752:  preds = [COND174F]
          real2 x1751#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1308BC);
          bool _t1750#1 = Inside<IMAGE2D<int>,2>(x1751,_t0896);
          goto JOIN1756
        JOIN1756:  preds = [ASSIGN1753,ASSIGN1978]
          bool _t1754#1 = phi(_t1750,_t1755)
          if _t1754 then goto ASSIGN1B44 else goto JOIN1859
        ASSIGN1B44:  preds = [COND1757]
          real2 nd175B#2 = Floor<2>(x174C);
          real2 f175A#2 = Sub<real2>(x174C,nd175B);
          int{2} n175C#8 = RealToInt<2>(nd175B);
          int t11778#4 = -1;
          int t21779#1 = Index<int{2},0>(n175C);
          int ix1777#4 = Add<int>(t11778,t21779);
          int t2177C#4 = Index<int{2},1>(n175C);
          int iy177A#1 = Add<int>(t11778,t2177C);
          addr(IMAGE2D<float>) a177D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1777,iy177A);
          real4 v0175E#1 = LoadVoxels<IMAGE2D<float>,4>(a177D);
          int iy1773#1 = Add<int>(_t0926,t2177C);
          addr(IMAGE2D<float>) a1776#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1777,iy1773);
          real4 v1175F#1 = LoadVoxels<IMAGE2D<float>,4>(a1776);
          int iy176C#1 = Add<int>(_t092A,t2177C);
          addr(IMAGE2D<float>) a176F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1777,iy176C);
          real4 v21760#1 = LoadVoxels<IMAGE2D<float>,4>(a176F);
          int iy1765#1 = Add<int>(_t0902,t2177C);
          addr(IMAGE2D<float>) a1768#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1777,iy1765);
          real4 v31761#1 = LoadVoxels<IMAGE2D<float>,4>(a1768);
          real fy1789#5 = Index<real2,1>(f175A);
          real t3178E#1 = Add<real>(fy1789,_t08FE);
          real t1178C#1 = Sub<real>(fy1789,_t08FE);
          real t0178B#1 = Sub<real>(fy1789,_t0900);
          real4 a178A#1 = <real4>[t3178E,fy1789,t1178C,t0178B];
          real4 hy177F#1 = EvalKernel<4,bspln3,0>(a178A);
          real fx1780#5 = Index<real2,0>(f175A);
          real t31785#1 = Add<real>(fx1780,_t08FE);
          real t11783#1 = Sub<real>(fx1780,_t08FE);
          real t01782#1 = Sub<real>(fx1780,_t0900);
          real4 a1781#1 = <real4>[t31785,fx1780,t11783,t01782];
          real4 hx177E#4 = EvalKernel<4,bspln3,0>(a1781);
          real t01793#1 = Dot<4>(v0175E,hx177E);
          real t11794#1 = Dot<4>(v1175F,hx177E);
          real t21795#1 = Dot<4>(v21760,hx177E);
          real t31796#1 = Dot<4>(v31761,hx177E);
          real4 tv1792#1 = <real4>[t01793,t11794,t21795,t31796];
          real _t1758#1 = Dot<4>(hy177F,tv1792);
          real2 x17D6#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1308BC);
          real2 nd17D8#2 = Floor<2>(x17D6);
          real2 f17D7#2 = Sub<real2>(x17D6,nd17D8);
          int{2} n17D9#8 = RealToInt<2>(nd17D8);
          int t217F6#1 = Index<int{2},0>(n17D9);
          int ix17F4#4 = Add<int>(t11778,t217F6);
          int t217F9#4 = Index<int{2},1>(n17D9);
          int iy17F7#1 = Add<int>(t11778,t217F9);
          addr(IMAGE2D<int>) a17FA#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix17F4,iy17F7);
          real4 v017DB#1 = LoadVoxels<IMAGE2D<int>,4>(a17FA);
          int iy17F0#1 = Add<int>(_t0926,t217F9);
          addr(IMAGE2D<int>) a17F3#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix17F4,iy17F0);
          real4 v117DC#1 = LoadVoxels<IMAGE2D<int>,4>(a17F3);
          int iy17E9#1 = Add<int>(_t092A,t217F9);
          addr(IMAGE2D<int>) a17EC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix17F4,iy17E9);
          real4 v217DD#1 = LoadVoxels<IMAGE2D<int>,4>(a17EC);
          int iy17E2#1 = Add<int>(_t0902,t217F9);
          addr(IMAGE2D<int>) a17E5#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix17F4,iy17E2);
          real4 v317DE#1 = LoadVoxels<IMAGE2D<int>,4>(a17E5);
          real fy1806#5 = Index<real2,1>(f17D7);
          real t3180B#1 = Add<real>(fy1806,_t08FE);
          real t11809#1 = Sub<real>(fy1806,_t08FE);
          real t01808#1 = Sub<real>(fy1806,_t0900);
          real4 a1807#1 = <real4>[t3180B,fy1806,t11809,t01808];
          real4 hy17FC#1 = EvalKernel<4,bspln3,0>(a1807);
          real fx17FD#5 = Index<real2,0>(f17D7);
          real t31802#1 = Add<real>(fx17FD,_t08FE);
          real t11800#1 = Sub<real>(fx17FD,_t08FE);
          real t017FF#1 = Sub<real>(fx17FD,_t0900);
          real4 a17FE#1 = <real4>[t31802,fx17FD,t11800,t017FF];
          real4 hx17FB#4 = EvalKernel<4,bspln3,0>(a17FE);
          real t01810#1 = Dot<4>(v017DB,hx17FB);
          real t11811#1 = Dot<4>(v117DC,hx17FB);
          real t21812#1 = Dot<4>(v217DD,hx17FB);
          real t31813#1 = Dot<4>(v317DE,hx17FB);
          real4 tv180F#1 = <real4>[t01810,t11811,t21812,t31813];
          real _t17D5#1 = Dot<4>(hy17FC,tv180F);
          real _t1852#2 = Sub<real>(_t1758,_t17D5);
          real _t1854#1 = Mul<real>(_t1852,_t1852);
          real score1856#1 = Add<real>(score1741,_t1854);
          goto JOIN1859
        JOIN1859:  preds = [ASSIGN1857,COND1757]
          real score1858#2 = phi(score1856,score1741)
          real _t185A#1 = Dot<2>(r00918,v1408BE);
          real _t185C#1 = Dot<2>(r1091E,v1408BE);
          real2 _t185E#1 = <real2>[_t185A,_t185C];
          real2 pos1860#3 = Add<real2>(_t185E,_t092E);
          real2 x1863#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1860);
          bool _t1862#1 = Inside<IMAGE2D<float>,2>(x1863,_t089A);
          if _t1862 then goto ASSIGN1869 else goto ASSIGN1977
        ASSIGN1869:  preds = [COND1866]
          real2 x1868#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1408BE);
          bool _t1867#1 = Inside<IMAGE2D<int>,2>(x1868,_t0896);
          goto JOIN186D
        JOIN186D:  preds = [ASSIGN186A,ASSIGN1977]
          bool _t186B#1 = phi(_t1867,_t186C)
          if _t186B then goto ASSIGN1B65 else goto JOIN1970
        ASSIGN1B65:  preds = [COND186E]
          real2 nd1872#2 = Floor<2>(x1863);
          real2 f1871#2 = Sub<real2>(x1863,nd1872);
          int{2} n1873#8 = RealToInt<2>(nd1872);
          int t1188F#4 = -1;
          int t21890#1 = Index<int{2},0>(n1873);
          int ix188E#4 = Add<int>(t1188F,t21890);
          int t21893#4 = Index<int{2},1>(n1873);
          int iy1891#1 = Add<int>(t1188F,t21893);
          addr(IMAGE2D<float>) a1894#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix188E,iy1891);
          real4 v01875#1 = LoadVoxels<IMAGE2D<float>,4>(a1894);
          int iy188A#1 = Add<int>(_t0926,t21893);
          addr(IMAGE2D<float>) a188D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix188E,iy188A);
          real4 v11876#1 = LoadVoxels<IMAGE2D<float>,4>(a188D);
          int iy1883#1 = Add<int>(_t092A,t21893);
          addr(IMAGE2D<float>) a1886#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix188E,iy1883);
          real4 v21877#1 = LoadVoxels<IMAGE2D<float>,4>(a1886);
          int iy187C#1 = Add<int>(_t0902,t21893);
          addr(IMAGE2D<float>) a187F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix188E,iy187C);
          real4 v31878#1 = LoadVoxels<IMAGE2D<float>,4>(a187F);
          real fy18A0#5 = Index<real2,1>(f1871);
          real t318A5#1 = Add<real>(fy18A0,_t08FE);
          real t118A3#1 = Sub<real>(fy18A0,_t08FE);
          real t018A2#1 = Sub<real>(fy18A0,_t0900);
          real4 a18A1#1 = <real4>[t318A5,fy18A0,t118A3,t018A2];
          real4 hy1896#1 = EvalKernel<4,bspln3,0>(a18A1);
          real fx1897#5 = Index<real2,0>(f1871);
          real t3189C#1 = Add<real>(fx1897,_t08FE);
          real t1189A#1 = Sub<real>(fx1897,_t08FE);
          real t01899#1 = Sub<real>(fx1897,_t0900);
          real4 a1898#1 = <real4>[t3189C,fx1897,t1189A,t01899];
          real4 hx1895#4 = EvalKernel<4,bspln3,0>(a1898);
          real t018AA#1 = Dot<4>(v01875,hx1895);
          real t118AB#1 = Dot<4>(v11876,hx1895);
          real t218AC#1 = Dot<4>(v21877,hx1895);
          real t318AD#1 = Dot<4>(v31878,hx1895);
          real4 tv18A9#1 = <real4>[t018AA,t118AB,t218AC,t318AD];
          real _t186F#1 = Dot<4>(hy1896,tv18A9);
          real2 x18ED#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1408BE);
          real2 nd18EF#2 = Floor<2>(x18ED);
          real2 f18EE#2 = Sub<real2>(x18ED,nd18EF);
          int{2} n18F0#8 = RealToInt<2>(nd18EF);
          int t2190D#1 = Index<int{2},0>(n18F0);
          int ix190B#4 = Add<int>(t1188F,t2190D);
          int t21910#4 = Index<int{2},1>(n18F0);
          int iy190E#1 = Add<int>(t1188F,t21910);
          addr(IMAGE2D<int>) a1911#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix190B,iy190E);
          real4 v018F2#1 = LoadVoxels<IMAGE2D<int>,4>(a1911);
          int iy1907#1 = Add<int>(_t0926,t21910);
          addr(IMAGE2D<int>) a190A#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix190B,iy1907);
          real4 v118F3#1 = LoadVoxels<IMAGE2D<int>,4>(a190A);
          int iy1900#1 = Add<int>(_t092A,t21910);
          addr(IMAGE2D<int>) a1903#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix190B,iy1900);
          real4 v218F4#1 = LoadVoxels<IMAGE2D<int>,4>(a1903);
          int iy18F9#1 = Add<int>(_t0902,t21910);
          addr(IMAGE2D<int>) a18FC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix190B,iy18F9);
          real4 v318F5#1 = LoadVoxels<IMAGE2D<int>,4>(a18FC);
          real fy191D#5 = Index<real2,1>(f18EE);
          real t31922#1 = Add<real>(fy191D,_t08FE);
          real t11920#1 = Sub<real>(fy191D,_t08FE);
          real t0191F#1 = Sub<real>(fy191D,_t0900);
          real4 a191E#1 = <real4>[t31922,fy191D,t11920,t0191F];
          real4 hy1913#1 = EvalKernel<4,bspln3,0>(a191E);
          real fx1914#5 = Index<real2,0>(f18EE);
          real t31919#1 = Add<real>(fx1914,_t08FE);
          real t11917#1 = Sub<real>(fx1914,_t08FE);
          real t01916#1 = Sub<real>(fx1914,_t0900);
          real4 a1915#1 = <real4>[t31919,fx1914,t11917,t01916];
          real4 hx1912#4 = EvalKernel<4,bspln3,0>(a1915);
          real t01927#1 = Dot<4>(v018F2,hx1912);
          real t11928#1 = Dot<4>(v118F3,hx1912);
          real t21929#1 = Dot<4>(v218F4,hx1912);
          real t3192A#1 = Dot<4>(v318F5,hx1912);
          real4 tv1926#1 = <real4>[t01927,t11928,t21929,t3192A];
          real _t18EC#1 = Dot<4>(hy1913,tv1926);
          real _t1969#2 = Sub<real>(_t186F,_t18EC);
          real _t196B#1 = Mul<real>(_t1969,_t1969);
          real score196D#1 = Add<real>(score1858,_t196B);
          goto JOIN1970
        JOIN1970:  preds = [ASSIGN196E,COND186E]
          real score196F#1 = phi(score196D,score1858)
          self.t = t08FA;
          self.score = score196F;
          self.r0 = r00918;
          self.r1 = r1091E;
          self.pos = pos1860;
          stabilize ()
        ASSIGN1977:  preds = [COND1866]
          bool _t186C#1 = false;
          goto JOIN186D
        ASSIGN1978:  preds = [COND174F]
          bool _t1755#1 = false;
          goto JOIN1756
        ASSIGN1979:  preds = [COND1638]
          bool _t163E#1 = false;
          goto JOIN163F
        ASSIGN197A:  preds = [COND1521]
          bool _t1527#1 = false;
          goto JOIN1528
        ASSIGN197B:  preds = [COND140A]
          bool _t1410#1 = false;
          goto JOIN1411
        ASSIGN197C:  preds = [COND12F3]
          bool _t12F9#1 = false;
          goto JOIN12FA
        ASSIGN197D:  preds = [COND11DC]
          bool _t11E2#1 = false;
          goto JOIN11E3
        ASSIGN197E:  preds = [COND0FC0]
          bool _t0FC6#1 = false;
          goto JOIN0FC7
        ASSIGN197F:  preds = [COND0EA9]
          bool _t0EAF#1 = false;
          goto JOIN0EB0
        ASSIGN1980:  preds = [COND0D92]
          bool _t0D98#1 = false;
          goto JOIN0D99
        ASSIGN1981:  preds = [COND0C7B]
          bool _t0C81#1 = false;
          goto JOIN0C82
        ASSIGN1982:  preds = [COND0B64]
          bool _t0B6A#1 = false;
          goto JOIN0B6B
        ASSIGN1983:  preds = [COND0A4D]
          bool _t0A53#1 = false;
          goto JOIN0A54
        ASSIGN1984:  preds = [COND0936]
          bool _t093C#1 = false;
          goto JOIN093D
    end Update
    method Stabilize
        ENTRY1986:  preds = []
          real3 t1987#1 = self.t;
          real score1989#1 = self.score;
          real2 r0198B#1 = self.r0;
          real2 r1198D#1 = self.r1;
          real2 pos198F#1 = self.pos;
          self.t = t1987;
          self.score = score1989;
          self.r0 = r0198B;
          self.r1 = r1198D;
          self.pos = pos198F;
          return ()
    end Stabilize
  end R
#### end program ####
++ mid-opt:unused
##### MidIL after contraction ####
## properties
  none
## globals
  global int T08C0#0
  global int F08C1#0
  global real2 v0008A0#4
  global real2 v0108A6#4
  global real2 v0208A8#4
  global real2 v0308AA#4
  global real2 v0508AE#4
  global real2 v0608B0#4
  global real2 v0408AC#5
  global real2 v0808B2#4
  global real2 v0908B4#4
  global real2 v1008B6#4
  global real2 v1108B8#4
  global real2 v1208BA#4
  global real2 v1308BC#4
  global real2 v1408BE#4
  global string _t0894#1
  global image(IMAGE2D<int>) _t0896#103
  global int _t0892#0
  global string _t0898#1
  global image(IMAGE2D<float>) _t089A#103
  global real _t089E#7
  global real _t08A4#7
  global real _t089C#7
  global real _t08A2#9
## global initialization
  ENTRY0891:  preds = []
    string _t0894#1 = "square-template.nrrd";
    image(IMAGE2D<int>) _t0896#103 = LoadImage<IMAGE2D<int>>(_t0894);
    string _t0898#1 = "square-rotate.nrrd";
    image(IMAGE2D<float>) _t089A#103 = LoadImage<IMAGE2D<float>>(_t0898);
    real _t089C#7 = 0.5e0;
    real _t089E#7 = Neg<real>(_t089C);
    real2 v0008A0#4 = <real2>[_t089E,_t089E];
    real _t08A2#9 = 0.15e0;
    real _t08A4#7 = Neg<real>(_t08A2);
    real2 v0108A6#4 = <real2>[_t089E,_t08A4];
    real2 v0208A8#4 = <real2>[_t089E,_t08A2];
    real2 v0308AA#4 = <real2>[_t089E,_t089C];
    real2 v0408AC#5 = <real2>[_t08A4,_t089C];
    real2 v0508AE#4 = <real2>[_t08A4,_t08A4];
    real2 v0608B0#4 = <real2>[_t08A4,_t08A2];
    real2 v0808B2#4 = <real2>[_t08A2,_t089E];
    real2 v0908B4#4 = <real2>[_t08A2,_t08A4];
    real2 v1008B6#4 = <real2>[_t08A2,_t08A2];
    real2 v1108B8#4 = <real2>[_t08A2,_t089C];
    real2 v1208BA#4 = <real2>[_t089C,_t089E];
    real2 v1308BC#4 = <real2>[_t089C,_t08A4];
    real2 v1408BE#4 = <real2>[_t089C,_t08A2];
    return (T08C0,F08C1,v0008A0,v0108A6,v0208A8,v0308AA,v0508AE,v0608B0,v0408AC,v0808B2,v0908B4,v1008B6,v1108B8,v1208BA,v1308BC,v1408BE,_t0894,_t0896,_t0892,_t0898,_t089A,_t089E,_t08A4,_t089C,_t08A2)
## initially
  ARRAY
    ENTRY08C8:  preds = []
      int _t08C4#4 = 0;
      int _t08C5#4 = 60;
      live vars = (_t08C5,_t08C4)
    for int i08C3#1 = _t08C4 .. _t08C5
      for int j08C6#1 = _t08C4 .. _t08C5
        for int k08C7#1 = _t08C4 .. _t08C5
          ENTRY08CC:  preds = []
            live vars = ()
          new R(i08C3,j08C6,k08C7);
## strands
  strand R (int i08CE#1, int j08CF#1, int k08D0#1)
    state: real3 self.t;output real self.score;real2 self.r0;real2 self.r1;real2 self.pos;
      ENTRY08D6:  preds = []
        real _t08D7#1 = IntToReal(i08CE);
        real _t08D9#3 = 0.60e2;
        real _t08DB#1 = Div<real>(_t08D7,_t08D9);
        real _t08DD#3 = 0.5e0;
        real _t08DF#1 = Sub<real>(_t08DB,_t08DD);
        real _t08E1#1 = IntToReal(j08CF);
        real _t08E3#1 = Div<real>(_t08E1,_t08D9);
        real _t08E5#1 = Sub<real>(_t08E3,_t08DD);
        real _t08E7#1 = IntToReal(k08D0);
        real _t08E9#1 = Div<real>(_t08E7,_t08D9);
        real _t08EB#1 = Sub<real>(_t08E9,_t08DD);
        real3 t08ED#1 = <real3>[_t08DF,_t08E5,_t08EB];
        real score08EF#3 = 0.0;
        real2 r008F1#3 = <real2>[score08EF,score08EF];
        self.t = t08ED;
        self.score = score08EF;
        self.r0 = r008F1;
        self.r1 = r008F1;
        self.pos = r008F1;
        strand_init ()
    method Update
        ENTRY08F9:  preds = []
          real3 t08FA#4 = self.t;
          real score08FC#2 = self.score;
          real _t08FE#122 = 0.1e1;
          real _t0900#63 = 0.2e1;
          int _t0902#31 = 2;
          real _t0904#6 = Subscript<real3>(t08FA,_t0902);
          real _t0906#1 = Mul<real>(_t0900,_t0904);
          real _t0908#1 = Mul<real>(_t0906,_t0904);
          real _t090A#2 = Sub<real>(_t08FE,_t0908);
          real _t090C#1 = Neg<real>(_t0900);
          real _t090E#1 = Mul<real>(_t0904,_t0904);
          real _t0910#1 = Sub<real>(_t08FE,_t090E);
          real _t0912#2 = sqrt(_t0910);
          real _t0914#1 = Mul<real>(_t090C,_t0912);
          real _t0916#1 = Mul<real>(_t0914,_t0904);
          real2 r00918#15 = <real2>[_t090A,_t0916];
          real _t091A#1 = Mul<real>(_t0900,_t0912);
          real _t091C#1 = Mul<real>(_t091A,_t0904);
          real2 r1091E#15 = <real2>[_t091C,_t090A];
          real _t0920#1 = Dot<2>(r00918,v0008A0);
          real _t0922#1 = Dot<2>(r1091E,v0008A0);
          real2 _t0924#1 = <real2>[_t0920,_t0922];
          int _t0926#31 = 0;
          real _t0928#1 = Subscript<real3>(t08FA,_t0926);
          int _t092A#31 = 1;
          real _t092C#1 = Subscript<real3>(t08FA,_t092A);
          real2 _t092E#14 = <real2>[_t0928,_t092C];
          real2 pos0930#2 = Add<real2>(_t0924,_t092E);
          real2 x0933#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0930);
          bool _t0932#1 = Inside<IMAGE2D<float>,2>(x0933,_t089A);
          if _t0932 then goto ASSIGN0939 else goto ASSIGN1984
        ASSIGN0939:  preds = [COND0936]
          real2 x0938#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0008A0);
          bool _t0937#1 = Inside<IMAGE2D<int>,2>(x0938,_t0896);
          goto JOIN093D
        JOIN093D:  preds = [ASSIGN093A,ASSIGN1984]
          bool _t093B#1 = phi(_t0937,_t093C)
          if _t093B then goto ASSIGN1997 else goto JOIN0A40
        ASSIGN1997:  preds = [COND093E]
          real2 nd0942#2 = Floor<2>(x0933);
          real2 f0941#2 = Sub<real2>(x0933,nd0942);
          int{2} n0943#8 = RealToInt<2>(nd0942);
          int t1095F#4 = -1;
          int t20960#1 = Index<int{2},0>(n0943);
          int ix095E#4 = Add<int>(t1095F,t20960);
          int t20963#4 = Index<int{2},1>(n0943);
          int iy0961#1 = Add<int>(t1095F,t20963);
          addr(IMAGE2D<float>) a0964#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix095E,iy0961);
          real4 v00945#1 = LoadVoxels<IMAGE2D<float>,4>(a0964);
          int iy095A#1 = Add<int>(_t0926,t20963);
          addr(IMAGE2D<float>) a095D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix095E,iy095A);
          real4 v10946#1 = LoadVoxels<IMAGE2D<float>,4>(a095D);
          int iy0953#1 = Add<int>(_t092A,t20963);
          addr(IMAGE2D<float>) a0956#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix095E,iy0953);
          real4 v20947#1 = LoadVoxels<IMAGE2D<float>,4>(a0956);
          int iy094C#1 = Add<int>(_t0902,t20963);
          addr(IMAGE2D<float>) a094F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix095E,iy094C);
          real4 v30948#1 = LoadVoxels<IMAGE2D<float>,4>(a094F);
          real fy0970#5 = Index<real2,1>(f0941);
          real t30975#1 = Add<real>(fy0970,_t08FE);
          real t10973#1 = Sub<real>(fy0970,_t08FE);
          real t00972#1 = Sub<real>(fy0970,_t0900);
          real4 a0971#1 = <real4>[t30975,fy0970,t10973,t00972];
          real4 hy0966#1 = EvalKernel<4,bspln3,0>(a0971);
          real fx0967#5 = Index<real2,0>(f0941);
          real t3096C#1 = Add<real>(fx0967,_t08FE);
          real t1096A#1 = Sub<real>(fx0967,_t08FE);
          real t00969#1 = Sub<real>(fx0967,_t0900);
          real4 a0968#1 = <real4>[t3096C,fx0967,t1096A,t00969];
          real4 hx0965#4 = EvalKernel<4,bspln3,0>(a0968);
          real t0097A#1 = Dot<4>(v00945,hx0965);
          real t1097B#1 = Dot<4>(v10946,hx0965);
          real t2097C#1 = Dot<4>(v20947,hx0965);
          real t3097D#1 = Dot<4>(v30948,hx0965);
          real4 tv0979#1 = <real4>[t0097A,t1097B,t2097C,t3097D];
          real _t093F#1 = Dot<4>(hy0966,tv0979);
          real2 x09BD#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0008A0);
          real2 nd09BF#2 = Floor<2>(x09BD);
          real2 f09BE#2 = Sub<real2>(x09BD,nd09BF);
          int{2} n09C0#8 = RealToInt<2>(nd09BF);
          int t209DD#1 = Index<int{2},0>(n09C0);
          int ix09DB#4 = Add<int>(t1095F,t209DD);
          int t209E0#4 = Index<int{2},1>(n09C0);
          int iy09DE#1 = Add<int>(t1095F,t209E0);
          addr(IMAGE2D<int>) a09E1#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix09DB,iy09DE);
          real4 v009C2#1 = LoadVoxels<IMAGE2D<int>,4>(a09E1);
          int iy09D7#1 = Add<int>(_t0926,t209E0);
          addr(IMAGE2D<int>) a09DA#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix09DB,iy09D7);
          real4 v109C3#1 = LoadVoxels<IMAGE2D<int>,4>(a09DA);
          int iy09D0#1 = Add<int>(_t092A,t209E0);
          addr(IMAGE2D<int>) a09D3#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix09DB,iy09D0);
          real4 v209C4#1 = LoadVoxels<IMAGE2D<int>,4>(a09D3);
          int iy09C9#1 = Add<int>(_t0902,t209E0);
          addr(IMAGE2D<int>) a09CC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix09DB,iy09C9);
          real4 v309C5#1 = LoadVoxels<IMAGE2D<int>,4>(a09CC);
          real fy09ED#5 = Index<real2,1>(f09BE);
          real t309F2#1 = Add<real>(fy09ED,_t08FE);
          real t109F0#1 = Sub<real>(fy09ED,_t08FE);
          real t009EF#1 = Sub<real>(fy09ED,_t0900);
          real4 a09EE#1 = <real4>[t309F2,fy09ED,t109F0,t009EF];
          real4 hy09E3#1 = EvalKernel<4,bspln3,0>(a09EE);
          real fx09E4#5 = Index<real2,0>(f09BE);
          real t309E9#1 = Add<real>(fx09E4,_t08FE);
          real t109E7#1 = Sub<real>(fx09E4,_t08FE);
          real t009E6#1 = Sub<real>(fx09E4,_t0900);
          real4 a09E5#1 = <real4>[t309E9,fx09E4,t109E7,t009E6];
          real4 hx09E2#4 = EvalKernel<4,bspln3,0>(a09E5);
          real t009F7#1 = Dot<4>(v009C2,hx09E2);
          real t109F8#1 = Dot<4>(v109C3,hx09E2);
          real t209F9#1 = Dot<4>(v209C4,hx09E2);
          real t309FA#1 = Dot<4>(v309C5,hx09E2);
          real4 tv09F6#1 = <real4>[t009F7,t109F8,t209F9,t309FA];
          real _t09BC#1 = Dot<4>(hy09E3,tv09F6);
          real _t0A39#2 = Sub<real>(_t093F,_t09BC);
          real _t0A3B#1 = Mul<real>(_t0A39,_t0A39);
          real score0A3D#1 = Add<real>(score08FC,_t0A3B);
          goto JOIN0A40
        JOIN0A40:  preds = [ASSIGN0A3E,COND093E]
          real score0A3F#2 = phi(score0A3D,score08FC)
          real _t0A41#1 = Dot<2>(r00918,v0108A6);
          real _t0A43#1 = Dot<2>(r1091E,v0108A6);
          real2 _t0A45#1 = <real2>[_t0A41,_t0A43];
          real2 pos0A47#2 = Add<real2>(_t0A45,_t092E);
          real2 x0A4A#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0A47);
          bool _t0A49#1 = Inside<IMAGE2D<float>,2>(x0A4A,_t089A);
          if _t0A49 then goto ASSIGN0A50 else goto ASSIGN1983
        ASSIGN0A50:  preds = [COND0A4D]
          real2 x0A4F#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0108A6);
          bool _t0A4E#1 = Inside<IMAGE2D<int>,2>(x0A4F,_t0896);
          goto JOIN0A54
        JOIN0A54:  preds = [ASSIGN0A51,ASSIGN1983]
          bool _t0A52#1 = phi(_t0A4E,_t0A53)
          if _t0A52 then goto ASSIGN19B8 else goto JOIN0B57
        ASSIGN19B8:  preds = [COND0A55]
          real2 nd0A59#2 = Floor<2>(x0A4A);
          real2 f0A58#2 = Sub<real2>(x0A4A,nd0A59);
          int{2} n0A5A#8 = RealToInt<2>(nd0A59);
          int t10A76#4 = -1;
          int t20A77#1 = Index<int{2},0>(n0A5A);
          int ix0A75#4 = Add<int>(t10A76,t20A77);
          int t20A7A#4 = Index<int{2},1>(n0A5A);
          int iy0A78#1 = Add<int>(t10A76,t20A7A);
          addr(IMAGE2D<float>) a0A7B#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0A75,iy0A78);
          real4 v00A5C#1 = LoadVoxels<IMAGE2D<float>,4>(a0A7B);
          int iy0A71#1 = Add<int>(_t0926,t20A7A);
          addr(IMAGE2D<float>) a0A74#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0A75,iy0A71);
          real4 v10A5D#1 = LoadVoxels<IMAGE2D<float>,4>(a0A74);
          int iy0A6A#1 = Add<int>(_t092A,t20A7A);
          addr(IMAGE2D<float>) a0A6D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0A75,iy0A6A);
          real4 v20A5E#1 = LoadVoxels<IMAGE2D<float>,4>(a0A6D);
          int iy0A63#1 = Add<int>(_t0902,t20A7A);
          addr(IMAGE2D<float>) a0A66#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0A75,iy0A63);
          real4 v30A5F#1 = LoadVoxels<IMAGE2D<float>,4>(a0A66);
          real fy0A87#5 = Index<real2,1>(f0A58);
          real t30A8C#1 = Add<real>(fy0A87,_t08FE);
          real t10A8A#1 = Sub<real>(fy0A87,_t08FE);
          real t00A89#1 = Sub<real>(fy0A87,_t0900);
          real4 a0A88#1 = <real4>[t30A8C,fy0A87,t10A8A,t00A89];
          real4 hy0A7D#1 = EvalKernel<4,bspln3,0>(a0A88);
          real fx0A7E#5 = Index<real2,0>(f0A58);
          real t30A83#1 = Add<real>(fx0A7E,_t08FE);
          real t10A81#1 = Sub<real>(fx0A7E,_t08FE);
          real t00A80#1 = Sub<real>(fx0A7E,_t0900);
          real4 a0A7F#1 = <real4>[t30A83,fx0A7E,t10A81,t00A80];
          real4 hx0A7C#4 = EvalKernel<4,bspln3,0>(a0A7F);
          real t00A91#1 = Dot<4>(v00A5C,hx0A7C);
          real t10A92#1 = Dot<4>(v10A5D,hx0A7C);
          real t20A93#1 = Dot<4>(v20A5E,hx0A7C);
          real t30A94#1 = Dot<4>(v30A5F,hx0A7C);
          real4 tv0A90#1 = <real4>[t00A91,t10A92,t20A93,t30A94];
          real _t0A56#1 = Dot<4>(hy0A7D,tv0A90);
          real2 x0AD4#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0108A6);
          real2 nd0AD6#2 = Floor<2>(x0AD4);
          real2 f0AD5#2 = Sub<real2>(x0AD4,nd0AD6);
          int{2} n0AD7#8 = RealToInt<2>(nd0AD6);
          int t20AF4#1 = Index<int{2},0>(n0AD7);
          int ix0AF2#4 = Add<int>(t10A76,t20AF4);
          int t20AF7#4 = Index<int{2},1>(n0AD7);
          int iy0AF5#1 = Add<int>(t10A76,t20AF7);
          addr(IMAGE2D<int>) a0AF8#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0AF2,iy0AF5);
          real4 v00AD9#1 = LoadVoxels<IMAGE2D<int>,4>(a0AF8);
          int iy0AEE#1 = Add<int>(_t0926,t20AF7);
          addr(IMAGE2D<int>) a0AF1#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0AF2,iy0AEE);
          real4 v10ADA#1 = LoadVoxels<IMAGE2D<int>,4>(a0AF1);
          int iy0AE7#1 = Add<int>(_t092A,t20AF7);
          addr(IMAGE2D<int>) a0AEA#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0AF2,iy0AE7);
          real4 v20ADB#1 = LoadVoxels<IMAGE2D<int>,4>(a0AEA);
          int iy0AE0#1 = Add<int>(_t0902,t20AF7);
          addr(IMAGE2D<int>) a0AE3#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0AF2,iy0AE0);
          real4 v30ADC#1 = LoadVoxels<IMAGE2D<int>,4>(a0AE3);
          real fy0B04#5 = Index<real2,1>(f0AD5);
          real t30B09#1 = Add<real>(fy0B04,_t08FE);
          real t10B07#1 = Sub<real>(fy0B04,_t08FE);
          real t00B06#1 = Sub<real>(fy0B04,_t0900);
          real4 a0B05#1 = <real4>[t30B09,fy0B04,t10B07,t00B06];
          real4 hy0AFA#1 = EvalKernel<4,bspln3,0>(a0B05);
          real fx0AFB#5 = Index<real2,0>(f0AD5);
          real t30B00#1 = Add<real>(fx0AFB,_t08FE);
          real t10AFE#1 = Sub<real>(fx0AFB,_t08FE);
          real t00AFD#1 = Sub<real>(fx0AFB,_t0900);
          real4 a0AFC#1 = <real4>[t30B00,fx0AFB,t10AFE,t00AFD];
          real4 hx0AF9#4 = EvalKernel<4,bspln3,0>(a0AFC);
          real t00B0E#1 = Dot<4>(v00AD9,hx0AF9);
          real t10B0F#1 = Dot<4>(v10ADA,hx0AF9);
          real t20B10#1 = Dot<4>(v20ADB,hx0AF9);
          real t30B11#1 = Dot<4>(v30ADC,hx0AF9);
          real4 tv0B0D#1 = <real4>[t00B0E,t10B0F,t20B10,t30B11];
          real _t0AD3#1 = Dot<4>(hy0AFA,tv0B0D);
          real _t0B50#2 = Sub<real>(_t0A56,_t0AD3);
          real _t0B52#1 = Mul<real>(_t0B50,_t0B50);
          real score0B54#1 = Add<real>(score0A3F,_t0B52);
          goto JOIN0B57
        JOIN0B57:  preds = [ASSIGN0B55,COND0A55]
          real score0B56#2 = phi(score0B54,score0A3F)
          real _t0B58#1 = Dot<2>(r00918,v0208A8);
          real _t0B5A#1 = Dot<2>(r1091E,v0208A8);
          real2 _t0B5C#1 = <real2>[_t0B58,_t0B5A];
          real2 pos0B5E#2 = Add<real2>(_t0B5C,_t092E);
          real2 x0B61#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0B5E);
          bool _t0B60#1 = Inside<IMAGE2D<float>,2>(x0B61,_t089A);
          if _t0B60 then goto ASSIGN0B67 else goto ASSIGN1982
        ASSIGN0B67:  preds = [COND0B64]
          real2 x0B66#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0208A8);
          bool _t0B65#1 = Inside<IMAGE2D<int>,2>(x0B66,_t0896);
          goto JOIN0B6B
        JOIN0B6B:  preds = [ASSIGN0B68,ASSIGN1982]
          bool _t0B69#1 = phi(_t0B65,_t0B6A)
          if _t0B69 then goto ASSIGN19D9 else goto JOIN0C6E
        ASSIGN19D9:  preds = [COND0B6C]
          real2 nd0B70#2 = Floor<2>(x0B61);
          real2 f0B6F#2 = Sub<real2>(x0B61,nd0B70);
          int{2} n0B71#8 = RealToInt<2>(nd0B70);
          int t10B8D#4 = -1;
          int t20B8E#1 = Index<int{2},0>(n0B71);
          int ix0B8C#4 = Add<int>(t10B8D,t20B8E);
          int t20B91#4 = Index<int{2},1>(n0B71);
          int iy0B8F#1 = Add<int>(t10B8D,t20B91);
          addr(IMAGE2D<float>) a0B92#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0B8C,iy0B8F);
          real4 v00B73#1 = LoadVoxels<IMAGE2D<float>,4>(a0B92);
          int iy0B88#1 = Add<int>(_t0926,t20B91);
          addr(IMAGE2D<float>) a0B8B#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0B8C,iy0B88);
          real4 v10B74#1 = LoadVoxels<IMAGE2D<float>,4>(a0B8B);
          int iy0B81#1 = Add<int>(_t092A,t20B91);
          addr(IMAGE2D<float>) a0B84#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0B8C,iy0B81);
          real4 v20B75#1 = LoadVoxels<IMAGE2D<float>,4>(a0B84);
          int iy0B7A#1 = Add<int>(_t0902,t20B91);
          addr(IMAGE2D<float>) a0B7D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0B8C,iy0B7A);
          real4 v30B76#1 = LoadVoxels<IMAGE2D<float>,4>(a0B7D);
          real fy0B9E#5 = Index<real2,1>(f0B6F);
          real t30BA3#1 = Add<real>(fy0B9E,_t08FE);
          real t10BA1#1 = Sub<real>(fy0B9E,_t08FE);
          real t00BA0#1 = Sub<real>(fy0B9E,_t0900);
          real4 a0B9F#1 = <real4>[t30BA3,fy0B9E,t10BA1,t00BA0];
          real4 hy0B94#1 = EvalKernel<4,bspln3,0>(a0B9F);
          real fx0B95#5 = Index<real2,0>(f0B6F);
          real t30B9A#1 = Add<real>(fx0B95,_t08FE);
          real t10B98#1 = Sub<real>(fx0B95,_t08FE);
          real t00B97#1 = Sub<real>(fx0B95,_t0900);
          real4 a0B96#1 = <real4>[t30B9A,fx0B95,t10B98,t00B97];
          real4 hx0B93#4 = EvalKernel<4,bspln3,0>(a0B96);
          real t00BA8#1 = Dot<4>(v00B73,hx0B93);
          real t10BA9#1 = Dot<4>(v10B74,hx0B93);
          real t20BAA#1 = Dot<4>(v20B75,hx0B93);
          real t30BAB#1 = Dot<4>(v30B76,hx0B93);
          real4 tv0BA7#1 = <real4>[t00BA8,t10BA9,t20BAA,t30BAB];
          real _t0B6D#1 = Dot<4>(hy0B94,tv0BA7);
          real2 x0BEB#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0208A8);
          real2 nd0BED#2 = Floor<2>(x0BEB);
          real2 f0BEC#2 = Sub<real2>(x0BEB,nd0BED);
          int{2} n0BEE#8 = RealToInt<2>(nd0BED);
          int t20C0B#1 = Index<int{2},0>(n0BEE);
          int ix0C09#4 = Add<int>(t10B8D,t20C0B);
          int t20C0E#4 = Index<int{2},1>(n0BEE);
          int iy0C0C#1 = Add<int>(t10B8D,t20C0E);
          addr(IMAGE2D<int>) a0C0F#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0C09,iy0C0C);
          real4 v00BF0#1 = LoadVoxels<IMAGE2D<int>,4>(a0C0F);
          int iy0C05#1 = Add<int>(_t0926,t20C0E);
          addr(IMAGE2D<int>) a0C08#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0C09,iy0C05);
          real4 v10BF1#1 = LoadVoxels<IMAGE2D<int>,4>(a0C08);
          int iy0BFE#1 = Add<int>(_t092A,t20C0E);
          addr(IMAGE2D<int>) a0C01#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0C09,iy0BFE);
          real4 v20BF2#1 = LoadVoxels<IMAGE2D<int>,4>(a0C01);
          int iy0BF7#1 = Add<int>(_t0902,t20C0E);
          addr(IMAGE2D<int>) a0BFA#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0C09,iy0BF7);
          real4 v30BF3#1 = LoadVoxels<IMAGE2D<int>,4>(a0BFA);
          real fy0C1B#5 = Index<real2,1>(f0BEC);
          real t30C20#1 = Add<real>(fy0C1B,_t08FE);
          real t10C1E#1 = Sub<real>(fy0C1B,_t08FE);
          real t00C1D#1 = Sub<real>(fy0C1B,_t0900);
          real4 a0C1C#1 = <real4>[t30C20,fy0C1B,t10C1E,t00C1D];
          real4 hy0C11#1 = EvalKernel<4,bspln3,0>(a0C1C);
          real fx0C12#5 = Index<real2,0>(f0BEC);
          real t30C17#1 = Add<real>(fx0C12,_t08FE);
          real t10C15#1 = Sub<real>(fx0C12,_t08FE);
          real t00C14#1 = Sub<real>(fx0C12,_t0900);
          real4 a0C13#1 = <real4>[t30C17,fx0C12,t10C15,t00C14];
          real4 hx0C10#4 = EvalKernel<4,bspln3,0>(a0C13);
          real t00C25#1 = Dot<4>(v00BF0,hx0C10);
          real t10C26#1 = Dot<4>(v10BF1,hx0C10);
          real t20C27#1 = Dot<4>(v20BF2,hx0C10);
          real t30C28#1 = Dot<4>(v30BF3,hx0C10);
          real4 tv0C24#1 = <real4>[t00C25,t10C26,t20C27,t30C28];
          real _t0BEA#1 = Dot<4>(hy0C11,tv0C24);
          real _t0C67#2 = Sub<real>(_t0B6D,_t0BEA);
          real _t0C69#1 = Mul<real>(_t0C67,_t0C67);
          real score0C6B#1 = Add<real>(score0B56,_t0C69);
          goto JOIN0C6E
        JOIN0C6E:  preds = [ASSIGN0C6C,COND0B6C]
          real score0C6D#2 = phi(score0C6B,score0B56)
          real _t0C6F#1 = Dot<2>(r00918,v0308AA);
          real _t0C71#1 = Dot<2>(r1091E,v0308AA);
          real2 _t0C73#1 = <real2>[_t0C6F,_t0C71];
          real2 pos0C75#2 = Add<real2>(_t0C73,_t092E);
          real2 x0C78#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0C75);
          bool _t0C77#1 = Inside<IMAGE2D<float>,2>(x0C78,_t089A);
          if _t0C77 then goto ASSIGN0C7E else goto ASSIGN1981
        ASSIGN0C7E:  preds = [COND0C7B]
          real2 x0C7D#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0308AA);
          bool _t0C7C#1 = Inside<IMAGE2D<int>,2>(x0C7D,_t0896);
          goto JOIN0C82
        JOIN0C82:  preds = [ASSIGN0C7F,ASSIGN1981]
          bool _t0C80#1 = phi(_t0C7C,_t0C81)
          if _t0C80 then goto ASSIGN19FA else goto JOIN0D85
        ASSIGN19FA:  preds = [COND0C83]
          real2 nd0C87#2 = Floor<2>(x0C78);
          real2 f0C86#2 = Sub<real2>(x0C78,nd0C87);
          int{2} n0C88#8 = RealToInt<2>(nd0C87);
          int t10CA4#4 = -1;
          int t20CA5#1 = Index<int{2},0>(n0C88);
          int ix0CA3#4 = Add<int>(t10CA4,t20CA5);
          int t20CA8#4 = Index<int{2},1>(n0C88);
          int iy0CA6#1 = Add<int>(t10CA4,t20CA8);
          addr(IMAGE2D<float>) a0CA9#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0CA3,iy0CA6);
          real4 v00C8A#1 = LoadVoxels<IMAGE2D<float>,4>(a0CA9);
          int iy0C9F#1 = Add<int>(_t0926,t20CA8);
          addr(IMAGE2D<float>) a0CA2#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0CA3,iy0C9F);
          real4 v10C8B#1 = LoadVoxels<IMAGE2D<float>,4>(a0CA2);
          int iy0C98#1 = Add<int>(_t092A,t20CA8);
          addr(IMAGE2D<float>) a0C9B#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0CA3,iy0C98);
          real4 v20C8C#1 = LoadVoxels<IMAGE2D<float>,4>(a0C9B);
          int iy0C91#1 = Add<int>(_t0902,t20CA8);
          addr(IMAGE2D<float>) a0C94#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0CA3,iy0C91);
          real4 v30C8D#1 = LoadVoxels<IMAGE2D<float>,4>(a0C94);
          real fy0CB5#5 = Index<real2,1>(f0C86);
          real t30CBA#1 = Add<real>(fy0CB5,_t08FE);
          real t10CB8#1 = Sub<real>(fy0CB5,_t08FE);
          real t00CB7#1 = Sub<real>(fy0CB5,_t0900);
          real4 a0CB6#1 = <real4>[t30CBA,fy0CB5,t10CB8,t00CB7];
          real4 hy0CAB#1 = EvalKernel<4,bspln3,0>(a0CB6);
          real fx0CAC#5 = Index<real2,0>(f0C86);
          real t30CB1#1 = Add<real>(fx0CAC,_t08FE);
          real t10CAF#1 = Sub<real>(fx0CAC,_t08FE);
          real t00CAE#1 = Sub<real>(fx0CAC,_t0900);
          real4 a0CAD#1 = <real4>[t30CB1,fx0CAC,t10CAF,t00CAE];
          real4 hx0CAA#4 = EvalKernel<4,bspln3,0>(a0CAD);
          real t00CBF#1 = Dot<4>(v00C8A,hx0CAA);
          real t10CC0#1 = Dot<4>(v10C8B,hx0CAA);
          real t20CC1#1 = Dot<4>(v20C8C,hx0CAA);
          real t30CC2#1 = Dot<4>(v30C8D,hx0CAA);
          real4 tv0CBE#1 = <real4>[t00CBF,t10CC0,t20CC1,t30CC2];
          real _t0C84#1 = Dot<4>(hy0CAB,tv0CBE);
          real2 x0D02#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0308AA);
          real2 nd0D04#2 = Floor<2>(x0D02);
          real2 f0D03#2 = Sub<real2>(x0D02,nd0D04);
          int{2} n0D05#8 = RealToInt<2>(nd0D04);
          int t20D22#1 = Index<int{2},0>(n0D05);
          int ix0D20#4 = Add<int>(t10CA4,t20D22);
          int t20D25#4 = Index<int{2},1>(n0D05);
          int iy0D23#1 = Add<int>(t10CA4,t20D25);
          addr(IMAGE2D<int>) a0D26#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0D20,iy0D23);
          real4 v00D07#1 = LoadVoxels<IMAGE2D<int>,4>(a0D26);
          int iy0D1C#1 = Add<int>(_t0926,t20D25);
          addr(IMAGE2D<int>) a0D1F#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0D20,iy0D1C);
          real4 v10D08#1 = LoadVoxels<IMAGE2D<int>,4>(a0D1F);
          int iy0D15#1 = Add<int>(_t092A,t20D25);
          addr(IMAGE2D<int>) a0D18#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0D20,iy0D15);
          real4 v20D09#1 = LoadVoxels<IMAGE2D<int>,4>(a0D18);
          int iy0D0E#1 = Add<int>(_t0902,t20D25);
          addr(IMAGE2D<int>) a0D11#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0D20,iy0D0E);
          real4 v30D0A#1 = LoadVoxels<IMAGE2D<int>,4>(a0D11);
          real fy0D32#5 = Index<real2,1>(f0D03);
          real t30D37#1 = Add<real>(fy0D32,_t08FE);
          real t10D35#1 = Sub<real>(fy0D32,_t08FE);
          real t00D34#1 = Sub<real>(fy0D32,_t0900);
          real4 a0D33#1 = <real4>[t30D37,fy0D32,t10D35,t00D34];
          real4 hy0D28#1 = EvalKernel<4,bspln3,0>(a0D33);
          real fx0D29#5 = Index<real2,0>(f0D03);
          real t30D2E#1 = Add<real>(fx0D29,_t08FE);
          real t10D2C#1 = Sub<real>(fx0D29,_t08FE);
          real t00D2B#1 = Sub<real>(fx0D29,_t0900);
          real4 a0D2A#1 = <real4>[t30D2E,fx0D29,t10D2C,t00D2B];
          real4 hx0D27#4 = EvalKernel<4,bspln3,0>(a0D2A);
          real t00D3C#1 = Dot<4>(v00D07,hx0D27);
          real t10D3D#1 = Dot<4>(v10D08,hx0D27);
          real t20D3E#1 = Dot<4>(v20D09,hx0D27);
          real t30D3F#1 = Dot<4>(v30D0A,hx0D27);
          real4 tv0D3B#1 = <real4>[t00D3C,t10D3D,t20D3E,t30D3F];
          real _t0D01#1 = Dot<4>(hy0D28,tv0D3B);
          real _t0D7E#2 = Sub<real>(_t0C84,_t0D01);
          real _t0D80#1 = Mul<real>(_t0D7E,_t0D7E);
          real score0D82#1 = Add<real>(score0C6D,_t0D80);
          goto JOIN0D85
        JOIN0D85:  preds = [ASSIGN0D83,COND0C83]
          real score0D84#2 = phi(score0D82,score0C6D)
          real _t0D86#1 = Dot<2>(r00918,v0408AC);
          real _t0D88#1 = Dot<2>(r1091E,v0408AC);
          real2 _t0D8A#1 = <real2>[_t0D86,_t0D88];
          real2 pos0D8C#3 = Add<real2>(_t0D8A,_t092E);
          real2 x0D8F#5 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0D8C);
          bool _t0D8E#2 = Inside<IMAGE2D<float>,2>(x0D8F,_t089A);
          if _t0D8E then goto ASSIGN0D95 else goto ASSIGN1980
        ASSIGN0D95:  preds = [COND0D92]
          real2 x0D94#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0408AC);
          bool _t0D93#1 = Inside<IMAGE2D<int>,2>(x0D94,_t0896);
          goto JOIN0D99
        JOIN0D99:  preds = [ASSIGN0D96,ASSIGN1980]
          bool _t0D97#2 = phi(_t0D93,_t0D98)
          if _t0D97 then goto ASSIGN1A1B else goto JOIN0E9C
        ASSIGN1A1B:  preds = [COND0D9A]
          real2 nd0D9E#2 = Floor<2>(x0D8F);
          real2 f0D9D#2 = Sub<real2>(x0D8F,nd0D9E);
          int{2} n0D9F#8 = RealToInt<2>(nd0D9E);
          int t10DBB#4 = -1;
          int t20DBC#1 = Index<int{2},0>(n0D9F);
          int ix0DBA#4 = Add<int>(t10DBB,t20DBC);
          int t20DBF#4 = Index<int{2},1>(n0D9F);
          int iy0DBD#1 = Add<int>(t10DBB,t20DBF);
          addr(IMAGE2D<float>) a0DC0#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0DBA,iy0DBD);
          real4 v00DA1#1 = LoadVoxels<IMAGE2D<float>,4>(a0DC0);
          int iy0DB6#1 = Add<int>(_t0926,t20DBF);
          addr(IMAGE2D<float>) a0DB9#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0DBA,iy0DB6);
          real4 v10DA2#1 = LoadVoxels<IMAGE2D<float>,4>(a0DB9);
          int iy0DAF#1 = Add<int>(_t092A,t20DBF);
          addr(IMAGE2D<float>) a0DB2#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0DBA,iy0DAF);
          real4 v20DA3#1 = LoadVoxels<IMAGE2D<float>,4>(a0DB2);
          int iy0DA8#1 = Add<int>(_t0902,t20DBF);
          addr(IMAGE2D<float>) a0DAB#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0DBA,iy0DA8);
          real4 v30DA4#1 = LoadVoxels<IMAGE2D<float>,4>(a0DAB);
          real fy0DCC#5 = Index<real2,1>(f0D9D);
          real t30DD1#1 = Add<real>(fy0DCC,_t08FE);
          real t10DCF#1 = Sub<real>(fy0DCC,_t08FE);
          real t00DCE#1 = Sub<real>(fy0DCC,_t0900);
          real4 a0DCD#1 = <real4>[t30DD1,fy0DCC,t10DCF,t00DCE];
          real4 hy0DC2#1 = EvalKernel<4,bspln3,0>(a0DCD);
          real fx0DC3#5 = Index<real2,0>(f0D9D);
          real t30DC8#1 = Add<real>(fx0DC3,_t08FE);
          real t10DC6#1 = Sub<real>(fx0DC3,_t08FE);
          real t00DC5#1 = Sub<real>(fx0DC3,_t0900);
          real4 a0DC4#1 = <real4>[t30DC8,fx0DC3,t10DC6,t00DC5];
          real4 hx0DC1#4 = EvalKernel<4,bspln3,0>(a0DC4);
          real t00DD6#1 = Dot<4>(v00DA1,hx0DC1);
          real t10DD7#1 = Dot<4>(v10DA2,hx0DC1);
          real t20DD8#1 = Dot<4>(v20DA3,hx0DC1);
          real t30DD9#1 = Dot<4>(v30DA4,hx0DC1);
          real4 tv0DD5#1 = <real4>[t00DD6,t10DD7,t20DD8,t30DD9];
          real _t0D9B#1 = Dot<4>(hy0DC2,tv0DD5);
          real2 x0E19#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0408AC);
          real2 nd0E1B#2 = Floor<2>(x0E19);
          real2 f0E1A#2 = Sub<real2>(x0E19,nd0E1B);
          int{2} n0E1C#8 = RealToInt<2>(nd0E1B);
          int t20E39#1 = Index<int{2},0>(n0E1C);
          int ix0E37#4 = Add<int>(t10DBB,t20E39);
          int t20E3C#4 = Index<int{2},1>(n0E1C);
          int iy0E3A#1 = Add<int>(t10DBB,t20E3C);
          addr(IMAGE2D<int>) a0E3D#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0E37,iy0E3A);
          real4 v00E1E#1 = LoadVoxels<IMAGE2D<int>,4>(a0E3D);
          int iy0E33#1 = Add<int>(_t0926,t20E3C);
          addr(IMAGE2D<int>) a0E36#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0E37,iy0E33);
          real4 v10E1F#1 = LoadVoxels<IMAGE2D<int>,4>(a0E36);
          int iy0E2C#1 = Add<int>(_t092A,t20E3C);
          addr(IMAGE2D<int>) a0E2F#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0E37,iy0E2C);
          real4 v20E20#1 = LoadVoxels<IMAGE2D<int>,4>(a0E2F);
          int iy0E25#1 = Add<int>(_t0902,t20E3C);
          addr(IMAGE2D<int>) a0E28#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0E37,iy0E25);
          real4 v30E21#1 = LoadVoxels<IMAGE2D<int>,4>(a0E28);
          real fy0E49#5 = Index<real2,1>(f0E1A);
          real t30E4E#1 = Add<real>(fy0E49,_t08FE);
          real t10E4C#1 = Sub<real>(fy0E49,_t08FE);
          real t00E4B#1 = Sub<real>(fy0E49,_t0900);
          real4 a0E4A#1 = <real4>[t30E4E,fy0E49,t10E4C,t00E4B];
          real4 hy0E3F#1 = EvalKernel<4,bspln3,0>(a0E4A);
          real fx0E40#5 = Index<real2,0>(f0E1A);
          real t30E45#1 = Add<real>(fx0E40,_t08FE);
          real t10E43#1 = Sub<real>(fx0E40,_t08FE);
          real t00E42#1 = Sub<real>(fx0E40,_t0900);
          real4 a0E41#1 = <real4>[t30E45,fx0E40,t10E43,t00E42];
          real4 hx0E3E#4 = EvalKernel<4,bspln3,0>(a0E41);
          real t00E53#1 = Dot<4>(v00E1E,hx0E3E);
          real t10E54#1 = Dot<4>(v10E1F,hx0E3E);
          real t20E55#1 = Dot<4>(v20E20,hx0E3E);
          real t30E56#1 = Dot<4>(v30E21,hx0E3E);
          real4 tv0E52#1 = <real4>[t00E53,t10E54,t20E55,t30E56];
          real _t0E18#1 = Dot<4>(hy0E3F,tv0E52);
          real _t0E95#2 = Sub<real>(_t0D9B,_t0E18);
          real _t0E97#1 = Mul<real>(_t0E95,_t0E95);
          real score0E99#1 = Add<real>(score0D84,_t0E97);
          goto JOIN0E9C
        JOIN0E9C:  preds = [ASSIGN0E9A,COND0D9A]
          real score0E9B#2 = phi(score0E99,score0D84)
          real _t0E9D#1 = Dot<2>(r00918,v0508AE);
          real _t0E9F#1 = Dot<2>(r1091E,v0508AE);
          real2 _t0EA1#1 = <real2>[_t0E9D,_t0E9F];
          real2 pos0EA3#2 = Add<real2>(_t0EA1,_t092E);
          real2 x0EA6#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0EA3);
          bool _t0EA5#1 = Inside<IMAGE2D<float>,2>(x0EA6,_t089A);
          if _t0EA5 then goto ASSIGN0EAC else goto ASSIGN197F
        ASSIGN0EAC:  preds = [COND0EA9]
          real2 x0EAB#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0508AE);
          bool _t0EAA#1 = Inside<IMAGE2D<int>,2>(x0EAB,_t0896);
          goto JOIN0EB0
        JOIN0EB0:  preds = [ASSIGN0EAD,ASSIGN197F]
          bool _t0EAE#1 = phi(_t0EAA,_t0EAF)
          if _t0EAE then goto ASSIGN1A3C else goto JOIN0FB3
        ASSIGN1A3C:  preds = [COND0EB1]
          real2 nd0EB5#2 = Floor<2>(x0EA6);
          real2 f0EB4#2 = Sub<real2>(x0EA6,nd0EB5);
          int{2} n0EB6#8 = RealToInt<2>(nd0EB5);
          int t10ED2#4 = -1;
          int t20ED3#1 = Index<int{2},0>(n0EB6);
          int ix0ED1#4 = Add<int>(t10ED2,t20ED3);
          int t20ED6#4 = Index<int{2},1>(n0EB6);
          int iy0ED4#1 = Add<int>(t10ED2,t20ED6);
          addr(IMAGE2D<float>) a0ED7#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0ED1,iy0ED4);
          real4 v00EB8#1 = LoadVoxels<IMAGE2D<float>,4>(a0ED7);
          int iy0ECD#1 = Add<int>(_t0926,t20ED6);
          addr(IMAGE2D<float>) a0ED0#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0ED1,iy0ECD);
          real4 v10EB9#1 = LoadVoxels<IMAGE2D<float>,4>(a0ED0);
          int iy0EC6#1 = Add<int>(_t092A,t20ED6);
          addr(IMAGE2D<float>) a0EC9#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0ED1,iy0EC6);
          real4 v20EBA#1 = LoadVoxels<IMAGE2D<float>,4>(a0EC9);
          int iy0EBF#1 = Add<int>(_t0902,t20ED6);
          addr(IMAGE2D<float>) a0EC2#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0ED1,iy0EBF);
          real4 v30EBB#1 = LoadVoxels<IMAGE2D<float>,4>(a0EC2);
          real fy0EE3#5 = Index<real2,1>(f0EB4);
          real t30EE8#1 = Add<real>(fy0EE3,_t08FE);
          real t10EE6#1 = Sub<real>(fy0EE3,_t08FE);
          real t00EE5#1 = Sub<real>(fy0EE3,_t0900);
          real4 a0EE4#1 = <real4>[t30EE8,fy0EE3,t10EE6,t00EE5];
          real4 hy0ED9#1 = EvalKernel<4,bspln3,0>(a0EE4);
          real fx0EDA#5 = Index<real2,0>(f0EB4);
          real t30EDF#1 = Add<real>(fx0EDA,_t08FE);
          real t10EDD#1 = Sub<real>(fx0EDA,_t08FE);
          real t00EDC#1 = Sub<real>(fx0EDA,_t0900);
          real4 a0EDB#1 = <real4>[t30EDF,fx0EDA,t10EDD,t00EDC];
          real4 hx0ED8#4 = EvalKernel<4,bspln3,0>(a0EDB);
          real t00EED#1 = Dot<4>(v00EB8,hx0ED8);
          real t10EEE#1 = Dot<4>(v10EB9,hx0ED8);
          real t20EEF#1 = Dot<4>(v20EBA,hx0ED8);
          real t30EF0#1 = Dot<4>(v30EBB,hx0ED8);
          real4 tv0EEC#1 = <real4>[t00EED,t10EEE,t20EEF,t30EF0];
          real _t0EB2#1 = Dot<4>(hy0ED9,tv0EEC);
          real2 x0F30#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0508AE);
          real2 nd0F32#2 = Floor<2>(x0F30);
          real2 f0F31#2 = Sub<real2>(x0F30,nd0F32);
          int{2} n0F33#8 = RealToInt<2>(nd0F32);
          int t20F50#1 = Index<int{2},0>(n0F33);
          int ix0F4E#4 = Add<int>(t10ED2,t20F50);
          int t20F53#4 = Index<int{2},1>(n0F33);
          int iy0F51#1 = Add<int>(t10ED2,t20F53);
          addr(IMAGE2D<int>) a0F54#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0F4E,iy0F51);
          real4 v00F35#1 = LoadVoxels<IMAGE2D<int>,4>(a0F54);
          int iy0F4A#1 = Add<int>(_t0926,t20F53);
          addr(IMAGE2D<int>) a0F4D#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0F4E,iy0F4A);
          real4 v10F36#1 = LoadVoxels<IMAGE2D<int>,4>(a0F4D);
          int iy0F43#1 = Add<int>(_t092A,t20F53);
          addr(IMAGE2D<int>) a0F46#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0F4E,iy0F43);
          real4 v20F37#1 = LoadVoxels<IMAGE2D<int>,4>(a0F46);
          int iy0F3C#1 = Add<int>(_t0902,t20F53);
          addr(IMAGE2D<int>) a0F3F#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix0F4E,iy0F3C);
          real4 v30F38#1 = LoadVoxels<IMAGE2D<int>,4>(a0F3F);
          real fy0F60#5 = Index<real2,1>(f0F31);
          real t30F65#1 = Add<real>(fy0F60,_t08FE);
          real t10F63#1 = Sub<real>(fy0F60,_t08FE);
          real t00F62#1 = Sub<real>(fy0F60,_t0900);
          real4 a0F61#1 = <real4>[t30F65,fy0F60,t10F63,t00F62];
          real4 hy0F56#1 = EvalKernel<4,bspln3,0>(a0F61);
          real fx0F57#5 = Index<real2,0>(f0F31);
          real t30F5C#1 = Add<real>(fx0F57,_t08FE);
          real t10F5A#1 = Sub<real>(fx0F57,_t08FE);
          real t00F59#1 = Sub<real>(fx0F57,_t0900);
          real4 a0F58#1 = <real4>[t30F5C,fx0F57,t10F5A,t00F59];
          real4 hx0F55#4 = EvalKernel<4,bspln3,0>(a0F58);
          real t00F6A#1 = Dot<4>(v00F35,hx0F55);
          real t10F6B#1 = Dot<4>(v10F36,hx0F55);
          real t20F6C#1 = Dot<4>(v20F37,hx0F55);
          real t30F6D#1 = Dot<4>(v30F38,hx0F55);
          real4 tv0F69#1 = <real4>[t00F6A,t10F6B,t20F6C,t30F6D];
          real _t0F2F#1 = Dot<4>(hy0F56,tv0F69);
          real _t0FAC#2 = Sub<real>(_t0EB2,_t0F2F);
          real _t0FAE#1 = Mul<real>(_t0FAC,_t0FAC);
          real score0FB0#1 = Add<real>(score0E9B,_t0FAE);
          goto JOIN0FB3
        JOIN0FB3:  preds = [ASSIGN0FB1,COND0EB1]
          real score0FB2#2 = phi(score0FB0,score0E9B)
          real _t0FB4#1 = Dot<2>(r00918,v0608B0);
          real _t0FB6#1 = Dot<2>(r1091E,v0608B0);
          real2 _t0FB8#1 = <real2>[_t0FB4,_t0FB6];
          real2 pos0FBA#2 = Add<real2>(_t0FB8,_t092E);
          real2 x0FBD#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos0FBA);
          bool _t0FBC#1 = Inside<IMAGE2D<float>,2>(x0FBD,_t089A);
          if _t0FBC then goto ASSIGN0FC3 else goto ASSIGN197E
        ASSIGN0FC3:  preds = [COND0FC0]
          real2 x0FC2#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0608B0);
          bool _t0FC1#1 = Inside<IMAGE2D<int>,2>(x0FC2,_t0896);
          goto JOIN0FC7
        JOIN0FC7:  preds = [ASSIGN0FC4,ASSIGN197E]
          bool _t0FC5#1 = phi(_t0FC1,_t0FC6)
          if _t0FC5 then goto ASSIGN1A5D else goto JOIN10CA
        ASSIGN1A5D:  preds = [COND0FC8]
          real2 nd0FCC#2 = Floor<2>(x0FBD);
          real2 f0FCB#2 = Sub<real2>(x0FBD,nd0FCC);
          int{2} n0FCD#8 = RealToInt<2>(nd0FCC);
          int t10FE9#4 = -1;
          int t20FEA#1 = Index<int{2},0>(n0FCD);
          int ix0FE8#4 = Add<int>(t10FE9,t20FEA);
          int t20FED#4 = Index<int{2},1>(n0FCD);
          int iy0FEB#1 = Add<int>(t10FE9,t20FED);
          addr(IMAGE2D<float>) a0FEE#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0FE8,iy0FEB);
          real4 v00FCF#1 = LoadVoxels<IMAGE2D<float>,4>(a0FEE);
          int iy0FE4#1 = Add<int>(_t0926,t20FED);
          addr(IMAGE2D<float>) a0FE7#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0FE8,iy0FE4);
          real4 v10FD0#1 = LoadVoxels<IMAGE2D<float>,4>(a0FE7);
          int iy0FDD#1 = Add<int>(_t092A,t20FED);
          addr(IMAGE2D<float>) a0FE0#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0FE8,iy0FDD);
          real4 v20FD1#1 = LoadVoxels<IMAGE2D<float>,4>(a0FE0);
          int iy0FD6#1 = Add<int>(_t0902,t20FED);
          addr(IMAGE2D<float>) a0FD9#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix0FE8,iy0FD6);
          real4 v30FD2#1 = LoadVoxels<IMAGE2D<float>,4>(a0FD9);
          real fy0FFA#5 = Index<real2,1>(f0FCB);
          real t30FFF#1 = Add<real>(fy0FFA,_t08FE);
          real t10FFD#1 = Sub<real>(fy0FFA,_t08FE);
          real t00FFC#1 = Sub<real>(fy0FFA,_t0900);
          real4 a0FFB#1 = <real4>[t30FFF,fy0FFA,t10FFD,t00FFC];
          real4 hy0FF0#1 = EvalKernel<4,bspln3,0>(a0FFB);
          real fx0FF1#5 = Index<real2,0>(f0FCB);
          real t30FF6#1 = Add<real>(fx0FF1,_t08FE);
          real t10FF4#1 = Sub<real>(fx0FF1,_t08FE);
          real t00FF3#1 = Sub<real>(fx0FF1,_t0900);
          real4 a0FF2#1 = <real4>[t30FF6,fx0FF1,t10FF4,t00FF3];
          real4 hx0FEF#4 = EvalKernel<4,bspln3,0>(a0FF2);
          real t01004#1 = Dot<4>(v00FCF,hx0FEF);
          real t11005#1 = Dot<4>(v10FD0,hx0FEF);
          real t21006#1 = Dot<4>(v20FD1,hx0FEF);
          real t31007#1 = Dot<4>(v30FD2,hx0FEF);
          real4 tv1003#1 = <real4>[t01004,t11005,t21006,t31007];
          real _t0FC9#1 = Dot<4>(hy0FF0,tv1003);
          real2 x1047#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0608B0);
          real2 nd1049#2 = Floor<2>(x1047);
          real2 f1048#2 = Sub<real2>(x1047,nd1049);
          int{2} n104A#8 = RealToInt<2>(nd1049);
          int t21067#1 = Index<int{2},0>(n104A);
          int ix1065#4 = Add<int>(t10FE9,t21067);
          int t2106A#4 = Index<int{2},1>(n104A);
          int iy1068#1 = Add<int>(t10FE9,t2106A);
          addr(IMAGE2D<int>) a106B#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1065,iy1068);
          real4 v0104C#1 = LoadVoxels<IMAGE2D<int>,4>(a106B);
          int iy1061#1 = Add<int>(_t0926,t2106A);
          addr(IMAGE2D<int>) a1064#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1065,iy1061);
          real4 v1104D#1 = LoadVoxels<IMAGE2D<int>,4>(a1064);
          int iy105A#1 = Add<int>(_t092A,t2106A);
          addr(IMAGE2D<int>) a105D#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1065,iy105A);
          real4 v2104E#1 = LoadVoxels<IMAGE2D<int>,4>(a105D);
          int iy1053#1 = Add<int>(_t0902,t2106A);
          addr(IMAGE2D<int>) a1056#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1065,iy1053);
          real4 v3104F#1 = LoadVoxels<IMAGE2D<int>,4>(a1056);
          real fy1077#5 = Index<real2,1>(f1048);
          real t3107C#1 = Add<real>(fy1077,_t08FE);
          real t1107A#1 = Sub<real>(fy1077,_t08FE);
          real t01079#1 = Sub<real>(fy1077,_t0900);
          real4 a1078#1 = <real4>[t3107C,fy1077,t1107A,t01079];
          real4 hy106D#1 = EvalKernel<4,bspln3,0>(a1078);
          real fx106E#5 = Index<real2,0>(f1048);
          real t31073#1 = Add<real>(fx106E,_t08FE);
          real t11071#1 = Sub<real>(fx106E,_t08FE);
          real t01070#1 = Sub<real>(fx106E,_t0900);
          real4 a106F#1 = <real4>[t31073,fx106E,t11071,t01070];
          real4 hx106C#4 = EvalKernel<4,bspln3,0>(a106F);
          real t01081#1 = Dot<4>(v0104C,hx106C);
          real t11082#1 = Dot<4>(v1104D,hx106C);
          real t21083#1 = Dot<4>(v2104E,hx106C);
          real t31084#1 = Dot<4>(v3104F,hx106C);
          real4 tv1080#1 = <real4>[t01081,t11082,t21083,t31084];
          real _t1046#1 = Dot<4>(hy106D,tv1080);
          real _t10C3#2 = Sub<real>(_t0FC9,_t1046);
          real _t10C5#1 = Mul<real>(_t10C3,_t10C3);
          real score10C7#1 = Add<real>(score0FB2,_t10C5);
          goto JOIN10CA
        JOIN10CA:  preds = [ASSIGN10C8,COND0FC8]
          real score10C9#2 = phi(score10C7,score0FB2)
          if _t0D8E then goto JOIN10CC else goto JOIN10CC
        JOIN10CC:  preds = [COND10CB]
          if _t0D97 then goto ASSIGN1A7E else goto JOIN11CF
        ASSIGN1A7E:  preds = [COND10CD]
          real2 nd10D1#2 = Floor<2>(x0D8F);
          real2 f10D0#2 = Sub<real2>(x0D8F,nd10D1);
          int{2} n10D2#8 = RealToInt<2>(nd10D1);
          int t110EE#4 = -1;
          int t210EF#1 = Index<int{2},0>(n10D2);
          int ix10ED#4 = Add<int>(t110EE,t210EF);
          int t210F2#4 = Index<int{2},1>(n10D2);
          int iy10F0#1 = Add<int>(t110EE,t210F2);
          addr(IMAGE2D<float>) a10F3#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix10ED,iy10F0);
          real4 v010D4#1 = LoadVoxels<IMAGE2D<float>,4>(a10F3);
          int iy10E9#1 = Add<int>(_t0926,t210F2);
          addr(IMAGE2D<float>) a10EC#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix10ED,iy10E9);
          real4 v110D5#1 = LoadVoxels<IMAGE2D<float>,4>(a10EC);
          int iy10E2#1 = Add<int>(_t092A,t210F2);
          addr(IMAGE2D<float>) a10E5#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix10ED,iy10E2);
          real4 v210D6#1 = LoadVoxels<IMAGE2D<float>,4>(a10E5);
          int iy10DB#1 = Add<int>(_t0902,t210F2);
          addr(IMAGE2D<float>) a10DE#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix10ED,iy10DB);
          real4 v310D7#1 = LoadVoxels<IMAGE2D<float>,4>(a10DE);
          real fy10FF#5 = Index<real2,1>(f10D0);
          real t31104#1 = Add<real>(fy10FF,_t08FE);
          real t11102#1 = Sub<real>(fy10FF,_t08FE);
          real t01101#1 = Sub<real>(fy10FF,_t0900);
          real4 a1100#1 = <real4>[t31104,fy10FF,t11102,t01101];
          real4 hy10F5#1 = EvalKernel<4,bspln3,0>(a1100);
          real fx10F6#5 = Index<real2,0>(f10D0);
          real t310FB#1 = Add<real>(fx10F6,_t08FE);
          real t110F9#1 = Sub<real>(fx10F6,_t08FE);
          real t010F8#1 = Sub<real>(fx10F6,_t0900);
          real4 a10F7#1 = <real4>[t310FB,fx10F6,t110F9,t010F8];
          real4 hx10F4#4 = EvalKernel<4,bspln3,0>(a10F7);
          real t01109#1 = Dot<4>(v010D4,hx10F4);
          real t1110A#1 = Dot<4>(v110D5,hx10F4);
          real t2110B#1 = Dot<4>(v210D6,hx10F4);
          real t3110C#1 = Dot<4>(v310D7,hx10F4);
          real4 tv1108#1 = <real4>[t01109,t1110A,t2110B,t3110C];
          real _t10CE#1 = Dot<4>(hy10F5,tv1108);
          real2 x114C#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0408AC);
          real2 nd114E#2 = Floor<2>(x114C);
          real2 f114D#2 = Sub<real2>(x114C,nd114E);
          int{2} n114F#8 = RealToInt<2>(nd114E);
          int t2116C#1 = Index<int{2},0>(n114F);
          int ix116A#4 = Add<int>(t110EE,t2116C);
          int t2116F#4 = Index<int{2},1>(n114F);
          int iy116D#1 = Add<int>(t110EE,t2116F);
          addr(IMAGE2D<int>) a1170#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix116A,iy116D);
          real4 v01151#1 = LoadVoxels<IMAGE2D<int>,4>(a1170);
          int iy1166#1 = Add<int>(_t0926,t2116F);
          addr(IMAGE2D<int>) a1169#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix116A,iy1166);
          real4 v11152#1 = LoadVoxels<IMAGE2D<int>,4>(a1169);
          int iy115F#1 = Add<int>(_t092A,t2116F);
          addr(IMAGE2D<int>) a1162#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix116A,iy115F);
          real4 v21153#1 = LoadVoxels<IMAGE2D<int>,4>(a1162);
          int iy1158#1 = Add<int>(_t0902,t2116F);
          addr(IMAGE2D<int>) a115B#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix116A,iy1158);
          real4 v31154#1 = LoadVoxels<IMAGE2D<int>,4>(a115B);
          real fy117C#5 = Index<real2,1>(f114D);
          real t31181#1 = Add<real>(fy117C,_t08FE);
          real t1117F#1 = Sub<real>(fy117C,_t08FE);
          real t0117E#1 = Sub<real>(fy117C,_t0900);
          real4 a117D#1 = <real4>[t31181,fy117C,t1117F,t0117E];
          real4 hy1172#1 = EvalKernel<4,bspln3,0>(a117D);
          real fx1173#5 = Index<real2,0>(f114D);
          real t31178#1 = Add<real>(fx1173,_t08FE);
          real t11176#1 = Sub<real>(fx1173,_t08FE);
          real t01175#1 = Sub<real>(fx1173,_t0900);
          real4 a1174#1 = <real4>[t31178,fx1173,t11176,t01175];
          real4 hx1171#4 = EvalKernel<4,bspln3,0>(a1174);
          real t01186#1 = Dot<4>(v01151,hx1171);
          real t11187#1 = Dot<4>(v11152,hx1171);
          real t21188#1 = Dot<4>(v21153,hx1171);
          real t31189#1 = Dot<4>(v31154,hx1171);
          real4 tv1185#1 = <real4>[t01186,t11187,t21188,t31189];
          real _t114B#1 = Dot<4>(hy1172,tv1185);
          real _t11C8#2 = Sub<real>(_t10CE,_t114B);
          real _t11CA#1 = Mul<real>(_t11C8,_t11C8);
          real score11CC#1 = Add<real>(score10C9,_t11CA);
          goto JOIN11CF
        JOIN11CF:  preds = [ASSIGN11CD,COND10CD]
          real score11CE#2 = phi(score11CC,score10C9)
          real _t11D0#1 = Dot<2>(r00918,v0808B2);
          real _t11D2#1 = Dot<2>(r1091E,v0808B2);
          real2 _t11D4#1 = <real2>[_t11D0,_t11D2];
          real2 pos11D6#2 = Add<real2>(_t11D4,_t092E);
          real2 x11D9#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos11D6);
          bool _t11D8#1 = Inside<IMAGE2D<float>,2>(x11D9,_t089A);
          if _t11D8 then goto ASSIGN11DF else goto ASSIGN197D
        ASSIGN11DF:  preds = [COND11DC]
          real2 x11DE#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0808B2);
          bool _t11DD#1 = Inside<IMAGE2D<int>,2>(x11DE,_t0896);
          goto JOIN11E3
        JOIN11E3:  preds = [ASSIGN11E0,ASSIGN197D]
          bool _t11E1#1 = phi(_t11DD,_t11E2)
          if _t11E1 then goto ASSIGN1A9F else goto JOIN12E6
        ASSIGN1A9F:  preds = [COND11E4]
          real2 nd11E8#2 = Floor<2>(x11D9);
          real2 f11E7#2 = Sub<real2>(x11D9,nd11E8);
          int{2} n11E9#8 = RealToInt<2>(nd11E8);
          int t11205#4 = -1;
          int t21206#1 = Index<int{2},0>(n11E9);
          int ix1204#4 = Add<int>(t11205,t21206);
          int t21209#4 = Index<int{2},1>(n11E9);
          int iy1207#1 = Add<int>(t11205,t21209);
          addr(IMAGE2D<float>) a120A#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1204,iy1207);
          real4 v011EB#1 = LoadVoxels<IMAGE2D<float>,4>(a120A);
          int iy1200#1 = Add<int>(_t0926,t21209);
          addr(IMAGE2D<float>) a1203#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1204,iy1200);
          real4 v111EC#1 = LoadVoxels<IMAGE2D<float>,4>(a1203);
          int iy11F9#1 = Add<int>(_t092A,t21209);
          addr(IMAGE2D<float>) a11FC#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1204,iy11F9);
          real4 v211ED#1 = LoadVoxels<IMAGE2D<float>,4>(a11FC);
          int iy11F2#1 = Add<int>(_t0902,t21209);
          addr(IMAGE2D<float>) a11F5#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1204,iy11F2);
          real4 v311EE#1 = LoadVoxels<IMAGE2D<float>,4>(a11F5);
          real fy1216#5 = Index<real2,1>(f11E7);
          real t3121B#1 = Add<real>(fy1216,_t08FE);
          real t11219#1 = Sub<real>(fy1216,_t08FE);
          real t01218#1 = Sub<real>(fy1216,_t0900);
          real4 a1217#1 = <real4>[t3121B,fy1216,t11219,t01218];
          real4 hy120C#1 = EvalKernel<4,bspln3,0>(a1217);
          real fx120D#5 = Index<real2,0>(f11E7);
          real t31212#1 = Add<real>(fx120D,_t08FE);
          real t11210#1 = Sub<real>(fx120D,_t08FE);
          real t0120F#1 = Sub<real>(fx120D,_t0900);
          real4 a120E#1 = <real4>[t31212,fx120D,t11210,t0120F];
          real4 hx120B#4 = EvalKernel<4,bspln3,0>(a120E);
          real t01220#1 = Dot<4>(v011EB,hx120B);
          real t11221#1 = Dot<4>(v111EC,hx120B);
          real t21222#1 = Dot<4>(v211ED,hx120B);
          real t31223#1 = Dot<4>(v311EE,hx120B);
          real4 tv121F#1 = <real4>[t01220,t11221,t21222,t31223];
          real _t11E5#1 = Dot<4>(hy120C,tv121F);
          real2 x1263#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0808B2);
          real2 nd1265#2 = Floor<2>(x1263);
          real2 f1264#2 = Sub<real2>(x1263,nd1265);
          int{2} n1266#8 = RealToInt<2>(nd1265);
          int t21283#1 = Index<int{2},0>(n1266);
          int ix1281#4 = Add<int>(t11205,t21283);
          int t21286#4 = Index<int{2},1>(n1266);
          int iy1284#1 = Add<int>(t11205,t21286);
          addr(IMAGE2D<int>) a1287#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1281,iy1284);
          real4 v01268#1 = LoadVoxels<IMAGE2D<int>,4>(a1287);
          int iy127D#1 = Add<int>(_t0926,t21286);
          addr(IMAGE2D<int>) a1280#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1281,iy127D);
          real4 v11269#1 = LoadVoxels<IMAGE2D<int>,4>(a1280);
          int iy1276#1 = Add<int>(_t092A,t21286);
          addr(IMAGE2D<int>) a1279#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1281,iy1276);
          real4 v2126A#1 = LoadVoxels<IMAGE2D<int>,4>(a1279);
          int iy126F#1 = Add<int>(_t0902,t21286);
          addr(IMAGE2D<int>) a1272#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1281,iy126F);
          real4 v3126B#1 = LoadVoxels<IMAGE2D<int>,4>(a1272);
          real fy1293#5 = Index<real2,1>(f1264);
          real t31298#1 = Add<real>(fy1293,_t08FE);
          real t11296#1 = Sub<real>(fy1293,_t08FE);
          real t01295#1 = Sub<real>(fy1293,_t0900);
          real4 a1294#1 = <real4>[t31298,fy1293,t11296,t01295];
          real4 hy1289#1 = EvalKernel<4,bspln3,0>(a1294);
          real fx128A#5 = Index<real2,0>(f1264);
          real t3128F#1 = Add<real>(fx128A,_t08FE);
          real t1128D#1 = Sub<real>(fx128A,_t08FE);
          real t0128C#1 = Sub<real>(fx128A,_t0900);
          real4 a128B#1 = <real4>[t3128F,fx128A,t1128D,t0128C];
          real4 hx1288#4 = EvalKernel<4,bspln3,0>(a128B);
          real t0129D#1 = Dot<4>(v01268,hx1288);
          real t1129E#1 = Dot<4>(v11269,hx1288);
          real t2129F#1 = Dot<4>(v2126A,hx1288);
          real t312A0#1 = Dot<4>(v3126B,hx1288);
          real4 tv129C#1 = <real4>[t0129D,t1129E,t2129F,t312A0];
          real _t1262#1 = Dot<4>(hy1289,tv129C);
          real _t12DF#2 = Sub<real>(_t11E5,_t1262);
          real _t12E1#1 = Mul<real>(_t12DF,_t12DF);
          real score12E3#1 = Add<real>(score11CE,_t12E1);
          goto JOIN12E6
        JOIN12E6:  preds = [ASSIGN12E4,COND11E4]
          real score12E5#2 = phi(score12E3,score11CE)
          real _t12E7#1 = Dot<2>(r00918,v0908B4);
          real _t12E9#1 = Dot<2>(r1091E,v0908B4);
          real2 _t12EB#1 = <real2>[_t12E7,_t12E9];
          real2 pos12ED#2 = Add<real2>(_t12EB,_t092E);
          real2 x12F0#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos12ED);
          bool _t12EF#1 = Inside<IMAGE2D<float>,2>(x12F0,_t089A);
          if _t12EF then goto ASSIGN12F6 else goto ASSIGN197C
        ASSIGN12F6:  preds = [COND12F3]
          real2 x12F5#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0908B4);
          bool _t12F4#1 = Inside<IMAGE2D<int>,2>(x12F5,_t0896);
          goto JOIN12FA
        JOIN12FA:  preds = [ASSIGN12F7,ASSIGN197C]
          bool _t12F8#1 = phi(_t12F4,_t12F9)
          if _t12F8 then goto ASSIGN1AC0 else goto JOIN13FD
        ASSIGN1AC0:  preds = [COND12FB]
          real2 nd12FF#2 = Floor<2>(x12F0);
          real2 f12FE#2 = Sub<real2>(x12F0,nd12FF);
          int{2} n1300#8 = RealToInt<2>(nd12FF);
          int t1131C#4 = -1;
          int t2131D#1 = Index<int{2},0>(n1300);
          int ix131B#4 = Add<int>(t1131C,t2131D);
          int t21320#4 = Index<int{2},1>(n1300);
          int iy131E#1 = Add<int>(t1131C,t21320);
          addr(IMAGE2D<float>) a1321#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix131B,iy131E);
          real4 v01302#1 = LoadVoxels<IMAGE2D<float>,4>(a1321);
          int iy1317#1 = Add<int>(_t0926,t21320);
          addr(IMAGE2D<float>) a131A#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix131B,iy1317);
          real4 v11303#1 = LoadVoxels<IMAGE2D<float>,4>(a131A);
          int iy1310#1 = Add<int>(_t092A,t21320);
          addr(IMAGE2D<float>) a1313#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix131B,iy1310);
          real4 v21304#1 = LoadVoxels<IMAGE2D<float>,4>(a1313);
          int iy1309#1 = Add<int>(_t0902,t21320);
          addr(IMAGE2D<float>) a130C#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix131B,iy1309);
          real4 v31305#1 = LoadVoxels<IMAGE2D<float>,4>(a130C);
          real fy132D#5 = Index<real2,1>(f12FE);
          real t31332#1 = Add<real>(fy132D,_t08FE);
          real t11330#1 = Sub<real>(fy132D,_t08FE);
          real t0132F#1 = Sub<real>(fy132D,_t0900);
          real4 a132E#1 = <real4>[t31332,fy132D,t11330,t0132F];
          real4 hy1323#1 = EvalKernel<4,bspln3,0>(a132E);
          real fx1324#5 = Index<real2,0>(f12FE);
          real t31329#1 = Add<real>(fx1324,_t08FE);
          real t11327#1 = Sub<real>(fx1324,_t08FE);
          real t01326#1 = Sub<real>(fx1324,_t0900);
          real4 a1325#1 = <real4>[t31329,fx1324,t11327,t01326];
          real4 hx1322#4 = EvalKernel<4,bspln3,0>(a1325);
          real t01337#1 = Dot<4>(v01302,hx1322);
          real t11338#1 = Dot<4>(v11303,hx1322);
          real t21339#1 = Dot<4>(v21304,hx1322);
          real t3133A#1 = Dot<4>(v31305,hx1322);
          real4 tv1336#1 = <real4>[t01337,t11338,t21339,t3133A];
          real _t12FC#1 = Dot<4>(hy1323,tv1336);
          real2 x137A#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v0908B4);
          real2 nd137C#2 = Floor<2>(x137A);
          real2 f137B#2 = Sub<real2>(x137A,nd137C);
          int{2} n137D#8 = RealToInt<2>(nd137C);
          int t2139A#1 = Index<int{2},0>(n137D);
          int ix1398#4 = Add<int>(t1131C,t2139A);
          int t2139D#4 = Index<int{2},1>(n137D);
          int iy139B#1 = Add<int>(t1131C,t2139D);
          addr(IMAGE2D<int>) a139E#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1398,iy139B);
          real4 v0137F#1 = LoadVoxels<IMAGE2D<int>,4>(a139E);
          int iy1394#1 = Add<int>(_t0926,t2139D);
          addr(IMAGE2D<int>) a1397#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1398,iy1394);
          real4 v11380#1 = LoadVoxels<IMAGE2D<int>,4>(a1397);
          int iy138D#1 = Add<int>(_t092A,t2139D);
          addr(IMAGE2D<int>) a1390#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1398,iy138D);
          real4 v21381#1 = LoadVoxels<IMAGE2D<int>,4>(a1390);
          int iy1386#1 = Add<int>(_t0902,t2139D);
          addr(IMAGE2D<int>) a1389#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix1398,iy1386);
          real4 v31382#1 = LoadVoxels<IMAGE2D<int>,4>(a1389);
          real fy13AA#5 = Index<real2,1>(f137B);
          real t313AF#1 = Add<real>(fy13AA,_t08FE);
          real t113AD#1 = Sub<real>(fy13AA,_t08FE);
          real t013AC#1 = Sub<real>(fy13AA,_t0900);
          real4 a13AB#1 = <real4>[t313AF,fy13AA,t113AD,t013AC];
          real4 hy13A0#1 = EvalKernel<4,bspln3,0>(a13AB);
          real fx13A1#5 = Index<real2,0>(f137B);
          real t313A6#1 = Add<real>(fx13A1,_t08FE);
          real t113A4#1 = Sub<real>(fx13A1,_t08FE);
          real t013A3#1 = Sub<real>(fx13A1,_t0900);
          real4 a13A2#1 = <real4>[t313A6,fx13A1,t113A4,t013A3];
          real4 hx139F#4 = EvalKernel<4,bspln3,0>(a13A2);
          real t013B4#1 = Dot<4>(v0137F,hx139F);
          real t113B5#1 = Dot<4>(v11380,hx139F);
          real t213B6#1 = Dot<4>(v21381,hx139F);
          real t313B7#1 = Dot<4>(v31382,hx139F);
          real4 tv13B3#1 = <real4>[t013B4,t113B5,t213B6,t313B7];
          real _t1379#1 = Dot<4>(hy13A0,tv13B3);
          real _t13F6#2 = Sub<real>(_t12FC,_t1379);
          real _t13F8#1 = Mul<real>(_t13F6,_t13F6);
          real score13FA#1 = Add<real>(score12E5,_t13F8);
          goto JOIN13FD
        JOIN13FD:  preds = [ASSIGN13FB,COND12FB]
          real score13FC#2 = phi(score13FA,score12E5)
          real _t13FE#1 = Dot<2>(r00918,v1008B6);
          real _t1400#1 = Dot<2>(r1091E,v1008B6);
          real2 _t1402#1 = <real2>[_t13FE,_t1400];
          real2 pos1404#2 = Add<real2>(_t1402,_t092E);
          real2 x1407#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1404);
          bool _t1406#1 = Inside<IMAGE2D<float>,2>(x1407,_t089A);
          if _t1406 then goto ASSIGN140D else goto ASSIGN197B
        ASSIGN140D:  preds = [COND140A]
          real2 x140C#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1008B6);
          bool _t140B#1 = Inside<IMAGE2D<int>,2>(x140C,_t0896);
          goto JOIN1411
        JOIN1411:  preds = [ASSIGN140E,ASSIGN197B]
          bool _t140F#1 = phi(_t140B,_t1410)
          if _t140F then goto ASSIGN1AE1 else goto JOIN1514
        ASSIGN1AE1:  preds = [COND1412]
          real2 nd1416#2 = Floor<2>(x1407);
          real2 f1415#2 = Sub<real2>(x1407,nd1416);
          int{2} n1417#8 = RealToInt<2>(nd1416);
          int t11433#4 = -1;
          int t21434#1 = Index<int{2},0>(n1417);
          int ix1432#4 = Add<int>(t11433,t21434);
          int t21437#4 = Index<int{2},1>(n1417);
          int iy1435#1 = Add<int>(t11433,t21437);
          addr(IMAGE2D<float>) a1438#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1432,iy1435);
          real4 v01419#1 = LoadVoxels<IMAGE2D<float>,4>(a1438);
          int iy142E#1 = Add<int>(_t0926,t21437);
          addr(IMAGE2D<float>) a1431#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1432,iy142E);
          real4 v1141A#1 = LoadVoxels<IMAGE2D<float>,4>(a1431);
          int iy1427#1 = Add<int>(_t092A,t21437);
          addr(IMAGE2D<float>) a142A#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1432,iy1427);
          real4 v2141B#1 = LoadVoxels<IMAGE2D<float>,4>(a142A);
          int iy1420#1 = Add<int>(_t0902,t21437);
          addr(IMAGE2D<float>) a1423#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1432,iy1420);
          real4 v3141C#1 = LoadVoxels<IMAGE2D<float>,4>(a1423);
          real fy1444#5 = Index<real2,1>(f1415);
          real t31449#1 = Add<real>(fy1444,_t08FE);
          real t11447#1 = Sub<real>(fy1444,_t08FE);
          real t01446#1 = Sub<real>(fy1444,_t0900);
          real4 a1445#1 = <real4>[t31449,fy1444,t11447,t01446];
          real4 hy143A#1 = EvalKernel<4,bspln3,0>(a1445);
          real fx143B#5 = Index<real2,0>(f1415);
          real t31440#1 = Add<real>(fx143B,_t08FE);
          real t1143E#1 = Sub<real>(fx143B,_t08FE);
          real t0143D#1 = Sub<real>(fx143B,_t0900);
          real4 a143C#1 = <real4>[t31440,fx143B,t1143E,t0143D];
          real4 hx1439#4 = EvalKernel<4,bspln3,0>(a143C);
          real t0144E#1 = Dot<4>(v01419,hx1439);
          real t1144F#1 = Dot<4>(v1141A,hx1439);
          real t21450#1 = Dot<4>(v2141B,hx1439);
          real t31451#1 = Dot<4>(v3141C,hx1439);
          real4 tv144D#1 = <real4>[t0144E,t1144F,t21450,t31451];
          real _t1413#1 = Dot<4>(hy143A,tv144D);
          real2 x1491#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1008B6);
          real2 nd1493#2 = Floor<2>(x1491);
          real2 f1492#2 = Sub<real2>(x1491,nd1493);
          int{2} n1494#8 = RealToInt<2>(nd1493);
          int t214B1#1 = Index<int{2},0>(n1494);
          int ix14AF#4 = Add<int>(t11433,t214B1);
          int t214B4#4 = Index<int{2},1>(n1494);
          int iy14B2#1 = Add<int>(t11433,t214B4);
          addr(IMAGE2D<int>) a14B5#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix14AF,iy14B2);
          real4 v01496#1 = LoadVoxels<IMAGE2D<int>,4>(a14B5);
          int iy14AB#1 = Add<int>(_t0926,t214B4);
          addr(IMAGE2D<int>) a14AE#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix14AF,iy14AB);
          real4 v11497#1 = LoadVoxels<IMAGE2D<int>,4>(a14AE);
          int iy14A4#1 = Add<int>(_t092A,t214B4);
          addr(IMAGE2D<int>) a14A7#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix14AF,iy14A4);
          real4 v21498#1 = LoadVoxels<IMAGE2D<int>,4>(a14A7);
          int iy149D#1 = Add<int>(_t0902,t214B4);
          addr(IMAGE2D<int>) a14A0#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix14AF,iy149D);
          real4 v31499#1 = LoadVoxels<IMAGE2D<int>,4>(a14A0);
          real fy14C1#5 = Index<real2,1>(f1492);
          real t314C6#1 = Add<real>(fy14C1,_t08FE);
          real t114C4#1 = Sub<real>(fy14C1,_t08FE);
          real t014C3#1 = Sub<real>(fy14C1,_t0900);
          real4 a14C2#1 = <real4>[t314C6,fy14C1,t114C4,t014C3];
          real4 hy14B7#1 = EvalKernel<4,bspln3,0>(a14C2);
          real fx14B8#5 = Index<real2,0>(f1492);
          real t314BD#1 = Add<real>(fx14B8,_t08FE);
          real t114BB#1 = Sub<real>(fx14B8,_t08FE);
          real t014BA#1 = Sub<real>(fx14B8,_t0900);
          real4 a14B9#1 = <real4>[t314BD,fx14B8,t114BB,t014BA];
          real4 hx14B6#4 = EvalKernel<4,bspln3,0>(a14B9);
          real t014CB#1 = Dot<4>(v01496,hx14B6);
          real t114CC#1 = Dot<4>(v11497,hx14B6);
          real t214CD#1 = Dot<4>(v21498,hx14B6);
          real t314CE#1 = Dot<4>(v31499,hx14B6);
          real4 tv14CA#1 = <real4>[t014CB,t114CC,t214CD,t314CE];
          real _t1490#1 = Dot<4>(hy14B7,tv14CA);
          real _t150D#2 = Sub<real>(_t1413,_t1490);
          real _t150F#1 = Mul<real>(_t150D,_t150D);
          real score1511#1 = Add<real>(score13FC,_t150F);
          goto JOIN1514
        JOIN1514:  preds = [ASSIGN1512,COND1412]
          real score1513#2 = phi(score1511,score13FC)
          real _t1515#1 = Dot<2>(r00918,v1108B8);
          real _t1517#1 = Dot<2>(r1091E,v1108B8);
          real2 _t1519#1 = <real2>[_t1515,_t1517];
          real2 pos151B#2 = Add<real2>(_t1519,_t092E);
          real2 x151E#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos151B);
          bool _t151D#1 = Inside<IMAGE2D<float>,2>(x151E,_t089A);
          if _t151D then goto ASSIGN1524 else goto ASSIGN197A
        ASSIGN1524:  preds = [COND1521]
          real2 x1523#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1108B8);
          bool _t1522#1 = Inside<IMAGE2D<int>,2>(x1523,_t0896);
          goto JOIN1528
        JOIN1528:  preds = [ASSIGN1525,ASSIGN197A]
          bool _t1526#1 = phi(_t1522,_t1527)
          if _t1526 then goto ASSIGN1B02 else goto JOIN162B
        ASSIGN1B02:  preds = [COND1529]
          real2 nd152D#2 = Floor<2>(x151E);
          real2 f152C#2 = Sub<real2>(x151E,nd152D);
          int{2} n152E#8 = RealToInt<2>(nd152D);
          int t1154A#4 = -1;
          int t2154B#1 = Index<int{2},0>(n152E);
          int ix1549#4 = Add<int>(t1154A,t2154B);
          int t2154E#4 = Index<int{2},1>(n152E);
          int iy154C#1 = Add<int>(t1154A,t2154E);
          addr(IMAGE2D<float>) a154F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1549,iy154C);
          real4 v01530#1 = LoadVoxels<IMAGE2D<float>,4>(a154F);
          int iy1545#1 = Add<int>(_t0926,t2154E);
          addr(IMAGE2D<float>) a1548#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1549,iy1545);
          real4 v11531#1 = LoadVoxels<IMAGE2D<float>,4>(a1548);
          int iy153E#1 = Add<int>(_t092A,t2154E);
          addr(IMAGE2D<float>) a1541#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1549,iy153E);
          real4 v21532#1 = LoadVoxels<IMAGE2D<float>,4>(a1541);
          int iy1537#1 = Add<int>(_t0902,t2154E);
          addr(IMAGE2D<float>) a153A#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1549,iy1537);
          real4 v31533#1 = LoadVoxels<IMAGE2D<float>,4>(a153A);
          real fy155B#5 = Index<real2,1>(f152C);
          real t31560#1 = Add<real>(fy155B,_t08FE);
          real t1155E#1 = Sub<real>(fy155B,_t08FE);
          real t0155D#1 = Sub<real>(fy155B,_t0900);
          real4 a155C#1 = <real4>[t31560,fy155B,t1155E,t0155D];
          real4 hy1551#1 = EvalKernel<4,bspln3,0>(a155C);
          real fx1552#5 = Index<real2,0>(f152C);
          real t31557#1 = Add<real>(fx1552,_t08FE);
          real t11555#1 = Sub<real>(fx1552,_t08FE);
          real t01554#1 = Sub<real>(fx1552,_t0900);
          real4 a1553#1 = <real4>[t31557,fx1552,t11555,t01554];
          real4 hx1550#4 = EvalKernel<4,bspln3,0>(a1553);
          real t01565#1 = Dot<4>(v01530,hx1550);
          real t11566#1 = Dot<4>(v11531,hx1550);
          real t21567#1 = Dot<4>(v21532,hx1550);
          real t31568#1 = Dot<4>(v31533,hx1550);
          real4 tv1564#1 = <real4>[t01565,t11566,t21567,t31568];
          real _t152A#1 = Dot<4>(hy1551,tv1564);
          real2 x15A8#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1108B8);
          real2 nd15AA#2 = Floor<2>(x15A8);
          real2 f15A9#2 = Sub<real2>(x15A8,nd15AA);
          int{2} n15AB#8 = RealToInt<2>(nd15AA);
          int t215C8#1 = Index<int{2},0>(n15AB);
          int ix15C6#4 = Add<int>(t1154A,t215C8);
          int t215CB#4 = Index<int{2},1>(n15AB);
          int iy15C9#1 = Add<int>(t1154A,t215CB);
          addr(IMAGE2D<int>) a15CC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix15C6,iy15C9);
          real4 v015AD#1 = LoadVoxels<IMAGE2D<int>,4>(a15CC);
          int iy15C2#1 = Add<int>(_t0926,t215CB);
          addr(IMAGE2D<int>) a15C5#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix15C6,iy15C2);
          real4 v115AE#1 = LoadVoxels<IMAGE2D<int>,4>(a15C5);
          int iy15BB#1 = Add<int>(_t092A,t215CB);
          addr(IMAGE2D<int>) a15BE#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix15C6,iy15BB);
          real4 v215AF#1 = LoadVoxels<IMAGE2D<int>,4>(a15BE);
          int iy15B4#1 = Add<int>(_t0902,t215CB);
          addr(IMAGE2D<int>) a15B7#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix15C6,iy15B4);
          real4 v315B0#1 = LoadVoxels<IMAGE2D<int>,4>(a15B7);
          real fy15D8#5 = Index<real2,1>(f15A9);
          real t315DD#1 = Add<real>(fy15D8,_t08FE);
          real t115DB#1 = Sub<real>(fy15D8,_t08FE);
          real t015DA#1 = Sub<real>(fy15D8,_t0900);
          real4 a15D9#1 = <real4>[t315DD,fy15D8,t115DB,t015DA];
          real4 hy15CE#1 = EvalKernel<4,bspln3,0>(a15D9);
          real fx15CF#5 = Index<real2,0>(f15A9);
          real t315D4#1 = Add<real>(fx15CF,_t08FE);
          real t115D2#1 = Sub<real>(fx15CF,_t08FE);
          real t015D1#1 = Sub<real>(fx15CF,_t0900);
          real4 a15D0#1 = <real4>[t315D4,fx15CF,t115D2,t015D1];
          real4 hx15CD#4 = EvalKernel<4,bspln3,0>(a15D0);
          real t015E2#1 = Dot<4>(v015AD,hx15CD);
          real t115E3#1 = Dot<4>(v115AE,hx15CD);
          real t215E4#1 = Dot<4>(v215AF,hx15CD);
          real t315E5#1 = Dot<4>(v315B0,hx15CD);
          real4 tv15E1#1 = <real4>[t015E2,t115E3,t215E4,t315E5];
          real _t15A7#1 = Dot<4>(hy15CE,tv15E1);
          real _t1624#2 = Sub<real>(_t152A,_t15A7);
          real _t1626#1 = Mul<real>(_t1624,_t1624);
          real score1628#1 = Add<real>(score1513,_t1626);
          goto JOIN162B
        JOIN162B:  preds = [ASSIGN1629,COND1529]
          real score162A#2 = phi(score1628,score1513)
          real _t162C#1 = Dot<2>(r00918,v1208BA);
          real _t162E#1 = Dot<2>(r1091E,v1208BA);
          real2 _t1630#1 = <real2>[_t162C,_t162E];
          real2 pos1632#2 = Add<real2>(_t1630,_t092E);
          real2 x1635#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1632);
          bool _t1634#1 = Inside<IMAGE2D<float>,2>(x1635,_t089A);
          if _t1634 then goto ASSIGN163B else goto ASSIGN1979
        ASSIGN163B:  preds = [COND1638]
          real2 x163A#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1208BA);
          bool _t1639#1 = Inside<IMAGE2D<int>,2>(x163A,_t0896);
          goto JOIN163F
        JOIN163F:  preds = [ASSIGN163C,ASSIGN1979]
          bool _t163D#1 = phi(_t1639,_t163E)
          if _t163D then goto ASSIGN1B23 else goto JOIN1742
        ASSIGN1B23:  preds = [COND1640]
          real2 nd1644#2 = Floor<2>(x1635);
          real2 f1643#2 = Sub<real2>(x1635,nd1644);
          int{2} n1645#8 = RealToInt<2>(nd1644);
          int t11661#4 = -1;
          int t21662#1 = Index<int{2},0>(n1645);
          int ix1660#4 = Add<int>(t11661,t21662);
          int t21665#4 = Index<int{2},1>(n1645);
          int iy1663#1 = Add<int>(t11661,t21665);
          addr(IMAGE2D<float>) a1666#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1660,iy1663);
          real4 v01647#1 = LoadVoxels<IMAGE2D<float>,4>(a1666);
          int iy165C#1 = Add<int>(_t0926,t21665);
          addr(IMAGE2D<float>) a165F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1660,iy165C);
          real4 v11648#1 = LoadVoxels<IMAGE2D<float>,4>(a165F);
          int iy1655#1 = Add<int>(_t092A,t21665);
          addr(IMAGE2D<float>) a1658#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1660,iy1655);
          real4 v21649#1 = LoadVoxels<IMAGE2D<float>,4>(a1658);
          int iy164E#1 = Add<int>(_t0902,t21665);
          addr(IMAGE2D<float>) a1651#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1660,iy164E);
          real4 v3164A#1 = LoadVoxels<IMAGE2D<float>,4>(a1651);
          real fy1672#5 = Index<real2,1>(f1643);
          real t31677#1 = Add<real>(fy1672,_t08FE);
          real t11675#1 = Sub<real>(fy1672,_t08FE);
          real t01674#1 = Sub<real>(fy1672,_t0900);
          real4 a1673#1 = <real4>[t31677,fy1672,t11675,t01674];
          real4 hy1668#1 = EvalKernel<4,bspln3,0>(a1673);
          real fx1669#5 = Index<real2,0>(f1643);
          real t3166E#1 = Add<real>(fx1669,_t08FE);
          real t1166C#1 = Sub<real>(fx1669,_t08FE);
          real t0166B#1 = Sub<real>(fx1669,_t0900);
          real4 a166A#1 = <real4>[t3166E,fx1669,t1166C,t0166B];
          real4 hx1667#4 = EvalKernel<4,bspln3,0>(a166A);
          real t0167C#1 = Dot<4>(v01647,hx1667);
          real t1167D#1 = Dot<4>(v11648,hx1667);
          real t2167E#1 = Dot<4>(v21649,hx1667);
          real t3167F#1 = Dot<4>(v3164A,hx1667);
          real4 tv167B#1 = <real4>[t0167C,t1167D,t2167E,t3167F];
          real _t1641#1 = Dot<4>(hy1668,tv167B);
          real2 x16BF#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1208BA);
          real2 nd16C1#2 = Floor<2>(x16BF);
          real2 f16C0#2 = Sub<real2>(x16BF,nd16C1);
          int{2} n16C2#8 = RealToInt<2>(nd16C1);
          int t216DF#1 = Index<int{2},0>(n16C2);
          int ix16DD#4 = Add<int>(t11661,t216DF);
          int t216E2#4 = Index<int{2},1>(n16C2);
          int iy16E0#1 = Add<int>(t11661,t216E2);
          addr(IMAGE2D<int>) a16E3#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix16DD,iy16E0);
          real4 v016C4#1 = LoadVoxels<IMAGE2D<int>,4>(a16E3);
          int iy16D9#1 = Add<int>(_t0926,t216E2);
          addr(IMAGE2D<int>) a16DC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix16DD,iy16D9);
          real4 v116C5#1 = LoadVoxels<IMAGE2D<int>,4>(a16DC);
          int iy16D2#1 = Add<int>(_t092A,t216E2);
          addr(IMAGE2D<int>) a16D5#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix16DD,iy16D2);
          real4 v216C6#1 = LoadVoxels<IMAGE2D<int>,4>(a16D5);
          int iy16CB#1 = Add<int>(_t0902,t216E2);
          addr(IMAGE2D<int>) a16CE#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix16DD,iy16CB);
          real4 v316C7#1 = LoadVoxels<IMAGE2D<int>,4>(a16CE);
          real fy16EF#5 = Index<real2,1>(f16C0);
          real t316F4#1 = Add<real>(fy16EF,_t08FE);
          real t116F2#1 = Sub<real>(fy16EF,_t08FE);
          real t016F1#1 = Sub<real>(fy16EF,_t0900);
          real4 a16F0#1 = <real4>[t316F4,fy16EF,t116F2,t016F1];
          real4 hy16E5#1 = EvalKernel<4,bspln3,0>(a16F0);
          real fx16E6#5 = Index<real2,0>(f16C0);
          real t316EB#1 = Add<real>(fx16E6,_t08FE);
          real t116E9#1 = Sub<real>(fx16E6,_t08FE);
          real t016E8#1 = Sub<real>(fx16E6,_t0900);
          real4 a16E7#1 = <real4>[t316EB,fx16E6,t116E9,t016E8];
          real4 hx16E4#4 = EvalKernel<4,bspln3,0>(a16E7);
          real t016F9#1 = Dot<4>(v016C4,hx16E4);
          real t116FA#1 = Dot<4>(v116C5,hx16E4);
          real t216FB#1 = Dot<4>(v216C6,hx16E4);
          real t316FC#1 = Dot<4>(v316C7,hx16E4);
          real4 tv16F8#1 = <real4>[t016F9,t116FA,t216FB,t316FC];
          real _t16BE#1 = Dot<4>(hy16E5,tv16F8);
          real _t173B#2 = Sub<real>(_t1641,_t16BE);
          real _t173D#1 = Mul<real>(_t173B,_t173B);
          real score173F#1 = Add<real>(score162A,_t173D);
          goto JOIN1742
        JOIN1742:  preds = [ASSIGN1740,COND1640]
          real score1741#2 = phi(score173F,score162A)
          real _t1743#1 = Dot<2>(r00918,v1308BC);
          real _t1745#1 = Dot<2>(r1091E,v1308BC);
          real2 _t1747#1 = <real2>[_t1743,_t1745];
          real2 pos1749#2 = Add<real2>(_t1747,_t092E);
          real2 x174C#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1749);
          bool _t174B#1 = Inside<IMAGE2D<float>,2>(x174C,_t089A);
          if _t174B then goto ASSIGN1752 else goto ASSIGN1978
        ASSIGN1752:  preds = [COND174F]
          real2 x1751#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1308BC);
          bool _t1750#1 = Inside<IMAGE2D<int>,2>(x1751,_t0896);
          goto JOIN1756
        JOIN1756:  preds = [ASSIGN1753,ASSIGN1978]
          bool _t1754#1 = phi(_t1750,_t1755)
          if _t1754 then goto ASSIGN1B44 else goto JOIN1859
        ASSIGN1B44:  preds = [COND1757]
          real2 nd175B#2 = Floor<2>(x174C);
          real2 f175A#2 = Sub<real2>(x174C,nd175B);
          int{2} n175C#8 = RealToInt<2>(nd175B);
          int t11778#4 = -1;
          int t21779#1 = Index<int{2},0>(n175C);
          int ix1777#4 = Add<int>(t11778,t21779);
          int t2177C#4 = Index<int{2},1>(n175C);
          int iy177A#1 = Add<int>(t11778,t2177C);
          addr(IMAGE2D<float>) a177D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1777,iy177A);
          real4 v0175E#1 = LoadVoxels<IMAGE2D<float>,4>(a177D);
          int iy1773#1 = Add<int>(_t0926,t2177C);
          addr(IMAGE2D<float>) a1776#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1777,iy1773);
          real4 v1175F#1 = LoadVoxels<IMAGE2D<float>,4>(a1776);
          int iy176C#1 = Add<int>(_t092A,t2177C);
          addr(IMAGE2D<float>) a176F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1777,iy176C);
          real4 v21760#1 = LoadVoxels<IMAGE2D<float>,4>(a176F);
          int iy1765#1 = Add<int>(_t0902,t2177C);
          addr(IMAGE2D<float>) a1768#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix1777,iy1765);
          real4 v31761#1 = LoadVoxels<IMAGE2D<float>,4>(a1768);
          real fy1789#5 = Index<real2,1>(f175A);
          real t3178E#1 = Add<real>(fy1789,_t08FE);
          real t1178C#1 = Sub<real>(fy1789,_t08FE);
          real t0178B#1 = Sub<real>(fy1789,_t0900);
          real4 a178A#1 = <real4>[t3178E,fy1789,t1178C,t0178B];
          real4 hy177F#1 = EvalKernel<4,bspln3,0>(a178A);
          real fx1780#5 = Index<real2,0>(f175A);
          real t31785#1 = Add<real>(fx1780,_t08FE);
          real t11783#1 = Sub<real>(fx1780,_t08FE);
          real t01782#1 = Sub<real>(fx1780,_t0900);
          real4 a1781#1 = <real4>[t31785,fx1780,t11783,t01782];
          real4 hx177E#4 = EvalKernel<4,bspln3,0>(a1781);
          real t01793#1 = Dot<4>(v0175E,hx177E);
          real t11794#1 = Dot<4>(v1175F,hx177E);
          real t21795#1 = Dot<4>(v21760,hx177E);
          real t31796#1 = Dot<4>(v31761,hx177E);
          real4 tv1792#1 = <real4>[t01793,t11794,t21795,t31796];
          real _t1758#1 = Dot<4>(hy177F,tv1792);
          real2 x17D6#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1308BC);
          real2 nd17D8#2 = Floor<2>(x17D6);
          real2 f17D7#2 = Sub<real2>(x17D6,nd17D8);
          int{2} n17D9#8 = RealToInt<2>(nd17D8);
          int t217F6#1 = Index<int{2},0>(n17D9);
          int ix17F4#4 = Add<int>(t11778,t217F6);
          int t217F9#4 = Index<int{2},1>(n17D9);
          int iy17F7#1 = Add<int>(t11778,t217F9);
          addr(IMAGE2D<int>) a17FA#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix17F4,iy17F7);
          real4 v017DB#1 = LoadVoxels<IMAGE2D<int>,4>(a17FA);
          int iy17F0#1 = Add<int>(_t0926,t217F9);
          addr(IMAGE2D<int>) a17F3#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix17F4,iy17F0);
          real4 v117DC#1 = LoadVoxels<IMAGE2D<int>,4>(a17F3);
          int iy17E9#1 = Add<int>(_t092A,t217F9);
          addr(IMAGE2D<int>) a17EC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix17F4,iy17E9);
          real4 v217DD#1 = LoadVoxels<IMAGE2D<int>,4>(a17EC);
          int iy17E2#1 = Add<int>(_t0902,t217F9);
          addr(IMAGE2D<int>) a17E5#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix17F4,iy17E2);
          real4 v317DE#1 = LoadVoxels<IMAGE2D<int>,4>(a17E5);
          real fy1806#5 = Index<real2,1>(f17D7);
          real t3180B#1 = Add<real>(fy1806,_t08FE);
          real t11809#1 = Sub<real>(fy1806,_t08FE);
          real t01808#1 = Sub<real>(fy1806,_t0900);
          real4 a1807#1 = <real4>[t3180B,fy1806,t11809,t01808];
          real4 hy17FC#1 = EvalKernel<4,bspln3,0>(a1807);
          real fx17FD#5 = Index<real2,0>(f17D7);
          real t31802#1 = Add<real>(fx17FD,_t08FE);
          real t11800#1 = Sub<real>(fx17FD,_t08FE);
          real t017FF#1 = Sub<real>(fx17FD,_t0900);
          real4 a17FE#1 = <real4>[t31802,fx17FD,t11800,t017FF];
          real4 hx17FB#4 = EvalKernel<4,bspln3,0>(a17FE);
          real t01810#1 = Dot<4>(v017DB,hx17FB);
          real t11811#1 = Dot<4>(v117DC,hx17FB);
          real t21812#1 = Dot<4>(v217DD,hx17FB);
          real t31813#1 = Dot<4>(v317DE,hx17FB);
          real4 tv180F#1 = <real4>[t01810,t11811,t21812,t31813];
          real _t17D5#1 = Dot<4>(hy17FC,tv180F);
          real _t1852#2 = Sub<real>(_t1758,_t17D5);
          real _t1854#1 = Mul<real>(_t1852,_t1852);
          real score1856#1 = Add<real>(score1741,_t1854);
          goto JOIN1859
        JOIN1859:  preds = [ASSIGN1857,COND1757]
          real score1858#2 = phi(score1856,score1741)
          real _t185A#1 = Dot<2>(r00918,v1408BE);
          real _t185C#1 = Dot<2>(r1091E,v1408BE);
          real2 _t185E#1 = <real2>[_t185A,_t185C];
          real2 pos1860#3 = Add<real2>(_t185E,_t092E);
          real2 x1863#3 = PosToImgSpace<IMAGE2D<float>>(_t089A,pos1860);
          bool _t1862#1 = Inside<IMAGE2D<float>,2>(x1863,_t089A);
          if _t1862 then goto ASSIGN1869 else goto ASSIGN1977
        ASSIGN1869:  preds = [COND1866]
          real2 x1868#1 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1408BE);
          bool _t1867#1 = Inside<IMAGE2D<int>,2>(x1868,_t0896);
          goto JOIN186D
        JOIN186D:  preds = [ASSIGN186A,ASSIGN1977]
          bool _t186B#1 = phi(_t1867,_t186C)
          if _t186B then goto ASSIGN1B65 else goto JOIN1970
        ASSIGN1B65:  preds = [COND186E]
          real2 nd1872#2 = Floor<2>(x1863);
          real2 f1871#2 = Sub<real2>(x1863,nd1872);
          int{2} n1873#8 = RealToInt<2>(nd1872);
          int t1188F#4 = -1;
          int t21890#1 = Index<int{2},0>(n1873);
          int ix188E#4 = Add<int>(t1188F,t21890);
          int t21893#4 = Index<int{2},1>(n1873);
          int iy1891#1 = Add<int>(t1188F,t21893);
          addr(IMAGE2D<float>) a1894#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix188E,iy1891);
          real4 v01875#1 = LoadVoxels<IMAGE2D<float>,4>(a1894);
          int iy188A#1 = Add<int>(_t0926,t21893);
          addr(IMAGE2D<float>) a188D#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix188E,iy188A);
          real4 v11876#1 = LoadVoxels<IMAGE2D<float>,4>(a188D);
          int iy1883#1 = Add<int>(_t092A,t21893);
          addr(IMAGE2D<float>) a1886#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix188E,iy1883);
          real4 v21877#1 = LoadVoxels<IMAGE2D<float>,4>(a1886);
          int iy187C#1 = Add<int>(_t0902,t21893);
          addr(IMAGE2D<float>) a187F#1 = VoxelAddress<IMAGE2D<float>,0>(_t089A,ix188E,iy187C);
          real4 v31878#1 = LoadVoxels<IMAGE2D<float>,4>(a187F);
          real fy18A0#5 = Index<real2,1>(f1871);
          real t318A5#1 = Add<real>(fy18A0,_t08FE);
          real t118A3#1 = Sub<real>(fy18A0,_t08FE);
          real t018A2#1 = Sub<real>(fy18A0,_t0900);
          real4 a18A1#1 = <real4>[t318A5,fy18A0,t118A3,t018A2];
          real4 hy1896#1 = EvalKernel<4,bspln3,0>(a18A1);
          real fx1897#5 = Index<real2,0>(f1871);
          real t3189C#1 = Add<real>(fx1897,_t08FE);
          real t1189A#1 = Sub<real>(fx1897,_t08FE);
          real t01899#1 = Sub<real>(fx1897,_t0900);
          real4 a1898#1 = <real4>[t3189C,fx1897,t1189A,t01899];
          real4 hx1895#4 = EvalKernel<4,bspln3,0>(a1898);
          real t018AA#1 = Dot<4>(v01875,hx1895);
          real t118AB#1 = Dot<4>(v11876,hx1895);
          real t218AC#1 = Dot<4>(v21877,hx1895);
          real t318AD#1 = Dot<4>(v31878,hx1895);
          real4 tv18A9#1 = <real4>[t018AA,t118AB,t218AC,t318AD];
          real _t186F#1 = Dot<4>(hy1896,tv18A9);
          real2 x18ED#2 = PosToImgSpace<IMAGE2D<int>>(_t0896,v1408BE);
          real2 nd18EF#2 = Floor<2>(x18ED);
          real2 f18EE#2 = Sub<real2>(x18ED,nd18EF);
          int{2} n18F0#8 = RealToInt<2>(nd18EF);
          int t2190D#1 = Index<int{2},0>(n18F0);
          int ix190B#4 = Add<int>(t1188F,t2190D);
          int t21910#4 = Index<int{2},1>(n18F0);
          int iy190E#1 = Add<int>(t1188F,t21910);
          addr(IMAGE2D<int>) a1911#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix190B,iy190E);
          real4 v018F2#1 = LoadVoxels<IMAGE2D<int>,4>(a1911);
          int iy1907#1 = Add<int>(_t0926,t21910);
          addr(IMAGE2D<int>) a190A#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix190B,iy1907);
          real4 v118F3#1 = LoadVoxels<IMAGE2D<int>,4>(a190A);
          int iy1900#1 = Add<int>(_t092A,t21910);
          addr(IMAGE2D<int>) a1903#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix190B,iy1900);
          real4 v218F4#1 = LoadVoxels<IMAGE2D<int>,4>(a1903);
          int iy18F9#1 = Add<int>(_t0902,t21910);
          addr(IMAGE2D<int>) a18FC#1 = VoxelAddress<IMAGE2D<int>,0>(_t0896,ix190B,iy18F9);
          real4 v318F5#1 = LoadVoxels<IMAGE2D<int>,4>(a18FC);
          real fy191D#5 = Index<real2,1>(f18EE);
          real t31922#1 = Add<real>(fy191D,_t08FE);
          real t11920#1 = Sub<real>(fy191D,_t08FE);
          real t0191F#1 = Sub<real>(fy191D,_t0900);
          real4 a191E#1 = <real4>[t31922,fy191D,t11920,t0191F];
          real4 hy1913#1 = EvalKernel<4,bspln3,0>(a191E);
          real fx1914#5 = Index<real2,0>(f18EE);
          real t31919#1 = Add<real>(fx1914,_t08FE);
          real t11917#1 = Sub<real>(fx1914,_t08FE);
          real t01916#1 = Sub<real>(fx1914,_t0900);
          real4 a1915#1 = <real4>[t31919,fx1914,t11917,t01916];
          real4 hx1912#4 = EvalKernel<4,bspln3,0>(a1915);
          real t01927#1 = Dot<4>(v018F2,hx1912);
          real t11928#1 = Dot<4>(v118F3,hx1912);
          real t21929#1 = Dot<4>(v218F4,hx1912);
          real t3192A#1 = Dot<4>(v318F5,hx1912);
          real4 tv1926#1 = <real4>[t01927,t11928,t21929,t3192A];
          real _t18EC#1 = Dot<4>(hy1913,tv1926);
          real _t1969#2 = Sub<real>(_t186F,_t18EC);
          real _t196B#1 = Mul<real>(_t1969,_t1969);
          real score196D#1 = Add<real>(score1858,_t196B);
          goto JOIN1970
        JOIN1970:  preds = [ASSIGN196E,COND186E]
          real score196F#1 = phi(score196D,score1858)
          self.t = t08FA;
          self.score = score196F;
          self.r0 = r00918;
          self.r1 = r1091E;
          self.pos = pos1860;
          stabilize ()
        ASSIGN1977:  preds = [COND1866]
          bool _t186C#1 = false;
          goto JOIN186D
        ASSIGN1978:  preds = [COND174F]
          bool _t1755#1 = false;
          goto JOIN1756
        ASSIGN1979:  preds = [COND1638]
          bool _t163E#1 = false;
          goto JOIN163F
        ASSIGN197A:  preds = [COND1521]
          bool _t1527#1 = false;
          goto JOIN1528
        ASSIGN197B:  preds = [COND140A]
          bool _t1410#1 = false;
          goto JOIN1411
        ASSIGN197C:  preds = [COND12F3]
          bool _t12F9#1 = false;
          goto JOIN12FA
        ASSIGN197D:  preds = [COND11DC]
          bool _t11E2#1 = false;
          goto JOIN11E3
        ASSIGN197E:  preds = [COND0FC0]
          bool _t0FC6#1 = false;
          goto JOIN0FC7
        ASSIGN197F:  preds = [COND0EA9]
          bool _t0EAF#1 = false;
          goto JOIN0EB0
        ASSIGN1980:  preds = [COND0D92]
          bool _t0D98#1 = false;
          goto JOIN0D99
        ASSIGN1981:  preds = [COND0C7B]
          bool _t0C81#1 = false;
          goto JOIN0C82
        ASSIGN1982:  preds = [COND0B64]
          bool _t0B6A#1 = false;
          goto JOIN0B6B
        ASSIGN1983:  preds = [COND0A4D]
          bool _t0A53#1 = false;
          goto JOIN0A54
        ASSIGN1984:  preds = [COND0936]
          bool _t093C#1 = false;
          goto JOIN093D
    end Update
    method Stabilize
        ENTRY1986:  preds = []
          real3 t1987#1 = self.t;
          real score1989#1 = self.score;
          real2 r0198B#1 = self.r0;
          real2 r1198D#1 = self.r1;
          real2 pos198F#1 = self.pos;
          self.t = t1987;
          self.score = score1989;
          self.r0 = r0198B;
          self.r1 = r1198D;
          self.pos = pos198F;
          return ()
    end Stabilize
  end R
#### end program ####
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
++ low-il:redundant-assign
##### LowIL after value numbering ####
## properties
  none
## globals
  global int T1BB3#0
  global int F1BB4#0
  global real2 v001B93#4
  global real2 v011B99#4
  global real2 v021B9B#4
  global real2 v031B9D#4
  global real2 v051BA1#4
  global real2 v061BA3#4
  global real2 v041B9F#5
  global real2 v081BA5#4
  global real2 v091BA7#4
  global real2 v101BA9#4
  global real2 v111BAB#4
  global real2 v121BAD#4
  global real2 v131BAF#4
  global real2 v141BB1#4
  global string _t1B87#1
  global image(IMAGE2D<int>) _t1B89#103
  global int _t1BB5#0
  global string _t1B8B#1
  global image(IMAGE2D<float>) _t1B8D#88
  global real _t1B91#7
  global real _t1B97#7
  global real _t1B8F#7
  global real _t1B95#9
## global initialization
  ENTRY1B86:  preds = []
    string _t1B87#1 = "square-template.nrrd";
    image(IMAGE2D<int>) _t1B89#103 = LoadImage<IMAGE2D<int>>(_t1B87);
    string _t1B8B#1 = "square-rotate.nrrd";
    image(IMAGE2D<float>) _t1B8D#88 = LoadImage<IMAGE2D<float>>(_t1B8B);
    real _t1B8F#7 = 0.5e0;
    real _t1B91#7 = Neg<real>(_t1B8F);
    real2 v001B93#4 = <real2>[_t1B91,_t1B91];
    real _t1B95#9 = 0.15e0;
    real _t1B97#7 = Neg<real>(_t1B95);
    real2 v011B99#4 = <real2>[_t1B91,_t1B97];
    real2 v021B9B#4 = <real2>[_t1B91,_t1B95];
    real2 v031B9D#4 = <real2>[_t1B91,_t1B8F];
    real2 v041B9F#5 = <real2>[_t1B97,_t1B8F];
    real2 v051BA1#4 = <real2>[_t1B97,_t1B97];
    real2 v061BA3#4 = <real2>[_t1B97,_t1B95];
    real2 v081BA5#4 = <real2>[_t1B95,_t1B91];
    real2 v091BA7#4 = <real2>[_t1B95,_t1B97];
    real2 v101BA9#4 = <real2>[_t1B95,_t1B95];
    real2 v111BAB#4 = <real2>[_t1B95,_t1B8F];
    real2 v121BAD#4 = <real2>[_t1B8F,_t1B91];
    real2 v131BAF#4 = <real2>[_t1B8F,_t1B97];
    real2 v141BB1#4 = <real2>[_t1B8F,_t1B95];
    return (T1BB3,F1BB4,v001B93,v011B99,v021B9B,v031B9D,v051BA1,v061BA3,v041B9F,v081BA5,v091BA7,v101BA9,v111BAB,v121BAD,v131BAF,v141BB1,_t1B87,_t1B89,_t1BB5,_t1B8B,_t1B8D,_t1B91,_t1B97,_t1B8F,_t1B95)
## initially
  ARRAY
    ENTRY1BBC:  preds = []
      int _t1BB8#4 = 0;
      int _t1BB9#4 = 60;
      live vars = (_t1BB9,_t1BB8)
    for int i1BB7#1 = _t1BB8 .. _t1BB9
      for int j1BBA#1 = _t1BB8 .. _t1BB9
        for int k1BBB#1 = _t1BB8 .. _t1BB9
          ENTRY1BC0:  preds = []
            live vars = ()
          new R(i1BB7,j1BBA,k1BBB);
## strands
  strand R (int i1BC2#1, int j1BC3#1, int k1BC4#1)
    state: real3 self.t;output real self.score;real2 self.r0;real2 self.r1;real2 self.pos;
      ENTRY1BCA:  preds = []
        real _t1BCB#1 = IntToReal(i1BC2);
        real _t1BCD#3 = 0.60e2;
        real _t1BCF#1 = Div<real>(_t1BCB,_t1BCD);
        real _t1BD1#3 = 0.5e0;
        real _t1BD3#1 = Sub<real>(_t1BCF,_t1BD1);
        real _t1BD5#1 = IntToReal(j1BC3);
        real _t1BD7#1 = Div<real>(_t1BD5,_t1BCD);
        real _t1BD9#1 = Sub<real>(_t1BD7,_t1BD1);
        real _t1BDB#1 = IntToReal(k1BC4);
        real _t1BDD#1 = Div<real>(_t1BDB,_t1BCD);
        real _t1BDF#1 = Sub<real>(_t1BDD,_t1BD1);
        real3 t1BE1#1 = <real3>[_t1BD3,_t1BD9,_t1BDF];
        real score1BE3#3 = 0.0;
        real2 r01BE5#3 = <real2>[score1BE3,score1BE3];
        self.t = t1BE1;
        self.score = score1BE3;
        self.r0 = r01BE5;
        self.r1 = r01BE5;
        self.pos = r01BE5;
        strand_init ()
    method Update
        ENTRY1BED:  preds = []
          real3 t1BEE#4 = self.t;
          real score1BF0#2 = self.score;
          real _t1BF2#152 = 0.1e1;
          real _t1BF4#78 = 0.2e1;
          int _t1BF6#31 = 2;
          real _t1BF8#6 = Subscript<real3>(t1BEE,_t1BF6);
          real _t1BFA#1 = Mul<real>(_t1BF4,_t1BF8);
          real _t1BFC#1 = Mul<real>(_t1BFA,_t1BF8);
          real _t1BFE#2 = Sub<real>(_t1BF2,_t1BFC);
          real _t1C00#1 = Neg<real>(_t1BF4);
          real _t1C02#1 = Mul<real>(_t1BF8,_t1BF8);
          real _t1C04#1 = Sub<real>(_t1BF2,_t1C02);
          real _t1C06#2 = sqrt(_t1C04);
          real _t1C08#1 = Mul<real>(_t1C00,_t1C06);
          real _t1C0A#1 = Mul<real>(_t1C08,_t1BF8);
          real2 r01C0C#15 = <real2>[_t1BFE,_t1C0A];
          real _t1C0E#1 = Mul<real>(_t1BF4,_t1C06);
          real _t1C10#1 = Mul<real>(_t1C0E,_t1BF8);
          real2 r11C12#15 = <real2>[_t1C10,_t1BFE];
          real _t1C14#1 = Dot<2>(r01C0C,v001B93);
          real _t1C16#1 = Dot<2>(r11C12,v001B93);
          real2 _t1C18#1 = <real2>[_t1C14,_t1C16];
          int _t1C1A#31 = 0;
          real _t1C1C#1 = Subscript<real3>(t1BEE,_t1C1A);
          int _t1C1E#31 = 1;
          real _t1C20#1 = Subscript<real3>(t1BEE,_t1C1E);
          real2 _t1C22#14 = <real2>[_t1C1C,_t1C20];
          real2 pos1C24#1 = Add<real2>(_t1C18,_t1C22);
          real2 x1C26#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos1C24);
          bool _t1C28#1 = Inside<IMAGE2D<float>,2>(x1C26,_t1B8D);
          if _t1C28 then goto ASSIGN1C2C else goto ASSIGN35F6
        ASSIGN1C2C:  preds = [COND1C2A]
          real2 x1C2B#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v001B93);
          bool _t1C2D#1 = Inside<IMAGE2D<int>,2>(x1C2B,_t1B89);
          goto JOIN1C31
        JOIN1C31:  preds = [ASSIGN1C2E,ASSIGN35F6]
          bool _t1C2F#1 = phi(_t1C2D,_t1C30)
          if _t1C2F then goto ASSIGN1C34 else goto JOIN1DD6
        ASSIGN1C34:  preds = [COND1C32]
          real2 nd1C33#2 = Floor<2>(x1C26);
          real2 f1C35#2 = Sub<real2>(x1C26,nd1C33);
          int{2} n1C37#2 = RealToInt<2>(nd1C33);
          int t11C39#4 = -1;
          int t21C3B#1 = Index<int{2},0>(n1C37);
          int ix1C3D#4 = Add<int>(t11C39,t21C3B);
          int t21C3F#4 = Index<int{2},1>(n1C37);
          int iy1C41#1 = Add<int>(t11C39,t21C3F);
          int n01C44#8 = 21;
          int t1C45#1 = Mul<int>(n01C44,iy1C41);
          int index1C46#1 = Add<int>(ix1C3D,t1C45);
          addr(IMAGE2D<float>) imgBaseAddr1C47#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a1C43#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1C47,index1C46);
          real4 v01C4D#1 = LoadVoxels<IMAGE2D<float>,4>(a1C43);
          int iy1C4F#1 = Add<int>(_t1C1A,t21C3F);
          int t1C53#1 = Mul<int>(n01C44,iy1C4F);
          int index1C54#1 = Add<int>(ix1C3D,t1C53);
          addr(IMAGE2D<float>) a1C51#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1C47,index1C54);
          real4 v11C5B#1 = LoadVoxels<IMAGE2D<float>,4>(a1C51);
          int iy1C5D#1 = Add<int>(_t1C1E,t21C3F);
          int t1C61#1 = Mul<int>(n01C44,iy1C5D);
          int index1C62#1 = Add<int>(ix1C3D,t1C61);
          addr(IMAGE2D<float>) a1C5F#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1C47,index1C62);
          real4 v21C69#1 = LoadVoxels<IMAGE2D<float>,4>(a1C5F);
          int iy1C6B#1 = Add<int>(_t1BF6,t21C3F);
          int t1C6F#1 = Mul<int>(n01C44,iy1C6B);
          int index1C70#1 = Add<int>(ix1C3D,t1C6F);
          addr(IMAGE2D<float>) a1C6D#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1C47,index1C70);
          real4 v31C77#1 = LoadVoxels<IMAGE2D<float>,4>(a1C6D);
          real fy1C79#4 = Index<real2,1>(f1C35);
          real t31C7B#1 = Add<real>(fy1C79,_t1BF2);
          real t11C7D#1 = Sub<real>(fy1C79,_t1BF2);
          real t01C7F#1 = Sub<real>(fy1C79,_t1BF4);
          real4 a1C81#3 = <real4>[t31C7B,fy1C79,t11C7D,t01C7F];
          real _f1C94#2 = 0.133333333333e1;
          real _f1C95#2 = 0.666666666667e0;
          real4 a01C84#4 = <real4>[_f1C94,_f1C95,_f1C95,_f1C94];
          real _f1C90#1 = -0.2e1;
          real _f1C91#2 = 0.0;
          real4 a11C85#4 = <real4>[_f1C90,_f1C91,_f1C91,_t1BF4];
          real _f1C8D#2 = -0.1e1;
          real4 a21C86#4 = <real4>[_t1BF2,_f1C8D,_f1C8D,_t1BF2];
          real _f1C88#1 = -0.166666666667e0;
          real _f1C89#1 = 0.5e0;
          real _f1C8A#1 = -0.5e0;
          real _f1C8B#1 = 0.166666666667e0;
          real4 a31C87#4 = <real4>[_f1C88,_f1C89,_f1C8A,_f1C8B];
          real4 prod31C98#1 = Mul<real4>(a1C81,a31C87);
          real4 sum21C99#1 = Add<real4>(a21C86,prod31C98);
          real4 prod21C9A#1 = Mul<real4>(a1C81,sum21C99);
          real4 sum11C9B#1 = Add<real4>(a11C85,prod21C9A);
          real4 prod11C9C#1 = Mul<real4>(a1C81,sum11C9B);
          real4 hy1C83#1 = Add<real4>(a01C84,prod11C9C);
          real fx1CB7#4 = Index<real2,0>(f1C35);
          real t31CB9#1 = Add<real>(fx1CB7,_t1BF2);
          real t11CBB#1 = Sub<real>(fx1CB7,_t1BF2);
          real t01CBD#1 = Sub<real>(fx1CB7,_t1BF4);
          real4 a1CBF#3 = <real4>[t31CB9,fx1CB7,t11CBB,t01CBD];
          real4 prod31CD6#1 = Mul<real4>(a1CBF,a31C87);
          real4 sum21CD7#1 = Add<real4>(a21C86,prod31CD6);
          real4 prod21CD8#1 = Mul<real4>(a1CBF,sum21CD7);
          real4 sum11CD9#1 = Add<real4>(a11C85,prod21CD8);
          real4 prod11CDA#1 = Mul<real4>(a1CBF,sum11CD9);
          real4 hx1CC1#4 = Add<real4>(a01C84,prod11CDA);
          real t01CF5#1 = Dot<4>(v01C4D,hx1CC1);
          real t11CF7#1 = Dot<4>(v11C5B,hx1CC1);
          real t21CF9#1 = Dot<4>(v21C69,hx1CC1);
          real t31CFB#1 = Dot<4>(v31C77,hx1CC1);
          real4 tv1CFD#1 = <real4>[t01CF5,t11CF7,t21CF9,t31CFB];
          real _t1CFF#1 = Dot<4>(hy1C83,tv1CFD);
          real2 x1D01#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v001B93);
          real2 nd1D03#2 = Floor<2>(x1D01);
          real2 f1D05#2 = Sub<real2>(x1D01,nd1D03);
          int{2} n1D07#2 = RealToInt<2>(nd1D03);
          int t21D09#1 = Index<int{2},0>(n1D07);
          int ix1D0B#4 = Add<int>(t11C39,t21D09);
          int t21D0D#4 = Index<int{2},1>(n1D07);
          int iy1D0F#1 = Add<int>(t11C39,t21D0D);
          int t1D13#1 = Mul<int>(n01C44,iy1D0F);
          int index1D14#1 = Add<int>(ix1D0B,t1D13);
          addr(IMAGE2D<int>) imgBaseAddr1D15#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a1D11#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1D15,index1D14);
          real4 v01D1B#1 = LoadVoxels<IMAGE2D<int>,4>(a1D11);
          int iy1D1D#1 = Add<int>(_t1C1A,t21D0D);
          int t1D21#1 = Mul<int>(n01C44,iy1D1D);
          int index1D22#1 = Add<int>(ix1D0B,t1D21);
          addr(IMAGE2D<int>) a1D1F#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1D15,index1D22);
          real4 v11D29#1 = LoadVoxels<IMAGE2D<int>,4>(a1D1F);
          int iy1D2B#1 = Add<int>(_t1C1E,t21D0D);
          int t1D2F#1 = Mul<int>(n01C44,iy1D2B);
          int index1D30#1 = Add<int>(ix1D0B,t1D2F);
          addr(IMAGE2D<int>) a1D2D#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1D15,index1D30);
          real4 v21D37#1 = LoadVoxels<IMAGE2D<int>,4>(a1D2D);
          int iy1D39#1 = Add<int>(_t1BF6,t21D0D);
          int t1D3D#1 = Mul<int>(n01C44,iy1D39);
          int index1D3E#1 = Add<int>(ix1D0B,t1D3D);
          addr(IMAGE2D<int>) a1D3B#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1D15,index1D3E);
          real4 v31D45#1 = LoadVoxels<IMAGE2D<int>,4>(a1D3B);
          real fy1D47#4 = Index<real2,1>(f1D05);
          real t31D49#1 = Add<real>(fy1D47,_t1BF2);
          real t11D4B#1 = Sub<real>(fy1D47,_t1BF2);
          real t01D4D#1 = Sub<real>(fy1D47,_t1BF4);
          real4 a1D4F#3 = <real4>[t31D49,fy1D47,t11D4B,t01D4D];
          real4 prod31D66#1 = Mul<real4>(a1D4F,a31C87);
          real4 sum21D67#1 = Add<real4>(a21C86,prod31D66);
          real4 prod21D68#1 = Mul<real4>(a1D4F,sum21D67);
          real4 sum11D69#1 = Add<real4>(a11C85,prod21D68);
          real4 prod11D6A#1 = Mul<real4>(a1D4F,sum11D69);
          real4 hy1D51#1 = Add<real4>(a01C84,prod11D6A);
          real fx1D85#4 = Index<real2,0>(f1D05);
          real t31D87#1 = Add<real>(fx1D85,_t1BF2);
          real t11D89#1 = Sub<real>(fx1D85,_t1BF2);
          real t01D8B#1 = Sub<real>(fx1D85,_t1BF4);
          real4 a1D8D#3 = <real4>[t31D87,fx1D85,t11D89,t01D8B];
          real4 prod31DA4#1 = Mul<real4>(a1D8D,a31C87);
          real4 sum21DA5#1 = Add<real4>(a21C86,prod31DA4);
          real4 prod21DA6#1 = Mul<real4>(a1D8D,sum21DA5);
          real4 sum11DA7#1 = Add<real4>(a11C85,prod21DA6);
          real4 prod11DA8#1 = Mul<real4>(a1D8D,sum11DA7);
          real4 hx1D8F#4 = Add<real4>(a01C84,prod11DA8);
          real t01DC3#1 = Dot<4>(v01D1B,hx1D8F);
          real t11DC5#1 = Dot<4>(v11D29,hx1D8F);
          real t21DC7#1 = Dot<4>(v21D37,hx1D8F);
          real t31DC9#1 = Dot<4>(v31D45,hx1D8F);
          real4 tv1DCB#1 = <real4>[t01DC3,t11DC5,t21DC7,t31DC9];
          real _t1DCD#1 = Dot<4>(hy1D51,tv1DCB);
          real _t1DCF#2 = Sub<real>(_t1CFF,_t1DCD);
          real _t1DD1#1 = Mul<real>(_t1DCF,_t1DCF);
          real score1DD3#1 = Add<real>(score1BF0,_t1DD1);
          goto JOIN1DD6
        JOIN1DD6:  preds = [ASSIGN1DD4,COND1C32]
          real score1DD5#2 = phi(score1DD3,score1BF0)
          real _t1DD7#1 = Dot<2>(r01C0C,v011B99);
          real _t1DD9#1 = Dot<2>(r11C12,v011B99);
          real2 _t1DDB#1 = <real2>[_t1DD7,_t1DD9];
          real2 pos1DDD#1 = Add<real2>(_t1DDB,_t1C22);
          real2 x1DDF#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos1DDD);
          bool _t1DE1#1 = Inside<IMAGE2D<float>,2>(x1DDF,_t1B8D);
          if _t1DE1 then goto ASSIGN1DE5 else goto ASSIGN35F5
        ASSIGN1DE5:  preds = [COND1DE3]
          real2 x1DE4#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v011B99);
          bool _t1DE6#1 = Inside<IMAGE2D<int>,2>(x1DE4,_t1B89);
          goto JOIN1DEA
        JOIN1DEA:  preds = [ASSIGN1DE7,ASSIGN35F5]
          bool _t1DE8#1 = phi(_t1DE6,_t1DE9)
          if _t1DE8 then goto ASSIGN1DED else goto JOIN1F8F
        ASSIGN1DED:  preds = [COND1DEB]
          real2 nd1DEC#2 = Floor<2>(x1DDF);
          real2 f1DEE#2 = Sub<real2>(x1DDF,nd1DEC);
          int{2} n1DF0#2 = RealToInt<2>(nd1DEC);
          int t11DF2#4 = -1;
          int t21DF4#1 = Index<int{2},0>(n1DF0);
          int ix1DF6#4 = Add<int>(t11DF2,t21DF4);
          int t21DF8#4 = Index<int{2},1>(n1DF0);
          int iy1DFA#1 = Add<int>(t11DF2,t21DF8);
          int n01DFD#8 = 21;
          int t1DFE#1 = Mul<int>(n01DFD,iy1DFA);
          int index1DFF#1 = Add<int>(ix1DF6,t1DFE);
          addr(IMAGE2D<float>) imgBaseAddr1E00#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a1DFC#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1E00,index1DFF);
          real4 v01E06#1 = LoadVoxels<IMAGE2D<float>,4>(a1DFC);
          int iy1E08#1 = Add<int>(_t1C1A,t21DF8);
          int t1E0C#1 = Mul<int>(n01DFD,iy1E08);
          int index1E0D#1 = Add<int>(ix1DF6,t1E0C);
          addr(IMAGE2D<float>) a1E0A#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1E00,index1E0D);
          real4 v11E14#1 = LoadVoxels<IMAGE2D<float>,4>(a1E0A);
          int iy1E16#1 = Add<int>(_t1C1E,t21DF8);
          int t1E1A#1 = Mul<int>(n01DFD,iy1E16);
          int index1E1B#1 = Add<int>(ix1DF6,t1E1A);
          addr(IMAGE2D<float>) a1E18#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1E00,index1E1B);
          real4 v21E22#1 = LoadVoxels<IMAGE2D<float>,4>(a1E18);
          int iy1E24#1 = Add<int>(_t1BF6,t21DF8);
          int t1E28#1 = Mul<int>(n01DFD,iy1E24);
          int index1E29#1 = Add<int>(ix1DF6,t1E28);
          addr(IMAGE2D<float>) a1E26#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1E00,index1E29);
          real4 v31E30#1 = LoadVoxels<IMAGE2D<float>,4>(a1E26);
          real fy1E32#4 = Index<real2,1>(f1DEE);
          real t31E34#1 = Add<real>(fy1E32,_t1BF2);
          real t11E36#1 = Sub<real>(fy1E32,_t1BF2);
          real t01E38#1 = Sub<real>(fy1E32,_t1BF4);
          real4 a1E3A#3 = <real4>[t31E34,fy1E32,t11E36,t01E38];
          real _f1E4D#2 = 0.133333333333e1;
          real _f1E4E#2 = 0.666666666667e0;
          real4 a01E3D#4 = <real4>[_f1E4D,_f1E4E,_f1E4E,_f1E4D];
          real _f1E49#1 = -0.2e1;
          real _f1E4A#2 = 0.0;
          real4 a11E3E#4 = <real4>[_f1E49,_f1E4A,_f1E4A,_t1BF4];
          real _f1E46#2 = -0.1e1;
          real4 a21E3F#4 = <real4>[_t1BF2,_f1E46,_f1E46,_t1BF2];
          real _f1E41#1 = -0.166666666667e0;
          real _f1E42#1 = 0.5e0;
          real _f1E43#1 = -0.5e0;
          real _f1E44#1 = 0.166666666667e0;
          real4 a31E40#4 = <real4>[_f1E41,_f1E42,_f1E43,_f1E44];
          real4 prod31E51#1 = Mul<real4>(a1E3A,a31E40);
          real4 sum21E52#1 = Add<real4>(a21E3F,prod31E51);
          real4 prod21E53#1 = Mul<real4>(a1E3A,sum21E52);
          real4 sum11E54#1 = Add<real4>(a11E3E,prod21E53);
          real4 prod11E55#1 = Mul<real4>(a1E3A,sum11E54);
          real4 hy1E3C#1 = Add<real4>(a01E3D,prod11E55);
          real fx1E70#4 = Index<real2,0>(f1DEE);
          real t31E72#1 = Add<real>(fx1E70,_t1BF2);
          real t11E74#1 = Sub<real>(fx1E70,_t1BF2);
          real t01E76#1 = Sub<real>(fx1E70,_t1BF4);
          real4 a1E78#3 = <real4>[t31E72,fx1E70,t11E74,t01E76];
          real4 prod31E8F#1 = Mul<real4>(a1E78,a31E40);
          real4 sum21E90#1 = Add<real4>(a21E3F,prod31E8F);
          real4 prod21E91#1 = Mul<real4>(a1E78,sum21E90);
          real4 sum11E92#1 = Add<real4>(a11E3E,prod21E91);
          real4 prod11E93#1 = Mul<real4>(a1E78,sum11E92);
          real4 hx1E7A#4 = Add<real4>(a01E3D,prod11E93);
          real t01EAE#1 = Dot<4>(v01E06,hx1E7A);
          real t11EB0#1 = Dot<4>(v11E14,hx1E7A);
          real t21EB2#1 = Dot<4>(v21E22,hx1E7A);
          real t31EB4#1 = Dot<4>(v31E30,hx1E7A);
          real4 tv1EB6#1 = <real4>[t01EAE,t11EB0,t21EB2,t31EB4];
          real _t1EB8#1 = Dot<4>(hy1E3C,tv1EB6);
          real2 x1EBA#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v011B99);
          real2 nd1EBC#2 = Floor<2>(x1EBA);
          real2 f1EBE#2 = Sub<real2>(x1EBA,nd1EBC);
          int{2} n1EC0#2 = RealToInt<2>(nd1EBC);
          int t21EC2#1 = Index<int{2},0>(n1EC0);
          int ix1EC4#4 = Add<int>(t11DF2,t21EC2);
          int t21EC6#4 = Index<int{2},1>(n1EC0);
          int iy1EC8#1 = Add<int>(t11DF2,t21EC6);
          int t1ECC#1 = Mul<int>(n01DFD,iy1EC8);
          int index1ECD#1 = Add<int>(ix1EC4,t1ECC);
          addr(IMAGE2D<int>) imgBaseAddr1ECE#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a1ECA#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1ECE,index1ECD);
          real4 v01ED4#1 = LoadVoxels<IMAGE2D<int>,4>(a1ECA);
          int iy1ED6#1 = Add<int>(_t1C1A,t21EC6);
          int t1EDA#1 = Mul<int>(n01DFD,iy1ED6);
          int index1EDB#1 = Add<int>(ix1EC4,t1EDA);
          addr(IMAGE2D<int>) a1ED8#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1ECE,index1EDB);
          real4 v11EE2#1 = LoadVoxels<IMAGE2D<int>,4>(a1ED8);
          int iy1EE4#1 = Add<int>(_t1C1E,t21EC6);
          int t1EE8#1 = Mul<int>(n01DFD,iy1EE4);
          int index1EE9#1 = Add<int>(ix1EC4,t1EE8);
          addr(IMAGE2D<int>) a1EE6#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1ECE,index1EE9);
          real4 v21EF0#1 = LoadVoxels<IMAGE2D<int>,4>(a1EE6);
          int iy1EF2#1 = Add<int>(_t1BF6,t21EC6);
          int t1EF6#1 = Mul<int>(n01DFD,iy1EF2);
          int index1EF7#1 = Add<int>(ix1EC4,t1EF6);
          addr(IMAGE2D<int>) a1EF4#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1ECE,index1EF7);
          real4 v31EFE#1 = LoadVoxels<IMAGE2D<int>,4>(a1EF4);
          real fy1F00#4 = Index<real2,1>(f1EBE);
          real t31F02#1 = Add<real>(fy1F00,_t1BF2);
          real t11F04#1 = Sub<real>(fy1F00,_t1BF2);
          real t01F06#1 = Sub<real>(fy1F00,_t1BF4);
          real4 a1F08#3 = <real4>[t31F02,fy1F00,t11F04,t01F06];
          real4 prod31F1F#1 = Mul<real4>(a1F08,a31E40);
          real4 sum21F20#1 = Add<real4>(a21E3F,prod31F1F);
          real4 prod21F21#1 = Mul<real4>(a1F08,sum21F20);
          real4 sum11F22#1 = Add<real4>(a11E3E,prod21F21);
          real4 prod11F23#1 = Mul<real4>(a1F08,sum11F22);
          real4 hy1F0A#1 = Add<real4>(a01E3D,prod11F23);
          real fx1F3E#4 = Index<real2,0>(f1EBE);
          real t31F40#1 = Add<real>(fx1F3E,_t1BF2);
          real t11F42#1 = Sub<real>(fx1F3E,_t1BF2);
          real t01F44#1 = Sub<real>(fx1F3E,_t1BF4);
          real4 a1F46#3 = <real4>[t31F40,fx1F3E,t11F42,t01F44];
          real4 prod31F5D#1 = Mul<real4>(a1F46,a31E40);
          real4 sum21F5E#1 = Add<real4>(a21E3F,prod31F5D);
          real4 prod21F5F#1 = Mul<real4>(a1F46,sum21F5E);
          real4 sum11F60#1 = Add<real4>(a11E3E,prod21F5F);
          real4 prod11F61#1 = Mul<real4>(a1F46,sum11F60);
          real4 hx1F48#4 = Add<real4>(a01E3D,prod11F61);
          real t01F7C#1 = Dot<4>(v01ED4,hx1F48);
          real t11F7E#1 = Dot<4>(v11EE2,hx1F48);
          real t21F80#1 = Dot<4>(v21EF0,hx1F48);
          real t31F82#1 = Dot<4>(v31EFE,hx1F48);
          real4 tv1F84#1 = <real4>[t01F7C,t11F7E,t21F80,t31F82];
          real _t1F86#1 = Dot<4>(hy1F0A,tv1F84);
          real _t1F88#2 = Sub<real>(_t1EB8,_t1F86);
          real _t1F8A#1 = Mul<real>(_t1F88,_t1F88);
          real score1F8C#1 = Add<real>(score1DD5,_t1F8A);
          goto JOIN1F8F
        JOIN1F8F:  preds = [ASSIGN1F8D,COND1DEB]
          real score1F8E#2 = phi(score1F8C,score1DD5)
          real _t1F90#1 = Dot<2>(r01C0C,v021B9B);
          real _t1F92#1 = Dot<2>(r11C12,v021B9B);
          real2 _t1F94#1 = <real2>[_t1F90,_t1F92];
          real2 pos1F96#1 = Add<real2>(_t1F94,_t1C22);
          real2 x1F98#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos1F96);
          bool _t1F9A#1 = Inside<IMAGE2D<float>,2>(x1F98,_t1B8D);
          if _t1F9A then goto ASSIGN1F9E else goto ASSIGN35F4
        ASSIGN1F9E:  preds = [COND1F9C]
          real2 x1F9D#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v021B9B);
          bool _t1F9F#1 = Inside<IMAGE2D<int>,2>(x1F9D,_t1B89);
          goto JOIN1FA3
        JOIN1FA3:  preds = [ASSIGN1FA0,ASSIGN35F4]
          bool _t1FA1#1 = phi(_t1F9F,_t1FA2)
          if _t1FA1 then goto ASSIGN1FA6 else goto JOIN2148
        ASSIGN1FA6:  preds = [COND1FA4]
          real2 nd1FA5#2 = Floor<2>(x1F98);
          real2 f1FA7#2 = Sub<real2>(x1F98,nd1FA5);
          int{2} n1FA9#2 = RealToInt<2>(nd1FA5);
          int t11FAB#4 = -1;
          int t21FAD#1 = Index<int{2},0>(n1FA9);
          int ix1FAF#4 = Add<int>(t11FAB,t21FAD);
          int t21FB1#4 = Index<int{2},1>(n1FA9);
          int iy1FB3#1 = Add<int>(t11FAB,t21FB1);
          int n01FB6#8 = 21;
          int t1FB7#1 = Mul<int>(n01FB6,iy1FB3);
          int index1FB8#1 = Add<int>(ix1FAF,t1FB7);
          addr(IMAGE2D<float>) imgBaseAddr1FB9#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a1FB5#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1FB9,index1FB8);
          real4 v01FBF#1 = LoadVoxels<IMAGE2D<float>,4>(a1FB5);
          int iy1FC1#1 = Add<int>(_t1C1A,t21FB1);
          int t1FC5#1 = Mul<int>(n01FB6,iy1FC1);
          int index1FC6#1 = Add<int>(ix1FAF,t1FC5);
          addr(IMAGE2D<float>) a1FC3#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1FB9,index1FC6);
          real4 v11FCD#1 = LoadVoxels<IMAGE2D<float>,4>(a1FC3);
          int iy1FCF#1 = Add<int>(_t1C1E,t21FB1);
          int t1FD3#1 = Mul<int>(n01FB6,iy1FCF);
          int index1FD4#1 = Add<int>(ix1FAF,t1FD3);
          addr(IMAGE2D<float>) a1FD1#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1FB9,index1FD4);
          real4 v21FDB#1 = LoadVoxels<IMAGE2D<float>,4>(a1FD1);
          int iy1FDD#1 = Add<int>(_t1BF6,t21FB1);
          int t1FE1#1 = Mul<int>(n01FB6,iy1FDD);
          int index1FE2#1 = Add<int>(ix1FAF,t1FE1);
          addr(IMAGE2D<float>) a1FDF#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1FB9,index1FE2);
          real4 v31FE9#1 = LoadVoxels<IMAGE2D<float>,4>(a1FDF);
          real fy1FEB#4 = Index<real2,1>(f1FA7);
          real t31FED#1 = Add<real>(fy1FEB,_t1BF2);
          real t11FEF#1 = Sub<real>(fy1FEB,_t1BF2);
          real t01FF1#1 = Sub<real>(fy1FEB,_t1BF4);
          real4 a1FF3#3 = <real4>[t31FED,fy1FEB,t11FEF,t01FF1];
          real _f2006#2 = 0.133333333333e1;
          real _f2007#2 = 0.666666666667e0;
          real4 a01FF6#4 = <real4>[_f2006,_f2007,_f2007,_f2006];
          real _f2002#1 = -0.2e1;
          real _f2003#2 = 0.0;
          real4 a11FF7#4 = <real4>[_f2002,_f2003,_f2003,_t1BF4];
          real _f1FFF#2 = -0.1e1;
          real4 a21FF8#4 = <real4>[_t1BF2,_f1FFF,_f1FFF,_t1BF2];
          real _f1FFA#1 = -0.166666666667e0;
          real _f1FFB#1 = 0.5e0;
          real _f1FFC#1 = -0.5e0;
          real _f1FFD#1 = 0.166666666667e0;
          real4 a31FF9#4 = <real4>[_f1FFA,_f1FFB,_f1FFC,_f1FFD];
          real4 prod3200A#1 = Mul<real4>(a1FF3,a31FF9);
          real4 sum2200B#1 = Add<real4>(a21FF8,prod3200A);
          real4 prod2200C#1 = Mul<real4>(a1FF3,sum2200B);
          real4 sum1200D#1 = Add<real4>(a11FF7,prod2200C);
          real4 prod1200E#1 = Mul<real4>(a1FF3,sum1200D);
          real4 hy1FF5#1 = Add<real4>(a01FF6,prod1200E);
          real fx2029#4 = Index<real2,0>(f1FA7);
          real t3202B#1 = Add<real>(fx2029,_t1BF2);
          real t1202D#1 = Sub<real>(fx2029,_t1BF2);
          real t0202F#1 = Sub<real>(fx2029,_t1BF4);
          real4 a2031#3 = <real4>[t3202B,fx2029,t1202D,t0202F];
          real4 prod32048#1 = Mul<real4>(a2031,a31FF9);
          real4 sum22049#1 = Add<real4>(a21FF8,prod32048);
          real4 prod2204A#1 = Mul<real4>(a2031,sum22049);
          real4 sum1204B#1 = Add<real4>(a11FF7,prod2204A);
          real4 prod1204C#1 = Mul<real4>(a2031,sum1204B);
          real4 hx2033#4 = Add<real4>(a01FF6,prod1204C);
          real t02067#1 = Dot<4>(v01FBF,hx2033);
          real t12069#1 = Dot<4>(v11FCD,hx2033);
          real t2206B#1 = Dot<4>(v21FDB,hx2033);
          real t3206D#1 = Dot<4>(v31FE9,hx2033);
          real4 tv206F#1 = <real4>[t02067,t12069,t2206B,t3206D];
          real _t2071#1 = Dot<4>(hy1FF5,tv206F);
          real2 x2073#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v021B9B);
          real2 nd2075#2 = Floor<2>(x2073);
          real2 f2077#2 = Sub<real2>(x2073,nd2075);
          int{2} n2079#2 = RealToInt<2>(nd2075);
          int t2207B#1 = Index<int{2},0>(n2079);
          int ix207D#4 = Add<int>(t11FAB,t2207B);
          int t2207F#4 = Index<int{2},1>(n2079);
          int iy2081#1 = Add<int>(t11FAB,t2207F);
          int t2085#1 = Mul<int>(n01FB6,iy2081);
          int index2086#1 = Add<int>(ix207D,t2085);
          addr(IMAGE2D<int>) imgBaseAddr2087#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a2083#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2087,index2086);
          real4 v0208D#1 = LoadVoxels<IMAGE2D<int>,4>(a2083);
          int iy208F#1 = Add<int>(_t1C1A,t2207F);
          int t2093#1 = Mul<int>(n01FB6,iy208F);
          int index2094#1 = Add<int>(ix207D,t2093);
          addr(IMAGE2D<int>) a2091#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2087,index2094);
          real4 v1209B#1 = LoadVoxels<IMAGE2D<int>,4>(a2091);
          int iy209D#1 = Add<int>(_t1C1E,t2207F);
          int t20A1#1 = Mul<int>(n01FB6,iy209D);
          int index20A2#1 = Add<int>(ix207D,t20A1);
          addr(IMAGE2D<int>) a209F#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2087,index20A2);
          real4 v220A9#1 = LoadVoxels<IMAGE2D<int>,4>(a209F);
          int iy20AB#1 = Add<int>(_t1BF6,t2207F);
          int t20AF#1 = Mul<int>(n01FB6,iy20AB);
          int index20B0#1 = Add<int>(ix207D,t20AF);
          addr(IMAGE2D<int>) a20AD#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2087,index20B0);
          real4 v320B7#1 = LoadVoxels<IMAGE2D<int>,4>(a20AD);
          real fy20B9#4 = Index<real2,1>(f2077);
          real t320BB#1 = Add<real>(fy20B9,_t1BF2);
          real t120BD#1 = Sub<real>(fy20B9,_t1BF2);
          real t020BF#1 = Sub<real>(fy20B9,_t1BF4);
          real4 a20C1#3 = <real4>[t320BB,fy20B9,t120BD,t020BF];
          real4 prod320D8#1 = Mul<real4>(a20C1,a31FF9);
          real4 sum220D9#1 = Add<real4>(a21FF8,prod320D8);
          real4 prod220DA#1 = Mul<real4>(a20C1,sum220D9);
          real4 sum120DB#1 = Add<real4>(a11FF7,prod220DA);
          real4 prod120DC#1 = Mul<real4>(a20C1,sum120DB);
          real4 hy20C3#1 = Add<real4>(a01FF6,prod120DC);
          real fx20F7#4 = Index<real2,0>(f2077);
          real t320F9#1 = Add<real>(fx20F7,_t1BF2);
          real t120FB#1 = Sub<real>(fx20F7,_t1BF2);
          real t020FD#1 = Sub<real>(fx20F7,_t1BF4);
          real4 a20FF#3 = <real4>[t320F9,fx20F7,t120FB,t020FD];
          real4 prod32116#1 = Mul<real4>(a20FF,a31FF9);
          real4 sum22117#1 = Add<real4>(a21FF8,prod32116);
          real4 prod22118#1 = Mul<real4>(a20FF,sum22117);
          real4 sum12119#1 = Add<real4>(a11FF7,prod22118);
          real4 prod1211A#1 = Mul<real4>(a20FF,sum12119);
          real4 hx2101#4 = Add<real4>(a01FF6,prod1211A);
          real t02135#1 = Dot<4>(v0208D,hx2101);
          real t12137#1 = Dot<4>(v1209B,hx2101);
          real t22139#1 = Dot<4>(v220A9,hx2101);
          real t3213B#1 = Dot<4>(v320B7,hx2101);
          real4 tv213D#1 = <real4>[t02135,t12137,t22139,t3213B];
          real _t213F#1 = Dot<4>(hy20C3,tv213D);
          real _t2141#2 = Sub<real>(_t2071,_t213F);
          real _t2143#1 = Mul<real>(_t2141,_t2141);
          real score2145#1 = Add<real>(score1F8E,_t2143);
          goto JOIN2148
        JOIN2148:  preds = [ASSIGN2146,COND1FA4]
          real score2147#2 = phi(score2145,score1F8E)
          real _t2149#1 = Dot<2>(r01C0C,v031B9D);
          real _t214B#1 = Dot<2>(r11C12,v031B9D);
          real2 _t214D#1 = <real2>[_t2149,_t214B];
          real2 pos214F#1 = Add<real2>(_t214D,_t1C22);
          real2 x2151#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos214F);
          bool _t2153#1 = Inside<IMAGE2D<float>,2>(x2151,_t1B8D);
          if _t2153 then goto ASSIGN2157 else goto ASSIGN35F3
        ASSIGN2157:  preds = [COND2155]
          real2 x2156#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v031B9D);
          bool _t2158#1 = Inside<IMAGE2D<int>,2>(x2156,_t1B89);
          goto JOIN215C
        JOIN215C:  preds = [ASSIGN2159,ASSIGN35F3]
          bool _t215A#1 = phi(_t2158,_t215B)
          if _t215A then goto ASSIGN215F else goto JOIN2301
        ASSIGN215F:  preds = [COND215D]
          real2 nd215E#2 = Floor<2>(x2151);
          real2 f2160#2 = Sub<real2>(x2151,nd215E);
          int{2} n2162#2 = RealToInt<2>(nd215E);
          int t12164#4 = -1;
          int t22166#1 = Index<int{2},0>(n2162);
          int ix2168#4 = Add<int>(t12164,t22166);
          int t2216A#4 = Index<int{2},1>(n2162);
          int iy216C#1 = Add<int>(t12164,t2216A);
          int n0216F#8 = 21;
          int t2170#1 = Mul<int>(n0216F,iy216C);
          int index2171#1 = Add<int>(ix2168,t2170);
          addr(IMAGE2D<float>) imgBaseAddr2172#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a216E#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2172,index2171);
          real4 v02178#1 = LoadVoxels<IMAGE2D<float>,4>(a216E);
          int iy217A#1 = Add<int>(_t1C1A,t2216A);
          int t217E#1 = Mul<int>(n0216F,iy217A);
          int index217F#1 = Add<int>(ix2168,t217E);
          addr(IMAGE2D<float>) a217C#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2172,index217F);
          real4 v12186#1 = LoadVoxels<IMAGE2D<float>,4>(a217C);
          int iy2188#1 = Add<int>(_t1C1E,t2216A);
          int t218C#1 = Mul<int>(n0216F,iy2188);
          int index218D#1 = Add<int>(ix2168,t218C);
          addr(IMAGE2D<float>) a218A#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2172,index218D);
          real4 v22194#1 = LoadVoxels<IMAGE2D<float>,4>(a218A);
          int iy2196#1 = Add<int>(_t1BF6,t2216A);
          int t219A#1 = Mul<int>(n0216F,iy2196);
          int index219B#1 = Add<int>(ix2168,t219A);
          addr(IMAGE2D<float>) a2198#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2172,index219B);
          real4 v321A2#1 = LoadVoxels<IMAGE2D<float>,4>(a2198);
          real fy21A4#4 = Index<real2,1>(f2160);
          real t321A6#1 = Add<real>(fy21A4,_t1BF2);
          real t121A8#1 = Sub<real>(fy21A4,_t1BF2);
          real t021AA#1 = Sub<real>(fy21A4,_t1BF4);
          real4 a21AC#3 = <real4>[t321A6,fy21A4,t121A8,t021AA];
          real _f21BF#2 = 0.133333333333e1;
          real _f21C0#2 = 0.666666666667e0;
          real4 a021AF#4 = <real4>[_f21BF,_f21C0,_f21C0,_f21BF];
          real _f21BB#1 = -0.2e1;
          real _f21BC#2 = 0.0;
          real4 a121B0#4 = <real4>[_f21BB,_f21BC,_f21BC,_t1BF4];
          real _f21B8#2 = -0.1e1;
          real4 a221B1#4 = <real4>[_t1BF2,_f21B8,_f21B8,_t1BF2];
          real _f21B3#1 = -0.166666666667e0;
          real _f21B4#1 = 0.5e0;
          real _f21B5#1 = -0.5e0;
          real _f21B6#1 = 0.166666666667e0;
          real4 a321B2#4 = <real4>[_f21B3,_f21B4,_f21B5,_f21B6];
          real4 prod321C3#1 = Mul<real4>(a21AC,a321B2);
          real4 sum221C4#1 = Add<real4>(a221B1,prod321C3);
          real4 prod221C5#1 = Mul<real4>(a21AC,sum221C4);
          real4 sum121C6#1 = Add<real4>(a121B0,prod221C5);
          real4 prod121C7#1 = Mul<real4>(a21AC,sum121C6);
          real4 hy21AE#1 = Add<real4>(a021AF,prod121C7);
          real fx21E2#4 = Index<real2,0>(f2160);
          real t321E4#1 = Add<real>(fx21E2,_t1BF2);
          real t121E6#1 = Sub<real>(fx21E2,_t1BF2);
          real t021E8#1 = Sub<real>(fx21E2,_t1BF4);
          real4 a21EA#3 = <real4>[t321E4,fx21E2,t121E6,t021E8];
          real4 prod32201#1 = Mul<real4>(a21EA,a321B2);
          real4 sum22202#1 = Add<real4>(a221B1,prod32201);
          real4 prod22203#1 = Mul<real4>(a21EA,sum22202);
          real4 sum12204#1 = Add<real4>(a121B0,prod22203);
          real4 prod12205#1 = Mul<real4>(a21EA,sum12204);
          real4 hx21EC#4 = Add<real4>(a021AF,prod12205);
          real t02220#1 = Dot<4>(v02178,hx21EC);
          real t12222#1 = Dot<4>(v12186,hx21EC);
          real t22224#1 = Dot<4>(v22194,hx21EC);
          real t32226#1 = Dot<4>(v321A2,hx21EC);
          real4 tv2228#1 = <real4>[t02220,t12222,t22224,t32226];
          real _t222A#1 = Dot<4>(hy21AE,tv2228);
          real2 x222C#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v031B9D);
          real2 nd222E#2 = Floor<2>(x222C);
          real2 f2230#2 = Sub<real2>(x222C,nd222E);
          int{2} n2232#2 = RealToInt<2>(nd222E);
          int t22234#1 = Index<int{2},0>(n2232);
          int ix2236#4 = Add<int>(t12164,t22234);
          int t22238#4 = Index<int{2},1>(n2232);
          int iy223A#1 = Add<int>(t12164,t22238);
          int t223E#1 = Mul<int>(n0216F,iy223A);
          int index223F#1 = Add<int>(ix2236,t223E);
          addr(IMAGE2D<int>) imgBaseAddr2240#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a223C#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2240,index223F);
          real4 v02246#1 = LoadVoxels<IMAGE2D<int>,4>(a223C);
          int iy2248#1 = Add<int>(_t1C1A,t22238);
          int t224C#1 = Mul<int>(n0216F,iy2248);
          int index224D#1 = Add<int>(ix2236,t224C);
          addr(IMAGE2D<int>) a224A#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2240,index224D);
          real4 v12254#1 = LoadVoxels<IMAGE2D<int>,4>(a224A);
          int iy2256#1 = Add<int>(_t1C1E,t22238);
          int t225A#1 = Mul<int>(n0216F,iy2256);
          int index225B#1 = Add<int>(ix2236,t225A);
          addr(IMAGE2D<int>) a2258#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2240,index225B);
          real4 v22262#1 = LoadVoxels<IMAGE2D<int>,4>(a2258);
          int iy2264#1 = Add<int>(_t1BF6,t22238);
          int t2268#1 = Mul<int>(n0216F,iy2264);
          int index2269#1 = Add<int>(ix2236,t2268);
          addr(IMAGE2D<int>) a2266#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2240,index2269);
          real4 v32270#1 = LoadVoxels<IMAGE2D<int>,4>(a2266);
          real fy2272#4 = Index<real2,1>(f2230);
          real t32274#1 = Add<real>(fy2272,_t1BF2);
          real t12276#1 = Sub<real>(fy2272,_t1BF2);
          real t02278#1 = Sub<real>(fy2272,_t1BF4);
          real4 a227A#3 = <real4>[t32274,fy2272,t12276,t02278];
          real4 prod32291#1 = Mul<real4>(a227A,a321B2);
          real4 sum22292#1 = Add<real4>(a221B1,prod32291);
          real4 prod22293#1 = Mul<real4>(a227A,sum22292);
          real4 sum12294#1 = Add<real4>(a121B0,prod22293);
          real4 prod12295#1 = Mul<real4>(a227A,sum12294);
          real4 hy227C#1 = Add<real4>(a021AF,prod12295);
          real fx22B0#4 = Index<real2,0>(f2230);
          real t322B2#1 = Add<real>(fx22B0,_t1BF2);
          real t122B4#1 = Sub<real>(fx22B0,_t1BF2);
          real t022B6#1 = Sub<real>(fx22B0,_t1BF4);
          real4 a22B8#3 = <real4>[t322B2,fx22B0,t122B4,t022B6];
          real4 prod322CF#1 = Mul<real4>(a22B8,a321B2);
          real4 sum222D0#1 = Add<real4>(a221B1,prod322CF);
          real4 prod222D1#1 = Mul<real4>(a22B8,sum222D0);
          real4 sum122D2#1 = Add<real4>(a121B0,prod222D1);
          real4 prod122D3#1 = Mul<real4>(a22B8,sum122D2);
          real4 hx22BA#4 = Add<real4>(a021AF,prod122D3);
          real t022EE#1 = Dot<4>(v02246,hx22BA);
          real t122F0#1 = Dot<4>(v12254,hx22BA);
          real t222F2#1 = Dot<4>(v22262,hx22BA);
          real t322F4#1 = Dot<4>(v32270,hx22BA);
          real4 tv22F6#1 = <real4>[t022EE,t122F0,t222F2,t322F4];
          real _t22F8#1 = Dot<4>(hy227C,tv22F6);
          real _t22FA#2 = Sub<real>(_t222A,_t22F8);
          real _t22FC#1 = Mul<real>(_t22FA,_t22FA);
          real score22FE#1 = Add<real>(score2147,_t22FC);
          goto JOIN2301
        JOIN2301:  preds = [ASSIGN22FF,COND215D]
          real score2300#2 = phi(score22FE,score2147)
          real _t2302#1 = Dot<2>(r01C0C,v041B9F);
          real _t2304#1 = Dot<2>(r11C12,v041B9F);
          real2 _t2306#1 = <real2>[_t2302,_t2304];
          real2 pos2308#1 = Add<real2>(_t2306,_t1C22);
          real2 x230A#5 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos2308);
          bool _t230C#2 = Inside<IMAGE2D<float>,2>(x230A,_t1B8D);
          if _t230C then goto ASSIGN2310 else goto ASSIGN35F2
        ASSIGN2310:  preds = [COND230E]
          real2 x230F#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v041B9F);
          bool _t2311#1 = Inside<IMAGE2D<int>,2>(x230F,_t1B89);
          goto JOIN2315
        JOIN2315:  preds = [ASSIGN2312,ASSIGN35F2]
          bool _t2313#2 = phi(_t2311,_t2314)
          if _t2313 then goto ASSIGN2318 else goto JOIN24BA
        ASSIGN2318:  preds = [COND2316]
          real2 nd2317#2 = Floor<2>(x230A);
          real2 f2319#2 = Sub<real2>(x230A,nd2317);
          int{2} n231B#2 = RealToInt<2>(nd2317);
          int t1231D#4 = -1;
          int t2231F#1 = Index<int{2},0>(n231B);
          int ix2321#4 = Add<int>(t1231D,t2231F);
          int t22323#4 = Index<int{2},1>(n231B);
          int iy2325#1 = Add<int>(t1231D,t22323);
          int n02328#8 = 21;
          int t2329#1 = Mul<int>(n02328,iy2325);
          int index232A#1 = Add<int>(ix2321,t2329);
          addr(IMAGE2D<float>) imgBaseAddr232B#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a2327#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr232B,index232A);
          real4 v02331#1 = LoadVoxels<IMAGE2D<float>,4>(a2327);
          int iy2333#1 = Add<int>(_t1C1A,t22323);
          int t2337#1 = Mul<int>(n02328,iy2333);
          int index2338#1 = Add<int>(ix2321,t2337);
          addr(IMAGE2D<float>) a2335#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr232B,index2338);
          real4 v1233F#1 = LoadVoxels<IMAGE2D<float>,4>(a2335);
          int iy2341#1 = Add<int>(_t1C1E,t22323);
          int t2345#1 = Mul<int>(n02328,iy2341);
          int index2346#1 = Add<int>(ix2321,t2345);
          addr(IMAGE2D<float>) a2343#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr232B,index2346);
          real4 v2234D#1 = LoadVoxels<IMAGE2D<float>,4>(a2343);
          int iy234F#1 = Add<int>(_t1BF6,t22323);
          int t2353#1 = Mul<int>(n02328,iy234F);
          int index2354#1 = Add<int>(ix2321,t2353);
          addr(IMAGE2D<float>) a2351#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr232B,index2354);
          real4 v3235B#1 = LoadVoxels<IMAGE2D<float>,4>(a2351);
          real fy235D#4 = Index<real2,1>(f2319);
          real t3235F#1 = Add<real>(fy235D,_t1BF2);
          real t12361#1 = Sub<real>(fy235D,_t1BF2);
          real t02363#1 = Sub<real>(fy235D,_t1BF4);
          real4 a2365#3 = <real4>[t3235F,fy235D,t12361,t02363];
          real _f2378#2 = 0.133333333333e1;
          real _f2379#2 = 0.666666666667e0;
          real4 a02368#4 = <real4>[_f2378,_f2379,_f2379,_f2378];
          real _f2374#1 = -0.2e1;
          real _f2375#2 = 0.0;
          real4 a12369#4 = <real4>[_f2374,_f2375,_f2375,_t1BF4];
          real _f2371#2 = -0.1e1;
          real4 a2236A#4 = <real4>[_t1BF2,_f2371,_f2371,_t1BF2];
          real _f236C#1 = -0.166666666667e0;
          real _f236D#1 = 0.5e0;
          real _f236E#1 = -0.5e0;
          real _f236F#1 = 0.166666666667e0;
          real4 a3236B#4 = <real4>[_f236C,_f236D,_f236E,_f236F];
          real4 prod3237C#1 = Mul<real4>(a2365,a3236B);
          real4 sum2237D#1 = Add<real4>(a2236A,prod3237C);
          real4 prod2237E#1 = Mul<real4>(a2365,sum2237D);
          real4 sum1237F#1 = Add<real4>(a12369,prod2237E);
          real4 prod12380#1 = Mul<real4>(a2365,sum1237F);
          real4 hy2367#1 = Add<real4>(a02368,prod12380);
          real fx239B#4 = Index<real2,0>(f2319);
          real t3239D#1 = Add<real>(fx239B,_t1BF2);
          real t1239F#1 = Sub<real>(fx239B,_t1BF2);
          real t023A1#1 = Sub<real>(fx239B,_t1BF4);
          real4 a23A3#3 = <real4>[t3239D,fx239B,t1239F,t023A1];
          real4 prod323BA#1 = Mul<real4>(a23A3,a3236B);
          real4 sum223BB#1 = Add<real4>(a2236A,prod323BA);
          real4 prod223BC#1 = Mul<real4>(a23A3,sum223BB);
          real4 sum123BD#1 = Add<real4>(a12369,prod223BC);
          real4 prod123BE#1 = Mul<real4>(a23A3,sum123BD);
          real4 hx23A5#4 = Add<real4>(a02368,prod123BE);
          real t023D9#1 = Dot<4>(v02331,hx23A5);
          real t123DB#1 = Dot<4>(v1233F,hx23A5);
          real t223DD#1 = Dot<4>(v2234D,hx23A5);
          real t323DF#1 = Dot<4>(v3235B,hx23A5);
          real4 tv23E1#1 = <real4>[t023D9,t123DB,t223DD,t323DF];
          real _t23E3#1 = Dot<4>(hy2367,tv23E1);
          real2 x23E5#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v041B9F);
          real2 nd23E7#2 = Floor<2>(x23E5);
          real2 f23E9#2 = Sub<real2>(x23E5,nd23E7);
          int{2} n23EB#2 = RealToInt<2>(nd23E7);
          int t223ED#1 = Index<int{2},0>(n23EB);
          int ix23EF#4 = Add<int>(t1231D,t223ED);
          int t223F1#4 = Index<int{2},1>(n23EB);
          int iy23F3#1 = Add<int>(t1231D,t223F1);
          int t23F7#1 = Mul<int>(n02328,iy23F3);
          int index23F8#1 = Add<int>(ix23EF,t23F7);
          addr(IMAGE2D<int>) imgBaseAddr23F9#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a23F5#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr23F9,index23F8);
          real4 v023FF#1 = LoadVoxels<IMAGE2D<int>,4>(a23F5);
          int iy2401#1 = Add<int>(_t1C1A,t223F1);
          int t2405#1 = Mul<int>(n02328,iy2401);
          int index2406#1 = Add<int>(ix23EF,t2405);
          addr(IMAGE2D<int>) a2403#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr23F9,index2406);
          real4 v1240D#1 = LoadVoxels<IMAGE2D<int>,4>(a2403);
          int iy240F#1 = Add<int>(_t1C1E,t223F1);
          int t2413#1 = Mul<int>(n02328,iy240F);
          int index2414#1 = Add<int>(ix23EF,t2413);
          addr(IMAGE2D<int>) a2411#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr23F9,index2414);
          real4 v2241B#1 = LoadVoxels<IMAGE2D<int>,4>(a2411);
          int iy241D#1 = Add<int>(_t1BF6,t223F1);
          int t2421#1 = Mul<int>(n02328,iy241D);
          int index2422#1 = Add<int>(ix23EF,t2421);
          addr(IMAGE2D<int>) a241F#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr23F9,index2422);
          real4 v32429#1 = LoadVoxels<IMAGE2D<int>,4>(a241F);
          real fy242B#4 = Index<real2,1>(f23E9);
          real t3242D#1 = Add<real>(fy242B,_t1BF2);
          real t1242F#1 = Sub<real>(fy242B,_t1BF2);
          real t02431#1 = Sub<real>(fy242B,_t1BF4);
          real4 a2433#3 = <real4>[t3242D,fy242B,t1242F,t02431];
          real4 prod3244A#1 = Mul<real4>(a2433,a3236B);
          real4 sum2244B#1 = Add<real4>(a2236A,prod3244A);
          real4 prod2244C#1 = Mul<real4>(a2433,sum2244B);
          real4 sum1244D#1 = Add<real4>(a12369,prod2244C);
          real4 prod1244E#1 = Mul<real4>(a2433,sum1244D);
          real4 hy2435#1 = Add<real4>(a02368,prod1244E);
          real fx2469#4 = Index<real2,0>(f23E9);
          real t3246B#1 = Add<real>(fx2469,_t1BF2);
          real t1246D#1 = Sub<real>(fx2469,_t1BF2);
          real t0246F#1 = Sub<real>(fx2469,_t1BF4);
          real4 a2471#3 = <real4>[t3246B,fx2469,t1246D,t0246F];
          real4 prod32488#1 = Mul<real4>(a2471,a3236B);
          real4 sum22489#1 = Add<real4>(a2236A,prod32488);
          real4 prod2248A#1 = Mul<real4>(a2471,sum22489);
          real4 sum1248B#1 = Add<real4>(a12369,prod2248A);
          real4 prod1248C#1 = Mul<real4>(a2471,sum1248B);
          real4 hx2473#4 = Add<real4>(a02368,prod1248C);
          real t024A7#1 = Dot<4>(v023FF,hx2473);
          real t124A9#1 = Dot<4>(v1240D,hx2473);
          real t224AB#1 = Dot<4>(v2241B,hx2473);
          real t324AD#1 = Dot<4>(v32429,hx2473);
          real4 tv24AF#1 = <real4>[t024A7,t124A9,t224AB,t324AD];
          real _t24B1#1 = Dot<4>(hy2435,tv24AF);
          real _t24B3#2 = Sub<real>(_t23E3,_t24B1);
          real _t24B5#1 = Mul<real>(_t24B3,_t24B3);
          real score24B7#1 = Add<real>(score2300,_t24B5);
          goto JOIN24BA
        JOIN24BA:  preds = [ASSIGN24B8,COND2316]
          real score24B9#2 = phi(score24B7,score2300)
          real _t24BB#1 = Dot<2>(r01C0C,v051BA1);
          real _t24BD#1 = Dot<2>(r11C12,v051BA1);
          real2 _t24BF#1 = <real2>[_t24BB,_t24BD];
          real2 pos24C1#1 = Add<real2>(_t24BF,_t1C22);
          real2 x24C3#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos24C1);
          bool _t24C5#1 = Inside<IMAGE2D<float>,2>(x24C3,_t1B8D);
          if _t24C5 then goto ASSIGN24C9 else goto ASSIGN35F1
        ASSIGN24C9:  preds = [COND24C7]
          real2 x24C8#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v051BA1);
          bool _t24CA#1 = Inside<IMAGE2D<int>,2>(x24C8,_t1B89);
          goto JOIN24CE
        JOIN24CE:  preds = [ASSIGN24CB,ASSIGN35F1]
          bool _t24CC#1 = phi(_t24CA,_t24CD)
          if _t24CC then goto ASSIGN24D1 else goto JOIN2673
        ASSIGN24D1:  preds = [COND24CF]
          real2 nd24D0#2 = Floor<2>(x24C3);
          real2 f24D2#2 = Sub<real2>(x24C3,nd24D0);
          int{2} n24D4#2 = RealToInt<2>(nd24D0);
          int t124D6#4 = -1;
          int t224D8#1 = Index<int{2},0>(n24D4);
          int ix24DA#4 = Add<int>(t124D6,t224D8);
          int t224DC#4 = Index<int{2},1>(n24D4);
          int iy24DE#1 = Add<int>(t124D6,t224DC);
          int n024E1#8 = 21;
          int t24E2#1 = Mul<int>(n024E1,iy24DE);
          int index24E3#1 = Add<int>(ix24DA,t24E2);
          addr(IMAGE2D<float>) imgBaseAddr24E4#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a24E0#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr24E4,index24E3);
          real4 v024EA#1 = LoadVoxels<IMAGE2D<float>,4>(a24E0);
          int iy24EC#1 = Add<int>(_t1C1A,t224DC);
          int t24F0#1 = Mul<int>(n024E1,iy24EC);
          int index24F1#1 = Add<int>(ix24DA,t24F0);
          addr(IMAGE2D<float>) a24EE#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr24E4,index24F1);
          real4 v124F8#1 = LoadVoxels<IMAGE2D<float>,4>(a24EE);
          int iy24FA#1 = Add<int>(_t1C1E,t224DC);
          int t24FE#1 = Mul<int>(n024E1,iy24FA);
          int index24FF#1 = Add<int>(ix24DA,t24FE);
          addr(IMAGE2D<float>) a24FC#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr24E4,index24FF);
          real4 v22506#1 = LoadVoxels<IMAGE2D<float>,4>(a24FC);
          int iy2508#1 = Add<int>(_t1BF6,t224DC);
          int t250C#1 = Mul<int>(n024E1,iy2508);
          int index250D#1 = Add<int>(ix24DA,t250C);
          addr(IMAGE2D<float>) a250A#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr24E4,index250D);
          real4 v32514#1 = LoadVoxels<IMAGE2D<float>,4>(a250A);
          real fy2516#4 = Index<real2,1>(f24D2);
          real t32518#1 = Add<real>(fy2516,_t1BF2);
          real t1251A#1 = Sub<real>(fy2516,_t1BF2);
          real t0251C#1 = Sub<real>(fy2516,_t1BF4);
          real4 a251E#3 = <real4>[t32518,fy2516,t1251A,t0251C];
          real _f2531#2 = 0.133333333333e1;
          real _f2532#2 = 0.666666666667e0;
          real4 a02521#4 = <real4>[_f2531,_f2532,_f2532,_f2531];
          real _f252D#1 = -0.2e1;
          real _f252E#2 = 0.0;
          real4 a12522#4 = <real4>[_f252D,_f252E,_f252E,_t1BF4];
          real _f252A#2 = -0.1e1;
          real4 a22523#4 = <real4>[_t1BF2,_f252A,_f252A,_t1BF2];
          real _f2525#1 = -0.166666666667e0;
          real _f2526#1 = 0.5e0;
          real _f2527#1 = -0.5e0;
          real _f2528#1 = 0.166666666667e0;
          real4 a32524#4 = <real4>[_f2525,_f2526,_f2527,_f2528];
          real4 prod32535#1 = Mul<real4>(a251E,a32524);
          real4 sum22536#1 = Add<real4>(a22523,prod32535);
          real4 prod22537#1 = Mul<real4>(a251E,sum22536);
          real4 sum12538#1 = Add<real4>(a12522,prod22537);
          real4 prod12539#1 = Mul<real4>(a251E,sum12538);
          real4 hy2520#1 = Add<real4>(a02521,prod12539);
          real fx2554#4 = Index<real2,0>(f24D2);
          real t32556#1 = Add<real>(fx2554,_t1BF2);
          real t12558#1 = Sub<real>(fx2554,_t1BF2);
          real t0255A#1 = Sub<real>(fx2554,_t1BF4);
          real4 a255C#3 = <real4>[t32556,fx2554,t12558,t0255A];
          real4 prod32573#1 = Mul<real4>(a255C,a32524);
          real4 sum22574#1 = Add<real4>(a22523,prod32573);
          real4 prod22575#1 = Mul<real4>(a255C,sum22574);
          real4 sum12576#1 = Add<real4>(a12522,prod22575);
          real4 prod12577#1 = Mul<real4>(a255C,sum12576);
          real4 hx255E#4 = Add<real4>(a02521,prod12577);
          real t02592#1 = Dot<4>(v024EA,hx255E);
          real t12594#1 = Dot<4>(v124F8,hx255E);
          real t22596#1 = Dot<4>(v22506,hx255E);
          real t32598#1 = Dot<4>(v32514,hx255E);
          real4 tv259A#1 = <real4>[t02592,t12594,t22596,t32598];
          real _t259C#1 = Dot<4>(hy2520,tv259A);
          real2 x259E#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v051BA1);
          real2 nd25A0#2 = Floor<2>(x259E);
          real2 f25A2#2 = Sub<real2>(x259E,nd25A0);
          int{2} n25A4#2 = RealToInt<2>(nd25A0);
          int t225A6#1 = Index<int{2},0>(n25A4);
          int ix25A8#4 = Add<int>(t124D6,t225A6);
          int t225AA#4 = Index<int{2},1>(n25A4);
          int iy25AC#1 = Add<int>(t124D6,t225AA);
          int t25B0#1 = Mul<int>(n024E1,iy25AC);
          int index25B1#1 = Add<int>(ix25A8,t25B0);
          addr(IMAGE2D<int>) imgBaseAddr25B2#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a25AE#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr25B2,index25B1);
          real4 v025B8#1 = LoadVoxels<IMAGE2D<int>,4>(a25AE);
          int iy25BA#1 = Add<int>(_t1C1A,t225AA);
          int t25BE#1 = Mul<int>(n024E1,iy25BA);
          int index25BF#1 = Add<int>(ix25A8,t25BE);
          addr(IMAGE2D<int>) a25BC#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr25B2,index25BF);
          real4 v125C6#1 = LoadVoxels<IMAGE2D<int>,4>(a25BC);
          int iy25C8#1 = Add<int>(_t1C1E,t225AA);
          int t25CC#1 = Mul<int>(n024E1,iy25C8);
          int index25CD#1 = Add<int>(ix25A8,t25CC);
          addr(IMAGE2D<int>) a25CA#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr25B2,index25CD);
          real4 v225D4#1 = LoadVoxels<IMAGE2D<int>,4>(a25CA);
          int iy25D6#1 = Add<int>(_t1BF6,t225AA);
          int t25DA#1 = Mul<int>(n024E1,iy25D6);
          int index25DB#1 = Add<int>(ix25A8,t25DA);
          addr(IMAGE2D<int>) a25D8#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr25B2,index25DB);
          real4 v325E2#1 = LoadVoxels<IMAGE2D<int>,4>(a25D8);
          real fy25E4#4 = Index<real2,1>(f25A2);
          real t325E6#1 = Add<real>(fy25E4,_t1BF2);
          real t125E8#1 = Sub<real>(fy25E4,_t1BF2);
          real t025EA#1 = Sub<real>(fy25E4,_t1BF4);
          real4 a25EC#3 = <real4>[t325E6,fy25E4,t125E8,t025EA];
          real4 prod32603#1 = Mul<real4>(a25EC,a32524);
          real4 sum22604#1 = Add<real4>(a22523,prod32603);
          real4 prod22605#1 = Mul<real4>(a25EC,sum22604);
          real4 sum12606#1 = Add<real4>(a12522,prod22605);
          real4 prod12607#1 = Mul<real4>(a25EC,sum12606);
          real4 hy25EE#1 = Add<real4>(a02521,prod12607);
          real fx2622#4 = Index<real2,0>(f25A2);
          real t32624#1 = Add<real>(fx2622,_t1BF2);
          real t12626#1 = Sub<real>(fx2622,_t1BF2);
          real t02628#1 = Sub<real>(fx2622,_t1BF4);
          real4 a262A#3 = <real4>[t32624,fx2622,t12626,t02628];
          real4 prod32641#1 = Mul<real4>(a262A,a32524);
          real4 sum22642#1 = Add<real4>(a22523,prod32641);
          real4 prod22643#1 = Mul<real4>(a262A,sum22642);
          real4 sum12644#1 = Add<real4>(a12522,prod22643);
          real4 prod12645#1 = Mul<real4>(a262A,sum12644);
          real4 hx262C#4 = Add<real4>(a02521,prod12645);
          real t02660#1 = Dot<4>(v025B8,hx262C);
          real t12662#1 = Dot<4>(v125C6,hx262C);
          real t22664#1 = Dot<4>(v225D4,hx262C);
          real t32666#1 = Dot<4>(v325E2,hx262C);
          real4 tv2668#1 = <real4>[t02660,t12662,t22664,t32666];
          real _t266A#1 = Dot<4>(hy25EE,tv2668);
          real _t266C#2 = Sub<real>(_t259C,_t266A);
          real _t266E#1 = Mul<real>(_t266C,_t266C);
          real score2670#1 = Add<real>(score24B9,_t266E);
          goto JOIN2673
        JOIN2673:  preds = [ASSIGN2671,COND24CF]
          real score2672#2 = phi(score2670,score24B9)
          real _t2674#1 = Dot<2>(r01C0C,v061BA3);
          real _t2676#1 = Dot<2>(r11C12,v061BA3);
          real2 _t2678#1 = <real2>[_t2674,_t2676];
          real2 pos267A#1 = Add<real2>(_t2678,_t1C22);
          real2 x267C#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos267A);
          bool _t267E#1 = Inside<IMAGE2D<float>,2>(x267C,_t1B8D);
          if _t267E then goto ASSIGN2682 else goto ASSIGN35F0
        ASSIGN2682:  preds = [COND2680]
          real2 x2681#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v061BA3);
          bool _t2683#1 = Inside<IMAGE2D<int>,2>(x2681,_t1B89);
          goto JOIN2687
        JOIN2687:  preds = [ASSIGN2684,ASSIGN35F0]
          bool _t2685#1 = phi(_t2683,_t2686)
          if _t2685 then goto ASSIGN268A else goto JOIN282C
        ASSIGN268A:  preds = [COND2688]
          real2 nd2689#2 = Floor<2>(x267C);
          real2 f268B#2 = Sub<real2>(x267C,nd2689);
          int{2} n268D#2 = RealToInt<2>(nd2689);
          int t1268F#4 = -1;
          int t22691#1 = Index<int{2},0>(n268D);
          int ix2693#4 = Add<int>(t1268F,t22691);
          int t22695#4 = Index<int{2},1>(n268D);
          int iy2697#1 = Add<int>(t1268F,t22695);
          int n0269A#8 = 21;
          int t269B#1 = Mul<int>(n0269A,iy2697);
          int index269C#1 = Add<int>(ix2693,t269B);
          addr(IMAGE2D<float>) imgBaseAddr269D#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a2699#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr269D,index269C);
          real4 v026A3#1 = LoadVoxels<IMAGE2D<float>,4>(a2699);
          int iy26A5#1 = Add<int>(_t1C1A,t22695);
          int t26A9#1 = Mul<int>(n0269A,iy26A5);
          int index26AA#1 = Add<int>(ix2693,t26A9);
          addr(IMAGE2D<float>) a26A7#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr269D,index26AA);
          real4 v126B1#1 = LoadVoxels<IMAGE2D<float>,4>(a26A7);
          int iy26B3#1 = Add<int>(_t1C1E,t22695);
          int t26B7#1 = Mul<int>(n0269A,iy26B3);
          int index26B8#1 = Add<int>(ix2693,t26B7);
          addr(IMAGE2D<float>) a26B5#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr269D,index26B8);
          real4 v226BF#1 = LoadVoxels<IMAGE2D<float>,4>(a26B5);
          int iy26C1#1 = Add<int>(_t1BF6,t22695);
          int t26C5#1 = Mul<int>(n0269A,iy26C1);
          int index26C6#1 = Add<int>(ix2693,t26C5);
          addr(IMAGE2D<float>) a26C3#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr269D,index26C6);
          real4 v326CD#1 = LoadVoxels<IMAGE2D<float>,4>(a26C3);
          real fy26CF#4 = Index<real2,1>(f268B);
          real t326D1#1 = Add<real>(fy26CF,_t1BF2);
          real t126D3#1 = Sub<real>(fy26CF,_t1BF2);
          real t026D5#1 = Sub<real>(fy26CF,_t1BF4);
          real4 a26D7#3 = <real4>[t326D1,fy26CF,t126D3,t026D5];
          real _f26EA#2 = 0.133333333333e1;
          real _f26EB#2 = 0.666666666667e0;
          real4 a026DA#4 = <real4>[_f26EA,_f26EB,_f26EB,_f26EA];
          real _f26E6#1 = -0.2e1;
          real _f26E7#2 = 0.0;
          real4 a126DB#4 = <real4>[_f26E6,_f26E7,_f26E7,_t1BF4];
          real _f26E3#2 = -0.1e1;
          real4 a226DC#4 = <real4>[_t1BF2,_f26E3,_f26E3,_t1BF2];
          real _f26DE#1 = -0.166666666667e0;
          real _f26DF#1 = 0.5e0;
          real _f26E0#1 = -0.5e0;
          real _f26E1#1 = 0.166666666667e0;
          real4 a326DD#4 = <real4>[_f26DE,_f26DF,_f26E0,_f26E1];
          real4 prod326EE#1 = Mul<real4>(a26D7,a326DD);
          real4 sum226EF#1 = Add<real4>(a226DC,prod326EE);
          real4 prod226F0#1 = Mul<real4>(a26D7,sum226EF);
          real4 sum126F1#1 = Add<real4>(a126DB,prod226F0);
          real4 prod126F2#1 = Mul<real4>(a26D7,sum126F1);
          real4 hy26D9#1 = Add<real4>(a026DA,prod126F2);
          real fx270D#4 = Index<real2,0>(f268B);
          real t3270F#1 = Add<real>(fx270D,_t1BF2);
          real t12711#1 = Sub<real>(fx270D,_t1BF2);
          real t02713#1 = Sub<real>(fx270D,_t1BF4);
          real4 a2715#3 = <real4>[t3270F,fx270D,t12711,t02713];
          real4 prod3272C#1 = Mul<real4>(a2715,a326DD);
          real4 sum2272D#1 = Add<real4>(a226DC,prod3272C);
          real4 prod2272E#1 = Mul<real4>(a2715,sum2272D);
          real4 sum1272F#1 = Add<real4>(a126DB,prod2272E);
          real4 prod12730#1 = Mul<real4>(a2715,sum1272F);
          real4 hx2717#4 = Add<real4>(a026DA,prod12730);
          real t0274B#1 = Dot<4>(v026A3,hx2717);
          real t1274D#1 = Dot<4>(v126B1,hx2717);
          real t2274F#1 = Dot<4>(v226BF,hx2717);
          real t32751#1 = Dot<4>(v326CD,hx2717);
          real4 tv2753#1 = <real4>[t0274B,t1274D,t2274F,t32751];
          real _t2755#1 = Dot<4>(hy26D9,tv2753);
          real2 x2757#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v061BA3);
          real2 nd2759#2 = Floor<2>(x2757);
          real2 f275B#2 = Sub<real2>(x2757,nd2759);
          int{2} n275D#2 = RealToInt<2>(nd2759);
          int t2275F#1 = Index<int{2},0>(n275D);
          int ix2761#4 = Add<int>(t1268F,t2275F);
          int t22763#4 = Index<int{2},1>(n275D);
          int iy2765#1 = Add<int>(t1268F,t22763);
          int t2769#1 = Mul<int>(n0269A,iy2765);
          int index276A#1 = Add<int>(ix2761,t2769);
          addr(IMAGE2D<int>) imgBaseAddr276B#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a2767#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr276B,index276A);
          real4 v02771#1 = LoadVoxels<IMAGE2D<int>,4>(a2767);
          int iy2773#1 = Add<int>(_t1C1A,t22763);
          int t2777#1 = Mul<int>(n0269A,iy2773);
          int index2778#1 = Add<int>(ix2761,t2777);
          addr(IMAGE2D<int>) a2775#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr276B,index2778);
          real4 v1277F#1 = LoadVoxels<IMAGE2D<int>,4>(a2775);
          int iy2781#1 = Add<int>(_t1C1E,t22763);
          int t2785#1 = Mul<int>(n0269A,iy2781);
          int index2786#1 = Add<int>(ix2761,t2785);
          addr(IMAGE2D<int>) a2783#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr276B,index2786);
          real4 v2278D#1 = LoadVoxels<IMAGE2D<int>,4>(a2783);
          int iy278F#1 = Add<int>(_t1BF6,t22763);
          int t2793#1 = Mul<int>(n0269A,iy278F);
          int index2794#1 = Add<int>(ix2761,t2793);
          addr(IMAGE2D<int>) a2791#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr276B,index2794);
          real4 v3279B#1 = LoadVoxels<IMAGE2D<int>,4>(a2791);
          real fy279D#4 = Index<real2,1>(f275B);
          real t3279F#1 = Add<real>(fy279D,_t1BF2);
          real t127A1#1 = Sub<real>(fy279D,_t1BF2);
          real t027A3#1 = Sub<real>(fy279D,_t1BF4);
          real4 a27A5#3 = <real4>[t3279F,fy279D,t127A1,t027A3];
          real4 prod327BC#1 = Mul<real4>(a27A5,a326DD);
          real4 sum227BD#1 = Add<real4>(a226DC,prod327BC);
          real4 prod227BE#1 = Mul<real4>(a27A5,sum227BD);
          real4 sum127BF#1 = Add<real4>(a126DB,prod227BE);
          real4 prod127C0#1 = Mul<real4>(a27A5,sum127BF);
          real4 hy27A7#1 = Add<real4>(a026DA,prod127C0);
          real fx27DB#4 = Index<real2,0>(f275B);
          real t327DD#1 = Add<real>(fx27DB,_t1BF2);
          real t127DF#1 = Sub<real>(fx27DB,_t1BF2);
          real t027E1#1 = Sub<real>(fx27DB,_t1BF4);
          real4 a27E3#3 = <real4>[t327DD,fx27DB,t127DF,t027E1];
          real4 prod327FA#1 = Mul<real4>(a27E3,a326DD);
          real4 sum227FB#1 = Add<real4>(a226DC,prod327FA);
          real4 prod227FC#1 = Mul<real4>(a27E3,sum227FB);
          real4 sum127FD#1 = Add<real4>(a126DB,prod227FC);
          real4 prod127FE#1 = Mul<real4>(a27E3,sum127FD);
          real4 hx27E5#4 = Add<real4>(a026DA,prod127FE);
          real t02819#1 = Dot<4>(v02771,hx27E5);
          real t1281B#1 = Dot<4>(v1277F,hx27E5);
          real t2281D#1 = Dot<4>(v2278D,hx27E5);
          real t3281F#1 = Dot<4>(v3279B,hx27E5);
          real4 tv2821#1 = <real4>[t02819,t1281B,t2281D,t3281F];
          real _t2823#1 = Dot<4>(hy27A7,tv2821);
          real _t2825#2 = Sub<real>(_t2755,_t2823);
          real _t2827#1 = Mul<real>(_t2825,_t2825);
          real score2829#1 = Add<real>(score2672,_t2827);
          goto JOIN282C
        JOIN282C:  preds = [ASSIGN282A,COND2688]
          real score282B#2 = phi(score2829,score2672)
          if _t230C then goto JOIN282E else goto JOIN282E
        JOIN282E:  preds = [COND282D]
          if _t2313 then goto ASSIGN2831 else goto JOIN29D3
        ASSIGN2831:  preds = [COND282F]
          real2 nd2830#2 = Floor<2>(x230A);
          real2 f2832#2 = Sub<real2>(x230A,nd2830);
          int{2} n2834#2 = RealToInt<2>(nd2830);
          int t12836#4 = -1;
          int t22838#1 = Index<int{2},0>(n2834);
          int ix283A#4 = Add<int>(t12836,t22838);
          int t2283C#4 = Index<int{2},1>(n2834);
          int iy283E#1 = Add<int>(t12836,t2283C);
          int n02841#8 = 21;
          int t2842#1 = Mul<int>(n02841,iy283E);
          int index2843#1 = Add<int>(ix283A,t2842);
          addr(IMAGE2D<float>) imgBaseAddr2844#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a2840#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2844,index2843);
          real4 v0284A#1 = LoadVoxels<IMAGE2D<float>,4>(a2840);
          int iy284C#1 = Add<int>(_t1C1A,t2283C);
          int t2850#1 = Mul<int>(n02841,iy284C);
          int index2851#1 = Add<int>(ix283A,t2850);
          addr(IMAGE2D<float>) a284E#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2844,index2851);
          real4 v12858#1 = LoadVoxels<IMAGE2D<float>,4>(a284E);
          int iy285A#1 = Add<int>(_t1C1E,t2283C);
          int t285E#1 = Mul<int>(n02841,iy285A);
          int index285F#1 = Add<int>(ix283A,t285E);
          addr(IMAGE2D<float>) a285C#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2844,index285F);
          real4 v22866#1 = LoadVoxels<IMAGE2D<float>,4>(a285C);
          int iy2868#1 = Add<int>(_t1BF6,t2283C);
          int t286C#1 = Mul<int>(n02841,iy2868);
          int index286D#1 = Add<int>(ix283A,t286C);
          addr(IMAGE2D<float>) a286A#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2844,index286D);
          real4 v32874#1 = LoadVoxels<IMAGE2D<float>,4>(a286A);
          real fy2876#4 = Index<real2,1>(f2832);
          real t32878#1 = Add<real>(fy2876,_t1BF2);
          real t1287A#1 = Sub<real>(fy2876,_t1BF2);
          real t0287C#1 = Sub<real>(fy2876,_t1BF4);
          real4 a287E#3 = <real4>[t32878,fy2876,t1287A,t0287C];
          real _f2891#2 = 0.133333333333e1;
          real _f2892#2 = 0.666666666667e0;
          real4 a02881#4 = <real4>[_f2891,_f2892,_f2892,_f2891];
          real _f288D#1 = -0.2e1;
          real _f288E#2 = 0.0;
          real4 a12882#4 = <real4>[_f288D,_f288E,_f288E,_t1BF4];
          real _f288A#2 = -0.1e1;
          real4 a22883#4 = <real4>[_t1BF2,_f288A,_f288A,_t1BF2];
          real _f2885#1 = -0.166666666667e0;
          real _f2886#1 = 0.5e0;
          real _f2887#1 = -0.5e0;
          real _f2888#1 = 0.166666666667e0;
          real4 a32884#4 = <real4>[_f2885,_f2886,_f2887,_f2888];
          real4 prod32895#1 = Mul<real4>(a287E,a32884);
          real4 sum22896#1 = Add<real4>(a22883,prod32895);
          real4 prod22897#1 = Mul<real4>(a287E,sum22896);
          real4 sum12898#1 = Add<real4>(a12882,prod22897);
          real4 prod12899#1 = Mul<real4>(a287E,sum12898);
          real4 hy2880#1 = Add<real4>(a02881,prod12899);
          real fx28B4#4 = Index<real2,0>(f2832);
          real t328B6#1 = Add<real>(fx28B4,_t1BF2);
          real t128B8#1 = Sub<real>(fx28B4,_t1BF2);
          real t028BA#1 = Sub<real>(fx28B4,_t1BF4);
          real4 a28BC#3 = <real4>[t328B6,fx28B4,t128B8,t028BA];
          real4 prod328D3#1 = Mul<real4>(a28BC,a32884);
          real4 sum228D4#1 = Add<real4>(a22883,prod328D3);
          real4 prod228D5#1 = Mul<real4>(a28BC,sum228D4);
          real4 sum128D6#1 = Add<real4>(a12882,prod228D5);
          real4 prod128D7#1 = Mul<real4>(a28BC,sum128D6);
          real4 hx28BE#4 = Add<real4>(a02881,prod128D7);
          real t028F2#1 = Dot<4>(v0284A,hx28BE);
          real t128F4#1 = Dot<4>(v12858,hx28BE);
          real t228F6#1 = Dot<4>(v22866,hx28BE);
          real t328F8#1 = Dot<4>(v32874,hx28BE);
          real4 tv28FA#1 = <real4>[t028F2,t128F4,t228F6,t328F8];
          real _t28FC#1 = Dot<4>(hy2880,tv28FA);
          real2 x28FE#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v041B9F);
          real2 nd2900#2 = Floor<2>(x28FE);
          real2 f2902#2 = Sub<real2>(x28FE,nd2900);
          int{2} n2904#2 = RealToInt<2>(nd2900);
          int t22906#1 = Index<int{2},0>(n2904);
          int ix2908#4 = Add<int>(t12836,t22906);
          int t2290A#4 = Index<int{2},1>(n2904);
          int iy290C#1 = Add<int>(t12836,t2290A);
          int t2910#1 = Mul<int>(n02841,iy290C);
          int index2911#1 = Add<int>(ix2908,t2910);
          addr(IMAGE2D<int>) imgBaseAddr2912#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a290E#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2912,index2911);
          real4 v02918#1 = LoadVoxels<IMAGE2D<int>,4>(a290E);
          int iy291A#1 = Add<int>(_t1C1A,t2290A);
          int t291E#1 = Mul<int>(n02841,iy291A);
          int index291F#1 = Add<int>(ix2908,t291E);
          addr(IMAGE2D<int>) a291C#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2912,index291F);
          real4 v12926#1 = LoadVoxels<IMAGE2D<int>,4>(a291C);
          int iy2928#1 = Add<int>(_t1C1E,t2290A);
          int t292C#1 = Mul<int>(n02841,iy2928);
          int index292D#1 = Add<int>(ix2908,t292C);
          addr(IMAGE2D<int>) a292A#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2912,index292D);
          real4 v22934#1 = LoadVoxels<IMAGE2D<int>,4>(a292A);
          int iy2936#1 = Add<int>(_t1BF6,t2290A);
          int t293A#1 = Mul<int>(n02841,iy2936);
          int index293B#1 = Add<int>(ix2908,t293A);
          addr(IMAGE2D<int>) a2938#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2912,index293B);
          real4 v32942#1 = LoadVoxels<IMAGE2D<int>,4>(a2938);
          real fy2944#4 = Index<real2,1>(f2902);
          real t32946#1 = Add<real>(fy2944,_t1BF2);
          real t12948#1 = Sub<real>(fy2944,_t1BF2);
          real t0294A#1 = Sub<real>(fy2944,_t1BF4);
          real4 a294C#3 = <real4>[t32946,fy2944,t12948,t0294A];
          real4 prod32963#1 = Mul<real4>(a294C,a32884);
          real4 sum22964#1 = Add<real4>(a22883,prod32963);
          real4 prod22965#1 = Mul<real4>(a294C,sum22964);
          real4 sum12966#1 = Add<real4>(a12882,prod22965);
          real4 prod12967#1 = Mul<real4>(a294C,sum12966);
          real4 hy294E#1 = Add<real4>(a02881,prod12967);
          real fx2982#4 = Index<real2,0>(f2902);
          real t32984#1 = Add<real>(fx2982,_t1BF2);
          real t12986#1 = Sub<real>(fx2982,_t1BF2);
          real t02988#1 = Sub<real>(fx2982,_t1BF4);
          real4 a298A#3 = <real4>[t32984,fx2982,t12986,t02988];
          real4 prod329A1#1 = Mul<real4>(a298A,a32884);
          real4 sum229A2#1 = Add<real4>(a22883,prod329A1);
          real4 prod229A3#1 = Mul<real4>(a298A,sum229A2);
          real4 sum129A4#1 = Add<real4>(a12882,prod229A3);
          real4 prod129A5#1 = Mul<real4>(a298A,sum129A4);
          real4 hx298C#4 = Add<real4>(a02881,prod129A5);
          real t029C0#1 = Dot<4>(v02918,hx298C);
          real t129C2#1 = Dot<4>(v12926,hx298C);
          real t229C4#1 = Dot<4>(v22934,hx298C);
          real t329C6#1 = Dot<4>(v32942,hx298C);
          real4 tv29C8#1 = <real4>[t029C0,t129C2,t229C4,t329C6];
          real _t29CA#1 = Dot<4>(hy294E,tv29C8);
          real _t29CC#2 = Sub<real>(_t28FC,_t29CA);
          real _t29CE#1 = Mul<real>(_t29CC,_t29CC);
          real score29D0#1 = Add<real>(score282B,_t29CE);
          goto JOIN29D3
        JOIN29D3:  preds = [ASSIGN29D1,COND282F]
          real score29D2#2 = phi(score29D0,score282B)
          real _t29D4#1 = Dot<2>(r01C0C,v081BA5);
          real _t29D6#1 = Dot<2>(r11C12,v081BA5);
          real2 _t29D8#1 = <real2>[_t29D4,_t29D6];
          real2 pos29DA#1 = Add<real2>(_t29D8,_t1C22);
          real2 x29DC#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos29DA);
          bool _t29DE#1 = Inside<IMAGE2D<float>,2>(x29DC,_t1B8D);
          if _t29DE then goto ASSIGN29E2 else goto ASSIGN35EF
        ASSIGN29E2:  preds = [COND29E0]
          real2 x29E1#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v081BA5);
          bool _t29E3#1 = Inside<IMAGE2D<int>,2>(x29E1,_t1B89);
          goto JOIN29E7
        JOIN29E7:  preds = [ASSIGN29E4,ASSIGN35EF]
          bool _t29E5#1 = phi(_t29E3,_t29E6)
          if _t29E5 then goto ASSIGN29EA else goto JOIN2B8C
        ASSIGN29EA:  preds = [COND29E8]
          real2 nd29E9#2 = Floor<2>(x29DC);
          real2 f29EB#2 = Sub<real2>(x29DC,nd29E9);
          int{2} n29ED#2 = RealToInt<2>(nd29E9);
          int t129EF#4 = -1;
          int t229F1#1 = Index<int{2},0>(n29ED);
          int ix29F3#4 = Add<int>(t129EF,t229F1);
          int t229F5#4 = Index<int{2},1>(n29ED);
          int iy29F7#1 = Add<int>(t129EF,t229F5);
          int n029FA#8 = 21;
          int t29FB#1 = Mul<int>(n029FA,iy29F7);
          int index29FC#1 = Add<int>(ix29F3,t29FB);
          addr(IMAGE2D<float>) imgBaseAddr29FD#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a29F9#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr29FD,index29FC);
          real4 v02A03#1 = LoadVoxels<IMAGE2D<float>,4>(a29F9);
          int iy2A05#1 = Add<int>(_t1C1A,t229F5);
          int t2A09#1 = Mul<int>(n029FA,iy2A05);
          int index2A0A#1 = Add<int>(ix29F3,t2A09);
          addr(IMAGE2D<float>) a2A07#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr29FD,index2A0A);
          real4 v12A11#1 = LoadVoxels<IMAGE2D<float>,4>(a2A07);
          int iy2A13#1 = Add<int>(_t1C1E,t229F5);
          int t2A17#1 = Mul<int>(n029FA,iy2A13);
          int index2A18#1 = Add<int>(ix29F3,t2A17);
          addr(IMAGE2D<float>) a2A15#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr29FD,index2A18);
          real4 v22A1F#1 = LoadVoxels<IMAGE2D<float>,4>(a2A15);
          int iy2A21#1 = Add<int>(_t1BF6,t229F5);
          int t2A25#1 = Mul<int>(n029FA,iy2A21);
          int index2A26#1 = Add<int>(ix29F3,t2A25);
          addr(IMAGE2D<float>) a2A23#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr29FD,index2A26);
          real4 v32A2D#1 = LoadVoxels<IMAGE2D<float>,4>(a2A23);
          real fy2A2F#4 = Index<real2,1>(f29EB);
          real t32A31#1 = Add<real>(fy2A2F,_t1BF2);
          real t12A33#1 = Sub<real>(fy2A2F,_t1BF2);
          real t02A35#1 = Sub<real>(fy2A2F,_t1BF4);
          real4 a2A37#3 = <real4>[t32A31,fy2A2F,t12A33,t02A35];
          real _f2A4A#2 = 0.133333333333e1;
          real _f2A4B#2 = 0.666666666667e0;
          real4 a02A3A#4 = <real4>[_f2A4A,_f2A4B,_f2A4B,_f2A4A];
          real _f2A46#1 = -0.2e1;
          real _f2A47#2 = 0.0;
          real4 a12A3B#4 = <real4>[_f2A46,_f2A47,_f2A47,_t1BF4];
          real _f2A43#2 = -0.1e1;
          real4 a22A3C#4 = <real4>[_t1BF2,_f2A43,_f2A43,_t1BF2];
          real _f2A3E#1 = -0.166666666667e0;
          real _f2A3F#1 = 0.5e0;
          real _f2A40#1 = -0.5e0;
          real _f2A41#1 = 0.166666666667e0;
          real4 a32A3D#4 = <real4>[_f2A3E,_f2A3F,_f2A40,_f2A41];
          real4 prod32A4E#1 = Mul<real4>(a2A37,a32A3D);
          real4 sum22A4F#1 = Add<real4>(a22A3C,prod32A4E);
          real4 prod22A50#1 = Mul<real4>(a2A37,sum22A4F);
          real4 sum12A51#1 = Add<real4>(a12A3B,prod22A50);
          real4 prod12A52#1 = Mul<real4>(a2A37,sum12A51);
          real4 hy2A39#1 = Add<real4>(a02A3A,prod12A52);
          real fx2A6D#4 = Index<real2,0>(f29EB);
          real t32A6F#1 = Add<real>(fx2A6D,_t1BF2);
          real t12A71#1 = Sub<real>(fx2A6D,_t1BF2);
          real t02A73#1 = Sub<real>(fx2A6D,_t1BF4);
          real4 a2A75#3 = <real4>[t32A6F,fx2A6D,t12A71,t02A73];
          real4 prod32A8C#1 = Mul<real4>(a2A75,a32A3D);
          real4 sum22A8D#1 = Add<real4>(a22A3C,prod32A8C);
          real4 prod22A8E#1 = Mul<real4>(a2A75,sum22A8D);
          real4 sum12A8F#1 = Add<real4>(a12A3B,prod22A8E);
          real4 prod12A90#1 = Mul<real4>(a2A75,sum12A8F);
          real4 hx2A77#4 = Add<real4>(a02A3A,prod12A90);
          real t02AAB#1 = Dot<4>(v02A03,hx2A77);
          real t12AAD#1 = Dot<4>(v12A11,hx2A77);
          real t22AAF#1 = Dot<4>(v22A1F,hx2A77);
          real t32AB1#1 = Dot<4>(v32A2D,hx2A77);
          real4 tv2AB3#1 = <real4>[t02AAB,t12AAD,t22AAF,t32AB1];
          real _t2AB5#1 = Dot<4>(hy2A39,tv2AB3);
          real2 x2AB7#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v081BA5);
          real2 nd2AB9#2 = Floor<2>(x2AB7);
          real2 f2ABB#2 = Sub<real2>(x2AB7,nd2AB9);
          int{2} n2ABD#2 = RealToInt<2>(nd2AB9);
          int t22ABF#1 = Index<int{2},0>(n2ABD);
          int ix2AC1#4 = Add<int>(t129EF,t22ABF);
          int t22AC3#4 = Index<int{2},1>(n2ABD);
          int iy2AC5#1 = Add<int>(t129EF,t22AC3);
          int t2AC9#1 = Mul<int>(n029FA,iy2AC5);
          int index2ACA#1 = Add<int>(ix2AC1,t2AC9);
          addr(IMAGE2D<int>) imgBaseAddr2ACB#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a2AC7#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2ACB,index2ACA);
          real4 v02AD1#1 = LoadVoxels<IMAGE2D<int>,4>(a2AC7);
          int iy2AD3#1 = Add<int>(_t1C1A,t22AC3);
          int t2AD7#1 = Mul<int>(n029FA,iy2AD3);
          int index2AD8#1 = Add<int>(ix2AC1,t2AD7);
          addr(IMAGE2D<int>) a2AD5#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2ACB,index2AD8);
          real4 v12ADF#1 = LoadVoxels<IMAGE2D<int>,4>(a2AD5);
          int iy2AE1#1 = Add<int>(_t1C1E,t22AC3);
          int t2AE5#1 = Mul<int>(n029FA,iy2AE1);
          int index2AE6#1 = Add<int>(ix2AC1,t2AE5);
          addr(IMAGE2D<int>) a2AE3#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2ACB,index2AE6);
          real4 v22AED#1 = LoadVoxels<IMAGE2D<int>,4>(a2AE3);
          int iy2AEF#1 = Add<int>(_t1BF6,t22AC3);
          int t2AF3#1 = Mul<int>(n029FA,iy2AEF);
          int index2AF4#1 = Add<int>(ix2AC1,t2AF3);
          addr(IMAGE2D<int>) a2AF1#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2ACB,index2AF4);
          real4 v32AFB#1 = LoadVoxels<IMAGE2D<int>,4>(a2AF1);
          real fy2AFD#4 = Index<real2,1>(f2ABB);
          real t32AFF#1 = Add<real>(fy2AFD,_t1BF2);
          real t12B01#1 = Sub<real>(fy2AFD,_t1BF2);
          real t02B03#1 = Sub<real>(fy2AFD,_t1BF4);
          real4 a2B05#3 = <real4>[t32AFF,fy2AFD,t12B01,t02B03];
          real4 prod32B1C#1 = Mul<real4>(a2B05,a32A3D);
          real4 sum22B1D#1 = Add<real4>(a22A3C,prod32B1C);
          real4 prod22B1E#1 = Mul<real4>(a2B05,sum22B1D);
          real4 sum12B1F#1 = Add<real4>(a12A3B,prod22B1E);
          real4 prod12B20#1 = Mul<real4>(a2B05,sum12B1F);
          real4 hy2B07#1 = Add<real4>(a02A3A,prod12B20);
          real fx2B3B#4 = Index<real2,0>(f2ABB);
          real t32B3D#1 = Add<real>(fx2B3B,_t1BF2);
          real t12B3F#1 = Sub<real>(fx2B3B,_t1BF2);
          real t02B41#1 = Sub<real>(fx2B3B,_t1BF4);
          real4 a2B43#3 = <real4>[t32B3D,fx2B3B,t12B3F,t02B41];
          real4 prod32B5A#1 = Mul<real4>(a2B43,a32A3D);
          real4 sum22B5B#1 = Add<real4>(a22A3C,prod32B5A);
          real4 prod22B5C#1 = Mul<real4>(a2B43,sum22B5B);
          real4 sum12B5D#1 = Add<real4>(a12A3B,prod22B5C);
          real4 prod12B5E#1 = Mul<real4>(a2B43,sum12B5D);
          real4 hx2B45#4 = Add<real4>(a02A3A,prod12B5E);
          real t02B79#1 = Dot<4>(v02AD1,hx2B45);
          real t12B7B#1 = Dot<4>(v12ADF,hx2B45);
          real t22B7D#1 = Dot<4>(v22AED,hx2B45);
          real t32B7F#1 = Dot<4>(v32AFB,hx2B45);
          real4 tv2B81#1 = <real4>[t02B79,t12B7B,t22B7D,t32B7F];
          real _t2B83#1 = Dot<4>(hy2B07,tv2B81);
          real _t2B85#2 = Sub<real>(_t2AB5,_t2B83);
          real _t2B87#1 = Mul<real>(_t2B85,_t2B85);
          real score2B89#1 = Add<real>(score29D2,_t2B87);
          goto JOIN2B8C
        JOIN2B8C:  preds = [ASSIGN2B8A,COND29E8]
          real score2B8B#2 = phi(score2B89,score29D2)
          real _t2B8D#1 = Dot<2>(r01C0C,v091BA7);
          real _t2B8F#1 = Dot<2>(r11C12,v091BA7);
          real2 _t2B91#1 = <real2>[_t2B8D,_t2B8F];
          real2 pos2B93#1 = Add<real2>(_t2B91,_t1C22);
          real2 x2B95#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos2B93);
          bool _t2B97#1 = Inside<IMAGE2D<float>,2>(x2B95,_t1B8D);
          if _t2B97 then goto ASSIGN2B9B else goto ASSIGN35EE
        ASSIGN2B9B:  preds = [COND2B99]
          real2 x2B9A#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v091BA7);
          bool _t2B9C#1 = Inside<IMAGE2D<int>,2>(x2B9A,_t1B89);
          goto JOIN2BA0
        JOIN2BA0:  preds = [ASSIGN2B9D,ASSIGN35EE]
          bool _t2B9E#1 = phi(_t2B9C,_t2B9F)
          if _t2B9E then goto ASSIGN2BA3 else goto JOIN2D45
        ASSIGN2BA3:  preds = [COND2BA1]
          real2 nd2BA2#2 = Floor<2>(x2B95);
          real2 f2BA4#2 = Sub<real2>(x2B95,nd2BA2);
          int{2} n2BA6#2 = RealToInt<2>(nd2BA2);
          int t12BA8#4 = -1;
          int t22BAA#1 = Index<int{2},0>(n2BA6);
          int ix2BAC#4 = Add<int>(t12BA8,t22BAA);
          int t22BAE#4 = Index<int{2},1>(n2BA6);
          int iy2BB0#1 = Add<int>(t12BA8,t22BAE);
          int n02BB3#8 = 21;
          int t2BB4#1 = Mul<int>(n02BB3,iy2BB0);
          int index2BB5#1 = Add<int>(ix2BAC,t2BB4);
          addr(IMAGE2D<float>) imgBaseAddr2BB6#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a2BB2#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2BB6,index2BB5);
          real4 v02BBC#1 = LoadVoxels<IMAGE2D<float>,4>(a2BB2);
          int iy2BBE#1 = Add<int>(_t1C1A,t22BAE);
          int t2BC2#1 = Mul<int>(n02BB3,iy2BBE);
          int index2BC3#1 = Add<int>(ix2BAC,t2BC2);
          addr(IMAGE2D<float>) a2BC0#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2BB6,index2BC3);
          real4 v12BCA#1 = LoadVoxels<IMAGE2D<float>,4>(a2BC0);
          int iy2BCC#1 = Add<int>(_t1C1E,t22BAE);
          int t2BD0#1 = Mul<int>(n02BB3,iy2BCC);
          int index2BD1#1 = Add<int>(ix2BAC,t2BD0);
          addr(IMAGE2D<float>) a2BCE#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2BB6,index2BD1);
          real4 v22BD8#1 = LoadVoxels<IMAGE2D<float>,4>(a2BCE);
          int iy2BDA#1 = Add<int>(_t1BF6,t22BAE);
          int t2BDE#1 = Mul<int>(n02BB3,iy2BDA);
          int index2BDF#1 = Add<int>(ix2BAC,t2BDE);
          addr(IMAGE2D<float>) a2BDC#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2BB6,index2BDF);
          real4 v32BE6#1 = LoadVoxels<IMAGE2D<float>,4>(a2BDC);
          real fy2BE8#4 = Index<real2,1>(f2BA4);
          real t32BEA#1 = Add<real>(fy2BE8,_t1BF2);
          real t12BEC#1 = Sub<real>(fy2BE8,_t1BF2);
          real t02BEE#1 = Sub<real>(fy2BE8,_t1BF4);
          real4 a2BF0#3 = <real4>[t32BEA,fy2BE8,t12BEC,t02BEE];
          real _f2C03#2 = 0.133333333333e1;
          real _f2C04#2 = 0.666666666667e0;
          real4 a02BF3#4 = <real4>[_f2C03,_f2C04,_f2C04,_f2C03];
          real _f2BFF#1 = -0.2e1;
          real _f2C00#2 = 0.0;
          real4 a12BF4#4 = <real4>[_f2BFF,_f2C00,_f2C00,_t1BF4];
          real _f2BFC#2 = -0.1e1;
          real4 a22BF5#4 = <real4>[_t1BF2,_f2BFC,_f2BFC,_t1BF2];
          real _f2BF7#1 = -0.166666666667e0;
          real _f2BF8#1 = 0.5e0;
          real _f2BF9#1 = -0.5e0;
          real _f2BFA#1 = 0.166666666667e0;
          real4 a32BF6#4 = <real4>[_f2BF7,_f2BF8,_f2BF9,_f2BFA];
          real4 prod32C07#1 = Mul<real4>(a2BF0,a32BF6);
          real4 sum22C08#1 = Add<real4>(a22BF5,prod32C07);
          real4 prod22C09#1 = Mul<real4>(a2BF0,sum22C08);
          real4 sum12C0A#1 = Add<real4>(a12BF4,prod22C09);
          real4 prod12C0B#1 = Mul<real4>(a2BF0,sum12C0A);
          real4 hy2BF2#1 = Add<real4>(a02BF3,prod12C0B);
          real fx2C26#4 = Index<real2,0>(f2BA4);
          real t32C28#1 = Add<real>(fx2C26,_t1BF2);
          real t12C2A#1 = Sub<real>(fx2C26,_t1BF2);
          real t02C2C#1 = Sub<real>(fx2C26,_t1BF4);
          real4 a2C2E#3 = <real4>[t32C28,fx2C26,t12C2A,t02C2C];
          real4 prod32C45#1 = Mul<real4>(a2C2E,a32BF6);
          real4 sum22C46#1 = Add<real4>(a22BF5,prod32C45);
          real4 prod22C47#1 = Mul<real4>(a2C2E,sum22C46);
          real4 sum12C48#1 = Add<real4>(a12BF4,prod22C47);
          real4 prod12C49#1 = Mul<real4>(a2C2E,sum12C48);
          real4 hx2C30#4 = Add<real4>(a02BF3,prod12C49);
          real t02C64#1 = Dot<4>(v02BBC,hx2C30);
          real t12C66#1 = Dot<4>(v12BCA,hx2C30);
          real t22C68#1 = Dot<4>(v22BD8,hx2C30);
          real t32C6A#1 = Dot<4>(v32BE6,hx2C30);
          real4 tv2C6C#1 = <real4>[t02C64,t12C66,t22C68,t32C6A];
          real _t2C6E#1 = Dot<4>(hy2BF2,tv2C6C);
          real2 x2C70#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v091BA7);
          real2 nd2C72#2 = Floor<2>(x2C70);
          real2 f2C74#2 = Sub<real2>(x2C70,nd2C72);
          int{2} n2C76#2 = RealToInt<2>(nd2C72);
          int t22C78#1 = Index<int{2},0>(n2C76);
          int ix2C7A#4 = Add<int>(t12BA8,t22C78);
          int t22C7C#4 = Index<int{2},1>(n2C76);
          int iy2C7E#1 = Add<int>(t12BA8,t22C7C);
          int t2C82#1 = Mul<int>(n02BB3,iy2C7E);
          int index2C83#1 = Add<int>(ix2C7A,t2C82);
          addr(IMAGE2D<int>) imgBaseAddr2C84#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a2C80#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2C84,index2C83);
          real4 v02C8A#1 = LoadVoxels<IMAGE2D<int>,4>(a2C80);
          int iy2C8C#1 = Add<int>(_t1C1A,t22C7C);
          int t2C90#1 = Mul<int>(n02BB3,iy2C8C);
          int index2C91#1 = Add<int>(ix2C7A,t2C90);
          addr(IMAGE2D<int>) a2C8E#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2C84,index2C91);
          real4 v12C98#1 = LoadVoxels<IMAGE2D<int>,4>(a2C8E);
          int iy2C9A#1 = Add<int>(_t1C1E,t22C7C);
          int t2C9E#1 = Mul<int>(n02BB3,iy2C9A);
          int index2C9F#1 = Add<int>(ix2C7A,t2C9E);
          addr(IMAGE2D<int>) a2C9C#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2C84,index2C9F);
          real4 v22CA6#1 = LoadVoxels<IMAGE2D<int>,4>(a2C9C);
          int iy2CA8#1 = Add<int>(_t1BF6,t22C7C);
          int t2CAC#1 = Mul<int>(n02BB3,iy2CA8);
          int index2CAD#1 = Add<int>(ix2C7A,t2CAC);
          addr(IMAGE2D<int>) a2CAA#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2C84,index2CAD);
          real4 v32CB4#1 = LoadVoxels<IMAGE2D<int>,4>(a2CAA);
          real fy2CB6#4 = Index<real2,1>(f2C74);
          real t32CB8#1 = Add<real>(fy2CB6,_t1BF2);
          real t12CBA#1 = Sub<real>(fy2CB6,_t1BF2);
          real t02CBC#1 = Sub<real>(fy2CB6,_t1BF4);
          real4 a2CBE#3 = <real4>[t32CB8,fy2CB6,t12CBA,t02CBC];
          real4 prod32CD5#1 = Mul<real4>(a2CBE,a32BF6);
          real4 sum22CD6#1 = Add<real4>(a22BF5,prod32CD5);
          real4 prod22CD7#1 = Mul<real4>(a2CBE,sum22CD6);
          real4 sum12CD8#1 = Add<real4>(a12BF4,prod22CD7);
          real4 prod12CD9#1 = Mul<real4>(a2CBE,sum12CD8);
          real4 hy2CC0#1 = Add<real4>(a02BF3,prod12CD9);
          real fx2CF4#4 = Index<real2,0>(f2C74);
          real t32CF6#1 = Add<real>(fx2CF4,_t1BF2);
          real t12CF8#1 = Sub<real>(fx2CF4,_t1BF2);
          real t02CFA#1 = Sub<real>(fx2CF4,_t1BF4);
          real4 a2CFC#3 = <real4>[t32CF6,fx2CF4,t12CF8,t02CFA];
          real4 prod32D13#1 = Mul<real4>(a2CFC,a32BF6);
          real4 sum22D14#1 = Add<real4>(a22BF5,prod32D13);
          real4 prod22D15#1 = Mul<real4>(a2CFC,sum22D14);
          real4 sum12D16#1 = Add<real4>(a12BF4,prod22D15);
          real4 prod12D17#1 = Mul<real4>(a2CFC,sum12D16);
          real4 hx2CFE#4 = Add<real4>(a02BF3,prod12D17);
          real t02D32#1 = Dot<4>(v02C8A,hx2CFE);
          real t12D34#1 = Dot<4>(v12C98,hx2CFE);
          real t22D36#1 = Dot<4>(v22CA6,hx2CFE);
          real t32D38#1 = Dot<4>(v32CB4,hx2CFE);
          real4 tv2D3A#1 = <real4>[t02D32,t12D34,t22D36,t32D38];
          real _t2D3C#1 = Dot<4>(hy2CC0,tv2D3A);
          real _t2D3E#2 = Sub<real>(_t2C6E,_t2D3C);
          real _t2D40#1 = Mul<real>(_t2D3E,_t2D3E);
          real score2D42#1 = Add<real>(score2B8B,_t2D40);
          goto JOIN2D45
        JOIN2D45:  preds = [ASSIGN2D43,COND2BA1]
          real score2D44#2 = phi(score2D42,score2B8B)
          real _t2D46#1 = Dot<2>(r01C0C,v101BA9);
          real _t2D48#1 = Dot<2>(r11C12,v101BA9);
          real2 _t2D4A#1 = <real2>[_t2D46,_t2D48];
          real2 pos2D4C#1 = Add<real2>(_t2D4A,_t1C22);
          real2 x2D4E#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos2D4C);
          bool _t2D50#1 = Inside<IMAGE2D<float>,2>(x2D4E,_t1B8D);
          if _t2D50 then goto ASSIGN2D54 else goto ASSIGN35ED
        ASSIGN2D54:  preds = [COND2D52]
          real2 x2D53#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v101BA9);
          bool _t2D55#1 = Inside<IMAGE2D<int>,2>(x2D53,_t1B89);
          goto JOIN2D59
        JOIN2D59:  preds = [ASSIGN2D56,ASSIGN35ED]
          bool _t2D57#1 = phi(_t2D55,_t2D58)
          if _t2D57 then goto ASSIGN2D5C else goto JOIN2EFE
        ASSIGN2D5C:  preds = [COND2D5A]
          real2 nd2D5B#2 = Floor<2>(x2D4E);
          real2 f2D5D#2 = Sub<real2>(x2D4E,nd2D5B);
          int{2} n2D5F#2 = RealToInt<2>(nd2D5B);
          int t12D61#4 = -1;
          int t22D63#1 = Index<int{2},0>(n2D5F);
          int ix2D65#4 = Add<int>(t12D61,t22D63);
          int t22D67#4 = Index<int{2},1>(n2D5F);
          int iy2D69#1 = Add<int>(t12D61,t22D67);
          int n02D6C#8 = 21;
          int t2D6D#1 = Mul<int>(n02D6C,iy2D69);
          int index2D6E#1 = Add<int>(ix2D65,t2D6D);
          addr(IMAGE2D<float>) imgBaseAddr2D6F#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a2D6B#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2D6F,index2D6E);
          real4 v02D75#1 = LoadVoxels<IMAGE2D<float>,4>(a2D6B);
          int iy2D77#1 = Add<int>(_t1C1A,t22D67);
          int t2D7B#1 = Mul<int>(n02D6C,iy2D77);
          int index2D7C#1 = Add<int>(ix2D65,t2D7B);
          addr(IMAGE2D<float>) a2D79#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2D6F,index2D7C);
          real4 v12D83#1 = LoadVoxels<IMAGE2D<float>,4>(a2D79);
          int iy2D85#1 = Add<int>(_t1C1E,t22D67);
          int t2D89#1 = Mul<int>(n02D6C,iy2D85);
          int index2D8A#1 = Add<int>(ix2D65,t2D89);
          addr(IMAGE2D<float>) a2D87#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2D6F,index2D8A);
          real4 v22D91#1 = LoadVoxels<IMAGE2D<float>,4>(a2D87);
          int iy2D93#1 = Add<int>(_t1BF6,t22D67);
          int t2D97#1 = Mul<int>(n02D6C,iy2D93);
          int index2D98#1 = Add<int>(ix2D65,t2D97);
          addr(IMAGE2D<float>) a2D95#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2D6F,index2D98);
          real4 v32D9F#1 = LoadVoxels<IMAGE2D<float>,4>(a2D95);
          real fy2DA1#4 = Index<real2,1>(f2D5D);
          real t32DA3#1 = Add<real>(fy2DA1,_t1BF2);
          real t12DA5#1 = Sub<real>(fy2DA1,_t1BF2);
          real t02DA7#1 = Sub<real>(fy2DA1,_t1BF4);
          real4 a2DA9#3 = <real4>[t32DA3,fy2DA1,t12DA5,t02DA7];
          real _f2DBC#2 = 0.133333333333e1;
          real _f2DBD#2 = 0.666666666667e0;
          real4 a02DAC#4 = <real4>[_f2DBC,_f2DBD,_f2DBD,_f2DBC];
          real _f2DB8#1 = -0.2e1;
          real _f2DB9#2 = 0.0;
          real4 a12DAD#4 = <real4>[_f2DB8,_f2DB9,_f2DB9,_t1BF4];
          real _f2DB5#2 = -0.1e1;
          real4 a22DAE#4 = <real4>[_t1BF2,_f2DB5,_f2DB5,_t1BF2];
          real _f2DB0#1 = -0.166666666667e0;
          real _f2DB1#1 = 0.5e0;
          real _f2DB2#1 = -0.5e0;
          real _f2DB3#1 = 0.166666666667e0;
          real4 a32DAF#4 = <real4>[_f2DB0,_f2DB1,_f2DB2,_f2DB3];
          real4 prod32DC0#1 = Mul<real4>(a2DA9,a32DAF);
          real4 sum22DC1#1 = Add<real4>(a22DAE,prod32DC0);
          real4 prod22DC2#1 = Mul<real4>(a2DA9,sum22DC1);
          real4 sum12DC3#1 = Add<real4>(a12DAD,prod22DC2);
          real4 prod12DC4#1 = Mul<real4>(a2DA9,sum12DC3);
          real4 hy2DAB#1 = Add<real4>(a02DAC,prod12DC4);
          real fx2DDF#4 = Index<real2,0>(f2D5D);
          real t32DE1#1 = Add<real>(fx2DDF,_t1BF2);
          real t12DE3#1 = Sub<real>(fx2DDF,_t1BF2);
          real t02DE5#1 = Sub<real>(fx2DDF,_t1BF4);
          real4 a2DE7#3 = <real4>[t32DE1,fx2DDF,t12DE3,t02DE5];
          real4 prod32DFE#1 = Mul<real4>(a2DE7,a32DAF);
          real4 sum22DFF#1 = Add<real4>(a22DAE,prod32DFE);
          real4 prod22E00#1 = Mul<real4>(a2DE7,sum22DFF);
          real4 sum12E01#1 = Add<real4>(a12DAD,prod22E00);
          real4 prod12E02#1 = Mul<real4>(a2DE7,sum12E01);
          real4 hx2DE9#4 = Add<real4>(a02DAC,prod12E02);
          real t02E1D#1 = Dot<4>(v02D75,hx2DE9);
          real t12E1F#1 = Dot<4>(v12D83,hx2DE9);
          real t22E21#1 = Dot<4>(v22D91,hx2DE9);
          real t32E23#1 = Dot<4>(v32D9F,hx2DE9);
          real4 tv2E25#1 = <real4>[t02E1D,t12E1F,t22E21,t32E23];
          real _t2E27#1 = Dot<4>(hy2DAB,tv2E25);
          real2 x2E29#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v101BA9);
          real2 nd2E2B#2 = Floor<2>(x2E29);
          real2 f2E2D#2 = Sub<real2>(x2E29,nd2E2B);
          int{2} n2E2F#2 = RealToInt<2>(nd2E2B);
          int t22E31#1 = Index<int{2},0>(n2E2F);
          int ix2E33#4 = Add<int>(t12D61,t22E31);
          int t22E35#4 = Index<int{2},1>(n2E2F);
          int iy2E37#1 = Add<int>(t12D61,t22E35);
          int t2E3B#1 = Mul<int>(n02D6C,iy2E37);
          int index2E3C#1 = Add<int>(ix2E33,t2E3B);
          addr(IMAGE2D<int>) imgBaseAddr2E3D#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a2E39#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2E3D,index2E3C);
          real4 v02E43#1 = LoadVoxels<IMAGE2D<int>,4>(a2E39);
          int iy2E45#1 = Add<int>(_t1C1A,t22E35);
          int t2E49#1 = Mul<int>(n02D6C,iy2E45);
          int index2E4A#1 = Add<int>(ix2E33,t2E49);
          addr(IMAGE2D<int>) a2E47#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2E3D,index2E4A);
          real4 v12E51#1 = LoadVoxels<IMAGE2D<int>,4>(a2E47);
          int iy2E53#1 = Add<int>(_t1C1E,t22E35);
          int t2E57#1 = Mul<int>(n02D6C,iy2E53);
          int index2E58#1 = Add<int>(ix2E33,t2E57);
          addr(IMAGE2D<int>) a2E55#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2E3D,index2E58);
          real4 v22E5F#1 = LoadVoxels<IMAGE2D<int>,4>(a2E55);
          int iy2E61#1 = Add<int>(_t1BF6,t22E35);
          int t2E65#1 = Mul<int>(n02D6C,iy2E61);
          int index2E66#1 = Add<int>(ix2E33,t2E65);
          addr(IMAGE2D<int>) a2E63#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2E3D,index2E66);
          real4 v32E6D#1 = LoadVoxels<IMAGE2D<int>,4>(a2E63);
          real fy2E6F#4 = Index<real2,1>(f2E2D);
          real t32E71#1 = Add<real>(fy2E6F,_t1BF2);
          real t12E73#1 = Sub<real>(fy2E6F,_t1BF2);
          real t02E75#1 = Sub<real>(fy2E6F,_t1BF4);
          real4 a2E77#3 = <real4>[t32E71,fy2E6F,t12E73,t02E75];
          real4 prod32E8E#1 = Mul<real4>(a2E77,a32DAF);
          real4 sum22E8F#1 = Add<real4>(a22DAE,prod32E8E);
          real4 prod22E90#1 = Mul<real4>(a2E77,sum22E8F);
          real4 sum12E91#1 = Add<real4>(a12DAD,prod22E90);
          real4 prod12E92#1 = Mul<real4>(a2E77,sum12E91);
          real4 hy2E79#1 = Add<real4>(a02DAC,prod12E92);
          real fx2EAD#4 = Index<real2,0>(f2E2D);
          real t32EAF#1 = Add<real>(fx2EAD,_t1BF2);
          real t12EB1#1 = Sub<real>(fx2EAD,_t1BF2);
          real t02EB3#1 = Sub<real>(fx2EAD,_t1BF4);
          real4 a2EB5#3 = <real4>[t32EAF,fx2EAD,t12EB1,t02EB3];
          real4 prod32ECC#1 = Mul<real4>(a2EB5,a32DAF);
          real4 sum22ECD#1 = Add<real4>(a22DAE,prod32ECC);
          real4 prod22ECE#1 = Mul<real4>(a2EB5,sum22ECD);
          real4 sum12ECF#1 = Add<real4>(a12DAD,prod22ECE);
          real4 prod12ED0#1 = Mul<real4>(a2EB5,sum12ECF);
          real4 hx2EB7#4 = Add<real4>(a02DAC,prod12ED0);
          real t02EEB#1 = Dot<4>(v02E43,hx2EB7);
          real t12EED#1 = Dot<4>(v12E51,hx2EB7);
          real t22EEF#1 = Dot<4>(v22E5F,hx2EB7);
          real t32EF1#1 = Dot<4>(v32E6D,hx2EB7);
          real4 tv2EF3#1 = <real4>[t02EEB,t12EED,t22EEF,t32EF1];
          real _t2EF5#1 = Dot<4>(hy2E79,tv2EF3);
          real _t2EF7#2 = Sub<real>(_t2E27,_t2EF5);
          real _t2EF9#1 = Mul<real>(_t2EF7,_t2EF7);
          real score2EFB#1 = Add<real>(score2D44,_t2EF9);
          goto JOIN2EFE
        JOIN2EFE:  preds = [ASSIGN2EFC,COND2D5A]
          real score2EFD#2 = phi(score2EFB,score2D44)
          real _t2EFF#1 = Dot<2>(r01C0C,v111BAB);
          real _t2F01#1 = Dot<2>(r11C12,v111BAB);
          real2 _t2F03#1 = <real2>[_t2EFF,_t2F01];
          real2 pos2F05#1 = Add<real2>(_t2F03,_t1C22);
          real2 x2F07#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos2F05);
          bool _t2F09#1 = Inside<IMAGE2D<float>,2>(x2F07,_t1B8D);
          if _t2F09 then goto ASSIGN2F0D else goto ASSIGN35EC
        ASSIGN2F0D:  preds = [COND2F0B]
          real2 x2F0C#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v111BAB);
          bool _t2F0E#1 = Inside<IMAGE2D<int>,2>(x2F0C,_t1B89);
          goto JOIN2F12
        JOIN2F12:  preds = [ASSIGN2F0F,ASSIGN35EC]
          bool _t2F10#1 = phi(_t2F0E,_t2F11)
          if _t2F10 then goto ASSIGN2F15 else goto JOIN30B7
        ASSIGN2F15:  preds = [COND2F13]
          real2 nd2F14#2 = Floor<2>(x2F07);
          real2 f2F16#2 = Sub<real2>(x2F07,nd2F14);
          int{2} n2F18#2 = RealToInt<2>(nd2F14);
          int t12F1A#4 = -1;
          int t22F1C#1 = Index<int{2},0>(n2F18);
          int ix2F1E#4 = Add<int>(t12F1A,t22F1C);
          int t22F20#4 = Index<int{2},1>(n2F18);
          int iy2F22#1 = Add<int>(t12F1A,t22F20);
          int n02F25#8 = 21;
          int t2F26#1 = Mul<int>(n02F25,iy2F22);
          int index2F27#1 = Add<int>(ix2F1E,t2F26);
          addr(IMAGE2D<float>) imgBaseAddr2F28#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a2F24#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2F28,index2F27);
          real4 v02F2E#1 = LoadVoxels<IMAGE2D<float>,4>(a2F24);
          int iy2F30#1 = Add<int>(_t1C1A,t22F20);
          int t2F34#1 = Mul<int>(n02F25,iy2F30);
          int index2F35#1 = Add<int>(ix2F1E,t2F34);
          addr(IMAGE2D<float>) a2F32#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2F28,index2F35);
          real4 v12F3C#1 = LoadVoxels<IMAGE2D<float>,4>(a2F32);
          int iy2F3E#1 = Add<int>(_t1C1E,t22F20);
          int t2F42#1 = Mul<int>(n02F25,iy2F3E);
          int index2F43#1 = Add<int>(ix2F1E,t2F42);
          addr(IMAGE2D<float>) a2F40#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2F28,index2F43);
          real4 v22F4A#1 = LoadVoxels<IMAGE2D<float>,4>(a2F40);
          int iy2F4C#1 = Add<int>(_t1BF6,t22F20);
          int t2F50#1 = Mul<int>(n02F25,iy2F4C);
          int index2F51#1 = Add<int>(ix2F1E,t2F50);
          addr(IMAGE2D<float>) a2F4E#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2F28,index2F51);
          real4 v32F58#1 = LoadVoxels<IMAGE2D<float>,4>(a2F4E);
          real fy2F5A#4 = Index<real2,1>(f2F16);
          real t32F5C#1 = Add<real>(fy2F5A,_t1BF2);
          real t12F5E#1 = Sub<real>(fy2F5A,_t1BF2);
          real t02F60#1 = Sub<real>(fy2F5A,_t1BF4);
          real4 a2F62#3 = <real4>[t32F5C,fy2F5A,t12F5E,t02F60];
          real _f2F75#2 = 0.133333333333e1;
          real _f2F76#2 = 0.666666666667e0;
          real4 a02F65#4 = <real4>[_f2F75,_f2F76,_f2F76,_f2F75];
          real _f2F71#1 = -0.2e1;
          real _f2F72#2 = 0.0;
          real4 a12F66#4 = <real4>[_f2F71,_f2F72,_f2F72,_t1BF4];
          real _f2F6E#2 = -0.1e1;
          real4 a22F67#4 = <real4>[_t1BF2,_f2F6E,_f2F6E,_t1BF2];
          real _f2F69#1 = -0.166666666667e0;
          real _f2F6A#1 = 0.5e0;
          real _f2F6B#1 = -0.5e0;
          real _f2F6C#1 = 0.166666666667e0;
          real4 a32F68#4 = <real4>[_f2F69,_f2F6A,_f2F6B,_f2F6C];
          real4 prod32F79#1 = Mul<real4>(a2F62,a32F68);
          real4 sum22F7A#1 = Add<real4>(a22F67,prod32F79);
          real4 prod22F7B#1 = Mul<real4>(a2F62,sum22F7A);
          real4 sum12F7C#1 = Add<real4>(a12F66,prod22F7B);
          real4 prod12F7D#1 = Mul<real4>(a2F62,sum12F7C);
          real4 hy2F64#1 = Add<real4>(a02F65,prod12F7D);
          real fx2F98#4 = Index<real2,0>(f2F16);
          real t32F9A#1 = Add<real>(fx2F98,_t1BF2);
          real t12F9C#1 = Sub<real>(fx2F98,_t1BF2);
          real t02F9E#1 = Sub<real>(fx2F98,_t1BF4);
          real4 a2FA0#3 = <real4>[t32F9A,fx2F98,t12F9C,t02F9E];
          real4 prod32FB7#1 = Mul<real4>(a2FA0,a32F68);
          real4 sum22FB8#1 = Add<real4>(a22F67,prod32FB7);
          real4 prod22FB9#1 = Mul<real4>(a2FA0,sum22FB8);
          real4 sum12FBA#1 = Add<real4>(a12F66,prod22FB9);
          real4 prod12FBB#1 = Mul<real4>(a2FA0,sum12FBA);
          real4 hx2FA2#4 = Add<real4>(a02F65,prod12FBB);
          real t02FD6#1 = Dot<4>(v02F2E,hx2FA2);
          real t12FD8#1 = Dot<4>(v12F3C,hx2FA2);
          real t22FDA#1 = Dot<4>(v22F4A,hx2FA2);
          real t32FDC#1 = Dot<4>(v32F58,hx2FA2);
          real4 tv2FDE#1 = <real4>[t02FD6,t12FD8,t22FDA,t32FDC];
          real _t2FE0#1 = Dot<4>(hy2F64,tv2FDE);
          real2 x2FE2#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v111BAB);
          real2 nd2FE4#2 = Floor<2>(x2FE2);
          real2 f2FE6#2 = Sub<real2>(x2FE2,nd2FE4);
          int{2} n2FE8#2 = RealToInt<2>(nd2FE4);
          int t22FEA#1 = Index<int{2},0>(n2FE8);
          int ix2FEC#4 = Add<int>(t12F1A,t22FEA);
          int t22FEE#4 = Index<int{2},1>(n2FE8);
          int iy2FF0#1 = Add<int>(t12F1A,t22FEE);
          int t2FF4#1 = Mul<int>(n02F25,iy2FF0);
          int index2FF5#1 = Add<int>(ix2FEC,t2FF4);
          addr(IMAGE2D<int>) imgBaseAddr2FF6#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a2FF2#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2FF6,index2FF5);
          real4 v02FFC#1 = LoadVoxels<IMAGE2D<int>,4>(a2FF2);
          int iy2FFE#1 = Add<int>(_t1C1A,t22FEE);
          int t3002#1 = Mul<int>(n02F25,iy2FFE);
          int index3003#1 = Add<int>(ix2FEC,t3002);
          addr(IMAGE2D<int>) a3000#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2FF6,index3003);
          real4 v1300A#1 = LoadVoxels<IMAGE2D<int>,4>(a3000);
          int iy300C#1 = Add<int>(_t1C1E,t22FEE);
          int t3010#1 = Mul<int>(n02F25,iy300C);
          int index3011#1 = Add<int>(ix2FEC,t3010);
          addr(IMAGE2D<int>) a300E#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2FF6,index3011);
          real4 v23018#1 = LoadVoxels<IMAGE2D<int>,4>(a300E);
          int iy301A#1 = Add<int>(_t1BF6,t22FEE);
          int t301E#1 = Mul<int>(n02F25,iy301A);
          int index301F#1 = Add<int>(ix2FEC,t301E);
          addr(IMAGE2D<int>) a301C#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2FF6,index301F);
          real4 v33026#1 = LoadVoxels<IMAGE2D<int>,4>(a301C);
          real fy3028#4 = Index<real2,1>(f2FE6);
          real t3302A#1 = Add<real>(fy3028,_t1BF2);
          real t1302C#1 = Sub<real>(fy3028,_t1BF2);
          real t0302E#1 = Sub<real>(fy3028,_t1BF4);
          real4 a3030#3 = <real4>[t3302A,fy3028,t1302C,t0302E];
          real4 prod33047#1 = Mul<real4>(a3030,a32F68);
          real4 sum23048#1 = Add<real4>(a22F67,prod33047);
          real4 prod23049#1 = Mul<real4>(a3030,sum23048);
          real4 sum1304A#1 = Add<real4>(a12F66,prod23049);
          real4 prod1304B#1 = Mul<real4>(a3030,sum1304A);
          real4 hy3032#1 = Add<real4>(a02F65,prod1304B);
          real fx3066#4 = Index<real2,0>(f2FE6);
          real t33068#1 = Add<real>(fx3066,_t1BF2);
          real t1306A#1 = Sub<real>(fx3066,_t1BF2);
          real t0306C#1 = Sub<real>(fx3066,_t1BF4);
          real4 a306E#3 = <real4>[t33068,fx3066,t1306A,t0306C];
          real4 prod33085#1 = Mul<real4>(a306E,a32F68);
          real4 sum23086#1 = Add<real4>(a22F67,prod33085);
          real4 prod23087#1 = Mul<real4>(a306E,sum23086);
          real4 sum13088#1 = Add<real4>(a12F66,prod23087);
          real4 prod13089#1 = Mul<real4>(a306E,sum13088);
          real4 hx3070#4 = Add<real4>(a02F65,prod13089);
          real t030A4#1 = Dot<4>(v02FFC,hx3070);
          real t130A6#1 = Dot<4>(v1300A,hx3070);
          real t230A8#1 = Dot<4>(v23018,hx3070);
          real t330AA#1 = Dot<4>(v33026,hx3070);
          real4 tv30AC#1 = <real4>[t030A4,t130A6,t230A8,t330AA];
          real _t30AE#1 = Dot<4>(hy3032,tv30AC);
          real _t30B0#2 = Sub<real>(_t2FE0,_t30AE);
          real _t30B2#1 = Mul<real>(_t30B0,_t30B0);
          real score30B4#1 = Add<real>(score2EFD,_t30B2);
          goto JOIN30B7
        JOIN30B7:  preds = [ASSIGN30B5,COND2F13]
          real score30B6#2 = phi(score30B4,score2EFD)
          real _t30B8#1 = Dot<2>(r01C0C,v121BAD);
          real _t30BA#1 = Dot<2>(r11C12,v121BAD);
          real2 _t30BC#1 = <real2>[_t30B8,_t30BA];
          real2 pos30BE#1 = Add<real2>(_t30BC,_t1C22);
          real2 x30C0#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos30BE);
          bool _t30C2#1 = Inside<IMAGE2D<float>,2>(x30C0,_t1B8D);
          if _t30C2 then goto ASSIGN30C6 else goto ASSIGN35EB
        ASSIGN30C6:  preds = [COND30C4]
          real2 x30C5#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v121BAD);
          bool _t30C7#1 = Inside<IMAGE2D<int>,2>(x30C5,_t1B89);
          goto JOIN30CB
        JOIN30CB:  preds = [ASSIGN30C8,ASSIGN35EB]
          bool _t30C9#1 = phi(_t30C7,_t30CA)
          if _t30C9 then goto ASSIGN30CE else goto JOIN3270
        ASSIGN30CE:  preds = [COND30CC]
          real2 nd30CD#2 = Floor<2>(x30C0);
          real2 f30CF#2 = Sub<real2>(x30C0,nd30CD);
          int{2} n30D1#2 = RealToInt<2>(nd30CD);
          int t130D3#4 = -1;
          int t230D5#1 = Index<int{2},0>(n30D1);
          int ix30D7#4 = Add<int>(t130D3,t230D5);
          int t230D9#4 = Index<int{2},1>(n30D1);
          int iy30DB#1 = Add<int>(t130D3,t230D9);
          int n030DE#8 = 21;
          int t30DF#1 = Mul<int>(n030DE,iy30DB);
          int index30E0#1 = Add<int>(ix30D7,t30DF);
          addr(IMAGE2D<float>) imgBaseAddr30E1#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a30DD#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr30E1,index30E0);
          real4 v030E7#1 = LoadVoxels<IMAGE2D<float>,4>(a30DD);
          int iy30E9#1 = Add<int>(_t1C1A,t230D9);
          int t30ED#1 = Mul<int>(n030DE,iy30E9);
          int index30EE#1 = Add<int>(ix30D7,t30ED);
          addr(IMAGE2D<float>) a30EB#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr30E1,index30EE);
          real4 v130F5#1 = LoadVoxels<IMAGE2D<float>,4>(a30EB);
          int iy30F7#1 = Add<int>(_t1C1E,t230D9);
          int t30FB#1 = Mul<int>(n030DE,iy30F7);
          int index30FC#1 = Add<int>(ix30D7,t30FB);
          addr(IMAGE2D<float>) a30F9#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr30E1,index30FC);
          real4 v23103#1 = LoadVoxels<IMAGE2D<float>,4>(a30F9);
          int iy3105#1 = Add<int>(_t1BF6,t230D9);
          int t3109#1 = Mul<int>(n030DE,iy3105);
          int index310A#1 = Add<int>(ix30D7,t3109);
          addr(IMAGE2D<float>) a3107#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr30E1,index310A);
          real4 v33111#1 = LoadVoxels<IMAGE2D<float>,4>(a3107);
          real fy3113#4 = Index<real2,1>(f30CF);
          real t33115#1 = Add<real>(fy3113,_t1BF2);
          real t13117#1 = Sub<real>(fy3113,_t1BF2);
          real t03119#1 = Sub<real>(fy3113,_t1BF4);
          real4 a311B#3 = <real4>[t33115,fy3113,t13117,t03119];
          real _f312E#2 = 0.133333333333e1;
          real _f312F#2 = 0.666666666667e0;
          real4 a0311E#4 = <real4>[_f312E,_f312F,_f312F,_f312E];
          real _f312A#1 = -0.2e1;
          real _f312B#2 = 0.0;
          real4 a1311F#4 = <real4>[_f312A,_f312B,_f312B,_t1BF4];
          real _f3127#2 = -0.1e1;
          real4 a23120#4 = <real4>[_t1BF2,_f3127,_f3127,_t1BF2];
          real _f3122#1 = -0.166666666667e0;
          real _f3123#1 = 0.5e0;
          real _f3124#1 = -0.5e0;
          real _f3125#1 = 0.166666666667e0;
          real4 a33121#4 = <real4>[_f3122,_f3123,_f3124,_f3125];
          real4 prod33132#1 = Mul<real4>(a311B,a33121);
          real4 sum23133#1 = Add<real4>(a23120,prod33132);
          real4 prod23134#1 = Mul<real4>(a311B,sum23133);
          real4 sum13135#1 = Add<real4>(a1311F,prod23134);
          real4 prod13136#1 = Mul<real4>(a311B,sum13135);
          real4 hy311D#1 = Add<real4>(a0311E,prod13136);
          real fx3151#4 = Index<real2,0>(f30CF);
          real t33153#1 = Add<real>(fx3151,_t1BF2);
          real t13155#1 = Sub<real>(fx3151,_t1BF2);
          real t03157#1 = Sub<real>(fx3151,_t1BF4);
          real4 a3159#3 = <real4>[t33153,fx3151,t13155,t03157];
          real4 prod33170#1 = Mul<real4>(a3159,a33121);
          real4 sum23171#1 = Add<real4>(a23120,prod33170);
          real4 prod23172#1 = Mul<real4>(a3159,sum23171);
          real4 sum13173#1 = Add<real4>(a1311F,prod23172);
          real4 prod13174#1 = Mul<real4>(a3159,sum13173);
          real4 hx315B#4 = Add<real4>(a0311E,prod13174);
          real t0318F#1 = Dot<4>(v030E7,hx315B);
          real t13191#1 = Dot<4>(v130F5,hx315B);
          real t23193#1 = Dot<4>(v23103,hx315B);
          real t33195#1 = Dot<4>(v33111,hx315B);
          real4 tv3197#1 = <real4>[t0318F,t13191,t23193,t33195];
          real _t3199#1 = Dot<4>(hy311D,tv3197);
          real2 x319B#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v121BAD);
          real2 nd319D#2 = Floor<2>(x319B);
          real2 f319F#2 = Sub<real2>(x319B,nd319D);
          int{2} n31A1#2 = RealToInt<2>(nd319D);
          int t231A3#1 = Index<int{2},0>(n31A1);
          int ix31A5#4 = Add<int>(t130D3,t231A3);
          int t231A7#4 = Index<int{2},1>(n31A1);
          int iy31A9#1 = Add<int>(t130D3,t231A7);
          int t31AD#1 = Mul<int>(n030DE,iy31A9);
          int index31AE#1 = Add<int>(ix31A5,t31AD);
          addr(IMAGE2D<int>) imgBaseAddr31AF#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a31AB#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr31AF,index31AE);
          real4 v031B5#1 = LoadVoxels<IMAGE2D<int>,4>(a31AB);
          int iy31B7#1 = Add<int>(_t1C1A,t231A7);
          int t31BB#1 = Mul<int>(n030DE,iy31B7);
          int index31BC#1 = Add<int>(ix31A5,t31BB);
          addr(IMAGE2D<int>) a31B9#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr31AF,index31BC);
          real4 v131C3#1 = LoadVoxels<IMAGE2D<int>,4>(a31B9);
          int iy31C5#1 = Add<int>(_t1C1E,t231A7);
          int t31C9#1 = Mul<int>(n030DE,iy31C5);
          int index31CA#1 = Add<int>(ix31A5,t31C9);
          addr(IMAGE2D<int>) a31C7#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr31AF,index31CA);
          real4 v231D1#1 = LoadVoxels<IMAGE2D<int>,4>(a31C7);
          int iy31D3#1 = Add<int>(_t1BF6,t231A7);
          int t31D7#1 = Mul<int>(n030DE,iy31D3);
          int index31D8#1 = Add<int>(ix31A5,t31D7);
          addr(IMAGE2D<int>) a31D5#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr31AF,index31D8);
          real4 v331DF#1 = LoadVoxels<IMAGE2D<int>,4>(a31D5);
          real fy31E1#4 = Index<real2,1>(f319F);
          real t331E3#1 = Add<real>(fy31E1,_t1BF2);
          real t131E5#1 = Sub<real>(fy31E1,_t1BF2);
          real t031E7#1 = Sub<real>(fy31E1,_t1BF4);
          real4 a31E9#3 = <real4>[t331E3,fy31E1,t131E5,t031E7];
          real4 prod33200#1 = Mul<real4>(a31E9,a33121);
          real4 sum23201#1 = Add<real4>(a23120,prod33200);
          real4 prod23202#1 = Mul<real4>(a31E9,sum23201);
          real4 sum13203#1 = Add<real4>(a1311F,prod23202);
          real4 prod13204#1 = Mul<real4>(a31E9,sum13203);
          real4 hy31EB#1 = Add<real4>(a0311E,prod13204);
          real fx321F#4 = Index<real2,0>(f319F);
          real t33221#1 = Add<real>(fx321F,_t1BF2);
          real t13223#1 = Sub<real>(fx321F,_t1BF2);
          real t03225#1 = Sub<real>(fx321F,_t1BF4);
          real4 a3227#3 = <real4>[t33221,fx321F,t13223,t03225];
          real4 prod3323E#1 = Mul<real4>(a3227,a33121);
          real4 sum2323F#1 = Add<real4>(a23120,prod3323E);
          real4 prod23240#1 = Mul<real4>(a3227,sum2323F);
          real4 sum13241#1 = Add<real4>(a1311F,prod23240);
          real4 prod13242#1 = Mul<real4>(a3227,sum13241);
          real4 hx3229#4 = Add<real4>(a0311E,prod13242);
          real t0325D#1 = Dot<4>(v031B5,hx3229);
          real t1325F#1 = Dot<4>(v131C3,hx3229);
          real t23261#1 = Dot<4>(v231D1,hx3229);
          real t33263#1 = Dot<4>(v331DF,hx3229);
          real4 tv3265#1 = <real4>[t0325D,t1325F,t23261,t33263];
          real _t3267#1 = Dot<4>(hy31EB,tv3265);
          real _t3269#2 = Sub<real>(_t3199,_t3267);
          real _t326B#1 = Mul<real>(_t3269,_t3269);
          real score326D#1 = Add<real>(score30B6,_t326B);
          goto JOIN3270
        JOIN3270:  preds = [ASSIGN326E,COND30CC]
          real score326F#2 = phi(score326D,score30B6)
          real _t3271#1 = Dot<2>(r01C0C,v131BAF);
          real _t3273#1 = Dot<2>(r11C12,v131BAF);
          real2 _t3275#1 = <real2>[_t3271,_t3273];
          real2 pos3277#1 = Add<real2>(_t3275,_t1C22);
          real2 x3279#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos3277);
          bool _t327B#1 = Inside<IMAGE2D<float>,2>(x3279,_t1B8D);
          if _t327B then goto ASSIGN327F else goto ASSIGN35EA
        ASSIGN327F:  preds = [COND327D]
          real2 x327E#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v131BAF);
          bool _t3280#1 = Inside<IMAGE2D<int>,2>(x327E,_t1B89);
          goto JOIN3284
        JOIN3284:  preds = [ASSIGN3281,ASSIGN35EA]
          bool _t3282#1 = phi(_t3280,_t3283)
          if _t3282 then goto ASSIGN3287 else goto JOIN3429
        ASSIGN3287:  preds = [COND3285]
          real2 nd3286#2 = Floor<2>(x3279);
          real2 f3288#2 = Sub<real2>(x3279,nd3286);
          int{2} n328A#2 = RealToInt<2>(nd3286);
          int t1328C#4 = -1;
          int t2328E#1 = Index<int{2},0>(n328A);
          int ix3290#4 = Add<int>(t1328C,t2328E);
          int t23292#4 = Index<int{2},1>(n328A);
          int iy3294#1 = Add<int>(t1328C,t23292);
          int n03297#8 = 21;
          int t3298#1 = Mul<int>(n03297,iy3294);
          int index3299#1 = Add<int>(ix3290,t3298);
          addr(IMAGE2D<float>) imgBaseAddr329A#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a3296#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr329A,index3299);
          real4 v032A0#1 = LoadVoxels<IMAGE2D<float>,4>(a3296);
          int iy32A2#1 = Add<int>(_t1C1A,t23292);
          int t32A6#1 = Mul<int>(n03297,iy32A2);
          int index32A7#1 = Add<int>(ix3290,t32A6);
          addr(IMAGE2D<float>) a32A4#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr329A,index32A7);
          real4 v132AE#1 = LoadVoxels<IMAGE2D<float>,4>(a32A4);
          int iy32B0#1 = Add<int>(_t1C1E,t23292);
          int t32B4#1 = Mul<int>(n03297,iy32B0);
          int index32B5#1 = Add<int>(ix3290,t32B4);
          addr(IMAGE2D<float>) a32B2#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr329A,index32B5);
          real4 v232BC#1 = LoadVoxels<IMAGE2D<float>,4>(a32B2);
          int iy32BE#1 = Add<int>(_t1BF6,t23292);
          int t32C2#1 = Mul<int>(n03297,iy32BE);
          int index32C3#1 = Add<int>(ix3290,t32C2);
          addr(IMAGE2D<float>) a32C0#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr329A,index32C3);
          real4 v332CA#1 = LoadVoxels<IMAGE2D<float>,4>(a32C0);
          real fy32CC#4 = Index<real2,1>(f3288);
          real t332CE#1 = Add<real>(fy32CC,_t1BF2);
          real t132D0#1 = Sub<real>(fy32CC,_t1BF2);
          real t032D2#1 = Sub<real>(fy32CC,_t1BF4);
          real4 a32D4#3 = <real4>[t332CE,fy32CC,t132D0,t032D2];
          real _f32E7#2 = 0.133333333333e1;
          real _f32E8#2 = 0.666666666667e0;
          real4 a032D7#4 = <real4>[_f32E7,_f32E8,_f32E8,_f32E7];
          real _f32E3#1 = -0.2e1;
          real _f32E4#2 = 0.0;
          real4 a132D8#4 = <real4>[_f32E3,_f32E4,_f32E4,_t1BF4];
          real _f32E0#2 = -0.1e1;
          real4 a232D9#4 = <real4>[_t1BF2,_f32E0,_f32E0,_t1BF2];
          real _f32DB#1 = -0.166666666667e0;
          real _f32DC#1 = 0.5e0;
          real _f32DD#1 = -0.5e0;
          real _f32DE#1 = 0.166666666667e0;
          real4 a332DA#4 = <real4>[_f32DB,_f32DC,_f32DD,_f32DE];
          real4 prod332EB#1 = Mul<real4>(a32D4,a332DA);
          real4 sum232EC#1 = Add<real4>(a232D9,prod332EB);
          real4 prod232ED#1 = Mul<real4>(a32D4,sum232EC);
          real4 sum132EE#1 = Add<real4>(a132D8,prod232ED);
          real4 prod132EF#1 = Mul<real4>(a32D4,sum132EE);
          real4 hy32D6#1 = Add<real4>(a032D7,prod132EF);
          real fx330A#4 = Index<real2,0>(f3288);
          real t3330C#1 = Add<real>(fx330A,_t1BF2);
          real t1330E#1 = Sub<real>(fx330A,_t1BF2);
          real t03310#1 = Sub<real>(fx330A,_t1BF4);
          real4 a3312#3 = <real4>[t3330C,fx330A,t1330E,t03310];
          real4 prod33329#1 = Mul<real4>(a3312,a332DA);
          real4 sum2332A#1 = Add<real4>(a232D9,prod33329);
          real4 prod2332B#1 = Mul<real4>(a3312,sum2332A);
          real4 sum1332C#1 = Add<real4>(a132D8,prod2332B);
          real4 prod1332D#1 = Mul<real4>(a3312,sum1332C);
          real4 hx3314#4 = Add<real4>(a032D7,prod1332D);
          real t03348#1 = Dot<4>(v032A0,hx3314);
          real t1334A#1 = Dot<4>(v132AE,hx3314);
          real t2334C#1 = Dot<4>(v232BC,hx3314);
          real t3334E#1 = Dot<4>(v332CA,hx3314);
          real4 tv3350#1 = <real4>[t03348,t1334A,t2334C,t3334E];
          real _t3352#1 = Dot<4>(hy32D6,tv3350);
          real2 x3354#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v131BAF);
          real2 nd3356#2 = Floor<2>(x3354);
          real2 f3358#2 = Sub<real2>(x3354,nd3356);
          int{2} n335A#2 = RealToInt<2>(nd3356);
          int t2335C#1 = Index<int{2},0>(n335A);
          int ix335E#4 = Add<int>(t1328C,t2335C);
          int t23360#4 = Index<int{2},1>(n335A);
          int iy3362#1 = Add<int>(t1328C,t23360);
          int t3366#1 = Mul<int>(n03297,iy3362);
          int index3367#1 = Add<int>(ix335E,t3366);
          addr(IMAGE2D<int>) imgBaseAddr3368#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a3364#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3368,index3367);
          real4 v0336E#1 = LoadVoxels<IMAGE2D<int>,4>(a3364);
          int iy3370#1 = Add<int>(_t1C1A,t23360);
          int t3374#1 = Mul<int>(n03297,iy3370);
          int index3375#1 = Add<int>(ix335E,t3374);
          addr(IMAGE2D<int>) a3372#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3368,index3375);
          real4 v1337C#1 = LoadVoxels<IMAGE2D<int>,4>(a3372);
          int iy337E#1 = Add<int>(_t1C1E,t23360);
          int t3382#1 = Mul<int>(n03297,iy337E);
          int index3383#1 = Add<int>(ix335E,t3382);
          addr(IMAGE2D<int>) a3380#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3368,index3383);
          real4 v2338A#1 = LoadVoxels<IMAGE2D<int>,4>(a3380);
          int iy338C#1 = Add<int>(_t1BF6,t23360);
          int t3390#1 = Mul<int>(n03297,iy338C);
          int index3391#1 = Add<int>(ix335E,t3390);
          addr(IMAGE2D<int>) a338E#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3368,index3391);
          real4 v33398#1 = LoadVoxels<IMAGE2D<int>,4>(a338E);
          real fy339A#4 = Index<real2,1>(f3358);
          real t3339C#1 = Add<real>(fy339A,_t1BF2);
          real t1339E#1 = Sub<real>(fy339A,_t1BF2);
          real t033A0#1 = Sub<real>(fy339A,_t1BF4);
          real4 a33A2#3 = <real4>[t3339C,fy339A,t1339E,t033A0];
          real4 prod333B9#1 = Mul<real4>(a33A2,a332DA);
          real4 sum233BA#1 = Add<real4>(a232D9,prod333B9);
          real4 prod233BB#1 = Mul<real4>(a33A2,sum233BA);
          real4 sum133BC#1 = Add<real4>(a132D8,prod233BB);
          real4 prod133BD#1 = Mul<real4>(a33A2,sum133BC);
          real4 hy33A4#1 = Add<real4>(a032D7,prod133BD);
          real fx33D8#4 = Index<real2,0>(f3358);
          real t333DA#1 = Add<real>(fx33D8,_t1BF2);
          real t133DC#1 = Sub<real>(fx33D8,_t1BF2);
          real t033DE#1 = Sub<real>(fx33D8,_t1BF4);
          real4 a33E0#3 = <real4>[t333DA,fx33D8,t133DC,t033DE];
          real4 prod333F7#1 = Mul<real4>(a33E0,a332DA);
          real4 sum233F8#1 = Add<real4>(a232D9,prod333F7);
          real4 prod233F9#1 = Mul<real4>(a33E0,sum233F8);
          real4 sum133FA#1 = Add<real4>(a132D8,prod233F9);
          real4 prod133FB#1 = Mul<real4>(a33E0,sum133FA);
          real4 hx33E2#4 = Add<real4>(a032D7,prod133FB);
          real t03416#1 = Dot<4>(v0336E,hx33E2);
          real t13418#1 = Dot<4>(v1337C,hx33E2);
          real t2341A#1 = Dot<4>(v2338A,hx33E2);
          real t3341C#1 = Dot<4>(v33398,hx33E2);
          real4 tv341E#1 = <real4>[t03416,t13418,t2341A,t3341C];
          real _t3420#1 = Dot<4>(hy33A4,tv341E);
          real _t3422#2 = Sub<real>(_t3352,_t3420);
          real _t3424#1 = Mul<real>(_t3422,_t3422);
          real score3426#1 = Add<real>(score326F,_t3424);
          goto JOIN3429
        JOIN3429:  preds = [ASSIGN3427,COND3285]
          real score3428#2 = phi(score3426,score326F)
          real _t342A#1 = Dot<2>(r01C0C,v141BB1);
          real _t342C#1 = Dot<2>(r11C12,v141BB1);
          real2 _t342E#1 = <real2>[_t342A,_t342C];
          real2 pos3430#2 = Add<real2>(_t342E,_t1C22);
          real2 x3432#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos3430);
          bool _t3434#1 = Inside<IMAGE2D<float>,2>(x3432,_t1B8D);
          if _t3434 then goto ASSIGN3438 else goto ASSIGN35E9
        ASSIGN3438:  preds = [COND3436]
          real2 x3437#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v141BB1);
          bool _t3439#1 = Inside<IMAGE2D<int>,2>(x3437,_t1B89);
          goto JOIN343D
        JOIN343D:  preds = [ASSIGN343A,ASSIGN35E9]
          bool _t343B#1 = phi(_t3439,_t343C)
          if _t343B then goto ASSIGN3440 else goto JOIN35E2
        ASSIGN3440:  preds = [COND343E]
          real2 nd343F#2 = Floor<2>(x3432);
          real2 f3441#2 = Sub<real2>(x3432,nd343F);
          int{2} n3443#2 = RealToInt<2>(nd343F);
          int t13445#4 = -1;
          int t23447#1 = Index<int{2},0>(n3443);
          int ix3449#4 = Add<int>(t13445,t23447);
          int t2344B#4 = Index<int{2},1>(n3443);
          int iy344D#1 = Add<int>(t13445,t2344B);
          int n03450#8 = 21;
          int t3451#1 = Mul<int>(n03450,iy344D);
          int index3452#1 = Add<int>(ix3449,t3451);
          addr(IMAGE2D<float>) imgBaseAddr3453#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a344F#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr3453,index3452);
          real4 v03459#1 = LoadVoxels<IMAGE2D<float>,4>(a344F);
          int iy345B#1 = Add<int>(_t1C1A,t2344B);
          int t345F#1 = Mul<int>(n03450,iy345B);
          int index3460#1 = Add<int>(ix3449,t345F);
          addr(IMAGE2D<float>) a345D#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr3453,index3460);
          real4 v13467#1 = LoadVoxels<IMAGE2D<float>,4>(a345D);
          int iy3469#1 = Add<int>(_t1C1E,t2344B);
          int t346D#1 = Mul<int>(n03450,iy3469);
          int index346E#1 = Add<int>(ix3449,t346D);
          addr(IMAGE2D<float>) a346B#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr3453,index346E);
          real4 v23475#1 = LoadVoxels<IMAGE2D<float>,4>(a346B);
          int iy3477#1 = Add<int>(_t1BF6,t2344B);
          int t347B#1 = Mul<int>(n03450,iy3477);
          int index347C#1 = Add<int>(ix3449,t347B);
          addr(IMAGE2D<float>) a3479#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr3453,index347C);
          real4 v33483#1 = LoadVoxels<IMAGE2D<float>,4>(a3479);
          real fy3485#4 = Index<real2,1>(f3441);
          real t33487#1 = Add<real>(fy3485,_t1BF2);
          real t13489#1 = Sub<real>(fy3485,_t1BF2);
          real t0348B#1 = Sub<real>(fy3485,_t1BF4);
          real4 a348D#3 = <real4>[t33487,fy3485,t13489,t0348B];
          real _f34A0#2 = 0.133333333333e1;
          real _f34A1#2 = 0.666666666667e0;
          real4 a03490#4 = <real4>[_f34A0,_f34A1,_f34A1,_f34A0];
          real _f349C#1 = -0.2e1;
          real _f349D#2 = 0.0;
          real4 a13491#4 = <real4>[_f349C,_f349D,_f349D,_t1BF4];
          real _f3499#2 = -0.1e1;
          real4 a23492#4 = <real4>[_t1BF2,_f3499,_f3499,_t1BF2];
          real _f3494#1 = -0.166666666667e0;
          real _f3495#1 = 0.5e0;
          real _f3496#1 = -0.5e0;
          real _f3497#1 = 0.166666666667e0;
          real4 a33493#4 = <real4>[_f3494,_f3495,_f3496,_f3497];
          real4 prod334A4#1 = Mul<real4>(a348D,a33493);
          real4 sum234A5#1 = Add<real4>(a23492,prod334A4);
          real4 prod234A6#1 = Mul<real4>(a348D,sum234A5);
          real4 sum134A7#1 = Add<real4>(a13491,prod234A6);
          real4 prod134A8#1 = Mul<real4>(a348D,sum134A7);
          real4 hy348F#1 = Add<real4>(a03490,prod134A8);
          real fx34C3#4 = Index<real2,0>(f3441);
          real t334C5#1 = Add<real>(fx34C3,_t1BF2);
          real t134C7#1 = Sub<real>(fx34C3,_t1BF2);
          real t034C9#1 = Sub<real>(fx34C3,_t1BF4);
          real4 a34CB#3 = <real4>[t334C5,fx34C3,t134C7,t034C9];
          real4 prod334E2#1 = Mul<real4>(a34CB,a33493);
          real4 sum234E3#1 = Add<real4>(a23492,prod334E2);
          real4 prod234E4#1 = Mul<real4>(a34CB,sum234E3);
          real4 sum134E5#1 = Add<real4>(a13491,prod234E4);
          real4 prod134E6#1 = Mul<real4>(a34CB,sum134E5);
          real4 hx34CD#4 = Add<real4>(a03490,prod134E6);
          real t03501#1 = Dot<4>(v03459,hx34CD);
          real t13503#1 = Dot<4>(v13467,hx34CD);
          real t23505#1 = Dot<4>(v23475,hx34CD);
          real t33507#1 = Dot<4>(v33483,hx34CD);
          real4 tv3509#1 = <real4>[t03501,t13503,t23505,t33507];
          real _t350B#1 = Dot<4>(hy348F,tv3509);
          real2 x350D#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v141BB1);
          real2 nd350F#2 = Floor<2>(x350D);
          real2 f3511#2 = Sub<real2>(x350D,nd350F);
          int{2} n3513#2 = RealToInt<2>(nd350F);
          int t23515#1 = Index<int{2},0>(n3513);
          int ix3517#4 = Add<int>(t13445,t23515);
          int t23519#4 = Index<int{2},1>(n3513);
          int iy351B#1 = Add<int>(t13445,t23519);
          int t351F#1 = Mul<int>(n03450,iy351B);
          int index3520#1 = Add<int>(ix3517,t351F);
          addr(IMAGE2D<int>) imgBaseAddr3521#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a351D#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3521,index3520);
          real4 v03527#1 = LoadVoxels<IMAGE2D<int>,4>(a351D);
          int iy3529#1 = Add<int>(_t1C1A,t23519);
          int t352D#1 = Mul<int>(n03450,iy3529);
          int index352E#1 = Add<int>(ix3517,t352D);
          addr(IMAGE2D<int>) a352B#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3521,index352E);
          real4 v13535#1 = LoadVoxels<IMAGE2D<int>,4>(a352B);
          int iy3537#1 = Add<int>(_t1C1E,t23519);
          int t353B#1 = Mul<int>(n03450,iy3537);
          int index353C#1 = Add<int>(ix3517,t353B);
          addr(IMAGE2D<int>) a3539#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3521,index353C);
          real4 v23543#1 = LoadVoxels<IMAGE2D<int>,4>(a3539);
          int iy3545#1 = Add<int>(_t1BF6,t23519);
          int t3549#1 = Mul<int>(n03450,iy3545);
          int index354A#1 = Add<int>(ix3517,t3549);
          addr(IMAGE2D<int>) a3547#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3521,index354A);
          real4 v33551#1 = LoadVoxels<IMAGE2D<int>,4>(a3547);
          real fy3553#4 = Index<real2,1>(f3511);
          real t33555#1 = Add<real>(fy3553,_t1BF2);
          real t13557#1 = Sub<real>(fy3553,_t1BF2);
          real t03559#1 = Sub<real>(fy3553,_t1BF4);
          real4 a355B#3 = <real4>[t33555,fy3553,t13557,t03559];
          real4 prod33572#1 = Mul<real4>(a355B,a33493);
          real4 sum23573#1 = Add<real4>(a23492,prod33572);
          real4 prod23574#1 = Mul<real4>(a355B,sum23573);
          real4 sum13575#1 = Add<real4>(a13491,prod23574);
          real4 prod13576#1 = Mul<real4>(a355B,sum13575);
          real4 hy355D#1 = Add<real4>(a03490,prod13576);
          real fx3591#4 = Index<real2,0>(f3511);
          real t33593#1 = Add<real>(fx3591,_t1BF2);
          real t13595#1 = Sub<real>(fx3591,_t1BF2);
          real t03597#1 = Sub<real>(fx3591,_t1BF4);
          real4 a3599#3 = <real4>[t33593,fx3591,t13595,t03597];
          real4 prod335B0#1 = Mul<real4>(a3599,a33493);
          real4 sum235B1#1 = Add<real4>(a23492,prod335B0);
          real4 prod235B2#1 = Mul<real4>(a3599,sum235B1);
          real4 sum135B3#1 = Add<real4>(a13491,prod235B2);
          real4 prod135B4#1 = Mul<real4>(a3599,sum135B3);
          real4 hx359B#4 = Add<real4>(a03490,prod135B4);
          real t035CF#1 = Dot<4>(v03527,hx359B);
          real t135D1#1 = Dot<4>(v13535,hx359B);
          real t235D3#1 = Dot<4>(v23543,hx359B);
          real t335D5#1 = Dot<4>(v33551,hx359B);
          real4 tv35D7#1 = <real4>[t035CF,t135D1,t235D3,t335D5];
          real _t35D9#1 = Dot<4>(hy355D,tv35D7);
          real _t35DB#2 = Sub<real>(_t350B,_t35D9);
          real _t35DD#1 = Mul<real>(_t35DB,_t35DB);
          real score35DF#1 = Add<real>(score3428,_t35DD);
          goto JOIN35E2
        JOIN35E2:  preds = [ASSIGN35E0,COND343E]
          real score35E1#1 = phi(score35DF,score3428)
          self.t = t1BEE;
          self.score = score35E1;
          self.r0 = r01C0C;
          self.r1 = r11C12;
          self.pos = pos3430;
          stabilize ()
        ASSIGN35E9:  preds = [COND3436]
          bool _t343C#1 = false;
          goto JOIN343D
        ASSIGN35EA:  preds = [COND327D]
          bool _t3283#1 = false;
          goto JOIN3284
        ASSIGN35EB:  preds = [COND30C4]
          bool _t30CA#1 = false;
          goto JOIN30CB
        ASSIGN35EC:  preds = [COND2F0B]
          bool _t2F11#1 = false;
          goto JOIN2F12
        ASSIGN35ED:  preds = [COND2D52]
          bool _t2D58#1 = false;
          goto JOIN2D59
        ASSIGN35EE:  preds = [COND2B99]
          bool _t2B9F#1 = false;
          goto JOIN2BA0
        ASSIGN35EF:  preds = [COND29E0]
          bool _t29E6#1 = false;
          goto JOIN29E7
        ASSIGN35F0:  preds = [COND2680]
          bool _t2686#1 = false;
          goto JOIN2687
        ASSIGN35F1:  preds = [COND24C7]
          bool _t24CD#1 = false;
          goto JOIN24CE
        ASSIGN35F2:  preds = [COND230E]
          bool _t2314#1 = false;
          goto JOIN2315
        ASSIGN35F3:  preds = [COND2155]
          bool _t215B#1 = false;
          goto JOIN215C
        ASSIGN35F4:  preds = [COND1F9C]
          bool _t1FA2#1 = false;
          goto JOIN1FA3
        ASSIGN35F5:  preds = [COND1DE3]
          bool _t1DE9#1 = false;
          goto JOIN1DEA
        ASSIGN35F6:  preds = [COND1C2A]
          bool _t1C30#1 = false;
          goto JOIN1C31
    end Update
    method Stabilize
        ENTRY35F8:  preds = []
          real3 t35F9#1 = self.t;
          real score35FB#1 = self.score;
          real2 r035FD#1 = self.r0;
          real2 r135FF#1 = self.r1;
          real2 pos3601#1 = self.pos;
          self.t = t35F9;
          self.score = score35FB;
          self.r0 = r035FD;
          self.r1 = r135FF;
          self.pos = pos3601;
          return ()
    end Stabilize
  end R
#### end program ####
##### LowIL after variable analysis ####
## properties
  none
## globals
  global real2 v001B93#4
  global real2 v011B99#4
  global real2 v021B9B#4
  global real2 v031B9D#4
  global real2 v051BA1#4
  global real2 v061BA3#4
  global real2 v041B9F#5
  global real2 v081BA5#4
  global real2 v091BA7#4
  global real2 v101BA9#4
  global real2 v111BAB#4
  global real2 v121BAD#4
  global real2 v131BAF#4
  global real2 v141BB1#4
  global image(IMAGE2D<int>) _t1B89#103
  global image(IMAGE2D<float>) _t1B8D#88
## global initialization
  ENTRY1B86:  preds = []
    string _t1B87#1 = "square-template.nrrd";
    image(IMAGE2D<int>) _t1B89#103 = LoadImage<IMAGE2D<int>>(_t1B87);
    string _t1B8B#1 = "square-rotate.nrrd";
    image(IMAGE2D<float>) _t1B8D#88 = LoadImage<IMAGE2D<float>>(_t1B8B);
    real _t1B8F#7 = 0.5e0;
    real _t1B91#7 = Neg<real>(_t1B8F);
    real2 v001B93#4 = <real2>[_t1B91,_t1B91];
    real _t1B95#9 = 0.15e0;
    real _t1B97#7 = Neg<real>(_t1B95);
    real2 v011B99#4 = <real2>[_t1B91,_t1B97];
    real2 v021B9B#4 = <real2>[_t1B91,_t1B95];
    real2 v031B9D#4 = <real2>[_t1B91,_t1B8F];
    real2 v041B9F#5 = <real2>[_t1B97,_t1B8F];
    real2 v051BA1#4 = <real2>[_t1B97,_t1B97];
    real2 v061BA3#4 = <real2>[_t1B97,_t1B95];
    real2 v081BA5#4 = <real2>[_t1B95,_t1B91];
    real2 v091BA7#4 = <real2>[_t1B95,_t1B97];
    real2 v101BA9#4 = <real2>[_t1B95,_t1B95];
    real2 v111BAB#4 = <real2>[_t1B95,_t1B8F];
    real2 v121BAD#4 = <real2>[_t1B8F,_t1B91];
    real2 v131BAF#4 = <real2>[_t1B8F,_t1B97];
    real2 v141BB1#4 = <real2>[_t1B8F,_t1B95];
    return (v001B93,v011B99,v021B9B,v031B9D,v051BA1,v061BA3,v041B9F,v081BA5,v091BA7,v101BA9,v111BAB,v121BAD,v131BAF,v141BB1,_t1B89,_t1B8D)
## initially
  ARRAY
    ENTRY1BBC:  preds = []
      int _t1BB8#4 = 0;
      int _t1BB9#4 = 60;
      live vars = (_t1BB9,_t1BB8)
    for int i1BB7#1 = _t1BB8 .. _t1BB9
      for int j1BBA#1 = _t1BB8 .. _t1BB9
        for int k1BBB#1 = _t1BB8 .. _t1BB9
          ENTRY1BC0:  preds = []
            live vars = ()
          new R(i1BB7,j1BBA,k1BBB);
## strands
  strand R (int i1BC2#1, int j1BC3#1, int k1BC4#1)
    state: real3 self.t;output real self.score;real2 self.r0;real2 self.r1;real2 self.pos;
      ENTRY1BCA:  preds = []
        real _t1BCB#1 = IntToReal(i1BC2);
        real _t1BCD#3 = 0.60e2;
        real _t1BCF#1 = Div<real>(_t1BCB,_t1BCD);
        real _t1BD1#3 = 0.5e0;
        real _t1BD3#1 = Sub<real>(_t1BCF,_t1BD1);
        real _t1BD5#1 = IntToReal(j1BC3);
        real _t1BD7#1 = Div<real>(_t1BD5,_t1BCD);
        real _t1BD9#1 = Sub<real>(_t1BD7,_t1BD1);
        real _t1BDB#1 = IntToReal(k1BC4);
        real _t1BDD#1 = Div<real>(_t1BDB,_t1BCD);
        real _t1BDF#1 = Sub<real>(_t1BDD,_t1BD1);
        real3 t1BE1#1 = <real3>[_t1BD3,_t1BD9,_t1BDF];
        real score1BE3#3 = 0.0;
        real2 r01BE5#3 = <real2>[score1BE3,score1BE3];
        self.t = t1BE1;
        self.score = score1BE3;
        self.r0 = r01BE5;
        self.r1 = r01BE5;
        self.pos = r01BE5;
        strand_init ()
    method Update
        ENTRY1BED:  preds = []
          real3 t1BEE#4 = self.t;
          real score1BF0#2 = self.score;
          real _t1BF2#152 = 0.1e1;
          real _t1BF4#78 = 0.2e1;
          int _t1BF6#31 = 2;
          real _t1BF8#6 = Subscript<real3>(t1BEE,_t1BF6);
          real _t1BFA#1 = Mul<real>(_t1BF4,_t1BF8);
          real _t1BFC#1 = Mul<real>(_t1BFA,_t1BF8);
          real _t1BFE#2 = Sub<real>(_t1BF2,_t1BFC);
          real _t1C00#1 = Neg<real>(_t1BF4);
          real _t1C02#1 = Mul<real>(_t1BF8,_t1BF8);
          real _t1C04#1 = Sub<real>(_t1BF2,_t1C02);
          real _t1C06#2 = sqrt(_t1C04);
          real _t1C08#1 = Mul<real>(_t1C00,_t1C06);
          real _t1C0A#1 = Mul<real>(_t1C08,_t1BF8);
          real2 r01C0C#15 = <real2>[_t1BFE,_t1C0A];
          real _t1C0E#1 = Mul<real>(_t1BF4,_t1C06);
          real _t1C10#1 = Mul<real>(_t1C0E,_t1BF8);
          real2 r11C12#15 = <real2>[_t1C10,_t1BFE];
          real _t1C14#1 = Dot<2>(r01C0C,v001B93);
          real _t1C16#1 = Dot<2>(r11C12,v001B93);
          real2 _t1C18#1 = <real2>[_t1C14,_t1C16];
          int _t1C1A#31 = 0;
          real _t1C1C#1 = Subscript<real3>(t1BEE,_t1C1A);
          int _t1C1E#31 = 1;
          real _t1C20#1 = Subscript<real3>(t1BEE,_t1C1E);
          real2 _t1C22#14 = <real2>[_t1C1C,_t1C20];
          real2 pos1C24#1 = Add<real2>(_t1C18,_t1C22);
          real2 x1C26#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos1C24);
          bool _t1C28#1 = Inside<IMAGE2D<float>,2>(x1C26,_t1B8D);
          if _t1C28 then goto ASSIGN1C2C else goto ASSIGN35F6
        ASSIGN1C2C:  preds = [COND1C2A]
          real2 x1C2B#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v001B93);
          bool _t1C2D#1 = Inside<IMAGE2D<int>,2>(x1C2B,_t1B89);
          goto JOIN1C31
        JOIN1C31:  preds = [ASSIGN1C2E,ASSIGN35F6]
          bool _t1C2F#1 = phi(_t1C2D,_t1C30)
          if _t1C2F then goto ASSIGN1C34 else goto JOIN1DD6
        ASSIGN1C34:  preds = [COND1C32]
          real2 nd1C33#2 = Floor<2>(x1C26);
          real2 f1C35#2 = Sub<real2>(x1C26,nd1C33);
          int{2} n1C37#2 = RealToInt<2>(nd1C33);
          int t11C39#4 = -1;
          int t21C3B#1 = Index<int{2},0>(n1C37);
          int ix1C3D#4 = Add<int>(t11C39,t21C3B);
          int t21C3F#4 = Index<int{2},1>(n1C37);
          int iy1C41#1 = Add<int>(t11C39,t21C3F);
          int n01C44#8 = 21;
          int t1C45#1 = Mul<int>(n01C44,iy1C41);
          int index1C46#1 = Add<int>(ix1C3D,t1C45);
          addr(IMAGE2D<float>) imgBaseAddr1C47#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a1C43#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1C47,index1C46);
          real4 v01C4D#1 = LoadVoxels<IMAGE2D<float>,4>(a1C43);
          int iy1C4F#1 = Add<int>(_t1C1A,t21C3F);
          int t1C53#1 = Mul<int>(n01C44,iy1C4F);
          int index1C54#1 = Add<int>(ix1C3D,t1C53);
          addr(IMAGE2D<float>) a1C51#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1C47,index1C54);
          real4 v11C5B#1 = LoadVoxels<IMAGE2D<float>,4>(a1C51);
          int iy1C5D#1 = Add<int>(_t1C1E,t21C3F);
          int t1C61#1 = Mul<int>(n01C44,iy1C5D);
          int index1C62#1 = Add<int>(ix1C3D,t1C61);
          addr(IMAGE2D<float>) a1C5F#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1C47,index1C62);
          real4 v21C69#1 = LoadVoxels<IMAGE2D<float>,4>(a1C5F);
          int iy1C6B#1 = Add<int>(_t1BF6,t21C3F);
          int t1C6F#1 = Mul<int>(n01C44,iy1C6B);
          int index1C70#1 = Add<int>(ix1C3D,t1C6F);
          addr(IMAGE2D<float>) a1C6D#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1C47,index1C70);
          real4 v31C77#1 = LoadVoxels<IMAGE2D<float>,4>(a1C6D);
          real fy1C79#4 = Index<real2,1>(f1C35);
          real t31C7B#1 = Add<real>(fy1C79,_t1BF2);
          real t11C7D#1 = Sub<real>(fy1C79,_t1BF2);
          real t01C7F#1 = Sub<real>(fy1C79,_t1BF4);
          real4 a1C81#3 = <real4>[t31C7B,fy1C79,t11C7D,t01C7F];
          real _f1C94#2 = 0.133333333333e1;
          real _f1C95#2 = 0.666666666667e0;
          real4 a01C84#4 = <real4>[_f1C94,_f1C95,_f1C95,_f1C94];
          real _f1C90#1 = -0.2e1;
          real _f1C91#2 = 0.0;
          real4 a11C85#4 = <real4>[_f1C90,_f1C91,_f1C91,_t1BF4];
          real _f1C8D#2 = -0.1e1;
          real4 a21C86#4 = <real4>[_t1BF2,_f1C8D,_f1C8D,_t1BF2];
          real _f1C88#1 = -0.166666666667e0;
          real _f1C89#1 = 0.5e0;
          real _f1C8A#1 = -0.5e0;
          real _f1C8B#1 = 0.166666666667e0;
          real4 a31C87#4 = <real4>[_f1C88,_f1C89,_f1C8A,_f1C8B];
          real4 prod31C98#1 = Mul<real4>(a1C81,a31C87);
          real4 sum21C99#1 = Add<real4>(a21C86,prod31C98);
          real4 prod21C9A#1 = Mul<real4>(a1C81,sum21C99);
          real4 sum11C9B#1 = Add<real4>(a11C85,prod21C9A);
          real4 prod11C9C#1 = Mul<real4>(a1C81,sum11C9B);
          real4 hy1C83#1 = Add<real4>(a01C84,prod11C9C);
          real fx1CB7#4 = Index<real2,0>(f1C35);
          real t31CB9#1 = Add<real>(fx1CB7,_t1BF2);
          real t11CBB#1 = Sub<real>(fx1CB7,_t1BF2);
          real t01CBD#1 = Sub<real>(fx1CB7,_t1BF4);
          real4 a1CBF#3 = <real4>[t31CB9,fx1CB7,t11CBB,t01CBD];
          real4 prod31CD6#1 = Mul<real4>(a1CBF,a31C87);
          real4 sum21CD7#1 = Add<real4>(a21C86,prod31CD6);
          real4 prod21CD8#1 = Mul<real4>(a1CBF,sum21CD7);
          real4 sum11CD9#1 = Add<real4>(a11C85,prod21CD8);
          real4 prod11CDA#1 = Mul<real4>(a1CBF,sum11CD9);
          real4 hx1CC1#4 = Add<real4>(a01C84,prod11CDA);
          real t01CF5#1 = Dot<4>(v01C4D,hx1CC1);
          real t11CF7#1 = Dot<4>(v11C5B,hx1CC1);
          real t21CF9#1 = Dot<4>(v21C69,hx1CC1);
          real t31CFB#1 = Dot<4>(v31C77,hx1CC1);
          real4 tv1CFD#1 = <real4>[t01CF5,t11CF7,t21CF9,t31CFB];
          real _t1CFF#1 = Dot<4>(hy1C83,tv1CFD);
          real2 x1D01#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v001B93);
          real2 nd1D03#2 = Floor<2>(x1D01);
          real2 f1D05#2 = Sub<real2>(x1D01,nd1D03);
          int{2} n1D07#2 = RealToInt<2>(nd1D03);
          int t21D09#1 = Index<int{2},0>(n1D07);
          int ix1D0B#4 = Add<int>(t11C39,t21D09);
          int t21D0D#4 = Index<int{2},1>(n1D07);
          int iy1D0F#1 = Add<int>(t11C39,t21D0D);
          int t1D13#1 = Mul<int>(n01C44,iy1D0F);
          int index1D14#1 = Add<int>(ix1D0B,t1D13);
          addr(IMAGE2D<int>) imgBaseAddr1D15#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a1D11#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1D15,index1D14);
          real4 v01D1B#1 = LoadVoxels<IMAGE2D<int>,4>(a1D11);
          int iy1D1D#1 = Add<int>(_t1C1A,t21D0D);
          int t1D21#1 = Mul<int>(n01C44,iy1D1D);
          int index1D22#1 = Add<int>(ix1D0B,t1D21);
          addr(IMAGE2D<int>) a1D1F#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1D15,index1D22);
          real4 v11D29#1 = LoadVoxels<IMAGE2D<int>,4>(a1D1F);
          int iy1D2B#1 = Add<int>(_t1C1E,t21D0D);
          int t1D2F#1 = Mul<int>(n01C44,iy1D2B);
          int index1D30#1 = Add<int>(ix1D0B,t1D2F);
          addr(IMAGE2D<int>) a1D2D#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1D15,index1D30);
          real4 v21D37#1 = LoadVoxels<IMAGE2D<int>,4>(a1D2D);
          int iy1D39#1 = Add<int>(_t1BF6,t21D0D);
          int t1D3D#1 = Mul<int>(n01C44,iy1D39);
          int index1D3E#1 = Add<int>(ix1D0B,t1D3D);
          addr(IMAGE2D<int>) a1D3B#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1D15,index1D3E);
          real4 v31D45#1 = LoadVoxels<IMAGE2D<int>,4>(a1D3B);
          real fy1D47#4 = Index<real2,1>(f1D05);
          real t31D49#1 = Add<real>(fy1D47,_t1BF2);
          real t11D4B#1 = Sub<real>(fy1D47,_t1BF2);
          real t01D4D#1 = Sub<real>(fy1D47,_t1BF4);
          real4 a1D4F#3 = <real4>[t31D49,fy1D47,t11D4B,t01D4D];
          real4 prod31D66#1 = Mul<real4>(a1D4F,a31C87);
          real4 sum21D67#1 = Add<real4>(a21C86,prod31D66);
          real4 prod21D68#1 = Mul<real4>(a1D4F,sum21D67);
          real4 sum11D69#1 = Add<real4>(a11C85,prod21D68);
          real4 prod11D6A#1 = Mul<real4>(a1D4F,sum11D69);
          real4 hy1D51#1 = Add<real4>(a01C84,prod11D6A);
          real fx1D85#4 = Index<real2,0>(f1D05);
          real t31D87#1 = Add<real>(fx1D85,_t1BF2);
          real t11D89#1 = Sub<real>(fx1D85,_t1BF2);
          real t01D8B#1 = Sub<real>(fx1D85,_t1BF4);
          real4 a1D8D#3 = <real4>[t31D87,fx1D85,t11D89,t01D8B];
          real4 prod31DA4#1 = Mul<real4>(a1D8D,a31C87);
          real4 sum21DA5#1 = Add<real4>(a21C86,prod31DA4);
          real4 prod21DA6#1 = Mul<real4>(a1D8D,sum21DA5);
          real4 sum11DA7#1 = Add<real4>(a11C85,prod21DA6);
          real4 prod11DA8#1 = Mul<real4>(a1D8D,sum11DA7);
          real4 hx1D8F#4 = Add<real4>(a01C84,prod11DA8);
          real t01DC3#1 = Dot<4>(v01D1B,hx1D8F);
          real t11DC5#1 = Dot<4>(v11D29,hx1D8F);
          real t21DC7#1 = Dot<4>(v21D37,hx1D8F);
          real t31DC9#1 = Dot<4>(v31D45,hx1D8F);
          real4 tv1DCB#1 = <real4>[t01DC3,t11DC5,t21DC7,t31DC9];
          real _t1DCD#1 = Dot<4>(hy1D51,tv1DCB);
          real _t1DCF#2 = Sub<real>(_t1CFF,_t1DCD);
          real _t1DD1#1 = Mul<real>(_t1DCF,_t1DCF);
          real score1DD3#1 = Add<real>(score1BF0,_t1DD1);
          goto JOIN1DD6
        JOIN1DD6:  preds = [ASSIGN1DD4,COND1C32]
          real score1DD5#2 = phi(score1DD3,score1BF0)
          real _t1DD7#1 = Dot<2>(r01C0C,v011B99);
          real _t1DD9#1 = Dot<2>(r11C12,v011B99);
          real2 _t1DDB#1 = <real2>[_t1DD7,_t1DD9];
          real2 pos1DDD#1 = Add<real2>(_t1DDB,_t1C22);
          real2 x1DDF#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos1DDD);
          bool _t1DE1#1 = Inside<IMAGE2D<float>,2>(x1DDF,_t1B8D);
          if _t1DE1 then goto ASSIGN1DE5 else goto ASSIGN35F5
        ASSIGN1DE5:  preds = [COND1DE3]
          real2 x1DE4#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v011B99);
          bool _t1DE6#1 = Inside<IMAGE2D<int>,2>(x1DE4,_t1B89);
          goto JOIN1DEA
        JOIN1DEA:  preds = [ASSIGN1DE7,ASSIGN35F5]
          bool _t1DE8#1 = phi(_t1DE6,_t1DE9)
          if _t1DE8 then goto ASSIGN1DED else goto JOIN1F8F
        ASSIGN1DED:  preds = [COND1DEB]
          real2 nd1DEC#2 = Floor<2>(x1DDF);
          real2 f1DEE#2 = Sub<real2>(x1DDF,nd1DEC);
          int{2} n1DF0#2 = RealToInt<2>(nd1DEC);
          int t11DF2#4 = -1;
          int t21DF4#1 = Index<int{2},0>(n1DF0);
          int ix1DF6#4 = Add<int>(t11DF2,t21DF4);
          int t21DF8#4 = Index<int{2},1>(n1DF0);
          int iy1DFA#1 = Add<int>(t11DF2,t21DF8);
          int n01DFD#8 = 21;
          int t1DFE#1 = Mul<int>(n01DFD,iy1DFA);
          int index1DFF#1 = Add<int>(ix1DF6,t1DFE);
          addr(IMAGE2D<float>) imgBaseAddr1E00#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a1DFC#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1E00,index1DFF);
          real4 v01E06#1 = LoadVoxels<IMAGE2D<float>,4>(a1DFC);
          int iy1E08#1 = Add<int>(_t1C1A,t21DF8);
          int t1E0C#1 = Mul<int>(n01DFD,iy1E08);
          int index1E0D#1 = Add<int>(ix1DF6,t1E0C);
          addr(IMAGE2D<float>) a1E0A#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1E00,index1E0D);
          real4 v11E14#1 = LoadVoxels<IMAGE2D<float>,4>(a1E0A);
          int iy1E16#1 = Add<int>(_t1C1E,t21DF8);
          int t1E1A#1 = Mul<int>(n01DFD,iy1E16);
          int index1E1B#1 = Add<int>(ix1DF6,t1E1A);
          addr(IMAGE2D<float>) a1E18#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1E00,index1E1B);
          real4 v21E22#1 = LoadVoxels<IMAGE2D<float>,4>(a1E18);
          int iy1E24#1 = Add<int>(_t1BF6,t21DF8);
          int t1E28#1 = Mul<int>(n01DFD,iy1E24);
          int index1E29#1 = Add<int>(ix1DF6,t1E28);
          addr(IMAGE2D<float>) a1E26#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1E00,index1E29);
          real4 v31E30#1 = LoadVoxels<IMAGE2D<float>,4>(a1E26);
          real fy1E32#4 = Index<real2,1>(f1DEE);
          real t31E34#1 = Add<real>(fy1E32,_t1BF2);
          real t11E36#1 = Sub<real>(fy1E32,_t1BF2);
          real t01E38#1 = Sub<real>(fy1E32,_t1BF4);
          real4 a1E3A#3 = <real4>[t31E34,fy1E32,t11E36,t01E38];
          real _f1E4D#2 = 0.133333333333e1;
          real _f1E4E#2 = 0.666666666667e0;
          real4 a01E3D#4 = <real4>[_f1E4D,_f1E4E,_f1E4E,_f1E4D];
          real _f1E49#1 = -0.2e1;
          real _f1E4A#2 = 0.0;
          real4 a11E3E#4 = <real4>[_f1E49,_f1E4A,_f1E4A,_t1BF4];
          real _f1E46#2 = -0.1e1;
          real4 a21E3F#4 = <real4>[_t1BF2,_f1E46,_f1E46,_t1BF2];
          real _f1E41#1 = -0.166666666667e0;
          real _f1E42#1 = 0.5e0;
          real _f1E43#1 = -0.5e0;
          real _f1E44#1 = 0.166666666667e0;
          real4 a31E40#4 = <real4>[_f1E41,_f1E42,_f1E43,_f1E44];
          real4 prod31E51#1 = Mul<real4>(a1E3A,a31E40);
          real4 sum21E52#1 = Add<real4>(a21E3F,prod31E51);
          real4 prod21E53#1 = Mul<real4>(a1E3A,sum21E52);
          real4 sum11E54#1 = Add<real4>(a11E3E,prod21E53);
          real4 prod11E55#1 = Mul<real4>(a1E3A,sum11E54);
          real4 hy1E3C#1 = Add<real4>(a01E3D,prod11E55);
          real fx1E70#4 = Index<real2,0>(f1DEE);
          real t31E72#1 = Add<real>(fx1E70,_t1BF2);
          real t11E74#1 = Sub<real>(fx1E70,_t1BF2);
          real t01E76#1 = Sub<real>(fx1E70,_t1BF4);
          real4 a1E78#3 = <real4>[t31E72,fx1E70,t11E74,t01E76];
          real4 prod31E8F#1 = Mul<real4>(a1E78,a31E40);
          real4 sum21E90#1 = Add<real4>(a21E3F,prod31E8F);
          real4 prod21E91#1 = Mul<real4>(a1E78,sum21E90);
          real4 sum11E92#1 = Add<real4>(a11E3E,prod21E91);
          real4 prod11E93#1 = Mul<real4>(a1E78,sum11E92);
          real4 hx1E7A#4 = Add<real4>(a01E3D,prod11E93);
          real t01EAE#1 = Dot<4>(v01E06,hx1E7A);
          real t11EB0#1 = Dot<4>(v11E14,hx1E7A);
          real t21EB2#1 = Dot<4>(v21E22,hx1E7A);
          real t31EB4#1 = Dot<4>(v31E30,hx1E7A);
          real4 tv1EB6#1 = <real4>[t01EAE,t11EB0,t21EB2,t31EB4];
          real _t1EB8#1 = Dot<4>(hy1E3C,tv1EB6);
          real2 x1EBA#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v011B99);
          real2 nd1EBC#2 = Floor<2>(x1EBA);
          real2 f1EBE#2 = Sub<real2>(x1EBA,nd1EBC);
          int{2} n1EC0#2 = RealToInt<2>(nd1EBC);
          int t21EC2#1 = Index<int{2},0>(n1EC0);
          int ix1EC4#4 = Add<int>(t11DF2,t21EC2);
          int t21EC6#4 = Index<int{2},1>(n1EC0);
          int iy1EC8#1 = Add<int>(t11DF2,t21EC6);
          int t1ECC#1 = Mul<int>(n01DFD,iy1EC8);
          int index1ECD#1 = Add<int>(ix1EC4,t1ECC);
          addr(IMAGE2D<int>) imgBaseAddr1ECE#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a1ECA#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1ECE,index1ECD);
          real4 v01ED4#1 = LoadVoxels<IMAGE2D<int>,4>(a1ECA);
          int iy1ED6#1 = Add<int>(_t1C1A,t21EC6);
          int t1EDA#1 = Mul<int>(n01DFD,iy1ED6);
          int index1EDB#1 = Add<int>(ix1EC4,t1EDA);
          addr(IMAGE2D<int>) a1ED8#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1ECE,index1EDB);
          real4 v11EE2#1 = LoadVoxels<IMAGE2D<int>,4>(a1ED8);
          int iy1EE4#1 = Add<int>(_t1C1E,t21EC6);
          int t1EE8#1 = Mul<int>(n01DFD,iy1EE4);
          int index1EE9#1 = Add<int>(ix1EC4,t1EE8);
          addr(IMAGE2D<int>) a1EE6#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1ECE,index1EE9);
          real4 v21EF0#1 = LoadVoxels<IMAGE2D<int>,4>(a1EE6);
          int iy1EF2#1 = Add<int>(_t1BF6,t21EC6);
          int t1EF6#1 = Mul<int>(n01DFD,iy1EF2);
          int index1EF7#1 = Add<int>(ix1EC4,t1EF6);
          addr(IMAGE2D<int>) a1EF4#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr1ECE,index1EF7);
          real4 v31EFE#1 = LoadVoxels<IMAGE2D<int>,4>(a1EF4);
          real fy1F00#4 = Index<real2,1>(f1EBE);
          real t31F02#1 = Add<real>(fy1F00,_t1BF2);
          real t11F04#1 = Sub<real>(fy1F00,_t1BF2);
          real t01F06#1 = Sub<real>(fy1F00,_t1BF4);
          real4 a1F08#3 = <real4>[t31F02,fy1F00,t11F04,t01F06];
          real4 prod31F1F#1 = Mul<real4>(a1F08,a31E40);
          real4 sum21F20#1 = Add<real4>(a21E3F,prod31F1F);
          real4 prod21F21#1 = Mul<real4>(a1F08,sum21F20);
          real4 sum11F22#1 = Add<real4>(a11E3E,prod21F21);
          real4 prod11F23#1 = Mul<real4>(a1F08,sum11F22);
          real4 hy1F0A#1 = Add<real4>(a01E3D,prod11F23);
          real fx1F3E#4 = Index<real2,0>(f1EBE);
          real t31F40#1 = Add<real>(fx1F3E,_t1BF2);
          real t11F42#1 = Sub<real>(fx1F3E,_t1BF2);
          real t01F44#1 = Sub<real>(fx1F3E,_t1BF4);
          real4 a1F46#3 = <real4>[t31F40,fx1F3E,t11F42,t01F44];
          real4 prod31F5D#1 = Mul<real4>(a1F46,a31E40);
          real4 sum21F5E#1 = Add<real4>(a21E3F,prod31F5D);
          real4 prod21F5F#1 = Mul<real4>(a1F46,sum21F5E);
          real4 sum11F60#1 = Add<real4>(a11E3E,prod21F5F);
          real4 prod11F61#1 = Mul<real4>(a1F46,sum11F60);
          real4 hx1F48#4 = Add<real4>(a01E3D,prod11F61);
          real t01F7C#1 = Dot<4>(v01ED4,hx1F48);
          real t11F7E#1 = Dot<4>(v11EE2,hx1F48);
          real t21F80#1 = Dot<4>(v21EF0,hx1F48);
          real t31F82#1 = Dot<4>(v31EFE,hx1F48);
          real4 tv1F84#1 = <real4>[t01F7C,t11F7E,t21F80,t31F82];
          real _t1F86#1 = Dot<4>(hy1F0A,tv1F84);
          real _t1F88#2 = Sub<real>(_t1EB8,_t1F86);
          real _t1F8A#1 = Mul<real>(_t1F88,_t1F88);
          real score1F8C#1 = Add<real>(score1DD5,_t1F8A);
          goto JOIN1F8F
        JOIN1F8F:  preds = [ASSIGN1F8D,COND1DEB]
          real score1F8E#2 = phi(score1F8C,score1DD5)
          real _t1F90#1 = Dot<2>(r01C0C,v021B9B);
          real _t1F92#1 = Dot<2>(r11C12,v021B9B);
          real2 _t1F94#1 = <real2>[_t1F90,_t1F92];
          real2 pos1F96#1 = Add<real2>(_t1F94,_t1C22);
          real2 x1F98#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos1F96);
          bool _t1F9A#1 = Inside<IMAGE2D<float>,2>(x1F98,_t1B8D);
          if _t1F9A then goto ASSIGN1F9E else goto ASSIGN35F4
        ASSIGN1F9E:  preds = [COND1F9C]
          real2 x1F9D#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v021B9B);
          bool _t1F9F#1 = Inside<IMAGE2D<int>,2>(x1F9D,_t1B89);
          goto JOIN1FA3
        JOIN1FA3:  preds = [ASSIGN1FA0,ASSIGN35F4]
          bool _t1FA1#1 = phi(_t1F9F,_t1FA2)
          if _t1FA1 then goto ASSIGN1FA6 else goto JOIN2148
        ASSIGN1FA6:  preds = [COND1FA4]
          real2 nd1FA5#2 = Floor<2>(x1F98);
          real2 f1FA7#2 = Sub<real2>(x1F98,nd1FA5);
          int{2} n1FA9#2 = RealToInt<2>(nd1FA5);
          int t11FAB#4 = -1;
          int t21FAD#1 = Index<int{2},0>(n1FA9);
          int ix1FAF#4 = Add<int>(t11FAB,t21FAD);
          int t21FB1#4 = Index<int{2},1>(n1FA9);
          int iy1FB3#1 = Add<int>(t11FAB,t21FB1);
          int n01FB6#8 = 21;
          int t1FB7#1 = Mul<int>(n01FB6,iy1FB3);
          int index1FB8#1 = Add<int>(ix1FAF,t1FB7);
          addr(IMAGE2D<float>) imgBaseAddr1FB9#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a1FB5#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1FB9,index1FB8);
          real4 v01FBF#1 = LoadVoxels<IMAGE2D<float>,4>(a1FB5);
          int iy1FC1#1 = Add<int>(_t1C1A,t21FB1);
          int t1FC5#1 = Mul<int>(n01FB6,iy1FC1);
          int index1FC6#1 = Add<int>(ix1FAF,t1FC5);
          addr(IMAGE2D<float>) a1FC3#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1FB9,index1FC6);
          real4 v11FCD#1 = LoadVoxels<IMAGE2D<float>,4>(a1FC3);
          int iy1FCF#1 = Add<int>(_t1C1E,t21FB1);
          int t1FD3#1 = Mul<int>(n01FB6,iy1FCF);
          int index1FD4#1 = Add<int>(ix1FAF,t1FD3);
          addr(IMAGE2D<float>) a1FD1#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1FB9,index1FD4);
          real4 v21FDB#1 = LoadVoxels<IMAGE2D<float>,4>(a1FD1);
          int iy1FDD#1 = Add<int>(_t1BF6,t21FB1);
          int t1FE1#1 = Mul<int>(n01FB6,iy1FDD);
          int index1FE2#1 = Add<int>(ix1FAF,t1FE1);
          addr(IMAGE2D<float>) a1FDF#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr1FB9,index1FE2);
          real4 v31FE9#1 = LoadVoxels<IMAGE2D<float>,4>(a1FDF);
          real fy1FEB#4 = Index<real2,1>(f1FA7);
          real t31FED#1 = Add<real>(fy1FEB,_t1BF2);
          real t11FEF#1 = Sub<real>(fy1FEB,_t1BF2);
          real t01FF1#1 = Sub<real>(fy1FEB,_t1BF4);
          real4 a1FF3#3 = <real4>[t31FED,fy1FEB,t11FEF,t01FF1];
          real _f2006#2 = 0.133333333333e1;
          real _f2007#2 = 0.666666666667e0;
          real4 a01FF6#4 = <real4>[_f2006,_f2007,_f2007,_f2006];
          real _f2002#1 = -0.2e1;
          real _f2003#2 = 0.0;
          real4 a11FF7#4 = <real4>[_f2002,_f2003,_f2003,_t1BF4];
          real _f1FFF#2 = -0.1e1;
          real4 a21FF8#4 = <real4>[_t1BF2,_f1FFF,_f1FFF,_t1BF2];
          real _f1FFA#1 = -0.166666666667e0;
          real _f1FFB#1 = 0.5e0;
          real _f1FFC#1 = -0.5e0;
          real _f1FFD#1 = 0.166666666667e0;
          real4 a31FF9#4 = <real4>[_f1FFA,_f1FFB,_f1FFC,_f1FFD];
          real4 prod3200A#1 = Mul<real4>(a1FF3,a31FF9);
          real4 sum2200B#1 = Add<real4>(a21FF8,prod3200A);
          real4 prod2200C#1 = Mul<real4>(a1FF3,sum2200B);
          real4 sum1200D#1 = Add<real4>(a11FF7,prod2200C);
          real4 prod1200E#1 = Mul<real4>(a1FF3,sum1200D);
          real4 hy1FF5#1 = Add<real4>(a01FF6,prod1200E);
          real fx2029#4 = Index<real2,0>(f1FA7);
          real t3202B#1 = Add<real>(fx2029,_t1BF2);
          real t1202D#1 = Sub<real>(fx2029,_t1BF2);
          real t0202F#1 = Sub<real>(fx2029,_t1BF4);
          real4 a2031#3 = <real4>[t3202B,fx2029,t1202D,t0202F];
          real4 prod32048#1 = Mul<real4>(a2031,a31FF9);
          real4 sum22049#1 = Add<real4>(a21FF8,prod32048);
          real4 prod2204A#1 = Mul<real4>(a2031,sum22049);
          real4 sum1204B#1 = Add<real4>(a11FF7,prod2204A);
          real4 prod1204C#1 = Mul<real4>(a2031,sum1204B);
          real4 hx2033#4 = Add<real4>(a01FF6,prod1204C);
          real t02067#1 = Dot<4>(v01FBF,hx2033);
          real t12069#1 = Dot<4>(v11FCD,hx2033);
          real t2206B#1 = Dot<4>(v21FDB,hx2033);
          real t3206D#1 = Dot<4>(v31FE9,hx2033);
          real4 tv206F#1 = <real4>[t02067,t12069,t2206B,t3206D];
          real _t2071#1 = Dot<4>(hy1FF5,tv206F);
          real2 x2073#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v021B9B);
          real2 nd2075#2 = Floor<2>(x2073);
          real2 f2077#2 = Sub<real2>(x2073,nd2075);
          int{2} n2079#2 = RealToInt<2>(nd2075);
          int t2207B#1 = Index<int{2},0>(n2079);
          int ix207D#4 = Add<int>(t11FAB,t2207B);
          int t2207F#4 = Index<int{2},1>(n2079);
          int iy2081#1 = Add<int>(t11FAB,t2207F);
          int t2085#1 = Mul<int>(n01FB6,iy2081);
          int index2086#1 = Add<int>(ix207D,t2085);
          addr(IMAGE2D<int>) imgBaseAddr2087#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a2083#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2087,index2086);
          real4 v0208D#1 = LoadVoxels<IMAGE2D<int>,4>(a2083);
          int iy208F#1 = Add<int>(_t1C1A,t2207F);
          int t2093#1 = Mul<int>(n01FB6,iy208F);
          int index2094#1 = Add<int>(ix207D,t2093);
          addr(IMAGE2D<int>) a2091#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2087,index2094);
          real4 v1209B#1 = LoadVoxels<IMAGE2D<int>,4>(a2091);
          int iy209D#1 = Add<int>(_t1C1E,t2207F);
          int t20A1#1 = Mul<int>(n01FB6,iy209D);
          int index20A2#1 = Add<int>(ix207D,t20A1);
          addr(IMAGE2D<int>) a209F#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2087,index20A2);
          real4 v220A9#1 = LoadVoxels<IMAGE2D<int>,4>(a209F);
          int iy20AB#1 = Add<int>(_t1BF6,t2207F);
          int t20AF#1 = Mul<int>(n01FB6,iy20AB);
          int index20B0#1 = Add<int>(ix207D,t20AF);
          addr(IMAGE2D<int>) a20AD#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2087,index20B0);
          real4 v320B7#1 = LoadVoxels<IMAGE2D<int>,4>(a20AD);
          real fy20B9#4 = Index<real2,1>(f2077);
          real t320BB#1 = Add<real>(fy20B9,_t1BF2);
          real t120BD#1 = Sub<real>(fy20B9,_t1BF2);
          real t020BF#1 = Sub<real>(fy20B9,_t1BF4);
          real4 a20C1#3 = <real4>[t320BB,fy20B9,t120BD,t020BF];
          real4 prod320D8#1 = Mul<real4>(a20C1,a31FF9);
          real4 sum220D9#1 = Add<real4>(a21FF8,prod320D8);
          real4 prod220DA#1 = Mul<real4>(a20C1,sum220D9);
          real4 sum120DB#1 = Add<real4>(a11FF7,prod220DA);
          real4 prod120DC#1 = Mul<real4>(a20C1,sum120DB);
          real4 hy20C3#1 = Add<real4>(a01FF6,prod120DC);
          real fx20F7#4 = Index<real2,0>(f2077);
          real t320F9#1 = Add<real>(fx20F7,_t1BF2);
          real t120FB#1 = Sub<real>(fx20F7,_t1BF2);
          real t020FD#1 = Sub<real>(fx20F7,_t1BF4);
          real4 a20FF#3 = <real4>[t320F9,fx20F7,t120FB,t020FD];
          real4 prod32116#1 = Mul<real4>(a20FF,a31FF9);
          real4 sum22117#1 = Add<real4>(a21FF8,prod32116);
          real4 prod22118#1 = Mul<real4>(a20FF,sum22117);
          real4 sum12119#1 = Add<real4>(a11FF7,prod22118);
          real4 prod1211A#1 = Mul<real4>(a20FF,sum12119);
          real4 hx2101#4 = Add<real4>(a01FF6,prod1211A);
          real t02135#1 = Dot<4>(v0208D,hx2101);
          real t12137#1 = Dot<4>(v1209B,hx2101);
          real t22139#1 = Dot<4>(v220A9,hx2101);
          real t3213B#1 = Dot<4>(v320B7,hx2101);
          real4 tv213D#1 = <real4>[t02135,t12137,t22139,t3213B];
          real _t213F#1 = Dot<4>(hy20C3,tv213D);
          real _t2141#2 = Sub<real>(_t2071,_t213F);
          real _t2143#1 = Mul<real>(_t2141,_t2141);
          real score2145#1 = Add<real>(score1F8E,_t2143);
          goto JOIN2148
        JOIN2148:  preds = [ASSIGN2146,COND1FA4]
          real score2147#2 = phi(score2145,score1F8E)
          real _t2149#1 = Dot<2>(r01C0C,v031B9D);
          real _t214B#1 = Dot<2>(r11C12,v031B9D);
          real2 _t214D#1 = <real2>[_t2149,_t214B];
          real2 pos214F#1 = Add<real2>(_t214D,_t1C22);
          real2 x2151#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos214F);
          bool _t2153#1 = Inside<IMAGE2D<float>,2>(x2151,_t1B8D);
          if _t2153 then goto ASSIGN2157 else goto ASSIGN35F3
        ASSIGN2157:  preds = [COND2155]
          real2 x2156#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v031B9D);
          bool _t2158#1 = Inside<IMAGE2D<int>,2>(x2156,_t1B89);
          goto JOIN215C
        JOIN215C:  preds = [ASSIGN2159,ASSIGN35F3]
          bool _t215A#1 = phi(_t2158,_t215B)
          if _t215A then goto ASSIGN215F else goto JOIN2301
        ASSIGN215F:  preds = [COND215D]
          real2 nd215E#2 = Floor<2>(x2151);
          real2 f2160#2 = Sub<real2>(x2151,nd215E);
          int{2} n2162#2 = RealToInt<2>(nd215E);
          int t12164#4 = -1;
          int t22166#1 = Index<int{2},0>(n2162);
          int ix2168#4 = Add<int>(t12164,t22166);
          int t2216A#4 = Index<int{2},1>(n2162);
          int iy216C#1 = Add<int>(t12164,t2216A);
          int n0216F#8 = 21;
          int t2170#1 = Mul<int>(n0216F,iy216C);
          int index2171#1 = Add<int>(ix2168,t2170);
          addr(IMAGE2D<float>) imgBaseAddr2172#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a216E#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2172,index2171);
          real4 v02178#1 = LoadVoxels<IMAGE2D<float>,4>(a216E);
          int iy217A#1 = Add<int>(_t1C1A,t2216A);
          int t217E#1 = Mul<int>(n0216F,iy217A);
          int index217F#1 = Add<int>(ix2168,t217E);
          addr(IMAGE2D<float>) a217C#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2172,index217F);
          real4 v12186#1 = LoadVoxels<IMAGE2D<float>,4>(a217C);
          int iy2188#1 = Add<int>(_t1C1E,t2216A);
          int t218C#1 = Mul<int>(n0216F,iy2188);
          int index218D#1 = Add<int>(ix2168,t218C);
          addr(IMAGE2D<float>) a218A#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2172,index218D);
          real4 v22194#1 = LoadVoxels<IMAGE2D<float>,4>(a218A);
          int iy2196#1 = Add<int>(_t1BF6,t2216A);
          int t219A#1 = Mul<int>(n0216F,iy2196);
          int index219B#1 = Add<int>(ix2168,t219A);
          addr(IMAGE2D<float>) a2198#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2172,index219B);
          real4 v321A2#1 = LoadVoxels<IMAGE2D<float>,4>(a2198);
          real fy21A4#4 = Index<real2,1>(f2160);
          real t321A6#1 = Add<real>(fy21A4,_t1BF2);
          real t121A8#1 = Sub<real>(fy21A4,_t1BF2);
          real t021AA#1 = Sub<real>(fy21A4,_t1BF4);
          real4 a21AC#3 = <real4>[t321A6,fy21A4,t121A8,t021AA];
          real _f21BF#2 = 0.133333333333e1;
          real _f21C0#2 = 0.666666666667e0;
          real4 a021AF#4 = <real4>[_f21BF,_f21C0,_f21C0,_f21BF];
          real _f21BB#1 = -0.2e1;
          real _f21BC#2 = 0.0;
          real4 a121B0#4 = <real4>[_f21BB,_f21BC,_f21BC,_t1BF4];
          real _f21B8#2 = -0.1e1;
          real4 a221B1#4 = <real4>[_t1BF2,_f21B8,_f21B8,_t1BF2];
          real _f21B3#1 = -0.166666666667e0;
          real _f21B4#1 = 0.5e0;
          real _f21B5#1 = -0.5e0;
          real _f21B6#1 = 0.166666666667e0;
          real4 a321B2#4 = <real4>[_f21B3,_f21B4,_f21B5,_f21B6];
          real4 prod321C3#1 = Mul<real4>(a21AC,a321B2);
          real4 sum221C4#1 = Add<real4>(a221B1,prod321C3);
          real4 prod221C5#1 = Mul<real4>(a21AC,sum221C4);
          real4 sum121C6#1 = Add<real4>(a121B0,prod221C5);
          real4 prod121C7#1 = Mul<real4>(a21AC,sum121C6);
          real4 hy21AE#1 = Add<real4>(a021AF,prod121C7);
          real fx21E2#4 = Index<real2,0>(f2160);
          real t321E4#1 = Add<real>(fx21E2,_t1BF2);
          real t121E6#1 = Sub<real>(fx21E2,_t1BF2);
          real t021E8#1 = Sub<real>(fx21E2,_t1BF4);
          real4 a21EA#3 = <real4>[t321E4,fx21E2,t121E6,t021E8];
          real4 prod32201#1 = Mul<real4>(a21EA,a321B2);
          real4 sum22202#1 = Add<real4>(a221B1,prod32201);
          real4 prod22203#1 = Mul<real4>(a21EA,sum22202);
          real4 sum12204#1 = Add<real4>(a121B0,prod22203);
          real4 prod12205#1 = Mul<real4>(a21EA,sum12204);
          real4 hx21EC#4 = Add<real4>(a021AF,prod12205);
          real t02220#1 = Dot<4>(v02178,hx21EC);
          real t12222#1 = Dot<4>(v12186,hx21EC);
          real t22224#1 = Dot<4>(v22194,hx21EC);
          real t32226#1 = Dot<4>(v321A2,hx21EC);
          real4 tv2228#1 = <real4>[t02220,t12222,t22224,t32226];
          real _t222A#1 = Dot<4>(hy21AE,tv2228);
          real2 x222C#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v031B9D);
          real2 nd222E#2 = Floor<2>(x222C);
          real2 f2230#2 = Sub<real2>(x222C,nd222E);
          int{2} n2232#2 = RealToInt<2>(nd222E);
          int t22234#1 = Index<int{2},0>(n2232);
          int ix2236#4 = Add<int>(t12164,t22234);
          int t22238#4 = Index<int{2},1>(n2232);
          int iy223A#1 = Add<int>(t12164,t22238);
          int t223E#1 = Mul<int>(n0216F,iy223A);
          int index223F#1 = Add<int>(ix2236,t223E);
          addr(IMAGE2D<int>) imgBaseAddr2240#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a223C#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2240,index223F);
          real4 v02246#1 = LoadVoxels<IMAGE2D<int>,4>(a223C);
          int iy2248#1 = Add<int>(_t1C1A,t22238);
          int t224C#1 = Mul<int>(n0216F,iy2248);
          int index224D#1 = Add<int>(ix2236,t224C);
          addr(IMAGE2D<int>) a224A#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2240,index224D);
          real4 v12254#1 = LoadVoxels<IMAGE2D<int>,4>(a224A);
          int iy2256#1 = Add<int>(_t1C1E,t22238);
          int t225A#1 = Mul<int>(n0216F,iy2256);
          int index225B#1 = Add<int>(ix2236,t225A);
          addr(IMAGE2D<int>) a2258#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2240,index225B);
          real4 v22262#1 = LoadVoxels<IMAGE2D<int>,4>(a2258);
          int iy2264#1 = Add<int>(_t1BF6,t22238);
          int t2268#1 = Mul<int>(n0216F,iy2264);
          int index2269#1 = Add<int>(ix2236,t2268);
          addr(IMAGE2D<int>) a2266#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2240,index2269);
          real4 v32270#1 = LoadVoxels<IMAGE2D<int>,4>(a2266);
          real fy2272#4 = Index<real2,1>(f2230);
          real t32274#1 = Add<real>(fy2272,_t1BF2);
          real t12276#1 = Sub<real>(fy2272,_t1BF2);
          real t02278#1 = Sub<real>(fy2272,_t1BF4);
          real4 a227A#3 = <real4>[t32274,fy2272,t12276,t02278];
          real4 prod32291#1 = Mul<real4>(a227A,a321B2);
          real4 sum22292#1 = Add<real4>(a221B1,prod32291);
          real4 prod22293#1 = Mul<real4>(a227A,sum22292);
          real4 sum12294#1 = Add<real4>(a121B0,prod22293);
          real4 prod12295#1 = Mul<real4>(a227A,sum12294);
          real4 hy227C#1 = Add<real4>(a021AF,prod12295);
          real fx22B0#4 = Index<real2,0>(f2230);
          real t322B2#1 = Add<real>(fx22B0,_t1BF2);
          real t122B4#1 = Sub<real>(fx22B0,_t1BF2);
          real t022B6#1 = Sub<real>(fx22B0,_t1BF4);
          real4 a22B8#3 = <real4>[t322B2,fx22B0,t122B4,t022B6];
          real4 prod322CF#1 = Mul<real4>(a22B8,a321B2);
          real4 sum222D0#1 = Add<real4>(a221B1,prod322CF);
          real4 prod222D1#1 = Mul<real4>(a22B8,sum222D0);
          real4 sum122D2#1 = Add<real4>(a121B0,prod222D1);
          real4 prod122D3#1 = Mul<real4>(a22B8,sum122D2);
          real4 hx22BA#4 = Add<real4>(a021AF,prod122D3);
          real t022EE#1 = Dot<4>(v02246,hx22BA);
          real t122F0#1 = Dot<4>(v12254,hx22BA);
          real t222F2#1 = Dot<4>(v22262,hx22BA);
          real t322F4#1 = Dot<4>(v32270,hx22BA);
          real4 tv22F6#1 = <real4>[t022EE,t122F0,t222F2,t322F4];
          real _t22F8#1 = Dot<4>(hy227C,tv22F6);
          real _t22FA#2 = Sub<real>(_t222A,_t22F8);
          real _t22FC#1 = Mul<real>(_t22FA,_t22FA);
          real score22FE#1 = Add<real>(score2147,_t22FC);
          goto JOIN2301
        JOIN2301:  preds = [ASSIGN22FF,COND215D]
          real score2300#2 = phi(score22FE,score2147)
          real _t2302#1 = Dot<2>(r01C0C,v041B9F);
          real _t2304#1 = Dot<2>(r11C12,v041B9F);
          real2 _t2306#1 = <real2>[_t2302,_t2304];
          real2 pos2308#1 = Add<real2>(_t2306,_t1C22);
          real2 x230A#5 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos2308);
          bool _t230C#2 = Inside<IMAGE2D<float>,2>(x230A,_t1B8D);
          if _t230C then goto ASSIGN2310 else goto ASSIGN35F2
        ASSIGN2310:  preds = [COND230E]
          real2 x230F#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v041B9F);
          bool _t2311#1 = Inside<IMAGE2D<int>,2>(x230F,_t1B89);
          goto JOIN2315
        JOIN2315:  preds = [ASSIGN2312,ASSIGN35F2]
          bool _t2313#2 = phi(_t2311,_t2314)
          if _t2313 then goto ASSIGN2318 else goto JOIN24BA
        ASSIGN2318:  preds = [COND2316]
          real2 nd2317#2 = Floor<2>(x230A);
          real2 f2319#2 = Sub<real2>(x230A,nd2317);
          int{2} n231B#2 = RealToInt<2>(nd2317);
          int t1231D#4 = -1;
          int t2231F#1 = Index<int{2},0>(n231B);
          int ix2321#4 = Add<int>(t1231D,t2231F);
          int t22323#4 = Index<int{2},1>(n231B);
          int iy2325#1 = Add<int>(t1231D,t22323);
          int n02328#8 = 21;
          int t2329#1 = Mul<int>(n02328,iy2325);
          int index232A#1 = Add<int>(ix2321,t2329);
          addr(IMAGE2D<float>) imgBaseAddr232B#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a2327#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr232B,index232A);
          real4 v02331#1 = LoadVoxels<IMAGE2D<float>,4>(a2327);
          int iy2333#1 = Add<int>(_t1C1A,t22323);
          int t2337#1 = Mul<int>(n02328,iy2333);
          int index2338#1 = Add<int>(ix2321,t2337);
          addr(IMAGE2D<float>) a2335#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr232B,index2338);
          real4 v1233F#1 = LoadVoxels<IMAGE2D<float>,4>(a2335);
          int iy2341#1 = Add<int>(_t1C1E,t22323);
          int t2345#1 = Mul<int>(n02328,iy2341);
          int index2346#1 = Add<int>(ix2321,t2345);
          addr(IMAGE2D<float>) a2343#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr232B,index2346);
          real4 v2234D#1 = LoadVoxels<IMAGE2D<float>,4>(a2343);
          int iy234F#1 = Add<int>(_t1BF6,t22323);
          int t2353#1 = Mul<int>(n02328,iy234F);
          int index2354#1 = Add<int>(ix2321,t2353);
          addr(IMAGE2D<float>) a2351#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr232B,index2354);
          real4 v3235B#1 = LoadVoxels<IMAGE2D<float>,4>(a2351);
          real fy235D#4 = Index<real2,1>(f2319);
          real t3235F#1 = Add<real>(fy235D,_t1BF2);
          real t12361#1 = Sub<real>(fy235D,_t1BF2);
          real t02363#1 = Sub<real>(fy235D,_t1BF4);
          real4 a2365#3 = <real4>[t3235F,fy235D,t12361,t02363];
          real _f2378#2 = 0.133333333333e1;
          real _f2379#2 = 0.666666666667e0;
          real4 a02368#4 = <real4>[_f2378,_f2379,_f2379,_f2378];
          real _f2374#1 = -0.2e1;
          real _f2375#2 = 0.0;
          real4 a12369#4 = <real4>[_f2374,_f2375,_f2375,_t1BF4];
          real _f2371#2 = -0.1e1;
          real4 a2236A#4 = <real4>[_t1BF2,_f2371,_f2371,_t1BF2];
          real _f236C#1 = -0.166666666667e0;
          real _f236D#1 = 0.5e0;
          real _f236E#1 = -0.5e0;
          real _f236F#1 = 0.166666666667e0;
          real4 a3236B#4 = <real4>[_f236C,_f236D,_f236E,_f236F];
          real4 prod3237C#1 = Mul<real4>(a2365,a3236B);
          real4 sum2237D#1 = Add<real4>(a2236A,prod3237C);
          real4 prod2237E#1 = Mul<real4>(a2365,sum2237D);
          real4 sum1237F#1 = Add<real4>(a12369,prod2237E);
          real4 prod12380#1 = Mul<real4>(a2365,sum1237F);
          real4 hy2367#1 = Add<real4>(a02368,prod12380);
          real fx239B#4 = Index<real2,0>(f2319);
          real t3239D#1 = Add<real>(fx239B,_t1BF2);
          real t1239F#1 = Sub<real>(fx239B,_t1BF2);
          real t023A1#1 = Sub<real>(fx239B,_t1BF4);
          real4 a23A3#3 = <real4>[t3239D,fx239B,t1239F,t023A1];
          real4 prod323BA#1 = Mul<real4>(a23A3,a3236B);
          real4 sum223BB#1 = Add<real4>(a2236A,prod323BA);
          real4 prod223BC#1 = Mul<real4>(a23A3,sum223BB);
          real4 sum123BD#1 = Add<real4>(a12369,prod223BC);
          real4 prod123BE#1 = Mul<real4>(a23A3,sum123BD);
          real4 hx23A5#4 = Add<real4>(a02368,prod123BE);
          real t023D9#1 = Dot<4>(v02331,hx23A5);
          real t123DB#1 = Dot<4>(v1233F,hx23A5);
          real t223DD#1 = Dot<4>(v2234D,hx23A5);
          real t323DF#1 = Dot<4>(v3235B,hx23A5);
          real4 tv23E1#1 = <real4>[t023D9,t123DB,t223DD,t323DF];
          real _t23E3#1 = Dot<4>(hy2367,tv23E1);
          real2 x23E5#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v041B9F);
          real2 nd23E7#2 = Floor<2>(x23E5);
          real2 f23E9#2 = Sub<real2>(x23E5,nd23E7);
          int{2} n23EB#2 = RealToInt<2>(nd23E7);
          int t223ED#1 = Index<int{2},0>(n23EB);
          int ix23EF#4 = Add<int>(t1231D,t223ED);
          int t223F1#4 = Index<int{2},1>(n23EB);
          int iy23F3#1 = Add<int>(t1231D,t223F1);
          int t23F7#1 = Mul<int>(n02328,iy23F3);
          int index23F8#1 = Add<int>(ix23EF,t23F7);
          addr(IMAGE2D<int>) imgBaseAddr23F9#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a23F5#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr23F9,index23F8);
          real4 v023FF#1 = LoadVoxels<IMAGE2D<int>,4>(a23F5);
          int iy2401#1 = Add<int>(_t1C1A,t223F1);
          int t2405#1 = Mul<int>(n02328,iy2401);
          int index2406#1 = Add<int>(ix23EF,t2405);
          addr(IMAGE2D<int>) a2403#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr23F9,index2406);
          real4 v1240D#1 = LoadVoxels<IMAGE2D<int>,4>(a2403);
          int iy240F#1 = Add<int>(_t1C1E,t223F1);
          int t2413#1 = Mul<int>(n02328,iy240F);
          int index2414#1 = Add<int>(ix23EF,t2413);
          addr(IMAGE2D<int>) a2411#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr23F9,index2414);
          real4 v2241B#1 = LoadVoxels<IMAGE2D<int>,4>(a2411);
          int iy241D#1 = Add<int>(_t1BF6,t223F1);
          int t2421#1 = Mul<int>(n02328,iy241D);
          int index2422#1 = Add<int>(ix23EF,t2421);
          addr(IMAGE2D<int>) a241F#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr23F9,index2422);
          real4 v32429#1 = LoadVoxels<IMAGE2D<int>,4>(a241F);
          real fy242B#4 = Index<real2,1>(f23E9);
          real t3242D#1 = Add<real>(fy242B,_t1BF2);
          real t1242F#1 = Sub<real>(fy242B,_t1BF2);
          real t02431#1 = Sub<real>(fy242B,_t1BF4);
          real4 a2433#3 = <real4>[t3242D,fy242B,t1242F,t02431];
          real4 prod3244A#1 = Mul<real4>(a2433,a3236B);
          real4 sum2244B#1 = Add<real4>(a2236A,prod3244A);
          real4 prod2244C#1 = Mul<real4>(a2433,sum2244B);
          real4 sum1244D#1 = Add<real4>(a12369,prod2244C);
          real4 prod1244E#1 = Mul<real4>(a2433,sum1244D);
          real4 hy2435#1 = Add<real4>(a02368,prod1244E);
          real fx2469#4 = Index<real2,0>(f23E9);
          real t3246B#1 = Add<real>(fx2469,_t1BF2);
          real t1246D#1 = Sub<real>(fx2469,_t1BF2);
          real t0246F#1 = Sub<real>(fx2469,_t1BF4);
          real4 a2471#3 = <real4>[t3246B,fx2469,t1246D,t0246F];
          real4 prod32488#1 = Mul<real4>(a2471,a3236B);
          real4 sum22489#1 = Add<real4>(a2236A,prod32488);
          real4 prod2248A#1 = Mul<real4>(a2471,sum22489);
          real4 sum1248B#1 = Add<real4>(a12369,prod2248A);
          real4 prod1248C#1 = Mul<real4>(a2471,sum1248B);
          real4 hx2473#4 = Add<real4>(a02368,prod1248C);
          real t024A7#1 = Dot<4>(v023FF,hx2473);
          real t124A9#1 = Dot<4>(v1240D,hx2473);
          real t224AB#1 = Dot<4>(v2241B,hx2473);
          real t324AD#1 = Dot<4>(v32429,hx2473);
          real4 tv24AF#1 = <real4>[t024A7,t124A9,t224AB,t324AD];
          real _t24B1#1 = Dot<4>(hy2435,tv24AF);
          real _t24B3#2 = Sub<real>(_t23E3,_t24B1);
          real _t24B5#1 = Mul<real>(_t24B3,_t24B3);
          real score24B7#1 = Add<real>(score2300,_t24B5);
          goto JOIN24BA
        JOIN24BA:  preds = [ASSIGN24B8,COND2316]
          real score24B9#2 = phi(score24B7,score2300)
          real _t24BB#1 = Dot<2>(r01C0C,v051BA1);
          real _t24BD#1 = Dot<2>(r11C12,v051BA1);
          real2 _t24BF#1 = <real2>[_t24BB,_t24BD];
          real2 pos24C1#1 = Add<real2>(_t24BF,_t1C22);
          real2 x24C3#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos24C1);
          bool _t24C5#1 = Inside<IMAGE2D<float>,2>(x24C3,_t1B8D);
          if _t24C5 then goto ASSIGN24C9 else goto ASSIGN35F1
        ASSIGN24C9:  preds = [COND24C7]
          real2 x24C8#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v051BA1);
          bool _t24CA#1 = Inside<IMAGE2D<int>,2>(x24C8,_t1B89);
          goto JOIN24CE
        JOIN24CE:  preds = [ASSIGN24CB,ASSIGN35F1]
          bool _t24CC#1 = phi(_t24CA,_t24CD)
          if _t24CC then goto ASSIGN24D1 else goto JOIN2673
        ASSIGN24D1:  preds = [COND24CF]
          real2 nd24D0#2 = Floor<2>(x24C3);
          real2 f24D2#2 = Sub<real2>(x24C3,nd24D0);
          int{2} n24D4#2 = RealToInt<2>(nd24D0);
          int t124D6#4 = -1;
          int t224D8#1 = Index<int{2},0>(n24D4);
          int ix24DA#4 = Add<int>(t124D6,t224D8);
          int t224DC#4 = Index<int{2},1>(n24D4);
          int iy24DE#1 = Add<int>(t124D6,t224DC);
          int n024E1#8 = 21;
          int t24E2#1 = Mul<int>(n024E1,iy24DE);
          int index24E3#1 = Add<int>(ix24DA,t24E2);
          addr(IMAGE2D<float>) imgBaseAddr24E4#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a24E0#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr24E4,index24E3);
          real4 v024EA#1 = LoadVoxels<IMAGE2D<float>,4>(a24E0);
          int iy24EC#1 = Add<int>(_t1C1A,t224DC);
          int t24F0#1 = Mul<int>(n024E1,iy24EC);
          int index24F1#1 = Add<int>(ix24DA,t24F0);
          addr(IMAGE2D<float>) a24EE#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr24E4,index24F1);
          real4 v124F8#1 = LoadVoxels<IMAGE2D<float>,4>(a24EE);
          int iy24FA#1 = Add<int>(_t1C1E,t224DC);
          int t24FE#1 = Mul<int>(n024E1,iy24FA);
          int index24FF#1 = Add<int>(ix24DA,t24FE);
          addr(IMAGE2D<float>) a24FC#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr24E4,index24FF);
          real4 v22506#1 = LoadVoxels<IMAGE2D<float>,4>(a24FC);
          int iy2508#1 = Add<int>(_t1BF6,t224DC);
          int t250C#1 = Mul<int>(n024E1,iy2508);
          int index250D#1 = Add<int>(ix24DA,t250C);
          addr(IMAGE2D<float>) a250A#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr24E4,index250D);
          real4 v32514#1 = LoadVoxels<IMAGE2D<float>,4>(a250A);
          real fy2516#4 = Index<real2,1>(f24D2);
          real t32518#1 = Add<real>(fy2516,_t1BF2);
          real t1251A#1 = Sub<real>(fy2516,_t1BF2);
          real t0251C#1 = Sub<real>(fy2516,_t1BF4);
          real4 a251E#3 = <real4>[t32518,fy2516,t1251A,t0251C];
          real _f2531#2 = 0.133333333333e1;
          real _f2532#2 = 0.666666666667e0;
          real4 a02521#4 = <real4>[_f2531,_f2532,_f2532,_f2531];
          real _f252D#1 = -0.2e1;
          real _f252E#2 = 0.0;
          real4 a12522#4 = <real4>[_f252D,_f252E,_f252E,_t1BF4];
          real _f252A#2 = -0.1e1;
          real4 a22523#4 = <real4>[_t1BF2,_f252A,_f252A,_t1BF2];
          real _f2525#1 = -0.166666666667e0;
          real _f2526#1 = 0.5e0;
          real _f2527#1 = -0.5e0;
          real _f2528#1 = 0.166666666667e0;
          real4 a32524#4 = <real4>[_f2525,_f2526,_f2527,_f2528];
          real4 prod32535#1 = Mul<real4>(a251E,a32524);
          real4 sum22536#1 = Add<real4>(a22523,prod32535);
          real4 prod22537#1 = Mul<real4>(a251E,sum22536);
          real4 sum12538#1 = Add<real4>(a12522,prod22537);
          real4 prod12539#1 = Mul<real4>(a251E,sum12538);
          real4 hy2520#1 = Add<real4>(a02521,prod12539);
          real fx2554#4 = Index<real2,0>(f24D2);
          real t32556#1 = Add<real>(fx2554,_t1BF2);
          real t12558#1 = Sub<real>(fx2554,_t1BF2);
          real t0255A#1 = Sub<real>(fx2554,_t1BF4);
          real4 a255C#3 = <real4>[t32556,fx2554,t12558,t0255A];
          real4 prod32573#1 = Mul<real4>(a255C,a32524);
          real4 sum22574#1 = Add<real4>(a22523,prod32573);
          real4 prod22575#1 = Mul<real4>(a255C,sum22574);
          real4 sum12576#1 = Add<real4>(a12522,prod22575);
          real4 prod12577#1 = Mul<real4>(a255C,sum12576);
          real4 hx255E#4 = Add<real4>(a02521,prod12577);
          real t02592#1 = Dot<4>(v024EA,hx255E);
          real t12594#1 = Dot<4>(v124F8,hx255E);
          real t22596#1 = Dot<4>(v22506,hx255E);
          real t32598#1 = Dot<4>(v32514,hx255E);
          real4 tv259A#1 = <real4>[t02592,t12594,t22596,t32598];
          real _t259C#1 = Dot<4>(hy2520,tv259A);
          real2 x259E#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v051BA1);
          real2 nd25A0#2 = Floor<2>(x259E);
          real2 f25A2#2 = Sub<real2>(x259E,nd25A0);
          int{2} n25A4#2 = RealToInt<2>(nd25A0);
          int t225A6#1 = Index<int{2},0>(n25A4);
          int ix25A8#4 = Add<int>(t124D6,t225A6);
          int t225AA#4 = Index<int{2},1>(n25A4);
          int iy25AC#1 = Add<int>(t124D6,t225AA);
          int t25B0#1 = Mul<int>(n024E1,iy25AC);
          int index25B1#1 = Add<int>(ix25A8,t25B0);
          addr(IMAGE2D<int>) imgBaseAddr25B2#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a25AE#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr25B2,index25B1);
          real4 v025B8#1 = LoadVoxels<IMAGE2D<int>,4>(a25AE);
          int iy25BA#1 = Add<int>(_t1C1A,t225AA);
          int t25BE#1 = Mul<int>(n024E1,iy25BA);
          int index25BF#1 = Add<int>(ix25A8,t25BE);
          addr(IMAGE2D<int>) a25BC#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr25B2,index25BF);
          real4 v125C6#1 = LoadVoxels<IMAGE2D<int>,4>(a25BC);
          int iy25C8#1 = Add<int>(_t1C1E,t225AA);
          int t25CC#1 = Mul<int>(n024E1,iy25C8);
          int index25CD#1 = Add<int>(ix25A8,t25CC);
          addr(IMAGE2D<int>) a25CA#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr25B2,index25CD);
          real4 v225D4#1 = LoadVoxels<IMAGE2D<int>,4>(a25CA);
          int iy25D6#1 = Add<int>(_t1BF6,t225AA);
          int t25DA#1 = Mul<int>(n024E1,iy25D6);
          int index25DB#1 = Add<int>(ix25A8,t25DA);
          addr(IMAGE2D<int>) a25D8#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr25B2,index25DB);
          real4 v325E2#1 = LoadVoxels<IMAGE2D<int>,4>(a25D8);
          real fy25E4#4 = Index<real2,1>(f25A2);
          real t325E6#1 = Add<real>(fy25E4,_t1BF2);
          real t125E8#1 = Sub<real>(fy25E4,_t1BF2);
          real t025EA#1 = Sub<real>(fy25E4,_t1BF4);
          real4 a25EC#3 = <real4>[t325E6,fy25E4,t125E8,t025EA];
          real4 prod32603#1 = Mul<real4>(a25EC,a32524);
          real4 sum22604#1 = Add<real4>(a22523,prod32603);
          real4 prod22605#1 = Mul<real4>(a25EC,sum22604);
          real4 sum12606#1 = Add<real4>(a12522,prod22605);
          real4 prod12607#1 = Mul<real4>(a25EC,sum12606);
          real4 hy25EE#1 = Add<real4>(a02521,prod12607);
          real fx2622#4 = Index<real2,0>(f25A2);
          real t32624#1 = Add<real>(fx2622,_t1BF2);
          real t12626#1 = Sub<real>(fx2622,_t1BF2);
          real t02628#1 = Sub<real>(fx2622,_t1BF4);
          real4 a262A#3 = <real4>[t32624,fx2622,t12626,t02628];
          real4 prod32641#1 = Mul<real4>(a262A,a32524);
          real4 sum22642#1 = Add<real4>(a22523,prod32641);
          real4 prod22643#1 = Mul<real4>(a262A,sum22642);
          real4 sum12644#1 = Add<real4>(a12522,prod22643);
          real4 prod12645#1 = Mul<real4>(a262A,sum12644);
          real4 hx262C#4 = Add<real4>(a02521,prod12645);
          real t02660#1 = Dot<4>(v025B8,hx262C);
          real t12662#1 = Dot<4>(v125C6,hx262C);
          real t22664#1 = Dot<4>(v225D4,hx262C);
          real t32666#1 = Dot<4>(v325E2,hx262C);
          real4 tv2668#1 = <real4>[t02660,t12662,t22664,t32666];
          real _t266A#1 = Dot<4>(hy25EE,tv2668);
          real _t266C#2 = Sub<real>(_t259C,_t266A);
          real _t266E#1 = Mul<real>(_t266C,_t266C);
          real score2670#1 = Add<real>(score24B9,_t266E);
          goto JOIN2673
        JOIN2673:  preds = [ASSIGN2671,COND24CF]
          real score2672#2 = phi(score2670,score24B9)
          real _t2674#1 = Dot<2>(r01C0C,v061BA3);
          real _t2676#1 = Dot<2>(r11C12,v061BA3);
          real2 _t2678#1 = <real2>[_t2674,_t2676];
          real2 pos267A#1 = Add<real2>(_t2678,_t1C22);
          real2 x267C#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos267A);
          bool _t267E#1 = Inside<IMAGE2D<float>,2>(x267C,_t1B8D);
          if _t267E then goto ASSIGN2682 else goto ASSIGN35F0
        ASSIGN2682:  preds = [COND2680]
          real2 x2681#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v061BA3);
          bool _t2683#1 = Inside<IMAGE2D<int>,2>(x2681,_t1B89);
          goto JOIN2687
        JOIN2687:  preds = [ASSIGN2684,ASSIGN35F0]
          bool _t2685#1 = phi(_t2683,_t2686)
          if _t2685 then goto ASSIGN268A else goto JOIN282C
        ASSIGN268A:  preds = [COND2688]
          real2 nd2689#2 = Floor<2>(x267C);
          real2 f268B#2 = Sub<real2>(x267C,nd2689);
          int{2} n268D#2 = RealToInt<2>(nd2689);
          int t1268F#4 = -1;
          int t22691#1 = Index<int{2},0>(n268D);
          int ix2693#4 = Add<int>(t1268F,t22691);
          int t22695#4 = Index<int{2},1>(n268D);
          int iy2697#1 = Add<int>(t1268F,t22695);
          int n0269A#8 = 21;
          int t269B#1 = Mul<int>(n0269A,iy2697);
          int index269C#1 = Add<int>(ix2693,t269B);
          addr(IMAGE2D<float>) imgBaseAddr269D#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a2699#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr269D,index269C);
          real4 v026A3#1 = LoadVoxels<IMAGE2D<float>,4>(a2699);
          int iy26A5#1 = Add<int>(_t1C1A,t22695);
          int t26A9#1 = Mul<int>(n0269A,iy26A5);
          int index26AA#1 = Add<int>(ix2693,t26A9);
          addr(IMAGE2D<float>) a26A7#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr269D,index26AA);
          real4 v126B1#1 = LoadVoxels<IMAGE2D<float>,4>(a26A7);
          int iy26B3#1 = Add<int>(_t1C1E,t22695);
          int t26B7#1 = Mul<int>(n0269A,iy26B3);
          int index26B8#1 = Add<int>(ix2693,t26B7);
          addr(IMAGE2D<float>) a26B5#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr269D,index26B8);
          real4 v226BF#1 = LoadVoxels<IMAGE2D<float>,4>(a26B5);
          int iy26C1#1 = Add<int>(_t1BF6,t22695);
          int t26C5#1 = Mul<int>(n0269A,iy26C1);
          int index26C6#1 = Add<int>(ix2693,t26C5);
          addr(IMAGE2D<float>) a26C3#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr269D,index26C6);
          real4 v326CD#1 = LoadVoxels<IMAGE2D<float>,4>(a26C3);
          real fy26CF#4 = Index<real2,1>(f268B);
          real t326D1#1 = Add<real>(fy26CF,_t1BF2);
          real t126D3#1 = Sub<real>(fy26CF,_t1BF2);
          real t026D5#1 = Sub<real>(fy26CF,_t1BF4);
          real4 a26D7#3 = <real4>[t326D1,fy26CF,t126D3,t026D5];
          real _f26EA#2 = 0.133333333333e1;
          real _f26EB#2 = 0.666666666667e0;
          real4 a026DA#4 = <real4>[_f26EA,_f26EB,_f26EB,_f26EA];
          real _f26E6#1 = -0.2e1;
          real _f26E7#2 = 0.0;
          real4 a126DB#4 = <real4>[_f26E6,_f26E7,_f26E7,_t1BF4];
          real _f26E3#2 = -0.1e1;
          real4 a226DC#4 = <real4>[_t1BF2,_f26E3,_f26E3,_t1BF2];
          real _f26DE#1 = -0.166666666667e0;
          real _f26DF#1 = 0.5e0;
          real _f26E0#1 = -0.5e0;
          real _f26E1#1 = 0.166666666667e0;
          real4 a326DD#4 = <real4>[_f26DE,_f26DF,_f26E0,_f26E1];
          real4 prod326EE#1 = Mul<real4>(a26D7,a326DD);
          real4 sum226EF#1 = Add<real4>(a226DC,prod326EE);
          real4 prod226F0#1 = Mul<real4>(a26D7,sum226EF);
          real4 sum126F1#1 = Add<real4>(a126DB,prod226F0);
          real4 prod126F2#1 = Mul<real4>(a26D7,sum126F1);
          real4 hy26D9#1 = Add<real4>(a026DA,prod126F2);
          real fx270D#4 = Index<real2,0>(f268B);
          real t3270F#1 = Add<real>(fx270D,_t1BF2);
          real t12711#1 = Sub<real>(fx270D,_t1BF2);
          real t02713#1 = Sub<real>(fx270D,_t1BF4);
          real4 a2715#3 = <real4>[t3270F,fx270D,t12711,t02713];
          real4 prod3272C#1 = Mul<real4>(a2715,a326DD);
          real4 sum2272D#1 = Add<real4>(a226DC,prod3272C);
          real4 prod2272E#1 = Mul<real4>(a2715,sum2272D);
          real4 sum1272F#1 = Add<real4>(a126DB,prod2272E);
          real4 prod12730#1 = Mul<real4>(a2715,sum1272F);
          real4 hx2717#4 = Add<real4>(a026DA,prod12730);
          real t0274B#1 = Dot<4>(v026A3,hx2717);
          real t1274D#1 = Dot<4>(v126B1,hx2717);
          real t2274F#1 = Dot<4>(v226BF,hx2717);
          real t32751#1 = Dot<4>(v326CD,hx2717);
          real4 tv2753#1 = <real4>[t0274B,t1274D,t2274F,t32751];
          real _t2755#1 = Dot<4>(hy26D9,tv2753);
          real2 x2757#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v061BA3);
          real2 nd2759#2 = Floor<2>(x2757);
          real2 f275B#2 = Sub<real2>(x2757,nd2759);
          int{2} n275D#2 = RealToInt<2>(nd2759);
          int t2275F#1 = Index<int{2},0>(n275D);
          int ix2761#4 = Add<int>(t1268F,t2275F);
          int t22763#4 = Index<int{2},1>(n275D);
          int iy2765#1 = Add<int>(t1268F,t22763);
          int t2769#1 = Mul<int>(n0269A,iy2765);
          int index276A#1 = Add<int>(ix2761,t2769);
          addr(IMAGE2D<int>) imgBaseAddr276B#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a2767#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr276B,index276A);
          real4 v02771#1 = LoadVoxels<IMAGE2D<int>,4>(a2767);
          int iy2773#1 = Add<int>(_t1C1A,t22763);
          int t2777#1 = Mul<int>(n0269A,iy2773);
          int index2778#1 = Add<int>(ix2761,t2777);
          addr(IMAGE2D<int>) a2775#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr276B,index2778);
          real4 v1277F#1 = LoadVoxels<IMAGE2D<int>,4>(a2775);
          int iy2781#1 = Add<int>(_t1C1E,t22763);
          int t2785#1 = Mul<int>(n0269A,iy2781);
          int index2786#1 = Add<int>(ix2761,t2785);
          addr(IMAGE2D<int>) a2783#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr276B,index2786);
          real4 v2278D#1 = LoadVoxels<IMAGE2D<int>,4>(a2783);
          int iy278F#1 = Add<int>(_t1BF6,t22763);
          int t2793#1 = Mul<int>(n0269A,iy278F);
          int index2794#1 = Add<int>(ix2761,t2793);
          addr(IMAGE2D<int>) a2791#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr276B,index2794);
          real4 v3279B#1 = LoadVoxels<IMAGE2D<int>,4>(a2791);
          real fy279D#4 = Index<real2,1>(f275B);
          real t3279F#1 = Add<real>(fy279D,_t1BF2);
          real t127A1#1 = Sub<real>(fy279D,_t1BF2);
          real t027A3#1 = Sub<real>(fy279D,_t1BF4);
          real4 a27A5#3 = <real4>[t3279F,fy279D,t127A1,t027A3];
          real4 prod327BC#1 = Mul<real4>(a27A5,a326DD);
          real4 sum227BD#1 = Add<real4>(a226DC,prod327BC);
          real4 prod227BE#1 = Mul<real4>(a27A5,sum227BD);
          real4 sum127BF#1 = Add<real4>(a126DB,prod227BE);
          real4 prod127C0#1 = Mul<real4>(a27A5,sum127BF);
          real4 hy27A7#1 = Add<real4>(a026DA,prod127C0);
          real fx27DB#4 = Index<real2,0>(f275B);
          real t327DD#1 = Add<real>(fx27DB,_t1BF2);
          real t127DF#1 = Sub<real>(fx27DB,_t1BF2);
          real t027E1#1 = Sub<real>(fx27DB,_t1BF4);
          real4 a27E3#3 = <real4>[t327DD,fx27DB,t127DF,t027E1];
          real4 prod327FA#1 = Mul<real4>(a27E3,a326DD);
          real4 sum227FB#1 = Add<real4>(a226DC,prod327FA);
          real4 prod227FC#1 = Mul<real4>(a27E3,sum227FB);
          real4 sum127FD#1 = Add<real4>(a126DB,prod227FC);
          real4 prod127FE#1 = Mul<real4>(a27E3,sum127FD);
          real4 hx27E5#4 = Add<real4>(a026DA,prod127FE);
          real t02819#1 = Dot<4>(v02771,hx27E5);
          real t1281B#1 = Dot<4>(v1277F,hx27E5);
          real t2281D#1 = Dot<4>(v2278D,hx27E5);
          real t3281F#1 = Dot<4>(v3279B,hx27E5);
          real4 tv2821#1 = <real4>[t02819,t1281B,t2281D,t3281F];
          real _t2823#1 = Dot<4>(hy27A7,tv2821);
          real _t2825#2 = Sub<real>(_t2755,_t2823);
          real _t2827#1 = Mul<real>(_t2825,_t2825);
          real score2829#1 = Add<real>(score2672,_t2827);
          goto JOIN282C
        JOIN282C:  preds = [ASSIGN282A,COND2688]
          real score282B#2 = phi(score2829,score2672)
          if _t230C then goto JOIN282E else goto JOIN282E
        JOIN282E:  preds = [COND282D]
          if _t2313 then goto ASSIGN2831 else goto JOIN29D3
        ASSIGN2831:  preds = [COND282F]
          real2 nd2830#2 = Floor<2>(x230A);
          real2 f2832#2 = Sub<real2>(x230A,nd2830);
          int{2} n2834#2 = RealToInt<2>(nd2830);
          int t12836#4 = -1;
          int t22838#1 = Index<int{2},0>(n2834);
          int ix283A#4 = Add<int>(t12836,t22838);
          int t2283C#4 = Index<int{2},1>(n2834);
          int iy283E#1 = Add<int>(t12836,t2283C);
          int n02841#8 = 21;
          int t2842#1 = Mul<int>(n02841,iy283E);
          int index2843#1 = Add<int>(ix283A,t2842);
          addr(IMAGE2D<float>) imgBaseAddr2844#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a2840#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2844,index2843);
          real4 v0284A#1 = LoadVoxels<IMAGE2D<float>,4>(a2840);
          int iy284C#1 = Add<int>(_t1C1A,t2283C);
          int t2850#1 = Mul<int>(n02841,iy284C);
          int index2851#1 = Add<int>(ix283A,t2850);
          addr(IMAGE2D<float>) a284E#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2844,index2851);
          real4 v12858#1 = LoadVoxels<IMAGE2D<float>,4>(a284E);
          int iy285A#1 = Add<int>(_t1C1E,t2283C);
          int t285E#1 = Mul<int>(n02841,iy285A);
          int index285F#1 = Add<int>(ix283A,t285E);
          addr(IMAGE2D<float>) a285C#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2844,index285F);
          real4 v22866#1 = LoadVoxels<IMAGE2D<float>,4>(a285C);
          int iy2868#1 = Add<int>(_t1BF6,t2283C);
          int t286C#1 = Mul<int>(n02841,iy2868);
          int index286D#1 = Add<int>(ix283A,t286C);
          addr(IMAGE2D<float>) a286A#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2844,index286D);
          real4 v32874#1 = LoadVoxels<IMAGE2D<float>,4>(a286A);
          real fy2876#4 = Index<real2,1>(f2832);
          real t32878#1 = Add<real>(fy2876,_t1BF2);
          real t1287A#1 = Sub<real>(fy2876,_t1BF2);
          real t0287C#1 = Sub<real>(fy2876,_t1BF4);
          real4 a287E#3 = <real4>[t32878,fy2876,t1287A,t0287C];
          real _f2891#2 = 0.133333333333e1;
          real _f2892#2 = 0.666666666667e0;
          real4 a02881#4 = <real4>[_f2891,_f2892,_f2892,_f2891];
          real _f288D#1 = -0.2e1;
          real _f288E#2 = 0.0;
          real4 a12882#4 = <real4>[_f288D,_f288E,_f288E,_t1BF4];
          real _f288A#2 = -0.1e1;
          real4 a22883#4 = <real4>[_t1BF2,_f288A,_f288A,_t1BF2];
          real _f2885#1 = -0.166666666667e0;
          real _f2886#1 = 0.5e0;
          real _f2887#1 = -0.5e0;
          real _f2888#1 = 0.166666666667e0;
          real4 a32884#4 = <real4>[_f2885,_f2886,_f2887,_f2888];
          real4 prod32895#1 = Mul<real4>(a287E,a32884);
          real4 sum22896#1 = Add<real4>(a22883,prod32895);
          real4 prod22897#1 = Mul<real4>(a287E,sum22896);
          real4 sum12898#1 = Add<real4>(a12882,prod22897);
          real4 prod12899#1 = Mul<real4>(a287E,sum12898);
          real4 hy2880#1 = Add<real4>(a02881,prod12899);
          real fx28B4#4 = Index<real2,0>(f2832);
          real t328B6#1 = Add<real>(fx28B4,_t1BF2);
          real t128B8#1 = Sub<real>(fx28B4,_t1BF2);
          real t028BA#1 = Sub<real>(fx28B4,_t1BF4);
          real4 a28BC#3 = <real4>[t328B6,fx28B4,t128B8,t028BA];
          real4 prod328D3#1 = Mul<real4>(a28BC,a32884);
          real4 sum228D4#1 = Add<real4>(a22883,prod328D3);
          real4 prod228D5#1 = Mul<real4>(a28BC,sum228D4);
          real4 sum128D6#1 = Add<real4>(a12882,prod228D5);
          real4 prod128D7#1 = Mul<real4>(a28BC,sum128D6);
          real4 hx28BE#4 = Add<real4>(a02881,prod128D7);
          real t028F2#1 = Dot<4>(v0284A,hx28BE);
          real t128F4#1 = Dot<4>(v12858,hx28BE);
          real t228F6#1 = Dot<4>(v22866,hx28BE);
          real t328F8#1 = Dot<4>(v32874,hx28BE);
          real4 tv28FA#1 = <real4>[t028F2,t128F4,t228F6,t328F8];
          real _t28FC#1 = Dot<4>(hy2880,tv28FA);
          real2 x28FE#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v041B9F);
          real2 nd2900#2 = Floor<2>(x28FE);
          real2 f2902#2 = Sub<real2>(x28FE,nd2900);
          int{2} n2904#2 = RealToInt<2>(nd2900);
          int t22906#1 = Index<int{2},0>(n2904);
          int ix2908#4 = Add<int>(t12836,t22906);
          int t2290A#4 = Index<int{2},1>(n2904);
          int iy290C#1 = Add<int>(t12836,t2290A);
          int t2910#1 = Mul<int>(n02841,iy290C);
          int index2911#1 = Add<int>(ix2908,t2910);
          addr(IMAGE2D<int>) imgBaseAddr2912#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a290E#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2912,index2911);
          real4 v02918#1 = LoadVoxels<IMAGE2D<int>,4>(a290E);
          int iy291A#1 = Add<int>(_t1C1A,t2290A);
          int t291E#1 = Mul<int>(n02841,iy291A);
          int index291F#1 = Add<int>(ix2908,t291E);
          addr(IMAGE2D<int>) a291C#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2912,index291F);
          real4 v12926#1 = LoadVoxels<IMAGE2D<int>,4>(a291C);
          int iy2928#1 = Add<int>(_t1C1E,t2290A);
          int t292C#1 = Mul<int>(n02841,iy2928);
          int index292D#1 = Add<int>(ix2908,t292C);
          addr(IMAGE2D<int>) a292A#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2912,index292D);
          real4 v22934#1 = LoadVoxels<IMAGE2D<int>,4>(a292A);
          int iy2936#1 = Add<int>(_t1BF6,t2290A);
          int t293A#1 = Mul<int>(n02841,iy2936);
          int index293B#1 = Add<int>(ix2908,t293A);
          addr(IMAGE2D<int>) a2938#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2912,index293B);
          real4 v32942#1 = LoadVoxels<IMAGE2D<int>,4>(a2938);
          real fy2944#4 = Index<real2,1>(f2902);
          real t32946#1 = Add<real>(fy2944,_t1BF2);
          real t12948#1 = Sub<real>(fy2944,_t1BF2);
          real t0294A#1 = Sub<real>(fy2944,_t1BF4);
          real4 a294C#3 = <real4>[t32946,fy2944,t12948,t0294A];
          real4 prod32963#1 = Mul<real4>(a294C,a32884);
          real4 sum22964#1 = Add<real4>(a22883,prod32963);
          real4 prod22965#1 = Mul<real4>(a294C,sum22964);
          real4 sum12966#1 = Add<real4>(a12882,prod22965);
          real4 prod12967#1 = Mul<real4>(a294C,sum12966);
          real4 hy294E#1 = Add<real4>(a02881,prod12967);
          real fx2982#4 = Index<real2,0>(f2902);
          real t32984#1 = Add<real>(fx2982,_t1BF2);
          real t12986#1 = Sub<real>(fx2982,_t1BF2);
          real t02988#1 = Sub<real>(fx2982,_t1BF4);
          real4 a298A#3 = <real4>[t32984,fx2982,t12986,t02988];
          real4 prod329A1#1 = Mul<real4>(a298A,a32884);
          real4 sum229A2#1 = Add<real4>(a22883,prod329A1);
          real4 prod229A3#1 = Mul<real4>(a298A,sum229A2);
          real4 sum129A4#1 = Add<real4>(a12882,prod229A3);
          real4 prod129A5#1 = Mul<real4>(a298A,sum129A4);
          real4 hx298C#4 = Add<real4>(a02881,prod129A5);
          real t029C0#1 = Dot<4>(v02918,hx298C);
          real t129C2#1 = Dot<4>(v12926,hx298C);
          real t229C4#1 = Dot<4>(v22934,hx298C);
          real t329C6#1 = Dot<4>(v32942,hx298C);
          real4 tv29C8#1 = <real4>[t029C0,t129C2,t229C4,t329C6];
          real _t29CA#1 = Dot<4>(hy294E,tv29C8);
          real _t29CC#2 = Sub<real>(_t28FC,_t29CA);
          real _t29CE#1 = Mul<real>(_t29CC,_t29CC);
          real score29D0#1 = Add<real>(score282B,_t29CE);
          goto JOIN29D3
        JOIN29D3:  preds = [ASSIGN29D1,COND282F]
          real score29D2#2 = phi(score29D0,score282B)
          real _t29D4#1 = Dot<2>(r01C0C,v081BA5);
          real _t29D6#1 = Dot<2>(r11C12,v081BA5);
          real2 _t29D8#1 = <real2>[_t29D4,_t29D6];
          real2 pos29DA#1 = Add<real2>(_t29D8,_t1C22);
          real2 x29DC#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos29DA);
          bool _t29DE#1 = Inside<IMAGE2D<float>,2>(x29DC,_t1B8D);
          if _t29DE then goto ASSIGN29E2 else goto ASSIGN35EF
        ASSIGN29E2:  preds = [COND29E0]
          real2 x29E1#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v081BA5);
          bool _t29E3#1 = Inside<IMAGE2D<int>,2>(x29E1,_t1B89);
          goto JOIN29E7
        JOIN29E7:  preds = [ASSIGN29E4,ASSIGN35EF]
          bool _t29E5#1 = phi(_t29E3,_t29E6)
          if _t29E5 then goto ASSIGN29EA else goto JOIN2B8C
        ASSIGN29EA:  preds = [COND29E8]
          real2 nd29E9#2 = Floor<2>(x29DC);
          real2 f29EB#2 = Sub<real2>(x29DC,nd29E9);
          int{2} n29ED#2 = RealToInt<2>(nd29E9);
          int t129EF#4 = -1;
          int t229F1#1 = Index<int{2},0>(n29ED);
          int ix29F3#4 = Add<int>(t129EF,t229F1);
          int t229F5#4 = Index<int{2},1>(n29ED);
          int iy29F7#1 = Add<int>(t129EF,t229F5);
          int n029FA#8 = 21;
          int t29FB#1 = Mul<int>(n029FA,iy29F7);
          int index29FC#1 = Add<int>(ix29F3,t29FB);
          addr(IMAGE2D<float>) imgBaseAddr29FD#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a29F9#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr29FD,index29FC);
          real4 v02A03#1 = LoadVoxels<IMAGE2D<float>,4>(a29F9);
          int iy2A05#1 = Add<int>(_t1C1A,t229F5);
          int t2A09#1 = Mul<int>(n029FA,iy2A05);
          int index2A0A#1 = Add<int>(ix29F3,t2A09);
          addr(IMAGE2D<float>) a2A07#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr29FD,index2A0A);
          real4 v12A11#1 = LoadVoxels<IMAGE2D<float>,4>(a2A07);
          int iy2A13#1 = Add<int>(_t1C1E,t229F5);
          int t2A17#1 = Mul<int>(n029FA,iy2A13);
          int index2A18#1 = Add<int>(ix29F3,t2A17);
          addr(IMAGE2D<float>) a2A15#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr29FD,index2A18);
          real4 v22A1F#1 = LoadVoxels<IMAGE2D<float>,4>(a2A15);
          int iy2A21#1 = Add<int>(_t1BF6,t229F5);
          int t2A25#1 = Mul<int>(n029FA,iy2A21);
          int index2A26#1 = Add<int>(ix29F3,t2A25);
          addr(IMAGE2D<float>) a2A23#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr29FD,index2A26);
          real4 v32A2D#1 = LoadVoxels<IMAGE2D<float>,4>(a2A23);
          real fy2A2F#4 = Index<real2,1>(f29EB);
          real t32A31#1 = Add<real>(fy2A2F,_t1BF2);
          real t12A33#1 = Sub<real>(fy2A2F,_t1BF2);
          real t02A35#1 = Sub<real>(fy2A2F,_t1BF4);
          real4 a2A37#3 = <real4>[t32A31,fy2A2F,t12A33,t02A35];
          real _f2A4A#2 = 0.133333333333e1;
          real _f2A4B#2 = 0.666666666667e0;
          real4 a02A3A#4 = <real4>[_f2A4A,_f2A4B,_f2A4B,_f2A4A];
          real _f2A46#1 = -0.2e1;
          real _f2A47#2 = 0.0;
          real4 a12A3B#4 = <real4>[_f2A46,_f2A47,_f2A47,_t1BF4];
          real _f2A43#2 = -0.1e1;
          real4 a22A3C#4 = <real4>[_t1BF2,_f2A43,_f2A43,_t1BF2];
          real _f2A3E#1 = -0.166666666667e0;
          real _f2A3F#1 = 0.5e0;
          real _f2A40#1 = -0.5e0;
          real _f2A41#1 = 0.166666666667e0;
          real4 a32A3D#4 = <real4>[_f2A3E,_f2A3F,_f2A40,_f2A41];
          real4 prod32A4E#1 = Mul<real4>(a2A37,a32A3D);
          real4 sum22A4F#1 = Add<real4>(a22A3C,prod32A4E);
          real4 prod22A50#1 = Mul<real4>(a2A37,sum22A4F);
          real4 sum12A51#1 = Add<real4>(a12A3B,prod22A50);
          real4 prod12A52#1 = Mul<real4>(a2A37,sum12A51);
          real4 hy2A39#1 = Add<real4>(a02A3A,prod12A52);
          real fx2A6D#4 = Index<real2,0>(f29EB);
          real t32A6F#1 = Add<real>(fx2A6D,_t1BF2);
          real t12A71#1 = Sub<real>(fx2A6D,_t1BF2);
          real t02A73#1 = Sub<real>(fx2A6D,_t1BF4);
          real4 a2A75#3 = <real4>[t32A6F,fx2A6D,t12A71,t02A73];
          real4 prod32A8C#1 = Mul<real4>(a2A75,a32A3D);
          real4 sum22A8D#1 = Add<real4>(a22A3C,prod32A8C);
          real4 prod22A8E#1 = Mul<real4>(a2A75,sum22A8D);
          real4 sum12A8F#1 = Add<real4>(a12A3B,prod22A8E);
          real4 prod12A90#1 = Mul<real4>(a2A75,sum12A8F);
          real4 hx2A77#4 = Add<real4>(a02A3A,prod12A90);
          real t02AAB#1 = Dot<4>(v02A03,hx2A77);
          real t12AAD#1 = Dot<4>(v12A11,hx2A77);
          real t22AAF#1 = Dot<4>(v22A1F,hx2A77);
          real t32AB1#1 = Dot<4>(v32A2D,hx2A77);
          real4 tv2AB3#1 = <real4>[t02AAB,t12AAD,t22AAF,t32AB1];
          real _t2AB5#1 = Dot<4>(hy2A39,tv2AB3);
          real2 x2AB7#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v081BA5);
          real2 nd2AB9#2 = Floor<2>(x2AB7);
          real2 f2ABB#2 = Sub<real2>(x2AB7,nd2AB9);
          int{2} n2ABD#2 = RealToInt<2>(nd2AB9);
          int t22ABF#1 = Index<int{2},0>(n2ABD);
          int ix2AC1#4 = Add<int>(t129EF,t22ABF);
          int t22AC3#4 = Index<int{2},1>(n2ABD);
          int iy2AC5#1 = Add<int>(t129EF,t22AC3);
          int t2AC9#1 = Mul<int>(n029FA,iy2AC5);
          int index2ACA#1 = Add<int>(ix2AC1,t2AC9);
          addr(IMAGE2D<int>) imgBaseAddr2ACB#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a2AC7#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2ACB,index2ACA);
          real4 v02AD1#1 = LoadVoxels<IMAGE2D<int>,4>(a2AC7);
          int iy2AD3#1 = Add<int>(_t1C1A,t22AC3);
          int t2AD7#1 = Mul<int>(n029FA,iy2AD3);
          int index2AD8#1 = Add<int>(ix2AC1,t2AD7);
          addr(IMAGE2D<int>) a2AD5#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2ACB,index2AD8);
          real4 v12ADF#1 = LoadVoxels<IMAGE2D<int>,4>(a2AD5);
          int iy2AE1#1 = Add<int>(_t1C1E,t22AC3);
          int t2AE5#1 = Mul<int>(n029FA,iy2AE1);
          int index2AE6#1 = Add<int>(ix2AC1,t2AE5);
          addr(IMAGE2D<int>) a2AE3#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2ACB,index2AE6);
          real4 v22AED#1 = LoadVoxels<IMAGE2D<int>,4>(a2AE3);
          int iy2AEF#1 = Add<int>(_t1BF6,t22AC3);
          int t2AF3#1 = Mul<int>(n029FA,iy2AEF);
          int index2AF4#1 = Add<int>(ix2AC1,t2AF3);
          addr(IMAGE2D<int>) a2AF1#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2ACB,index2AF4);
          real4 v32AFB#1 = LoadVoxels<IMAGE2D<int>,4>(a2AF1);
          real fy2AFD#4 = Index<real2,1>(f2ABB);
          real t32AFF#1 = Add<real>(fy2AFD,_t1BF2);
          real t12B01#1 = Sub<real>(fy2AFD,_t1BF2);
          real t02B03#1 = Sub<real>(fy2AFD,_t1BF4);
          real4 a2B05#3 = <real4>[t32AFF,fy2AFD,t12B01,t02B03];
          real4 prod32B1C#1 = Mul<real4>(a2B05,a32A3D);
          real4 sum22B1D#1 = Add<real4>(a22A3C,prod32B1C);
          real4 prod22B1E#1 = Mul<real4>(a2B05,sum22B1D);
          real4 sum12B1F#1 = Add<real4>(a12A3B,prod22B1E);
          real4 prod12B20#1 = Mul<real4>(a2B05,sum12B1F);
          real4 hy2B07#1 = Add<real4>(a02A3A,prod12B20);
          real fx2B3B#4 = Index<real2,0>(f2ABB);
          real t32B3D#1 = Add<real>(fx2B3B,_t1BF2);
          real t12B3F#1 = Sub<real>(fx2B3B,_t1BF2);
          real t02B41#1 = Sub<real>(fx2B3B,_t1BF4);
          real4 a2B43#3 = <real4>[t32B3D,fx2B3B,t12B3F,t02B41];
          real4 prod32B5A#1 = Mul<real4>(a2B43,a32A3D);
          real4 sum22B5B#1 = Add<real4>(a22A3C,prod32B5A);
          real4 prod22B5C#1 = Mul<real4>(a2B43,sum22B5B);
          real4 sum12B5D#1 = Add<real4>(a12A3B,prod22B5C);
          real4 prod12B5E#1 = Mul<real4>(a2B43,sum12B5D);
          real4 hx2B45#4 = Add<real4>(a02A3A,prod12B5E);
          real t02B79#1 = Dot<4>(v02AD1,hx2B45);
          real t12B7B#1 = Dot<4>(v12ADF,hx2B45);
          real t22B7D#1 = Dot<4>(v22AED,hx2B45);
          real t32B7F#1 = Dot<4>(v32AFB,hx2B45);
          real4 tv2B81#1 = <real4>[t02B79,t12B7B,t22B7D,t32B7F];
          real _t2B83#1 = Dot<4>(hy2B07,tv2B81);
          real _t2B85#2 = Sub<real>(_t2AB5,_t2B83);
          real _t2B87#1 = Mul<real>(_t2B85,_t2B85);
          real score2B89#1 = Add<real>(score29D2,_t2B87);
          goto JOIN2B8C
        JOIN2B8C:  preds = [ASSIGN2B8A,COND29E8]
          real score2B8B#2 = phi(score2B89,score29D2)
          real _t2B8D#1 = Dot<2>(r01C0C,v091BA7);
          real _t2B8F#1 = Dot<2>(r11C12,v091BA7);
          real2 _t2B91#1 = <real2>[_t2B8D,_t2B8F];
          real2 pos2B93#1 = Add<real2>(_t2B91,_t1C22);
          real2 x2B95#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos2B93);
          bool _t2B97#1 = Inside<IMAGE2D<float>,2>(x2B95,_t1B8D);
          if _t2B97 then goto ASSIGN2B9B else goto ASSIGN35EE
        ASSIGN2B9B:  preds = [COND2B99]
          real2 x2B9A#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v091BA7);
          bool _t2B9C#1 = Inside<IMAGE2D<int>,2>(x2B9A,_t1B89);
          goto JOIN2BA0
        JOIN2BA0:  preds = [ASSIGN2B9D,ASSIGN35EE]
          bool _t2B9E#1 = phi(_t2B9C,_t2B9F)
          if _t2B9E then goto ASSIGN2BA3 else goto JOIN2D45
        ASSIGN2BA3:  preds = [COND2BA1]
          real2 nd2BA2#2 = Floor<2>(x2B95);
          real2 f2BA4#2 = Sub<real2>(x2B95,nd2BA2);
          int{2} n2BA6#2 = RealToInt<2>(nd2BA2);
          int t12BA8#4 = -1;
          int t22BAA#1 = Index<int{2},0>(n2BA6);
          int ix2BAC#4 = Add<int>(t12BA8,t22BAA);
          int t22BAE#4 = Index<int{2},1>(n2BA6);
          int iy2BB0#1 = Add<int>(t12BA8,t22BAE);
          int n02BB3#8 = 21;
          int t2BB4#1 = Mul<int>(n02BB3,iy2BB0);
          int index2BB5#1 = Add<int>(ix2BAC,t2BB4);
          addr(IMAGE2D<float>) imgBaseAddr2BB6#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a2BB2#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2BB6,index2BB5);
          real4 v02BBC#1 = LoadVoxels<IMAGE2D<float>,4>(a2BB2);
          int iy2BBE#1 = Add<int>(_t1C1A,t22BAE);
          int t2BC2#1 = Mul<int>(n02BB3,iy2BBE);
          int index2BC3#1 = Add<int>(ix2BAC,t2BC2);
          addr(IMAGE2D<float>) a2BC0#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2BB6,index2BC3);
          real4 v12BCA#1 = LoadVoxels<IMAGE2D<float>,4>(a2BC0);
          int iy2BCC#1 = Add<int>(_t1C1E,t22BAE);
          int t2BD0#1 = Mul<int>(n02BB3,iy2BCC);
          int index2BD1#1 = Add<int>(ix2BAC,t2BD0);
          addr(IMAGE2D<float>) a2BCE#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2BB6,index2BD1);
          real4 v22BD8#1 = LoadVoxels<IMAGE2D<float>,4>(a2BCE);
          int iy2BDA#1 = Add<int>(_t1BF6,t22BAE);
          int t2BDE#1 = Mul<int>(n02BB3,iy2BDA);
          int index2BDF#1 = Add<int>(ix2BAC,t2BDE);
          addr(IMAGE2D<float>) a2BDC#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2BB6,index2BDF);
          real4 v32BE6#1 = LoadVoxels<IMAGE2D<float>,4>(a2BDC);
          real fy2BE8#4 = Index<real2,1>(f2BA4);
          real t32BEA#1 = Add<real>(fy2BE8,_t1BF2);
          real t12BEC#1 = Sub<real>(fy2BE8,_t1BF2);
          real t02BEE#1 = Sub<real>(fy2BE8,_t1BF4);
          real4 a2BF0#3 = <real4>[t32BEA,fy2BE8,t12BEC,t02BEE];
          real _f2C03#2 = 0.133333333333e1;
          real _f2C04#2 = 0.666666666667e0;
          real4 a02BF3#4 = <real4>[_f2C03,_f2C04,_f2C04,_f2C03];
          real _f2BFF#1 = -0.2e1;
          real _f2C00#2 = 0.0;
          real4 a12BF4#4 = <real4>[_f2BFF,_f2C00,_f2C00,_t1BF4];
          real _f2BFC#2 = -0.1e1;
          real4 a22BF5#4 = <real4>[_t1BF2,_f2BFC,_f2BFC,_t1BF2];
          real _f2BF7#1 = -0.166666666667e0;
          real _f2BF8#1 = 0.5e0;
          real _f2BF9#1 = -0.5e0;
          real _f2BFA#1 = 0.166666666667e0;
          real4 a32BF6#4 = <real4>[_f2BF7,_f2BF8,_f2BF9,_f2BFA];
          real4 prod32C07#1 = Mul<real4>(a2BF0,a32BF6);
          real4 sum22C08#1 = Add<real4>(a22BF5,prod32C07);
          real4 prod22C09#1 = Mul<real4>(a2BF0,sum22C08);
          real4 sum12C0A#1 = Add<real4>(a12BF4,prod22C09);
          real4 prod12C0B#1 = Mul<real4>(a2BF0,sum12C0A);
          real4 hy2BF2#1 = Add<real4>(a02BF3,prod12C0B);
          real fx2C26#4 = Index<real2,0>(f2BA4);
          real t32C28#1 = Add<real>(fx2C26,_t1BF2);
          real t12C2A#1 = Sub<real>(fx2C26,_t1BF2);
          real t02C2C#1 = Sub<real>(fx2C26,_t1BF4);
          real4 a2C2E#3 = <real4>[t32C28,fx2C26,t12C2A,t02C2C];
          real4 prod32C45#1 = Mul<real4>(a2C2E,a32BF6);
          real4 sum22C46#1 = Add<real4>(a22BF5,prod32C45);
          real4 prod22C47#1 = Mul<real4>(a2C2E,sum22C46);
          real4 sum12C48#1 = Add<real4>(a12BF4,prod22C47);
          real4 prod12C49#1 = Mul<real4>(a2C2E,sum12C48);
          real4 hx2C30#4 = Add<real4>(a02BF3,prod12C49);
          real t02C64#1 = Dot<4>(v02BBC,hx2C30);
          real t12C66#1 = Dot<4>(v12BCA,hx2C30);
          real t22C68#1 = Dot<4>(v22BD8,hx2C30);
          real t32C6A#1 = Dot<4>(v32BE6,hx2C30);
          real4 tv2C6C#1 = <real4>[t02C64,t12C66,t22C68,t32C6A];
          real _t2C6E#1 = Dot<4>(hy2BF2,tv2C6C);
          real2 x2C70#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v091BA7);
          real2 nd2C72#2 = Floor<2>(x2C70);
          real2 f2C74#2 = Sub<real2>(x2C70,nd2C72);
          int{2} n2C76#2 = RealToInt<2>(nd2C72);
          int t22C78#1 = Index<int{2},0>(n2C76);
          int ix2C7A#4 = Add<int>(t12BA8,t22C78);
          int t22C7C#4 = Index<int{2},1>(n2C76);
          int iy2C7E#1 = Add<int>(t12BA8,t22C7C);
          int t2C82#1 = Mul<int>(n02BB3,iy2C7E);
          int index2C83#1 = Add<int>(ix2C7A,t2C82);
          addr(IMAGE2D<int>) imgBaseAddr2C84#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a2C80#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2C84,index2C83);
          real4 v02C8A#1 = LoadVoxels<IMAGE2D<int>,4>(a2C80);
          int iy2C8C#1 = Add<int>(_t1C1A,t22C7C);
          int t2C90#1 = Mul<int>(n02BB3,iy2C8C);
          int index2C91#1 = Add<int>(ix2C7A,t2C90);
          addr(IMAGE2D<int>) a2C8E#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2C84,index2C91);
          real4 v12C98#1 = LoadVoxels<IMAGE2D<int>,4>(a2C8E);
          int iy2C9A#1 = Add<int>(_t1C1E,t22C7C);
          int t2C9E#1 = Mul<int>(n02BB3,iy2C9A);
          int index2C9F#1 = Add<int>(ix2C7A,t2C9E);
          addr(IMAGE2D<int>) a2C9C#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2C84,index2C9F);
          real4 v22CA6#1 = LoadVoxels<IMAGE2D<int>,4>(a2C9C);
          int iy2CA8#1 = Add<int>(_t1BF6,t22C7C);
          int t2CAC#1 = Mul<int>(n02BB3,iy2CA8);
          int index2CAD#1 = Add<int>(ix2C7A,t2CAC);
          addr(IMAGE2D<int>) a2CAA#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2C84,index2CAD);
          real4 v32CB4#1 = LoadVoxels<IMAGE2D<int>,4>(a2CAA);
          real fy2CB6#4 = Index<real2,1>(f2C74);
          real t32CB8#1 = Add<real>(fy2CB6,_t1BF2);
          real t12CBA#1 = Sub<real>(fy2CB6,_t1BF2);
          real t02CBC#1 = Sub<real>(fy2CB6,_t1BF4);
          real4 a2CBE#3 = <real4>[t32CB8,fy2CB6,t12CBA,t02CBC];
          real4 prod32CD5#1 = Mul<real4>(a2CBE,a32BF6);
          real4 sum22CD6#1 = Add<real4>(a22BF5,prod32CD5);
          real4 prod22CD7#1 = Mul<real4>(a2CBE,sum22CD6);
          real4 sum12CD8#1 = Add<real4>(a12BF4,prod22CD7);
          real4 prod12CD9#1 = Mul<real4>(a2CBE,sum12CD8);
          real4 hy2CC0#1 = Add<real4>(a02BF3,prod12CD9);
          real fx2CF4#4 = Index<real2,0>(f2C74);
          real t32CF6#1 = Add<real>(fx2CF4,_t1BF2);
          real t12CF8#1 = Sub<real>(fx2CF4,_t1BF2);
          real t02CFA#1 = Sub<real>(fx2CF4,_t1BF4);
          real4 a2CFC#3 = <real4>[t32CF6,fx2CF4,t12CF8,t02CFA];
          real4 prod32D13#1 = Mul<real4>(a2CFC,a32BF6);
          real4 sum22D14#1 = Add<real4>(a22BF5,prod32D13);
          real4 prod22D15#1 = Mul<real4>(a2CFC,sum22D14);
          real4 sum12D16#1 = Add<real4>(a12BF4,prod22D15);
          real4 prod12D17#1 = Mul<real4>(a2CFC,sum12D16);
          real4 hx2CFE#4 = Add<real4>(a02BF3,prod12D17);
          real t02D32#1 = Dot<4>(v02C8A,hx2CFE);
          real t12D34#1 = Dot<4>(v12C98,hx2CFE);
          real t22D36#1 = Dot<4>(v22CA6,hx2CFE);
          real t32D38#1 = Dot<4>(v32CB4,hx2CFE);
          real4 tv2D3A#1 = <real4>[t02D32,t12D34,t22D36,t32D38];
          real _t2D3C#1 = Dot<4>(hy2CC0,tv2D3A);
          real _t2D3E#2 = Sub<real>(_t2C6E,_t2D3C);
          real _t2D40#1 = Mul<real>(_t2D3E,_t2D3E);
          real score2D42#1 = Add<real>(score2B8B,_t2D40);
          goto JOIN2D45
        JOIN2D45:  preds = [ASSIGN2D43,COND2BA1]
          real score2D44#2 = phi(score2D42,score2B8B)
          real _t2D46#1 = Dot<2>(r01C0C,v101BA9);
          real _t2D48#1 = Dot<2>(r11C12,v101BA9);
          real2 _t2D4A#1 = <real2>[_t2D46,_t2D48];
          real2 pos2D4C#1 = Add<real2>(_t2D4A,_t1C22);
          real2 x2D4E#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos2D4C);
          bool _t2D50#1 = Inside<IMAGE2D<float>,2>(x2D4E,_t1B8D);
          if _t2D50 then goto ASSIGN2D54 else goto ASSIGN35ED
        ASSIGN2D54:  preds = [COND2D52]
          real2 x2D53#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v101BA9);
          bool _t2D55#1 = Inside<IMAGE2D<int>,2>(x2D53,_t1B89);
          goto JOIN2D59
        JOIN2D59:  preds = [ASSIGN2D56,ASSIGN35ED]
          bool _t2D57#1 = phi(_t2D55,_t2D58)
          if _t2D57 then goto ASSIGN2D5C else goto JOIN2EFE
        ASSIGN2D5C:  preds = [COND2D5A]
          real2 nd2D5B#2 = Floor<2>(x2D4E);
          real2 f2D5D#2 = Sub<real2>(x2D4E,nd2D5B);
          int{2} n2D5F#2 = RealToInt<2>(nd2D5B);
          int t12D61#4 = -1;
          int t22D63#1 = Index<int{2},0>(n2D5F);
          int ix2D65#4 = Add<int>(t12D61,t22D63);
          int t22D67#4 = Index<int{2},1>(n2D5F);
          int iy2D69#1 = Add<int>(t12D61,t22D67);
          int n02D6C#8 = 21;
          int t2D6D#1 = Mul<int>(n02D6C,iy2D69);
          int index2D6E#1 = Add<int>(ix2D65,t2D6D);
          addr(IMAGE2D<float>) imgBaseAddr2D6F#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a2D6B#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2D6F,index2D6E);
          real4 v02D75#1 = LoadVoxels<IMAGE2D<float>,4>(a2D6B);
          int iy2D77#1 = Add<int>(_t1C1A,t22D67);
          int t2D7B#1 = Mul<int>(n02D6C,iy2D77);
          int index2D7C#1 = Add<int>(ix2D65,t2D7B);
          addr(IMAGE2D<float>) a2D79#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2D6F,index2D7C);
          real4 v12D83#1 = LoadVoxels<IMAGE2D<float>,4>(a2D79);
          int iy2D85#1 = Add<int>(_t1C1E,t22D67);
          int t2D89#1 = Mul<int>(n02D6C,iy2D85);
          int index2D8A#1 = Add<int>(ix2D65,t2D89);
          addr(IMAGE2D<float>) a2D87#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2D6F,index2D8A);
          real4 v22D91#1 = LoadVoxels<IMAGE2D<float>,4>(a2D87);
          int iy2D93#1 = Add<int>(_t1BF6,t22D67);
          int t2D97#1 = Mul<int>(n02D6C,iy2D93);
          int index2D98#1 = Add<int>(ix2D65,t2D97);
          addr(IMAGE2D<float>) a2D95#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2D6F,index2D98);
          real4 v32D9F#1 = LoadVoxels<IMAGE2D<float>,4>(a2D95);
          real fy2DA1#4 = Index<real2,1>(f2D5D);
          real t32DA3#1 = Add<real>(fy2DA1,_t1BF2);
          real t12DA5#1 = Sub<real>(fy2DA1,_t1BF2);
          real t02DA7#1 = Sub<real>(fy2DA1,_t1BF4);
          real4 a2DA9#3 = <real4>[t32DA3,fy2DA1,t12DA5,t02DA7];
          real _f2DBC#2 = 0.133333333333e1;
          real _f2DBD#2 = 0.666666666667e0;
          real4 a02DAC#4 = <real4>[_f2DBC,_f2DBD,_f2DBD,_f2DBC];
          real _f2DB8#1 = -0.2e1;
          real _f2DB9#2 = 0.0;
          real4 a12DAD#4 = <real4>[_f2DB8,_f2DB9,_f2DB9,_t1BF4];
          real _f2DB5#2 = -0.1e1;
          real4 a22DAE#4 = <real4>[_t1BF2,_f2DB5,_f2DB5,_t1BF2];
          real _f2DB0#1 = -0.166666666667e0;
          real _f2DB1#1 = 0.5e0;
          real _f2DB2#1 = -0.5e0;
          real _f2DB3#1 = 0.166666666667e0;
          real4 a32DAF#4 = <real4>[_f2DB0,_f2DB1,_f2DB2,_f2DB3];
          real4 prod32DC0#1 = Mul<real4>(a2DA9,a32DAF);
          real4 sum22DC1#1 = Add<real4>(a22DAE,prod32DC0);
          real4 prod22DC2#1 = Mul<real4>(a2DA9,sum22DC1);
          real4 sum12DC3#1 = Add<real4>(a12DAD,prod22DC2);
          real4 prod12DC4#1 = Mul<real4>(a2DA9,sum12DC3);
          real4 hy2DAB#1 = Add<real4>(a02DAC,prod12DC4);
          real fx2DDF#4 = Index<real2,0>(f2D5D);
          real t32DE1#1 = Add<real>(fx2DDF,_t1BF2);
          real t12DE3#1 = Sub<real>(fx2DDF,_t1BF2);
          real t02DE5#1 = Sub<real>(fx2DDF,_t1BF4);
          real4 a2DE7#3 = <real4>[t32DE1,fx2DDF,t12DE3,t02DE5];
          real4 prod32DFE#1 = Mul<real4>(a2DE7,a32DAF);
          real4 sum22DFF#1 = Add<real4>(a22DAE,prod32DFE);
          real4 prod22E00#1 = Mul<real4>(a2DE7,sum22DFF);
          real4 sum12E01#1 = Add<real4>(a12DAD,prod22E00);
          real4 prod12E02#1 = Mul<real4>(a2DE7,sum12E01);
          real4 hx2DE9#4 = Add<real4>(a02DAC,prod12E02);
          real t02E1D#1 = Dot<4>(v02D75,hx2DE9);
          real t12E1F#1 = Dot<4>(v12D83,hx2DE9);
          real t22E21#1 = Dot<4>(v22D91,hx2DE9);
          real t32E23#1 = Dot<4>(v32D9F,hx2DE9);
          real4 tv2E25#1 = <real4>[t02E1D,t12E1F,t22E21,t32E23];
          real _t2E27#1 = Dot<4>(hy2DAB,tv2E25);
          real2 x2E29#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v101BA9);
          real2 nd2E2B#2 = Floor<2>(x2E29);
          real2 f2E2D#2 = Sub<real2>(x2E29,nd2E2B);
          int{2} n2E2F#2 = RealToInt<2>(nd2E2B);
          int t22E31#1 = Index<int{2},0>(n2E2F);
          int ix2E33#4 = Add<int>(t12D61,t22E31);
          int t22E35#4 = Index<int{2},1>(n2E2F);
          int iy2E37#1 = Add<int>(t12D61,t22E35);
          int t2E3B#1 = Mul<int>(n02D6C,iy2E37);
          int index2E3C#1 = Add<int>(ix2E33,t2E3B);
          addr(IMAGE2D<int>) imgBaseAddr2E3D#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a2E39#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2E3D,index2E3C);
          real4 v02E43#1 = LoadVoxels<IMAGE2D<int>,4>(a2E39);
          int iy2E45#1 = Add<int>(_t1C1A,t22E35);
          int t2E49#1 = Mul<int>(n02D6C,iy2E45);
          int index2E4A#1 = Add<int>(ix2E33,t2E49);
          addr(IMAGE2D<int>) a2E47#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2E3D,index2E4A);
          real4 v12E51#1 = LoadVoxels<IMAGE2D<int>,4>(a2E47);
          int iy2E53#1 = Add<int>(_t1C1E,t22E35);
          int t2E57#1 = Mul<int>(n02D6C,iy2E53);
          int index2E58#1 = Add<int>(ix2E33,t2E57);
          addr(IMAGE2D<int>) a2E55#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2E3D,index2E58);
          real4 v22E5F#1 = LoadVoxels<IMAGE2D<int>,4>(a2E55);
          int iy2E61#1 = Add<int>(_t1BF6,t22E35);
          int t2E65#1 = Mul<int>(n02D6C,iy2E61);
          int index2E66#1 = Add<int>(ix2E33,t2E65);
          addr(IMAGE2D<int>) a2E63#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2E3D,index2E66);
          real4 v32E6D#1 = LoadVoxels<IMAGE2D<int>,4>(a2E63);
          real fy2E6F#4 = Index<real2,1>(f2E2D);
          real t32E71#1 = Add<real>(fy2E6F,_t1BF2);
          real t12E73#1 = Sub<real>(fy2E6F,_t1BF2);
          real t02E75#1 = Sub<real>(fy2E6F,_t1BF4);
          real4 a2E77#3 = <real4>[t32E71,fy2E6F,t12E73,t02E75];
          real4 prod32E8E#1 = Mul<real4>(a2E77,a32DAF);
          real4 sum22E8F#1 = Add<real4>(a22DAE,prod32E8E);
          real4 prod22E90#1 = Mul<real4>(a2E77,sum22E8F);
          real4 sum12E91#1 = Add<real4>(a12DAD,prod22E90);
          real4 prod12E92#1 = Mul<real4>(a2E77,sum12E91);
          real4 hy2E79#1 = Add<real4>(a02DAC,prod12E92);
          real fx2EAD#4 = Index<real2,0>(f2E2D);
          real t32EAF#1 = Add<real>(fx2EAD,_t1BF2);
          real t12EB1#1 = Sub<real>(fx2EAD,_t1BF2);
          real t02EB3#1 = Sub<real>(fx2EAD,_t1BF4);
          real4 a2EB5#3 = <real4>[t32EAF,fx2EAD,t12EB1,t02EB3];
          real4 prod32ECC#1 = Mul<real4>(a2EB5,a32DAF);
          real4 sum22ECD#1 = Add<real4>(a22DAE,prod32ECC);
          real4 prod22ECE#1 = Mul<real4>(a2EB5,sum22ECD);
          real4 sum12ECF#1 = Add<real4>(a12DAD,prod22ECE);
          real4 prod12ED0#1 = Mul<real4>(a2EB5,sum12ECF);
          real4 hx2EB7#4 = Add<real4>(a02DAC,prod12ED0);
          real t02EEB#1 = Dot<4>(v02E43,hx2EB7);
          real t12EED#1 = Dot<4>(v12E51,hx2EB7);
          real t22EEF#1 = Dot<4>(v22E5F,hx2EB7);
          real t32EF1#1 = Dot<4>(v32E6D,hx2EB7);
          real4 tv2EF3#1 = <real4>[t02EEB,t12EED,t22EEF,t32EF1];
          real _t2EF5#1 = Dot<4>(hy2E79,tv2EF3);
          real _t2EF7#2 = Sub<real>(_t2E27,_t2EF5);
          real _t2EF9#1 = Mul<real>(_t2EF7,_t2EF7);
          real score2EFB#1 = Add<real>(score2D44,_t2EF9);
          goto JOIN2EFE
        JOIN2EFE:  preds = [ASSIGN2EFC,COND2D5A]
          real score2EFD#2 = phi(score2EFB,score2D44)
          real _t2EFF#1 = Dot<2>(r01C0C,v111BAB);
          real _t2F01#1 = Dot<2>(r11C12,v111BAB);
          real2 _t2F03#1 = <real2>[_t2EFF,_t2F01];
          real2 pos2F05#1 = Add<real2>(_t2F03,_t1C22);
          real2 x2F07#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos2F05);
          bool _t2F09#1 = Inside<IMAGE2D<float>,2>(x2F07,_t1B8D);
          if _t2F09 then goto ASSIGN2F0D else goto ASSIGN35EC
        ASSIGN2F0D:  preds = [COND2F0B]
          real2 x2F0C#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v111BAB);
          bool _t2F0E#1 = Inside<IMAGE2D<int>,2>(x2F0C,_t1B89);
          goto JOIN2F12
        JOIN2F12:  preds = [ASSIGN2F0F,ASSIGN35EC]
          bool _t2F10#1 = phi(_t2F0E,_t2F11)
          if _t2F10 then goto ASSIGN2F15 else goto JOIN30B7
        ASSIGN2F15:  preds = [COND2F13]
          real2 nd2F14#2 = Floor<2>(x2F07);
          real2 f2F16#2 = Sub<real2>(x2F07,nd2F14);
          int{2} n2F18#2 = RealToInt<2>(nd2F14);
          int t12F1A#4 = -1;
          int t22F1C#1 = Index<int{2},0>(n2F18);
          int ix2F1E#4 = Add<int>(t12F1A,t22F1C);
          int t22F20#4 = Index<int{2},1>(n2F18);
          int iy2F22#1 = Add<int>(t12F1A,t22F20);
          int n02F25#8 = 21;
          int t2F26#1 = Mul<int>(n02F25,iy2F22);
          int index2F27#1 = Add<int>(ix2F1E,t2F26);
          addr(IMAGE2D<float>) imgBaseAddr2F28#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a2F24#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2F28,index2F27);
          real4 v02F2E#1 = LoadVoxels<IMAGE2D<float>,4>(a2F24);
          int iy2F30#1 = Add<int>(_t1C1A,t22F20);
          int t2F34#1 = Mul<int>(n02F25,iy2F30);
          int index2F35#1 = Add<int>(ix2F1E,t2F34);
          addr(IMAGE2D<float>) a2F32#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2F28,index2F35);
          real4 v12F3C#1 = LoadVoxels<IMAGE2D<float>,4>(a2F32);
          int iy2F3E#1 = Add<int>(_t1C1E,t22F20);
          int t2F42#1 = Mul<int>(n02F25,iy2F3E);
          int index2F43#1 = Add<int>(ix2F1E,t2F42);
          addr(IMAGE2D<float>) a2F40#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2F28,index2F43);
          real4 v22F4A#1 = LoadVoxels<IMAGE2D<float>,4>(a2F40);
          int iy2F4C#1 = Add<int>(_t1BF6,t22F20);
          int t2F50#1 = Mul<int>(n02F25,iy2F4C);
          int index2F51#1 = Add<int>(ix2F1E,t2F50);
          addr(IMAGE2D<float>) a2F4E#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr2F28,index2F51);
          real4 v32F58#1 = LoadVoxels<IMAGE2D<float>,4>(a2F4E);
          real fy2F5A#4 = Index<real2,1>(f2F16);
          real t32F5C#1 = Add<real>(fy2F5A,_t1BF2);
          real t12F5E#1 = Sub<real>(fy2F5A,_t1BF2);
          real t02F60#1 = Sub<real>(fy2F5A,_t1BF4);
          real4 a2F62#3 = <real4>[t32F5C,fy2F5A,t12F5E,t02F60];
          real _f2F75#2 = 0.133333333333e1;
          real _f2F76#2 = 0.666666666667e0;
          real4 a02F65#4 = <real4>[_f2F75,_f2F76,_f2F76,_f2F75];
          real _f2F71#1 = -0.2e1;
          real _f2F72#2 = 0.0;
          real4 a12F66#4 = <real4>[_f2F71,_f2F72,_f2F72,_t1BF4];
          real _f2F6E#2 = -0.1e1;
          real4 a22F67#4 = <real4>[_t1BF2,_f2F6E,_f2F6E,_t1BF2];
          real _f2F69#1 = -0.166666666667e0;
          real _f2F6A#1 = 0.5e0;
          real _f2F6B#1 = -0.5e0;
          real _f2F6C#1 = 0.166666666667e0;
          real4 a32F68#4 = <real4>[_f2F69,_f2F6A,_f2F6B,_f2F6C];
          real4 prod32F79#1 = Mul<real4>(a2F62,a32F68);
          real4 sum22F7A#1 = Add<real4>(a22F67,prod32F79);
          real4 prod22F7B#1 = Mul<real4>(a2F62,sum22F7A);
          real4 sum12F7C#1 = Add<real4>(a12F66,prod22F7B);
          real4 prod12F7D#1 = Mul<real4>(a2F62,sum12F7C);
          real4 hy2F64#1 = Add<real4>(a02F65,prod12F7D);
          real fx2F98#4 = Index<real2,0>(f2F16);
          real t32F9A#1 = Add<real>(fx2F98,_t1BF2);
          real t12F9C#1 = Sub<real>(fx2F98,_t1BF2);
          real t02F9E#1 = Sub<real>(fx2F98,_t1BF4);
          real4 a2FA0#3 = <real4>[t32F9A,fx2F98,t12F9C,t02F9E];
          real4 prod32FB7#1 = Mul<real4>(a2FA0,a32F68);
          real4 sum22FB8#1 = Add<real4>(a22F67,prod32FB7);
          real4 prod22FB9#1 = Mul<real4>(a2FA0,sum22FB8);
          real4 sum12FBA#1 = Add<real4>(a12F66,prod22FB9);
          real4 prod12FBB#1 = Mul<real4>(a2FA0,sum12FBA);
          real4 hx2FA2#4 = Add<real4>(a02F65,prod12FBB);
          real t02FD6#1 = Dot<4>(v02F2E,hx2FA2);
          real t12FD8#1 = Dot<4>(v12F3C,hx2FA2);
          real t22FDA#1 = Dot<4>(v22F4A,hx2FA2);
          real t32FDC#1 = Dot<4>(v32F58,hx2FA2);
          real4 tv2FDE#1 = <real4>[t02FD6,t12FD8,t22FDA,t32FDC];
          real _t2FE0#1 = Dot<4>(hy2F64,tv2FDE);
          real2 x2FE2#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v111BAB);
          real2 nd2FE4#2 = Floor<2>(x2FE2);
          real2 f2FE6#2 = Sub<real2>(x2FE2,nd2FE4);
          int{2} n2FE8#2 = RealToInt<2>(nd2FE4);
          int t22FEA#1 = Index<int{2},0>(n2FE8);
          int ix2FEC#4 = Add<int>(t12F1A,t22FEA);
          int t22FEE#4 = Index<int{2},1>(n2FE8);
          int iy2FF0#1 = Add<int>(t12F1A,t22FEE);
          int t2FF4#1 = Mul<int>(n02F25,iy2FF0);
          int index2FF5#1 = Add<int>(ix2FEC,t2FF4);
          addr(IMAGE2D<int>) imgBaseAddr2FF6#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a2FF2#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2FF6,index2FF5);
          real4 v02FFC#1 = LoadVoxels<IMAGE2D<int>,4>(a2FF2);
          int iy2FFE#1 = Add<int>(_t1C1A,t22FEE);
          int t3002#1 = Mul<int>(n02F25,iy2FFE);
          int index3003#1 = Add<int>(ix2FEC,t3002);
          addr(IMAGE2D<int>) a3000#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2FF6,index3003);
          real4 v1300A#1 = LoadVoxels<IMAGE2D<int>,4>(a3000);
          int iy300C#1 = Add<int>(_t1C1E,t22FEE);
          int t3010#1 = Mul<int>(n02F25,iy300C);
          int index3011#1 = Add<int>(ix2FEC,t3010);
          addr(IMAGE2D<int>) a300E#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2FF6,index3011);
          real4 v23018#1 = LoadVoxels<IMAGE2D<int>,4>(a300E);
          int iy301A#1 = Add<int>(_t1BF6,t22FEE);
          int t301E#1 = Mul<int>(n02F25,iy301A);
          int index301F#1 = Add<int>(ix2FEC,t301E);
          addr(IMAGE2D<int>) a301C#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr2FF6,index301F);
          real4 v33026#1 = LoadVoxels<IMAGE2D<int>,4>(a301C);
          real fy3028#4 = Index<real2,1>(f2FE6);
          real t3302A#1 = Add<real>(fy3028,_t1BF2);
          real t1302C#1 = Sub<real>(fy3028,_t1BF2);
          real t0302E#1 = Sub<real>(fy3028,_t1BF4);
          real4 a3030#3 = <real4>[t3302A,fy3028,t1302C,t0302E];
          real4 prod33047#1 = Mul<real4>(a3030,a32F68);
          real4 sum23048#1 = Add<real4>(a22F67,prod33047);
          real4 prod23049#1 = Mul<real4>(a3030,sum23048);
          real4 sum1304A#1 = Add<real4>(a12F66,prod23049);
          real4 prod1304B#1 = Mul<real4>(a3030,sum1304A);
          real4 hy3032#1 = Add<real4>(a02F65,prod1304B);
          real fx3066#4 = Index<real2,0>(f2FE6);
          real t33068#1 = Add<real>(fx3066,_t1BF2);
          real t1306A#1 = Sub<real>(fx3066,_t1BF2);
          real t0306C#1 = Sub<real>(fx3066,_t1BF4);
          real4 a306E#3 = <real4>[t33068,fx3066,t1306A,t0306C];
          real4 prod33085#1 = Mul<real4>(a306E,a32F68);
          real4 sum23086#1 = Add<real4>(a22F67,prod33085);
          real4 prod23087#1 = Mul<real4>(a306E,sum23086);
          real4 sum13088#1 = Add<real4>(a12F66,prod23087);
          real4 prod13089#1 = Mul<real4>(a306E,sum13088);
          real4 hx3070#4 = Add<real4>(a02F65,prod13089);
          real t030A4#1 = Dot<4>(v02FFC,hx3070);
          real t130A6#1 = Dot<4>(v1300A,hx3070);
          real t230A8#1 = Dot<4>(v23018,hx3070);
          real t330AA#1 = Dot<4>(v33026,hx3070);
          real4 tv30AC#1 = <real4>[t030A4,t130A6,t230A8,t330AA];
          real _t30AE#1 = Dot<4>(hy3032,tv30AC);
          real _t30B0#2 = Sub<real>(_t2FE0,_t30AE);
          real _t30B2#1 = Mul<real>(_t30B0,_t30B0);
          real score30B4#1 = Add<real>(score2EFD,_t30B2);
          goto JOIN30B7
        JOIN30B7:  preds = [ASSIGN30B5,COND2F13]
          real score30B6#2 = phi(score30B4,score2EFD)
          real _t30B8#1 = Dot<2>(r01C0C,v121BAD);
          real _t30BA#1 = Dot<2>(r11C12,v121BAD);
          real2 _t30BC#1 = <real2>[_t30B8,_t30BA];
          real2 pos30BE#1 = Add<real2>(_t30BC,_t1C22);
          real2 x30C0#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos30BE);
          bool _t30C2#1 = Inside<IMAGE2D<float>,2>(x30C0,_t1B8D);
          if _t30C2 then goto ASSIGN30C6 else goto ASSIGN35EB
        ASSIGN30C6:  preds = [COND30C4]
          real2 x30C5#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v121BAD);
          bool _t30C7#1 = Inside<IMAGE2D<int>,2>(x30C5,_t1B89);
          goto JOIN30CB
        JOIN30CB:  preds = [ASSIGN30C8,ASSIGN35EB]
          bool _t30C9#1 = phi(_t30C7,_t30CA)
          if _t30C9 then goto ASSIGN30CE else goto JOIN3270
        ASSIGN30CE:  preds = [COND30CC]
          real2 nd30CD#2 = Floor<2>(x30C0);
          real2 f30CF#2 = Sub<real2>(x30C0,nd30CD);
          int{2} n30D1#2 = RealToInt<2>(nd30CD);
          int t130D3#4 = -1;
          int t230D5#1 = Index<int{2},0>(n30D1);
          int ix30D7#4 = Add<int>(t130D3,t230D5);
          int t230D9#4 = Index<int{2},1>(n30D1);
          int iy30DB#1 = Add<int>(t130D3,t230D9);
          int n030DE#8 = 21;
          int t30DF#1 = Mul<int>(n030DE,iy30DB);
          int index30E0#1 = Add<int>(ix30D7,t30DF);
          addr(IMAGE2D<float>) imgBaseAddr30E1#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a30DD#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr30E1,index30E0);
          real4 v030E7#1 = LoadVoxels<IMAGE2D<float>,4>(a30DD);
          int iy30E9#1 = Add<int>(_t1C1A,t230D9);
          int t30ED#1 = Mul<int>(n030DE,iy30E9);
          int index30EE#1 = Add<int>(ix30D7,t30ED);
          addr(IMAGE2D<float>) a30EB#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr30E1,index30EE);
          real4 v130F5#1 = LoadVoxels<IMAGE2D<float>,4>(a30EB);
          int iy30F7#1 = Add<int>(_t1C1E,t230D9);
          int t30FB#1 = Mul<int>(n030DE,iy30F7);
          int index30FC#1 = Add<int>(ix30D7,t30FB);
          addr(IMAGE2D<float>) a30F9#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr30E1,index30FC);
          real4 v23103#1 = LoadVoxels<IMAGE2D<float>,4>(a30F9);
          int iy3105#1 = Add<int>(_t1BF6,t230D9);
          int t3109#1 = Mul<int>(n030DE,iy3105);
          int index310A#1 = Add<int>(ix30D7,t3109);
          addr(IMAGE2D<float>) a3107#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr30E1,index310A);
          real4 v33111#1 = LoadVoxels<IMAGE2D<float>,4>(a3107);
          real fy3113#4 = Index<real2,1>(f30CF);
          real t33115#1 = Add<real>(fy3113,_t1BF2);
          real t13117#1 = Sub<real>(fy3113,_t1BF2);
          real t03119#1 = Sub<real>(fy3113,_t1BF4);
          real4 a311B#3 = <real4>[t33115,fy3113,t13117,t03119];
          real _f312E#2 = 0.133333333333e1;
          real _f312F#2 = 0.666666666667e0;
          real4 a0311E#4 = <real4>[_f312E,_f312F,_f312F,_f312E];
          real _f312A#1 = -0.2e1;
          real _f312B#2 = 0.0;
          real4 a1311F#4 = <real4>[_f312A,_f312B,_f312B,_t1BF4];
          real _f3127#2 = -0.1e1;
          real4 a23120#4 = <real4>[_t1BF2,_f3127,_f3127,_t1BF2];
          real _f3122#1 = -0.166666666667e0;
          real _f3123#1 = 0.5e0;
          real _f3124#1 = -0.5e0;
          real _f3125#1 = 0.166666666667e0;
          real4 a33121#4 = <real4>[_f3122,_f3123,_f3124,_f3125];
          real4 prod33132#1 = Mul<real4>(a311B,a33121);
          real4 sum23133#1 = Add<real4>(a23120,prod33132);
          real4 prod23134#1 = Mul<real4>(a311B,sum23133);
          real4 sum13135#1 = Add<real4>(a1311F,prod23134);
          real4 prod13136#1 = Mul<real4>(a311B,sum13135);
          real4 hy311D#1 = Add<real4>(a0311E,prod13136);
          real fx3151#4 = Index<real2,0>(f30CF);
          real t33153#1 = Add<real>(fx3151,_t1BF2);
          real t13155#1 = Sub<real>(fx3151,_t1BF2);
          real t03157#1 = Sub<real>(fx3151,_t1BF4);
          real4 a3159#3 = <real4>[t33153,fx3151,t13155,t03157];
          real4 prod33170#1 = Mul<real4>(a3159,a33121);
          real4 sum23171#1 = Add<real4>(a23120,prod33170);
          real4 prod23172#1 = Mul<real4>(a3159,sum23171);
          real4 sum13173#1 = Add<real4>(a1311F,prod23172);
          real4 prod13174#1 = Mul<real4>(a3159,sum13173);
          real4 hx315B#4 = Add<real4>(a0311E,prod13174);
          real t0318F#1 = Dot<4>(v030E7,hx315B);
          real t13191#1 = Dot<4>(v130F5,hx315B);
          real t23193#1 = Dot<4>(v23103,hx315B);
          real t33195#1 = Dot<4>(v33111,hx315B);
          real4 tv3197#1 = <real4>[t0318F,t13191,t23193,t33195];
          real _t3199#1 = Dot<4>(hy311D,tv3197);
          real2 x319B#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v121BAD);
          real2 nd319D#2 = Floor<2>(x319B);
          real2 f319F#2 = Sub<real2>(x319B,nd319D);
          int{2} n31A1#2 = RealToInt<2>(nd319D);
          int t231A3#1 = Index<int{2},0>(n31A1);
          int ix31A5#4 = Add<int>(t130D3,t231A3);
          int t231A7#4 = Index<int{2},1>(n31A1);
          int iy31A9#1 = Add<int>(t130D3,t231A7);
          int t31AD#1 = Mul<int>(n030DE,iy31A9);
          int index31AE#1 = Add<int>(ix31A5,t31AD);
          addr(IMAGE2D<int>) imgBaseAddr31AF#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a31AB#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr31AF,index31AE);
          real4 v031B5#1 = LoadVoxels<IMAGE2D<int>,4>(a31AB);
          int iy31B7#1 = Add<int>(_t1C1A,t231A7);
          int t31BB#1 = Mul<int>(n030DE,iy31B7);
          int index31BC#1 = Add<int>(ix31A5,t31BB);
          addr(IMAGE2D<int>) a31B9#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr31AF,index31BC);
          real4 v131C3#1 = LoadVoxels<IMAGE2D<int>,4>(a31B9);
          int iy31C5#1 = Add<int>(_t1C1E,t231A7);
          int t31C9#1 = Mul<int>(n030DE,iy31C5);
          int index31CA#1 = Add<int>(ix31A5,t31C9);
          addr(IMAGE2D<int>) a31C7#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr31AF,index31CA);
          real4 v231D1#1 = LoadVoxels<IMAGE2D<int>,4>(a31C7);
          int iy31D3#1 = Add<int>(_t1BF6,t231A7);
          int t31D7#1 = Mul<int>(n030DE,iy31D3);
          int index31D8#1 = Add<int>(ix31A5,t31D7);
          addr(IMAGE2D<int>) a31D5#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr31AF,index31D8);
          real4 v331DF#1 = LoadVoxels<IMAGE2D<int>,4>(a31D5);
          real fy31E1#4 = Index<real2,1>(f319F);
          real t331E3#1 = Add<real>(fy31E1,_t1BF2);
          real t131E5#1 = Sub<real>(fy31E1,_t1BF2);
          real t031E7#1 = Sub<real>(fy31E1,_t1BF4);
          real4 a31E9#3 = <real4>[t331E3,fy31E1,t131E5,t031E7];
          real4 prod33200#1 = Mul<real4>(a31E9,a33121);
          real4 sum23201#1 = Add<real4>(a23120,prod33200);
          real4 prod23202#1 = Mul<real4>(a31E9,sum23201);
          real4 sum13203#1 = Add<real4>(a1311F,prod23202);
          real4 prod13204#1 = Mul<real4>(a31E9,sum13203);
          real4 hy31EB#1 = Add<real4>(a0311E,prod13204);
          real fx321F#4 = Index<real2,0>(f319F);
          real t33221#1 = Add<real>(fx321F,_t1BF2);
          real t13223#1 = Sub<real>(fx321F,_t1BF2);
          real t03225#1 = Sub<real>(fx321F,_t1BF4);
          real4 a3227#3 = <real4>[t33221,fx321F,t13223,t03225];
          real4 prod3323E#1 = Mul<real4>(a3227,a33121);
          real4 sum2323F#1 = Add<real4>(a23120,prod3323E);
          real4 prod23240#1 = Mul<real4>(a3227,sum2323F);
          real4 sum13241#1 = Add<real4>(a1311F,prod23240);
          real4 prod13242#1 = Mul<real4>(a3227,sum13241);
          real4 hx3229#4 = Add<real4>(a0311E,prod13242);
          real t0325D#1 = Dot<4>(v031B5,hx3229);
          real t1325F#1 = Dot<4>(v131C3,hx3229);
          real t23261#1 = Dot<4>(v231D1,hx3229);
          real t33263#1 = Dot<4>(v331DF,hx3229);
          real4 tv3265#1 = <real4>[t0325D,t1325F,t23261,t33263];
          real _t3267#1 = Dot<4>(hy31EB,tv3265);
          real _t3269#2 = Sub<real>(_t3199,_t3267);
          real _t326B#1 = Mul<real>(_t3269,_t3269);
          real score326D#1 = Add<real>(score30B6,_t326B);
          goto JOIN3270
        JOIN3270:  preds = [ASSIGN326E,COND30CC]
          real score326F#2 = phi(score326D,score30B6)
          real _t3271#1 = Dot<2>(r01C0C,v131BAF);
          real _t3273#1 = Dot<2>(r11C12,v131BAF);
          real2 _t3275#1 = <real2>[_t3271,_t3273];
          real2 pos3277#1 = Add<real2>(_t3275,_t1C22);
          real2 x3279#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos3277);
          bool _t327B#1 = Inside<IMAGE2D<float>,2>(x3279,_t1B8D);
          if _t327B then goto ASSIGN327F else goto ASSIGN35EA
        ASSIGN327F:  preds = [COND327D]
          real2 x327E#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v131BAF);
          bool _t3280#1 = Inside<IMAGE2D<int>,2>(x327E,_t1B89);
          goto JOIN3284
        JOIN3284:  preds = [ASSIGN3281,ASSIGN35EA]
          bool _t3282#1 = phi(_t3280,_t3283)
          if _t3282 then goto ASSIGN3287 else goto JOIN3429
        ASSIGN3287:  preds = [COND3285]
          real2 nd3286#2 = Floor<2>(x3279);
          real2 f3288#2 = Sub<real2>(x3279,nd3286);
          int{2} n328A#2 = RealToInt<2>(nd3286);
          int t1328C#4 = -1;
          int t2328E#1 = Index<int{2},0>(n328A);
          int ix3290#4 = Add<int>(t1328C,t2328E);
          int t23292#4 = Index<int{2},1>(n328A);
          int iy3294#1 = Add<int>(t1328C,t23292);
          int n03297#8 = 21;
          int t3298#1 = Mul<int>(n03297,iy3294);
          int index3299#1 = Add<int>(ix3290,t3298);
          addr(IMAGE2D<float>) imgBaseAddr329A#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a3296#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr329A,index3299);
          real4 v032A0#1 = LoadVoxels<IMAGE2D<float>,4>(a3296);
          int iy32A2#1 = Add<int>(_t1C1A,t23292);
          int t32A6#1 = Mul<int>(n03297,iy32A2);
          int index32A7#1 = Add<int>(ix3290,t32A6);
          addr(IMAGE2D<float>) a32A4#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr329A,index32A7);
          real4 v132AE#1 = LoadVoxels<IMAGE2D<float>,4>(a32A4);
          int iy32B0#1 = Add<int>(_t1C1E,t23292);
          int t32B4#1 = Mul<int>(n03297,iy32B0);
          int index32B5#1 = Add<int>(ix3290,t32B4);
          addr(IMAGE2D<float>) a32B2#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr329A,index32B5);
          real4 v232BC#1 = LoadVoxels<IMAGE2D<float>,4>(a32B2);
          int iy32BE#1 = Add<int>(_t1BF6,t23292);
          int t32C2#1 = Mul<int>(n03297,iy32BE);
          int index32C3#1 = Add<int>(ix3290,t32C2);
          addr(IMAGE2D<float>) a32C0#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr329A,index32C3);
          real4 v332CA#1 = LoadVoxels<IMAGE2D<float>,4>(a32C0);
          real fy32CC#4 = Index<real2,1>(f3288);
          real t332CE#1 = Add<real>(fy32CC,_t1BF2);
          real t132D0#1 = Sub<real>(fy32CC,_t1BF2);
          real t032D2#1 = Sub<real>(fy32CC,_t1BF4);
          real4 a32D4#3 = <real4>[t332CE,fy32CC,t132D0,t032D2];
          real _f32E7#2 = 0.133333333333e1;
          real _f32E8#2 = 0.666666666667e0;
          real4 a032D7#4 = <real4>[_f32E7,_f32E8,_f32E8,_f32E7];
          real _f32E3#1 = -0.2e1;
          real _f32E4#2 = 0.0;
          real4 a132D8#4 = <real4>[_f32E3,_f32E4,_f32E4,_t1BF4];
          real _f32E0#2 = -0.1e1;
          real4 a232D9#4 = <real4>[_t1BF2,_f32E0,_f32E0,_t1BF2];
          real _f32DB#1 = -0.166666666667e0;
          real _f32DC#1 = 0.5e0;
          real _f32DD#1 = -0.5e0;
          real _f32DE#1 = 0.166666666667e0;
          real4 a332DA#4 = <real4>[_f32DB,_f32DC,_f32DD,_f32DE];
          real4 prod332EB#1 = Mul<real4>(a32D4,a332DA);
          real4 sum232EC#1 = Add<real4>(a232D9,prod332EB);
          real4 prod232ED#1 = Mul<real4>(a32D4,sum232EC);
          real4 sum132EE#1 = Add<real4>(a132D8,prod232ED);
          real4 prod132EF#1 = Mul<real4>(a32D4,sum132EE);
          real4 hy32D6#1 = Add<real4>(a032D7,prod132EF);
          real fx330A#4 = Index<real2,0>(f3288);
          real t3330C#1 = Add<real>(fx330A,_t1BF2);
          real t1330E#1 = Sub<real>(fx330A,_t1BF2);
          real t03310#1 = Sub<real>(fx330A,_t1BF4);
          real4 a3312#3 = <real4>[t3330C,fx330A,t1330E,t03310];
          real4 prod33329#1 = Mul<real4>(a3312,a332DA);
          real4 sum2332A#1 = Add<real4>(a232D9,prod33329);
          real4 prod2332B#1 = Mul<real4>(a3312,sum2332A);
          real4 sum1332C#1 = Add<real4>(a132D8,prod2332B);
          real4 prod1332D#1 = Mul<real4>(a3312,sum1332C);
          real4 hx3314#4 = Add<real4>(a032D7,prod1332D);
          real t03348#1 = Dot<4>(v032A0,hx3314);
          real t1334A#1 = Dot<4>(v132AE,hx3314);
          real t2334C#1 = Dot<4>(v232BC,hx3314);
          real t3334E#1 = Dot<4>(v332CA,hx3314);
          real4 tv3350#1 = <real4>[t03348,t1334A,t2334C,t3334E];
          real _t3352#1 = Dot<4>(hy32D6,tv3350);
          real2 x3354#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v131BAF);
          real2 nd3356#2 = Floor<2>(x3354);
          real2 f3358#2 = Sub<real2>(x3354,nd3356);
          int{2} n335A#2 = RealToInt<2>(nd3356);
          int t2335C#1 = Index<int{2},0>(n335A);
          int ix335E#4 = Add<int>(t1328C,t2335C);
          int t23360#4 = Index<int{2},1>(n335A);
          int iy3362#1 = Add<int>(t1328C,t23360);
          int t3366#1 = Mul<int>(n03297,iy3362);
          int index3367#1 = Add<int>(ix335E,t3366);
          addr(IMAGE2D<int>) imgBaseAddr3368#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a3364#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3368,index3367);
          real4 v0336E#1 = LoadVoxels<IMAGE2D<int>,4>(a3364);
          int iy3370#1 = Add<int>(_t1C1A,t23360);
          int t3374#1 = Mul<int>(n03297,iy3370);
          int index3375#1 = Add<int>(ix335E,t3374);
          addr(IMAGE2D<int>) a3372#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3368,index3375);
          real4 v1337C#1 = LoadVoxels<IMAGE2D<int>,4>(a3372);
          int iy337E#1 = Add<int>(_t1C1E,t23360);
          int t3382#1 = Mul<int>(n03297,iy337E);
          int index3383#1 = Add<int>(ix335E,t3382);
          addr(IMAGE2D<int>) a3380#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3368,index3383);
          real4 v2338A#1 = LoadVoxels<IMAGE2D<int>,4>(a3380);
          int iy338C#1 = Add<int>(_t1BF6,t23360);
          int t3390#1 = Mul<int>(n03297,iy338C);
          int index3391#1 = Add<int>(ix335E,t3390);
          addr(IMAGE2D<int>) a338E#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3368,index3391);
          real4 v33398#1 = LoadVoxels<IMAGE2D<int>,4>(a338E);
          real fy339A#4 = Index<real2,1>(f3358);
          real t3339C#1 = Add<real>(fy339A,_t1BF2);
          real t1339E#1 = Sub<real>(fy339A,_t1BF2);
          real t033A0#1 = Sub<real>(fy339A,_t1BF4);
          real4 a33A2#3 = <real4>[t3339C,fy339A,t1339E,t033A0];
          real4 prod333B9#1 = Mul<real4>(a33A2,a332DA);
          real4 sum233BA#1 = Add<real4>(a232D9,prod333B9);
          real4 prod233BB#1 = Mul<real4>(a33A2,sum233BA);
          real4 sum133BC#1 = Add<real4>(a132D8,prod233BB);
          real4 prod133BD#1 = Mul<real4>(a33A2,sum133BC);
          real4 hy33A4#1 = Add<real4>(a032D7,prod133BD);
          real fx33D8#4 = Index<real2,0>(f3358);
          real t333DA#1 = Add<real>(fx33D8,_t1BF2);
          real t133DC#1 = Sub<real>(fx33D8,_t1BF2);
          real t033DE#1 = Sub<real>(fx33D8,_t1BF4);
          real4 a33E0#3 = <real4>[t333DA,fx33D8,t133DC,t033DE];
          real4 prod333F7#1 = Mul<real4>(a33E0,a332DA);
          real4 sum233F8#1 = Add<real4>(a232D9,prod333F7);
          real4 prod233F9#1 = Mul<real4>(a33E0,sum233F8);
          real4 sum133FA#1 = Add<real4>(a132D8,prod233F9);
          real4 prod133FB#1 = Mul<real4>(a33E0,sum133FA);
          real4 hx33E2#4 = Add<real4>(a032D7,prod133FB);
          real t03416#1 = Dot<4>(v0336E,hx33E2);
          real t13418#1 = Dot<4>(v1337C,hx33E2);
          real t2341A#1 = Dot<4>(v2338A,hx33E2);
          real t3341C#1 = Dot<4>(v33398,hx33E2);
          real4 tv341E#1 = <real4>[t03416,t13418,t2341A,t3341C];
          real _t3420#1 = Dot<4>(hy33A4,tv341E);
          real _t3422#2 = Sub<real>(_t3352,_t3420);
          real _t3424#1 = Mul<real>(_t3422,_t3422);
          real score3426#1 = Add<real>(score326F,_t3424);
          goto JOIN3429
        JOIN3429:  preds = [ASSIGN3427,COND3285]
          real score3428#2 = phi(score3426,score326F)
          real _t342A#1 = Dot<2>(r01C0C,v141BB1);
          real _t342C#1 = Dot<2>(r11C12,v141BB1);
          real2 _t342E#1 = <real2>[_t342A,_t342C];
          real2 pos3430#2 = Add<real2>(_t342E,_t1C22);
          real2 x3432#3 = PosToImgSpace<IMAGE2D<float>>(_t1B8D,pos3430);
          bool _t3434#1 = Inside<IMAGE2D<float>,2>(x3432,_t1B8D);
          if _t3434 then goto ASSIGN3438 else goto ASSIGN35E9
        ASSIGN3438:  preds = [COND3436]
          real2 x3437#1 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v141BB1);
          bool _t3439#1 = Inside<IMAGE2D<int>,2>(x3437,_t1B89);
          goto JOIN343D
        JOIN343D:  preds = [ASSIGN343A,ASSIGN35E9]
          bool _t343B#1 = phi(_t3439,_t343C)
          if _t343B then goto ASSIGN3440 else goto JOIN35E2
        ASSIGN3440:  preds = [COND343E]
          real2 nd343F#2 = Floor<2>(x3432);
          real2 f3441#2 = Sub<real2>(x3432,nd343F);
          int{2} n3443#2 = RealToInt<2>(nd343F);
          int t13445#4 = -1;
          int t23447#1 = Index<int{2},0>(n3443);
          int ix3449#4 = Add<int>(t13445,t23447);
          int t2344B#4 = Index<int{2},1>(n3443);
          int iy344D#1 = Add<int>(t13445,t2344B);
          int n03450#8 = 21;
          int t3451#1 = Mul<int>(n03450,iy344D);
          int index3452#1 = Add<int>(ix3449,t3451);
          addr(IMAGE2D<float>) imgBaseAddr3453#4 = ImageAddress<IMAGE2D<float>>(_t1B8D);
          addr(IMAGE2D<float>) a344F#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr3453,index3452);
          real4 v03459#1 = LoadVoxels<IMAGE2D<float>,4>(a344F);
          int iy345B#1 = Add<int>(_t1C1A,t2344B);
          int t345F#1 = Mul<int>(n03450,iy345B);
          int index3460#1 = Add<int>(ix3449,t345F);
          addr(IMAGE2D<float>) a345D#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr3453,index3460);
          real4 v13467#1 = LoadVoxels<IMAGE2D<float>,4>(a345D);
          int iy3469#1 = Add<int>(_t1C1E,t2344B);
          int t346D#1 = Mul<int>(n03450,iy3469);
          int index346E#1 = Add<int>(ix3449,t346D);
          addr(IMAGE2D<float>) a346B#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr3453,index346E);
          real4 v23475#1 = LoadVoxels<IMAGE2D<float>,4>(a346B);
          int iy3477#1 = Add<int>(_t1BF6,t2344B);
          int t347B#1 = Mul<int>(n03450,iy3477);
          int index347C#1 = Add<int>(ix3449,t347B);
          addr(IMAGE2D<float>) a3479#1 = Add<addr(IMAGE2D<float>)>(imgBaseAddr3453,index347C);
          real4 v33483#1 = LoadVoxels<IMAGE2D<float>,4>(a3479);
          real fy3485#4 = Index<real2,1>(f3441);
          real t33487#1 = Add<real>(fy3485,_t1BF2);
          real t13489#1 = Sub<real>(fy3485,_t1BF2);
          real t0348B#1 = Sub<real>(fy3485,_t1BF4);
          real4 a348D#3 = <real4>[t33487,fy3485,t13489,t0348B];
          real _f34A0#2 = 0.133333333333e1;
          real _f34A1#2 = 0.666666666667e0;
          real4 a03490#4 = <real4>[_f34A0,_f34A1,_f34A1,_f34A0];
          real _f349C#1 = -0.2e1;
          real _f349D#2 = 0.0;
          real4 a13491#4 = <real4>[_f349C,_f349D,_f349D,_t1BF4];
          real _f3499#2 = -0.1e1;
          real4 a23492#4 = <real4>[_t1BF2,_f3499,_f3499,_t1BF2];
          real _f3494#1 = -0.166666666667e0;
          real _f3495#1 = 0.5e0;
          real _f3496#1 = -0.5e0;
          real _f3497#1 = 0.166666666667e0;
          real4 a33493#4 = <real4>[_f3494,_f3495,_f3496,_f3497];
          real4 prod334A4#1 = Mul<real4>(a348D,a33493);
          real4 sum234A5#1 = Add<real4>(a23492,prod334A4);
          real4 prod234A6#1 = Mul<real4>(a348D,sum234A5);
          real4 sum134A7#1 = Add<real4>(a13491,prod234A6);
          real4 prod134A8#1 = Mul<real4>(a348D,sum134A7);
          real4 hy348F#1 = Add<real4>(a03490,prod134A8);
          real fx34C3#4 = Index<real2,0>(f3441);
          real t334C5#1 = Add<real>(fx34C3,_t1BF2);
          real t134C7#1 = Sub<real>(fx34C3,_t1BF2);
          real t034C9#1 = Sub<real>(fx34C3,_t1BF4);
          real4 a34CB#3 = <real4>[t334C5,fx34C3,t134C7,t034C9];
          real4 prod334E2#1 = Mul<real4>(a34CB,a33493);
          real4 sum234E3#1 = Add<real4>(a23492,prod334E2);
          real4 prod234E4#1 = Mul<real4>(a34CB,sum234E3);
          real4 sum134E5#1 = Add<real4>(a13491,prod234E4);
          real4 prod134E6#1 = Mul<real4>(a34CB,sum134E5);
          real4 hx34CD#4 = Add<real4>(a03490,prod134E6);
          real t03501#1 = Dot<4>(v03459,hx34CD);
          real t13503#1 = Dot<4>(v13467,hx34CD);
          real t23505#1 = Dot<4>(v23475,hx34CD);
          real t33507#1 = Dot<4>(v33483,hx34CD);
          real4 tv3509#1 = <real4>[t03501,t13503,t23505,t33507];
          real _t350B#1 = Dot<4>(hy348F,tv3509);
          real2 x350D#2 = PosToImgSpace<IMAGE2D<int>>(_t1B89,v141BB1);
          real2 nd350F#2 = Floor<2>(x350D);
          real2 f3511#2 = Sub<real2>(x350D,nd350F);
          int{2} n3513#2 = RealToInt<2>(nd350F);
          int t23515#1 = Index<int{2},0>(n3513);
          int ix3517#4 = Add<int>(t13445,t23515);
          int t23519#4 = Index<int{2},1>(n3513);
          int iy351B#1 = Add<int>(t13445,t23519);
          int t351F#1 = Mul<int>(n03450,iy351B);
          int index3520#1 = Add<int>(ix3517,t351F);
          addr(IMAGE2D<int>) imgBaseAddr3521#4 = ImageAddress<IMAGE2D<int>>(_t1B89);
          addr(IMAGE2D<int>) a351D#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3521,index3520);
          real4 v03527#1 = LoadVoxels<IMAGE2D<int>,4>(a351D);
          int iy3529#1 = Add<int>(_t1C1A,t23519);
          int t352D#1 = Mul<int>(n03450,iy3529);
          int index352E#1 = Add<int>(ix3517,t352D);
          addr(IMAGE2D<int>) a352B#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3521,index352E);
          real4 v13535#1 = LoadVoxels<IMAGE2D<int>,4>(a352B);
          int iy3537#1 = Add<int>(_t1C1E,t23519);
          int t353B#1 = Mul<int>(n03450,iy3537);
          int index353C#1 = Add<int>(ix3517,t353B);
          addr(IMAGE2D<int>) a3539#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3521,index353C);
          real4 v23543#1 = LoadVoxels<IMAGE2D<int>,4>(a3539);
          int iy3545#1 = Add<int>(_t1BF6,t23519);
          int t3549#1 = Mul<int>(n03450,iy3545);
          int index354A#1 = Add<int>(ix3517,t3549);
          addr(IMAGE2D<int>) a3547#1 = Add<addr(IMAGE2D<int>)>(imgBaseAddr3521,index354A);
          real4 v33551#1 = LoadVoxels<IMAGE2D<int>,4>(a3547);
          real fy3553#4 = Index<real2,1>(f3511);
          real t33555#1 = Add<real>(fy3553,_t1BF2);
          real t13557#1 = Sub<real>(fy3553,_t1BF2);
          real t03559#1 = Sub<real>(fy3553,_t1BF4);
          real4 a355B#3 = <real4>[t33555,fy3553,t13557,t03559];
          real4 prod33572#1 = Mul<real4>(a355B,a33493);
          real4 sum23573#1 = Add<real4>(a23492,prod33572);
          real4 prod23574#1 = Mul<real4>(a355B,sum23573);
          real4 sum13575#1 = Add<real4>(a13491,prod23574);
          real4 prod13576#1 = Mul<real4>(a355B,sum13575);
          real4 hy355D#1 = Add<real4>(a03490,prod13576);
          real fx3591#4 = Index<real2,0>(f3511);
          real t33593#1 = Add<real>(fx3591,_t1BF2);
          real t13595#1 = Sub<real>(fx3591,_t1BF2);
          real t03597#1 = Sub<real>(fx3591,_t1BF4);
          real4 a3599#3 = <real4>[t33593,fx3591,t13595,t03597];
          real4 prod335B0#1 = Mul<real4>(a3599,a33493);
          real4 sum235B1#1 = Add<real4>(a23492,prod335B0);
          real4 prod235B2#1 = Mul<real4>(a3599,sum235B1);
          real4 sum135B3#1 = Add<real4>(a13491,prod235B2);
          real4 prod135B4#1 = Mul<real4>(a3599,sum135B3);
          real4 hx359B#4 = Add<real4>(a03490,prod135B4);
          real t035CF#1 = Dot<4>(v03527,hx359B);
          real t135D1#1 = Dot<4>(v13535,hx359B);
          real t235D3#1 = Dot<4>(v23543,hx359B);
          real t335D5#1 = Dot<4>(v33551,hx359B);
          real4 tv35D7#1 = <real4>[t035CF,t135D1,t235D3,t335D5];
          real _t35D9#1 = Dot<4>(hy355D,tv35D7);
          real _t35DB#2 = Sub<real>(_t350B,_t35D9);
          real _t35DD#1 = Mul<real>(_t35DB,_t35DB);
          real score35DF#1 = Add<real>(score3428,_t35DD);
          goto JOIN35E2
        JOIN35E2:  preds = [ASSIGN35E0,COND343E]
          real score35E1#1 = phi(score35DF,score3428)
          self.score = score35E1;
          self.r0 = r01C0C;
          self.r1 = r11C12;
          self.pos = pos3430;
          stabilize ()
        ASSIGN35E9:  preds = [COND3436]
          bool _t343C#1 = false;
          goto JOIN343D
        ASSIGN35EA:  preds = [COND327D]
          bool _t3283#1 = false;
          goto JOIN3284
        ASSIGN35EB:  preds = [COND30C4]
          bool _t30CA#1 = false;
          goto JOIN30CB
        ASSIGN35EC:  preds = [COND2F0B]
          bool _t2F11#1 = false;
          goto JOIN2F12
        ASSIGN35ED:  preds = [COND2D52]
          bool _t2D58#1 = false;
          goto JOIN2D59
        ASSIGN35EE:  preds = [COND2B99]
          bool _t2B9F#1 = false;
          goto JOIN2BA0
        ASSIGN35EF:  preds = [COND29E0]
          bool _t29E6#1 = false;
          goto JOIN29E7
        ASSIGN35F0:  preds = [COND2680]
          bool _t2686#1 = false;
          goto JOIN2687
        ASSIGN35F1:  preds = [COND24C7]
          bool _t24CD#1 = false;
          goto JOIN24CE
        ASSIGN35F2:  preds = [COND230E]
          bool _t2314#1 = false;
          goto JOIN2315
        ASSIGN35F3:  preds = [COND2155]
          bool _t215B#1 = false;
          goto JOIN215C
        ASSIGN35F4:  preds = [COND1F9C]
          bool _t1FA2#1 = false;
          goto JOIN1FA3
        ASSIGN35F5:  preds = [COND1DE3]
          bool _t1DE9#1 = false;
          goto JOIN1DEA
        ASSIGN35F6:  preds = [COND1C2A]
          bool _t1C30#1 = false;
          goto JOIN1C31
    end Update
    method Stabilize
        ENTRY35F8:  preds = []
          real3 t35F9#1 = self.t;
          real score35FB#1 = self.score;
          real2 r035FD#1 = self.r0;
          real2 r135FF#1 = self.r1;
          real2 pos3601#1 = self.pos;
          self.score = score35FB;
          self.r0 = r035FD;
          self.r1 = r135FF;
          self.pos = pos3601;
          return ()
    end Stabilize
  end R
#### end program ####
********** After translation to TreeIL **********
//***** PROPERTIES *****
  none
//***** GLOBALS *****
  real2 v00;
  real2 v01;
  real2 v02;
  real2 v03;
  real2 v05;
  real2 v06;
  real2 v04;
  real2 v08;
  real2 v09;
  real2 v10;
  real2 v11;
  real2 v12;
  real2 v13;
  real2 v14;
  image(IMAGE2D<int>) _t;
  image(IMAGE2D<float>) _t;
//***** INPUT INIT *****
  {
    exit();
  }
//***** GLOBAL INIT *****
  {
    real l__t_624;
    real l__t_625;
    _t = load<2> ("square-template.nrrd");
    _t = load<2> ("square-rotate.nrrd");
    l__t_624 = Neg<real>(0.5e0);
    v00 = <real2>{l__t_624,l__t_624};
    l__t_625 = Neg<real>(0.15e0);
    v01 = <real2>{l__t_624,l__t_625};
    v02 = <real2>{l__t_624,0.15e0};
    v03 = <real2>{l__t_624,0.5e0};
    v04 = <real2>{l__t_625,0.5e0};
    v05 = <real2>{l__t_625,l__t_625};
    v06 = <real2>{l__t_625,0.15e0};
    v08 = <real2>{0.15e0,l__t_624};
    v09 = <real2>{0.15e0,l__t_625};
    v10 = <real2>{0.15e0,0.15e0};
    v11 = <real2>{0.15e0,0.5e0};
    v12 = <real2>{0.5e0,l__t_624};
    v13 = <real2>{0.5e0,l__t_625};
    v14 = <real2>{0.5e0,0.15e0};
    exit(::v00,::v01,::v02,::v03,::v05,::v06,::v04,::v08,::v09,::v10,::v11,::v12,::v13,::v14,::_t,::_t);
  }
//***** STRANDS *****
strand R (int p_i_0,int p_j_1,int p_k_2) {
  real3 t;
  varying output real score;
  varying real2 r0;
  varying real2 r1;
  varying real2 pos;
  init () {
    real2 l_r0_3;
    l_r0_3 = <real2>{0.0,0.0};
    self.t = <real3>{Sub<real>(Div<real>(IntToReal(p_i_0),0.60e2),0.5e0),Sub<real>(Div<real>(IntToReal(p_j_1),0.60e2),0.5e0),Sub<real>(Div<real>(IntToReal(p_k_2),0.60e2),0.5e0)};
    self.score = 0.0;
    self.r0 = l_r0_3;
    self.r1 = l_r0_3;
    self.pos = l_r0_3;
    exit();
  }
  Update () {
    real l__t_4;
    real l__t_5;
    real l__t_6;
    real2 l_r0_7;
    real2 l_r1_8;
    real2 l__t_9;
    real2 l_x_10;
    bool l__t_11;
    bool l__t_12;
    real2 l_nd_13;
    real2 l_f_14;
    int{2} l_n_15;
    int l_ix_16;
    int l_t2_17;
    addr(IMAGE2D<float>) l_imgBaseAddr_18;
    real4 l_v0_19;
    real4 l_v1_20;
    real4 l_v2_21;
    real4 l_v3_22;
    real l_fy_23;
    real4 l_a_24;
    real4 l_a0_25;
    real4 l_a1_26;
    real4 l_a2_27;
    real4 l_a3_28;
    real l_fx_29;
    real4 l_a_30;
    real4 l_hx_31;
    real2 l_x_32;
    real2 l_nd_33;
    real2 l_f_34;
    int{2} l_n_35;
    int l_ix_36;
    int l_t2_37;
    addr(IMAGE2D<int>) l_imgBaseAddr_38;
    real4 l_v0_39;
    real4 l_v1_40;
    real4 l_v2_41;
    real4 l_v3_42;
    real l_fy_43;
    real4 l_a_44;
    real l_fx_45;
    real4 l_a_46;
    real4 l_hx_47;
    real l__t_48;
    real l_score_49;
    real l_score_50;
    real2 l_x_51;
    bool l__t_52;
    bool l__t_53;
    real2 l_nd_54;
    real2 l_f_55;
    int{2} l_n_56;
    int l_ix_57;
    int l_t2_58;
    addr(IMAGE2D<float>) l_imgBaseAddr_59;
    real4 l_v0_60;
    real4 l_v1_61;
    real4 l_v2_62;
    real4 l_v3_63;
    real l_fy_64;
    real4 l_a_65;
    real4 l_a0_66;
    real4 l_a1_67;
    real4 l_a2_68;
    real4 l_a3_69;
    real l_fx_70;
    real4 l_a_71;
    real4 l_hx_72;
    real2 l_x_73;
    real2 l_nd_74;
    real2 l_f_75;
    int{2} l_n_76;
    int l_ix_77;
    int l_t2_78;
    addr(IMAGE2D<int>) l_imgBaseAddr_79;
    real4 l_v0_80;
    real4 l_v1_81;
    real4 l_v2_82;
    real4 l_v3_83;
    real l_fy_84;
    real4 l_a_85;
    real l_fx_86;
    real4 l_a_87;
    real4 l_hx_88;
    real l__t_89;
    real l_score_90;
    real l_score_91;
    real2 l_x_92;
    bool l__t_93;
    bool l__t_94;
    real2 l_nd_95;
    real2 l_f_96;
    int{2} l_n_97;
    int l_ix_98;
    int l_t2_99;
    addr(IMAGE2D<float>) l_imgBaseAddr_100;
    real4 l_v0_101;
    real4 l_v1_102;
    real4 l_v2_103;
    real4 l_v3_104;
    real l_fy_105;
    real4 l_a_106;
    real4 l_a0_107;
    real4 l_a1_108;
    real4 l_a2_109;
    real4 l_a3_110;
    real l_fx_111;
    real4 l_a_112;
    real4 l_hx_113;
    real2 l_x_114;
    real2 l_nd_115;
    real2 l_f_116;
    int{2} l_n_117;
    int l_ix_118;
    int l_t2_119;
    addr(IMAGE2D<int>) l_imgBaseAddr_120;
    real4 l_v0_121;
    real4 l_v1_122;
    real4 l_v2_123;
    real4 l_v3_124;
    real l_fy_125;
    real4 l_a_126;
    real l_fx_127;
    real4 l_a_128;
    real4 l_hx_129;
    real l__t_130;
    real l_score_131;
    real l_score_132;
    real2 l_x_133;
    bool l__t_134;
    bool l__t_135;
    real2 l_nd_136;
    real2 l_f_137;
    int{2} l_n_138;
    int l_ix_139;
    int l_t2_140;
    addr(IMAGE2D<float>) l_imgBaseAddr_141;
    real4 l_v0_142;
    real4 l_v1_143;
    real4 l_v2_144;
    real4 l_v3_145;
    real l_fy_146;
    real4 l_a_147;
    real4 l_a0_148;
    real4 l_a1_149;
    real4 l_a2_150;
    real4 l_a3_151;
    real l_fx_152;
    real4 l_a_153;
    real4 l_hx_154;
    real2 l_x_155;
    real2 l_nd_156;
    real2 l_f_157;
    int{2} l_n_158;
    int l_ix_159;
    int l_t2_160;
    addr(IMAGE2D<int>) l_imgBaseAddr_161;
    real4 l_v0_162;
    real4 l_v1_163;
    real4 l_v2_164;
    real4 l_v3_165;
    real l_fy_166;
    real4 l_a_167;
    real l_fx_168;
    real4 l_a_169;
    real4 l_hx_170;
    real l__t_171;
    real l_score_172;
    real l_score_173;
    real2 l_x_174;
    bool l__t_175;
    bool l__t_176;
    bool l__t_177;
    real2 l_nd_178;
    real2 l_f_179;
    int{2} l_n_180;
    int l_ix_181;
    int l_t2_182;
    addr(IMAGE2D<float>) l_imgBaseAddr_183;
    real4 l_v0_184;
    real4 l_v1_185;
    real4 l_v2_186;
    real4 l_v3_187;
    real l_fy_188;
    real4 l_a_189;
    real4 l_a0_190;
    real4 l_a1_191;
    real4 l_a2_192;
    real4 l_a3_193;
    real l_fx_194;
    real4 l_a_195;
    real4 l_hx_196;
    real2 l_x_197;
    real2 l_nd_198;
    real2 l_f_199;
    int{2} l_n_200;
    int l_ix_201;
    int l_t2_202;
    addr(IMAGE2D<int>) l_imgBaseAddr_203;
    real4 l_v0_204;
    real4 l_v1_205;
    real4 l_v2_206;
    real4 l_v3_207;
    real l_fy_208;
    real4 l_a_209;
    real l_fx_210;
    real4 l_a_211;
    real4 l_hx_212;
    real l__t_213;
    real l_score_214;
    real l_score_215;
    real2 l_x_216;
    bool l__t_217;
    bool l__t_218;
    real2 l_nd_219;
    real2 l_f_220;
    int{2} l_n_221;
    int l_ix_222;
    int l_t2_223;
    addr(IMAGE2D<float>) l_imgBaseAddr_224;
    real4 l_v0_225;
    real4 l_v1_226;
    real4 l_v2_227;
    real4 l_v3_228;
    real l_fy_229;
    real4 l_a_230;
    real4 l_a0_231;
    real4 l_a1_232;
    real4 l_a2_233;
    real4 l_a3_234;
    real l_fx_235;
    real4 l_a_236;
    real4 l_hx_237;
    real2 l_x_238;
    real2 l_nd_239;
    real2 l_f_240;
    int{2} l_n_241;
    int l_ix_242;
    int l_t2_243;
    addr(IMAGE2D<int>) l_imgBaseAddr_244;
    real4 l_v0_245;
    real4 l_v1_246;
    real4 l_v2_247;
    real4 l_v3_248;
    real l_fy_249;
    real4 l_a_250;
    real l_fx_251;
    real4 l_a_252;
    real4 l_hx_253;
    real l__t_254;
    real l_score_255;
    real l_score_256;
    real2 l_x_257;
    bool l__t_258;
    bool l__t_259;
    real2 l_nd_260;
    real2 l_f_261;
    int{2} l_n_262;
    int l_ix_263;
    int l_t2_264;
    addr(IMAGE2D<float>) l_imgBaseAddr_265;
    real4 l_v0_266;
    real4 l_v1_267;
    real4 l_v2_268;
    real4 l_v3_269;
    real l_fy_270;
    real4 l_a_271;
    real4 l_a0_272;
    real4 l_a1_273;
    real4 l_a2_274;
    real4 l_a3_275;
    real l_fx_276;
    real4 l_a_277;
    real4 l_hx_278;
    real2 l_x_279;
    real2 l_nd_280;
    real2 l_f_281;
    int{2} l_n_282;
    int l_ix_283;
    int l_t2_284;
    addr(IMAGE2D<int>) l_imgBaseAddr_285;
    real4 l_v0_286;
    real4 l_v1_287;
    real4 l_v2_288;
    real4 l_v3_289;
    real l_fy_290;
    real4 l_a_291;
    real l_fx_292;
    real4 l_a_293;
    real4 l_hx_294;
    real l__t_295;
    real l_score_296;
    real l_score_297;
    real2 l_nd_298;
    real2 l_f_299;
    int{2} l_n_300;
    int l_ix_301;
    int l_t2_302;
    addr(IMAGE2D<float>) l_imgBaseAddr_303;
    real4 l_v0_304;
    real4 l_v1_305;
    real4 l_v2_306;
    real4 l_v3_307;
    real l_fy_308;
    real4 l_a_309;
    real4 l_a0_310;
    real4 l_a1_311;
    real4 l_a2_312;
    real4 l_a3_313;
    real l_fx_314;
    real4 l_a_315;
    real4 l_hx_316;
    real2 l_x_317;
    real2 l_nd_318;
    real2 l_f_319;
    int{2} l_n_320;
    int l_ix_321;
    int l_t2_322;
    addr(IMAGE2D<int>) l_imgBaseAddr_323;
    real4 l_v0_324;
    real4 l_v1_325;
    real4 l_v2_326;
    real4 l_v3_327;
    real l_fy_328;
    real4 l_a_329;
    real l_fx_330;
    real4 l_a_331;
    real4 l_hx_332;
    real l__t_333;
    real l_score_334;
    real l_score_335;
    real2 l_x_336;
    bool l__t_337;
    bool l__t_338;
    real2 l_nd_339;
    real2 l_f_340;
    int{2} l_n_341;
    int l_ix_342;
    int l_t2_343;
    addr(IMAGE2D<float>) l_imgBaseAddr_344;
    real4 l_v0_345;
    real4 l_v1_346;
    real4 l_v2_347;
    real4 l_v3_348;
    real l_fy_349;
    real4 l_a_350;
    real4 l_a0_351;
    real4 l_a1_352;
    real4 l_a2_353;
    real4 l_a3_354;
    real l_fx_355;
    real4 l_a_356;
    real4 l_hx_357;
    real2 l_x_358;
    real2 l_nd_359;
    real2 l_f_360;
    int{2} l_n_361;
    int l_ix_362;
    int l_t2_363;
    addr(IMAGE2D<int>) l_imgBaseAddr_364;
    real4 l_v0_365;
    real4 l_v1_366;
    real4 l_v2_367;
    real4 l_v3_368;
    real l_fy_369;
    real4 l_a_370;
    real l_fx_371;
    real4 l_a_372;
    real4 l_hx_373;
    real l__t_374;
    real l_score_375;
    real l_score_376;
    real2 l_x_377;
    bool l__t_378;
    bool l__t_379;
    real2 l_nd_380;
    real2 l_f_381;
    int{2} l_n_382;
    int l_ix_383;
    int l_t2_384;
    addr(IMAGE2D<float>) l_imgBaseAddr_385;
    real4 l_v0_386;
    real4 l_v1_387;
    real4 l_v2_388;
    real4 l_v3_389;
    real l_fy_390;
    real4 l_a_391;
    real4 l_a0_392;
    real4 l_a1_393;
    real4 l_a2_394;
    real4 l_a3_395;
    real l_fx_396;
    real4 l_a_397;
    real4 l_hx_398;
    real2 l_x_399;
    real2 l_nd_400;
    real2 l_f_401;
    int{2} l_n_402;
    int l_ix_403;
    int l_t2_404;
    addr(IMAGE2D<int>) l_imgBaseAddr_405;
    real4 l_v0_406;
    real4 l_v1_407;
    real4 l_v2_408;
    real4 l_v3_409;
    real l_fy_410;
    real4 l_a_411;
    real l_fx_412;
    real4 l_a_413;
    real4 l_hx_414;
    real l__t_415;
    real l_score_416;
    real l_score_417;
    real2 l_x_418;
    bool l__t_419;
    bool l__t_420;
    real2 l_nd_421;
    real2 l_f_422;
    int{2} l_n_423;
    int l_ix_424;
    int l_t2_425;
    addr(IMAGE2D<float>) l_imgBaseAddr_426;
    real4 l_v0_427;
    real4 l_v1_428;
    real4 l_v2_429;
    real4 l_v3_430;
    real l_fy_431;
    real4 l_a_432;
    real4 l_a0_433;
    real4 l_a1_434;
    real4 l_a2_435;
    real4 l_a3_436;
    real l_fx_437;
    real4 l_a_438;
    real4 l_hx_439;
    real2 l_x_440;
    real2 l_nd_441;
    real2 l_f_442;
    int{2} l_n_443;
    int l_ix_444;
    int l_t2_445;
    addr(IMAGE2D<int>) l_imgBaseAddr_446;
    real4 l_v0_447;
    real4 l_v1_448;
    real4 l_v2_449;
    real4 l_v3_450;
    real l_fy_451;
    real4 l_a_452;
    real l_fx_453;
    real4 l_a_454;
    real4 l_hx_455;
    real l__t_456;
    real l_score_457;
    real l_score_458;
    real2 l_x_459;
    bool l__t_460;
    bool l__t_461;
    real2 l_nd_462;
    real2 l_f_463;
    int{2} l_n_464;
    int l_ix_465;
    int l_t2_466;
    addr(IMAGE2D<float>) l_imgBaseAddr_467;
    real4 l_v0_468;
    real4 l_v1_469;
    real4 l_v2_470;
    real4 l_v3_471;
    real l_fy_472;
    real4 l_a_473;
    real4 l_a0_474;
    real4 l_a1_475;
    real4 l_a2_476;
    real4 l_a3_477;
    real l_fx_478;
    real4 l_a_479;
    real4 l_hx_480;
    real2 l_x_481;
    real2 l_nd_482;
    real2 l_f_483;
    int{2} l_n_484;
    int l_ix_485;
    int l_t2_486;
    addr(IMAGE2D<int>) l_imgBaseAddr_487;
    real4 l_v0_488;
    real4 l_v1_489;
    real4 l_v2_490;
    real4 l_v3_491;
    real l_fy_492;
    real4 l_a_493;
    real l_fx_494;
    real4 l_a_495;
    real4 l_hx_496;
    real l__t_497;
    real l_score_498;
    real l_score_499;
    real2 l_x_500;
    bool l__t_501;
    bool l__t_502;
    real2 l_nd_503;
    real2 l_f_504;
    int{2} l_n_505;
    int l_ix_506;
    int l_t2_507;
    addr(IMAGE2D<float>) l_imgBaseAddr_508;
    real4 l_v0_509;
    real4 l_v1_510;
    real4 l_v2_511;
    real4 l_v3_512;
    real l_fy_513;
    real4 l_a_514;
    real4 l_a0_515;
    real4 l_a1_516;
    real4 l_a2_517;
    real4 l_a3_518;
    real l_fx_519;
    real4 l_a_520;
    real4 l_hx_521;
    real2 l_x_522;
    real2 l_nd_523;
    real2 l_f_524;
    int{2} l_n_525;
    int l_ix_526;
    int l_t2_527;
    addr(IMAGE2D<int>) l_imgBaseAddr_528;
    real4 l_v0_529;
    real4 l_v1_530;
    real4 l_v2_531;
    real4 l_v3_532;
    real l_fy_533;
    real4 l_a_534;
    real l_fx_535;
    real4 l_a_536;
    real4 l_hx_537;
    real l__t_538;
    real l_score_539;
    real l_score_540;
    real2 l_x_541;
    bool l__t_542;
    bool l__t_543;
    real2 l_nd_544;
    real2 l_f_545;
    int{2} l_n_546;
    int l_ix_547;
    int l_t2_548;
    addr(IMAGE2D<float>) l_imgBaseAddr_549;
    real4 l_v0_550;
    real4 l_v1_551;
    real4 l_v2_552;
    real4 l_v3_553;
    real l_fy_554;
    real4 l_a_555;
    real4 l_a0_556;
    real4 l_a1_557;
    real4 l_a2_558;
    real4 l_a3_559;
    real l_fx_560;
    real4 l_a_561;
    real4 l_hx_562;
    real2 l_x_563;
    real2 l_nd_564;
    real2 l_f_565;
    int{2} l_n_566;
    int l_ix_567;
    int l_t2_568;
    addr(IMAGE2D<int>) l_imgBaseAddr_569;
    real4 l_v0_570;
    real4 l_v1_571;
    real4 l_v2_572;
    real4 l_v3_573;
    real l_fy_574;
    real4 l_a_575;
    real l_fx_576;
    real4 l_a_577;
    real4 l_hx_578;
    real l__t_579;
    real l_score_580;
    real l_score_581;
    real2 l_pos_582;
    real2 l_x_583;
    bool l__t_584;
    bool l__t_585;
    real2 l_nd_586;
    real2 l_f_587;
    int{2} l_n_588;
    int l_ix_589;
    int l_t2_590;
    addr(IMAGE2D<float>) l_imgBaseAddr_591;
    real4 l_v0_592;
    real4 l_v1_593;
    real4 l_v2_594;
    real4 l_v3_595;
    real l_fy_596;
    real4 l_a_597;
    real4 l_a0_598;
    real4 l_a1_599;
    real4 l_a2_600;
    real4 l_a3_601;
    real l_fx_602;
    real4 l_a_603;
    real4 l_hx_604;
    real2 l_x_605;
    real2 l_nd_606;
    real2 l_f_607;
    int{2} l_n_608;
    int l_ix_609;
    int l_t2_610;
    addr(IMAGE2D<int>) l_imgBaseAddr_611;
    real4 l_v0_612;
    real4 l_v1_613;
    real4 l_v2_614;
    real4 l_v3_615;
    real l_fy_616;
    real4 l_a_617;
    real l_fx_618;
    real4 l_a_619;
    real4 l_hx_620;
    real l__t_621;
    real l_score_622;
    real l_score_623;
    l__t_4 = Subscript<real3>(self.t,2);
    l__t_5 = Sub<real>(0.1e1,Mul<real>(Mul<real>(0.2e1,l__t_4),l__t_4));
    l__t_6 = sqrt(Sub<real>(0.1e1,Mul<real>(l__t_4,l__t_4)));
    l_r0_7 = <real2>{l__t_5,Mul<real>(Mul<real>(Neg<real>(0.2e1),l__t_6),l__t_4)};
    l_r1_8 = <real2>{Mul<real>(Mul<real>(0.2e1,l__t_6),l__t_4),l__t_5};
    l__t_9 = <real2>{Subscript<real3>(self.t,0),Subscript<real3>(self.t,1)};
    l_x_10 = PosToImgSpace<IMAGE2D<float>>(::_t,Add<real2>(<real2>{Dot<2>(l_r0_7,::v00),Dot<2>(l_r1_8,::v00)},l__t_9));
    if (Inside<IMAGE2D<float>,2>(l_x_10,::_t)) {
      l__t_11 = Inside<IMAGE2D<int>,2>(PosToImgSpace<IMAGE2D<int>>(::_t,::v00),::_t);
      l__t_12 = l__t_11;
    } else {
      l__t_12 = false;
    }
    if (l__t_12) {
      l_nd_13 = Floor<2>(l_x_10);
      l_f_14 = Sub<real2>(l_x_10,l_nd_13);
      l_n_15 = RealToInt<2>(l_nd_13);
      l_ix_16 = Add<int>(-1,Index<int{2},0>(l_n_15));
      l_t2_17 = Index<int{2},1>(l_n_15);
      l_imgBaseAddr_18 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_19 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_18,Add<int>(l_ix_16,Mul<int>(21,Add<int>(-1,l_t2_17)))));
      l_v1_20 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_18,Add<int>(l_ix_16,Mul<int>(21,Add<int>(0,l_t2_17)))));
      l_v2_21 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_18,Add<int>(l_ix_16,Mul<int>(21,Add<int>(1,l_t2_17)))));
      l_v3_22 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_18,Add<int>(l_ix_16,Mul<int>(21,Add<int>(2,l_t2_17)))));
      l_fy_23 = Index<real2,1>(l_f_14);
      l_a_24 = <real4>{Add<real>(l_fy_23,0.1e1),l_fy_23,Sub<real>(l_fy_23,0.1e1),Sub<real>(l_fy_23,0.2e1)};
      l_a0_25 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_26 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_27 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_28 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_29 = Index<real2,0>(l_f_14);
      l_a_30 = <real4>{Add<real>(l_fx_29,0.1e1),l_fx_29,Sub<real>(l_fx_29,0.1e1),Sub<real>(l_fx_29,0.2e1)};
      l_hx_31 = Add<real4>(l_a0_25,Mul<real4>(l_a_30,Add<real4>(l_a1_26,Mul<real4>(l_a_30,Add<real4>(l_a2_27,Mul<real4>(l_a_30,l_a3_28))))));
      l_x_32 = PosToImgSpace<IMAGE2D<int>>(::_t,::v00);
      l_nd_33 = Floor<2>(l_x_32);
      l_f_34 = Sub<real2>(l_x_32,l_nd_33);
      l_n_35 = RealToInt<2>(l_nd_33);
      l_ix_36 = Add<int>(-1,Index<int{2},0>(l_n_35));
      l_t2_37 = Index<int{2},1>(l_n_35);
      l_imgBaseAddr_38 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_39 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_38,Add<int>(l_ix_36,Mul<int>(21,Add<int>(-1,l_t2_37)))));
      l_v1_40 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_38,Add<int>(l_ix_36,Mul<int>(21,Add<int>(0,l_t2_37)))));
      l_v2_41 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_38,Add<int>(l_ix_36,Mul<int>(21,Add<int>(1,l_t2_37)))));
      l_v3_42 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_38,Add<int>(l_ix_36,Mul<int>(21,Add<int>(2,l_t2_37)))));
      l_fy_43 = Index<real2,1>(l_f_34);
      l_a_44 = <real4>{Add<real>(l_fy_43,0.1e1),l_fy_43,Sub<real>(l_fy_43,0.1e1),Sub<real>(l_fy_43,0.2e1)};
      l_fx_45 = Index<real2,0>(l_f_34);
      l_a_46 = <real4>{Add<real>(l_fx_45,0.1e1),l_fx_45,Sub<real>(l_fx_45,0.1e1),Sub<real>(l_fx_45,0.2e1)};
      l_hx_47 = Add<real4>(l_a0_25,Mul<real4>(l_a_46,Add<real4>(l_a1_26,Mul<real4>(l_a_46,Add<real4>(l_a2_27,Mul<real4>(l_a_46,l_a3_28))))));
      l__t_48 = Sub<real>(Dot<4>(Add<real4>(l_a0_25,Mul<real4>(l_a_24,Add<real4>(l_a1_26,Mul<real4>(l_a_24,Add<real4>(l_a2_27,Mul<real4>(l_a_24,l_a3_28)))))),<real4>{Dot<4>(l_v0_19,l_hx_31),Dot<4>(l_v1_20,l_hx_31),Dot<4>(l_v2_21,l_hx_31),Dot<4>(l_v3_22,l_hx_31)}),Dot<4>(Add<real4>(l_a0_25,Mul<real4>(l_a_44,Add<real4>(l_a1_26,Mul<real4>(l_a_44,Add<real4>(l_a2_27,Mul<real4>(l_a_44,l_a3_28)))))),<real4>{Dot<4>(l_v0_39,l_hx_47),Dot<4>(l_v1_40,l_hx_47),Dot<4>(l_v2_41,l_hx_47),Dot<4>(l_v3_42,l_hx_47)}));
      l_score_49 = Add<real>(self.score,Mul<real>(l__t_48,l__t_48));
      l_score_50 = l_score_49;
    } else {
      l_score_50 = self.score;
    }
    l_x_51 = PosToImgSpace<IMAGE2D<float>>(::_t,Add<real2>(<real2>{Dot<2>(l_r0_7,::v01),Dot<2>(l_r1_8,::v01)},l__t_9));
    if (Inside<IMAGE2D<float>,2>(l_x_51,::_t)) {
      l__t_52 = Inside<IMAGE2D<int>,2>(PosToImgSpace<IMAGE2D<int>>(::_t,::v01),::_t);
      l__t_53 = l__t_52;
    } else {
      l__t_53 = false;
    }
    if (l__t_53) {
      l_nd_54 = Floor<2>(l_x_51);
      l_f_55 = Sub<real2>(l_x_51,l_nd_54);
      l_n_56 = RealToInt<2>(l_nd_54);
      l_ix_57 = Add<int>(-1,Index<int{2},0>(l_n_56));
      l_t2_58 = Index<int{2},1>(l_n_56);
      l_imgBaseAddr_59 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_60 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_59,Add<int>(l_ix_57,Mul<int>(21,Add<int>(-1,l_t2_58)))));
      l_v1_61 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_59,Add<int>(l_ix_57,Mul<int>(21,Add<int>(0,l_t2_58)))));
      l_v2_62 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_59,Add<int>(l_ix_57,Mul<int>(21,Add<int>(1,l_t2_58)))));
      l_v3_63 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_59,Add<int>(l_ix_57,Mul<int>(21,Add<int>(2,l_t2_58)))));
      l_fy_64 = Index<real2,1>(l_f_55);
      l_a_65 = <real4>{Add<real>(l_fy_64,0.1e1),l_fy_64,Sub<real>(l_fy_64,0.1e1),Sub<real>(l_fy_64,0.2e1)};
      l_a0_66 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_67 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_68 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_69 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_70 = Index<real2,0>(l_f_55);
      l_a_71 = <real4>{Add<real>(l_fx_70,0.1e1),l_fx_70,Sub<real>(l_fx_70,0.1e1),Sub<real>(l_fx_70,0.2e1)};
      l_hx_72 = Add<real4>(l_a0_66,Mul<real4>(l_a_71,Add<real4>(l_a1_67,Mul<real4>(l_a_71,Add<real4>(l_a2_68,Mul<real4>(l_a_71,l_a3_69))))));
      l_x_73 = PosToImgSpace<IMAGE2D<int>>(::_t,::v01);
      l_nd_74 = Floor<2>(l_x_73);
      l_f_75 = Sub<real2>(l_x_73,l_nd_74);
      l_n_76 = RealToInt<2>(l_nd_74);
      l_ix_77 = Add<int>(-1,Index<int{2},0>(l_n_76));
      l_t2_78 = Index<int{2},1>(l_n_76);
      l_imgBaseAddr_79 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_80 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_79,Add<int>(l_ix_77,Mul<int>(21,Add<int>(-1,l_t2_78)))));
      l_v1_81 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_79,Add<int>(l_ix_77,Mul<int>(21,Add<int>(0,l_t2_78)))));
      l_v2_82 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_79,Add<int>(l_ix_77,Mul<int>(21,Add<int>(1,l_t2_78)))));
      l_v3_83 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_79,Add<int>(l_ix_77,Mul<int>(21,Add<int>(2,l_t2_78)))));
      l_fy_84 = Index<real2,1>(l_f_75);
      l_a_85 = <real4>{Add<real>(l_fy_84,0.1e1),l_fy_84,Sub<real>(l_fy_84,0.1e1),Sub<real>(l_fy_84,0.2e1)};
      l_fx_86 = Index<real2,0>(l_f_75);
      l_a_87 = <real4>{Add<real>(l_fx_86,0.1e1),l_fx_86,Sub<real>(l_fx_86,0.1e1),Sub<real>(l_fx_86,0.2e1)};
      l_hx_88 = Add<real4>(l_a0_66,Mul<real4>(l_a_87,Add<real4>(l_a1_67,Mul<real4>(l_a_87,Add<real4>(l_a2_68,Mul<real4>(l_a_87,l_a3_69))))));
      l__t_89 = Sub<real>(Dot<4>(Add<real4>(l_a0_66,Mul<real4>(l_a_65,Add<real4>(l_a1_67,Mul<real4>(l_a_65,Add<real4>(l_a2_68,Mul<real4>(l_a_65,l_a3_69)))))),<real4>{Dot<4>(l_v0_60,l_hx_72),Dot<4>(l_v1_61,l_hx_72),Dot<4>(l_v2_62,l_hx_72),Dot<4>(l_v3_63,l_hx_72)}),Dot<4>(Add<real4>(l_a0_66,Mul<real4>(l_a_85,Add<real4>(l_a1_67,Mul<real4>(l_a_85,Add<real4>(l_a2_68,Mul<real4>(l_a_85,l_a3_69)))))),<real4>{Dot<4>(l_v0_80,l_hx_88),Dot<4>(l_v1_81,l_hx_88),Dot<4>(l_v2_82,l_hx_88),Dot<4>(l_v3_83,l_hx_88)}));
      l_score_90 = Add<real>(l_score_50,Mul<real>(l__t_89,l__t_89));
      l_score_91 = l_score_90;
    } else {
      l_score_91 = l_score_50;
    }
    l_x_92 = PosToImgSpace<IMAGE2D<float>>(::_t,Add<real2>(<real2>{Dot<2>(l_r0_7,::v02),Dot<2>(l_r1_8,::v02)},l__t_9));
    if (Inside<IMAGE2D<float>,2>(l_x_92,::_t)) {
      l__t_93 = Inside<IMAGE2D<int>,2>(PosToImgSpace<IMAGE2D<int>>(::_t,::v02),::_t);
      l__t_94 = l__t_93;
    } else {
      l__t_94 = false;
    }
    if (l__t_94) {
      l_nd_95 = Floor<2>(l_x_92);
      l_f_96 = Sub<real2>(l_x_92,l_nd_95);
      l_n_97 = RealToInt<2>(l_nd_95);
      l_ix_98 = Add<int>(-1,Index<int{2},0>(l_n_97));
      l_t2_99 = Index<int{2},1>(l_n_97);
      l_imgBaseAddr_100 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_101 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_100,Add<int>(l_ix_98,Mul<int>(21,Add<int>(-1,l_t2_99)))));
      l_v1_102 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_100,Add<int>(l_ix_98,Mul<int>(21,Add<int>(0,l_t2_99)))));
      l_v2_103 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_100,Add<int>(l_ix_98,Mul<int>(21,Add<int>(1,l_t2_99)))));
      l_v3_104 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_100,Add<int>(l_ix_98,Mul<int>(21,Add<int>(2,l_t2_99)))));
      l_fy_105 = Index<real2,1>(l_f_96);
      l_a_106 = <real4>{Add<real>(l_fy_105,0.1e1),l_fy_105,Sub<real>(l_fy_105,0.1e1),Sub<real>(l_fy_105,0.2e1)};
      l_a0_107 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_108 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_109 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_110 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_111 = Index<real2,0>(l_f_96);
      l_a_112 = <real4>{Add<real>(l_fx_111,0.1e1),l_fx_111,Sub<real>(l_fx_111,0.1e1),Sub<real>(l_fx_111,0.2e1)};
      l_hx_113 = Add<real4>(l_a0_107,Mul<real4>(l_a_112,Add<real4>(l_a1_108,Mul<real4>(l_a_112,Add<real4>(l_a2_109,Mul<real4>(l_a_112,l_a3_110))))));
      l_x_114 = PosToImgSpace<IMAGE2D<int>>(::_t,::v02);
      l_nd_115 = Floor<2>(l_x_114);
      l_f_116 = Sub<real2>(l_x_114,l_nd_115);
      l_n_117 = RealToInt<2>(l_nd_115);
      l_ix_118 = Add<int>(-1,Index<int{2},0>(l_n_117));
      l_t2_119 = Index<int{2},1>(l_n_117);
      l_imgBaseAddr_120 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_121 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_120,Add<int>(l_ix_118,Mul<int>(21,Add<int>(-1,l_t2_119)))));
      l_v1_122 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_120,Add<int>(l_ix_118,Mul<int>(21,Add<int>(0,l_t2_119)))));
      l_v2_123 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_120,Add<int>(l_ix_118,Mul<int>(21,Add<int>(1,l_t2_119)))));
      l_v3_124 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_120,Add<int>(l_ix_118,Mul<int>(21,Add<int>(2,l_t2_119)))));
      l_fy_125 = Index<real2,1>(l_f_116);
      l_a_126 = <real4>{Add<real>(l_fy_125,0.1e1),l_fy_125,Sub<real>(l_fy_125,0.1e1),Sub<real>(l_fy_125,0.2e1)};
      l_fx_127 = Index<real2,0>(l_f_116);
      l_a_128 = <real4>{Add<real>(l_fx_127,0.1e1),l_fx_127,Sub<real>(l_fx_127,0.1e1),Sub<real>(l_fx_127,0.2e1)};
      l_hx_129 = Add<real4>(l_a0_107,Mul<real4>(l_a_128,Add<real4>(l_a1_108,Mul<real4>(l_a_128,Add<real4>(l_a2_109,Mul<real4>(l_a_128,l_a3_110))))));
      l__t_130 = Sub<real>(Dot<4>(Add<real4>(l_a0_107,Mul<real4>(l_a_106,Add<real4>(l_a1_108,Mul<real4>(l_a_106,Add<real4>(l_a2_109,Mul<real4>(l_a_106,l_a3_110)))))),<real4>{Dot<4>(l_v0_101,l_hx_113),Dot<4>(l_v1_102,l_hx_113),Dot<4>(l_v2_103,l_hx_113),Dot<4>(l_v3_104,l_hx_113)}),Dot<4>(Add<real4>(l_a0_107,Mul<real4>(l_a_126,Add<real4>(l_a1_108,Mul<real4>(l_a_126,Add<real4>(l_a2_109,Mul<real4>(l_a_126,l_a3_110)))))),<real4>{Dot<4>(l_v0_121,l_hx_129),Dot<4>(l_v1_122,l_hx_129),Dot<4>(l_v2_123,l_hx_129),Dot<4>(l_v3_124,l_hx_129)}));
      l_score_131 = Add<real>(l_score_91,Mul<real>(l__t_130,l__t_130));
      l_score_132 = l_score_131;
    } else {
      l_score_132 = l_score_91;
    }
    l_x_133 = PosToImgSpace<IMAGE2D<float>>(::_t,Add<real2>(<real2>{Dot<2>(l_r0_7,::v03),Dot<2>(l_r1_8,::v03)},l__t_9));
    if (Inside<IMAGE2D<float>,2>(l_x_133,::_t)) {
      l__t_134 = Inside<IMAGE2D<int>,2>(PosToImgSpace<IMAGE2D<int>>(::_t,::v03),::_t);
      l__t_135 = l__t_134;
    } else {
      l__t_135 = false;
    }
    if (l__t_135) {
      l_nd_136 = Floor<2>(l_x_133);
      l_f_137 = Sub<real2>(l_x_133,l_nd_136);
      l_n_138 = RealToInt<2>(l_nd_136);
      l_ix_139 = Add<int>(-1,Index<int{2},0>(l_n_138));
      l_t2_140 = Index<int{2},1>(l_n_138);
      l_imgBaseAddr_141 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_142 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_141,Add<int>(l_ix_139,Mul<int>(21,Add<int>(-1,l_t2_140)))));
      l_v1_143 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_141,Add<int>(l_ix_139,Mul<int>(21,Add<int>(0,l_t2_140)))));
      l_v2_144 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_141,Add<int>(l_ix_139,Mul<int>(21,Add<int>(1,l_t2_140)))));
      l_v3_145 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_141,Add<int>(l_ix_139,Mul<int>(21,Add<int>(2,l_t2_140)))));
      l_fy_146 = Index<real2,1>(l_f_137);
      l_a_147 = <real4>{Add<real>(l_fy_146,0.1e1),l_fy_146,Sub<real>(l_fy_146,0.1e1),Sub<real>(l_fy_146,0.2e1)};
      l_a0_148 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_149 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_150 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_151 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_152 = Index<real2,0>(l_f_137);
      l_a_153 = <real4>{Add<real>(l_fx_152,0.1e1),l_fx_152,Sub<real>(l_fx_152,0.1e1),Sub<real>(l_fx_152,0.2e1)};
      l_hx_154 = Add<real4>(l_a0_148,Mul<real4>(l_a_153,Add<real4>(l_a1_149,Mul<real4>(l_a_153,Add<real4>(l_a2_150,Mul<real4>(l_a_153,l_a3_151))))));
      l_x_155 = PosToImgSpace<IMAGE2D<int>>(::_t,::v03);
      l_nd_156 = Floor<2>(l_x_155);
      l_f_157 = Sub<real2>(l_x_155,l_nd_156);
      l_n_158 = RealToInt<2>(l_nd_156);
      l_ix_159 = Add<int>(-1,Index<int{2},0>(l_n_158));
      l_t2_160 = Index<int{2},1>(l_n_158);
      l_imgBaseAddr_161 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_162 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_161,Add<int>(l_ix_159,Mul<int>(21,Add<int>(-1,l_t2_160)))));
      l_v1_163 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_161,Add<int>(l_ix_159,Mul<int>(21,Add<int>(0,l_t2_160)))));
      l_v2_164 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_161,Add<int>(l_ix_159,Mul<int>(21,Add<int>(1,l_t2_160)))));
      l_v3_165 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_161,Add<int>(l_ix_159,Mul<int>(21,Add<int>(2,l_t2_160)))));
      l_fy_166 = Index<real2,1>(l_f_157);
      l_a_167 = <real4>{Add<real>(l_fy_166,0.1e1),l_fy_166,Sub<real>(l_fy_166,0.1e1),Sub<real>(l_fy_166,0.2e1)};
      l_fx_168 = Index<real2,0>(l_f_157);
      l_a_169 = <real4>{Add<real>(l_fx_168,0.1e1),l_fx_168,Sub<real>(l_fx_168,0.1e1),Sub<real>(l_fx_168,0.2e1)};
      l_hx_170 = Add<real4>(l_a0_148,Mul<real4>(l_a_169,Add<real4>(l_a1_149,Mul<real4>(l_a_169,Add<real4>(l_a2_150,Mul<real4>(l_a_169,l_a3_151))))));
      l__t_171 = Sub<real>(Dot<4>(Add<real4>(l_a0_148,Mul<real4>(l_a_147,Add<real4>(l_a1_149,Mul<real4>(l_a_147,Add<real4>(l_a2_150,Mul<real4>(l_a_147,l_a3_151)))))),<real4>{Dot<4>(l_v0_142,l_hx_154),Dot<4>(l_v1_143,l_hx_154),Dot<4>(l_v2_144,l_hx_154),Dot<4>(l_v3_145,l_hx_154)}),Dot<4>(Add<real4>(l_a0_148,Mul<real4>(l_a_167,Add<real4>(l_a1_149,Mul<real4>(l_a_167,Add<real4>(l_a2_150,Mul<real4>(l_a_167,l_a3_151)))))),<real4>{Dot<4>(l_v0_162,l_hx_170),Dot<4>(l_v1_163,l_hx_170),Dot<4>(l_v2_164,l_hx_170),Dot<4>(l_v3_165,l_hx_170)}));
      l_score_172 = Add<real>(l_score_132,Mul<real>(l__t_171,l__t_171));
      l_score_173 = l_score_172;
    } else {
      l_score_173 = l_score_132;
    }
    l_x_174 = PosToImgSpace<IMAGE2D<float>>(::_t,Add<real2>(<real2>{Dot<2>(l_r0_7,::v04),Dot<2>(l_r1_8,::v04)},l__t_9));
    l__t_175 = Inside<IMAGE2D<float>,2>(l_x_174,::_t);
    if (l__t_175) {
      l__t_176 = Inside<IMAGE2D<int>,2>(PosToImgSpace<IMAGE2D<int>>(::_t,::v04),::_t);
      l__t_177 = l__t_176;
    } else {
      l__t_177 = false;
    }
    if (l__t_177) {
      l_nd_178 = Floor<2>(l_x_174);
      l_f_179 = Sub<real2>(l_x_174,l_nd_178);
      l_n_180 = RealToInt<2>(l_nd_178);
      l_ix_181 = Add<int>(-1,Index<int{2},0>(l_n_180));
      l_t2_182 = Index<int{2},1>(l_n_180);
      l_imgBaseAddr_183 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_184 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_183,Add<int>(l_ix_181,Mul<int>(21,Add<int>(-1,l_t2_182)))));
      l_v1_185 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_183,Add<int>(l_ix_181,Mul<int>(21,Add<int>(0,l_t2_182)))));
      l_v2_186 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_183,Add<int>(l_ix_181,Mul<int>(21,Add<int>(1,l_t2_182)))));
      l_v3_187 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_183,Add<int>(l_ix_181,Mul<int>(21,Add<int>(2,l_t2_182)))));
      l_fy_188 = Index<real2,1>(l_f_179);
      l_a_189 = <real4>{Add<real>(l_fy_188,0.1e1),l_fy_188,Sub<real>(l_fy_188,0.1e1),Sub<real>(l_fy_188,0.2e1)};
      l_a0_190 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_191 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_192 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_193 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_194 = Index<real2,0>(l_f_179);
      l_a_195 = <real4>{Add<real>(l_fx_194,0.1e1),l_fx_194,Sub<real>(l_fx_194,0.1e1),Sub<real>(l_fx_194,0.2e1)};
      l_hx_196 = Add<real4>(l_a0_190,Mul<real4>(l_a_195,Add<real4>(l_a1_191,Mul<real4>(l_a_195,Add<real4>(l_a2_192,Mul<real4>(l_a_195,l_a3_193))))));
      l_x_197 = PosToImgSpace<IMAGE2D<int>>(::_t,::v04);
      l_nd_198 = Floor<2>(l_x_197);
      l_f_199 = Sub<real2>(l_x_197,l_nd_198);
      l_n_200 = RealToInt<2>(l_nd_198);
      l_ix_201 = Add<int>(-1,Index<int{2},0>(l_n_200));
      l_t2_202 = Index<int{2},1>(l_n_200);
      l_imgBaseAddr_203 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_204 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_203,Add<int>(l_ix_201,Mul<int>(21,Add<int>(-1,l_t2_202)))));
      l_v1_205 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_203,Add<int>(l_ix_201,Mul<int>(21,Add<int>(0,l_t2_202)))));
      l_v2_206 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_203,Add<int>(l_ix_201,Mul<int>(21,Add<int>(1,l_t2_202)))));
      l_v3_207 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_203,Add<int>(l_ix_201,Mul<int>(21,Add<int>(2,l_t2_202)))));
      l_fy_208 = Index<real2,1>(l_f_199);
      l_a_209 = <real4>{Add<real>(l_fy_208,0.1e1),l_fy_208,Sub<real>(l_fy_208,0.1e1),Sub<real>(l_fy_208,0.2e1)};
      l_fx_210 = Index<real2,0>(l_f_199);
      l_a_211 = <real4>{Add<real>(l_fx_210,0.1e1),l_fx_210,Sub<real>(l_fx_210,0.1e1),Sub<real>(l_fx_210,0.2e1)};
      l_hx_212 = Add<real4>(l_a0_190,Mul<real4>(l_a_211,Add<real4>(l_a1_191,Mul<real4>(l_a_211,Add<real4>(l_a2_192,Mul<real4>(l_a_211,l_a3_193))))));
      l__t_213 = Sub<real>(Dot<4>(Add<real4>(l_a0_190,Mul<real4>(l_a_189,Add<real4>(l_a1_191,Mul<real4>(l_a_189,Add<real4>(l_a2_192,Mul<real4>(l_a_189,l_a3_193)))))),<real4>{Dot<4>(l_v0_184,l_hx_196),Dot<4>(l_v1_185,l_hx_196),Dot<4>(l_v2_186,l_hx_196),Dot<4>(l_v3_187,l_hx_196)}),Dot<4>(Add<real4>(l_a0_190,Mul<real4>(l_a_209,Add<real4>(l_a1_191,Mul<real4>(l_a_209,Add<real4>(l_a2_192,Mul<real4>(l_a_209,l_a3_193)))))),<real4>{Dot<4>(l_v0_204,l_hx_212),Dot<4>(l_v1_205,l_hx_212),Dot<4>(l_v2_206,l_hx_212),Dot<4>(l_v3_207,l_hx_212)}));
      l_score_214 = Add<real>(l_score_173,Mul<real>(l__t_213,l__t_213));
      l_score_215 = l_score_214;
    } else {
      l_score_215 = l_score_173;
    }
    l_x_216 = PosToImgSpace<IMAGE2D<float>>(::_t,Add<real2>(<real2>{Dot<2>(l_r0_7,::v05),Dot<2>(l_r1_8,::v05)},l__t_9));
    if (Inside<IMAGE2D<float>,2>(l_x_216,::_t)) {
      l__t_217 = Inside<IMAGE2D<int>,2>(PosToImgSpace<IMAGE2D<int>>(::_t,::v05),::_t);
      l__t_218 = l__t_217;
    } else {
      l__t_218 = false;
    }
    if (l__t_218) {
      l_nd_219 = Floor<2>(l_x_216);
      l_f_220 = Sub<real2>(l_x_216,l_nd_219);
      l_n_221 = RealToInt<2>(l_nd_219);
      l_ix_222 = Add<int>(-1,Index<int{2},0>(l_n_221));
      l_t2_223 = Index<int{2},1>(l_n_221);
      l_imgBaseAddr_224 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_225 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_224,Add<int>(l_ix_222,Mul<int>(21,Add<int>(-1,l_t2_223)))));
      l_v1_226 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_224,Add<int>(l_ix_222,Mul<int>(21,Add<int>(0,l_t2_223)))));
      l_v2_227 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_224,Add<int>(l_ix_222,Mul<int>(21,Add<int>(1,l_t2_223)))));
      l_v3_228 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_224,Add<int>(l_ix_222,Mul<int>(21,Add<int>(2,l_t2_223)))));
      l_fy_229 = Index<real2,1>(l_f_220);
      l_a_230 = <real4>{Add<real>(l_fy_229,0.1e1),l_fy_229,Sub<real>(l_fy_229,0.1e1),Sub<real>(l_fy_229,0.2e1)};
      l_a0_231 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_232 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_233 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_234 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_235 = Index<real2,0>(l_f_220);
      l_a_236 = <real4>{Add<real>(l_fx_235,0.1e1),l_fx_235,Sub<real>(l_fx_235,0.1e1),Sub<real>(l_fx_235,0.2e1)};
      l_hx_237 = Add<real4>(l_a0_231,Mul<real4>(l_a_236,Add<real4>(l_a1_232,Mul<real4>(l_a_236,Add<real4>(l_a2_233,Mul<real4>(l_a_236,l_a3_234))))));
      l_x_238 = PosToImgSpace<IMAGE2D<int>>(::_t,::v05);
      l_nd_239 = Floor<2>(l_x_238);
      l_f_240 = Sub<real2>(l_x_238,l_nd_239);
      l_n_241 = RealToInt<2>(l_nd_239);
      l_ix_242 = Add<int>(-1,Index<int{2},0>(l_n_241));
      l_t2_243 = Index<int{2},1>(l_n_241);
      l_imgBaseAddr_244 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_245 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_244,Add<int>(l_ix_242,Mul<int>(21,Add<int>(-1,l_t2_243)))));
      l_v1_246 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_244,Add<int>(l_ix_242,Mul<int>(21,Add<int>(0,l_t2_243)))));
      l_v2_247 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_244,Add<int>(l_ix_242,Mul<int>(21,Add<int>(1,l_t2_243)))));
      l_v3_248 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_244,Add<int>(l_ix_242,Mul<int>(21,Add<int>(2,l_t2_243)))));
      l_fy_249 = Index<real2,1>(l_f_240);
      l_a_250 = <real4>{Add<real>(l_fy_249,0.1e1),l_fy_249,Sub<real>(l_fy_249,0.1e1),Sub<real>(l_fy_249,0.2e1)};
      l_fx_251 = Index<real2,0>(l_f_240);
      l_a_252 = <real4>{Add<real>(l_fx_251,0.1e1),l_fx_251,Sub<real>(l_fx_251,0.1e1),Sub<real>(l_fx_251,0.2e1)};
      l_hx_253 = Add<real4>(l_a0_231,Mul<real4>(l_a_252,Add<real4>(l_a1_232,Mul<real4>(l_a_252,Add<real4>(l_a2_233,Mul<real4>(l_a_252,l_a3_234))))));
      l__t_254 = Sub<real>(Dot<4>(Add<real4>(l_a0_231,Mul<real4>(l_a_230,Add<real4>(l_a1_232,Mul<real4>(l_a_230,Add<real4>(l_a2_233,Mul<real4>(l_a_230,l_a3_234)))))),<real4>{Dot<4>(l_v0_225,l_hx_237),Dot<4>(l_v1_226,l_hx_237),Dot<4>(l_v2_227,l_hx_237),Dot<4>(l_v3_228,l_hx_237)}),Dot<4>(Add<real4>(l_a0_231,Mul<real4>(l_a_250,Add<real4>(l_a1_232,Mul<real4>(l_a_250,Add<real4>(l_a2_233,Mul<real4>(l_a_250,l_a3_234)))))),<real4>{Dot<4>(l_v0_245,l_hx_253),Dot<4>(l_v1_246,l_hx_253),Dot<4>(l_v2_247,l_hx_253),Dot<4>(l_v3_248,l_hx_253)}));
      l_score_255 = Add<real>(l_score_215,Mul<real>(l__t_254,l__t_254));
      l_score_256 = l_score_255;
    } else {
      l_score_256 = l_score_215;
    }
    l_x_257 = PosToImgSpace<IMAGE2D<float>>(::_t,Add<real2>(<real2>{Dot<2>(l_r0_7,::v06),Dot<2>(l_r1_8,::v06)},l__t_9));
    if (Inside<IMAGE2D<float>,2>(l_x_257,::_t)) {
      l__t_258 = Inside<IMAGE2D<int>,2>(PosToImgSpace<IMAGE2D<int>>(::_t,::v06),::_t);
      l__t_259 = l__t_258;
    } else {
      l__t_259 = false;
    }
    if (l__t_259) {
      l_nd_260 = Floor<2>(l_x_257);
      l_f_261 = Sub<real2>(l_x_257,l_nd_260);
      l_n_262 = RealToInt<2>(l_nd_260);
      l_ix_263 = Add<int>(-1,Index<int{2},0>(l_n_262));
      l_t2_264 = Index<int{2},1>(l_n_262);
      l_imgBaseAddr_265 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_266 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_265,Add<int>(l_ix_263,Mul<int>(21,Add<int>(-1,l_t2_264)))));
      l_v1_267 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_265,Add<int>(l_ix_263,Mul<int>(21,Add<int>(0,l_t2_264)))));
      l_v2_268 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_265,Add<int>(l_ix_263,Mul<int>(21,Add<int>(1,l_t2_264)))));
      l_v3_269 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_265,Add<int>(l_ix_263,Mul<int>(21,Add<int>(2,l_t2_264)))));
      l_fy_270 = Index<real2,1>(l_f_261);
      l_a_271 = <real4>{Add<real>(l_fy_270,0.1e1),l_fy_270,Sub<real>(l_fy_270,0.1e1),Sub<real>(l_fy_270,0.2e1)};
      l_a0_272 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_273 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_274 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_275 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_276 = Index<real2,0>(l_f_261);
      l_a_277 = <real4>{Add<real>(l_fx_276,0.1e1),l_fx_276,Sub<real>(l_fx_276,0.1e1),Sub<real>(l_fx_276,0.2e1)};
      l_hx_278 = Add<real4>(l_a0_272,Mul<real4>(l_a_277,Add<real4>(l_a1_273,Mul<real4>(l_a_277,Add<real4>(l_a2_274,Mul<real4>(l_a_277,l_a3_275))))));
      l_x_279 = PosToImgSpace<IMAGE2D<int>>(::_t,::v06);
      l_nd_280 = Floor<2>(l_x_279);
      l_f_281 = Sub<real2>(l_x_279,l_nd_280);
      l_n_282 = RealToInt<2>(l_nd_280);
      l_ix_283 = Add<int>(-1,Index<int{2},0>(l_n_282));
      l_t2_284 = Index<int{2},1>(l_n_282);
      l_imgBaseAddr_285 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_286 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_285,Add<int>(l_ix_283,Mul<int>(21,Add<int>(-1,l_t2_284)))));
      l_v1_287 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_285,Add<int>(l_ix_283,Mul<int>(21,Add<int>(0,l_t2_284)))));
      l_v2_288 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_285,Add<int>(l_ix_283,Mul<int>(21,Add<int>(1,l_t2_284)))));
      l_v3_289 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_285,Add<int>(l_ix_283,Mul<int>(21,Add<int>(2,l_t2_284)))));
      l_fy_290 = Index<real2,1>(l_f_281);
      l_a_291 = <real4>{Add<real>(l_fy_290,0.1e1),l_fy_290,Sub<real>(l_fy_290,0.1e1),Sub<real>(l_fy_290,0.2e1)};
      l_fx_292 = Index<real2,0>(l_f_281);
      l_a_293 = <real4>{Add<real>(l_fx_292,0.1e1),l_fx_292,Sub<real>(l_fx_292,0.1e1),Sub<real>(l_fx_292,0.2e1)};
      l_hx_294 = Add<real4>(l_a0_272,Mul<real4>(l_a_293,Add<real4>(l_a1_273,Mul<real4>(l_a_293,Add<real4>(l_a2_274,Mul<real4>(l_a_293,l_a3_275))))));
      l__t_295 = Sub<real>(Dot<4>(Add<real4>(l_a0_272,Mul<real4>(l_a_271,Add<real4>(l_a1_273,Mul<real4>(l_a_271,Add<real4>(l_a2_274,Mul<real4>(l_a_271,l_a3_275)))))),<real4>{Dot<4>(l_v0_266,l_hx_278),Dot<4>(l_v1_267,l_hx_278),Dot<4>(l_v2_268,l_hx_278),Dot<4>(l_v3_269,l_hx_278)}),Dot<4>(Add<real4>(l_a0_272,Mul<real4>(l_a_291,Add<real4>(l_a1_273,Mul<real4>(l_a_291,Add<real4>(l_a2_274,Mul<real4>(l_a_291,l_a3_275)))))),<real4>{Dot<4>(l_v0_286,l_hx_294),Dot<4>(l_v1_287,l_hx_294),Dot<4>(l_v2_288,l_hx_294),Dot<4>(l_v3_289,l_hx_294)}));
      l_score_296 = Add<real>(l_score_256,Mul<real>(l__t_295,l__t_295));
      l_score_297 = l_score_296;
    } else {
      l_score_297 = l_score_256;
    }
    if (l__t_175) {
    }
    if (l__t_177) {
      l_nd_298 = Floor<2>(l_x_174);
      l_f_299 = Sub<real2>(l_x_174,l_nd_298);
      l_n_300 = RealToInt<2>(l_nd_298);
      l_ix_301 = Add<int>(-1,Index<int{2},0>(l_n_300));
      l_t2_302 = Index<int{2},1>(l_n_300);
      l_imgBaseAddr_303 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_304 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_303,Add<int>(l_ix_301,Mul<int>(21,Add<int>(-1,l_t2_302)))));
      l_v1_305 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_303,Add<int>(l_ix_301,Mul<int>(21,Add<int>(0,l_t2_302)))));
      l_v2_306 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_303,Add<int>(l_ix_301,Mul<int>(21,Add<int>(1,l_t2_302)))));
      l_v3_307 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_303,Add<int>(l_ix_301,Mul<int>(21,Add<int>(2,l_t2_302)))));
      l_fy_308 = Index<real2,1>(l_f_299);
      l_a_309 = <real4>{Add<real>(l_fy_308,0.1e1),l_fy_308,Sub<real>(l_fy_308,0.1e1),Sub<real>(l_fy_308,0.2e1)};
      l_a0_310 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_311 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_312 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_313 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_314 = Index<real2,0>(l_f_299);
      l_a_315 = <real4>{Add<real>(l_fx_314,0.1e1),l_fx_314,Sub<real>(l_fx_314,0.1e1),Sub<real>(l_fx_314,0.2e1)};
      l_hx_316 = Add<real4>(l_a0_310,Mul<real4>(l_a_315,Add<real4>(l_a1_311,Mul<real4>(l_a_315,Add<real4>(l_a2_312,Mul<real4>(l_a_315,l_a3_313))))));
      l_x_317 = PosToImgSpace<IMAGE2D<int>>(::_t,::v04);
      l_nd_318 = Floor<2>(l_x_317);
      l_f_319 = Sub<real2>(l_x_317,l_nd_318);
      l_n_320 = RealToInt<2>(l_nd_318);
      l_ix_321 = Add<int>(-1,Index<int{2},0>(l_n_320));
      l_t2_322 = Index<int{2},1>(l_n_320);
      l_imgBaseAddr_323 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_324 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_323,Add<int>(l_ix_321,Mul<int>(21,Add<int>(-1,l_t2_322)))));
      l_v1_325 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_323,Add<int>(l_ix_321,Mul<int>(21,Add<int>(0,l_t2_322)))));
      l_v2_326 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_323,Add<int>(l_ix_321,Mul<int>(21,Add<int>(1,l_t2_322)))));
      l_v3_327 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_323,Add<int>(l_ix_321,Mul<int>(21,Add<int>(2,l_t2_322)))));
      l_fy_328 = Index<real2,1>(l_f_319);
      l_a_329 = <real4>{Add<real>(l_fy_328,0.1e1),l_fy_328,Sub<real>(l_fy_328,0.1e1),Sub<real>(l_fy_328,0.2e1)};
      l_fx_330 = Index<real2,0>(l_f_319);
      l_a_331 = <real4>{Add<real>(l_fx_330,0.1e1),l_fx_330,Sub<real>(l_fx_330,0.1e1),Sub<real>(l_fx_330,0.2e1)};
      l_hx_332 = Add<real4>(l_a0_310,Mul<real4>(l_a_331,Add<real4>(l_a1_311,Mul<real4>(l_a_331,Add<real4>(l_a2_312,Mul<real4>(l_a_331,l_a3_313))))));
      l__t_333 = Sub<real>(Dot<4>(Add<real4>(l_a0_310,Mul<real4>(l_a_309,Add<real4>(l_a1_311,Mul<real4>(l_a_309,Add<real4>(l_a2_312,Mul<real4>(l_a_309,l_a3_313)))))),<real4>{Dot<4>(l_v0_304,l_hx_316),Dot<4>(l_v1_305,l_hx_316),Dot<4>(l_v2_306,l_hx_316),Dot<4>(l_v3_307,l_hx_316)}),Dot<4>(Add<real4>(l_a0_310,Mul<real4>(l_a_329,Add<real4>(l_a1_311,Mul<real4>(l_a_329,Add<real4>(l_a2_312,Mul<real4>(l_a_329,l_a3_313)))))),<real4>{Dot<4>(l_v0_324,l_hx_332),Dot<4>(l_v1_325,l_hx_332),Dot<4>(l_v2_326,l_hx_332),Dot<4>(l_v3_327,l_hx_332)}));
      l_score_334 = Add<real>(l_score_297,Mul<real>(l__t_333,l__t_333));
      l_score_335 = l_score_334;
    } else {
      l_score_335 = l_score_297;
    }
    l_x_336 = PosToImgSpace<IMAGE2D<float>>(::_t,Add<real2>(<real2>{Dot<2>(l_r0_7,::v08),Dot<2>(l_r1_8,::v08)},l__t_9));
    if (Inside<IMAGE2D<float>,2>(l_x_336,::_t)) {
      l__t_337 = Inside<IMAGE2D<int>,2>(PosToImgSpace<IMAGE2D<int>>(::_t,::v08),::_t);
      l__t_338 = l__t_337;
    } else {
      l__t_338 = false;
    }
    if (l__t_338) {
      l_nd_339 = Floor<2>(l_x_336);
      l_f_340 = Sub<real2>(l_x_336,l_nd_339);
      l_n_341 = RealToInt<2>(l_nd_339);
      l_ix_342 = Add<int>(-1,Index<int{2},0>(l_n_341));
      l_t2_343 = Index<int{2},1>(l_n_341);
      l_imgBaseAddr_344 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_345 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_344,Add<int>(l_ix_342,Mul<int>(21,Add<int>(-1,l_t2_343)))));
      l_v1_346 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_344,Add<int>(l_ix_342,Mul<int>(21,Add<int>(0,l_t2_343)))));
      l_v2_347 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_344,Add<int>(l_ix_342,Mul<int>(21,Add<int>(1,l_t2_343)))));
      l_v3_348 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_344,Add<int>(l_ix_342,Mul<int>(21,Add<int>(2,l_t2_343)))));
      l_fy_349 = Index<real2,1>(l_f_340);
      l_a_350 = <real4>{Add<real>(l_fy_349,0.1e1),l_fy_349,Sub<real>(l_fy_349,0.1e1),Sub<real>(l_fy_349,0.2e1)};
      l_a0_351 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_352 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_353 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_354 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_355 = Index<real2,0>(l_f_340);
      l_a_356 = <real4>{Add<real>(l_fx_355,0.1e1),l_fx_355,Sub<real>(l_fx_355,0.1e1),Sub<real>(l_fx_355,0.2e1)};
      l_hx_357 = Add<real4>(l_a0_351,Mul<real4>(l_a_356,Add<real4>(l_a1_352,Mul<real4>(l_a_356,Add<real4>(l_a2_353,Mul<real4>(l_a_356,l_a3_354))))));
      l_x_358 = PosToImgSpace<IMAGE2D<int>>(::_t,::v08);
      l_nd_359 = Floor<2>(l_x_358);
      l_f_360 = Sub<real2>(l_x_358,l_nd_359);
      l_n_361 = RealToInt<2>(l_nd_359);
      l_ix_362 = Add<int>(-1,Index<int{2},0>(l_n_361));
      l_t2_363 = Index<int{2},1>(l_n_361);
      l_imgBaseAddr_364 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_365 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_364,Add<int>(l_ix_362,Mul<int>(21,Add<int>(-1,l_t2_363)))));
      l_v1_366 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_364,Add<int>(l_ix_362,Mul<int>(21,Add<int>(0,l_t2_363)))));
      l_v2_367 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_364,Add<int>(l_ix_362,Mul<int>(21,Add<int>(1,l_t2_363)))));
      l_v3_368 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_364,Add<int>(l_ix_362,Mul<int>(21,Add<int>(2,l_t2_363)))));
      l_fy_369 = Index<real2,1>(l_f_360);
      l_a_370 = <real4>{Add<real>(l_fy_369,0.1e1),l_fy_369,Sub<real>(l_fy_369,0.1e1),Sub<real>(l_fy_369,0.2e1)};
      l_fx_371 = Index<real2,0>(l_f_360);
      l_a_372 = <real4>{Add<real>(l_fx_371,0.1e1),l_fx_371,Sub<real>(l_fx_371,0.1e1),Sub<real>(l_fx_371,0.2e1)};
      l_hx_373 = Add<real4>(l_a0_351,Mul<real4>(l_a_372,Add<real4>(l_a1_352,Mul<real4>(l_a_372,Add<real4>(l_a2_353,Mul<real4>(l_a_372,l_a3_354))))));
      l__t_374 = Sub<real>(Dot<4>(Add<real4>(l_a0_351,Mul<real4>(l_a_350,Add<real4>(l_a1_352,Mul<real4>(l_a_350,Add<real4>(l_a2_353,Mul<real4>(l_a_350,l_a3_354)))))),<real4>{Dot<4>(l_v0_345,l_hx_357),Dot<4>(l_v1_346,l_hx_357),Dot<4>(l_v2_347,l_hx_357),Dot<4>(l_v3_348,l_hx_357)}),Dot<4>(Add<real4>(l_a0_351,Mul<real4>(l_a_370,Add<real4>(l_a1_352,Mul<real4>(l_a_370,Add<real4>(l_a2_353,Mul<real4>(l_a_370,l_a3_354)))))),<real4>{Dot<4>(l_v0_365,l_hx_373),Dot<4>(l_v1_366,l_hx_373),Dot<4>(l_v2_367,l_hx_373),Dot<4>(l_v3_368,l_hx_373)}));
      l_score_375 = Add<real>(l_score_335,Mul<real>(l__t_374,l__t_374));
      l_score_376 = l_score_375;
    } else {
      l_score_376 = l_score_335;
    }
    l_x_377 = PosToImgSpace<IMAGE2D<float>>(::_t,Add<real2>(<real2>{Dot<2>(l_r0_7,::v09),Dot<2>(l_r1_8,::v09)},l__t_9));
    if (Inside<IMAGE2D<float>,2>(l_x_377,::_t)) {
      l__t_378 = Inside<IMAGE2D<int>,2>(PosToImgSpace<IMAGE2D<int>>(::_t,::v09),::_t);
      l__t_379 = l__t_378;
    } else {
      l__t_379 = false;
    }
    if (l__t_379) {
      l_nd_380 = Floor<2>(l_x_377);
      l_f_381 = Sub<real2>(l_x_377,l_nd_380);
      l_n_382 = RealToInt<2>(l_nd_380);
      l_ix_383 = Add<int>(-1,Index<int{2},0>(l_n_382));
      l_t2_384 = Index<int{2},1>(l_n_382);
      l_imgBaseAddr_385 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_386 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_385,Add<int>(l_ix_383,Mul<int>(21,Add<int>(-1,l_t2_384)))));
      l_v1_387 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_385,Add<int>(l_ix_383,Mul<int>(21,Add<int>(0,l_t2_384)))));
      l_v2_388 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_385,Add<int>(l_ix_383,Mul<int>(21,Add<int>(1,l_t2_384)))));
      l_v3_389 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_385,Add<int>(l_ix_383,Mul<int>(21,Add<int>(2,l_t2_384)))));
      l_fy_390 = Index<real2,1>(l_f_381);
      l_a_391 = <real4>{Add<real>(l_fy_390,0.1e1),l_fy_390,Sub<real>(l_fy_390,0.1e1),Sub<real>(l_fy_390,0.2e1)};
      l_a0_392 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_393 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_394 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_395 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_396 = Index<real2,0>(l_f_381);
      l_a_397 = <real4>{Add<real>(l_fx_396,0.1e1),l_fx_396,Sub<real>(l_fx_396,0.1e1),Sub<real>(l_fx_396,0.2e1)};
      l_hx_398 = Add<real4>(l_a0_392,Mul<real4>(l_a_397,Add<real4>(l_a1_393,Mul<real4>(l_a_397,Add<real4>(l_a2_394,Mul<real4>(l_a_397,l_a3_395))))));
      l_x_399 = PosToImgSpace<IMAGE2D<int>>(::_t,::v09);
      l_nd_400 = Floor<2>(l_x_399);
      l_f_401 = Sub<real2>(l_x_399,l_nd_400);
      l_n_402 = RealToInt<2>(l_nd_400);
      l_ix_403 = Add<int>(-1,Index<int{2},0>(l_n_402));
      l_t2_404 = Index<int{2},1>(l_n_402);
      l_imgBaseAddr_405 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_406 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_405,Add<int>(l_ix_403,Mul<int>(21,Add<int>(-1,l_t2_404)))));
      l_v1_407 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_405,Add<int>(l_ix_403,Mul<int>(21,Add<int>(0,l_t2_404)))));
      l_v2_408 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_405,Add<int>(l_ix_403,Mul<int>(21,Add<int>(1,l_t2_404)))));
      l_v3_409 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_405,Add<int>(l_ix_403,Mul<int>(21,Add<int>(2,l_t2_404)))));
      l_fy_410 = Index<real2,1>(l_f_401);
      l_a_411 = <real4>{Add<real>(l_fy_410,0.1e1),l_fy_410,Sub<real>(l_fy_410,0.1e1),Sub<real>(l_fy_410,0.2e1)};
      l_fx_412 = Index<real2,0>(l_f_401);
      l_a_413 = <real4>{Add<real>(l_fx_412,0.1e1),l_fx_412,Sub<real>(l_fx_412,0.1e1),Sub<real>(l_fx_412,0.2e1)};
      l_hx_414 = Add<real4>(l_a0_392,Mul<real4>(l_a_413,Add<real4>(l_a1_393,Mul<real4>(l_a_413,Add<real4>(l_a2_394,Mul<real4>(l_a_413,l_a3_395))))));
      l__t_415 = Sub<real>(Dot<4>(Add<real4>(l_a0_392,Mul<real4>(l_a_391,Add<real4>(l_a1_393,Mul<real4>(l_a_391,Add<real4>(l_a2_394,Mul<real4>(l_a_391,l_a3_395)))))),<real4>{Dot<4>(l_v0_386,l_hx_398),Dot<4>(l_v1_387,l_hx_398),Dot<4>(l_v2_388,l_hx_398),Dot<4>(l_v3_389,l_hx_398)}),Dot<4>(Add<real4>(l_a0_392,Mul<real4>(l_a_411,Add<real4>(l_a1_393,Mul<real4>(l_a_411,Add<real4>(l_a2_394,Mul<real4>(l_a_411,l_a3_395)))))),<real4>{Dot<4>(l_v0_406,l_hx_414),Dot<4>(l_v1_407,l_hx_414),Dot<4>(l_v2_408,l_hx_414),Dot<4>(l_v3_409,l_hx_414)}));
      l_score_416 = Add<real>(l_score_376,Mul<real>(l__t_415,l__t_415));
      l_score_417 = l_score_416;
    } else {
      l_score_417 = l_score_376;
    }
    l_x_418 = PosToImgSpace<IMAGE2D<float>>(::_t,Add<real2>(<real2>{Dot<2>(l_r0_7,::v10),Dot<2>(l_r1_8,::v10)},l__t_9));
    if (Inside<IMAGE2D<float>,2>(l_x_418,::_t)) {
      l__t_419 = Inside<IMAGE2D<int>,2>(PosToImgSpace<IMAGE2D<int>>(::_t,::v10),::_t);
      l__t_420 = l__t_419;
    } else {
      l__t_420 = false;
    }
    if (l__t_420) {
      l_nd_421 = Floor<2>(l_x_418);
      l_f_422 = Sub<real2>(l_x_418,l_nd_421);
      l_n_423 = RealToInt<2>(l_nd_421);
      l_ix_424 = Add<int>(-1,Index<int{2},0>(l_n_423));
      l_t2_425 = Index<int{2},1>(l_n_423);
      l_imgBaseAddr_426 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_427 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_426,Add<int>(l_ix_424,Mul<int>(21,Add<int>(-1,l_t2_425)))));
      l_v1_428 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_426,Add<int>(l_ix_424,Mul<int>(21,Add<int>(0,l_t2_425)))));
      l_v2_429 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_426,Add<int>(l_ix_424,Mul<int>(21,Add<int>(1,l_t2_425)))));
      l_v3_430 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_426,Add<int>(l_ix_424,Mul<int>(21,Add<int>(2,l_t2_425)))));
      l_fy_431 = Index<real2,1>(l_f_422);
      l_a_432 = <real4>{Add<real>(l_fy_431,0.1e1),l_fy_431,Sub<real>(l_fy_431,0.1e1),Sub<real>(l_fy_431,0.2e1)};
      l_a0_433 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_434 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_435 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_436 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_437 = Index<real2,0>(l_f_422);
      l_a_438 = <real4>{Add<real>(l_fx_437,0.1e1),l_fx_437,Sub<real>(l_fx_437,0.1e1),Sub<real>(l_fx_437,0.2e1)};
      l_hx_439 = Add<real4>(l_a0_433,Mul<real4>(l_a_438,Add<real4>(l_a1_434,Mul<real4>(l_a_438,Add<real4>(l_a2_435,Mul<real4>(l_a_438,l_a3_436))))));
      l_x_440 = PosToImgSpace<IMAGE2D<int>>(::_t,::v10);
      l_nd_441 = Floor<2>(l_x_440);
      l_f_442 = Sub<real2>(l_x_440,l_nd_441);
      l_n_443 = RealToInt<2>(l_nd_441);
      l_ix_444 = Add<int>(-1,Index<int{2},0>(l_n_443));
      l_t2_445 = Index<int{2},1>(l_n_443);
      l_imgBaseAddr_446 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_447 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_446,Add<int>(l_ix_444,Mul<int>(21,Add<int>(-1,l_t2_445)))));
      l_v1_448 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_446,Add<int>(l_ix_444,Mul<int>(21,Add<int>(0,l_t2_445)))));
      l_v2_449 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_446,Add<int>(l_ix_444,Mul<int>(21,Add<int>(1,l_t2_445)))));
      l_v3_450 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_446,Add<int>(l_ix_444,Mul<int>(21,Add<int>(2,l_t2_445)))));
      l_fy_451 = Index<real2,1>(l_f_442);
      l_a_452 = <real4>{Add<real>(l_fy_451,0.1e1),l_fy_451,Sub<real>(l_fy_451,0.1e1),Sub<real>(l_fy_451,0.2e1)};
      l_fx_453 = Index<real2,0>(l_f_442);
      l_a_454 = <real4>{Add<real>(l_fx_453,0.1e1),l_fx_453,Sub<real>(l_fx_453,0.1e1),Sub<real>(l_fx_453,0.2e1)};
      l_hx_455 = Add<real4>(l_a0_433,Mul<real4>(l_a_454,Add<real4>(l_a1_434,Mul<real4>(l_a_454,Add<real4>(l_a2_435,Mul<real4>(l_a_454,l_a3_436))))));
      l__t_456 = Sub<real>(Dot<4>(Add<real4>(l_a0_433,Mul<real4>(l_a_432,Add<real4>(l_a1_434,Mul<real4>(l_a_432,Add<real4>(l_a2_435,Mul<real4>(l_a_432,l_a3_436)))))),<real4>{Dot<4>(l_v0_427,l_hx_439),Dot<4>(l_v1_428,l_hx_439),Dot<4>(l_v2_429,l_hx_439),Dot<4>(l_v3_430,l_hx_439)}),Dot<4>(Add<real4>(l_a0_433,Mul<real4>(l_a_452,Add<real4>(l_a1_434,Mul<real4>(l_a_452,Add<real4>(l_a2_435,Mul<real4>(l_a_452,l_a3_436)))))),<real4>{Dot<4>(l_v0_447,l_hx_455),Dot<4>(l_v1_448,l_hx_455),Dot<4>(l_v2_449,l_hx_455),Dot<4>(l_v3_450,l_hx_455)}));
      l_score_457 = Add<real>(l_score_417,Mul<real>(l__t_456,l__t_456));
      l_score_458 = l_score_457;
    } else {
      l_score_458 = l_score_417;
    }
    l_x_459 = PosToImgSpace<IMAGE2D<float>>(::_t,Add<real2>(<real2>{Dot<2>(l_r0_7,::v11),Dot<2>(l_r1_8,::v11)},l__t_9));
    if (Inside<IMAGE2D<float>,2>(l_x_459,::_t)) {
      l__t_460 = Inside<IMAGE2D<int>,2>(PosToImgSpace<IMAGE2D<int>>(::_t,::v11),::_t);
      l__t_461 = l__t_460;
    } else {
      l__t_461 = false;
    }
    if (l__t_461) {
      l_nd_462 = Floor<2>(l_x_459);
      l_f_463 = Sub<real2>(l_x_459,l_nd_462);
      l_n_464 = RealToInt<2>(l_nd_462);
      l_ix_465 = Add<int>(-1,Index<int{2},0>(l_n_464));
      l_t2_466 = Index<int{2},1>(l_n_464);
      l_imgBaseAddr_467 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_468 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_467,Add<int>(l_ix_465,Mul<int>(21,Add<int>(-1,l_t2_466)))));
      l_v1_469 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_467,Add<int>(l_ix_465,Mul<int>(21,Add<int>(0,l_t2_466)))));
      l_v2_470 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_467,Add<int>(l_ix_465,Mul<int>(21,Add<int>(1,l_t2_466)))));
      l_v3_471 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_467,Add<int>(l_ix_465,Mul<int>(21,Add<int>(2,l_t2_466)))));
      l_fy_472 = Index<real2,1>(l_f_463);
      l_a_473 = <real4>{Add<real>(l_fy_472,0.1e1),l_fy_472,Sub<real>(l_fy_472,0.1e1),Sub<real>(l_fy_472,0.2e1)};
      l_a0_474 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_475 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_476 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_477 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_478 = Index<real2,0>(l_f_463);
      l_a_479 = <real4>{Add<real>(l_fx_478,0.1e1),l_fx_478,Sub<real>(l_fx_478,0.1e1),Sub<real>(l_fx_478,0.2e1)};
      l_hx_480 = Add<real4>(l_a0_474,Mul<real4>(l_a_479,Add<real4>(l_a1_475,Mul<real4>(l_a_479,Add<real4>(l_a2_476,Mul<real4>(l_a_479,l_a3_477))))));
      l_x_481 = PosToImgSpace<IMAGE2D<int>>(::_t,::v11);
      l_nd_482 = Floor<2>(l_x_481);
      l_f_483 = Sub<real2>(l_x_481,l_nd_482);
      l_n_484 = RealToInt<2>(l_nd_482);
      l_ix_485 = Add<int>(-1,Index<int{2},0>(l_n_484));
      l_t2_486 = Index<int{2},1>(l_n_484);
      l_imgBaseAddr_487 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_488 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_487,Add<int>(l_ix_485,Mul<int>(21,Add<int>(-1,l_t2_486)))));
      l_v1_489 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_487,Add<int>(l_ix_485,Mul<int>(21,Add<int>(0,l_t2_486)))));
      l_v2_490 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_487,Add<int>(l_ix_485,Mul<int>(21,Add<int>(1,l_t2_486)))));
      l_v3_491 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_487,Add<int>(l_ix_485,Mul<int>(21,Add<int>(2,l_t2_486)))));
      l_fy_492 = Index<real2,1>(l_f_483);
      l_a_493 = <real4>{Add<real>(l_fy_492,0.1e1),l_fy_492,Sub<real>(l_fy_492,0.1e1),Sub<real>(l_fy_492,0.2e1)};
      l_fx_494 = Index<real2,0>(l_f_483);
      l_a_495 = <real4>{Add<real>(l_fx_494,0.1e1),l_fx_494,Sub<real>(l_fx_494,0.1e1),Sub<real>(l_fx_494,0.2e1)};
      l_hx_496 = Add<real4>(l_a0_474,Mul<real4>(l_a_495,Add<real4>(l_a1_475,Mul<real4>(l_a_495,Add<real4>(l_a2_476,Mul<real4>(l_a_495,l_a3_477))))));
      l__t_497 = Sub<real>(Dot<4>(Add<real4>(l_a0_474,Mul<real4>(l_a_473,Add<real4>(l_a1_475,Mul<real4>(l_a_473,Add<real4>(l_a2_476,Mul<real4>(l_a_473,l_a3_477)))))),<real4>{Dot<4>(l_v0_468,l_hx_480),Dot<4>(l_v1_469,l_hx_480),Dot<4>(l_v2_470,l_hx_480),Dot<4>(l_v3_471,l_hx_480)}),Dot<4>(Add<real4>(l_a0_474,Mul<real4>(l_a_493,Add<real4>(l_a1_475,Mul<real4>(l_a_493,Add<real4>(l_a2_476,Mul<real4>(l_a_493,l_a3_477)))))),<real4>{Dot<4>(l_v0_488,l_hx_496),Dot<4>(l_v1_489,l_hx_496),Dot<4>(l_v2_490,l_hx_496),Dot<4>(l_v3_491,l_hx_496)}));
      l_score_498 = Add<real>(l_score_458,Mul<real>(l__t_497,l__t_497));
      l_score_499 = l_score_498;
    } else {
      l_score_499 = l_score_458;
    }
    l_x_500 = PosToImgSpace<IMAGE2D<float>>(::_t,Add<real2>(<real2>{Dot<2>(l_r0_7,::v12),Dot<2>(l_r1_8,::v12)},l__t_9));
    if (Inside<IMAGE2D<float>,2>(l_x_500,::_t)) {
      l__t_501 = Inside<IMAGE2D<int>,2>(PosToImgSpace<IMAGE2D<int>>(::_t,::v12),::_t);
      l__t_502 = l__t_501;
    } else {
      l__t_502 = false;
    }
    if (l__t_502) {
      l_nd_503 = Floor<2>(l_x_500);
      l_f_504 = Sub<real2>(l_x_500,l_nd_503);
      l_n_505 = RealToInt<2>(l_nd_503);
      l_ix_506 = Add<int>(-1,Index<int{2},0>(l_n_505));
      l_t2_507 = Index<int{2},1>(l_n_505);
      l_imgBaseAddr_508 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_509 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_508,Add<int>(l_ix_506,Mul<int>(21,Add<int>(-1,l_t2_507)))));
      l_v1_510 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_508,Add<int>(l_ix_506,Mul<int>(21,Add<int>(0,l_t2_507)))));
      l_v2_511 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_508,Add<int>(l_ix_506,Mul<int>(21,Add<int>(1,l_t2_507)))));
      l_v3_512 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_508,Add<int>(l_ix_506,Mul<int>(21,Add<int>(2,l_t2_507)))));
      l_fy_513 = Index<real2,1>(l_f_504);
      l_a_514 = <real4>{Add<real>(l_fy_513,0.1e1),l_fy_513,Sub<real>(l_fy_513,0.1e1),Sub<real>(l_fy_513,0.2e1)};
      l_a0_515 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_516 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_517 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_518 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_519 = Index<real2,0>(l_f_504);
      l_a_520 = <real4>{Add<real>(l_fx_519,0.1e1),l_fx_519,Sub<real>(l_fx_519,0.1e1),Sub<real>(l_fx_519,0.2e1)};
      l_hx_521 = Add<real4>(l_a0_515,Mul<real4>(l_a_520,Add<real4>(l_a1_516,Mul<real4>(l_a_520,Add<real4>(l_a2_517,Mul<real4>(l_a_520,l_a3_518))))));
      l_x_522 = PosToImgSpace<IMAGE2D<int>>(::_t,::v12);
      l_nd_523 = Floor<2>(l_x_522);
      l_f_524 = Sub<real2>(l_x_522,l_nd_523);
      l_n_525 = RealToInt<2>(l_nd_523);
      l_ix_526 = Add<int>(-1,Index<int{2},0>(l_n_525));
      l_t2_527 = Index<int{2},1>(l_n_525);
      l_imgBaseAddr_528 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_529 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_528,Add<int>(l_ix_526,Mul<int>(21,Add<int>(-1,l_t2_527)))));
      l_v1_530 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_528,Add<int>(l_ix_526,Mul<int>(21,Add<int>(0,l_t2_527)))));
      l_v2_531 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_528,Add<int>(l_ix_526,Mul<int>(21,Add<int>(1,l_t2_527)))));
      l_v3_532 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_528,Add<int>(l_ix_526,Mul<int>(21,Add<int>(2,l_t2_527)))));
      l_fy_533 = Index<real2,1>(l_f_524);
      l_a_534 = <real4>{Add<real>(l_fy_533,0.1e1),l_fy_533,Sub<real>(l_fy_533,0.1e1),Sub<real>(l_fy_533,0.2e1)};
      l_fx_535 = Index<real2,0>(l_f_524);
      l_a_536 = <real4>{Add<real>(l_fx_535,0.1e1),l_fx_535,Sub<real>(l_fx_535,0.1e1),Sub<real>(l_fx_535,0.2e1)};
      l_hx_537 = Add<real4>(l_a0_515,Mul<real4>(l_a_536,Add<real4>(l_a1_516,Mul<real4>(l_a_536,Add<real4>(l_a2_517,Mul<real4>(l_a_536,l_a3_518))))));
      l__t_538 = Sub<real>(Dot<4>(Add<real4>(l_a0_515,Mul<real4>(l_a_514,Add<real4>(l_a1_516,Mul<real4>(l_a_514,Add<real4>(l_a2_517,Mul<real4>(l_a_514,l_a3_518)))))),<real4>{Dot<4>(l_v0_509,l_hx_521),Dot<4>(l_v1_510,l_hx_521),Dot<4>(l_v2_511,l_hx_521),Dot<4>(l_v3_512,l_hx_521)}),Dot<4>(Add<real4>(l_a0_515,Mul<real4>(l_a_534,Add<real4>(l_a1_516,Mul<real4>(l_a_534,Add<real4>(l_a2_517,Mul<real4>(l_a_534,l_a3_518)))))),<real4>{Dot<4>(l_v0_529,l_hx_537),Dot<4>(l_v1_530,l_hx_537),Dot<4>(l_v2_531,l_hx_537),Dot<4>(l_v3_532,l_hx_537)}));
      l_score_539 = Add<real>(l_score_499,Mul<real>(l__t_538,l__t_538));
      l_score_540 = l_score_539;
    } else {
      l_score_540 = l_score_499;
    }
    l_x_541 = PosToImgSpace<IMAGE2D<float>>(::_t,Add<real2>(<real2>{Dot<2>(l_r0_7,::v13),Dot<2>(l_r1_8,::v13)},l__t_9));
    if (Inside<IMAGE2D<float>,2>(l_x_541,::_t)) {
      l__t_542 = Inside<IMAGE2D<int>,2>(PosToImgSpace<IMAGE2D<int>>(::_t,::v13),::_t);
      l__t_543 = l__t_542;
    } else {
      l__t_543 = false;
    }
    if (l__t_543) {
      l_nd_544 = Floor<2>(l_x_541);
      l_f_545 = Sub<real2>(l_x_541,l_nd_544);
      l_n_546 = RealToInt<2>(l_nd_544);
      l_ix_547 = Add<int>(-1,Index<int{2},0>(l_n_546));
      l_t2_548 = Index<int{2},1>(l_n_546);
      l_imgBaseAddr_549 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_550 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_549,Add<int>(l_ix_547,Mul<int>(21,Add<int>(-1,l_t2_548)))));
      l_v1_551 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_549,Add<int>(l_ix_547,Mul<int>(21,Add<int>(0,l_t2_548)))));
      l_v2_552 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_549,Add<int>(l_ix_547,Mul<int>(21,Add<int>(1,l_t2_548)))));
      l_v3_553 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_549,Add<int>(l_ix_547,Mul<int>(21,Add<int>(2,l_t2_548)))));
      l_fy_554 = Index<real2,1>(l_f_545);
      l_a_555 = <real4>{Add<real>(l_fy_554,0.1e1),l_fy_554,Sub<real>(l_fy_554,0.1e1),Sub<real>(l_fy_554,0.2e1)};
      l_a0_556 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_557 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_558 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_559 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_560 = Index<real2,0>(l_f_545);
      l_a_561 = <real4>{Add<real>(l_fx_560,0.1e1),l_fx_560,Sub<real>(l_fx_560,0.1e1),Sub<real>(l_fx_560,0.2e1)};
      l_hx_562 = Add<real4>(l_a0_556,Mul<real4>(l_a_561,Add<real4>(l_a1_557,Mul<real4>(l_a_561,Add<real4>(l_a2_558,Mul<real4>(l_a_561,l_a3_559))))));
      l_x_563 = PosToImgSpace<IMAGE2D<int>>(::_t,::v13);
      l_nd_564 = Floor<2>(l_x_563);
      l_f_565 = Sub<real2>(l_x_563,l_nd_564);
      l_n_566 = RealToInt<2>(l_nd_564);
      l_ix_567 = Add<int>(-1,Index<int{2},0>(l_n_566));
      l_t2_568 = Index<int{2},1>(l_n_566);
      l_imgBaseAddr_569 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_570 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_569,Add<int>(l_ix_567,Mul<int>(21,Add<int>(-1,l_t2_568)))));
      l_v1_571 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_569,Add<int>(l_ix_567,Mul<int>(21,Add<int>(0,l_t2_568)))));
      l_v2_572 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_569,Add<int>(l_ix_567,Mul<int>(21,Add<int>(1,l_t2_568)))));
      l_v3_573 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_569,Add<int>(l_ix_567,Mul<int>(21,Add<int>(2,l_t2_568)))));
      l_fy_574 = Index<real2,1>(l_f_565);
      l_a_575 = <real4>{Add<real>(l_fy_574,0.1e1),l_fy_574,Sub<real>(l_fy_574,0.1e1),Sub<real>(l_fy_574,0.2e1)};
      l_fx_576 = Index<real2,0>(l_f_565);
      l_a_577 = <real4>{Add<real>(l_fx_576,0.1e1),l_fx_576,Sub<real>(l_fx_576,0.1e1),Sub<real>(l_fx_576,0.2e1)};
      l_hx_578 = Add<real4>(l_a0_556,Mul<real4>(l_a_577,Add<real4>(l_a1_557,Mul<real4>(l_a_577,Add<real4>(l_a2_558,Mul<real4>(l_a_577,l_a3_559))))));
      l__t_579 = Sub<real>(Dot<4>(Add<real4>(l_a0_556,Mul<real4>(l_a_555,Add<real4>(l_a1_557,Mul<real4>(l_a_555,Add<real4>(l_a2_558,Mul<real4>(l_a_555,l_a3_559)))))),<real4>{Dot<4>(l_v0_550,l_hx_562),Dot<4>(l_v1_551,l_hx_562),Dot<4>(l_v2_552,l_hx_562),Dot<4>(l_v3_553,l_hx_562)}),Dot<4>(Add<real4>(l_a0_556,Mul<real4>(l_a_575,Add<real4>(l_a1_557,Mul<real4>(l_a_575,Add<real4>(l_a2_558,Mul<real4>(l_a_575,l_a3_559)))))),<real4>{Dot<4>(l_v0_570,l_hx_578),Dot<4>(l_v1_571,l_hx_578),Dot<4>(l_v2_572,l_hx_578),Dot<4>(l_v3_573,l_hx_578)}));
      l_score_580 = Add<real>(l_score_540,Mul<real>(l__t_579,l__t_579));
      l_score_581 = l_score_580;
    } else {
      l_score_581 = l_score_540;
    }
    l_pos_582 = Add<real2>(<real2>{Dot<2>(l_r0_7,::v14),Dot<2>(l_r1_8,::v14)},l__t_9);
    l_x_583 = PosToImgSpace<IMAGE2D<float>>(::_t,l_pos_582);
    if (Inside<IMAGE2D<float>,2>(l_x_583,::_t)) {
      l__t_584 = Inside<IMAGE2D<int>,2>(PosToImgSpace<IMAGE2D<int>>(::_t,::v14),::_t);
      l__t_585 = l__t_584;
    } else {
      l__t_585 = false;
    }
    if (l__t_585) {
      l_nd_586 = Floor<2>(l_x_583);
      l_f_587 = Sub<real2>(l_x_583,l_nd_586);
      l_n_588 = RealToInt<2>(l_nd_586);
      l_ix_589 = Add<int>(-1,Index<int{2},0>(l_n_588));
      l_t2_590 = Index<int{2},1>(l_n_588);
      l_imgBaseAddr_591 = ImageAddress<IMAGE2D<float>>(::_t);
      l_v0_592 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_591,Add<int>(l_ix_589,Mul<int>(21,Add<int>(-1,l_t2_590)))));
      l_v1_593 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_591,Add<int>(l_ix_589,Mul<int>(21,Add<int>(0,l_t2_590)))));
      l_v2_594 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_591,Add<int>(l_ix_589,Mul<int>(21,Add<int>(1,l_t2_590)))));
      l_v3_595 = LoadVoxels<IMAGE2D<float>,4>(Add<addr(IMAGE2D<float>)>(l_imgBaseAddr_591,Add<int>(l_ix_589,Mul<int>(21,Add<int>(2,l_t2_590)))));
      l_fy_596 = Index<real2,1>(l_f_587);
      l_a_597 = <real4>{Add<real>(l_fy_596,0.1e1),l_fy_596,Sub<real>(l_fy_596,0.1e1),Sub<real>(l_fy_596,0.2e1)};
      l_a0_598 = <real4>{0.133333333333e1,0.666666666667e0,0.666666666667e0,0.133333333333e1};
      l_a1_599 = <real4>{-0.2e1,0.0,0.0,0.2e1};
      l_a2_600 = <real4>{0.1e1,-0.1e1,-0.1e1,0.1e1};
      l_a3_601 = <real4>{-0.166666666667e0,0.5e0,-0.5e0,0.166666666667e0};
      l_fx_602 = Index<real2,0>(l_f_587);
      l_a_603 = <real4>{Add<real>(l_fx_602,0.1e1),l_fx_602,Sub<real>(l_fx_602,0.1e1),Sub<real>(l_fx_602,0.2e1)};
      l_hx_604 = Add<real4>(l_a0_598,Mul<real4>(l_a_603,Add<real4>(l_a1_599,Mul<real4>(l_a_603,Add<real4>(l_a2_600,Mul<real4>(l_a_603,l_a3_601))))));
      l_x_605 = PosToImgSpace<IMAGE2D<int>>(::_t,::v14);
      l_nd_606 = Floor<2>(l_x_605);
      l_f_607 = Sub<real2>(l_x_605,l_nd_606);
      l_n_608 = RealToInt<2>(l_nd_606);
      l_ix_609 = Add<int>(-1,Index<int{2},0>(l_n_608));
      l_t2_610 = Index<int{2},1>(l_n_608);
      l_imgBaseAddr_611 = ImageAddress<IMAGE2D<int>>(::_t);
      l_v0_612 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_611,Add<int>(l_ix_609,Mul<int>(21,Add<int>(-1,l_t2_610)))));
      l_v1_613 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_611,Add<int>(l_ix_609,Mul<int>(21,Add<int>(0,l_t2_610)))));
      l_v2_614 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_611,Add<int>(l_ix_609,Mul<int>(21,Add<int>(1,l_t2_610)))));
      l_v3_615 = LoadVoxels<IMAGE2D<int>,4>(Add<addr(IMAGE2D<int>)>(l_imgBaseAddr_611,Add<int>(l_ix_609,Mul<int>(21,Add<int>(2,l_t2_610)))));
      l_fy_616 = Index<real2,1>(l_f_607);
      l_a_617 = <real4>{Add<real>(l_fy_616,0.1e1),l_fy_616,Sub<real>(l_fy_616,0.1e1),Sub<real>(l_fy_616,0.2e1)};
      l_fx_618 = Index<real2,0>(l_f_607);
      l_a_619 = <real4>{Add<real>(l_fx_618,0.1e1),l_fx_618,Sub<real>(l_fx_618,0.1e1),Sub<real>(l_fx_618,0.2e1)};
      l_hx_620 = Add<real4>(l_a0_598,Mul<real4>(l_a_619,Add<real4>(l_a1_599,Mul<real4>(l_a_619,Add<real4>(l_a2_600,Mul<real4>(l_a_619,l_a3_601))))));
      l__t_621 = Sub<real>(Dot<4>(Add<real4>(l_a0_598,Mul<real4>(l_a_597,Add<real4>(l_a1_599,Mul<real4>(l_a_597,Add<real4>(l_a2_600,Mul<real4>(l_a_597,l_a3_601)))))),<real4>{Dot<4>(l_v0_592,l_hx_604),Dot<4>(l_v1_593,l_hx_604),Dot<4>(l_v2_594,l_hx_604),Dot<4>(l_v3_595,l_hx_604)}),Dot<4>(Add<real4>(l_a0_598,Mul<real4>(l_a_617,Add<real4>(l_a1_599,Mul<real4>(l_a_617,Add<real4>(l_a2_600,Mul<real4>(l_a_617,l_a3_601)))))),<real4>{Dot<4>(l_v0_612,l_hx_620),Dot<4>(l_v1_613,l_hx_620),Dot<4>(l_v2_614,l_hx_620),Dot<4>(l_v3_615,l_hx_620)}));
      l_score_622 = Add<real>(l_score_581,Mul<real>(l__t_621,l__t_621));
      l_score_623 = l_score_622;
    } else {
      l_score_623 = l_score_581;
    }
    self.score = l_score_623;
    self.r0 = l_r0_7;
    self.r1 = l_r1_8;
    self.pos = l_pos_582;
    stabilize;
  }
  Stabilize () {
    self.score = self.score;
    self.r0 = self.r0;
    self.r1 = self.r1;
    self.pos = self.pos;
    exit();
  }
}
//***** INITIALLY *****
  ARRAY {
    for i_i_628 = 0 .. 60
      for i_j_627 = 0 .. 60
        for i_k_626 = 0 .. 60
          {
            new R(i_i_628,i_j_627,i_k_626);
          }
  }
/usr/bin/clang -m64 -c -Wformat -Wreturn-type -Wuninitialized -O3 -DNDEBUG -I/Users/jhr/Work/Diderot/vis12/src/include -I/usr/local/teem/include square_score-15.c
/usr/bin/ld -r -o /var/tmp/tmp.0.xP8KlN.o square_score-15.o /Users/jhr/Work/Diderot/vis12/lib/diderot-rt-c-f.o
rename /var/tmp/tmp.0.xP8KlN.o to square_score-15.o
                                Phase                                  Exclusive    Total  
  compiler ............................................................   0.000     4.432
    front end .........................................................   0.034     0.122
      parser ..........................................................   0.046     0.046
      typechecker .....................................................   0.006     0.006
      simplify ........................................................   0.035     0.035
    translate .........................................................   0.009     0.009
    High IL optimization ..............................................   0.142     0.154
      High IL value numbering .........................................   0.010     0.010
      High IL normalization ...........................................   0.002     0.002
      High IL checking ................................................   0.000     0.000
    Mid IL optimization ...............................................   0.092     2.386
      Mid IL contraction ..............................................   0.000     0.000
      Mid IL value numbering ..........................................   0.058     0.058
      Mid IL checking .................................................   2.236     2.236
    Low IL optimization ...............................................   0.072     1.375
      Low IL value numbering ..........................................   0.094     0.094
      Low IL checking .................................................   1.209     1.209
    code generation ...................................................   0.048     0.386
      Low IL to Tree IL ...............................................   0.057     0.057
      C compiler ......................................................   0.282     0.282

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0