warp-lang 1.9.0__py3-none-win_amd64.whl → 1.10.0rc2__py3-none-win_amd64.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.
- warp/__init__.py +301 -287
- warp/__init__.pyi +2220 -313
- warp/_src/__init__.py +14 -0
- warp/_src/autograd.py +1075 -0
- warp/_src/build.py +618 -0
- warp/_src/build_dll.py +640 -0
- warp/{builtins.py → _src/builtins.py} +1497 -226
- warp/_src/codegen.py +4359 -0
- warp/{config.py → _src/config.py} +178 -169
- warp/_src/constants.py +57 -0
- warp/_src/context.py +8294 -0
- warp/_src/dlpack.py +462 -0
- warp/_src/fabric.py +355 -0
- warp/_src/fem/__init__.py +14 -0
- warp/_src/fem/adaptivity.py +508 -0
- warp/_src/fem/cache.py +687 -0
- warp/_src/fem/dirichlet.py +188 -0
- warp/{fem → _src/fem}/domain.py +40 -30
- warp/_src/fem/field/__init__.py +131 -0
- warp/_src/fem/field/field.py +701 -0
- warp/{fem → _src/fem}/field/nodal_field.py +30 -15
- warp/{fem → _src/fem}/field/restriction.py +1 -1
- warp/{fem → _src/fem}/field/virtual.py +53 -27
- warp/_src/fem/geometry/__init__.py +32 -0
- warp/{fem → _src/fem}/geometry/adaptive_nanogrid.py +77 -163
- warp/_src/fem/geometry/closest_point.py +97 -0
- warp/{fem → _src/fem}/geometry/deformed_geometry.py +14 -22
- warp/{fem → _src/fem}/geometry/element.py +32 -10
- warp/{fem → _src/fem}/geometry/geometry.py +48 -20
- warp/{fem → _src/fem}/geometry/grid_2d.py +12 -23
- warp/{fem → _src/fem}/geometry/grid_3d.py +12 -23
- warp/{fem → _src/fem}/geometry/hexmesh.py +40 -63
- warp/{fem → _src/fem}/geometry/nanogrid.py +255 -248
- warp/{fem → _src/fem}/geometry/partition.py +121 -63
- warp/{fem → _src/fem}/geometry/quadmesh.py +26 -45
- warp/{fem → _src/fem}/geometry/tetmesh.py +40 -63
- warp/{fem → _src/fem}/geometry/trimesh.py +26 -45
- warp/{fem → _src/fem}/integrate.py +164 -158
- warp/_src/fem/linalg.py +383 -0
- warp/_src/fem/operator.py +396 -0
- warp/_src/fem/polynomial.py +229 -0
- warp/{fem → _src/fem}/quadrature/pic_quadrature.py +15 -20
- warp/{fem → _src/fem}/quadrature/quadrature.py +95 -47
- warp/_src/fem/space/__init__.py +248 -0
- warp/{fem → _src/fem}/space/basis_function_space.py +20 -11
- warp/_src/fem/space/basis_space.py +679 -0
- warp/{fem → _src/fem}/space/dof_mapper.py +3 -3
- warp/{fem → _src/fem}/space/function_space.py +14 -13
- warp/{fem → _src/fem}/space/grid_2d_function_space.py +4 -7
- warp/{fem → _src/fem}/space/grid_3d_function_space.py +4 -4
- warp/{fem → _src/fem}/space/hexmesh_function_space.py +4 -10
- warp/{fem → _src/fem}/space/nanogrid_function_space.py +3 -9
- warp/{fem → _src/fem}/space/partition.py +117 -60
- warp/{fem → _src/fem}/space/quadmesh_function_space.py +4 -10
- warp/{fem → _src/fem}/space/restriction.py +66 -33
- warp/_src/fem/space/shape/__init__.py +152 -0
- warp/{fem → _src/fem}/space/shape/cube_shape_function.py +9 -9
- warp/{fem → _src/fem}/space/shape/shape_function.py +8 -9
- warp/{fem → _src/fem}/space/shape/square_shape_function.py +6 -6
- warp/{fem → _src/fem}/space/shape/tet_shape_function.py +3 -3
- warp/{fem → _src/fem}/space/shape/triangle_shape_function.py +3 -3
- warp/{fem → _src/fem}/space/tetmesh_function_space.py +3 -9
- warp/_src/fem/space/topology.py +459 -0
- warp/{fem → _src/fem}/space/trimesh_function_space.py +3 -9
- warp/_src/fem/types.py +112 -0
- warp/_src/fem/utils.py +486 -0
- warp/_src/jax.py +186 -0
- warp/_src/jax_experimental/__init__.py +14 -0
- warp/_src/jax_experimental/custom_call.py +387 -0
- warp/_src/jax_experimental/ffi.py +1284 -0
- warp/_src/jax_experimental/xla_ffi.py +656 -0
- warp/_src/marching_cubes.py +708 -0
- warp/_src/math.py +414 -0
- warp/_src/optim/__init__.py +14 -0
- warp/_src/optim/adam.py +163 -0
- warp/_src/optim/linear.py +1606 -0
- warp/_src/optim/sgd.py +112 -0
- warp/_src/paddle.py +406 -0
- warp/_src/render/__init__.py +14 -0
- warp/_src/render/imgui_manager.py +289 -0
- warp/_src/render/render_opengl.py +3636 -0
- warp/_src/render/render_usd.py +937 -0
- warp/_src/render/utils.py +160 -0
- warp/_src/sparse.py +2716 -0
- warp/_src/tape.py +1206 -0
- warp/{thirdparty → _src/thirdparty}/unittest_parallel.py +9 -2
- warp/_src/torch.py +391 -0
- warp/_src/types.py +5870 -0
- warp/_src/utils.py +1693 -0
- warp/autograd.py +12 -1054
- warp/bin/warp-clang.dll +0 -0
- warp/bin/warp.dll +0 -0
- warp/build.py +8 -588
- warp/build_dll.py +6 -471
- warp/codegen.py +6 -4246
- warp/constants.py +6 -39
- warp/context.py +12 -7851
- warp/dlpack.py +6 -444
- warp/examples/distributed/example_jacobi_mpi.py +4 -5
- warp/examples/fem/example_adaptive_grid.py +1 -1
- warp/examples/fem/example_apic_fluid.py +1 -1
- warp/examples/fem/example_burgers.py +8 -8
- warp/examples/fem/example_diffusion.py +1 -1
- warp/examples/fem/example_distortion_energy.py +1 -1
- warp/examples/fem/example_mixed_elasticity.py +2 -2
- warp/examples/fem/example_navier_stokes.py +1 -1
- warp/examples/fem/example_nonconforming_contact.py +7 -7
- warp/examples/fem/example_stokes.py +1 -1
- warp/examples/fem/example_stokes_transfer.py +1 -1
- warp/examples/fem/utils.py +2 -2
- warp/examples/interop/example_jax_callable.py +1 -1
- warp/examples/interop/example_jax_ffi_callback.py +1 -1
- warp/examples/interop/example_jax_kernel.py +3 -2
- warp/examples/tile/example_tile_mcgp.py +191 -0
- warp/fabric.py +6 -337
- warp/fem/__init__.py +159 -97
- warp/fem/adaptivity.py +7 -489
- warp/fem/cache.py +9 -648
- warp/fem/dirichlet.py +6 -184
- warp/fem/field/__init__.py +8 -109
- warp/fem/field/field.py +7 -652
- warp/fem/geometry/__init__.py +7 -18
- warp/fem/geometry/closest_point.py +11 -77
- warp/fem/linalg.py +18 -366
- warp/fem/operator.py +11 -369
- warp/fem/polynomial.py +9 -209
- warp/fem/space/__init__.py +5 -211
- warp/fem/space/basis_space.py +6 -662
- warp/fem/space/shape/__init__.py +41 -118
- warp/fem/space/topology.py +6 -437
- warp/fem/types.py +6 -81
- warp/fem/utils.py +11 -444
- warp/jax.py +8 -165
- warp/jax_experimental/__init__.py +14 -1
- warp/jax_experimental/custom_call.py +8 -342
- warp/jax_experimental/ffi.py +17 -853
- warp/jax_experimental/xla_ffi.py +5 -596
- warp/marching_cubes.py +5 -689
- warp/math.py +16 -393
- warp/native/array.h +385 -37
- warp/native/builtin.h +316 -39
- warp/native/bvh.cpp +43 -9
- warp/native/bvh.cu +62 -27
- warp/native/bvh.h +310 -309
- warp/native/clang/clang.cpp +102 -97
- warp/native/coloring.cpp +0 -1
- warp/native/crt.h +208 -0
- warp/native/exports.h +156 -0
- warp/native/hashgrid.cu +2 -0
- warp/native/intersect.h +24 -1
- warp/native/intersect_tri.h +44 -35
- warp/native/mat.h +1456 -276
- warp/native/mesh.cpp +4 -4
- warp/native/mesh.cu +4 -2
- warp/native/mesh.h +176 -61
- warp/native/quat.h +0 -52
- warp/native/scan.cu +2 -0
- warp/native/sort.cu +22 -13
- warp/native/sort.h +2 -0
- warp/native/sparse.cu +7 -3
- warp/native/spatial.h +12 -0
- warp/native/tile.h +837 -70
- warp/native/tile_radix_sort.h +1 -1
- warp/native/tile_reduce.h +394 -46
- warp/native/tile_scan.h +4 -4
- warp/native/vec.h +469 -53
- warp/native/version.h +23 -0
- warp/native/volume.cpp +1 -1
- warp/native/volume.cu +1 -0
- warp/native/volume.h +1 -1
- warp/native/volume_builder.cu +2 -0
- warp/native/warp.cpp +60 -32
- warp/native/warp.cu +313 -201
- warp/native/warp.h +14 -11
- warp/optim/__init__.py +6 -3
- warp/optim/adam.py +6 -145
- warp/optim/linear.py +14 -1585
- warp/optim/sgd.py +6 -94
- warp/paddle.py +6 -388
- warp/render/__init__.py +8 -4
- warp/render/imgui_manager.py +7 -267
- warp/render/render_opengl.py +6 -3616
- warp/render/render_usd.py +6 -918
- warp/render/utils.py +6 -142
- warp/sparse.py +37 -2563
- warp/tape.py +6 -1188
- warp/tests/__main__.py +1 -1
- warp/tests/cuda/test_async.py +4 -4
- warp/tests/cuda/test_conditional_captures.py +1 -1
- warp/tests/cuda/test_multigpu.py +1 -1
- warp/tests/cuda/test_streams.py +58 -1
- warp/tests/geometry/test_bvh.py +157 -22
- warp/tests/geometry/test_hash_grid.py +38 -0
- warp/tests/geometry/test_marching_cubes.py +0 -1
- warp/tests/geometry/test_mesh.py +5 -3
- warp/tests/geometry/test_mesh_query_aabb.py +5 -12
- warp/tests/geometry/test_mesh_query_point.py +5 -2
- warp/tests/geometry/test_mesh_query_ray.py +15 -3
- warp/tests/geometry/test_volume_write.py +5 -5
- warp/tests/interop/test_dlpack.py +14 -14
- warp/tests/interop/test_jax.py +1382 -79
- warp/tests/interop/test_paddle.py +1 -1
- warp/tests/test_adam.py +0 -1
- warp/tests/test_arithmetic.py +9 -9
- warp/tests/test_array.py +529 -100
- warp/tests/test_array_reduce.py +3 -3
- warp/tests/test_atomic.py +12 -8
- warp/tests/test_atomic_bitwise.py +209 -0
- warp/tests/test_atomic_cas.py +4 -4
- warp/tests/test_bool.py +2 -2
- warp/tests/test_builtins_resolution.py +5 -571
- warp/tests/test_codegen.py +34 -15
- warp/tests/test_conditional.py +1 -1
- warp/tests/test_context.py +6 -6
- warp/tests/test_copy.py +242 -161
- warp/tests/test_ctypes.py +3 -3
- warp/tests/test_devices.py +24 -2
- warp/tests/test_examples.py +16 -84
- warp/tests/test_fabricarray.py +35 -35
- warp/tests/test_fast_math.py +0 -2
- warp/tests/test_fem.py +60 -14
- warp/tests/test_fixedarray.py +3 -3
- warp/tests/test_func.py +8 -5
- warp/tests/test_generics.py +1 -1
- warp/tests/test_indexedarray.py +24 -24
- warp/tests/test_intersect.py +39 -9
- warp/tests/test_large.py +1 -1
- warp/tests/test_lerp.py +3 -1
- warp/tests/test_linear_solvers.py +1 -1
- warp/tests/test_map.py +49 -4
- warp/tests/test_mat.py +52 -62
- warp/tests/test_mat_constructors.py +4 -5
- warp/tests/test_mat_lite.py +1 -1
- warp/tests/test_mat_scalar_ops.py +121 -121
- warp/tests/test_math.py +34 -0
- warp/tests/test_module_aot.py +4 -4
- warp/tests/test_modules_lite.py +28 -2
- warp/tests/test_print.py +11 -11
- warp/tests/test_quat.py +93 -58
- warp/tests/test_runlength_encode.py +1 -1
- warp/tests/test_scalar_ops.py +38 -10
- warp/tests/test_smoothstep.py +1 -1
- warp/tests/test_sparse.py +126 -15
- warp/tests/test_spatial.py +105 -87
- warp/tests/test_special_values.py +6 -6
- warp/tests/test_static.py +7 -7
- warp/tests/test_struct.py +13 -2
- warp/tests/test_triangle_closest_point.py +48 -1
- warp/tests/test_tuple.py +96 -0
- warp/tests/test_types.py +82 -9
- warp/tests/test_utils.py +52 -52
- warp/tests/test_vec.py +29 -29
- warp/tests/test_vec_constructors.py +5 -5
- warp/tests/test_vec_scalar_ops.py +97 -97
- warp/tests/test_version.py +75 -0
- warp/tests/tile/test_tile.py +239 -0
- warp/tests/tile/test_tile_atomic_bitwise.py +403 -0
- warp/tests/tile/test_tile_cholesky.py +7 -4
- warp/tests/tile/test_tile_load.py +26 -2
- warp/tests/tile/test_tile_mathdx.py +3 -3
- warp/tests/tile/test_tile_matmul.py +1 -1
- warp/tests/tile/test_tile_mlp.py +2 -4
- warp/tests/tile/test_tile_reduce.py +214 -13
- warp/tests/unittest_suites.py +6 -14
- warp/tests/unittest_utils.py +10 -9
- warp/tests/walkthrough_debug.py +3 -1
- warp/torch.py +6 -373
- warp/types.py +29 -5750
- warp/utils.py +10 -1659
- {warp_lang-1.9.0.dist-info → warp_lang-1.10.0rc2.dist-info}/METADATA +47 -103
- warp_lang-1.10.0rc2.dist-info/RECORD +468 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/Gaia-LICENSE.txt +6 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/appdirs-LICENSE.txt +22 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/asset_pixel_jpg-LICENSE.txt +3 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/cuda-LICENSE.txt +1582 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/dlpack-LICENSE.txt +201 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/fp16-LICENSE.txt +28 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/libmathdx-LICENSE.txt +220 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/llvm-LICENSE.txt +279 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/moller-LICENSE.txt +16 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/nanovdb-LICENSE.txt +2 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/nvrtc-LICENSE.txt +1592 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/svd-LICENSE.txt +23 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/unittest_parallel-LICENSE.txt +21 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/usd-LICENSE.txt +213 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/windingnumber-LICENSE.txt +21 -0
- warp/examples/assets/cartpole.urdf +0 -110
- warp/examples/assets/crazyflie.usd +0 -0
- warp/examples/assets/nv_ant.xml +0 -92
- warp/examples/assets/nv_humanoid.xml +0 -183
- warp/examples/assets/quadruped.urdf +0 -268
- warp/examples/optim/example_bounce.py +0 -266
- warp/examples/optim/example_cloth_throw.py +0 -228
- warp/examples/optim/example_drone.py +0 -870
- warp/examples/optim/example_inverse_kinematics.py +0 -182
- warp/examples/optim/example_inverse_kinematics_torch.py +0 -191
- warp/examples/optim/example_softbody_properties.py +0 -400
- warp/examples/optim/example_spring_cage.py +0 -245
- warp/examples/optim/example_trajectory.py +0 -227
- warp/examples/sim/example_cartpole.py +0 -143
- warp/examples/sim/example_cloth.py +0 -225
- warp/examples/sim/example_cloth_self_contact.py +0 -316
- warp/examples/sim/example_granular.py +0 -130
- warp/examples/sim/example_granular_collision_sdf.py +0 -202
- warp/examples/sim/example_jacobian_ik.py +0 -244
- warp/examples/sim/example_particle_chain.py +0 -124
- warp/examples/sim/example_quadruped.py +0 -203
- warp/examples/sim/example_rigid_chain.py +0 -203
- warp/examples/sim/example_rigid_contact.py +0 -195
- warp/examples/sim/example_rigid_force.py +0 -133
- warp/examples/sim/example_rigid_gyroscopic.py +0 -115
- warp/examples/sim/example_rigid_soft_contact.py +0 -140
- warp/examples/sim/example_soft_body.py +0 -196
- warp/examples/tile/example_tile_walker.py +0 -327
- warp/sim/__init__.py +0 -74
- warp/sim/articulation.py +0 -793
- warp/sim/collide.py +0 -2570
- warp/sim/graph_coloring.py +0 -307
- warp/sim/import_mjcf.py +0 -791
- warp/sim/import_snu.py +0 -227
- warp/sim/import_urdf.py +0 -579
- warp/sim/import_usd.py +0 -898
- warp/sim/inertia.py +0 -357
- warp/sim/integrator.py +0 -245
- warp/sim/integrator_euler.py +0 -2000
- warp/sim/integrator_featherstone.py +0 -2101
- warp/sim/integrator_vbd.py +0 -2487
- warp/sim/integrator_xpbd.py +0 -3295
- warp/sim/model.py +0 -4821
- warp/sim/particles.py +0 -121
- warp/sim/render.py +0 -431
- warp/sim/utils.py +0 -431
- warp/tests/sim/disabled_kinematics.py +0 -244
- warp/tests/sim/test_cloth.py +0 -863
- warp/tests/sim/test_collision.py +0 -743
- warp/tests/sim/test_coloring.py +0 -347
- warp/tests/sim/test_inertia.py +0 -161
- warp/tests/sim/test_model.py +0 -226
- warp/tests/sim/test_sim_grad.py +0 -287
- warp/tests/sim/test_sim_grad_bounce_linear.py +0 -212
- warp/tests/sim/test_sim_kinematics.py +0 -98
- warp/thirdparty/__init__.py +0 -0
- warp_lang-1.9.0.dist-info/RECORD +0 -456
- /warp/{fem → _src/fem}/quadrature/__init__.py +0 -0
- /warp/{tests/sim → _src/thirdparty}/__init__.py +0 -0
- /warp/{thirdparty → _src/thirdparty}/appdirs.py +0 -0
- /warp/{thirdparty → _src/thirdparty}/dlpack.py +0 -0
- {warp_lang-1.9.0.dist-info → warp_lang-1.10.0rc2.dist-info}/WHEEL +0 -0
- {warp_lang-1.9.0.dist-info → warp_lang-1.10.0rc2.dist-info}/licenses/LICENSE.md +0 -0
- {warp_lang-1.9.0.dist-info → warp_lang-1.10.0rc2.dist-info}/top_level.txt +0 -0
warp/tests/test_indexedarray.py
CHANGED
|
@@ -268,9 +268,9 @@ def test_indexedarray_mixed(test, device):
|
|
|
268
268
|
wp.launch(kernel_3d, dim=iarr.shape, inputs=[iarr, expected_arr], device=device)
|
|
269
269
|
|
|
270
270
|
|
|
271
|
-
vec2i = wp.types.vector(length=2, dtype=wp.int32)
|
|
272
|
-
vec3i = wp.types.vector(length=3, dtype=wp.int32)
|
|
273
|
-
vec4i = wp.types.vector(length=4, dtype=wp.int32)
|
|
271
|
+
vec2i = wp._src.types.vector(length=2, dtype=wp.int32)
|
|
272
|
+
vec3i = wp._src.types.vector(length=3, dtype=wp.int32)
|
|
273
|
+
vec4i = wp._src.types.vector(length=4, dtype=wp.int32)
|
|
274
274
|
|
|
275
275
|
|
|
276
276
|
@wp.kernel
|
|
@@ -571,13 +571,13 @@ def test_indexedarray_empty(test, device):
|
|
|
571
571
|
data_shape = (1,) * ndim
|
|
572
572
|
dtype_shape = ()
|
|
573
573
|
|
|
574
|
-
if wptype in wp.types.scalar_types:
|
|
574
|
+
if wptype in wp._src.types.scalar_types:
|
|
575
575
|
# scalar, vector, or matrix
|
|
576
576
|
if ncols > 0:
|
|
577
577
|
if nrows > 0:
|
|
578
|
-
wptype = wp.types.matrix((nrows, ncols), wptype)
|
|
578
|
+
wptype = wp._src.types.matrix((nrows, ncols), wptype)
|
|
579
579
|
else:
|
|
580
|
-
wptype = wp.types.vector(ncols, wptype)
|
|
580
|
+
wptype = wp._src.types.vector(ncols, wptype)
|
|
581
581
|
dtype_shape = wptype._shape_
|
|
582
582
|
fill_value = wptype(42)
|
|
583
583
|
else:
|
|
@@ -620,7 +620,7 @@ def test_indexedarray_empty(test, device):
|
|
|
620
620
|
|
|
621
621
|
for ndim in range(1, 5):
|
|
622
622
|
# test with scalars, vectors, and matrices
|
|
623
|
-
for nptype, wptype in wp.types.np_dtype_to_warp_type.items():
|
|
623
|
+
for nptype, wptype in wp._src.types.np_dtype_to_warp_type.items():
|
|
624
624
|
# scalars
|
|
625
625
|
test_empty_ops(ndim, 0, 0, wptype, nptype)
|
|
626
626
|
|
|
@@ -643,7 +643,7 @@ def test_indexedarray_empty(test, device):
|
|
|
643
643
|
def test_indexedarray_fill_scalar(test, device):
|
|
644
644
|
dim_x = 4
|
|
645
645
|
|
|
646
|
-
for nptype, wptype in wp.types.np_dtype_to_warp_type.items():
|
|
646
|
+
for nptype, wptype in wp._src.types.np_dtype_to_warp_type.items():
|
|
647
647
|
data1 = wp.zeros(dim_x, dtype=wptype, device=device)
|
|
648
648
|
data2 = wp.zeros((dim_x, dim_x), dtype=wptype, device=device)
|
|
649
649
|
data3 = wp.zeros((dim_x, dim_x, dim_x), dtype=wptype, device=device)
|
|
@@ -684,7 +684,7 @@ def test_indexedarray_fill_scalar(test, device):
|
|
|
684
684
|
assert_np_equal(a3.numpy(), np.zeros(a3.shape, dtype=nptype))
|
|
685
685
|
assert_np_equal(a4.numpy(), np.zeros(a4.shape, dtype=nptype))
|
|
686
686
|
|
|
687
|
-
if wptype in wp.types.float_types:
|
|
687
|
+
if wptype in wp._src.types.float_types:
|
|
688
688
|
# fill with float value
|
|
689
689
|
fill_value = 13.37
|
|
690
690
|
|
|
@@ -717,13 +717,13 @@ def test_indexedarray_fill_vector(test, device):
|
|
|
717
717
|
|
|
718
718
|
dim_x = 4
|
|
719
719
|
|
|
720
|
-
for nptype, wptype in wp.types.np_dtype_to_warp_type.items():
|
|
720
|
+
for nptype, wptype in wp._src.types.np_dtype_to_warp_type.items():
|
|
721
721
|
# vector types
|
|
722
722
|
vector_types = [
|
|
723
|
-
wp.types.vector(2, wptype),
|
|
724
|
-
wp.types.vector(3, wptype),
|
|
725
|
-
wp.types.vector(4, wptype),
|
|
726
|
-
wp.types.vector(5, wptype),
|
|
723
|
+
wp._src.types.vector(2, wptype),
|
|
724
|
+
wp._src.types.vector(3, wptype),
|
|
725
|
+
wp._src.types.vector(4, wptype),
|
|
726
|
+
wp._src.types.vector(5, wptype),
|
|
727
727
|
]
|
|
728
728
|
|
|
729
729
|
for vec_type in vector_types:
|
|
@@ -825,7 +825,7 @@ def test_indexedarray_fill_vector(test, device):
|
|
|
825
825
|
assert_np_equal(a3.numpy(), expected3)
|
|
826
826
|
assert_np_equal(a4.numpy(), expected4)
|
|
827
827
|
|
|
828
|
-
if wptype in wp.types.float_types:
|
|
828
|
+
if wptype in wp._src.types.float_types:
|
|
829
829
|
# fill with float scalar
|
|
830
830
|
fill_value = 13.37
|
|
831
831
|
|
|
@@ -863,19 +863,19 @@ def test_indexedarray_fill_matrix(test, device):
|
|
|
863
863
|
|
|
864
864
|
dim_x = 4
|
|
865
865
|
|
|
866
|
-
for nptype, wptype in wp.types.np_dtype_to_warp_type.items():
|
|
866
|
+
for nptype, wptype in wp._src.types.np_dtype_to_warp_type.items():
|
|
867
867
|
# matrix types
|
|
868
868
|
matrix_types = [
|
|
869
869
|
# square matrices
|
|
870
|
-
wp.types.matrix((2, 2), wptype),
|
|
871
|
-
wp.types.matrix((3, 3), wptype),
|
|
872
|
-
wp.types.matrix((4, 4), wptype),
|
|
873
|
-
wp.types.matrix((5, 5), wptype),
|
|
870
|
+
wp._src.types.matrix((2, 2), wptype),
|
|
871
|
+
wp._src.types.matrix((3, 3), wptype),
|
|
872
|
+
wp._src.types.matrix((4, 4), wptype),
|
|
873
|
+
wp._src.types.matrix((5, 5), wptype),
|
|
874
874
|
# non-square matrices
|
|
875
|
-
wp.types.matrix((2, 3), wptype),
|
|
876
|
-
wp.types.matrix((3, 2), wptype),
|
|
877
|
-
wp.types.matrix((3, 4), wptype),
|
|
878
|
-
wp.types.matrix((4, 3), wptype),
|
|
875
|
+
wp._src.types.matrix((2, 3), wptype),
|
|
876
|
+
wp._src.types.matrix((3, 2), wptype),
|
|
877
|
+
wp._src.types.matrix((3, 4), wptype),
|
|
878
|
+
wp._src.types.matrix((4, 3), wptype),
|
|
879
879
|
]
|
|
880
880
|
|
|
881
881
|
for mat_type in matrix_types:
|
warp/tests/test_intersect.py
CHANGED
|
@@ -23,11 +23,28 @@ from warp.tests.unittest_utils import *
|
|
|
23
23
|
|
|
24
24
|
@wp.kernel
|
|
25
25
|
def intersect_tri(
|
|
26
|
-
v0: wp.vec3,
|
|
26
|
+
v0: wp.vec3,
|
|
27
|
+
v1: wp.vec3,
|
|
28
|
+
v2: wp.vec3,
|
|
29
|
+
u0: wp.vec3,
|
|
30
|
+
u1: wp.vec3,
|
|
31
|
+
u2: wp.vec3,
|
|
32
|
+
result_single_precision: wp.array(dtype=int),
|
|
33
|
+
result_double_precision: wp.array(dtype=int),
|
|
27
34
|
):
|
|
28
35
|
tid = wp.tid()
|
|
29
36
|
|
|
30
|
-
|
|
37
|
+
result_single_precision[0] = wp.intersect_tri_tri(v0, v1, v2, u0, u1, u2)
|
|
38
|
+
|
|
39
|
+
u0_d = wp.vec3d(u0)
|
|
40
|
+
u1_d = wp.vec3d(u1)
|
|
41
|
+
u2_d = wp.vec3d(u2)
|
|
42
|
+
|
|
43
|
+
v0_d = wp.vec3d(v0)
|
|
44
|
+
v1_d = wp.vec3d(v1)
|
|
45
|
+
v2_d = wp.vec3d(v2)
|
|
46
|
+
|
|
47
|
+
result_double_precision[0] = wp.intersect_tri_tri(v0_d, v1_d, v2_d, u0_d, u1_d, u2_d)
|
|
31
48
|
|
|
32
49
|
|
|
33
50
|
def test_intersect_tri(test, device):
|
|
@@ -49,13 +66,26 @@ def test_intersect_tri(test, device):
|
|
|
49
66
|
wp.vec3(-0.5, 0.5, 0.0),
|
|
50
67
|
]
|
|
51
68
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
69
|
+
result_single_precision = wp.zeros(1, dtype=int, device=device)
|
|
70
|
+
result_double_precision = wp.zeros(1, dtype=int, device=device)
|
|
71
|
+
|
|
72
|
+
wp.launch(
|
|
73
|
+
intersect_tri,
|
|
74
|
+
dim=1,
|
|
75
|
+
inputs=[*points_intersect, result_single_precision, result_double_precision],
|
|
76
|
+
device=device,
|
|
77
|
+
)
|
|
78
|
+
assert_np_equal(result_single_precision.numpy(), np.array([1]))
|
|
79
|
+
assert_np_equal(result_double_precision.numpy(), np.array([1]))
|
|
80
|
+
|
|
81
|
+
wp.launch(
|
|
82
|
+
intersect_tri,
|
|
83
|
+
dim=1,
|
|
84
|
+
inputs=[*points_separated, result_single_precision, result_double_precision],
|
|
85
|
+
device=device,
|
|
86
|
+
)
|
|
87
|
+
assert_np_equal(result_single_precision.numpy(), np.array([0]))
|
|
88
|
+
assert_np_equal(result_double_precision.numpy(), np.array([0]))
|
|
59
89
|
|
|
60
90
|
|
|
61
91
|
devices = get_test_devices()
|
warp/tests/test_large.py
CHANGED
|
@@ -93,7 +93,7 @@ def test_large_arrays_slow(test, device):
|
|
|
93
93
|
dim_x = math.ceil(total_elements ** (1 / total_dims))
|
|
94
94
|
shape_tuple = tuple([dim_x] * total_dims)
|
|
95
95
|
|
|
96
|
-
for wptype in wp.types.scalar_types:
|
|
96
|
+
for wptype in wp._src.types.scalar_types:
|
|
97
97
|
a1 = wp.zeros(shape_tuple, dtype=wptype, device=device)
|
|
98
98
|
assert_np_equal(a1.numpy(), np.zeros_like(a1.numpy()))
|
|
99
99
|
|
warp/tests/test_lerp.py
CHANGED
|
@@ -119,7 +119,9 @@ def test_lerp(test, device):
|
|
|
119
119
|
a = wp.array([test_data.a], dtype=data_type, device=device, requires_grad=True)
|
|
120
120
|
b = wp.array([test_data.b], dtype=data_type, device=device, requires_grad=True)
|
|
121
121
|
t = wp.array([test_data.t], dtype=float, device=device, requires_grad=True)
|
|
122
|
-
out = wp.array(
|
|
122
|
+
out = wp.array(
|
|
123
|
+
[0] * wp._src.types.type_size(data_type), dtype=data_type, device=device, requires_grad=True
|
|
124
|
+
)
|
|
123
125
|
|
|
124
126
|
with wp.Tape() as tape:
|
|
125
127
|
wp.launch(kernel, dim=1, inputs=[a, b, t, out], device=device)
|
|
@@ -18,7 +18,7 @@ import unittest
|
|
|
18
18
|
import numpy as np
|
|
19
19
|
|
|
20
20
|
import warp as wp
|
|
21
|
-
from warp.context import assert_conditional_graph_support
|
|
21
|
+
from warp._src.context import assert_conditional_graph_support
|
|
22
22
|
from warp.optim.linear import bicgstab, cg, cr, gmres, preconditioner
|
|
23
23
|
from warp.tests.unittest_utils import *
|
|
24
24
|
|
warp/tests/test_map.py
CHANGED
|
@@ -18,7 +18,7 @@ import unittest
|
|
|
18
18
|
import numpy as np
|
|
19
19
|
|
|
20
20
|
import warp as wp
|
|
21
|
-
import warp.context
|
|
21
|
+
import warp._src.context
|
|
22
22
|
import warp.tests.aux_test_name_clash1 as name_clash_module_1
|
|
23
23
|
import warp.tests.aux_test_name_clash2 as name_clash_module_2
|
|
24
24
|
from warp.tests.unittest_utils import add_function_test, assert_np_equal, get_cuda_test_devices, get_test_devices
|
|
@@ -101,6 +101,37 @@ def test_lambda(test, device):
|
|
|
101
101
|
expected = np.array(np.arange(10) * local_var, dtype=np.float32)
|
|
102
102
|
assert_np_equal(out2.numpy(), expected)
|
|
103
103
|
|
|
104
|
+
# inline variable construction which uses parentheses
|
|
105
|
+
out = wp.map(lambda a: wp.length(wp.vec3(a, a + 1.0, a + 2.0)), a1)
|
|
106
|
+
expected = np.array([np.sqrt(i * i + (i + 1) * (i + 1) + (i + 2) * (i + 2)) for i in range(10)], dtype=np.float32)
|
|
107
|
+
assert_np_equal(out.numpy(), expected)
|
|
108
|
+
|
|
109
|
+
# multi-line lambda
|
|
110
|
+
# fmt: off
|
|
111
|
+
out = wp.map(lambda a: (\
|
|
112
|
+
a + 1.0 + 2.0 + 3.0 + 4.0 + 5.0 \
|
|
113
|
+
+ 6.0 + 7.0 + 8.0 + 9.0 + 10.0\
|
|
114
|
+
), a1)
|
|
115
|
+
# fmt: on
|
|
116
|
+
expected = np.array([np.sum(np.arange(1, 11)) + i for i in range(10)], dtype=np.float32)
|
|
117
|
+
assert_np_equal(out.numpy(), expected)
|
|
118
|
+
|
|
119
|
+
# complicated expression with parentheses and line continuation
|
|
120
|
+
# fmt: off
|
|
121
|
+
out = wp.map(lambda a: (
|
|
122
|
+
a + 1.0 + ((
|
|
123
|
+
+ 6.0 + 7.0 + 8.0) + 9.0 + (10.0
|
|
124
|
+
# an inline comment to make sure it is ignored
|
|
125
|
+
+ 0.0) \
|
|
126
|
+
+ wp.clamp(a, -0.5, 0.5) \
|
|
127
|
+
+ (wp.sin(a) + wp.cos(a))
|
|
128
|
+
)), a1)
|
|
129
|
+
# fmt: on
|
|
130
|
+
expected = np.array(
|
|
131
|
+
[41.0 + i + np.clip(i, -0.5, 0.5) + (np.sin(i) + np.cos(i)) for i in range(10)], dtype=np.float32
|
|
132
|
+
)
|
|
133
|
+
assert_np_equal(out.numpy(), expected, tol=1e-6)
|
|
134
|
+
|
|
104
135
|
|
|
105
136
|
def test_multiple_return_values(test, device):
|
|
106
137
|
@wp.func
|
|
@@ -152,7 +183,7 @@ def test_custom_struct_operator(test, device):
|
|
|
152
183
|
|
|
153
184
|
|
|
154
185
|
def test_name_clash(test, device):
|
|
155
|
-
vec5 = wp.types.vector(5, dtype=wp.float32)
|
|
186
|
+
vec5 = wp._src.types.vector(5, dtype=wp.float32)
|
|
156
187
|
|
|
157
188
|
@wp.func
|
|
158
189
|
def name_clash_structs_args_func(
|
|
@@ -415,8 +446,8 @@ def test_kernel_creation(test, device):
|
|
|
415
446
|
|
|
416
447
|
|
|
417
448
|
def test_graph_capture(test, device):
|
|
418
|
-
assert warp.context.runtime.driver_version is not None
|
|
419
|
-
if warp.context.runtime.driver_version < (12, 3):
|
|
449
|
+
assert warp._src.context.runtime.driver_version is not None
|
|
450
|
+
if warp._src.context.runtime.driver_version < (12, 3):
|
|
420
451
|
test.skipTest("Module loading during CUDA graph capture is not supported on driver versions < 12.3")
|
|
421
452
|
a_np = np.arange(10, dtype=np.float32)
|
|
422
453
|
b_np = np.arange(1, 11, dtype=np.float32)
|
|
@@ -476,6 +507,20 @@ add_function_test(TestMap, "test_graph_capture", test_graph_capture, devices=cud
|
|
|
476
507
|
add_function_test(TestMap, "test_renamed_warp_module", test_renamed_warp_module, devices=devices)
|
|
477
508
|
|
|
478
509
|
|
|
510
|
+
class TestMapDebug(unittest.TestCase):
|
|
511
|
+
@classmethod
|
|
512
|
+
def setUpClass(cls):
|
|
513
|
+
cls._saved_mode = wp.config.mode
|
|
514
|
+
wp.config.mode = "debug"
|
|
515
|
+
|
|
516
|
+
@classmethod
|
|
517
|
+
def tearDownClass(cls):
|
|
518
|
+
wp.config.mode = cls._saved_mode
|
|
519
|
+
|
|
520
|
+
|
|
521
|
+
add_function_test(TestMapDebug, "test_mixed_inputs", test_mixed_inputs, devices=devices)
|
|
522
|
+
add_function_test(TestMapDebug, "test_kernel_creation", test_kernel_creation, devices=devices)
|
|
523
|
+
|
|
479
524
|
if __name__ == "__main__":
|
|
480
525
|
wp.clear_kernel_cache()
|
|
481
526
|
unittest.main(verbosity=2)
|
warp/tests/test_mat.py
CHANGED
|
@@ -67,17 +67,17 @@ def test_shape_mismatch(test, device):
|
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
def test_py_arithmetic_ops(test, device, dtype):
|
|
70
|
-
wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
70
|
+
wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
71
71
|
|
|
72
72
|
def make_mat(*args):
|
|
73
|
-
if wptype in wp.types.int_types:
|
|
73
|
+
if wptype in wp._src.types.int_types:
|
|
74
74
|
# Cast to the correct integer type to simulate wrapping.
|
|
75
75
|
return tuple(tuple(wptype._type_(x).value for x in row) for row in args)
|
|
76
76
|
|
|
77
77
|
return args
|
|
78
78
|
|
|
79
79
|
def make_vec(*args):
|
|
80
|
-
if wptype in wp.types.int_types:
|
|
80
|
+
if wptype in wp._src.types.int_types:
|
|
81
81
|
# Cast to the correct integer type to simulate wrapping.
|
|
82
82
|
return tuple(wptype._type_(x).value for x in args)
|
|
83
83
|
|
|
@@ -116,11 +116,11 @@ def test_negation(test, device, dtype, register_kernels=False):
|
|
|
116
116
|
np.float64: 1.0e-8,
|
|
117
117
|
}.get(dtype, 0)
|
|
118
118
|
|
|
119
|
-
wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
120
|
-
mat22 = wp.types.matrix(shape=(2, 2), dtype=wptype)
|
|
121
|
-
mat33 = wp.types.matrix(shape=(3, 3), dtype=wptype)
|
|
122
|
-
mat44 = wp.types.matrix(shape=(4, 4), dtype=wptype)
|
|
123
|
-
mat55 = wp.types.matrix(shape=(5, 5), dtype=wptype)
|
|
119
|
+
wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
120
|
+
mat22 = wp._src.types.matrix(shape=(2, 2), dtype=wptype)
|
|
121
|
+
mat33 = wp._src.types.matrix(shape=(3, 3), dtype=wptype)
|
|
122
|
+
mat44 = wp._src.types.matrix(shape=(4, 4), dtype=wptype)
|
|
123
|
+
mat55 = wp._src.types.matrix(shape=(5, 5), dtype=wptype)
|
|
124
124
|
|
|
125
125
|
output_select_kernel = get_select_kernel(wptype)
|
|
126
126
|
|
|
@@ -205,12 +205,12 @@ def test_matmul(test, device, dtype, register_kernels=False):
|
|
|
205
205
|
np.float64: 1.0e-12,
|
|
206
206
|
}.get(dtype, 0)
|
|
207
207
|
|
|
208
|
-
wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
209
|
-
mat22 = wp.types.matrix(shape=(2, 2), dtype=wptype)
|
|
210
|
-
mat33 = wp.types.matrix(shape=(3, 3), dtype=wptype)
|
|
211
|
-
mat23 = wp.types.matrix(shape=(2, 3), dtype=wptype)
|
|
212
|
-
mat32 = wp.types.matrix(shape=(3, 2), dtype=wptype)
|
|
213
|
-
mat44 = wp.types.matrix(shape=(4, 4), dtype=wptype)
|
|
208
|
+
wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
209
|
+
mat22 = wp._src.types.matrix(shape=(2, 2), dtype=wptype)
|
|
210
|
+
mat33 = wp._src.types.matrix(shape=(3, 3), dtype=wptype)
|
|
211
|
+
mat23 = wp._src.types.matrix(shape=(2, 3), dtype=wptype)
|
|
212
|
+
mat32 = wp._src.types.matrix(shape=(3, 2), dtype=wptype)
|
|
213
|
+
mat44 = wp._src.types.matrix(shape=(4, 4), dtype=wptype)
|
|
214
214
|
|
|
215
215
|
output_select_kernel = get_select_kernel(wptype)
|
|
216
216
|
|
|
@@ -276,11 +276,11 @@ def test_subtraction(test, device, dtype, register_kernels=False):
|
|
|
276
276
|
np.float64: 1.0e-8,
|
|
277
277
|
}.get(dtype, 0)
|
|
278
278
|
|
|
279
|
-
wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
280
|
-
mat22 = wp.types.matrix(shape=(2, 2), dtype=wptype)
|
|
281
|
-
mat33 = wp.types.matrix(shape=(3, 3), dtype=wptype)
|
|
282
|
-
mat44 = wp.types.matrix(shape=(4, 4), dtype=wptype)
|
|
283
|
-
mat55 = wp.types.matrix(shape=(5, 5), dtype=wptype)
|
|
279
|
+
wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
280
|
+
mat22 = wp._src.types.matrix(shape=(2, 2), dtype=wptype)
|
|
281
|
+
mat33 = wp._src.types.matrix(shape=(3, 3), dtype=wptype)
|
|
282
|
+
mat44 = wp._src.types.matrix(shape=(4, 4), dtype=wptype)
|
|
283
|
+
mat55 = wp._src.types.matrix(shape=(5, 5), dtype=wptype)
|
|
284
284
|
|
|
285
285
|
output_select_kernel = get_select_kernel(wptype)
|
|
286
286
|
|
|
@@ -397,10 +397,10 @@ def test_determinant(test, device, dtype, register_kernels=False):
|
|
|
397
397
|
np.float64: 1.0e-8,
|
|
398
398
|
}.get(dtype, 0)
|
|
399
399
|
|
|
400
|
-
wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
401
|
-
mat22 = wp.types.matrix(shape=(2, 2), dtype=wptype)
|
|
402
|
-
mat33 = wp.types.matrix(shape=(3, 3), dtype=wptype)
|
|
403
|
-
mat44 = wp.types.matrix(shape=(4, 4), dtype=wptype)
|
|
400
|
+
wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
401
|
+
mat22 = wp._src.types.matrix(shape=(2, 2), dtype=wptype)
|
|
402
|
+
mat33 = wp._src.types.matrix(shape=(3, 3), dtype=wptype)
|
|
403
|
+
mat44 = wp._src.types.matrix(shape=(4, 4), dtype=wptype)
|
|
404
404
|
|
|
405
405
|
def check_mat_det(
|
|
406
406
|
v2: wp.array(dtype=mat22),
|
|
@@ -535,8 +535,8 @@ def test_determinant(test, device, dtype, register_kernels=False):
|
|
|
535
535
|
# np.float64: 1.0e-8,
|
|
536
536
|
# }.get(dtype, 0)
|
|
537
537
|
#
|
|
538
|
-
# wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
539
|
-
# mat55 = wp.types.vector(shape=(5, 5), dtype=wptype)
|
|
538
|
+
# wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
539
|
+
# mat55 = wp._src.types.vector(shape=(5, 5), dtype=wptype)
|
|
540
540
|
#
|
|
541
541
|
# output_select_kernel = get_select_kernel(wptype)
|
|
542
542
|
#
|
|
@@ -590,10 +590,10 @@ def test_inverse(test, device, dtype, register_kernels=False):
|
|
|
590
590
|
np.float64: 1.0e-8,
|
|
591
591
|
}.get(dtype, 0)
|
|
592
592
|
|
|
593
|
-
wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
594
|
-
mat22 = wp.types.matrix(shape=(2, 2), dtype=wptype)
|
|
595
|
-
mat33 = wp.types.matrix(shape=(3, 3), dtype=wptype)
|
|
596
|
-
mat44 = wp.types.matrix(shape=(4, 4), dtype=wptype)
|
|
593
|
+
wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
594
|
+
mat22 = wp._src.types.matrix(shape=(2, 2), dtype=wptype)
|
|
595
|
+
mat33 = wp._src.types.matrix(shape=(3, 3), dtype=wptype)
|
|
596
|
+
mat44 = wp._src.types.matrix(shape=(4, 4), dtype=wptype)
|
|
597
597
|
|
|
598
598
|
output_select_kernel = get_select_kernel(wptype)
|
|
599
599
|
|
|
@@ -760,9 +760,9 @@ def test_svd(test, device, dtype, register_kernels=False):
|
|
|
760
760
|
np.float64: 1.0e-12,
|
|
761
761
|
}.get(dtype, 0)
|
|
762
762
|
|
|
763
|
-
wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
764
|
-
vec3 = wp.types.vector(length=3, dtype=wptype)
|
|
765
|
-
mat33 = wp.types.matrix(shape=(3, 3), dtype=wptype)
|
|
763
|
+
wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
764
|
+
vec3 = wp._src.types.vector(length=3, dtype=wptype)
|
|
765
|
+
mat33 = wp._src.types.matrix(shape=(3, 3), dtype=wptype)
|
|
766
766
|
|
|
767
767
|
def check_mat_svd(
|
|
768
768
|
m3: wp.array(dtype=mat33),
|
|
@@ -879,9 +879,9 @@ def test_svd_2D(test, device, dtype, register_kernels=False):
|
|
|
879
879
|
np.float64: 1.0e-12,
|
|
880
880
|
}.get(dtype, 0)
|
|
881
881
|
|
|
882
|
-
wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
883
|
-
vec2 = wp.types.vector(length=2, dtype=wptype)
|
|
884
|
-
mat22 = wp.types.matrix(shape=(2, 2), dtype=wptype)
|
|
882
|
+
wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
883
|
+
vec2 = wp._src.types.vector(length=2, dtype=wptype)
|
|
884
|
+
mat22 = wp._src.types.matrix(shape=(2, 2), dtype=wptype)
|
|
885
885
|
|
|
886
886
|
def check_mat_svd2(
|
|
887
887
|
m2: wp.array(dtype=mat22),
|
|
@@ -1027,8 +1027,8 @@ def test_qr(test, device, dtype, register_kernels=False):
|
|
|
1027
1027
|
np.float64: 1.0e-12,
|
|
1028
1028
|
}.get(dtype, 0)
|
|
1029
1029
|
|
|
1030
|
-
wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
1031
|
-
mat33 = wp.types.matrix(shape=(3, 3), dtype=wptype)
|
|
1030
|
+
wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
1031
|
+
mat33 = wp._src.types.matrix(shape=(3, 3), dtype=wptype)
|
|
1032
1032
|
|
|
1033
1033
|
def check_mat_qr(
|
|
1034
1034
|
m3: wp.array(dtype=mat33),
|
|
@@ -1139,9 +1139,9 @@ def test_eig(test, device, dtype, register_kernels=False):
|
|
|
1139
1139
|
np.float64: 1.0e-5,
|
|
1140
1140
|
}.get(dtype, 0)
|
|
1141
1141
|
|
|
1142
|
-
wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
1143
|
-
vec3 = wp.types.vector(length=3, dtype=wptype)
|
|
1144
|
-
mat33 = wp.types.matrix(shape=(3, 3), dtype=wptype)
|
|
1142
|
+
wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
1143
|
+
vec3 = wp._src.types.vector(length=3, dtype=wptype)
|
|
1144
|
+
mat33 = wp._src.types.matrix(shape=(3, 3), dtype=wptype)
|
|
1145
1145
|
|
|
1146
1146
|
def check_mat_eig(
|
|
1147
1147
|
m3: wp.array(dtype=mat33),
|
|
@@ -1251,8 +1251,8 @@ def test_skew(test, device, dtype, register_kernels=False):
|
|
|
1251
1251
|
np.float64: 1.0e-8,
|
|
1252
1252
|
}.get(dtype, 0)
|
|
1253
1253
|
|
|
1254
|
-
wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
1255
|
-
vec3 = wp.types.vector(length=3, dtype=wptype)
|
|
1254
|
+
wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
1255
|
+
vec3 = wp._src.types.vector(length=3, dtype=wptype)
|
|
1256
1256
|
|
|
1257
1257
|
output_select_kernel = get_select_kernel(wptype)
|
|
1258
1258
|
|
|
@@ -1283,7 +1283,6 @@ def test_skew(test, device, dtype, register_kernels=False):
|
|
|
1283
1283
|
|
|
1284
1284
|
# make sure it gives you a cross product matrix:
|
|
1285
1285
|
crossprodmat = outcomponents.numpy().reshape(3, 3)
|
|
1286
|
-
v = np.array([1, 0, 0])
|
|
1287
1286
|
assert_np_equal(
|
|
1288
1287
|
np.matmul(crossprodmat, np.array([1, 0, 0])).reshape(-1),
|
|
1289
1288
|
2 * np.cross(v3.numpy()[0], np.array([1, 0, 0])),
|
|
@@ -1353,9 +1352,9 @@ def test_transform_point(test, device, dtype, register_kernels=False):
|
|
|
1353
1352
|
np.float64: 1.0e-8,
|
|
1354
1353
|
}.get(dtype, 0)
|
|
1355
1354
|
|
|
1356
|
-
wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
1357
|
-
vec3 = wp.types.vector(length=3, dtype=wptype)
|
|
1358
|
-
mat44 = wp.types.matrix(shape=(4, 4), dtype=wptype)
|
|
1355
|
+
wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
1356
|
+
vec3 = wp._src.types.vector(length=3, dtype=wptype)
|
|
1357
|
+
mat44 = wp._src.types.matrix(shape=(4, 4), dtype=wptype)
|
|
1359
1358
|
|
|
1360
1359
|
output_select_kernel = get_select_kernel(wptype)
|
|
1361
1360
|
|
|
@@ -1414,9 +1413,9 @@ def test_transform_vector(test, device, dtype, register_kernels=False):
|
|
|
1414
1413
|
np.float64: 1.0e-8,
|
|
1415
1414
|
}.get(dtype, 0)
|
|
1416
1415
|
|
|
1417
|
-
wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
1418
|
-
vec3 = wp.types.vector(length=3, dtype=wptype)
|
|
1419
|
-
mat44 = wp.types.matrix(shape=(4, 4), dtype=wptype)
|
|
1416
|
+
wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
1417
|
+
vec3 = wp._src.types.vector(length=3, dtype=wptype)
|
|
1418
|
+
mat44 = wp._src.types.matrix(shape=(4, 4), dtype=wptype)
|
|
1420
1419
|
|
|
1421
1420
|
output_select_kernel = get_select_kernel(wptype)
|
|
1422
1421
|
|
|
@@ -1466,22 +1465,13 @@ def test_transform_vector(test, device, dtype, register_kernels=False):
|
|
|
1466
1465
|
|
|
1467
1466
|
|
|
1468
1467
|
@wp.kernel
|
|
1469
|
-
def test_matrix_mutation(expected: wp.types.matrix(shape=(10, 3), dtype=float)):
|
|
1468
|
+
def test_matrix_mutation(expected: wp._src.types.matrix(shape=(10, 3), dtype=float)):
|
|
1470
1469
|
m = wp.matrix(shape=(10, 3), dtype=float)
|
|
1471
1470
|
|
|
1472
1471
|
# test direct element indexing
|
|
1473
1472
|
m[0, 0] = 1.0
|
|
1474
|
-
m[0
|
|
1475
|
-
m[0
|
|
1476
|
-
|
|
1477
|
-
# The nested indexing (matrix->vector->scalar) below does not
|
|
1478
|
-
# currently modify m because m[0] returns row vector by
|
|
1479
|
-
# value rather than reference, this is different from NumPy
|
|
1480
|
-
# which always returns by ref. Not clear how we can support
|
|
1481
|
-
# this as well as auto-diff.
|
|
1482
|
-
|
|
1483
|
-
# m[0][1] = 2.0
|
|
1484
|
-
# m[0][2] = 3.0
|
|
1473
|
+
m[0][1] = 2.0
|
|
1474
|
+
m[0][2] = 3.0
|
|
1485
1475
|
|
|
1486
1476
|
# test setting rows
|
|
1487
1477
|
for i in range(1, 10):
|
|
@@ -3443,7 +3433,7 @@ class TestMat(unittest.TestCase):
|
|
|
3443
3433
|
self.assertSequenceEqual(m, ((0.0, 1.0), (2.0, 3.0)))
|
|
3444
3434
|
|
|
3445
3435
|
|
|
3446
|
-
mat103 = wp.types.matrix(shape=(10, 3), dtype=float)
|
|
3436
|
+
mat103 = wp._src.types.matrix(shape=(10, 3), dtype=float)
|
|
3447
3437
|
add_kernel_test(
|
|
3448
3438
|
TestMat,
|
|
3449
3439
|
test_matrix_mutation,
|
|
@@ -419,11 +419,10 @@ def test_quat_constructor(test, device, dtype, register_kernels=False):
|
|
|
419
419
|
np.float64: 1.0e-8,
|
|
420
420
|
}.get(dtype, 0)
|
|
421
421
|
|
|
422
|
-
wptype = wp.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
quat = wp.types.quaternion(dtype=wptype)
|
|
422
|
+
wptype = wp._src.types.np_dtype_to_warp_type[np.dtype(dtype)]
|
|
423
|
+
vec4 = wp._src.types.vector(length=4, dtype=wptype)
|
|
424
|
+
vec3 = wp._src.types.vector(length=3, dtype=wptype)
|
|
425
|
+
quat = wp._src.types.quaternion(dtype=wptype)
|
|
427
426
|
|
|
428
427
|
output_select_kernel = get_select_kernel(wptype)
|
|
429
428
|
|
warp/tests/test_mat_lite.py
CHANGED
|
@@ -81,7 +81,7 @@ def test_constructors_default_precision():
|
|
|
81
81
|
|
|
82
82
|
|
|
83
83
|
@wp.kernel
|
|
84
|
-
def test_matrix_mutation(expected: wp.types.matrix(shape=(10, 3), dtype=float)):
|
|
84
|
+
def test_matrix_mutation(expected: wp._src.types.matrix(shape=(10, 3), dtype=float)):
|
|
85
85
|
m = wp.matrix(shape=(10, 3), dtype=float)
|
|
86
86
|
|
|
87
87
|
# test direct element indexing
|