warp-lang 1.6.2__py3-none-macosx_10_13_universal2.whl → 1.7.1__py3-none-macosx_10_13_universal2.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of warp-lang might be problematic. Click here for more details.

Files changed (191) hide show
  1. warp/__init__.py +7 -1
  2. warp/autograd.py +12 -2
  3. warp/bin/libwarp-clang.dylib +0 -0
  4. warp/bin/libwarp.dylib +0 -0
  5. warp/build.py +410 -0
  6. warp/build_dll.py +6 -14
  7. warp/builtins.py +463 -372
  8. warp/codegen.py +196 -124
  9. warp/config.py +42 -6
  10. warp/context.py +496 -271
  11. warp/dlpack.py +8 -6
  12. warp/examples/assets/nonuniform.usd +0 -0
  13. warp/examples/assets/nvidia_logo.png +0 -0
  14. warp/examples/benchmarks/benchmark_cloth.py +1 -1
  15. warp/examples/benchmarks/benchmark_tile_load_store.py +103 -0
  16. warp/examples/core/example_sample_mesh.py +300 -0
  17. warp/examples/distributed/example_jacobi_mpi.py +507 -0
  18. warp/examples/fem/example_apic_fluid.py +1 -1
  19. warp/examples/fem/example_burgers.py +2 -2
  20. warp/examples/fem/example_deformed_geometry.py +1 -1
  21. warp/examples/fem/example_distortion_energy.py +1 -1
  22. warp/examples/fem/example_magnetostatics.py +6 -6
  23. warp/examples/fem/utils.py +9 -3
  24. warp/examples/interop/example_jax_callable.py +116 -0
  25. warp/examples/interop/example_jax_ffi_callback.py +132 -0
  26. warp/examples/interop/example_jax_kernel.py +205 -0
  27. warp/examples/optim/example_fluid_checkpoint.py +497 -0
  28. warp/examples/tile/example_tile_matmul.py +2 -4
  29. warp/fem/__init__.py +11 -1
  30. warp/fem/adaptivity.py +4 -4
  31. warp/fem/field/field.py +11 -1
  32. warp/fem/field/nodal_field.py +56 -88
  33. warp/fem/field/virtual.py +62 -23
  34. warp/fem/geometry/adaptive_nanogrid.py +16 -13
  35. warp/fem/geometry/closest_point.py +1 -1
  36. warp/fem/geometry/deformed_geometry.py +5 -2
  37. warp/fem/geometry/geometry.py +5 -0
  38. warp/fem/geometry/grid_2d.py +12 -12
  39. warp/fem/geometry/grid_3d.py +12 -15
  40. warp/fem/geometry/hexmesh.py +5 -7
  41. warp/fem/geometry/nanogrid.py +9 -11
  42. warp/fem/geometry/quadmesh.py +13 -13
  43. warp/fem/geometry/tetmesh.py +3 -4
  44. warp/fem/geometry/trimesh.py +7 -20
  45. warp/fem/integrate.py +262 -93
  46. warp/fem/linalg.py +5 -5
  47. warp/fem/quadrature/pic_quadrature.py +37 -22
  48. warp/fem/quadrature/quadrature.py +194 -25
  49. warp/fem/space/__init__.py +1 -1
  50. warp/fem/space/basis_function_space.py +4 -2
  51. warp/fem/space/basis_space.py +25 -18
  52. warp/fem/space/hexmesh_function_space.py +2 -2
  53. warp/fem/space/partition.py +6 -2
  54. warp/fem/space/quadmesh_function_space.py +8 -8
  55. warp/fem/space/shape/cube_shape_function.py +23 -23
  56. warp/fem/space/shape/square_shape_function.py +12 -12
  57. warp/fem/space/shape/triangle_shape_function.py +1 -1
  58. warp/fem/space/tetmesh_function_space.py +3 -3
  59. warp/fem/space/trimesh_function_space.py +2 -2
  60. warp/fem/utils.py +12 -6
  61. warp/jax.py +14 -1
  62. warp/jax_experimental/__init__.py +16 -0
  63. warp/{jax_experimental.py → jax_experimental/custom_call.py} +28 -29
  64. warp/jax_experimental/ffi.py +702 -0
  65. warp/jax_experimental/xla_ffi.py +602 -0
  66. warp/math.py +89 -0
  67. warp/native/array.h +13 -0
  68. warp/native/builtin.h +29 -3
  69. warp/native/bvh.cpp +3 -1
  70. warp/native/bvh.cu +42 -14
  71. warp/native/bvh.h +2 -1
  72. warp/native/clang/clang.cpp +30 -3
  73. warp/native/cuda_util.cpp +14 -0
  74. warp/native/cuda_util.h +2 -0
  75. warp/native/exports.h +68 -63
  76. warp/native/intersect.h +26 -26
  77. warp/native/intersect_adj.h +33 -33
  78. warp/native/marching.cu +1 -1
  79. warp/native/mat.h +513 -9
  80. warp/native/mesh.h +10 -10
  81. warp/native/quat.h +99 -11
  82. warp/native/rand.h +6 -0
  83. warp/native/sort.cpp +122 -59
  84. warp/native/sort.cu +152 -15
  85. warp/native/sort.h +8 -1
  86. warp/native/sparse.cpp +43 -22
  87. warp/native/sparse.cu +52 -17
  88. warp/native/svd.h +116 -0
  89. warp/native/tile.h +312 -116
  90. warp/native/tile_reduce.h +46 -3
  91. warp/native/vec.h +68 -7
  92. warp/native/volume.cpp +85 -113
  93. warp/native/volume_builder.cu +25 -10
  94. warp/native/volume_builder.h +6 -0
  95. warp/native/warp.cpp +5 -6
  96. warp/native/warp.cu +100 -11
  97. warp/native/warp.h +19 -10
  98. warp/optim/linear.py +10 -10
  99. warp/render/render_opengl.py +19 -17
  100. warp/render/render_usd.py +93 -3
  101. warp/sim/articulation.py +4 -4
  102. warp/sim/collide.py +32 -19
  103. warp/sim/import_mjcf.py +449 -155
  104. warp/sim/import_urdf.py +32 -12
  105. warp/sim/inertia.py +189 -156
  106. warp/sim/integrator_euler.py +8 -5
  107. warp/sim/integrator_featherstone.py +3 -10
  108. warp/sim/integrator_vbd.py +207 -2
  109. warp/sim/integrator_xpbd.py +8 -5
  110. warp/sim/model.py +71 -25
  111. warp/sim/render.py +4 -0
  112. warp/sim/utils.py +2 -2
  113. warp/sparse.py +642 -555
  114. warp/stubs.py +217 -20
  115. warp/tests/__main__.py +0 -15
  116. warp/tests/assets/torus.usda +1 -1
  117. warp/tests/cuda/__init__.py +0 -0
  118. warp/tests/{test_mempool.py → cuda/test_mempool.py} +39 -0
  119. warp/tests/{test_streams.py → cuda/test_streams.py} +71 -0
  120. warp/tests/geometry/__init__.py +0 -0
  121. warp/tests/{test_mesh_query_point.py → geometry/test_mesh_query_point.py} +66 -63
  122. warp/tests/{test_mesh_query_ray.py → geometry/test_mesh_query_ray.py} +1 -1
  123. warp/tests/{test_volume.py → geometry/test_volume.py} +41 -6
  124. warp/tests/interop/__init__.py +0 -0
  125. warp/tests/{test_dlpack.py → interop/test_dlpack.py} +28 -5
  126. warp/tests/sim/__init__.py +0 -0
  127. warp/tests/{disabled_kinematics.py → sim/disabled_kinematics.py} +9 -10
  128. warp/tests/{test_collision.py → sim/test_collision.py} +236 -205
  129. warp/tests/sim/test_inertia.py +161 -0
  130. warp/tests/{test_model.py → sim/test_model.py} +40 -0
  131. warp/tests/{flaky_test_sim_grad.py → sim/test_sim_grad.py} +4 -0
  132. warp/tests/{test_sim_kinematics.py → sim/test_sim_kinematics.py} +2 -1
  133. warp/tests/sim/test_vbd.py +597 -0
  134. warp/tests/sim/test_xpbd.py +399 -0
  135. warp/tests/test_bool.py +1 -1
  136. warp/tests/test_codegen.py +24 -3
  137. warp/tests/test_examples.py +40 -38
  138. warp/tests/test_fem.py +98 -14
  139. warp/tests/test_linear_solvers.py +0 -11
  140. warp/tests/test_mat.py +577 -156
  141. warp/tests/test_mat_scalar_ops.py +4 -4
  142. warp/tests/test_overwrite.py +0 -60
  143. warp/tests/test_quat.py +356 -151
  144. warp/tests/test_rand.py +44 -37
  145. warp/tests/test_sparse.py +47 -6
  146. warp/tests/test_spatial.py +75 -0
  147. warp/tests/test_static.py +1 -1
  148. warp/tests/test_utils.py +84 -4
  149. warp/tests/test_vec.py +336 -178
  150. warp/tests/tile/__init__.py +0 -0
  151. warp/tests/{test_tile.py → tile/test_tile.py} +136 -51
  152. warp/tests/{test_tile_load.py → tile/test_tile_load.py} +98 -1
  153. warp/tests/{test_tile_mathdx.py → tile/test_tile_mathdx.py} +9 -6
  154. warp/tests/{test_tile_mlp.py → tile/test_tile_mlp.py} +25 -14
  155. warp/tests/{test_tile_reduce.py → tile/test_tile_reduce.py} +60 -1
  156. warp/tests/{test_tile_view.py → tile/test_tile_view.py} +1 -1
  157. warp/tests/unittest_serial.py +1 -0
  158. warp/tests/unittest_suites.py +45 -62
  159. warp/tests/unittest_utils.py +2 -1
  160. warp/thirdparty/unittest_parallel.py +3 -1
  161. warp/types.py +175 -666
  162. warp/utils.py +137 -72
  163. {warp_lang-1.6.2.dist-info → warp_lang-1.7.1.dist-info}/METADATA +46 -12
  164. {warp_lang-1.6.2.dist-info → warp_lang-1.7.1.dist-info}/RECORD +184 -171
  165. {warp_lang-1.6.2.dist-info → warp_lang-1.7.1.dist-info}/WHEEL +1 -1
  166. {warp_lang-1.6.2.dist-info → warp_lang-1.7.1.dist-info/licenses}/LICENSE.md +0 -26
  167. warp/examples/optim/example_walker.py +0 -317
  168. warp/native/cutlass_gemm.cpp +0 -43
  169. warp/native/cutlass_gemm.cu +0 -382
  170. warp/tests/test_matmul.py +0 -511
  171. warp/tests/test_matmul_lite.py +0 -411
  172. warp/tests/test_vbd.py +0 -386
  173. warp/tests/unused_test_misc.py +0 -77
  174. /warp/tests/{test_async.py → cuda/test_async.py} +0 -0
  175. /warp/tests/{test_ipc.py → cuda/test_ipc.py} +0 -0
  176. /warp/tests/{test_multigpu.py → cuda/test_multigpu.py} +0 -0
  177. /warp/tests/{test_peer.py → cuda/test_peer.py} +0 -0
  178. /warp/tests/{test_pinned.py → cuda/test_pinned.py} +0 -0
  179. /warp/tests/{test_bvh.py → geometry/test_bvh.py} +0 -0
  180. /warp/tests/{test_hash_grid.py → geometry/test_hash_grid.py} +0 -0
  181. /warp/tests/{test_marching_cubes.py → geometry/test_marching_cubes.py} +0 -0
  182. /warp/tests/{test_mesh.py → geometry/test_mesh.py} +0 -0
  183. /warp/tests/{test_mesh_query_aabb.py → geometry/test_mesh_query_aabb.py} +0 -0
  184. /warp/tests/{test_volume_write.py → geometry/test_volume_write.py} +0 -0
  185. /warp/tests/{test_jax.py → interop/test_jax.py} +0 -0
  186. /warp/tests/{test_paddle.py → interop/test_paddle.py} +0 -0
  187. /warp/tests/{test_torch.py → interop/test_torch.py} +0 -0
  188. /warp/tests/{test_coloring.py → sim/test_coloring.py} +0 -0
  189. /warp/tests/{test_sim_grad_bounce_linear.py → sim/test_sim_grad_bounce_linear.py} +0 -0
  190. /warp/tests/{test_tile_shared_memory.py → tile/test_tile_shared_memory.py} +0 -0
  191. {warp_lang-1.6.2.dist-info → warp_lang-1.7.1.dist-info}/top_level.txt +0 -0
