warp-lang 1.9.1__py3-none-manylinux_2_34_aarch64.whl → 1.10.0rc2__py3-none-manylinux_2_34_aarch64.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 +794 -305
- 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} +1382 -377
- 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.so +0 -0
- warp/bin/warp.so +0 -0
- warp/build.py +8 -588
- warp/build_dll.py +6 -721
- warp/codegen.py +6 -4251
- warp/constants.py +6 -39
- warp/context.py +12 -8062
- 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 +1 -1
- 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 -365
- warp/jax_experimental/ffi.py +17 -873
- warp/jax_experimental/xla_ffi.py +5 -605
- warp/marching_cubes.py +5 -689
- warp/math.py +16 -393
- warp/native/array.h +385 -37
- warp/native/builtin.h +314 -37
- 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/sparse.cu +7 -3
- warp/native/spatial.h +12 -0
- warp/native/tile.h +681 -89
- 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 -0
- 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 +57 -29
- warp/native/warp.cu +253 -171
- warp/native/warp.h +11 -8
- 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 -3618
- warp/render/render_usd.py +6 -919
- 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_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 +772 -49
- 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 +527 -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 +33 -14
- 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 +56 -10
- 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 +35 -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_types.py +27 -15
- 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 +178 -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 -5764
- warp/utils.py +10 -1659
- {warp_lang-1.9.1.dist-info → warp_lang-1.10.0rc2.dist-info}/METADATA +46 -99
- 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.1.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.1.dist-info → warp_lang-1.10.0rc2.dist-info}/WHEEL +0 -0
- {warp_lang-1.9.1.dist-info → warp_lang-1.10.0rc2.dist-info}/licenses/LICENSE.md +0 -0
- {warp_lang-1.9.1.dist-info → warp_lang-1.10.0rc2.dist-info}/top_level.txt +0 -0
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)
|
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
|