#include "dpl.h" nseq prim; /* [[[real]]] */ nseq qnot; /* [int] */ nseq A; /* [[[real]]] */ nseq vec_add(nseq /* [real] */ v, nseq /* [real] */ w) { nseq return_0; /* [real] */ return_0 = dpl_add_p(v, w); return return_0; } nseq vec_add_p(nseq /* [[real]] */ v, nseq /* [[real]] */ w) { nseq return_1; /* [[real]] */ nseq let_508; /* [[real]] */ { nseq V1_356; /* [[real]] */ nseq V2_357; /* [[real]] */ nseq f_638; /* [[[real]]] */ nseq f_869; /* [real] */ nseq f_870; /* [real] */ V1_356 = v; V2_357 = w; f_869 = dpl_extract(V1_356, 1); f_870 = dpl_extract(V2_357, 1); f_638 = dpl_add_p(f_869, f_870); dpl_fre_nseq(f_870); dpl_fre_nseq(f_869); let_508 = dpl_insert(f_638, V1_356, 1); dpl_fre_nseq(f_638); } return_1 = let_508; return return_1; } nseq vec_sub(nseq /* [real] */ v, nseq /* [real] */ w) { nseq return_2; /* [real] */ return_2 = dpl_sub_p(v, w); return return_2; } nseq vec_sub_p(nseq /* [[real]] */ v, nseq /* [[real]] */ w) { nseq return_3; /* [[real]] */ nseq let_509; /* [[real]] */ { nseq V1_358; /* [[real]] */ nseq V2_359; /* [[real]] */ nseq f_639; /* [[[real]]] */ nseq f_871; /* [real] */ nseq f_872; /* [real] */ V1_358 = v; V2_359 = w; f_871 = dpl_extract(V1_358, 1); f_872 = dpl_extract(V2_359, 1); f_639 = dpl_sub_p(f_871, f_872); dpl_fre_nseq(f_872); dpl_fre_nseq(f_871); let_509 = dpl_insert(f_639, V1_358, 1); dpl_fre_nseq(f_639); } return_3 = let_509; return return_3; } real vec_dotproduct_0(nseq /* [real] */ v, nseq /* [real] */ w) { real return_4; nseq f_640; /* [real] */ f_640 = dpl_mult_p(v, w); return_4 = dpl_reduce_plus_r(f_640); dpl_fre_nseq(f_640); return return_4; } nseq vec_dotproduct_0_p(nseq /* [[real]] */ v, nseq /* [[real]] */ w) { nseq return_5; /* [real] */ nseq let_510; /* [[real]] */ { nseq V1_360; /* [[real]] */ nseq V2_361; /* [[real]] */ nseq f_641; /* [[[real]]] */ nseq f_873; /* [real] */ nseq f_874; /* [real] */ V1_360 = v; V2_361 = w; f_873 = dpl_extract(V1_360, 1); f_874 = dpl_extract(V2_361, 1); f_641 = dpl_mult_p(f_873, f_874); dpl_fre_nseq(f_874); dpl_fre_nseq(f_873); let_510 = dpl_insert(f_641, V1_360, 1); dpl_fre_nseq(f_641); } return_5 = dpl_reduce_plus_p(let_510); dpl_fre_nseq(let_510); return return_5; } nseq filter(nseq /* [bool] */ flags, nseq /* [[real]] */ x) { nseq return_6; /* [[real]] */ nseq f_642; /* [int] */ nseq f_875; /* [bool] */ nseq f_876; /* [int] */ nseq f_1039; /* [int] */ f_1039 = dpl_range1_i(dpl_length_s(x)); f_875 = dpl_index_nr_p(flags, 1, f_1039); dpl_fre_nseq(f_1039); f_876 = dpl_range1_i(dpl_length_s(x)); f_642 = dpl_restrict_s(f_875, f_876); dpl_fre_nseq(f_876); dpl_fre_nseq(f_875); return_6 = dpl_index_nr_p(x, 1, f_642); dpl_fre_nseq(f_642); return return_6; } nseq filter_p(nseq /* [[bool]] */ flags, nseq /* [[[real]]] */ x) { nseq return_7; /* [[[real]]] */ nseq let_511; /* [[[real]]] */ { nseq V1_362; /* [[bool]] */ int V2_363; nseq cse_394; /* [int] */ nseq cse_449; /* [[int]] */ nseq cse_432; /* [[[int]]] */ nseq V3_364; /* [[[int]]] */ nseq V4_365; /* [[int]] */ nseq let_527; /* [[bool]] */ nseq let_528; /* [[bool]] */ nseq f_643; /* [int] */ nseq f_645; /* [[int]] */ nseq f_647; /* [[[[real]]]] */ nseq f_881; /* [[int]] */ nseq f_882; /* [int] */ V1_362 = x; V2_363 = 2; cse_394 = dpl_range1_i(dpl_length_s(flags)); f_643 = dpl_length_p(x); cse_449 = dpl_range1_p(f_643); dpl_fre_nseq(f_643); cse_432 = dpl_extend_s(cse_394, cse_449); { nseq V1_414; /* [[bool]] */ int V2_415; nseq V3_416; /* [[[int]]] */ nseq V4_417; /* [[int]] */ nseq f_644; /* [[[bool]]] */ nseq f_877; /* [[int]] */ nseq f_878; /* [int] */ V1_414 = flags; V2_415 = 2; V3_416 = cse_432; V4_417 = cse_449; f_877 = dpl_extract(V3_416, 1); f_878 = dpl_extract(V4_417, 1); f_644 = dpl_index_nr_p(V1_414, V2_415, f_877, f_878); dpl_fre_nseq(f_878); dpl_fre_nseq(f_877); let_527 = dpl_insert(f_644, V3_416, 1); dpl_fre_nseq(f_644); } f_645 = dpl_restrict_p(let_527, cse_449); dpl_fre_nseq(let_527); V3_364 = dpl_extend_s(cse_394, f_645); dpl_fre_nseq(f_645); dpl_fre_nseq(cse_394); { nseq V1_418; /* [[bool]] */ int V2_419; nseq V3_420; /* [[[int]]] */ nseq V4_421; /* [[int]] */ nseq f_646; /* [[[bool]]] */ nseq f_879; /* [[int]] */ nseq f_880; /* [int] */ V1_418 = flags; V2_419 = 2; V3_420 = cse_432; V4_421 = cse_449; f_879 = dpl_extract(V3_420, 1); f_880 = dpl_extract(V4_421, 1); f_646 = dpl_index_nr_p(V1_418, V2_419, f_879, f_880); dpl_fre_nseq(f_880); dpl_fre_nseq(f_879); let_528 = dpl_insert(f_646, V3_420, 1); dpl_fre_nseq(V3_420); dpl_fre_nseq(f_646); } V4_365 = dpl_restrict_p(let_528, cse_449); dpl_fre_nseq(cse_449); dpl_fre_nseq(let_528); f_881 = dpl_extract(V3_364, 1); f_882 = dpl_extract(V4_365, 1); dpl_fre_nseq(V4_365); f_647 = dpl_index_nr_p(V1_362, V2_363, f_881, f_882); dpl_fre_nseq(f_882); dpl_fre_nseq(f_881); let_511 = dpl_insert(f_647, V3_364, 1); dpl_fre_nseq(V3_364); dpl_fre_nseq(f_647); } return_7 = let_511; return return_7; } nseq filter2D(nseq /* [[bool]] */ flags, nseq /* [[[real]]] */ x) { nseq return_8; /* [[[real]]] */ nseq f_648; /* [[bool]] */ nseq f_649; /* [[[real]]] */ nseq f_883; /* [int] */ nseq f_884; /* [int] */ nseq f_1040; /* [bool] */ nseq f_1041; /* [int] */ nseq f_1042; /* [bool] */ nseq f_1043; /* [int] */ nseq f_1107; /* [[bool]] */ nseq f_1108; /* [[bool]] */ nseq f_1144; /* [int] */ nseq f_1145; /* [int] */ f_1144 = dpl_range1_i(dpl_length_s(x)); f_1107 = dpl_index_nr_p(flags, 1, f_1144); dpl_fre_nseq(f_1144); f_1040 = dpl_reduce_or_p(f_1107); dpl_fre_nseq(f_1107); f_1041 = dpl_range1_i(dpl_length_s(x)); f_883 = dpl_restrict_s(f_1040, f_1041); dpl_fre_nseq(f_1041); dpl_fre_nseq(f_1040); f_648 = dpl_index_nr_p(flags, 1, f_883); dpl_fre_nseq(f_883); f_1145 = dpl_range1_i(dpl_length_s(x)); f_1108 = dpl_index_nr_p(flags, 1, f_1145); dpl_fre_nseq(f_1145); f_1042 = dpl_reduce_or_p(f_1108); dpl_fre_nseq(f_1108); f_1043 = dpl_range1_i(dpl_length_s(x)); f_884 = dpl_restrict_s(f_1042, f_1043); dpl_fre_nseq(f_1043); dpl_fre_nseq(f_1042); f_649 = dpl_index_nr_p(x, 1, f_884); dpl_fre_nseq(f_884); return_8 = filter_p(f_648, f_649); dpl_fre_nseq(f_649); dpl_fre_nseq(f_648); return return_8; } nseq vec_add_scalar(nseq /* [real] */ v, real /* real */ s) { nseq return_9; /* [real] */ nseq f_650; /* [real] */ f_650 = dpl_dist_r(s, dpl_length_s(v)); return_9 = dpl_add_p(v, f_650); dpl_fre_nseq(f_650); return return_9; } nseq vec_add_scalar_p(nseq /* [[real]] */ v, nseq /* [real] */ s) { nseq return_10; /* [[real]] */ nseq let_512; /* [[real]] */ { nseq V1_366; /* [[real]] */ nseq V2_367; /* [[real]] */ nseq f_651; /* [int] */ nseq f_652; /* [[[real]]] */ nseq f_885; /* [real] */ nseq f_886; /* [real] */ V1_366 = v; f_651 = dpl_length_p(v); V2_367 = dpl_dist_p(s, f_651); dpl_fre_nseq(f_651); f_885 = dpl_extract(V1_366, 1); f_886 = dpl_extract(V2_367, 1); dpl_fre_nseq(V2_367); f_652 = dpl_add_p(f_885, f_886); dpl_fre_nseq(f_886); dpl_fre_nseq(f_885); let_512 = dpl_insert(f_652, V1_366, 1); dpl_fre_nseq(f_652); } return_10 = let_512; return return_10; } nseq listadd(nseq /* [[[real]]] */ full_list, real /* real */ x, real /* real */ y, real /* real */ r) { nseq return_11; /* [[[real]]] */ nseq let_513; /* [[[real]]] */ nseq let_514; /* [[[real]]] */ { nseq V1_368; /* [[[real]]] */ nseq V2_369; /* [[[real]]] */ nseq let_529; /* [[[real]]] */ nseq f_654; /* [[[[real]]]] */ nseq f_887; /* [[real]] */ nseq f_888; /* [[real]] */ V1_368 = full_list; { nseq T_17; /* [[real]] */ nseq let_544; /* [[real]] */ nseq f_653; /* [int] */ { nseq T_39; /* [real] */ T_39 = dpl_build_r(3, x, y, 0.000000); let_544 = dpl_dist_s(T_39, dpl_length_s(full_list)); dpl_fre_nseq(T_39); } T_17 = let_544; f_653 = dpl_length_p(full_list); let_529 = dpl_dist_p(T_17, f_653); dpl_fre_nseq(f_653); dpl_fre_nseq(T_17); } V2_369 = let_529; f_887 = dpl_extract(V1_368, 1); f_888 = dpl_extract(V2_369, 1); dpl_fre_nseq(V2_369); f_654 = vec_add_p(f_887, f_888); dpl_fre_nseq(f_888); dpl_fre_nseq(f_887); let_513 = dpl_insert(f_654, V1_368, 1); dpl_fre_nseq(f_654); } { nseq V1_370; /* [[[real]]] */ nseq V2_371; /* [[[real]]] */ nseq let_530; /* [[[real]]] */ nseq f_656; /* [[[[real]]]] */ nseq f_889; /* [[real]] */ nseq f_890; /* [[real]] */ V1_370 = full_list; { nseq T_19; /* [[real]] */ nseq let_545; /* [[real]] */ nseq f_655; /* [int] */ { nseq T_40; /* [real] */ T_40 = dpl_build_r(3, x, y, r); let_545 = dpl_dist_s(T_40, dpl_length_s(full_list)); dpl_fre_nseq(T_40); } T_19 = let_545; f_655 = dpl_length_p(full_list); let_530 = dpl_dist_p(T_19, f_655); dpl_fre_nseq(f_655); dpl_fre_nseq(T_19); } V2_371 = let_530; f_889 = dpl_extract(V1_370, 1); f_890 = dpl_extract(V2_371, 1); dpl_fre_nseq(V2_371); f_656 = vec_add_p(f_889, f_890); dpl_fre_nseq(f_890); dpl_fre_nseq(f_889); let_514 = dpl_insert(f_656, V1_370, 1); dpl_fre_nseq(f_656); } return_11 = dpl_concat_p(let_513, let_514); dpl_fre_nseq(let_514); dpl_fre_nseq(let_513); return return_11; } nseq subdivide(nseq /* [[[real]]] */ cube_list, real /* real */ cube_radius) { nseq return_12; /* [[[real]]] */ nseq f_657; /* [[[real]]] */ nseq f_658; /* [[[real]]] */ nseq f_891; /* [[[real]]] */ nseq f_892; /* [[[real]]] */ nseq f_1044; /* [[[real]]] */ nseq f_1045; /* [[[real]]] */ f_1044 = listadd(cube_list, 0.000000, 0.000000, cube_radius); f_1045 = listadd(cube_list, 0.000000, cube_radius, cube_radius); f_891 = dpl_concat_s(f_1044, f_1045); dpl_fre_nseq(f_1045); dpl_fre_nseq(f_1044); f_892 = listadd(cube_list, cube_radius, 0.000000, cube_radius); f_657 = dpl_concat_s(f_891, f_892); dpl_fre_nseq(f_892); dpl_fre_nseq(f_891); f_658 = listadd(cube_list, cube_radius, cube_radius, cube_radius); return_12 = dpl_concat_s(f_657, f_658); dpl_fre_nseq(f_658); dpl_fre_nseq(f_657); return return_12; } real cube_pixmap_value(int /* int */ qlval, real /* real */ cube_size, real /* real */ maybe_factor) { real return_13; real q_487; if (qlval == 2) { q_487 = cube_size; } else { real q_488; if (cube_size == 1.000000 && (qlval == 4 || qlval == 3)) { q_488 = maybe_factor; } else { q_488 = 0.000000; } q_487 = q_488; } return_13 = q_487; return return_13; } nseq cube_pixmap_value_p(nseq /* [int] */ qlval, nseq /* [real] */ cube_size, nseq /* [real] */ maybe_factor) { nseq return_14; /* [real] */ nseq let_515; /* [real] */ { nseq D_99; /* [int] */ nseq M_100; /* [bool] */ nseq T_101; /* [real] */ nseq E_102; /* [real] */ nseq let_531; /* [real] */ nseq f_659; /* [int] */ nseq f_660; /* [int] */ nseq f_661; /* [int] */ D_99 = dpl_range1_i(dpl_length_s(qlval)); f_659 = dpl_index_nr_p(qlval, 1, D_99); f_660 = dpl_dist_i(2, dpl_length_s(D_99)); M_100 = dpl_equal_p(f_659, f_660); dpl_fre_nseq(f_660); dpl_fre_nseq(f_659); f_661 = dpl_restrict_s(M_100, D_99); T_101 = dpl_index_nr_p(cube_size, 1, f_661); dpl_fre_nseq(f_661); { nseq D_117; /* [int] */ int cse_158; nseq cse_159; /* [int] */ nseq M_118; /* [bool] */ nseq T_119; /* [real] */ nseq E_120; /* [real] */ nseq f_662; /* [bool] */ nseq f_663; /* [bool] */ nseq f_664; /* [bool] */ nseq f_665; /* [int] */ int f_666; nseq f_893; /* [real] */ nseq f_894; /* [real] */ nseq f_895; /* [bool] */ nseq f_896; /* [bool] */ nseq f_897; /* [int] */ nseq f_1046; /* [int] */ nseq f_1047; /* [int] */ nseq f_1048; /* [bool] */ f_662 = dpl_not_p(M_100); D_117 = dpl_restrict_s(f_662, D_99); dpl_fre_nseq(D_99); dpl_fre_nseq(f_662); cse_158 = dpl_length_s(D_117); cse_159 = dpl_index_nr_p(qlval, 1, D_117); f_893 = dpl_index_nr_p(cube_size, 1, D_117); f_894 = dpl_dist_r(1.000000, cse_158); f_663 = dpl_equal_p(f_893, f_894); dpl_fre_nseq(f_894); dpl_fre_nseq(f_893); f_1046 = dpl_dist_i(4, cse_158); f_895 = dpl_equal_p(cse_159, f_1046); dpl_fre_nseq(f_1046); f_1047 = dpl_dist_i(3, cse_158); f_896 = dpl_equal_p(cse_159, f_1047); dpl_fre_nseq(f_1047); dpl_fre_nseq(cse_159); f_664 = dpl_or_p(f_895, f_896); dpl_fre_nseq(f_896); dpl_fre_nseq(f_895); M_118 = dpl_and_p(f_663, f_664); dpl_fre_nseq(f_664); dpl_fre_nseq(f_663); f_665 = dpl_restrict_s(M_118, D_117); T_119 = dpl_index_nr_p(maybe_factor, 1, f_665); dpl_fre_nseq(f_665); f_1048 = dpl_not_p(M_118); f_897 = dpl_restrict_s(f_1048, D_117); dpl_fre_nseq(D_117); dpl_fre_nseq(f_1048); f_666 = dpl_length_s(f_897); dpl_fre_nseq(f_897); E_120 = dpl_dist_r(0.000000, f_666); let_531 = dpl_combine_s(M_118, T_119, E_120); dpl_fre_nseq(E_120); dpl_fre_nseq(T_119); dpl_fre_nseq(M_118); } E_102 = let_531; let_515 = dpl_combine_s(M_100, T_101, E_102); dpl_fre_nseq(E_102); dpl_fre_nseq(T_101); dpl_fre_nseq(M_100); } return_14 = let_515; return return_14; } int qnot_or_id(int /* int */ qlval, int /* int */ p2) { int return_15; return_15 = dpl_index_i(qnot, 1, qlval + 4 * p2); return return_15; } nseq qnot_or_id_p(nseq /* [int] */ qlval, nseq /* [int] */ p2) { nseq return_16; /* [int] */ nseq f_667; /* [int] */ nseq f_898; /* [int] */ nseq f_1049; /* [int] */ f_1049 = dpl_dist_i(4, dpl_length_s(qlval)); f_898 = dpl_mult_p(f_1049, p2); dpl_fre_nseq(f_1049); f_667 = dpl_add_p(qlval, f_898); dpl_fre_nseq(f_898); return_16 = dpl_index_nr_p(qnot, 1, f_667); dpl_fre_nseq(f_667); return return_16; } int sphere_in_halfspace(nseq /* [real] */ center, real /* real */ radius, int /* int */ k, real /* real */ radius_squared) { int return_17; int let_516; { nseq point; /* [real] */ nseq normal; /* [real] */ bool outside; real dist_tmp; real dist_squared; int q_489; real a_636; nseq f_668; /* [real] */ point = dpl_index_s(prim, 2, k, 2); normal = dpl_index_s(prim, 2, k, 3); f_668 = vec_sub(center, point); a_636 = vec_dotproduct_0(f_668, normal); dpl_fre_nseq(f_668); outside = 0.000000 > a_636; { nseq f_669; /* [real] */ f_669 = vec_sub(point, center); dpl_fre_nseq(point); dist_tmp = vec_dotproduct_0(normal, f_669); dpl_fre_nseq(f_669); dist_squared = (dist_tmp * dist_tmp) / vec_dotproduct_0(normal, normal); if (outside) { int q_490; if (dist_squared > radius_squared) { q_490 = 1; } else { q_490 = 3; } q_489 = q_490; } else { int q_491; if (dist_squared >= radius_squared) { q_491 = 2; } else { q_491 = 3; } q_489 = q_491; } let_516 = q_489; } } return_17 = let_516; return return_17; } nseq sphere_in_halfspace_p(nseq /* [[real]] */ center, nseq /* [real] */ radius, nseq /* [int] */ k, nseq /* [real] */ radius_squared) { nseq return_18; /* [int] */ nseq let_517; /* [int] */ { nseq T_187; /* [real] */ nseq let_532; /* [int] */ T_187 = radius_squared; { nseq cse_395; /* [int] */ nseq cse_319; /* [int] */ nseq T_193; /* [int] */ nseq let_546; /* [int] */ nseq f_670; /* [int] */ cse_395 = dpl_range1_i(dpl_length_s(T_187)); cse_319 = dpl_range1_i(dpl_length_s(center)); f_670 = dpl_index_nr_p(cse_319, 1, cse_395); T_193 = dpl_index_nr_p(k, 1, f_670); dpl_fre_nseq(f_670); { int cse_320; nseq T_199; /* [[real]] */ nseq let_558; /* [int] */ nseq f_671; /* [int] */ cse_320 = dpl_length_s(T_193); f_671 = dpl_dist_i(2, cse_320); T_199 = dpl_index_nr_p(prim, 2, T_193, f_671); dpl_fre_nseq(f_671); { int cse_433; nseq cse_396; /* [int] */ nseq cse_321; /* [int] */ nseq T_205; /* [[real]] */ nseq let_571; /* [int] */ nseq f_672; /* [int] */ nseq f_673; /* [int] */ nseq f_899; /* [int] */ cse_433 = dpl_length_s(T_199); cse_396 = dpl_range1_i(cse_433); cse_321 = dpl_range1_i(cse_320); f_899 = dpl_index_nr_p(cse_321, 1, cse_396); f_672 = dpl_index_nr_p(T_193, 1, f_899); dpl_fre_nseq(f_899); dpl_fre_nseq(T_193); f_673 = dpl_dist_i(3, cse_433); T_205 = dpl_index_nr_p(prim, 2, f_672, f_673); dpl_fre_nseq(f_673); dpl_fre_nseq(f_672); { nseq cse_434; /* [int] */ nseq T_211; /* [[real]] */ nseq let_580; /* [int] */ nseq f_674; /* [int] */ nseq f_900; /* [int] */ nseq f_1050; /* [int] */ nseq f_1109; /* [int] */ cse_434 = dpl_range1_i(dpl_length_s(T_205)); f_1109 = dpl_index_nr_p(cse_396, 1, cse_434); f_1050 = dpl_index_nr_p(cse_321, 1, f_1109); dpl_fre_nseq(f_1109); f_900 = dpl_index_nr_p(cse_395, 1, f_1050); dpl_fre_nseq(f_1050); f_674 = dpl_index_nr_p(cse_319, 1, f_900); dpl_fre_nseq(f_900); dpl_fre_nseq(cse_319); T_211 = dpl_index_nr_p(center, 1, f_674); dpl_fre_nseq(f_674); { int cse_322; nseq cse_397; /* [int] */ nseq cse_323; /* [int] */ nseq T_217; /* [bool] */ nseq let_589; /* [int] */ nseq f_675; /* [real] */ nseq f_676; /* [real] */ nseq f_901; /* [[real]] */ nseq f_902; /* [[real]] */ nseq f_1051; /* [[real]] */ nseq f_1110; /* [int] */ cse_322 = dpl_length_s(T_211); cse_397 = dpl_range1_i(cse_322); cse_323 = dpl_index_nr_p(cse_434, 1, cse_397); f_675 = dpl_dist_r(0.000000, cse_322); f_1110 = dpl_index_nr_p(cse_396, 1, cse_323); f_1051 = dpl_index_nr_p(T_199, 1, f_1110); dpl_fre_nseq(f_1110); f_901 = vec_sub_p(T_211, f_1051); dpl_fre_nseq(f_1051); f_902 = dpl_index_nr_p(T_205, 1, cse_323); dpl_fre_nseq(cse_323); f_676 = vec_dotproduct_0_p(f_901, f_902); dpl_fre_nseq(f_902); dpl_fre_nseq(f_901); T_217 = dpl_grt_p(f_675, f_676); dpl_fre_nseq(f_676); dpl_fre_nseq(f_675); { nseq cse_435; /* [int] */ nseq cse_398; /* [int] */ nseq cse_324; /* [int] */ nseq T_223; /* [real] */ nseq let_598; /* [int] */ nseq f_677; /* [[real]] */ nseq f_678; /* [[real]] */ nseq f_903; /* [[real]] */ nseq f_904; /* [[real]] */ nseq f_1052; /* [int] */ cse_435 = dpl_range1_i(dpl_length_s(T_217)); cse_398 = dpl_index_nr_p(cse_397, 1, cse_435); cse_324 = dpl_index_nr_p(cse_434, 1, cse_398); f_677 = dpl_index_nr_p(T_205, 1, cse_324); f_1052 = dpl_index_nr_p(cse_396, 1, cse_324); dpl_fre_nseq(cse_324); f_903 = dpl_index_nr_p(T_199, 1, f_1052); dpl_fre_nseq(f_1052); dpl_fre_nseq(T_199); f_904 = dpl_index_nr_p(T_211, 1, cse_398); dpl_fre_nseq(cse_398); dpl_fre_nseq(T_211); f_678 = vec_sub_p(f_903, f_904); dpl_fre_nseq(f_904); dpl_fre_nseq(f_903); T_223 = vec_dotproduct_0_p(f_677, f_678); dpl_fre_nseq(f_678); dpl_fre_nseq(f_677); { nseq cse_450; /* [int] */ nseq cse_325; /* [[real]] */ nseq T_229; /* [real] */ nseq let_607; /* [int] */ nseq f_679; /* [int] */ nseq f_680; /* [real] */ nseq f_681; /* [real] */ nseq f_905; /* [int] */ nseq f_1053; /* [int] */ cse_450 = dpl_range1_i(dpl_length_s(T_223)); f_1053 = dpl_index_nr_p(cse_435, 1, cse_450); f_905 = dpl_index_nr_p(cse_397, 1, f_1053); dpl_fre_nseq(f_1053); f_679 = dpl_index_nr_p(cse_434, 1, f_905); dpl_fre_nseq(f_905); cse_325 = dpl_index_nr_p(T_205, 1, f_679); dpl_fre_nseq(f_679); dpl_fre_nseq(T_205); f_680 = dpl_mult_p(T_223, T_223); dpl_fre_nseq(T_223); f_681 = vec_dotproduct_0_p(cse_325, cse_325); dpl_fre_nseq(cse_325); T_229 = dpl_divide_p(f_680, f_681); dpl_fre_nseq(f_681); dpl_fre_nseq(f_680); { nseq D_259; /* [int] */ nseq M_260; /* [bool] */ nseq T_261; /* [int] */ nseq E_262; /* [int] */ nseq let_611; /* [int] */ nseq let_612; /* [int] */ nseq f_682; /* [int] */ nseq f_906; /* [int] */ D_259 = dpl_range1_i(dpl_length_s(T_229)); f_906 = dpl_index_nr_p(cse_450, 1, D_259); f_682 = dpl_index_nr_p(cse_435, 1, f_906); dpl_fre_nseq(f_906); M_260 = dpl_index_nr_p(T_217, 1, f_682); dpl_fre_nseq(f_682); dpl_fre_nseq(T_217); { nseq D_277; /* [int] */ nseq M_278; /* [bool] */ nseq T_279; /* [int] */ nseq E_280; /* [int] */ nseq f_683; /* [real] */ nseq f_684; /* [real] */ int f_685; int f_686; nseq f_907; /* [int] */ nseq f_908; /* [int] */ nseq f_909; /* [int] */ nseq f_1054; /* [int] */ nseq f_1055; /* [bool] */ nseq f_1111; /* [int] */ nseq f_1146; /* [int] */ nseq f_1160; /* [int] */ nseq f_1169; /* [int] */ nseq f_1176; /* [int] */ D_277 = dpl_restrict_s(M_260, D_259); f_683 = dpl_index_nr_p(T_229, 1, D_277); f_1176 = dpl_index_nr_p(cse_450, 1, D_277); f_1169 = dpl_index_nr_p(cse_435, 1, f_1176); dpl_fre_nseq(f_1176); f_1160 = dpl_index_nr_p(cse_397, 1, f_1169); dpl_fre_nseq(f_1169); f_1146 = dpl_index_nr_p(cse_434, 1, f_1160); dpl_fre_nseq(f_1160); f_1111 = dpl_index_nr_p(cse_396, 1, f_1146); dpl_fre_nseq(f_1146); f_1054 = dpl_index_nr_p(cse_321, 1, f_1111); dpl_fre_nseq(f_1111); f_907 = dpl_index_nr_p(cse_395, 1, f_1054); dpl_fre_nseq(f_1054); f_684 = dpl_index_nr_p(T_187, 1, f_907); dpl_fre_nseq(f_907); M_278 = dpl_grt_p(f_683, f_684); dpl_fre_nseq(f_684); dpl_fre_nseq(f_683); f_908 = dpl_restrict_s(M_278, D_277); f_685 = dpl_length_s(f_908); dpl_fre_nseq(f_908); T_279 = dpl_dist_i(1, f_685); f_1055 = dpl_not_p(M_278); f_909 = dpl_restrict_s(f_1055, D_277); dpl_fre_nseq(D_277); dpl_fre_nseq(f_1055); f_686 = dpl_length_s(f_909); dpl_fre_nseq(f_909); E_280 = dpl_dist_i(3, f_686); let_611 = dpl_combine_s(M_278, T_279, E_280); dpl_fre_nseq(E_280); dpl_fre_nseq(T_279); dpl_fre_nseq(M_278); } T_261 = let_611; { nseq D_283; /* [int] */ nseq M_284; /* [bool] */ nseq T_285; /* [int] */ nseq E_286; /* [int] */ nseq f_687; /* [bool] */ nseq f_688; /* [real] */ nseq f_689; /* [real] */ int f_690; int f_691; nseq f_910; /* [int] */ nseq f_911; /* [int] */ nseq f_912; /* [int] */ nseq f_1056; /* [int] */ nseq f_1057; /* [bool] */ nseq f_1112; /* [int] */ nseq f_1147; /* [int] */ nseq f_1161; /* [int] */ nseq f_1170; /* [int] */ nseq f_1177; /* [int] */ f_687 = dpl_not_p(M_260); D_283 = dpl_restrict_s(f_687, D_259); dpl_fre_nseq(D_259); dpl_fre_nseq(f_687); f_688 = dpl_index_nr_p(T_229, 1, D_283); dpl_fre_nseq(T_229); f_1177 = dpl_index_nr_p(cse_450, 1, D_283); dpl_fre_nseq(cse_450); f_1170 = dpl_index_nr_p(cse_435, 1, f_1177); dpl_fre_nseq(f_1177); dpl_fre_nseq(cse_435); f_1161 = dpl_index_nr_p(cse_397, 1, f_1170); dpl_fre_nseq(f_1170); dpl_fre_nseq(cse_397); f_1147 = dpl_index_nr_p(cse_434, 1, f_1161); dpl_fre_nseq(f_1161); dpl_fre_nseq(cse_434); f_1112 = dpl_index_nr_p(cse_396, 1, f_1147); dpl_fre_nseq(f_1147); dpl_fre_nseq(cse_396); f_1056 = dpl_index_nr_p(cse_321, 1, f_1112); dpl_fre_nseq(f_1112); dpl_fre_nseq(cse_321); f_910 = dpl_index_nr_p(cse_395, 1, f_1056); dpl_fre_nseq(f_1056); dpl_fre_nseq(cse_395); f_689 = dpl_index_nr_p(T_187, 1, f_910); dpl_fre_nseq(f_910); M_284 = dpl_grteq_p(f_688, f_689); dpl_fre_nseq(f_689); dpl_fre_nseq(f_688); f_911 = dpl_restrict_s(M_284, D_283); f_690 = dpl_length_s(f_911); dpl_fre_nseq(f_911); T_285 = dpl_dist_i(2, f_690); f_1057 = dpl_not_p(M_284); f_912 = dpl_restrict_s(f_1057, D_283); dpl_fre_nseq(D_283); dpl_fre_nseq(f_1057); f_691 = dpl_length_s(f_912); dpl_fre_nseq(f_912); E_286 = dpl_dist_i(3, f_691); let_612 = dpl_combine_s(M_284, T_285, E_286); dpl_fre_nseq(E_286); dpl_fre_nseq(T_285); dpl_fre_nseq(M_284); } E_262 = let_612; let_607 = dpl_combine_s(M_260, T_261, E_262); dpl_fre_nseq(E_262); dpl_fre_nseq(T_261); dpl_fre_nseq(M_260); } let_598 = let_607; } let_589 = let_598; } let_580 = let_589; } let_571 = let_580; } let_558 = let_571; } let_546 = let_558; } let_532 = let_546; } let_517 = let_532; } return_18 = let_517; return return_18; } int sphere_in_sphere(nseq /* [real] */ center, real /* real */ radius, int /* int */ k, real /* real */ radius_squared) { int return_19; int let_518; { nseq csg_center; /* [real] */ real csg_radius; real cse_64; nseq direction; /* [real] */ real dist_squared; real cse_63; real radius_add_sqr; int q_492; csg_center = dpl_index_s(prim, 2, k, 2); csg_radius = dpl_index_r(prim, 3, k, 3, 1); cse_64 = (csg_radius - radius); direction = vec_sub(center, csg_center); dpl_fre_nseq(csg_center); dist_squared = vec_dotproduct_0(direction, direction); dpl_fre_nseq(direction); cse_63 = (csg_radius + radius); radius_add_sqr = cse_63 * cse_63; if (dist_squared > radius_add_sqr) { q_492 = 1; } else { int q_493; if (csg_radius <= radius) { q_493 = 3; } else { int q_494; if (dist_squared <= cse_64 * cse_64) { q_494 = 2; } else { q_494 = 3; } q_493 = q_494; } q_492 = q_493; } let_518 = q_492; } return_19 = let_518; return return_19; } nseq sphere_in_sphere_p(nseq /* [[real]] */ center, nseq /* [real] */ radius, nseq /* [int] */ k, nseq /* [real] */ radius_squared) { nseq return_20; /* [int] */ nseq let_519; /* [int] */ { nseq T_189; /* [real] */ nseq let_533; /* [int] */ T_189 = radius; { nseq cse_399; /* [int] */ nseq cse_326; /* [int] */ nseq T_195; /* [int] */ nseq let_547; /* [int] */ nseq f_692; /* [int] */ cse_399 = dpl_range1_i(dpl_length_s(T_189)); cse_326 = dpl_range1_i(dpl_length_s(center)); f_692 = dpl_index_nr_p(cse_326, 1, cse_399); T_195 = dpl_index_nr_p(k, 1, f_692); dpl_fre_nseq(f_692); { int cse_327; nseq T_201; /* [[real]] */ nseq let_559; /* [int] */ nseq f_693; /* [int] */ cse_327 = dpl_length_s(T_195); f_693 = dpl_dist_i(2, cse_327); T_201 = dpl_index_nr_p(prim, 2, T_195, f_693); dpl_fre_nseq(f_693); { int cse_436; nseq cse_400; /* [int] */ nseq cse_328; /* [int] */ nseq T_207; /* [real] */ nseq let_572; /* [int] */ nseq f_694; /* [int] */ nseq f_695; /* [int] */ nseq f_696; /* [int] */ nseq f_913; /* [int] */ cse_436 = dpl_length_s(T_201); cse_400 = dpl_range1_i(cse_436); cse_328 = dpl_range1_i(cse_327); f_913 = dpl_index_nr_p(cse_328, 1, cse_400); f_694 = dpl_index_nr_p(T_195, 1, f_913); dpl_fre_nseq(f_913); dpl_fre_nseq(T_195); f_695 = dpl_dist_i(3, cse_436); f_696 = dpl_dist_i(1, cse_436); T_207 = dpl_index_nr_p(prim, 3, f_694, f_695, f_696); dpl_fre_nseq(f_696); dpl_fre_nseq(f_695); dpl_fre_nseq(f_694); { nseq cse_437; /* [int] */ nseq T_213; /* [real] */ nseq let_581; /* [int] */ nseq f_697; /* [real] */ nseq f_914; /* [int] */ nseq f_1058; /* [int] */ nseq f_1113; /* [int] */ cse_437 = dpl_range1_i(dpl_length_s(T_207)); f_1113 = dpl_index_nr_p(cse_400, 1, cse_437); f_1058 = dpl_index_nr_p(cse_328, 1, f_1113); dpl_fre_nseq(f_1113); f_914 = dpl_index_nr_p(cse_399, 1, f_1058); dpl_fre_nseq(f_1058); f_697 = dpl_index_nr_p(T_189, 1, f_914); dpl_fre_nseq(f_914); T_213 = dpl_sub_p(T_207, f_697); dpl_fre_nseq(f_697); { nseq cse_401; /* [int] */ nseq cse_438; /* [int] */ nseq T_219; /* [[real]] */ nseq let_590; /* [int] */ nseq f_698; /* [int] */ nseq f_699; /* [[real]] */ nseq f_700; /* [[real]] */ nseq f_915; /* [int] */ nseq f_1059; /* [int] */ nseq f_1114; /* [int] */ cse_401 = dpl_range1_i(dpl_length_s(T_213)); f_698 = dpl_index_nr_p(cse_437, 1, cse_401); cse_438 = dpl_index_nr_p(cse_400, 1, f_698); dpl_fre_nseq(f_698); f_1114 = dpl_index_nr_p(cse_328, 1, cse_438); f_1059 = dpl_index_nr_p(cse_399, 1, f_1114); dpl_fre_nseq(f_1114); f_915 = dpl_index_nr_p(cse_326, 1, f_1059); dpl_fre_nseq(f_1059); dpl_fre_nseq(cse_326); f_699 = dpl_index_nr_p(center, 1, f_915); dpl_fre_nseq(f_915); f_700 = dpl_index_nr_p(T_201, 1, cse_438); dpl_fre_nseq(cse_438); dpl_fre_nseq(T_201); T_219 = vec_sub_p(f_699, f_700); dpl_fre_nseq(f_700); dpl_fre_nseq(f_699); { nseq T_225; /* [real] */ nseq let_599; /* [int] */ T_225 = vec_dotproduct_0_p(T_219, T_219); { nseq cse_466; /* [int] */ nseq cse_451; /* [int] */ nseq cse_329; /* [int] */ nseq T_231; /* [real] */ nseq let_608; /* [int] */ nseq f_701; /* [int] */ nseq f_702; /* [real] */ nseq f_703; /* [real] */ nseq f_916; /* [int] */ nseq f_917; /* [int] */ nseq f_1060; /* [int] */ nseq f_1115; /* [int] */ cse_466 = dpl_range1_i(dpl_length_s(T_225)); cse_451 = dpl_range1_i(dpl_length_s(T_219)); dpl_fre_nseq(T_219); f_916 = dpl_index_nr_p(cse_451, 1, cse_466); f_701 = dpl_index_nr_p(cse_401, 1, f_916); dpl_fre_nseq(f_916); cse_329 = dpl_index_nr_p(cse_437, 1, f_701); dpl_fre_nseq(f_701); f_702 = dpl_index_nr_p(T_207, 1, cse_329); f_1115 = dpl_index_nr_p(cse_400, 1, cse_329); dpl_fre_nseq(cse_329); f_1060 = dpl_index_nr_p(cse_328, 1, f_1115); dpl_fre_nseq(f_1115); f_917 = dpl_index_nr_p(cse_399, 1, f_1060); dpl_fre_nseq(f_1060); f_703 = dpl_index_nr_p(T_189, 1, f_917); dpl_fre_nseq(f_917); T_231 = dpl_add_p(f_702, f_703); dpl_fre_nseq(f_703); dpl_fre_nseq(f_702); { nseq T_235; /* [real] */ nseq let_613; /* [int] */ T_235 = dpl_mult_p(T_231, T_231); { nseq D_265; /* [int] */ nseq cse_330; /* [int] */ nseq M_266; /* [bool] */ nseq T_267; /* [int] */ nseq E_268; /* [int] */ nseq let_615; /* [int] */ nseq f_704; /* [real] */ nseq f_705; /* [real] */ int f_706; nseq f_918; /* [int] */ nseq f_919; /* [int] */ nseq f_1061; /* [int] */ D_265 = dpl_range1_i(dpl_length_s(T_235)); cse_330 = dpl_range1_i(dpl_length_s(T_231)); dpl_fre_nseq(T_231); f_1061 = dpl_index_nr_p(cse_330, 1, D_265); f_918 = dpl_index_nr_p(cse_466, 1, f_1061); dpl_fre_nseq(f_1061); f_704 = dpl_index_nr_p(T_225, 1, f_918); dpl_fre_nseq(f_918); f_705 = dpl_index_nr_p(T_235, 1, D_265); dpl_fre_nseq(T_235); M_266 = dpl_grt_p(f_704, f_705); dpl_fre_nseq(f_705); dpl_fre_nseq(f_704); f_919 = dpl_restrict_s(M_266, D_265); f_706 = dpl_length_s(f_919); dpl_fre_nseq(f_919); T_267 = dpl_dist_i(1, f_706); { nseq D_289; /* [int] */ nseq cse_331; /* [int] */ nseq M_290; /* [bool] */ nseq T_291; /* [int] */ nseq E_292; /* [int] */ nseq let_617; /* [int] */ nseq f_707; /* [bool] */ nseq f_708; /* [int] */ nseq f_709; /* [real] */ nseq f_710; /* [real] */ int f_711; nseq f_920; /* [int] */ nseq f_921; /* [int] */ nseq f_922; /* [int] */ nseq f_1062; /* [int] */ nseq f_1063; /* [int] */ nseq f_1116; /* [int] */ nseq f_1117; /* [int] */ f_707 = dpl_not_p(M_266); D_289 = dpl_restrict_s(f_707, D_265); dpl_fre_nseq(D_265); dpl_fre_nseq(f_707); f_1116 = dpl_index_nr_p(cse_330, 1, D_289); f_1062 = dpl_index_nr_p(cse_466, 1, f_1116); dpl_fre_nseq(f_1116); f_920 = dpl_index_nr_p(cse_451, 1, f_1062); dpl_fre_nseq(f_1062); f_708 = dpl_index_nr_p(cse_401, 1, f_920); dpl_fre_nseq(f_920); cse_331 = dpl_index_nr_p(cse_437, 1, f_708); dpl_fre_nseq(f_708); dpl_fre_nseq(cse_437); f_709 = dpl_index_nr_p(T_207, 1, cse_331); dpl_fre_nseq(T_207); f_1117 = dpl_index_nr_p(cse_400, 1, cse_331); dpl_fre_nseq(cse_331); dpl_fre_nseq(cse_400); f_1063 = dpl_index_nr_p(cse_328, 1, f_1117); dpl_fre_nseq(f_1117); dpl_fre_nseq(cse_328); f_921 = dpl_index_nr_p(cse_399, 1, f_1063); dpl_fre_nseq(f_1063); dpl_fre_nseq(cse_399); f_710 = dpl_index_nr_p(T_189, 1, f_921); dpl_fre_nseq(f_921); M_290 = dpl_leseq_p(f_709, f_710); dpl_fre_nseq(f_710); dpl_fre_nseq(f_709); f_922 = dpl_restrict_s(M_290, D_289); f_711 = dpl_length_s(f_922); dpl_fre_nseq(f_922); T_291 = dpl_dist_i(3, f_711); { nseq D_305; /* [int] */ nseq cse_332; /* [int] */ nseq cse_333; /* [real] */ nseq M_306; /* [bool] */ nseq T_307; /* [int] */ nseq E_308; /* [int] */ nseq f_712; /* [bool] */ nseq f_713; /* [int] */ nseq f_714; /* [int] */ nseq f_715; /* [real] */ nseq f_716; /* [real] */ int f_717; int f_718; nseq f_923; /* [int] */ nseq f_924; /* [int] */ nseq f_925; /* [int] */ nseq f_1064; /* [bool] */ f_712 = dpl_not_p(M_290); D_305 = dpl_restrict_s(f_712, D_289); dpl_fre_nseq(D_289); dpl_fre_nseq(f_712); f_713 = dpl_index_nr_p(cse_330, 1, D_305); dpl_fre_nseq(cse_330); cse_332 = dpl_index_nr_p(cse_466, 1, f_713); dpl_fre_nseq(f_713); dpl_fre_nseq(cse_466); f_923 = dpl_index_nr_p(cse_451, 1, cse_332); dpl_fre_nseq(cse_451); f_714 = dpl_index_nr_p(cse_401, 1, f_923); dpl_fre_nseq(f_923); dpl_fre_nseq(cse_401); cse_333 = dpl_index_nr_p(T_213, 1, f_714); dpl_fre_nseq(f_714); dpl_fre_nseq(T_213); f_715 = dpl_index_nr_p(T_225, 1, cse_332); dpl_fre_nseq(cse_332); dpl_fre_nseq(T_225); f_716 = dpl_mult_p(cse_333, cse_333); dpl_fre_nseq(cse_333); M_306 = dpl_leseq_p(f_715, f_716); dpl_fre_nseq(f_716); dpl_fre_nseq(f_715); f_924 = dpl_restrict_s(M_306, D_305); f_717 = dpl_length_s(f_924); dpl_fre_nseq(f_924); T_307 = dpl_dist_i(2, f_717); f_1064 = dpl_not_p(M_306); f_925 = dpl_restrict_s(f_1064, D_305); dpl_fre_nseq(D_305); dpl_fre_nseq(f_1064); f_718 = dpl_length_s(f_925); dpl_fre_nseq(f_925); E_308 = dpl_dist_i(3, f_718); let_617 = dpl_combine_s(M_306, T_307, E_308); dpl_fre_nseq(E_308); dpl_fre_nseq(T_307); dpl_fre_nseq(M_306); } E_292 = let_617; let_615 = dpl_combine_s(M_290, T_291, E_292); dpl_fre_nseq(E_292); dpl_fre_nseq(T_291); dpl_fre_nseq(M_290); } E_268 = let_615; let_613 = dpl_combine_s(M_266, T_267, E_268); dpl_fre_nseq(E_268); dpl_fre_nseq(T_267); dpl_fre_nseq(M_266); } let_608 = let_613; } let_599 = let_608; } let_590 = let_599; } let_581 = let_590; } let_572 = let_581; } let_559 = let_572; } let_547 = let_559; } let_533 = let_547; } let_519 = let_533; } return_20 = let_519; return return_20; } int sphere_in_cyl(nseq /* [real] */ center, real /* real */ radius, int /* int */ k, real /* real */ radius_squared) { int return_21; int let_520; { nseq csg_center; /* [real] */ nseq csg_top; /* [real] */ real csg_radius_top; nseq direction; /* [real] */ nseq v; /* [real] */ real cse_65; real cse_66; real cse_67; real cse_165; real cse_166; real cse_167; nseq normal; /* [real] */ real dist_line_sqr; real csg_radius; real dist_squared; real cse_68; real radius_add_sqr; int q_495; csg_center = dpl_index_s(prim, 2, k, 2); csg_top = dpl_index_s(prim, 2, k, 3); csg_radius_top = dpl_index_r(prim, 3, k, 4, 1); direction = vec_sub(csg_top, csg_center); dpl_fre_nseq(csg_top); v = vec_sub(center, csg_center); dpl_fre_nseq(csg_center); cse_65 = dpl_index_r(v, 1, 2); cse_66 = dpl_index_r(v, 1, 3); cse_67 = dpl_index_r(v, 1, 1); dpl_fre_nseq(v); cse_165 = dpl_index_r(direction, 1, 3); cse_166 = dpl_index_r(direction, 1, 2); cse_167 = dpl_index_r(direction, 1, 1); normal = (dpl_build_r(3, cse_65 * cse_165 - cse_66 * cse_166, cse_66 * cse_167 - cse_67 * cse_165, cse_67 * cse_166 - cse_65 * cse_167)); dist_line_sqr = vec_dotproduct_0(normal, normal) / vec_dotproduct_0(direction, direction); csg_radius = csg_radius_top; dist_squared = dist_line_sqr; cse_68 = (csg_radius + radius); radius_add_sqr = cse_68 * cse_68; if (dist_squared > radius_add_sqr) { q_495 = 1; } else { int q_496; if (csg_radius <= radius) { q_496 = 3; } else { int let_534; { real cse_69; real radius_sub_sqr; int q_497; cse_69 = (csg_radius - radius); radius_sub_sqr = cse_69 * cse_69; if (dist_squared <= radius_sub_sqr) { q_497 = 2; } else { q_497 = 3; } let_534 = q_497; } q_496 = let_534; } q_495 = q_496; } let_520 = q_495; } return_21 = let_520; return return_21; } nseq sphere_in_cyl_p(nseq /* [[real]] */ center, nseq /* [real] */ radius, nseq /* [int] */ k, nseq /* [real] */ radius_squared) { nseq return_22; /* [int] */ nseq let_521; /* [int] */ { nseq T_191; /* [real] */ nseq let_535; /* [int] */ T_191 = radius; { nseq cse_402; /* [int] */ nseq cse_334; /* [int] */ nseq T_197; /* [int] */ nseq let_548; /* [int] */ nseq f_719; /* [int] */ cse_402 = dpl_range1_i(dpl_length_s(T_191)); cse_334 = dpl_range1_i(dpl_length_s(center)); f_719 = dpl_index_nr_p(cse_334, 1, cse_402); T_197 = dpl_index_nr_p(k, 1, f_719); dpl_fre_nseq(f_719); { int cse_335; nseq T_203; /* [[real]] */ nseq let_560; /* [int] */ nseq f_720; /* [int] */ cse_335 = dpl_length_s(T_197); f_720 = dpl_dist_i(2, cse_335); T_203 = dpl_index_nr_p(prim, 2, T_197, f_720); dpl_fre_nseq(f_720); { int cse_439; nseq cse_403; /* [int] */ nseq cse_336; /* [int] */ nseq T_209; /* [[real]] */ nseq let_573; /* [int] */ nseq f_721; /* [int] */ nseq f_722; /* [int] */ nseq f_926; /* [int] */ cse_439 = dpl_length_s(T_203); cse_403 = dpl_range1_i(cse_439); cse_336 = dpl_range1_i(cse_335); f_926 = dpl_index_nr_p(cse_336, 1, cse_403); f_721 = dpl_index_nr_p(T_197, 1, f_926); dpl_fre_nseq(f_926); f_722 = dpl_dist_i(3, cse_439); T_209 = dpl_index_nr_p(prim, 2, f_721, f_722); dpl_fre_nseq(f_722); dpl_fre_nseq(f_721); { int cse_452; nseq cse_440; /* [int] */ nseq T_215; /* [real] */ nseq let_582; /* [int] */ nseq f_723; /* [int] */ nseq f_724; /* [int] */ nseq f_725; /* [int] */ nseq f_927; /* [int] */ nseq f_1065; /* [int] */ cse_452 = dpl_length_s(T_209); cse_440 = dpl_range1_i(cse_452); f_1065 = dpl_index_nr_p(cse_403, 1, cse_440); f_927 = dpl_index_nr_p(cse_336, 1, f_1065); dpl_fre_nseq(f_1065); f_723 = dpl_index_nr_p(T_197, 1, f_927); dpl_fre_nseq(f_927); dpl_fre_nseq(T_197); f_724 = dpl_dist_i(4, cse_452); f_725 = dpl_dist_i(1, cse_452); T_215 = dpl_index_nr_p(prim, 3, f_723, f_724, f_725); dpl_fre_nseq(f_725); dpl_fre_nseq(f_724); dpl_fre_nseq(f_723); { nseq cse_404; /* [int] */ nseq cse_337; /* [int] */ nseq T_221; /* [[real]] */ nseq let_591; /* [int] */ nseq f_726; /* [[real]] */ nseq f_727; /* [[real]] */ nseq f_928; /* [int] */ cse_404 = dpl_range1_i(dpl_length_s(T_215)); cse_337 = dpl_index_nr_p(cse_440, 1, cse_404); f_726 = dpl_index_nr_p(T_209, 1, cse_337); dpl_fre_nseq(T_209); f_928 = dpl_index_nr_p(cse_403, 1, cse_337); dpl_fre_nseq(cse_337); f_727 = dpl_index_nr_p(T_203, 1, f_928); dpl_fre_nseq(f_928); T_221 = vec_sub_p(f_726, f_727); dpl_fre_nseq(f_727); dpl_fre_nseq(f_726); { nseq cse_453; /* [int] */ nseq cse_441; /* [int] */ nseq T_227; /* [[real]] */ nseq let_600; /* [int] */ nseq f_728; /* [int] */ nseq f_729; /* [[real]] */ nseq f_730; /* [[real]] */ nseq f_929; /* [int] */ nseq f_930; /* [int] */ nseq f_1066; /* [int] */ nseq f_1118; /* [int] */ cse_453 = dpl_range1_i(dpl_length_s(T_221)); f_929 = dpl_index_nr_p(cse_404, 1, cse_453); f_728 = dpl_index_nr_p(cse_440, 1, f_929); dpl_fre_nseq(f_929); cse_441 = dpl_index_nr_p(cse_403, 1, f_728); dpl_fre_nseq(f_728); f_1118 = dpl_index_nr_p(cse_336, 1, cse_441); f_1066 = dpl_index_nr_p(cse_402, 1, f_1118); dpl_fre_nseq(f_1118); f_930 = dpl_index_nr_p(cse_334, 1, f_1066); dpl_fre_nseq(f_1066); dpl_fre_nseq(cse_334); f_729 = dpl_index_nr_p(center, 1, f_930); dpl_fre_nseq(f_930); f_730 = dpl_index_nr_p(T_203, 1, cse_441); dpl_fre_nseq(cse_441); dpl_fre_nseq(T_203); T_227 = vec_sub_p(f_729, f_730); dpl_fre_nseq(f_730); dpl_fre_nseq(f_729); { int cse_405; nseq cse_338; /* [int] */ nseq T_233; /* [real] */ nseq let_609; /* [int] */ nseq f_731; /* [int] */ cse_405 = dpl_length_s(T_227); cse_338 = dpl_range1_i(cse_405); f_731 = dpl_dist_i(2, cse_405); T_233 = dpl_index_nr_p(T_227, 2, cse_338, f_731); dpl_fre_nseq(f_731); { int cse_442; nseq cse_406; /* [int] */ nseq T_237; /* [real] */ nseq let_614; /* [int] */ nseq f_732; /* [int] */ nseq f_733; /* [int] */ cse_442 = dpl_length_s(T_233); cse_406 = dpl_range1_i(cse_442); f_732 = dpl_index_nr_p(cse_338, 1, cse_406); f_733 = dpl_dist_i(3, cse_442); T_237 = dpl_index_nr_p(T_227, 2, f_732, f_733); dpl_fre_nseq(f_733); dpl_fre_nseq(f_732); { int cse_454; nseq cse_443; /* [int] */ nseq T_239; /* [real] */ nseq let_616; /* [int] */ nseq f_734; /* [int] */ nseq f_735; /* [int] */ nseq f_931; /* [int] */ cse_454 = dpl_length_s(T_237); cse_443 = dpl_range1_i(cse_454); f_931 = dpl_index_nr_p(cse_406, 1, cse_443); f_734 = dpl_index_nr_p(cse_338, 1, f_931); dpl_fre_nseq(f_931); f_735 = dpl_dist_i(1, cse_454); T_239 = dpl_index_nr_p(T_227, 2, f_734, f_735); dpl_fre_nseq(f_735); dpl_fre_nseq(f_734); dpl_fre_nseq(T_227); { int cse_477; nseq cse_467; /* [int] */ nseq T_241; /* [real] */ nseq let_618; /* [int] */ nseq f_736; /* [int] */ nseq f_737; /* [int] */ nseq f_932; /* [int] */ nseq f_1067; /* [int] */ nseq f_1119; /* [int] */ cse_477 = dpl_length_s(T_239); cse_467 = dpl_range1_i(cse_477); f_1119 = dpl_index_nr_p(cse_443, 1, cse_467); f_1067 = dpl_index_nr_p(cse_406, 1, f_1119); dpl_fre_nseq(f_1119); f_932 = dpl_index_nr_p(cse_338, 1, f_1067); dpl_fre_nseq(f_1067); f_736 = dpl_index_nr_p(cse_453, 1, f_932); dpl_fre_nseq(f_932); f_737 = dpl_dist_i(3, cse_477); T_241 = dpl_index_nr_p(T_221, 2, f_736, f_737); dpl_fre_nseq(f_737); dpl_fre_nseq(f_736); { int cse_482; nseq cse_478; /* [int] */ nseq T_243; /* [real] */ nseq let_619; /* [int] */ nseq f_738; /* [int] */ nseq f_739; /* [int] */ nseq f_933; /* [int] */ nseq f_1068; /* [int] */ nseq f_1120; /* [int] */ nseq f_1148; /* [int] */ cse_482 = dpl_length_s(T_241); cse_478 = dpl_range1_i(cse_482); f_1148 = dpl_index_nr_p(cse_467, 1, cse_478); f_1120 = dpl_index_nr_p(cse_443, 1, f_1148); dpl_fre_nseq(f_1148); f_1068 = dpl_index_nr_p(cse_406, 1, f_1120); dpl_fre_nseq(f_1120); f_933 = dpl_index_nr_p(cse_338, 1, f_1068); dpl_fre_nseq(f_1068); f_738 = dpl_index_nr_p(cse_453, 1, f_933); dpl_fre_nseq(f_933); f_739 = dpl_dist_i(2, cse_482); T_243 = dpl_index_nr_p(T_221, 2, f_738, f_739); dpl_fre_nseq(f_739); dpl_fre_nseq(f_738); { int cse_485; nseq cse_483; /* [int] */ nseq T_245; /* [real] */ nseq let_620; /* [int] */ nseq f_740; /* [int] */ nseq f_741; /* [int] */ nseq f_934; /* [int] */ nseq f_1069; /* [int] */ nseq f_1121; /* [int] */ nseq f_1149; /* [int] */ nseq f_1162; /* [int] */ cse_485 = dpl_length_s(T_243); cse_483 = dpl_range1_i(cse_485); f_1162 = dpl_index_nr_p(cse_478, 1, cse_483); f_1149 = dpl_index_nr_p(cse_467, 1, f_1162); dpl_fre_nseq(f_1162); f_1121 = dpl_index_nr_p(cse_443, 1, f_1149); dpl_fre_nseq(f_1149); f_1069 = dpl_index_nr_p(cse_406, 1, f_1121); dpl_fre_nseq(f_1121); f_934 = dpl_index_nr_p(cse_338, 1, f_1069); dpl_fre_nseq(f_1069); f_740 = dpl_index_nr_p(cse_453, 1, f_934); dpl_fre_nseq(f_934); f_741 = dpl_dist_i(1, cse_485); T_245 = dpl_index_nr_p(T_221, 2, f_740, f_741); dpl_fre_nseq(f_741); dpl_fre_nseq(f_740); { nseq cse_486; /* [int] */ nseq cse_484; /* [int] */ nseq cse_479; /* [int] */ nseq cse_455; /* [int] */ nseq cse_444; /* [int] */ nseq cse_339; /* [real] */ nseq cse_340; /* [real] */ nseq cse_341; /* [real] */ nseq cse_407; /* [real] */ nseq cse_408; /* [real] */ nseq T_247; /* [[real]] */ nseq let_621; /* [int] */ nseq f_742; /* [int] */ nseq f_743; /* [real] */ nseq f_744; /* [real] */ nseq f_745; /* [real] */ nseq f_935; /* [real] */ nseq f_936; /* [real] */ nseq f_937; /* [real] */ nseq f_938; /* [real] */ nseq f_939; /* [real] */ nseq f_940; /* [real] */ cse_486 = dpl_range1_i(dpl_length_s(T_245)); cse_484 = dpl_index_nr_p(cse_483, 1, cse_486); cse_479 = dpl_index_nr_p(cse_478, 1, cse_484); cse_455 = dpl_index_nr_p(cse_467, 1, cse_479); cse_444 = dpl_index_nr_p(cse_443, 1, cse_455); f_742 = dpl_index_nr_p(cse_406, 1, cse_444); cse_339 = dpl_index_nr_p(T_233, 1, f_742); dpl_fre_nseq(f_742); dpl_fre_nseq(T_233); cse_340 = dpl_index_nr_p(T_237, 1, cse_444); dpl_fre_nseq(cse_444); dpl_fre_nseq(T_237); cse_341 = dpl_index_nr_p(T_239, 1, cse_455); dpl_fre_nseq(cse_455); dpl_fre_nseq(T_239); cse_407 = dpl_index_nr_p(T_241, 1, cse_479); dpl_fre_nseq(cse_479); dpl_fre_nseq(T_241); cse_408 = dpl_index_nr_p(T_243, 1, cse_484); dpl_fre_nseq(cse_484); dpl_fre_nseq(T_243); f_935 = dpl_mult_p(cse_339, cse_407); f_936 = dpl_mult_p(cse_340, cse_408); f_743 = dpl_sub_p(f_935, f_936); dpl_fre_nseq(f_936); dpl_fre_nseq(f_935); f_937 = dpl_mult_p(cse_340, T_245); dpl_fre_nseq(cse_340); f_938 = dpl_mult_p(cse_341, cse_407); dpl_fre_nseq(cse_407); f_744 = dpl_sub_p(f_937, f_938); dpl_fre_nseq(f_938); dpl_fre_nseq(f_937); f_939 = dpl_mult_p(cse_341, cse_408); dpl_fre_nseq(cse_408); dpl_fre_nseq(cse_341); f_940 = dpl_mult_p(cse_339, T_245); dpl_fre_nseq(T_245); dpl_fre_nseq(cse_339); f_745 = dpl_sub_p(f_939, f_940); dpl_fre_nseq(f_940); dpl_fre_nseq(f_939); T_247 = dpl_build_p(3, f_743, f_744, f_745); dpl_fre_nseq(f_745); dpl_fre_nseq(f_744); dpl_fre_nseq(f_743); { nseq cse_342; /* [[real]] */ nseq T_249; /* [real] */ nseq let_622; /* [int] */ nseq f_746; /* [int] */ nseq f_747; /* [real] */ nseq f_748; /* [real] */ nseq f_941; /* [int] */ nseq f_1070; /* [int] */ nseq f_1122; /* [int] */ nseq f_1150; /* [int] */ nseq f_1163; /* [int] */ nseq f_1171; /* [int] */ nseq f_1178; /* [int] */ nseq f_1183; /* [int] */ f_1183 = dpl_range1_i(dpl_length_s(T_247)); f_1178 = dpl_index_nr_p(cse_486, 1, f_1183); dpl_fre_nseq(f_1183); f_1171 = dpl_index_nr_p(cse_483, 1, f_1178); dpl_fre_nseq(f_1178); f_1163 = dpl_index_nr_p(cse_478, 1, f_1171); dpl_fre_nseq(f_1171); f_1150 = dpl_index_nr_p(cse_467, 1, f_1163); dpl_fre_nseq(f_1163); f_1122 = dpl_index_nr_p(cse_443, 1, f_1150); dpl_fre_nseq(f_1150); f_1070 = dpl_index_nr_p(cse_406, 1, f_1122); dpl_fre_nseq(f_1122); f_941 = dpl_index_nr_p(cse_338, 1, f_1070); dpl_fre_nseq(f_1070); f_746 = dpl_index_nr_p(cse_453, 1, f_941); dpl_fre_nseq(f_941); cse_342 = dpl_index_nr_p(T_221, 1, f_746); dpl_fre_nseq(f_746); dpl_fre_nseq(T_221); f_747 = vec_dotproduct_0_p(T_247, T_247); f_748 = vec_dotproduct_0_p(cse_342, cse_342); dpl_fre_nseq(cse_342); T_249 = dpl_divide_p(f_747, f_748); dpl_fre_nseq(f_748); dpl_fre_nseq(f_747); { nseq T_251; /* [real] */ nseq let_623; /* [int] */ nseq f_749; /* [int] */ nseq f_942; /* [int] */ nseq f_1071; /* [int] */ nseq f_1123; /* [int] */ nseq f_1151; /* [int] */ nseq f_1164; /* [int] */ nseq f_1172; /* [int] */ nseq f_1179; /* [int] */ nseq f_1184; /* [int] */ nseq f_1188; /* [int] */ nseq f_1192; /* [int] */ nseq f_1193; /* [int] */ f_1192 = dpl_range1_i(dpl_length_s(T_247)); f_1193 = dpl_range1_i(dpl_length_s(T_249)); f_1188 = dpl_index_nr_p(f_1192, 1, f_1193); dpl_fre_nseq(f_1193); dpl_fre_nseq(f_1192); f_1184 = dpl_index_nr_p(cse_486, 1, f_1188); dpl_fre_nseq(f_1188); f_1179 = dpl_index_nr_p(cse_483, 1, f_1184); dpl_fre_nseq(f_1184); f_1172 = dpl_index_nr_p(cse_478, 1, f_1179); dpl_fre_nseq(f_1179); f_1164 = dpl_index_nr_p(cse_467, 1, f_1172); dpl_fre_nseq(f_1172); f_1151 = dpl_index_nr_p(cse_443, 1, f_1164); dpl_fre_nseq(f_1164); f_1123 = dpl_index_nr_p(cse_406, 1, f_1151); dpl_fre_nseq(f_1151); f_1071 = dpl_index_nr_p(cse_338, 1, f_1123); dpl_fre_nseq(f_1123); f_942 = dpl_index_nr_p(cse_453, 1, f_1071); dpl_fre_nseq(f_1071); f_749 = dpl_index_nr_p(cse_404, 1, f_942); dpl_fre_nseq(f_942); T_251 = dpl_index_nr_p(T_215, 1, f_749); dpl_fre_nseq(f_749); dpl_fre_nseq(T_215); { nseq cse_343; /* [int] */ nseq T_253; /* [real] */ nseq let_624; /* [int] */ nseq f_750; /* [int] */ nseq f_943; /* [int] */ cse_343 = dpl_range1_i(dpl_length_s(T_251)); f_943 = dpl_range1_i(dpl_length_s(T_249)); f_750 = dpl_index_nr_p(f_943, 1, cse_343); dpl_fre_nseq(f_943); T_253 = dpl_index_nr_p(T_249, 1, f_750); dpl_fre_nseq(f_750); { nseq cse_409; /* [int] */ nseq cse_344; /* [int] */ nseq T_255; /* [real] */ nseq let_625; /* [int] */ nseq f_751; /* [real] */ nseq f_752; /* [real] */ nseq f_944; /* [int] */ nseq f_1072; /* [int] */ nseq f_1124; /* [int] */ nseq f_1152; /* [int] */ nseq f_1165; /* [int] */ nseq f_1173; /* [int] */ nseq f_1180; /* [int] */ nseq f_1185; /* [int] */ nseq f_1189; /* [int] */ nseq f_1194; /* [int] */ nseq f_1197; /* [int] */ nseq f_1200; /* [int] */ nseq f_1203; /* [int] */ nseq f_1206; /* [int] */ nseq f_1209; /* [int] */ nseq f_1210; /* [int] */ nseq f_1215; /* [int] */ cse_409 = dpl_range1_i(dpl_length_s(T_253)); cse_344 = dpl_index_nr_p(cse_343, 1, cse_409); f_751 = dpl_index_nr_p(T_251, 1, cse_344); f_1209 = dpl_range1_i(dpl_length_s(T_247)); f_1215 = dpl_range1_i(dpl_length_s(T_249)); f_1210 = dpl_index_nr_p(f_1215, 1, cse_344); dpl_fre_nseq(cse_344); dpl_fre_nseq(f_1215); f_1206 = dpl_index_nr_p(f_1209, 1, f_1210); dpl_fre_nseq(f_1210); dpl_fre_nseq(f_1209); f_1203 = dpl_index_nr_p(cse_486, 1, f_1206); dpl_fre_nseq(f_1206); f_1200 = dpl_index_nr_p(cse_483, 1, f_1203); dpl_fre_nseq(f_1203); f_1197 = dpl_index_nr_p(cse_478, 1, f_1200); dpl_fre_nseq(f_1200); f_1194 = dpl_index_nr_p(cse_467, 1, f_1197); dpl_fre_nseq(f_1197); f_1189 = dpl_index_nr_p(cse_443, 1, f_1194); dpl_fre_nseq(f_1194); f_1185 = dpl_index_nr_p(cse_406, 1, f_1189); dpl_fre_nseq(f_1189); f_1180 = dpl_index_nr_p(cse_338, 1, f_1185); dpl_fre_nseq(f_1185); f_1173 = dpl_index_nr_p(cse_453, 1, f_1180); dpl_fre_nseq(f_1180); f_1165 = dpl_index_nr_p(cse_404, 1, f_1173); dpl_fre_nseq(f_1173); f_1152 = dpl_index_nr_p(cse_440, 1, f_1165); dpl_fre_nseq(f_1165); f_1124 = dpl_index_nr_p(cse_403, 1, f_1152); dpl_fre_nseq(f_1152); f_1072 = dpl_index_nr_p(cse_336, 1, f_1124); dpl_fre_nseq(f_1124); f_944 = dpl_index_nr_p(cse_402, 1, f_1072); dpl_fre_nseq(f_1072); f_752 = dpl_index_nr_p(T_191, 1, f_944); dpl_fre_nseq(f_944); T_255 = dpl_add_p(f_751, f_752); dpl_fre_nseq(f_752); dpl_fre_nseq(f_751); { nseq T_257; /* [real] */ nseq let_626; /* [int] */ T_257 = dpl_mult_p(T_255, T_255); { nseq D_271; /* [int] */ nseq cse_345; /* [int] */ nseq M_272; /* [bool] */ nseq T_273; /* [int] */ nseq E_274; /* [int] */ nseq let_627; /* [int] */ nseq f_753; /* [real] */ nseq f_754; /* [real] */ int f_755; nseq f_945; /* [int] */ nseq f_946; /* [int] */ nseq f_1073; /* [int] */ D_271 = dpl_range1_i(dpl_length_s(T_257)); cse_345 = dpl_range1_i(dpl_length_s(T_255)); dpl_fre_nseq(T_255); f_1073 = dpl_index_nr_p(cse_345, 1, D_271); f_945 = dpl_index_nr_p(cse_409, 1, f_1073); dpl_fre_nseq(f_1073); f_753 = dpl_index_nr_p(T_253, 1, f_945); dpl_fre_nseq(f_945); f_754 = dpl_index_nr_p(T_257, 1, D_271); dpl_fre_nseq(T_257); M_272 = dpl_grt_p(f_753, f_754); dpl_fre_nseq(f_754); dpl_fre_nseq(f_753); f_946 = dpl_restrict_s(M_272, D_271); f_755 = dpl_length_s(f_946); dpl_fre_nseq(f_946); T_273 = dpl_dist_i(1, f_755); { nseq D_295; /* [int] */ nseq cse_346; /* [int] */ nseq M_296; /* [bool] */ nseq T_297; /* [int] */ nseq E_298; /* [int] */ nseq let_628; /* [int] */ nseq f_756; /* [bool] */ nseq f_757; /* [int] */ nseq f_758; /* [real] */ nseq f_759; /* [real] */ int f_760; nseq f_947; /* [int] */ nseq f_948; /* [int] */ nseq f_949; /* [int] */ nseq f_1074; /* [int] */ nseq f_1125; /* [int] */ nseq f_1153; /* [int] */ nseq f_1166; /* [int] */ nseq f_1174; /* [int] */ nseq f_1181; /* [int] */ nseq f_1186; /* [int] */ nseq f_1190; /* [int] */ nseq f_1195; /* [int] */ nseq f_1198; /* [int] */ nseq f_1201; /* [int] */ nseq f_1204; /* [int] */ nseq f_1207; /* [int] */ nseq f_1211; /* [int] */ nseq f_1212; /* [int] */ nseq f_1216; /* [int] */ f_756 = dpl_not_p(M_272); D_295 = dpl_restrict_s(f_756, D_271); dpl_fre_nseq(D_271); dpl_fre_nseq(f_756); f_947 = dpl_index_nr_p(cse_345, 1, D_295); f_757 = dpl_index_nr_p(cse_409, 1, f_947); dpl_fre_nseq(f_947); cse_346 = dpl_index_nr_p(cse_343, 1, f_757); dpl_fre_nseq(f_757); f_758 = dpl_index_nr_p(T_251, 1, cse_346); f_1211 = dpl_range1_i(dpl_length_s(T_247)); f_1216 = dpl_range1_i(dpl_length_s(T_249)); f_1212 = dpl_index_nr_p(f_1216, 1, cse_346); dpl_fre_nseq(cse_346); dpl_fre_nseq(f_1216); f_1207 = dpl_index_nr_p(f_1211, 1, f_1212); dpl_fre_nseq(f_1212); dpl_fre_nseq(f_1211); f_1204 = dpl_index_nr_p(cse_486, 1, f_1207); dpl_fre_nseq(f_1207); f_1201 = dpl_index_nr_p(cse_483, 1, f_1204); dpl_fre_nseq(f_1204); f_1198 = dpl_index_nr_p(cse_478, 1, f_1201); dpl_fre_nseq(f_1201); f_1195 = dpl_index_nr_p(cse_467, 1, f_1198); dpl_fre_nseq(f_1198); f_1190 = dpl_index_nr_p(cse_443, 1, f_1195); dpl_fre_nseq(f_1195); f_1186 = dpl_index_nr_p(cse_406, 1, f_1190); dpl_fre_nseq(f_1190); f_1181 = dpl_index_nr_p(cse_338, 1, f_1186); dpl_fre_nseq(f_1186); f_1174 = dpl_index_nr_p(cse_453, 1, f_1181); dpl_fre_nseq(f_1181); f_1166 = dpl_index_nr_p(cse_404, 1, f_1174); dpl_fre_nseq(f_1174); f_1153 = dpl_index_nr_p(cse_440, 1, f_1166); dpl_fre_nseq(f_1166); f_1125 = dpl_index_nr_p(cse_403, 1, f_1153); dpl_fre_nseq(f_1153); f_1074 = dpl_index_nr_p(cse_336, 1, f_1125); dpl_fre_nseq(f_1125); f_948 = dpl_index_nr_p(cse_402, 1, f_1074); dpl_fre_nseq(f_1074); f_759 = dpl_index_nr_p(T_191, 1, f_948); dpl_fre_nseq(f_948); M_296 = dpl_leseq_p(f_758, f_759); dpl_fre_nseq(f_759); dpl_fre_nseq(f_758); f_949 = dpl_restrict_s(M_296, D_295); f_760 = dpl_length_s(f_949); dpl_fre_nseq(f_949); T_297 = dpl_dist_i(3, f_760); { nseq cse_445; /* [int] */ nseq cse_347; /* [int] */ nseq T_301; /* [real] */ nseq let_629; /* [int] */ nseq f_761; /* [bool] */ nseq f_762; /* [int] */ nseq f_763; /* [real] */ nseq f_764; /* [real] */ nseq f_950; /* [int] */ nseq f_951; /* [int] */ nseq f_1075; /* [int] */ nseq f_1126; /* [int] */ nseq f_1154; /* [int] */ nseq f_1167; /* [int] */ nseq f_1175; /* [int] */ nseq f_1182; /* [int] */ nseq f_1187; /* [int] */ nseq f_1191; /* [int] */ nseq f_1196; /* [int] */ nseq f_1199; /* [int] */ nseq f_1202; /* [int] */ nseq f_1205; /* [int] */ nseq f_1208; /* [int] */ nseq f_1213; /* [int] */ nseq f_1214; /* [int] */ nseq f_1217; /* [int] */ f_761 = dpl_not_p(M_296); cse_445 = dpl_restrict_s(f_761, D_295); dpl_fre_nseq(D_295); dpl_fre_nseq(f_761); f_950 = dpl_index_nr_p(cse_345, 1, cse_445); f_762 = dpl_index_nr_p(cse_409, 1, f_950); dpl_fre_nseq(f_950); cse_347 = dpl_index_nr_p(cse_343, 1, f_762); dpl_fre_nseq(f_762); dpl_fre_nseq(cse_343); f_763 = dpl_index_nr_p(T_251, 1, cse_347); dpl_fre_nseq(T_251); f_1213 = dpl_range1_i(dpl_length_s(T_247)); dpl_fre_nseq(T_247); f_1217 = dpl_range1_i(dpl_length_s(T_249)); dpl_fre_nseq(T_249); f_1214 = dpl_index_nr_p(f_1217, 1, cse_347); dpl_fre_nseq(cse_347); dpl_fre_nseq(f_1217); f_1208 = dpl_index_nr_p(f_1213, 1, f_1214); dpl_fre_nseq(f_1214); dpl_fre_nseq(f_1213); f_1205 = dpl_index_nr_p(cse_486, 1, f_1208); dpl_fre_nseq(f_1208); dpl_fre_nseq(cse_486); f_1202 = dpl_index_nr_p(cse_483, 1, f_1205); dpl_fre_nseq(f_1205); dpl_fre_nseq(cse_483); f_1199 = dpl_index_nr_p(cse_478, 1, f_1202); dpl_fre_nseq(f_1202); dpl_fre_nseq(cse_478); f_1196 = dpl_index_nr_p(cse_467, 1, f_1199); dpl_fre_nseq(f_1199); dpl_fre_nseq(cse_467); f_1191 = dpl_index_nr_p(cse_443, 1, f_1196); dpl_fre_nseq(f_1196); dpl_fre_nseq(cse_443); f_1187 = dpl_index_nr_p(cse_406, 1, f_1191); dpl_fre_nseq(f_1191); dpl_fre_nseq(cse_406); f_1182 = dpl_index_nr_p(cse_338, 1, f_1187); dpl_fre_nseq(f_1187); dpl_fre_nseq(cse_338); f_1175 = dpl_index_nr_p(cse_453, 1, f_1182); dpl_fre_nseq(f_1182); dpl_fre_nseq(cse_453); f_1167 = dpl_index_nr_p(cse_404, 1, f_1175); dpl_fre_nseq(f_1175); dpl_fre_nseq(cse_404); f_1154 = dpl_index_nr_p(cse_440, 1, f_1167); dpl_fre_nseq(f_1167); dpl_fre_nseq(cse_440); f_1126 = dpl_index_nr_p(cse_403, 1, f_1154); dpl_fre_nseq(f_1154); dpl_fre_nseq(cse_403); f_1075 = dpl_index_nr_p(cse_336, 1, f_1126); dpl_fre_nseq(f_1126); dpl_fre_nseq(cse_336); f_951 = dpl_index_nr_p(cse_402, 1, f_1075); dpl_fre_nseq(f_1075); dpl_fre_nseq(cse_402); f_764 = dpl_index_nr_p(T_191, 1, f_951); dpl_fre_nseq(f_951); T_301 = dpl_sub_p(f_763, f_764); dpl_fre_nseq(f_764); dpl_fre_nseq(f_763); { nseq T_303; /* [real] */ nseq let_630; /* [int] */ T_303 = dpl_mult_p(T_301, T_301); { nseq D_311; /* [int] */ nseq M_312; /* [bool] */ nseq T_313; /* [int] */ nseq E_314; /* [int] */ nseq f_765; /* [real] */ nseq f_766; /* [real] */ int f_767; int f_768; nseq f_952; /* [int] */ nseq f_953; /* [int] */ nseq f_954; /* [int] */ nseq f_1076; /* [int] */ nseq f_1077; /* [bool] */ nseq f_1127; /* [int] */ nseq f_1155; /* [int] */ nseq f_1168; /* [int] */ D_311 = dpl_range1_i(dpl_length_s(T_303)); f_1168 = dpl_range1_i(dpl_length_s(T_301)); dpl_fre_nseq(T_301); f_1155 = dpl_index_nr_p(f_1168, 1, D_311); dpl_fre_nseq(f_1168); f_1127 = dpl_index_nr_p(cse_445, 1, f_1155); dpl_fre_nseq(f_1155); dpl_fre_nseq(cse_445); f_1076 = dpl_index_nr_p(cse_345, 1, f_1127); dpl_fre_nseq(f_1127); dpl_fre_nseq(cse_345); f_952 = dpl_index_nr_p(cse_409, 1, f_1076); dpl_fre_nseq(f_1076); dpl_fre_nseq(cse_409); f_765 = dpl_index_nr_p(T_253, 1, f_952); dpl_fre_nseq(f_952); dpl_fre_nseq(T_253); f_766 = dpl_index_nr_p(T_303, 1, D_311); dpl_fre_nseq(T_303); M_312 = dpl_leseq_p(f_765, f_766); dpl_fre_nseq(f_766); dpl_fre_nseq(f_765); f_953 = dpl_restrict_s(M_312, D_311); f_767 = dpl_length_s(f_953); dpl_fre_nseq(f_953); T_313 = dpl_dist_i(2, f_767); f_1077 = dpl_not_p(M_312); f_954 = dpl_restrict_s(f_1077, D_311); dpl_fre_nseq(D_311); dpl_fre_nseq(f_1077); f_768 = dpl_length_s(f_954); dpl_fre_nseq(f_954); E_314 = dpl_dist_i(3, f_768); let_630 = dpl_combine_s(M_312, T_313, E_314); dpl_fre_nseq(E_314); dpl_fre_nseq(T_313); dpl_fre_nseq(M_312); } let_629 = let_630; } let_628 = let_629; } E_298 = let_628; let_627 = dpl_combine_s(M_296, T_297, E_298); dpl_fre_nseq(E_298); dpl_fre_nseq(T_297); dpl_fre_nseq(M_296); } E_274 = let_627; let_626 = dpl_combine_s(M_272, T_273, E_274); dpl_fre_nseq(E_274); dpl_fre_nseq(T_273); dpl_fre_nseq(M_272); } let_625 = let_626; } let_624 = let_625; } let_623 = let_624; } let_622 = let_623; } let_621 = let_622; } let_620 = let_621; } let_619 = let_620; } let_618 = let_619; } let_616 = let_618; } let_614 = let_616; } let_609 = let_614; } let_600 = let_609; } let_591 = let_600; } let_582 = let_591; } let_573 = let_582; } let_560 = let_573; } let_548 = let_560; } let_535 = let_548; } let_521 = let_535; } return_22 = let_521; return return_22; } int sphere_in_primitive(nseq /* [real] */ center, real /* real */ radius, int /* int */ k) { int return_23; int let_522; { real op; real radius_squared; int q_498; op = dpl_index_r(prim, 3, k, 1, 1); radius_squared = radius * radius; if (2.000000 == op) { q_498 = sphere_in_halfspace(center, radius, k, radius_squared); } else { int q_499; if (op == 1.000000) { q_499 = sphere_in_sphere(center, radius, k, radius_squared); } else { int q_500; if (3.000000 == op) { q_500 = sphere_in_cyl(center, radius, k, radius_squared); } else { q_500 = 1; } q_499 = q_500; } q_498 = q_499; } let_522 = q_498; } return_23 = let_522; return return_23; } nseq sphere_in_primitive_p(nseq /* [[real]] */ center, nseq /* [real] */ radius, nseq /* [int] */ k) { nseq return_24; /* [int] */ nseq let_523; /* [int] */ { nseq T_89; /* [[real]] */ nseq let_536; /* [int] */ T_89 = center; { nseq cse_348; /* [int] */ nseq cse_173; /* [int] */ nseq T_91; /* [real] */ nseq let_549; /* [int] */ nseq f_769; /* [int] */ cse_348 = dpl_range1_i(dpl_length_s(T_89)); cse_173 = dpl_range1_i(dpl_length_s(center)); f_769 = dpl_index_nr_p(cse_173, 1, cse_348); T_91 = dpl_index_nr_p(radius, 1, f_769); dpl_fre_nseq(f_769); { nseq cse_410; /* [int] */ nseq T_93; /* [int] */ nseq let_561; /* [int] */ nseq f_770; /* [int] */ nseq f_955; /* [int] */ cse_410 = dpl_range1_i(dpl_length_s(T_91)); f_955 = dpl_index_nr_p(cse_348, 1, cse_410); f_770 = dpl_index_nr_p(cse_173, 1, f_955); dpl_fre_nseq(f_955); dpl_fre_nseq(cse_173); T_93 = dpl_index_nr_p(k, 1, f_770); dpl_fre_nseq(f_770); { int cse_349; nseq cse_174; /* [int] */ nseq T_95; /* [real] */ nseq let_574; /* [int] */ cse_349 = dpl_length_s(T_93); cse_174 = dpl_dist_i(1, cse_349); T_95 = dpl_index_nr_p(prim, 3, T_93, cse_174, cse_174); dpl_fre_nseq(cse_174); { nseq cse_446; /* [int] */ nseq cse_350; /* [int] */ nseq cse_175; /* [real] */ nseq T_97; /* [real] */ nseq let_583; /* [int] */ nseq f_771; /* [int] */ nseq f_956; /* [int] */ cse_446 = dpl_range1_i(dpl_length_s(T_95)); cse_350 = dpl_range1_i(cse_349); f_956 = dpl_index_nr_p(cse_350, 1, cse_446); f_771 = dpl_index_nr_p(cse_410, 1, f_956); dpl_fre_nseq(f_956); cse_175 = dpl_index_nr_p(T_91, 1, f_771); dpl_fre_nseq(f_771); T_97 = dpl_mult_p(cse_175, cse_175); dpl_fre_nseq(cse_175); { nseq D_105; /* [int] */ nseq M_106; /* [bool] */ nseq cse_411; /* [int] */ nseq cse_351; /* [int] */ nseq cse_176; /* [int] */ nseq T_107; /* [int] */ nseq E_108; /* [int] */ nseq let_592; /* [int] */ nseq f_772; /* [real] */ nseq f_773; /* [real] */ nseq f_774; /* [int] */ nseq f_775; /* [[real]] */ nseq f_776; /* [real] */ nseq f_777; /* [int] */ nseq f_778; /* [real] */ nseq f_957; /* [int] */ nseq f_958; /* [int] */ D_105 = dpl_range1_i(dpl_length_s(T_97)); f_772 = dpl_dist_r(2.000000, dpl_length_s(D_105)); f_957 = dpl_index_nr_p(cse_446, 1, D_105); f_773 = dpl_index_nr_p(T_95, 1, f_957); dpl_fre_nseq(f_957); M_106 = dpl_equal_p(f_772, f_773); dpl_fre_nseq(f_773); dpl_fre_nseq(f_772); cse_411 = dpl_restrict_s(M_106, D_105); f_774 = dpl_index_nr_p(cse_446, 1, cse_411); cse_351 = dpl_index_nr_p(cse_350, 1, f_774); dpl_fre_nseq(f_774); cse_176 = dpl_index_nr_p(cse_410, 1, cse_351); f_958 = dpl_index_nr_p(cse_348, 1, cse_176); f_775 = dpl_index_nr_p(T_89, 1, f_958); dpl_fre_nseq(f_958); f_776 = dpl_index_nr_p(T_91, 1, cse_176); dpl_fre_nseq(cse_176); f_777 = dpl_index_nr_p(T_93, 1, cse_351); dpl_fre_nseq(cse_351); f_778 = dpl_index_nr_p(T_97, 1, cse_411); dpl_fre_nseq(cse_411); T_107 = sphere_in_halfspace_p(f_775, f_776, f_777, f_778); dpl_fre_nseq(f_778); dpl_fre_nseq(f_777); dpl_fre_nseq(f_776); dpl_fre_nseq(f_775); { nseq D_123; /* [int] */ nseq M_124; /* [bool] */ nseq cse_412; /* [int] */ nseq cse_352; /* [int] */ nseq cse_177; /* [int] */ nseq T_125; /* [int] */ nseq E_126; /* [int] */ nseq let_601; /* [int] */ nseq f_779; /* [bool] */ nseq f_780; /* [real] */ nseq f_781; /* [real] */ nseq f_782; /* [int] */ nseq f_783; /* [[real]] */ nseq f_784; /* [real] */ nseq f_785; /* [int] */ nseq f_786; /* [real] */ nseq f_959; /* [int] */ nseq f_960; /* [int] */ f_779 = dpl_not_p(M_106); D_123 = dpl_restrict_s(f_779, D_105); dpl_fre_nseq(D_105); dpl_fre_nseq(f_779); f_959 = dpl_index_nr_p(cse_446, 1, D_123); f_780 = dpl_index_nr_p(T_95, 1, f_959); dpl_fre_nseq(f_959); f_781 = dpl_dist_r(1.000000, dpl_length_s(D_123)); M_124 = dpl_equal_p(f_780, f_781); dpl_fre_nseq(f_781); dpl_fre_nseq(f_780); cse_412 = dpl_restrict_s(M_124, D_123); f_782 = dpl_index_nr_p(cse_446, 1, cse_412); cse_352 = dpl_index_nr_p(cse_350, 1, f_782); dpl_fre_nseq(f_782); cse_177 = dpl_index_nr_p(cse_410, 1, cse_352); f_960 = dpl_index_nr_p(cse_348, 1, cse_177); f_783 = dpl_index_nr_p(T_89, 1, f_960); dpl_fre_nseq(f_960); f_784 = dpl_index_nr_p(T_91, 1, cse_177); dpl_fre_nseq(cse_177); f_785 = dpl_index_nr_p(T_93, 1, cse_352); dpl_fre_nseq(cse_352); f_786 = dpl_index_nr_p(T_97, 1, cse_412); dpl_fre_nseq(cse_412); T_125 = sphere_in_sphere_p(f_783, f_784, f_785, f_786); dpl_fre_nseq(f_786); dpl_fre_nseq(f_785); dpl_fre_nseq(f_784); dpl_fre_nseq(f_783); { nseq D_137; /* [int] */ nseq M_138; /* [bool] */ nseq cse_413; /* [int] */ nseq cse_353; /* [int] */ nseq cse_178; /* [int] */ nseq T_139; /* [int] */ nseq E_140; /* [int] */ nseq f_787; /* [bool] */ nseq f_788; /* [real] */ nseq f_789; /* [real] */ nseq f_790; /* [int] */ nseq f_791; /* [[real]] */ nseq f_792; /* [real] */ nseq f_793; /* [int] */ nseq f_794; /* [real] */ int f_795; nseq f_961; /* [int] */ nseq f_962; /* [int] */ nseq f_963; /* [int] */ nseq f_1078; /* [bool] */ f_787 = dpl_not_p(M_124); D_137 = dpl_restrict_s(f_787, D_123); dpl_fre_nseq(D_123); dpl_fre_nseq(f_787); f_788 = dpl_dist_r(3.000000, dpl_length_s(D_137)); f_961 = dpl_index_nr_p(cse_446, 1, D_137); f_789 = dpl_index_nr_p(T_95, 1, f_961); dpl_fre_nseq(f_961); dpl_fre_nseq(T_95); M_138 = dpl_equal_p(f_788, f_789); dpl_fre_nseq(f_789); dpl_fre_nseq(f_788); cse_413 = dpl_restrict_s(M_138, D_137); f_790 = dpl_index_nr_p(cse_446, 1, cse_413); dpl_fre_nseq(cse_446); cse_353 = dpl_index_nr_p(cse_350, 1, f_790); dpl_fre_nseq(f_790); dpl_fre_nseq(cse_350); cse_178 = dpl_index_nr_p(cse_410, 1, cse_353); dpl_fre_nseq(cse_410); f_962 = dpl_index_nr_p(cse_348, 1, cse_178); dpl_fre_nseq(cse_348); f_791 = dpl_index_nr_p(T_89, 1, f_962); dpl_fre_nseq(f_962); f_792 = dpl_index_nr_p(T_91, 1, cse_178); dpl_fre_nseq(cse_178); dpl_fre_nseq(T_91); f_793 = dpl_index_nr_p(T_93, 1, cse_353); dpl_fre_nseq(cse_353); dpl_fre_nseq(T_93); f_794 = dpl_index_nr_p(T_97, 1, cse_413); dpl_fre_nseq(cse_413); dpl_fre_nseq(T_97); T_139 = sphere_in_cyl_p(f_791, f_792, f_793, f_794); dpl_fre_nseq(f_794); dpl_fre_nseq(f_793); dpl_fre_nseq(f_792); dpl_fre_nseq(f_791); f_1078 = dpl_not_p(M_138); f_963 = dpl_restrict_s(f_1078, D_137); dpl_fre_nseq(D_137); dpl_fre_nseq(f_1078); f_795 = dpl_length_s(f_963); dpl_fre_nseq(f_963); E_140 = dpl_dist_i(1, f_795); let_601 = dpl_combine_s(M_138, T_139, E_140); dpl_fre_nseq(E_140); dpl_fre_nseq(T_139); dpl_fre_nseq(M_138); } E_126 = let_601; let_592 = dpl_combine_s(M_124, T_125, E_126); dpl_fre_nseq(E_126); dpl_fre_nseq(T_125); dpl_fre_nseq(M_124); } E_108 = let_592; let_583 = dpl_combine_s(M_106, T_107, E_108); dpl_fre_nseq(E_108); dpl_fre_nseq(T_107); dpl_fre_nseq(M_106); } let_574 = let_583; } let_561 = let_574; } let_549 = let_561; } let_536 = let_549; } let_523 = let_536; } return_24 = let_523; return return_24; } int qand_or(int /* int */ disj, nseq /* [int] */ qlseq) { int return_25; int q_501; bool if_631; nseq f_796; /* [bool] */ bool if_865; nseq f_964; /* [int] */ bool if_1035; bool if_1103; bool if_1141; bool if_1157; f_964 = dpl_dist_i(disj, dpl_length_s(qlseq)); f_796 = dpl_equal_p(qlseq, f_964); dpl_fre_nseq(f_964); if_631 = dpl_reduce_or_b(f_796); dpl_fre_nseq(f_796); if_865 = if_631; if_1035 = if_865; if_1103 = if_1035; if_1141 = if_1103; if_1157 = if_1141; if (if_1157) { q_501 = disj; } else { nseq let_524; /* [int] */ int q_502; bool if_632; nseq f_797; /* [bool] */ bool if_866; bool if_1036; bool if_1104; bool if_1142; bool if_1158; { int T_5; T_5 = 3 - disj; let_524 = dpl_dist_i(T_5, dpl_length_s(qlseq)); } f_797 = dpl_equal_p(qlseq, let_524); dpl_fre_nseq(let_524); if_632 = dpl_reduce_and_b(f_797); dpl_fre_nseq(f_797); if_866 = if_632; if_1036 = if_866; if_1104 = if_1036; if_1142 = if_1104; if_1158 = if_1142; if (if_1158) { q_502 = 3 - disj; } else { int q_503; bool if_633; nseq f_798; /* [bool] */ bool if_867; nseq f_965; /* [int] */ bool if_1037; bool if_1105; bool if_1143; bool if_1159; f_965 = dpl_dist_i(4, dpl_length_s(qlseq)); f_798 = dpl_equal_p(qlseq, f_965); dpl_fre_nseq(f_965); if_633 = dpl_reduce_or_b(f_798); dpl_fre_nseq(f_798); if_867 = if_633; if_1037 = if_867; if_1105 = if_1037; if_1143 = if_1105; if_1159 = if_1143; if (if_1159) { q_503 = 4; } else { int q_504; bool if_634; int a_637; nseq f_799; /* [int] */ int f_966; nseq f_1079; /* [int] */ nseq f_1128; /* [bool] */ nseq f_1156; /* [int] */ f_1156 = dpl_dist_i(3, dpl_length_s(qlseq)); f_1128 = dpl_equal_p(qlseq, f_1156); dpl_fre_nseq(f_1156); f_1079 = dpl_restrict_s(f_1128, qlseq); dpl_fre_nseq(f_1128); f_966 = dpl_length_s(f_1079); dpl_fre_nseq(f_1079); f_799 = dpl_dist_i(1, f_966); a_637 = dpl_length_s(f_799); dpl_fre_nseq(f_799); if_634 = a_637 == 1; if (if_634) { q_504 = 3; } else { q_504 = 4; } q_503 = q_504; } q_502 = q_503; } q_501 = q_502; } return_25 = q_501; return return_25; } nseq qand_or_p(nseq /* [int] */ disj, nseq /* [[int]] */ qlseq) { nseq return_26; /* [int] */ nseq let_525; /* [int] */ { nseq D_111; /* [int] */ nseq cse_179; /* [[int]] */ nseq M_112; /* [bool] */ nseq T_113; /* [int] */ nseq E_114; /* [int] */ nseq let_537; /* [[bool]] */ nseq let_538; /* [int] */ nseq f_803; /* [int] */ D_111 = dpl_range1_i(dpl_length_s(disj)); cse_179 = dpl_index_nr_p(qlseq, 1, D_111); { nseq V1_372; /* [[int]] */ nseq V2_373; /* [[int]] */ nseq f_800; /* [int] */ nseq f_801; /* [int] */ nseq f_802; /* [[[bool]]] */ nseq f_967; /* [int] */ nseq f_968; /* [int] */ V1_372 = cse_179; f_800 = dpl_index_nr_p(disj, 1, D_111); f_801 = dpl_length_p(cse_179); V2_373 = dpl_dist_p(f_800, f_801); dpl_fre_nseq(f_801); dpl_fre_nseq(f_800); f_967 = dpl_extract(V1_372, 1); f_968 = dpl_extract(V2_373, 1); dpl_fre_nseq(V2_373); f_802 = dpl_equal_p(f_967, f_968); dpl_fre_nseq(f_968); dpl_fre_nseq(f_967); let_537 = dpl_insert(f_802, V1_372, 1); dpl_fre_nseq(V1_372); dpl_fre_nseq(f_802); } M_112 = dpl_reduce_or_p(let_537); dpl_fre_nseq(let_537); f_803 = dpl_restrict_s(M_112, D_111); T_113 = dpl_index_nr_p(disj, 1, f_803); dpl_fre_nseq(f_803); { nseq D_129; /* [int] */ nseq cse_180; /* [[int]] */ nseq M_130; /* [bool] */ nseq cse_181; /* [int] */ nseq T_131; /* [int] */ nseq E_132; /* [int] */ nseq let_550; /* [[bool]] */ nseq let_551; /* [int] */ nseq f_804; /* [bool] */ nseq f_809; /* [int] */ nseq f_810; /* [int] */ f_804 = dpl_not_p(M_112); D_129 = dpl_restrict_s(f_804, D_111); dpl_fre_nseq(D_111); dpl_fre_nseq(f_804); cse_180 = dpl_index_nr_p(qlseq, 1, D_129); { nseq V1_374; /* [[int]] */ nseq V2_375; /* [[int]] */ nseq let_562; /* [[int]] */ nseq f_808; /* [[[bool]]] */ nseq f_969; /* [int] */ nseq f_970; /* [int] */ V1_374 = cse_180; { nseq T_135; /* [int] */ nseq f_805; /* [int] */ nseq f_806; /* [int] */ nseq f_807; /* [int] */ f_805 = dpl_dist_i(3, dpl_length_s(D_129)); f_806 = dpl_index_nr_p(disj, 1, D_129); T_135 = dpl_sub_p(f_805, f_806); dpl_fre_nseq(f_806); dpl_fre_nseq(f_805); f_807 = dpl_length_p(cse_180); let_562 = dpl_dist_p(T_135, f_807); dpl_fre_nseq(f_807); dpl_fre_nseq(T_135); } V2_375 = let_562; f_969 = dpl_extract(V1_374, 1); f_970 = dpl_extract(V2_375, 1); dpl_fre_nseq(V2_375); f_808 = dpl_equal_p(f_969, f_970); dpl_fre_nseq(f_970); dpl_fre_nseq(f_969); let_550 = dpl_insert(f_808, V1_374, 1); dpl_fre_nseq(V1_374); dpl_fre_nseq(f_808); } M_130 = dpl_reduce_and_p(let_550); dpl_fre_nseq(let_550); cse_181 = dpl_restrict_s(M_130, D_129); f_809 = dpl_dist_i(3, dpl_length_s(cse_181)); f_810 = dpl_index_nr_p(disj, 1, cse_181); dpl_fre_nseq(cse_181); T_131 = dpl_sub_p(f_809, f_810); dpl_fre_nseq(f_810); dpl_fre_nseq(f_809); { nseq D_143; /* [int] */ nseq cse_182; /* [[int]] */ nseq M_144; /* [bool] */ nseq T_145; /* [int] */ nseq E_146; /* [int] */ nseq let_563; /* [[bool]] */ nseq let_564; /* [int] */ nseq f_811; /* [bool] */ int f_815; nseq f_973; /* [int] */ f_811 = dpl_not_p(M_130); D_143 = dpl_restrict_s(f_811, D_129); dpl_fre_nseq(D_129); dpl_fre_nseq(f_811); cse_182 = dpl_index_nr_p(qlseq, 1, D_143); { nseq V1_376; /* [[int]] */ nseq V2_377; /* [[int]] */ nseq f_812; /* [int] */ nseq f_813; /* [int] */ nseq f_814; /* [[[bool]]] */ nseq f_971; /* [int] */ nseq f_972; /* [int] */ V1_376 = cse_182; f_812 = dpl_dist_i(4, dpl_length_s(D_143)); f_813 = dpl_length_p(cse_182); V2_377 = dpl_dist_p(f_812, f_813); dpl_fre_nseq(f_813); dpl_fre_nseq(f_812); f_971 = dpl_extract(V1_376, 1); f_972 = dpl_extract(V2_377, 1); dpl_fre_nseq(V2_377); f_814 = dpl_equal_p(f_971, f_972); dpl_fre_nseq(f_972); dpl_fre_nseq(f_971); let_563 = dpl_insert(f_814, V1_376, 1); dpl_fre_nseq(V1_376); dpl_fre_nseq(f_814); } M_144 = dpl_reduce_or_p(let_563); dpl_fre_nseq(let_563); f_973 = dpl_restrict_s(M_144, D_143); f_815 = dpl_length_s(f_973); dpl_fre_nseq(f_973); T_145 = dpl_dist_i(4, f_815); { nseq D_149; /* [int] */ int cse_354; nseq cse_183; /* [int] */ nseq cse_355; /* [[int]] */ nseq M_150; /* [bool] */ nseq T_151; /* [int] */ nseq E_152; /* [int] */ nseq let_575; /* [[bool]] */ nseq f_816; /* [bool] */ nseq f_820; /* [int] */ int f_821; int f_822; nseq f_976; /* [[int]] */ nseq f_977; /* [int] */ nseq f_978; /* [int] */ nseq f_1080; /* [int] */ nseq f_1081; /* [bool] */ nseq f_1129; /* [[int]] */ f_816 = dpl_not_p(M_144); D_149 = dpl_restrict_s(f_816, D_143); dpl_fre_nseq(D_143); dpl_fre_nseq(f_816); cse_354 = dpl_length_s(D_149); cse_183 = dpl_dist_i(1, cse_354); cse_355 = dpl_index_nr_p(qlseq, 1, D_149); { nseq V1_378; /* [[int]] */ nseq V2_379; /* [[int]] */ nseq f_817; /* [int] */ nseq f_818; /* [int] */ nseq f_819; /* [[[bool]]] */ nseq f_974; /* [int] */ nseq f_975; /* [int] */ V1_378 = cse_355; f_817 = dpl_dist_i(3, cse_354); f_818 = dpl_length_p(cse_355); V2_379 = dpl_dist_p(f_817, f_818); dpl_fre_nseq(f_818); dpl_fre_nseq(f_817); f_974 = dpl_extract(V1_378, 1); f_975 = dpl_extract(V2_379, 1); dpl_fre_nseq(V2_379); f_819 = dpl_equal_p(f_974, f_975); dpl_fre_nseq(f_975); dpl_fre_nseq(f_974); let_575 = dpl_insert(f_819, V1_378, 1); dpl_fre_nseq(f_819); } f_1129 = dpl_restrict_p(let_575, cse_355); dpl_fre_nseq(cse_355); dpl_fre_nseq(let_575); f_1080 = dpl_length_p(f_1129); dpl_fre_nseq(f_1129); f_976 = dpl_dist_p(cse_183, f_1080); dpl_fre_nseq(f_1080); f_820 = dpl_length_p(f_976); dpl_fre_nseq(f_976); M_150 = dpl_equal_p(f_820, cse_183); dpl_fre_nseq(cse_183); dpl_fre_nseq(f_820); f_977 = dpl_restrict_s(M_150, D_149); f_821 = dpl_length_s(f_977); dpl_fre_nseq(f_977); T_151 = dpl_dist_i(3, f_821); f_1081 = dpl_not_p(M_150); f_978 = dpl_restrict_s(f_1081, D_149); dpl_fre_nseq(D_149); dpl_fre_nseq(f_1081); f_822 = dpl_length_s(f_978); dpl_fre_nseq(f_978); E_152 = dpl_dist_i(4, f_822); let_564 = dpl_combine_s(M_150, T_151, E_152); dpl_fre_nseq(E_152); dpl_fre_nseq(T_151); dpl_fre_nseq(M_150); } E_146 = let_564; let_551 = dpl_combine_s(M_144, T_145, E_146); dpl_fre_nseq(E_146); dpl_fre_nseq(T_145); dpl_fre_nseq(M_144); } E_132 = let_551; let_538 = dpl_combine_s(M_130, T_131, E_132); dpl_fre_nseq(E_132); dpl_fre_nseq(T_131); dpl_fre_nseq(M_130); } E_114 = let_538; let_525 = dpl_combine_s(M_112, T_113, E_114); dpl_fre_nseq(E_114); dpl_fre_nseq(T_113); dpl_fre_nseq(M_112); } return_26 = let_525; return return_26; } nseq recursive_chop_and_drop(real /* real */ cube_size, nseq /* [[[real]]] */ cube_list, bool /* bool */ disj, nseq /* [[[int]]] */ csg_normal) { nseq return_27; /* [[[real]]] */ nseq let_526; /* [[[real]]] */ { nseq cse_76; /* [int] */ nseq cse_82; /* [[int]] */ int cse_75; nseq cse_79; /* [int] */ real cse_73; int outer; int inner; real cube_radius; real cse_74; real sphere_radius; real maybe_factor; int cse_77; nseq cubes_in_prim; /* [[[int]]] */ int cse_80; nseq cse_81; /* [int] */ nseq cse_83; /* [int] */ nseq cse_84; /* [[int]] */ nseq cubes_in_csg; /* [[int]] */ nseq cse_85; /* [[int]] */ nseq cse_186; /* [int] */ nseq pixmap_add_prefilter; /* [[real]] */ int cse_86; nseq cse_87; /* [int] */ nseq pixmap_add; /* [[real]] */ nseq cse_88; /* [[[real]]] */ nseq let_539; /* [[[int]]] */ nseq let_540; /* [[int]] */ nseq let_541; /* [[int]] */ nseq let_542; /* [[real]] */ int q_505; int q_506; nseq q_507; /* [[[real]]] */ bool if_635; nseq f_852; /* [real] */ nseq f_853; /* [real] */ nseq f_854; /* [real] */ nseq f_855; /* [int] */ bool if_868; nseq f_1021; /* [int] */ nseq f_1022; /* [bool] */ bool if_1038; nseq f_1091; /* [real] */ nseq f_1092; /* [real] */ bool if_1106; nseq f_1140; /* [int] */ cse_76 = dpl_length_p(cube_list); cse_82 = dpl_range1_p(cse_76); cse_75 = dpl_length_s(cube_list); cse_79 = dpl_range1_i(cse_75); cse_73 = cube_size / 2; if (disj) { q_505 = 2; } else { q_505 = 1; } outer = q_505; if (disj) { q_506 = 1; } else { q_506 = 2; } inner = q_506; cube_radius = cse_73; cse_74 = sqrt(2); sphere_radius = cube_radius * cse_74; maybe_factor = cube_radius * (3 / (2 * cse_74 * 3.141593)); cse_77 = dpl_length_s(prim); { nseq V1_380; /* [[[[real]]]] */ nseq V2_381; /* [[[real]]] */ nseq V3_382; /* [[[int]]] */ nseq let_552; /* [[[[real]]]] */ nseq let_553; /* [[[real]]] */ nseq let_554; /* [[[int]]] */ nseq f_829; /* [[[[int]]]] */ nseq f_986; /* [[real]] */ nseq f_987; /* [real] */ nseq f_988; /* [int] */ { nseq T_51; /* [[[real]]] */ nseq let_565; /* [[[real]]] */ nseq let_566; /* [[[[real]]]] */ { nseq V1_422; /* [[[real]]] */ nseq V2_423; /* [[real]] */ nseq f_823; /* [real] */ nseq f_824; /* [[[[real]]]] */ nseq f_979; /* [[real]] */ nseq f_980; /* [real] */ V1_422 = cube_list; f_823 = dpl_dist_r(cube_radius, cse_75); V2_423 = dpl_dist_p(f_823, cse_76); dpl_fre_nseq(f_823); f_979 = dpl_extract(V1_422, 1); f_980 = dpl_extract(V2_423, 1); dpl_fre_nseq(V2_423); f_824 = vec_add_scalar_p(f_979, f_980); dpl_fre_nseq(f_980); dpl_fre_nseq(f_979); let_565 = dpl_insert(f_824, V1_422, 1); dpl_fre_nseq(f_824); } T_51 = let_565; { nseq V1_424; /* [[[real]]] */ nseq V2_425; /* [[int]] */ nseq let_576; /* [[int]] */ nseq f_826; /* [[[[[real]]]]] */ nseq f_982; /* [[real]] */ nseq f_983; /* [int] */ V1_424 = T_51; { int cse_78; nseq T_53; /* [int] */ nseq let_584; /* [int] */ nseq f_825; /* [int] */ nseq f_981; /* [[[real]]] */ nseq f_1082; /* [int] */ nseq f_1130; /* [int] */ nseq f_1131; /* [int] */ cse_78 = dpl_length_s(T_51); { int T_55; T_55 = cse_77; let_584 = dpl_dist_i(T_55, cse_78); } T_53 = let_584; f_1130 = dpl_range1_i(cse_78); f_1131 = dpl_range1_i(dpl_length_s(T_53)); f_1082 = dpl_index_nr_p(f_1130, 1, f_1131); dpl_fre_nseq(f_1131); dpl_fre_nseq(f_1130); f_981 = dpl_index_nr_p(T_51, 1, f_1082); dpl_fre_nseq(f_1082); f_825 = dpl_length_p(f_981); dpl_fre_nseq(f_981); let_576 = dpl_dist_p(T_53, f_825); dpl_fre_nseq(f_825); dpl_fre_nseq(T_53); } V2_425 = let_576; f_982 = dpl_extract(V1_424, 1); f_983 = dpl_extract(V2_425, 1); dpl_fre_nseq(V2_425); f_826 = dpl_dist_p(f_982, f_983); dpl_fre_nseq(f_983); dpl_fre_nseq(f_982); let_566 = dpl_insert(f_826, V1_424, 1); dpl_fre_nseq(V1_424); dpl_fre_nseq(f_826); } let_552 = let_566; } V1_380 = let_552; { nseq T_23; /* [[real]] */ nseq let_567; /* [[real]] */ nseq f_827; /* [int] */ nseq f_984; /* [[[real]]] */ nseq f_1083; /* [int] */ nseq f_1132; /* [int] */ { nseq T_41; /* [real] */ T_41 = dpl_dist_r(sphere_radius, cse_77); let_567 = dpl_dist_s(T_41, cse_75); dpl_fre_nseq(T_41); } T_23 = let_567; f_1132 = dpl_range1_i(dpl_length_s(T_23)); f_1083 = dpl_index_nr_p(cse_79, 1, f_1132); dpl_fre_nseq(f_1132); f_984 = dpl_index_nr_p(cube_list, 1, f_1083); dpl_fre_nseq(f_1083); f_827 = dpl_length_p(f_984); dpl_fre_nseq(f_984); let_553 = dpl_dist_p(T_23, f_827); dpl_fre_nseq(f_827); dpl_fre_nseq(T_23); } V2_381 = let_553; { nseq T_25; /* [[int]] */ nseq let_568; /* [[int]] */ nseq f_828; /* [int] */ nseq f_985; /* [[[real]]] */ nseq f_1084; /* [int] */ nseq f_1133; /* [int] */ { nseq T_42; /* [int] */ T_42 = dpl_range1_i(cse_77); let_568 = dpl_dist_s(T_42, cse_75); dpl_fre_nseq(T_42); } T_25 = let_568; f_1133 = dpl_range1_i(dpl_length_s(T_25)); f_1084 = dpl_index_nr_p(cse_79, 1, f_1133); dpl_fre_nseq(f_1133); f_985 = dpl_index_nr_p(cube_list, 1, f_1084); dpl_fre_nseq(f_1084); f_828 = dpl_length_p(f_985); dpl_fre_nseq(f_985); let_554 = dpl_dist_p(T_25, f_828); dpl_fre_nseq(f_828); dpl_fre_nseq(T_25); } V3_382 = let_554; f_986 = dpl_extract(V1_380, 2); f_987 = dpl_extract(V2_381, 2); dpl_fre_nseq(V2_381); f_988 = dpl_extract(V3_382, 2); dpl_fre_nseq(V3_382); f_829 = sphere_in_primitive_p(f_986, f_987, f_988); dpl_fre_nseq(f_988); dpl_fre_nseq(f_987); dpl_fre_nseq(f_986); let_539 = dpl_insert(f_829, V1_380, 2); dpl_fre_nseq(V1_380); dpl_fre_nseq(f_829); } cubes_in_prim = let_539; cse_80 = dpl_length_s(csg_normal); cse_81 = dpl_length_p(csg_normal); cse_83 = dpl_range1_i(cse_80); cse_84 = dpl_range1_p(cse_81); { nseq V1_383; /* [[int]] */ nseq V2_384; /* [[[int]]] */ nseq let_555; /* [[[int]]] */ nseq f_830; /* [int] */ nseq f_847; /* [[[int]]] */ nseq f_1014; /* [int] */ nseq f_1015; /* [[int]] */ f_830 = dpl_dist_i(outer, cse_75); V1_383 = dpl_dist_p(f_830, cse_76); dpl_fre_nseq(f_830); { nseq V1_426; /* [[[int]]] */ nseq V2_427; /* [[[[int]]]] */ nseq let_569; /* [[[int]]] */ nseq let_570; /* [[[[int]]]] */ nseq f_846; /* [[[[int]]]] */ nseq f_1012; /* [int] */ nseq f_1013; /* [[int]] */ { nseq T_27; /* [[int]] */ nseq let_577; /* [[int]] */ nseq f_831; /* [int] */ nseq f_989; /* [[[real]]] */ nseq f_1085; /* [int] */ nseq f_1134; /* [int] */ { nseq T_43; /* [int] */ T_43 = dpl_dist_i(inner, cse_80); let_577 = dpl_dist_s(T_43, cse_75); dpl_fre_nseq(T_43); } T_27 = let_577; f_1134 = dpl_range1_i(dpl_length_s(T_27)); f_1085 = dpl_index_nr_p(cse_79, 1, f_1134); dpl_fre_nseq(f_1134); f_989 = dpl_index_nr_p(cube_list, 1, f_1085); dpl_fre_nseq(f_1085); f_831 = dpl_length_p(f_989); dpl_fre_nseq(f_989); let_569 = dpl_dist_p(T_27, f_831); dpl_fre_nseq(f_831); dpl_fre_nseq(T_27); } V1_426 = let_569; { nseq V1_447; /* [[[[int]]]] */ nseq V2_448; /* [[[[int]]]] */ nseq let_578; /* [[[[int]]]] */ nseq let_579; /* [[[[int]]]] */ nseq f_845; /* [[[[[int]]]]] */ nseq f_1010; /* [int] */ nseq f_1011; /* [int] */ { nseq V1_456; /* [[[int]]] */ int V2_457; nseq V3_458; /* [[[[int]]]] */ nseq V4_459; /* [[[[int]]]] */ nseq V5_460; /* [[[[int]]]] */ nseq let_585; /* [[[[int]]]] */ nseq let_586; /* [[[[int]]]] */ nseq let_587; /* [[[[int]]]] */ nseq f_841; /* [[[[[int]]]]] */ nseq f_1003; /* [int] */ nseq f_1004; /* [int] */ nseq f_1005; /* [int] */ V1_456 = cubes_in_prim; V2_457 = 3; { nseq T_29; /* [[[int]]] */ nseq let_593; /* [[[int]]] */ nseq f_833; /* [int] */ nseq f_992; /* [[[real]]] */ nseq f_1086; /* [int] */ nseq f_1135; /* [int] */ { nseq V1_468; /* [[int]] */ nseq V2_469; /* [[int]] */ nseq let_602; /* [int] */ nseq let_603; /* [[int]] */ nseq f_832; /* [[[[int]]]] */ nseq f_990; /* [int] */ nseq f_991; /* [int] */ { int T_50; T_50 = cse_80; let_602 = dpl_dist_i(T_50, cse_75); } V1_468 = dpl_dist_p(cse_79, let_602); dpl_fre_nseq(let_602); { nseq T_49; /* [int] */ T_49 = cse_81; let_603 = dpl_dist_s(T_49, cse_75); } V2_469 = let_603; f_990 = dpl_extract(V1_468, 1); f_991 = dpl_extract(V2_469, 1); dpl_fre_nseq(V2_469); f_832 = dpl_dist_p(f_990, f_991); dpl_fre_nseq(f_991); dpl_fre_nseq(f_990); let_593 = dpl_insert(f_832, V1_468, 1); dpl_fre_nseq(V1_468); dpl_fre_nseq(f_832); } T_29 = let_593; f_1135 = dpl_range1_i(dpl_length_s(T_29)); f_1086 = dpl_index_nr_p(cse_79, 1, f_1135); dpl_fre_nseq(f_1135); f_992 = dpl_index_nr_p(cube_list, 1, f_1086); dpl_fre_nseq(f_1086); f_833 = dpl_length_p(f_992); dpl_fre_nseq(f_992); let_585 = dpl_dist_p(T_29, f_833); dpl_fre_nseq(f_833); dpl_fre_nseq(T_29); } V3_458 = let_585; { nseq V1_470; /* [[[int]]] */ nseq V2_471; /* [[[int]]] */ nseq let_594; /* [[[int]]] */ nseq let_595; /* [[[int]]] */ nseq f_837; /* [[[[[int]]]]] */ nseq f_997; /* [int] */ nseq f_998; /* [int] */ { nseq V1_480; /* [[int]] */ nseq V2_481; /* [[int]] */ nseq let_604; /* [[int]] */ nseq f_835; /* [[[[int]]]] */ nseq f_994; /* [int] */ nseq f_995; /* [int] */ V1_480 = cse_82; { nseq T_31; /* [int] */ nseq let_610; /* [int] */ nseq f_834; /* [int] */ nseq f_993; /* [[[real]]] */ nseq f_1087; /* [int] */ nseq f_1136; /* [int] */ { int T_44; T_44 = cse_80; let_610 = dpl_dist_i(T_44, cse_75); } T_31 = let_610; f_1136 = dpl_range1_i(dpl_length_s(T_31)); f_1087 = dpl_index_nr_p(cse_79, 1, f_1136); dpl_fre_nseq(f_1136); f_993 = dpl_index_nr_p(cube_list, 1, f_1087); dpl_fre_nseq(f_1087); f_834 = dpl_length_p(f_993); dpl_fre_nseq(f_993); let_604 = dpl_dist_p(T_31, f_834); dpl_fre_nseq(f_834); dpl_fre_nseq(T_31); } V2_481 = let_604; f_994 = dpl_extract(V1_480, 1); f_995 = dpl_extract(V2_481, 1); dpl_fre_nseq(V2_481); f_835 = dpl_dist_p(f_994, f_995); dpl_fre_nseq(f_995); dpl_fre_nseq(f_994); let_594 = dpl_insert(f_835, V1_480, 1); dpl_fre_nseq(f_835); } V1_470 = let_594; { nseq T_33; /* [[int]] */ nseq let_605; /* [[int]] */ nseq f_836; /* [int] */ nseq f_996; /* [[[real]]] */ nseq f_1088; /* [int] */ nseq f_1137; /* [int] */ { nseq T_45; /* [int] */ T_45 = cse_81; let_605 = dpl_dist_s(T_45, cse_75); } T_33 = let_605; f_1137 = dpl_range1_i(dpl_length_s(T_33)); f_1088 = dpl_index_nr_p(cse_79, 1, f_1137); dpl_fre_nseq(f_1137); f_996 = dpl_index_nr_p(cube_list, 1, f_1088); dpl_fre_nseq(f_1088); f_836 = dpl_length_p(f_996); dpl_fre_nseq(f_996); let_595 = dpl_dist_p(T_33, f_836); dpl_fre_nseq(f_836); dpl_fre_nseq(T_33); } V2_471 = let_595; f_997 = dpl_extract(V1_470, 2); f_998 = dpl_extract(V2_471, 2); dpl_fre_nseq(V2_471); f_837 = dpl_dist_p(f_997, f_998); dpl_fre_nseq(f_998); dpl_fre_nseq(f_997); let_586 = dpl_insert(f_837, V1_470, 2); dpl_fre_nseq(V1_470); dpl_fre_nseq(f_837); } V4_459 = let_586; { nseq T_35; /* [[[int]]] */ nseq let_596; /* [[[int]]] */ nseq f_840; /* [int] */ nseq f_1002; /* [[[real]]] */ nseq f_1089; /* [int] */ nseq f_1138; /* [int] */ { nseq cse_184; /* [[int]] */ nseq T_46; /* [[int]] */ nseq let_606; /* [[int]] */ nseq f_838; /* [int] */ f_838 = dpl_dist_i(1, cse_80); cse_184 = dpl_dist_p(f_838, cse_81); dpl_fre_nseq(f_838); { nseq V1_472; /* [[[int]]] */ int V2_473; nseq V3_474; /* [[[int]]] */ nseq V4_475; /* [[int]] */ nseq V5_476; /* [[int]] */ nseq f_839; /* [[[int]]] */ nseq f_999; /* [[int]] */ nseq f_1000; /* [int] */ nseq f_1001; /* [int] */ V1_472 = csg_normal; V2_473 = 3; V3_474 = dpl_extend_s(cse_83, cse_184); V4_475 = dpl_extend_p(cse_84, cse_184); V5_476 = cse_184; f_999 = dpl_extract(V3_474, 1); f_1000 = dpl_extract(V4_475, 1); dpl_fre_nseq(V4_475); f_1001 = dpl_extract(V5_476, 1); dpl_fre_nseq(V5_476); f_839 = dpl_index_nr_p(V1_472, V2_473, f_999, f_1000, f_1001); dpl_fre_nseq(f_1001); dpl_fre_nseq(f_1000); dpl_fre_nseq(f_999); let_606 = dpl_insert(f_839, V3_474, 1); dpl_fre_nseq(V3_474); dpl_fre_nseq(f_839); } T_46 = let_606; let_596 = dpl_dist_s(T_46, cse_75); dpl_fre_nseq(T_46); } T_35 = let_596; f_1138 = dpl_range1_i(dpl_length_s(T_35)); f_1089 = dpl_index_nr_p(cse_79, 1, f_1138); dpl_fre_nseq(f_1138); f_1002 = dpl_index_nr_p(cube_list, 1, f_1089); dpl_fre_nseq(f_1089); f_840 = dpl_length_p(f_1002); dpl_fre_nseq(f_1002); let_587 = dpl_dist_p(T_35, f_840); dpl_fre_nseq(f_840); dpl_fre_nseq(T_35); } V5_460 = let_587; f_1003 = dpl_extract(V3_458, 3); f_1004 = dpl_extract(V4_459, 3); dpl_fre_nseq(V4_459); f_1005 = dpl_extract(V5_460, 3); dpl_fre_nseq(V5_460); f_841 = dpl_index_nr_p(V1_456, V2_457, f_1003, f_1004, f_1005); dpl_fre_nseq(f_1005); dpl_fre_nseq(f_1004); dpl_fre_nseq(f_1003); dpl_fre_nseq(V1_456); let_578 = dpl_insert(f_841, V3_458, 3); dpl_fre_nseq(V3_458); dpl_fre_nseq(f_841); } V1_447 = let_578; { nseq T_37; /* [[[int]]] */ nseq let_588; /* [[[int]]] */ nseq f_844; /* [int] */ nseq f_1009; /* [[[real]]] */ nseq f_1090; /* [int] */ nseq f_1139; /* [int] */ { nseq cse_185; /* [[int]] */ nseq T_47; /* [[int]] */ nseq let_597; /* [[int]] */ nseq f_842; /* [int] */ f_842 = dpl_dist_i(2, cse_80); cse_185 = dpl_dist_p(f_842, cse_81); dpl_fre_nseq(cse_81); dpl_fre_nseq(f_842); { nseq V1_461; /* [[[int]]] */ int V2_462; nseq V3_463; /* [[[int]]] */ nseq V4_464; /* [[int]] */ nseq V5_465; /* [[int]] */ nseq f_843; /* [[[int]]] */ nseq f_1006; /* [[int]] */ nseq f_1007; /* [int] */ nseq f_1008; /* [int] */ V1_461 = csg_normal; V2_462 = 3; V3_463 = dpl_extend_s(cse_83, cse_185); dpl_fre_nseq(cse_83); V4_464 = dpl_extend_p(cse_84, cse_185); dpl_fre_nseq(cse_84); V5_465 = cse_185; f_1006 = dpl_extract(V3_463, 1); f_1007 = dpl_extract(V4_464, 1); dpl_fre_nseq(V4_464); f_1008 = dpl_extract(V5_465, 1); dpl_fre_nseq(V5_465); f_843 = dpl_index_nr_p(V1_461, V2_462, f_1006, f_1007, f_1008); dpl_fre_nseq(f_1008); dpl_fre_nseq(f_1007); dpl_fre_nseq(f_1006); let_597 = dpl_insert(f_843, V3_463, 1); dpl_fre_nseq(V3_463); dpl_fre_nseq(f_843); } T_47 = let_597; let_588 = dpl_dist_s(T_47, cse_75); dpl_fre_nseq(T_47); } T_37 = let_588; f_1139 = dpl_range1_i(dpl_length_s(T_37)); f_1090 = dpl_index_nr_p(cse_79, 1, f_1139); dpl_fre_nseq(f_1139); f_1009 = dpl_index_nr_p(cube_list, 1, f_1090); dpl_fre_nseq(f_1090); f_844 = dpl_length_p(f_1009); dpl_fre_nseq(f_1009); let_579 = dpl_dist_p(T_37, f_844); dpl_fre_nseq(f_844); dpl_fre_nseq(T_37); } V2_448 = let_579; f_1010 = dpl_extract(V1_447, 3); f_1011 = dpl_extract(V2_448, 3); dpl_fre_nseq(V2_448); f_845 = qnot_or_id_p(f_1010, f_1011); dpl_fre_nseq(f_1011); dpl_fre_nseq(f_1010); let_570 = dpl_insert(f_845, V1_447, 3); dpl_fre_nseq(V1_447); dpl_fre_nseq(f_845); } V2_427 = let_570; f_1012 = dpl_extract(V1_426, 2); f_1013 = dpl_extract(V2_427, 2); dpl_fre_nseq(V2_427); f_846 = qand_or_p(f_1012, f_1013); dpl_fre_nseq(f_1013); dpl_fre_nseq(f_1012); let_555 = dpl_insert(f_846, V1_426, 2); dpl_fre_nseq(V1_426); dpl_fre_nseq(f_846); } V2_384 = let_555; f_1014 = dpl_extract(V1_383, 1); f_1015 = dpl_extract(V2_384, 1); dpl_fre_nseq(V2_384); f_847 = qand_or_p(f_1014, f_1015); dpl_fre_nseq(f_1015); dpl_fre_nseq(f_1014); let_540 = dpl_insert(f_847, V1_383, 1); dpl_fre_nseq(V1_383); dpl_fre_nseq(f_847); } cubes_in_csg = let_540; { nseq V1_385; /* [[int]] */ int V2_386; nseq V3_387; /* [[int]] */ nseq V4_388; /* [[int]] */ nseq f_848; /* [[[int]]] */ nseq f_1016; /* [int] */ nseq f_1017; /* [int] */ V1_385 = cubes_in_csg; V2_386 = 2; V3_387 = dpl_dist_p(cse_79, cse_76); V4_388 = cse_82; f_1016 = dpl_extract(V3_387, 1); f_1017 = dpl_extract(V4_388, 1); dpl_fre_nseq(V4_388); f_848 = dpl_index_nr_p(V1_385, V2_386, f_1016, f_1017); dpl_fre_nseq(f_1017); dpl_fre_nseq(f_1016); dpl_fre_nseq(V1_385); let_541 = dpl_insert(f_848, V3_387, 1); dpl_fre_nseq(V3_387); dpl_fre_nseq(f_848); } cse_85 = let_541; cse_186 = dpl_dist_i(1, cse_75); { nseq V1_389; /* [[int]] */ nseq V2_390; /* [[real]] */ nseq V3_391; /* [[real]] */ nseq f_849; /* [real] */ nseq f_850; /* [real] */ nseq f_851; /* [[[real]]] */ nseq f_1018; /* [int] */ nseq f_1019; /* [real] */ nseq f_1020; /* [real] */ V1_389 = cse_85; f_849 = dpl_dist_r(cube_size, cse_75); V2_390 = dpl_dist_p(f_849, cse_76); dpl_fre_nseq(f_849); f_850 = dpl_dist_r(maybe_factor, cse_75); V3_391 = dpl_dist_p(f_850, cse_76); dpl_fre_nseq(f_850); f_1018 = dpl_extract(V1_389, 1); f_1019 = dpl_extract(V2_390, 1); dpl_fre_nseq(V2_390); f_1020 = dpl_extract(V3_391, 1); dpl_fre_nseq(V3_391); f_851 = cube_pixmap_value_p(f_1018, f_1019, f_1020); dpl_fre_nseq(f_1020); dpl_fre_nseq(f_1019); dpl_fre_nseq(f_1018); let_542 = dpl_insert(f_851, V1_389, 1); dpl_fre_nseq(f_851); } f_852 = dpl_index_nr_p(cube_list, 3, cse_79, cse_186, cse_186); f_1021 = dpl_dist_i(2, cse_75); f_853 = dpl_index_nr_p(cube_list, 3, cse_79, cse_186, f_1021); dpl_fre_nseq(f_1021); dpl_fre_nseq(cse_186); dpl_fre_nseq(cse_79); f_854 = dpl_reduce_plus_p(let_542); dpl_fre_nseq(let_542); pixmap_add_prefilter = dpl_build_p(3, f_852, f_853, f_854); dpl_fre_nseq(f_854); dpl_fre_nseq(f_853); dpl_fre_nseq(f_852); cse_86 = dpl_length_s(pixmap_add_prefilter); cse_87 = dpl_range1_i(cse_86); f_1091 = dpl_dist_r(0.000000, cse_86); f_1140 = dpl_dist_i(3, cse_86); f_1092 = dpl_index_nr_p(pixmap_add_prefilter, 2, cse_87, f_1140); dpl_fre_nseq(f_1140); f_1022 = dpl_nequal_p(f_1091, f_1092); dpl_fre_nseq(f_1092); dpl_fre_nseq(f_1091); f_855 = dpl_restrict_s(f_1022, cse_87); dpl_fre_nseq(cse_87); dpl_fre_nseq(f_1022); pixmap_add = dpl_index_nr_p(pixmap_add_prefilter, 1, f_855); dpl_fre_nseq(f_855); dpl_fre_nseq(pixmap_add_prefilter); cse_88 = dpl_build_s(1, pixmap_add); dpl_fre_nseq(pixmap_add); if_635 = cube_size <= 1.000000; if_868 = if_635; if_1038 = if_868; if_1106 = if_1038; if (if_1106) { q_507 = cse_88; } else { nseq let_543; /* [[bool]] */ nseq f_861; /* [[[real]]] */ nseq f_1029; /* [[[real]]] */ nseq f_1093; /* [[[real]]] */ { nseq V1_392; /* [[bool]] */ nseq V2_393; /* [[bool]] */ nseq let_556; /* [[bool]] */ nseq let_557; /* [[bool]] */ nseq f_860; /* [[[bool]]] */ nseq f_1027; /* [bool] */ nseq f_1028; /* [bool] */ { nseq V1_428; /* [[int]] */ nseq V2_429; /* [[int]] */ nseq f_856; /* [int] */ nseq f_857; /* [[[bool]]] */ nseq f_1023; /* [int] */ nseq f_1024; /* [int] */ V1_428 = cse_85; f_856 = dpl_dist_i(4, cse_75); V2_429 = dpl_dist_p(f_856, cse_76); dpl_fre_nseq(f_856); f_1023 = dpl_extract(V1_428, 1); f_1024 = dpl_extract(V2_429, 1); dpl_fre_nseq(V2_429); f_857 = dpl_equal_p(f_1023, f_1024); dpl_fre_nseq(f_1024); dpl_fre_nseq(f_1023); let_556 = dpl_insert(f_857, V1_428, 1); dpl_fre_nseq(f_857); } V1_392 = let_556; { nseq V1_430; /* [[int]] */ nseq V2_431; /* [[int]] */ nseq f_858; /* [int] */ nseq f_859; /* [[[bool]]] */ nseq f_1025; /* [int] */ nseq f_1026; /* [int] */ V1_430 = cse_85; f_858 = dpl_dist_i(3, cse_75); V2_431 = dpl_dist_p(f_858, cse_76); dpl_fre_nseq(cse_76); dpl_fre_nseq(f_858); f_1025 = dpl_extract(V1_430, 1); f_1026 = dpl_extract(V2_431, 1); dpl_fre_nseq(V2_431); f_859 = dpl_equal_p(f_1025, f_1026); dpl_fre_nseq(f_1026); dpl_fre_nseq(f_1025); let_557 = dpl_insert(f_859, V1_430, 1); dpl_fre_nseq(V1_430); dpl_fre_nseq(f_859); } V2_393 = let_557; f_1027 = dpl_extract(V1_392, 1); f_1028 = dpl_extract(V2_393, 1); dpl_fre_nseq(V2_393); f_860 = dpl_or_p(f_1027, f_1028); dpl_fre_nseq(f_1028); dpl_fre_nseq(f_1027); let_543 = dpl_insert(f_860, V1_392, 1); dpl_fre_nseq(V1_392); dpl_fre_nseq(f_860); } f_1093 = filter2D(let_543, cube_list); dpl_fre_nseq(let_543); f_1029 = subdivide(f_1093, cse_73); dpl_fre_nseq(f_1093); f_861 = recursive_chop_and_drop(cse_73, f_1029, disj, csg_normal); dpl_fre_nseq(f_1029); q_507 = dpl_concat_s(cse_88, f_861); dpl_fre_nseq(f_861); dpl_fre_nseq(cse_88); } let_526 = q_507; } return_27 = let_526; return return_27; } nseq chop_and_drop(real /* real */ cube_size, nseq /* [[[real]]] */ cube_list, bool /* bool */ disj, nseq /* [[[real]]] */ primitives, nseq /* [[[int]]] */ csg_normal) { nseq return_28; /* [[[real]]] */ prim = primitives; return_28 = recursive_chop_and_drop(cube_size, cube_list, disj, csg_normal); return return_28; } #if 0 void main() { nseq f_862; /* [[[real]]] */ nseq f_863; /* [[[real]]] */ nseq f_864; /* [[[int]]] */ nseq f_1030; /* [[real]] */ nseq f_1031; /* [[real]] */ nseq f_1032; /* [[real]] */ nseq f_1033; /* [[int]] */ nseq f_1034; /* [[int]] */ nseq f_1094; /* [real] */ nseq f_1095; /* [real] */ nseq f_1096; /* [real] */ nseq f_1097; /* [real] */ nseq f_1098; /* [real] */ nseq f_1099; /* [real] */ nseq f_1100; /* [real] */ nseq f_1101; /* [int] */ nseq f_1102; /* [int] */ dpl_setmem(); qnot = dpl_build_i(8, 1, 2, 3, 4, 2, 1, 3, 4); f_1094 = dpl_build_r(3, 0.000000, 0.000000, 0.000000); f_1030 = dpl_build_s(1, f_1094); dpl_fre_nseq(f_1094); f_862 = dpl_build_s(1, f_1030); dpl_fre_nseq(f_1030); f_1095 = dpl_build_r(3, 1.000000, 1.000000, 1.000000); f_1096 = dpl_build_r(3, 8.000000, 8.000000, -128.012000); f_1097 = dpl_build_r(3, 128.261000, 128.261000, 128.261000); f_1031 = dpl_build_s(3, f_1095, f_1096, f_1097); dpl_fre_nseq(f_1097); dpl_fre_nseq(f_1096); dpl_fre_nseq(f_1095); f_1098 = dpl_build_r(3, 1.000000, 1.000000, 1.000000); f_1099 = dpl_build_r(3, 9.934000, 9.923000, 0.221000); f_1100 = dpl_build_r(3, 1.603000, 1.603000, 1.603000); f_1032 = dpl_build_s(3, f_1098, f_1099, f_1100); dpl_fre_nseq(f_1100); dpl_fre_nseq(f_1099); dpl_fre_nseq(f_1098); f_863 = dpl_build_s(2, f_1031, f_1032); dpl_fre_nseq(f_1032); dpl_fre_nseq(f_1031); f_1101 = dpl_build_i(2, 1, 1); f_1033 = dpl_build_s(1, f_1101); dpl_fre_nseq(f_1101); f_1102 = dpl_build_i(2, 2, 0); f_1034 = dpl_build_s(1, f_1102); dpl_fre_nseq(f_1102); f_864 = dpl_build_s(2, f_1033, f_1034); dpl_fre_nseq(f_1034); dpl_fre_nseq(f_1033); A = chop_and_drop(16.000000, f_862, false, f_863, f_864); dpl_fre_nseq(f_864); dpl_fre_nseq(f_863); dpl_fre_nseq(f_862); show_p(A); dpl_fre_nseq(A); } #endif