warp/native/intersect.h CHANGED
@@ -815,7 +815,7 @@ CUDA_CALLABLE inline void adj_closest_point_to_triangle(
815
815
  var_17 = wp::vec2(var_5, var_9);
816
816
  goto label1;
817
817
  }
818
- var_18 = wp::select(var_16, var_10, var_17);
818
+ var_18 = wp::where(var_16, var_17, var_10);
819
819
  var_19 = wp::mul(var_3, var_13);
820
820
  var_20 = wp::mul(var_12, var_4);
821
821
  var_21 = wp::sub(var_19, var_20);
@@ -830,7 +830,7 @@ CUDA_CALLABLE inline void adj_closest_point_to_triangle(
830
830
  var_29 = wp::vec2(var_28, var_23);
831
831
  goto label2;
832
832
  }
833
- var_30 = wp::select(var_27, var_18, var_29);
833
+ var_30 = wp::where(var_27, var_29, var_18);
834
834
  var_31 = wp::sub(var_p, var_c);
835
835
  var_32 = wp::dot(var_0, var_31);
836
836
  var_33 = wp::dot(var_1, var_31);
@@ -841,7 +841,7 @@ CUDA_CALLABLE inline void adj_closest_point_to_triangle(
841
841
  var_37 = wp::vec2(var_5, var_5);
842
842
  goto label3;
843
843
  }
844
- var_38 = wp::select(var_36, var_30, var_37);
844
+ var_38 = wp::where(var_36, var_37, var_30);
845
845
  var_39 = wp::mul(var_32, var_4);
846
846
  var_40 = wp::mul(var_3, var_33);
847
847
  var_41 = wp::sub(var_39, var_40);
@@ -856,7 +856,7 @@ CUDA_CALLABLE inline void adj_closest_point_to_triangle(
856
856
  var_49 = wp::vec2(var_48, var_5);
857
857
  goto label4;
858
858
  }
859
- var_50 = wp::select(var_47, var_38, var_49);
859
+ var_50 = wp::where(var_47, var_49, var_38);
860
860
  var_51 = wp::mul(var_12, var_33);
861
861
  var_52 = wp::mul(var_32, var_13);
862
862
  var_53 = wp::sub(var_51, var_52);
@@ -876,7 +876,7 @@ CUDA_CALLABLE inline void adj_closest_point_to_triangle(
876
876
  var_66 = wp::vec2(var_5, var_65);
877
877
  goto label5;
878
878
  }
879
- // var_67 = wp::select(var_64, var_50, var_66);
879
+ // var_67 = wp::where(var_64, var_66, var_50);
880
880
  var_68 = wp::add(var_53, var_41);
881
881
  var_69 = wp::add(var_68, var_21);
882
882
  var_70 = wp::div(var_9, var_69);
@@ -898,7 +898,7 @@ CUDA_CALLABLE inline void adj_closest_point_to_triangle(
898
898
  wp::adj_div(var_9, var_69, var_70, adj_9, adj_69, adj_70);
899
899
  wp::adj_add(var_68, var_21, adj_68, adj_21, adj_69);
900
900
  wp::adj_add(var_53, var_41, adj_53, adj_41, adj_68);
901
- wp::adj_select(var_64, var_50, var_66, adj_64, adj_50, adj_66, adj_67);
901
+ wp::adj_where(var_64, var_66, var_50, adj_64, adj_66, adj_50, adj_67);
902
902
  if (var_64) {
903
903
  label5:;
904
904
  adj_66 += adj_ret;
@@ -915,7 +915,7 @@ CUDA_CALLABLE inline void adj_closest_point_to_triangle(
915
915
  wp::adj_sub(var_51, var_52, adj_51, adj_52, adj_53);
916
916
  wp::adj_mul(var_32, var_13, adj_32, adj_13, adj_52);
917
917
  wp::adj_mul(var_12, var_33, adj_12, adj_33, adj_51);
918
- wp::adj_select(var_47, var_38, var_49, adj_47, adj_38, adj_49, adj_50);
918
+ wp::adj_where(var_47, var_49, var_38, adj_47, adj_49, adj_38, adj_50);
919
919
  if (var_47) {
920
920
  label4:;
921
921
  adj_49 += adj_ret;
@@ -927,7 +927,7 @@ CUDA_CALLABLE inline void adj_closest_point_to_triangle(
927
927
  wp::adj_sub(var_39, var_40, adj_39, adj_40, adj_41);
928
928
  wp::adj_mul(var_3, var_33, adj_3, adj_33, adj_40);
929
929
  wp::adj_mul(var_32, var_4, adj_32, adj_4, adj_39);
930
- wp::adj_select(var_36, var_30, var_37, adj_36, adj_30, adj_37, adj_38);
930
+ wp::adj_where(var_36, var_37, var_30, adj_36, adj_37, adj_30, adj_38);
931
931
  if (var_36) {
932
932
  label3:;
933
933
  adj_37 += adj_ret;
@@ -936,7 +936,7 @@ CUDA_CALLABLE inline void adj_closest_point_to_triangle(
936
936
  wp::adj_dot(var_1, var_31, adj_1, adj_31, adj_33);
937
937
  wp::adj_dot(var_0, var_31, adj_0, adj_31, adj_32);
938
938
  wp::adj_sub(var_p, var_c, adj_p, adj_c, adj_31);
939
- wp::adj_select(var_27, var_18, var_29, adj_27, adj_18, adj_29, adj_30);
939
+ wp::adj_where(var_27, var_29, var_18, adj_27, adj_29, adj_18, adj_30);
940
940
  if (var_27) {
941
941
  label2:;
942
942
  adj_29 += adj_ret;
@@ -948,7 +948,7 @@ CUDA_CALLABLE inline void adj_closest_point_to_triangle(
948
948
  wp::adj_sub(var_19, var_20, adj_19, adj_20, adj_21);
949
949
  wp::adj_mul(var_12, var_4, adj_12, adj_4, adj_20);
950
950
  wp::adj_mul(var_3, var_13, adj_3, adj_13, adj_19);
951
- wp::adj_select(var_16, var_10, var_17, adj_16, adj_10, adj_17, adj_18);
951
+ wp::adj_where(var_16, var_17, var_10, adj_16, adj_17, adj_10, adj_18);
952
952
  if (var_16) {
953
953
  label1:;
954
954
  adj_17 += adj_ret;
@@ -1156,8 +1156,8 @@ static CUDA_CALLABLE vec3 closest_point_edge_edge(vec3 var_p1,
1156
1156
  var_17 = wp::div(var_5, var_4);
1157
1157
  var_18 = wp::cast_float(var_17);
1158
1158
  }
1159
- var_19 = wp::select(var_15, var_7, var_16);
1160
- var_20 = wp::select(var_15, var_8, var_18);
1159
+ var_19 = wp::where(var_15, var_16, var_7);
1160
+ var_20 = wp::where(var_15, var_18, var_8);
1161
1161
  if (!var_15) {
1162
1162
  var_21 = wp::dot(var_0, var_2);
1163
1163
  var_22 = (var_4 <= var_epsilon);
@@ -1167,8 +1167,8 @@ static CUDA_CALLABLE vec3 closest_point_edge_edge(vec3 var_p1,
1167
1167
  var_26 = wp::clamp(var_24, var_6, var_25);
1168
1168
  var_27 = wp::cast_float(var_6);
1169
1169
  }
1170
- var_28 = wp::select(var_22, var_19, var_26);
1171
- var_29 = wp::select(var_22, var_20, var_27);
1170
+ var_28 = wp::where(var_22, var_26, var_19);
1171
+ var_29 = wp::where(var_22, var_27, var_20);
1172
1172
  if (!var_22) {
1173
1173
  var_30 = wp::dot(var_0, var_1);
1174
1174
  var_31 = wp::mul(var_3, var_4);
@@ -1182,10 +1182,10 @@ static CUDA_CALLABLE vec3 closest_point_edge_edge(vec3 var_p1,
1182
1182
  var_38 = wp::div(var_37, var_33);
1183
1183
  var_39 = wp::clamp(var_38, var_6, var_25);
1184
1184
  }
1185
- var_40 = wp::select(var_34, var_28, var_39);
1185
+ var_40 = wp::where(var_34, var_39, var_28);
1186
1186
  if (!var_34) {
1187
1187
  }
1188
- var_41 = wp::select(var_34, var_6, var_40);
1188
+ var_41 = wp::where(var_34, var_40, var_6);
1189
1189
  var_42 = wp::mul(var_30, var_41);
1190
1190
  var_43 = wp::add(var_42, var_5);
1191
1191
  var_44 = wp::div(var_43, var_4);
@@ -1195,8 +1195,8 @@ static CUDA_CALLABLE vec3 closest_point_edge_edge(vec3 var_p1,
1195
1195
  var_47 = wp::div(var_46, var_3);
1196
1196
  var_48 = wp::clamp(var_47, var_6, var_25);
1197
1197
  }
1198
- var_49 = wp::select(var_45, var_41, var_48);
1199
- var_50 = wp::select(var_45, var_44, var_6);
1198
+ var_49 = wp::where(var_45, var_48, var_41);
1199
+ var_50 = wp::where(var_45, var_6, var_44);
1200
1200
  if (!var_45) {
1201
1201
  var_51 = (var_50 > var_25);
1202
1202
  if (var_51) {
@@ -1204,17 +1204,17 @@ static CUDA_CALLABLE vec3 closest_point_edge_edge(vec3 var_p1,
1204
1204
  var_53 = wp::div(var_52, var_3);
1205
1205
  var_54 = wp::clamp(var_53, var_6, var_25);
1206
1206
  }
1207
- var_55 = wp::select(var_51, var_49, var_54);
1208
- var_56 = wp::select(var_51, var_50, var_25);
1207
+ var_55 = wp::where(var_51, var_54, var_49);
1208
+ var_56 = wp::where(var_51, var_25, var_50);
1209
1209
  }
1210
- var_57 = wp::select(var_45, var_55, var_49);
1211
- var_58 = wp::select(var_45, var_56, var_50);
1210
+ var_57 = wp::where(var_45, var_49, var_55);
1211
+ var_58 = wp::where(var_45, var_50, var_56);
1212
1212
  }
1213
- var_59 = wp::select(var_22, var_57, var_28);
1214
- var_60 = wp::select(var_22, var_58, var_29);
1213
+ var_59 = wp::where(var_22, var_28, var_57);
1214
+ var_60 = wp::where(var_22, var_29, var_58);
1215
1215
  }
1216
- var_61 = wp::select(var_15, var_59, var_19);
1217
- var_62 = wp::select(var_15, var_60, var_20);
1216
+ var_61 = wp::where(var_15, var_19, var_59);
1217
+ var_62 = wp::where(var_15, var_20, var_60);
1218
1218
  var_63 = wp::sub(var_q1, var_p1);
1219
1219
  var_64 = wp::mul(var_63, var_61);
1220
1220
  var_65 = wp::add(var_p1, var_64);
@@ -211,8 +211,8 @@ static CUDA_CALLABLE void adj_closest_point_edge_edge(vec3 var_p1,
211
211
  var_17 = wp::div(var_5, var_4);
212
212
  var_18 = wp::cast_float(var_17);
213
213
  }
214
- var_19 = wp::select(var_15, var_7, var_16);
215
- var_20 = wp::select(var_15, var_8, var_18);
214
+ var_19 = wp::where(var_15, var_16, var_7);
215
+ var_20 = wp::where(var_15, var_18, var_8);
216
216
  if (!var_15) {
217
217
  var_21 = wp::dot(var_0, var_2);
218
218
  var_22 = (var_4 <= var_epsilon);
@@ -222,8 +222,8 @@ static CUDA_CALLABLE void adj_closest_point_edge_edge(vec3 var_p1,
222
222
  var_26 = wp::clamp(var_24, var_6, var_25);
223
223
  var_27 = wp::cast_float(var_6);
224
224
  }
225
- var_28 = wp::select(var_22, var_19, var_26);
226
- var_29 = wp::select(var_22, var_20, var_27);
225
+ var_28 = wp::where(var_22, var_26, var_19);
226
+ var_29 = wp::where(var_22, var_27, var_20);
227
227
  if (!var_22) {
228
228
  var_30 = wp::dot(var_0, var_1);
229
229
  var_31 = wp::mul(var_3, var_4);
@@ -237,10 +237,10 @@ static CUDA_CALLABLE void adj_closest_point_edge_edge(vec3 var_p1,
237
237
  var_38 = wp::div(var_37, var_33);
238
238
  var_39 = wp::clamp(var_38, var_6, var_25);
239
239
  }
240
- var_40 = wp::select(var_34, var_28, var_39);
240
+ var_40 = wp::where(var_34, var_39, var_28);
241
241
  if (!var_34) {
242
242
  }
243
- var_41 = wp::select(var_34, var_6, var_40);
243
+ var_41 = wp::where(var_34, var_40, var_6);
244
244
  var_42 = wp::mul(var_30, var_41);
245
245
  var_43 = wp::add(var_42, var_5);
246
246
  var_44 = wp::div(var_43, var_4);
@@ -250,8 +250,8 @@ static CUDA_CALLABLE void adj_closest_point_edge_edge(vec3 var_p1,
250
250
  var_47 = wp::div(var_46, var_3);
251
251
  var_48 = wp::clamp(var_47, var_6, var_25);
252
252
  }
253
- var_49 = wp::select(var_45, var_41, var_48);
254
- var_50 = wp::select(var_45, var_44, var_6);
253
+ var_49 = wp::where(var_45, var_48, var_41);
254
+ var_50 = wp::where(var_45, var_6, var_44);
255
255
  if (!var_45) {
256
256
  var_51 = (var_50 > var_25);
257
257
  if (var_51) {
@@ -259,17 +259,17 @@ static CUDA_CALLABLE void adj_closest_point_edge_edge(vec3 var_p1,
259
259
  var_53 = wp::div(var_52, var_3);
260
260
  var_54 = wp::clamp(var_53, var_6, var_25);
261
261
  }
262
- var_55 = wp::select(var_51, var_49, var_54);
263
- var_56 = wp::select(var_51, var_50, var_25);
262
+ var_55 = wp::where(var_51, var_54, var_49);
263
+ var_56 = wp::where(var_51, var_25, var_50);
264
264
  }
265
- var_57 = wp::select(var_45, var_55, var_49);
266
- var_58 = wp::select(var_45, var_56, var_50);
265
+ var_57 = wp::where(var_45, var_49, var_55);
266
+ var_58 = wp::where(var_45, var_50, var_56);
267
267
  }
268
- var_59 = wp::select(var_22, var_57, var_28);
269
- var_60 = wp::select(var_22, var_58, var_29);
268
+ var_59 = wp::where(var_22, var_28, var_57);
269
+ var_60 = wp::where(var_22, var_29, var_58);
270
270
  }
271
- var_61 = wp::select(var_15, var_59, var_19);
272
- var_62 = wp::select(var_15, var_60, var_20);
271
+ var_61 = wp::where(var_15, var_19, var_59);
272
+ var_62 = wp::where(var_15, var_20, var_60);
273
273
  var_63 = wp::sub(var_q1, var_p1);
274
274
  var_64 = wp::mul(var_63, var_61);
275
275
  var_65 = wp::add(var_p1, var_64);
@@ -293,25 +293,25 @@ static CUDA_CALLABLE void adj_closest_point_edge_edge(vec3 var_p1,
293
293
  wp::adj_add(var_p1, var_64, adj_p1, adj_64, adj_65);
294
294
  wp::adj_mul(var_63, var_61, adj_63, adj_61, adj_64);
295
295
  wp::adj_sub(var_q1, var_p1, adj_q1, adj_p1, adj_63);
296
- wp::adj_select(var_15, var_60, var_20, adj_15, adj_60, adj_20, adj_62);
297
- wp::adj_select(var_15, var_59, var_19, adj_15, adj_59, adj_19, adj_61);
296
+ wp::adj_where(var_15, var_20, var_60, adj_15, adj_20, adj_60, adj_62);
297
+ wp::adj_where(var_15, var_19, var_59, adj_15, adj_19, adj_59, adj_61);
298
298
  if (!var_15) {
299
- wp::adj_select(var_22, var_58, var_29, adj_22, adj_58, adj_29, adj_60);
300
- wp::adj_select(var_22, var_57, var_28, adj_22, adj_57, adj_28, adj_59);
299
+ wp::adj_where(var_22, var_29, var_58, adj_22, adj_29, adj_58, adj_60);
300
+ wp::adj_where(var_22, var_28, var_57, adj_22, adj_28, adj_57, adj_59);
301
301
  if (!var_22) {
302
- wp::adj_select(var_45, var_56, var_50, adj_45, adj_56, adj_50, adj_58);
303
- wp::adj_select(var_45, var_55, var_49, adj_45, adj_55, adj_49, adj_57);
302
+ wp::adj_where(var_45, var_50, var_56, adj_45, adj_50, adj_56, adj_58);
303
+ wp::adj_where(var_45, var_49, var_55, adj_45, adj_49, adj_55, adj_57);
304
304
  if (!var_45) {
305
- wp::adj_select(var_51, var_50, var_25, adj_51, adj_50, adj_25, adj_56);
306
- wp::adj_select(var_51, var_49, var_54, adj_51, adj_49, adj_54, adj_55);
305
+ wp::adj_where(var_51, var_25, var_50, adj_51, adj_25, adj_50, adj_56);
306
+ wp::adj_where(var_51, var_54, var_49, adj_51, adj_54, adj_49, adj_55);
307
307
  if (var_51) {
308
308
  wp::adj_clamp(var_53, var_6, var_25, adj_53, adj_6, adj_25, adj_54);
309
309
  wp::adj_div(var_52, var_3, var_53, adj_52, adj_3, adj_53);
310
310
  wp::adj_sub(var_30, var_21, adj_30, adj_21, adj_52);
311
311
  }
312
312
  }
313
- wp::adj_select(var_45, var_44, var_6, adj_45, adj_44, adj_6, adj_50);
314
- wp::adj_select(var_45, var_41, var_48, adj_45, adj_41, adj_48, adj_49);
313
+ wp::adj_where(var_45, var_6, var_44, adj_45, adj_6, adj_44, adj_50);
314
+ wp::adj_where(var_45, var_48, var_41, adj_45, adj_48, adj_41, adj_49);
315
315
  if (var_45) {
316
316
  wp::adj_clamp(var_47, var_6, var_25, adj_47, adj_6, adj_25, adj_48);
317
317
  wp::adj_div(var_46, var_3, var_47, adj_46, adj_3, adj_47);
@@ -320,10 +320,10 @@ static CUDA_CALLABLE void adj_closest_point_edge_edge(vec3 var_p1,
320
320
  wp::adj_div(var_43, var_4, var_44, adj_43, adj_4, adj_44);
321
321
  wp::adj_add(var_42, var_5, adj_42, adj_5, adj_43);
322
322
  wp::adj_mul(var_30, var_41, adj_30, adj_41, adj_42);
323
- wp::adj_select(var_34, var_6, var_40, adj_34, adj_6, adj_40, adj_41);
323
+ wp::adj_where(var_34, var_40, var_6, adj_34, adj_40, adj_6, adj_41);
324
324
  if (!var_34) {
325
325
  }
326
- wp::adj_select(var_34, var_28, var_39, adj_34, adj_28, adj_39, adj_40);
326
+ wp::adj_where(var_34, var_39, var_28, adj_34, adj_39, adj_28, adj_40);
327
327
  if (var_34) {
328
328
  wp::adj_clamp(var_38, var_6, var_25, adj_38, adj_6, adj_25, adj_39);
329
329
  wp::adj_div(var_37, var_33, var_38, adj_37, adj_33, adj_38);
@@ -336,8 +336,8 @@ static CUDA_CALLABLE void adj_closest_point_edge_edge(vec3 var_p1,
336
336
  wp::adj_mul(var_3, var_4, adj_3, adj_4, adj_31);
337
337
  wp::adj_dot(var_0, var_1, adj_0, adj_1, adj_30);
338
338
  }
339
- wp::adj_select(var_22, var_20, var_27, adj_22, adj_20, adj_27, adj_29);
340
- wp::adj_select(var_22, var_19, var_26, adj_22, adj_19, adj_26, adj_28);
339
+ wp::adj_where(var_22, var_27, var_20, adj_22, adj_27, adj_20, adj_29);
340
+ wp::adj_where(var_22, var_26, var_19, adj_22, adj_26, adj_19, adj_28);
341
341
  if (var_22) {
342
342
  wp::adj_cast_float(var_6, adj_6, adj_27);
343
343
  wp::adj_clamp(var_24, var_6, var_25, adj_24, adj_6, adj_25, adj_26);
@@ -346,8 +346,8 @@ static CUDA_CALLABLE void adj_closest_point_edge_edge(vec3 var_p1,
346
346
  }
347
347
  wp::adj_dot(var_0, var_2, adj_0, adj_2, adj_21);
348
348
  }
349
- wp::adj_select(var_15, var_8, var_18, adj_15, adj_8, adj_18, adj_20);
350
- wp::adj_select(var_15, var_7, var_16, adj_15, adj_7, adj_16, adj_19);
349
+ wp::adj_where(var_15, var_18, var_8, adj_15, adj_18, adj_8, adj_20);
350
+ wp::adj_where(var_15, var_16, var_7, adj_15, adj_16, adj_7, adj_19);
351
351
  if (var_15) {
352
352
  wp::adj_cast_float(var_17, adj_17, adj_18);
353
353
  wp::adj_div(var_5, var_4, var_17, adj_5, adj_4, adj_17);
@@ -372,4 +372,4 @@ static CUDA_CALLABLE void adj_closest_point_edge_edge(vec3 var_p1,
372
372
 
373
373
  }
374
374
 
375
- } // namespace wp
375
+ } // namespace wp
warp/native/marching.cu CHANGED
@@ -505,7 +505,7 @@ WP_API int marching_cubes_surface_device(
505
505
  return -1;
506
506
  }
507
507
 
508
- wp_launch_device(WP_CURRENT_CONTEXT, create_cell_tris, mc.num_cells, (mc, field, triangles, threshold));
508
+ wp_launch_device(WP_CURRENT_CONTEXT, wp::create_cell_tris, mc.num_cells, (mc, field, triangles, threshold));
509
509
 
510
510
  *out_num_verts = num_verts;
511
511
  *out_num_tris = num_tris;