warp-lang 1.9.0__py3-none-macosx_10_13_universal2.whl → 1.9.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.

warp/tests/test_array.py CHANGED
@@ -364,6 +364,7 @@ def test_slicing(test, device):
364
364
  slice_e = arr[-1:3, :, :] # test mixed slicing
365
365
  slice_e2 = slice_e[0, 0, :] # test 2x slicing
366
366
  slice_f = arr[0:3:2, 0, :] # test step
367
+ slice_g = arr[1:1, :0, -1:-1] # test empty slice
367
368
 
368
369
  assert_array_equal(slice_a, wp.array(np_arr[1, :, :], dtype=float, device=device))
369
370
  assert_array_equal(slice_b, wp.array(np_arr[1:2, :, :], dtype=float, device=device))
@@ -371,6 +372,7 @@ def test_slicing(test, device):
371
372
  assert_array_equal(slice_d, wp.array(np_arr[-2:-1, :, :], dtype=float, device=device))
372
373
  assert_array_equal(slice_e, wp.array(np_arr[-1:3, :, :], dtype=float, device=device))
373
374
  assert_array_equal(slice_e2, wp.array(np_arr[2, 0, :], dtype=float, device=device))
375
+ assert slice_g.shape == np_arr[1:1, :0, -1:-1].shape == (0, 0, 0)
374
376
 
375
377
  # wp does not support copying from/to non-contiguous arrays
376
378
  # stepped windows must read on the device the original array was created on
@@ -463,7 +463,7 @@ def test_error_unmatched_arguments(test, device):
463
463
  kernel = wp.Kernel(func=kernel_2_fn)
464
464
  with test.assertRaisesRegex(
465
465
  RuntimeError,
466
- r"Input types must be exactly the same, got \['vec2f', 'vector\(length=2, dtype=float16\)'\]",
466
+ r"Input types must be exactly the same, got \['vec2f', 'vec2h'\]",
467
467
  ):
468
468
  wp.launch(kernel, dim=1, device=device)
469
469
 
warp/tests/test_fem.py CHANGED
@@ -874,7 +874,7 @@ def test_deformed_geometry(test, device):
874
874
  np.sum(side_measures.numpy()), scale**2 * (0.5 * 6 * (N + 1) + N * 2 * math.sqrt(3.0)), places=4
875
875
  )
876
876
 
877
- @wp.kernel
877
+ @fem.cache.dynamic_kernel(suffix=deformed_geo.name, kernel_options={"enable_backward": False})
878
878
  def _test_deformed_geometry_normal(
879
879
  geo_index_arg: geo.SideIndexArg, geo_arg: geo.SideArg, def_arg: deformed_geo.SideArg, rotation: wp.vec3
880
880
  ):
@@ -926,7 +926,7 @@ def test_deformed_geometry_codimensional(test, device):
926
926
 
927
927
  deformed_geo = pos_field.make_deformed_geometry()
928
928
 
929
- @wp.kernel
929
+ @fem.cache.dynamic_kernel(suffix=deformed_geo.name, kernel_options={"enable_backward": False})
930
930
  def _test_deformed_geometry_normal_codimensional(
931
931
  geo_arg: geo.CellArg, def_arg: deformed_geo.CellArg, rotation: wp.vec3
932
932
  ):
@@ -1956,7 +1956,7 @@ def test_vector_spaces(test, device):
1956
1956
  )
1957
1957
 
1958
1958
 
1959
- @wp.kernel
1959
+ @wp.kernel(enable_backward=False)
1960
1960
  def test_qr_eigenvalues():
1961
1961
  tol = 5.0e-7
1962
1962
 
@@ -2011,7 +2011,7 @@ def test_qr_eigenvalues():
2011
2011
  wp.expect_near(wp.ddot(Err6, Err6), 0.0, 1.0e-13)
2012
2012
 
2013
2013
 
2014
- @wp.kernel
2014
+ @wp.kernel(enable_backward=False)
2015
2015
  def test_qr_inverse():
2016
2016
  rng = wp.rand_init(4356, wp.tid())
2017
2017
  M = wp.mat33(
warp/tests/test_map.py CHANGED
@@ -476,6 +476,20 @@ add_function_test(TestMap, "test_graph_capture", test_graph_capture, devices=cud
476
476
  add_function_test(TestMap, "test_renamed_warp_module", test_renamed_warp_module, devices=devices)
477
477
 
478
478
 
479
+ class TestMapDebug(unittest.TestCase):
480
+ @classmethod
481
+ def setUpClass(cls):
482
+ cls._saved_mode = wp.config.mode
483
+ wp.config.mode = "debug"
484
+
485
+ @classmethod
486
+ def tearDownClass(cls):
487
+ wp.config.mode = cls._saved_mode
488
+
489
+
490
+ add_function_test(TestMapDebug, "test_mixed_inputs", test_mixed_inputs, devices=devices)
491
+ add_function_test(TestMapDebug, "test_kernel_creation", test_kernel_creation, devices=devices)
492
+
479
493
  if __name__ == "__main__":
480
494
  wp.clear_kernel_cache()
481
495
  unittest.main(verbosity=2)
warp/tests/test_tuple.py CHANGED
@@ -13,6 +13,7 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
+ import sys
16
17
  import unittest
17
18
  from typing import Any, Tuple
18
19
 
@@ -208,6 +209,92 @@ def test_loop_variadic_ellipsis():
208
209
  wp.expect_eq(res, 22)
209
210
 
210
211
 
212
+ # Test for Python 3.10 tuple type compatibility issue
213
+ # Only define these functions on Python 3.9+ where lowercase tuple is supported
214
+ if sys.version_info >= (3, 9):
215
+
216
+ @wp.func
217
+ def complex_tuple_function(scale: float, offset: wp.vec3) -> tuple[float, wp.vec3f, wp.vec3f]:
218
+ """
219
+ Function that returns a complex tuple with mixed types.
220
+ This specifically tests the tuple[float, wp.vec3f, wp.vec3f] case
221
+ that was problematic on Python 3.10.
222
+ """
223
+ # Create some computed values
224
+ scaled_value = scale * 2.5
225
+ position = wp.vec3f(offset.x + 1.0, offset.y + 2.0, offset.z + 3.0)
226
+ velocity = wp.vec3f(scale * 0.1, scale * 0.2, scale * 0.3)
227
+
228
+ return (scaled_value, position, velocity)
229
+
230
+ @wp.func
231
+ def mixed_types_tuple_function() -> tuple[wp.vec3f, wp.vec3f, float, wp.mat33f]:
232
+ """
233
+ Function returning mixed types in a tuple.
234
+ Tests tuple[vec3f, vec3f, float, mat33f] type annotation.
235
+ """
236
+ return (
237
+ wp.vec3f(1.0, 2.0, 3.0),
238
+ wp.vec3f(4.0, 5.0, 6.0),
239
+ 42.0,
240
+ wp.mat33f(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0),
241
+ )
242
+
243
+ @wp.func
244
+ def homogeneous_tuple_function() -> tuple[wp.vec3f, wp.vec3f, wp.vec3f]:
245
+ """
246
+ Function returning fixed-size homogeneous tuple.
247
+ Tests tuple[wp.vec3f, wp.vec3f, wp.vec3f] type annotation.
248
+ """
249
+ return (wp.vec3f(1.0, 2.0, 3.0), wp.vec3f(4.0, 5.0, 6.0), wp.vec3f(7.0, 8.0, 9.0))
250
+
251
+ @wp.kernel
252
+ def test_complex_tuple_functions():
253
+ """
254
+ Kernel that tests complex tuple return types that were problematic on Python 3.10.
255
+ """
256
+ # Test the main problematic case: tuple[float, wp.vec3f, wp.vec3f]
257
+ result1 = complex_tuple_function(4.0, wp.vec3(10.0, 20.0, 30.0))
258
+
259
+ # Unpack and verify
260
+ scale_result, pos_result, vel_result = result1
261
+ wp.expect_near(scale_result, 10.0) # 4.0 * 2.5
262
+ wp.expect_eq(pos_result, wp.vec3f(11.0, 22.0, 33.0))
263
+ wp.expect_eq(vel_result, wp.vec3f(0.4, 0.8, 1.2))
264
+
265
+ # Test access by index
266
+ wp.expect_near(result1[0], 10.0)
267
+ wp.expect_eq(result1[1], wp.vec3f(11.0, 22.0, 33.0))
268
+ wp.expect_eq(result1[2], wp.vec3f(0.4, 0.8, 1.2))
269
+
270
+ # Test more complex tuple: tuple[vec3f, vec3f, float, mat33f]
271
+ mixed_result = mixed_types_tuple_function()
272
+ result_pos, result_vel, result_energy, result_transform = mixed_result
273
+
274
+ # Verify known values
275
+ wp.expect_eq(result_pos, wp.vec3f(1.0, 2.0, 3.0))
276
+ wp.expect_eq(result_vel, wp.vec3f(4.0, 5.0, 6.0))
277
+ wp.expect_eq(result_energy, 42.0)
278
+
279
+ # Verify transform matrix is identity
280
+ wp.expect_eq(result_transform[0, 0], 1.0)
281
+ wp.expect_eq(result_transform[1, 1], 1.0)
282
+ wp.expect_eq(result_transform[2, 2], 1.0)
283
+
284
+ # Test fixed-size homogeneous tuple: tuple[wp.vec3f, wp.vec3f, wp.vec3f]
285
+ homo_result = homogeneous_tuple_function()
286
+ wp.expect_eq(len(homo_result), 3)
287
+ wp.expect_eq(homo_result[0], wp.vec3f(1.0, 2.0, 3.0))
288
+ wp.expect_eq(homo_result[1], wp.vec3f(4.0, 5.0, 6.0))
289
+ wp.expect_eq(homo_result[2], wp.vec3f(7.0, 8.0, 9.0))
290
+
291
+ # Test unpacking
292
+ vec1, vec2, vec3 = homo_result
293
+ wp.expect_eq(vec1, wp.vec3f(1.0, 2.0, 3.0))
294
+ wp.expect_eq(vec2, wp.vec3f(4.0, 5.0, 6.0))
295
+ wp.expect_eq(vec3, wp.vec3f(7.0, 8.0, 9.0))
296
+
297
+
211
298
  devices = get_test_devices()
212
299
 
213
300
 
@@ -258,6 +345,15 @@ add_kernel_test(
258
345
  dim=1,
259
346
  devices=devices,
260
347
  )
348
+ # Only register the test for lowercase tuple syntax on Python 3.9+
349
+ if sys.version_info >= (3, 9):
350
+ add_kernel_test(
351
+ TestTuple,
352
+ name="test_complex_tuple_functions",
353
+ kernel=test_complex_tuple_functions,
354
+ dim=1,
355
+ devices=devices,
356
+ )
261
357
 
262
358
 
263
359
  if __name__ == "__main__":
warp/tests/test_types.py CHANGED
@@ -13,6 +13,7 @@
13
13
  # See the License for the specific language governing permissions and
14
14
  # limitations under the License.
15
15
 
16
+ import sys
16
17
  import unittest
17
18
 
18
19
  from warp.tests.unittest_utils import *
@@ -527,6 +528,66 @@ class TestTypes(unittest.TestCase):
527
528
  test_conversions(wp.uint64, np.uint64)
528
529
  test_conversions(wp.bool, np.bool_)
529
530
 
531
+ # Only define this test method on Python 3.9+ where lowercase tuple is supported
532
+ if sys.version_info >= (3, 9):
533
+
534
+ def test_tuple_type_code_generation(self):
535
+ """Test that tuple type annotations generate correct type codes, especially on Python 3.10."""
536
+ import sys
537
+ import types
538
+ from typing import get_origin
539
+
540
+ # Test basic tuple types
541
+ tuple_float_float = tuple[float, float]
542
+ result = wp.types.get_type_code(tuple_float_float)
543
+ self.assertEqual(result, "tpl2f4f4", "tuple[float, float] should generate 'tpl2f4f4'")
544
+
545
+ # Test tuple with Warp vector types - the problematic case from Python 3.10
546
+ tuple_mixed = tuple[float, wp.vec3f, wp.vec3f]
547
+ result = wp.types.get_type_code(tuple_mixed)
548
+ self.assertEqual(result, "tpl3f4v3f4v3f4", "tuple[float, vec3f, vec3f] should generate 'tpl3f4v3f4v3f4'")
549
+
550
+ # Test homogeneous tuple with ellipsis
551
+ tuple_homogeneous = tuple[wp.vec3f, ...]
552
+ result = wp.types.get_type_code(tuple_homogeneous)
553
+ self.assertEqual(result, "tpl2v3f4?", "tuple[vec3f, ...] should generate 'tpl2v3f4?'")
554
+
555
+ # Test single element tuple
556
+ tuple_single = tuple[wp.int32]
557
+ result = wp.types.get_type_code(tuple_single)
558
+ self.assertEqual(result, "tpl1i4", "tuple[int32] should generate 'tpl1i4'")
559
+
560
+ # Test tuple with multiple Warp types
561
+ tuple_multi_warp = tuple[wp.vec3f, wp.mat33f, wp.quatf]
562
+ result = wp.types.get_type_code(tuple_multi_warp)
563
+ self.assertEqual(
564
+ result, "tpl3v3f4m33f4qf4", "tuple[vec3f, mat33f, quatf] should generate 'tpl3v3f4m33f4qf4'"
565
+ )
566
+
567
+ # Verify the fix works on Python 3.9-3.10 specifically
568
+ if sys.version_info < (3, 11) and hasattr(types, "GenericAlias"):
569
+ # On Python 3.9-3.10, tuple[...] creates types.GenericAlias
570
+ self.assertIsInstance(
571
+ tuple_mixed, types.GenericAlias, "On Python 3.9-3.10, tuple[...] should create types.GenericAlias"
572
+ )
573
+ self.assertIs(tuple_mixed.__origin__, tuple, "GenericAlias origin should be tuple")
574
+
575
+ # Verify our fix catches this case
576
+ self.assertEqual(get_origin(tuple_mixed), tuple, "get_origin should return tuple")
577
+ elif sys.version_info >= (3, 11):
578
+ # On Python 3.11+, the existing code path should handle it
579
+ self.assertEqual(get_origin(tuple_mixed), tuple, "get_origin should return tuple on Python 3.11+")
580
+
581
+ # Test that the fix doesn't break existing functionality
582
+ # Test with built-in Python types
583
+ tuple_builtin = tuple[int, str, bool]
584
+ try:
585
+ # This might fail because str and bool aren't Warp types, but it shouldn't crash
586
+ wp.types.get_type_code(tuple_builtin)
587
+ except TypeError as e:
588
+ # Expected to fail for non-Warp types, but should be a clean TypeError
589
+ self.assertIn("Unrecognized type", str(e))
590
+
530
591
 
531
592
  for dtype in wp.types.int_types:
532
593
  add_function_test(TestTypes, f"test_integers_{dtype.__name__}", test_integers, devices=devices, dtype=dtype)
@@ -837,6 +837,66 @@ def test_tile_assign(test, device):
837
837
  assert_np_equal(x.grad.numpy(), np.full(TILE_M, 1.0, dtype=np.float32))
838
838
 
839
839
 
840
+ @wp.kernel
841
+ def test_tile_where_kernel(select: int, x: wp.array(dtype=float), y: wp.array(dtype=float), z: wp.array(dtype=float)):
842
+ x_reg = wp.tile_load(x, shape=(TILE_M,), storage="register")
843
+ y_reg = wp.tile_load(y, shape=(TILE_M,), storage="register")
844
+
845
+ x_shared = wp.tile_load(x, shape=(TILE_M,), storage="shared")
846
+ y_shared = wp.tile_load(y, shape=(TILE_M,), storage="shared")
847
+
848
+ if select == 0:
849
+ s = x_reg
850
+ elif select == 1:
851
+ s = y_reg
852
+ elif select == 2:
853
+ s = x_shared
854
+ else:
855
+ s = y_shared
856
+
857
+ wp.tile_store(z, s)
858
+
859
+
860
+ def test_tile_where(test, device):
861
+ x = wp.full((TILE_M,), 1.0, dtype=float, device=device, requires_grad=True)
862
+ y = wp.full((TILE_M,), 2.0, dtype=float, device=device, requires_grad=True)
863
+ z = wp.zeros((TILE_M), dtype=float, device=device, requires_grad=True)
864
+
865
+ z_expected = [
866
+ np.full(TILE_M, 1.0, dtype=np.float32),
867
+ np.full(TILE_M, 2.0, dtype=np.float32),
868
+ np.full(TILE_M, 1.0, dtype=np.float32),
869
+ np.full(TILE_M, 2.0, dtype=np.float32),
870
+ ]
871
+ x_grad_expected = [
872
+ np.full(TILE_M, 1.0, dtype=np.float32),
873
+ np.full(TILE_M, 0.0, dtype=np.float32),
874
+ np.full(TILE_M, 1.0, dtype=np.float32),
875
+ np.full(TILE_M, 0.0, dtype=np.float32),
876
+ ]
877
+ y_grad_expected = [
878
+ np.full(TILE_M, 0.0, dtype=np.float32),
879
+ np.full(TILE_M, 1.0, dtype=np.float32),
880
+ np.full(TILE_M, 0.0, dtype=np.float32),
881
+ np.full(TILE_M, 1.0, dtype=np.float32),
882
+ ]
883
+
884
+ for i in range(4):
885
+ tape = wp.Tape()
886
+ with tape:
887
+ wp.launch_tiled(test_tile_where_kernel, dim=[1], inputs=[i, x, y], outputs=[z], block_dim=32, device=device)
888
+
889
+ z.grad = wp.ones_like(z)
890
+
891
+ tape.backward()
892
+
893
+ assert_np_equal(z.numpy(), z_expected[i])
894
+ assert_np_equal(x.grad.numpy(), x_grad_expected[i])
895
+ assert_np_equal(y.grad.numpy(), y_grad_expected[i])
896
+
897
+ tape.zero()
898
+
899
+
840
900
  @wp.kernel
841
901
  def test_tile_transpose_kernel(input: wp.array2d(dtype=float), output: wp.array2d(dtype=float)):
842
902
  x = wp.tile_load(input, shape=(TILE_M, TILE_N))
@@ -1261,6 +1321,7 @@ add_function_test(TestTile, "test_tile_sum_launch", test_tile_sum_launch, device
1261
1321
  add_function_test(TestTile, "test_tile_extract", test_tile_extract, devices=devices)
1262
1322
  add_function_test(TestTile, "test_tile_extract_repeated", test_tile_extract_repeated, devices=devices)
1263
1323
  add_function_test(TestTile, "test_tile_assign", test_tile_assign, devices=devices)
1324
+ add_function_test(TestTile, "test_tile_where", test_tile_where, devices=devices)
1264
1325
  add_function_test(TestTile, "test_tile_broadcast_add_1d", test_tile_broadcast_add_1d, devices=devices)
1265
1326
  add_function_test(TestTile, "test_tile_broadcast_add_2d", test_tile_broadcast_add_2d, devices=devices)
1266
1327
  add_function_test(TestTile, "test_tile_broadcast_add_3d", test_tile_broadcast_add_3d, devices=devices)
warp/types.py CHANGED
@@ -20,6 +20,8 @@ import ctypes
20
20
  import inspect
21
21
  import math
22
22
  import struct
23
+ import sys
24
+ import types
23
25
  import zlib
24
26
  from typing import (
25
27
  Any,
@@ -1883,7 +1885,9 @@ def type_typestr(dtype: type) -> str:
1883
1885
 
1884
1886
 
1885
1887
  def scalar_short_name(t):
1886
- if t == float32:
1888
+ if t == float16:
1889
+ return "h"
1890
+ elif t == float32:
1887
1891
  return "f"
1888
1892
  elif t == float64:
1889
1893
  return "d"
@@ -2963,9 +2967,9 @@ class array(Array[DType]):
2963
2967
 
2964
2968
  if start < 0 or start >= self.shape[idx]:
2965
2969
  raise RuntimeError(f"Invalid indexing in slice: {start}:{stop}:{step}")
2966
- if stop < 1 or stop > self.shape[idx]:
2970
+ if stop < 0 or stop > self.shape[idx]:
2967
2971
  raise RuntimeError(f"Invalid indexing in slice: {start}:{stop}:{step}")
2968
- if stop <= start:
2972
+ if stop < start:
2969
2973
  raise RuntimeError(f"Invalid indexing in slice: {start}:{stop}:{step}")
2970
2974
 
2971
2975
  new_shape.append(-((stop - start) // -step)) # ceil division
@@ -5679,6 +5683,16 @@ def get_type_code(arg_type: type) -> str:
5679
5683
  # special case for generics
5680
5684
  # note: since Python 3.11 Any is a type, so we check for it first
5681
5685
  return "?"
5686
+ elif (
5687
+ sys.version_info < (3, 11)
5688
+ and hasattr(types, "GenericAlias")
5689
+ and isinstance(arg_type, types.GenericAlias)
5690
+ and arg_type.__origin__ is tuple
5691
+ ):
5692
+ # Handle tuple[...] on Python <= 3.10 where it creates types.GenericAlias
5693
+ # This must come before isinstance(arg_type, type) check
5694
+ arg_types = arg_type.__args__
5695
+ return f"tpl{len(arg_types)}{''.join(get_type_code(x) for x in arg_types)}"
5682
5696
  elif isinstance(arg_type, type):
5683
5697
  if hasattr(arg_type, "_wp_scalar_type_"):
5684
5698
  # vector/matrix type
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: warp-lang
3
- Version: 1.9.0
3
+ Version: 1.9.1
4
4
  Summary: A Python framework for high-performance simulation and graphics programming
5
5
  Author-email: NVIDIA Corporation <warp-python@nvidia.com>
6
6
  License: Apache-2.0
@@ -55,7 +55,6 @@ Dynamic: license-file
55
55
  [![Downloads](https://static.pepy.tech/badge/warp-lang/month)](https://pepy.tech/project/warp-lang)
56
56
  [![codecov](https://codecov.io/github/NVIDIA/warp/graph/badge.svg?token=7O1KSM79FG)](https://codecov.io/github/NVIDIA/warp)
57
57
  ![GitHub - CI](https://github.com/NVIDIA/warp/actions/workflows/ci.yml/badge.svg)
58
- [![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](https://discord.com/invite/nvidiaomniverse)
59
58
 
60
59
  # NVIDIA Warp
61
60
 
@@ -95,9 +94,9 @@ the `pip install` command, e.g.
95
94
 
96
95
  | Platform | Install Command |
97
96
  | --------------- | ----------------------------------------------------------------------------------------------------------------------------- |
98
- | Linux aarch64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.9.0/warp_lang-1.9.0+cu13-py3-none-manylinux_2_34_aarch64.whl` |
99
- | Linux x86-64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.9.0/warp_lang-1.9.0+cu13-py3-none-manylinux_2_34_x86_64.whl` |
100
- | Windows x86-64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.9.0/warp_lang-1.9.0+cu13-py3-none-win_amd64.whl` |
97
+ | Linux aarch64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.9.1/warp_lang-1.9.1+cu13-py3-none-manylinux_2_34_aarch64.whl` |
98
+ | Linux x86-64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.9.1/warp_lang-1.9.1+cu13-py3-none-manylinux_2_34_x86_64.whl` |
99
+ | Windows x86-64 | `pip install https://github.com/NVIDIA/warp/releases/download/v1.9.1/warp_lang-1.9.1+cu13-py3-none-win_amd64.whl` |
101
100
 
102
101
  The `--force-reinstall` option may need to be used to overwrite a previous installation.
103
102
 
@@ -463,9 +462,7 @@ See the [FAQ](https://nvidia.github.io/warp/faq.html) in the Warp documentation.
463
462
 
464
463
  Problems, questions, and feature requests can be opened on [GitHub Issues](https://github.com/NVIDIA/warp/issues).
465
464
 
466
- The Warp team also monitors the **#warp** forum on the public [Omniverse Discord](https://discord.com/invite/nvidiaomniverse) server, come chat with us!
467
-
468
- For inquiries not suited for GitHub Issues or Discord, please email warp-python@nvidia.com.
465
+ For inquiries not suited for GitHub Issues, please email warp-python@nvidia.com.
469
466
 
470
467
  ## Versioning
471
468
 
@@ -1,13 +1,13 @@
1
1
  warp/__init__.py,sha256=6Q39Ws8frwVWlNseSikMYFN2gNQOyi19jTimPUHU4LM,13186
2
- warp/__init__.pyi,sha256=qRPV7T_BICUtatuf5lp8V0EVa0S4jhpDF-FQuVqvCkw,127715
2
+ warp/__init__.pyi,sha256=TeSsDozzuo5GN3d_GbrzxZzoJxKlabyTmkVVCyArjgY,162574
3
3
  warp/autograd.py,sha256=vNW2gsnZai_DE2sW4CK9nRkyitXRIvsVeLEQXOYNNUA,43876
4
4
  warp/build.py,sha256=lRUVXoy5zf13IS2qD6KZkw2MrZpeOlsne4HIMkYDWvg,21978
5
- warp/build_dll.py,sha256=sYChcU242iDpJc1ywsmIbrCHhfOMPQFzOqDGOuNgTAw,20394
6
- warp/builtins.py,sha256=qJEe3mkLJFhdDxA6CxCuSjpG5oE6-3nY9SYWmK25xJ4,304409
7
- warp/codegen.py,sha256=wtT0L2TvmKMHEuLXqf7Grp-z-mBHj5zZAIdwAEKDHvw,163024
8
- warp/config.py,sha256=75OqWSJVHWlDnXz-2EhwHjbzabiYMY0wsycjwqwmN0w,5370
5
+ warp/build_dll.py,sha256=xUn6O1Zqi21bDiMrucrH-0NxNKNdJZaFMDJzdrxGrvY,30246
6
+ warp/builtins.py,sha256=-Rb64Tn43t2btyHgJWUpdEg464oFutZnkvEk3FmPAvE,309707
7
+ warp/codegen.py,sha256=_U0zRJgrF15SX9kYzpScYZGyWfrLdYlxI4pF72kWkBs,163294
8
+ warp/config.py,sha256=Sugj34QY7NnQYIVzvr8ZmYOUaaqANex_Ky4Dt6r1JDY,5370
9
9
  warp/constants.py,sha256=gkRo9_7Um4GmHpbMYswqaQRXATwGlD-jyROGZJs0DBg,1593
10
- warp/context.py,sha256=U6g__vSrXv2kygCl9xaSy-jyHkzqWECmssWYGWtcrss,315925
10
+ warp/context.py,sha256=Zk4kkB3NAgkyq63eMJiH6fMNFol5xcGUvSBXLdYL9H4,325072
11
11
  warp/dlpack.py,sha256=Jzz3mnuml93gBgMy5qdeR6ei8EFIwonXTuRLXmai9jI,17253
12
12
  warp/fabric.py,sha256=vFjy518-IkbYIP1sDdqRHI3489QnCN9Gf8e6VGaSm0w,12106
13
13
  warp/jax.py,sha256=wSQDHbsm5S0gHYNSkHmtmOnDMi3LRoiM17VwhNjKBh8,5865
@@ -18,10 +18,10 @@ warp/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  warp/sparse.py,sha256=qb6g5oofbMvJoJcigJt7LJFoue5wUldXDYh5TQxuYmQ,89546
19
19
  warp/tape.py,sha256=-5R4OOemKuX_DMooe6cO7TZZsKj1Xo84SGHtqXnjelg,49581
20
20
  warp/torch.py,sha256=E8Yib8qvJtIw5fE1dfqun-UDqOixadaYQjf3JE84eak,14761
21
- warp/types.py,sha256=q9AOfYmqXI3zTXiND9NPTBBm1hbneiDM36BKUIYdGMw,210118
21
+ warp/types.py,sha256=RuNDRmGs1sDTibh3Ara0W7m9iexjCSNK9Vd-aWf03ro,210642
22
22
  warp/utils.py,sha256=_plWUGHTLRf7jQzioc9amO0k8TxMMe_WTlVUm2mW8tI,63029
23
- warp/bin/libwarp-clang.dylib,sha256=qNCPFDIhbW9SMi6Cf9jTHN1wQFzqNbKuJCHBxBkOSLo,106702216
24
- warp/bin/libwarp.dylib,sha256=7lsMuN11xHBfGbXbKmnb2EP9B06Q8cymSFEbsbzRkYI,4251832
23
+ warp/bin/libwarp-clang.dylib,sha256=AIymwv9fi0jlkGviSNdaOFP2QCuTaXlMrTvyHCOidE4,106702216
24
+ warp/bin/libwarp.dylib,sha256=fu1Mb1hK0Tm9jJIcKUPC9QM7ltQtcnscg-925ZNoN_s,4251832
25
25
  warp/examples/__init__.py,sha256=9XbxzPxvdPnjCMHB30fptKx0lxY_8jD6vkNl6wm8YMA,862
26
26
  warp/examples/browse.py,sha256=RjPx0fxpxmpPbEp_e7tzrUpo4XgLsDn_OnWxD0ggXeo,1104
27
27
  warp/examples/assets/bear.usd,sha256=1SK7s-zpF3Ypzcc8Wt861o174Pe-xMuJpvosACXVNUk,226238
@@ -95,7 +95,7 @@ warp/examples/fem/example_streamlines.py,sha256=CgJJyncXv1F9gSjkuzRmWWw9JyMoMQ_N
95
95
  warp/examples/fem/utils.py,sha256=TIo6O4p18dcfnCbGkg1PtdK3zbbZ1M4F6_NewlY5v_w,35534
96
96
  warp/examples/interop/example_jax_callable.py,sha256=B5EyxIMomorD5RPm9VKfDZ2hgkPikQQrblGQy9C48WU,3829
97
97
  warp/examples/interop/example_jax_ffi_callback.py,sha256=NEUyRbOUz56vg9_OQ3MYYAI2GByEsTGWbZafJyl6eO0,3955
98
- warp/examples/interop/example_jax_kernel.py,sha256=tPrmw_zxiZNsgRa9cEVDdEih42vHSc3Ct2RykbLv1ts,5533
98
+ warp/examples/interop/example_jax_kernel.py,sha256=tZRvTV7Hq5y4xExw-yrk0yOsk9DiWjZL2yshrYb8VCY,5562
99
99
  warp/examples/optim/example_bounce.py,sha256=Df5PWueLI0MMWb9z-L1OZBuxiKGb3lyN0UeLSeYiy28,8728
100
100
  warp/examples/optim/example_cloth_throw.py,sha256=x2cneVhtrS4q2z7IhiJowCtlHFfDk8Semzr_EemHmVQ,7471
101
101
  warp/examples/optim/example_diffray.py,sha256=-vro_MCO0RWistSPoYciuNOOJNHc3dpWZeLZvjKNSwE,18498
@@ -184,11 +184,11 @@ warp/fem/space/shape/square_shape_function.py,sha256=7YGJpwhekb1Mt0POMfT7zdWx66_
184
184
  warp/fem/space/shape/tet_shape_function.py,sha256=x5OF1GCeXMDSX2YQfqZGUw78afgvO1aYIHodA7KxjOo,28450
185
185
  warp/fem/space/shape/triangle_shape_function.py,sha256=rYYseJ4yrnDAb4Z9Hhj2CCPWR7GhfvrdueUA4lJxPcY,22334
186
186
  warp/jax_experimental/__init__.py,sha256=ICnjIx1-nVyRIT50kDGEUJqFvIOx_HxjHDNRz6NIIjk,716
187
- warp/jax_experimental/custom_call.py,sha256=6ZmgfTbmgpVcxI4kjFKhoRutjjZh8YuvLBoETX2FdFY,14161
188
- warp/jax_experimental/ffi.py,sha256=N1GwVfuxYXHBM8ZhlWD3rgCLwxHV6XViHgcQAoA-CFo,39032
189
- warp/jax_experimental/xla_ffi.py,sha256=JlRF3l7ka3cgDMtEJ3lnHW40W77HQWneltGXY1AFBf0,19824
187
+ warp/jax_experimental/custom_call.py,sha256=Ok-MoADXuswnp2m1cwXLryN8VMWFwTdQerJC18OQmJ8,15213
188
+ warp/jax_experimental/ffi.py,sha256=oIu2T70FBHmaSDoMunrku6Y06d2nlZq_c0Q4njTvcNo,39579
189
+ warp/jax_experimental/xla_ffi.py,sha256=vkeVNXwPZoEi6FpcMY6gGtLb4tbFGrYocZhAweMbpKA,20329
190
190
  warp/native/array.h,sha256=C9NPjk-XNF42Ma9GLWD0g2refkygGHAOHcCy-C7j0W4,48911
191
- warp/native/builtin.h,sha256=Qbhs7rRg3Z65lQJIEftX8DR228FqXQ9REYo1d485lvQ,59973
191
+ warp/native/builtin.h,sha256=67ZyFOH63IEW3hfOtO5LfRKCJ9DMf4qm6ihBez8JyGI,60045
192
192
  warp/native/bvh.cpp,sha256=ILQeX3n8UZDXuPd0IARWk2wqf07ksnKS7uBC-4QCo90,15314
193
193
  warp/native/bvh.cu,sha256=23raMQvPFmI1WcFBiYwGsO8MyzQidU8cWpuUpePThG8,31501
194
194
  warp/native/bvh.h,sha256=SIrtvuHgam6gEOipMPn6ayQ0GN9PIjDTM84bakhVoD4,14224
@@ -228,28 +228,28 @@ warp/native/scan.cu,sha256=j_gYWjjyGyMKGWJZg2_NG9FaM-2O_irAIT_RoZduzgY,1891
228
228
  warp/native/scan.h,sha256=rpJAtuy9cYL-zpUCf3qfknmaDcqhNKb7nzEk5GRKN5s,921
229
229
  warp/native/solid_angle.h,sha256=uzsT9wfobSCFM_DWWA2VGBVc9GQV-XVISwYk29gTecU,16674
230
230
  warp/native/sort.cpp,sha256=wMwUplzQMUBhvWae56z0rzZRbXxrAuMTDIOBMrei-JA,7234
231
- warp/native/sort.cu,sha256=6RxahBGkKjEHtOpA6xwHUzpKa24R3nBEcNizxtdr31w,8531
232
- warp/native/sort.h,sha256=hZswfioz8W9rIaILg6N_lX7LPZpqgRUNYYDpJ2B8piM,1838
231
+ warp/native/sort.cu,sha256=NsbKazBpwJlC4SK28c9Xs_kWZ-iWgXyvBMJ14ad9aWc,8844
232
+ warp/native/sort.h,sha256=BgebSUx_1DbGhp0iOY2n8FkrErSH4XlchujazMfCqYE,1893
233
233
  warp/native/sparse.cpp,sha256=cMVLRnLoBK6CfBVpLDIX6ACcnHMQV0YGE9ufHSUrBg4,7805
234
234
  warp/native/sparse.cu,sha256=_nnunlIHLx0umhcvCn5mbBAxGlQk8l6AyW1FdVSKwhc,14590
235
235
  warp/native/spatial.h,sha256=CeL5p6WJJ1lHgS9tm33CJM7wE_pVAA4Nque6q4WGUYg,36376
236
236
  warp/native/svd.h,sha256=5TjIhniZV-iSdB4nCLmXHfkM36Fgoo8SkOCU4zGKOoc,26381
237
237
  warp/native/temp_buffer.h,sha256=yrezsRrNRiGdjVsMqplbjgGdFRhC7Umc47i2cZves5A,1194
238
- warp/native/tile.h,sha256=-7sE6MpDFmKNItFPkfxra6Mvo_DdHuu-a-7txgDzXF8,117744
238
+ warp/native/tile.h,sha256=RaHWHtvpBVfI_0u-K_YSOTOFAGiIgRCLeH596ZawZzc,124726
239
239
  warp/native/tile_radix_sort.h,sha256=-0BidPW8J1qOwWEUrc0qDcsqsG4nzZP95qyKVsnTyCk,35233
240
240
  warp/native/tile_reduce.h,sha256=wWhHKIKKfWr3M23MHUbzqdxdI9C1X0dmgWjj0ftXM1A,13146
241
241
  warp/native/tile_scan.h,sha256=ux-xdNP0SY2MUaYJ_mc1OdGD5gC-U499jqnIsCyKgOM,6130
242
242
  warp/native/tuple.h,sha256=MMPhSlAEk4ek3DsKPNCZoEdSL0-0phZhQspeEvay8GI,4140
243
- warp/native/vec.h,sha256=gHQ_xgJF36_q7XaOjB3xPs0OJxfW_9zXwlj1HwXgXtA,48652
243
+ warp/native/vec.h,sha256=D6iCugqoVyU2pvs-g3HK-z6M_oRSmiNdmVLAMyPfiQg,47532
244
244
  warp/native/volume.cpp,sha256=5WyHil_HDm0UfF2lv2WuiOOQpz4UBgCFyiQOc9lrDVw,17258
245
245
  warp/native/volume.cu,sha256=afNg7jZ99dT1Tr7VGL_n82mtps0IaTMKt5fAceM3Nx0,2516
246
246
  warp/native/volume.h,sha256=rObdYhnXekPWPi-NinZAFxN9r81mh3gUVQKK-g6KQNo,36681
247
247
  warp/native/volume_builder.cu,sha256=cN4HKGzL4raKrKxUiNAehhy7RBFpHIjfFfaB3Pyrzl0,15790
248
248
  warp/native/volume_builder.h,sha256=gTTADApTLuoPNPgHkoYcOW7GO9WX3WhqDnbQjUBggNw,2071
249
249
  warp/native/volume_impl.h,sha256=jg03Jg2_ji5lYjZKxl2v0o9kVdUdVUW9yFQXLmqy_ow,2442
250
- warp/native/warp.cpp,sha256=Ckw5KO40HVBQfNa43T9P98gRjLLYzJA5BoMOB8XdImY,38453
251
- warp/native/warp.cu,sha256=PaaeF-Lt-AVMRcE-FBM5udpx82VM39cFReIb5IEW3Vs,146316
252
- warp/native/warp.h,sha256=aWlAtjKBJnIIoDY9qPc5spO1ssOgJ3IzP1vU4n7-u_8,21621
250
+ warp/native/warp.cpp,sha256=CwQhAhs39O2uijWfzkiWvzmCL1Tx25TEftGLUSvIpO4,38525
251
+ warp/native/warp.cu,sha256=pAYLwtqaE389bBEyGdRbOiXwQ8ZXJ0w0NTJww_VNR5s,147608
252
+ warp/native/warp.h,sha256=rF57L9t-1LwP01CDqG4-LfiEZ4phCDwdFkaxq53pRos,21693
253
253
  warp/native/clang/clang.cpp,sha256=G8bztC_REuWkfxaoixC_Qliue44q0SywH7iXle3Xowk,20019
254
254
  warp/native/nanovdb/GridHandle.h,sha256=6b0HxDLTpyRDXy8wm4PrgCfYK4DrGJ77Gig0lQ1wsN4,26317
255
255
  warp/native/nanovdb/HostBuffer.h,sha256=hiNxHhOuL86Fm4mFatTrZGFUiirEXW2_zhBE6AFqBPo,21583
@@ -262,8 +262,8 @@ warp/optim/linear.py,sha256=pm3uep8yfedLHXpzxfxZJHd5P44I9W2cVI3BHkt8tag,52541
262
262
  warp/optim/sgd.py,sha256=USCMuqEMtx12hV9WkqUWaEyE5Kff99gkfmRErXHXWkg,3640
263
263
  warp/render/__init__.py,sha256=EfmovuVgXCIp-Wp3shTKY4e8ewcrNogtYWicSj_ZKzE,794
264
264
  warp/render/imgui_manager.py,sha256=BAAOaT2lUy-q-MDMRI4mQehaVfP4_Uv8oDdpFFHoO3o,10975
265
- warp/render/render_opengl.py,sha256=rFzPBDkAWFLRzLNLEaIt3Osa-y96dRtrRRcMJcWWt-w,136365
266
- warp/render/render_usd.py,sha256=HGI_60fgoJPiLHwPbyb0pIOUyPYTE2gCmUYOxJRmC-E,33706
265
+ warp/render/render_opengl.py,sha256=_77BOSEHYDb5P_guq94LOg7vLjRoV7rQj023FydbQA4,136534
266
+ warp/render/render_usd.py,sha256=GewI3QXk7wlHQ8gSPHXxztu6lmL1RddnIcR3G7OV8_4,33753
267
267
  warp/render/utils.py,sha256=YjSJfVqakdz1PmMvLmRV9BGENEan4rg3Bl6oF82SX80,4554
268
268
  warp/sim/__init__.py,sha256=zONIl2p-06Ndglx1aK8hVmNr3WT3Z0ULKKRb3MSYsWY,2098
269
269
  warp/sim/articulation.py,sha256=RN4LhoZpBcfaK3SXtG3hAd5l04IBoc2Xmrm_OFnAktQ,26377
@@ -303,7 +303,7 @@ warp/tests/aux_test_unresolved_symbol.py,sha256=qImu1IIw3DSKeZTwDC25bpljdeKCzwPT
303
303
  warp/tests/run_coverage_serial.py,sha256=2k5IeKuznRi_xE29h3I_Jm2SuUWTyGe1i0_wSbM_A8k,1287
304
304
  warp/tests/test_adam.py,sha256=WXHPhJ_71e_p3cyEETs0hzHkJ3Jdixht8K9uRrWQRNw,5617
305
305
  warp/tests/test_arithmetic.py,sha256=jhpJfhWebWX5o4cnhj7d_oGSvHgMHLIAEOaFdCNb0XM,44096
306
- warp/tests/test_array.py,sha256=DsT-Lssrxrw1cB45ivipWRrkpUInh8QZjXVKS-yYNEI,116104
306
+ warp/tests/test_array.py,sha256=xhSF0iDTygpp8ITRXAgIr2O4ZHrGY9osqcFwdw5ySRw,116228
307
307
  warp/tests/test_array_reduce.py,sha256=A2qXy3uxJgyzqTUtdCARLqX7FvA4UNWsLJTjTLRm68M,4930
308
308
  warp/tests/test_assert.py,sha256=mBtaiJOQDbq6Yn-ASyTDQt_noX8Wy-gvvIkJdYN0f0w,10214
309
309
  warp/tests/test_atomic.py,sha256=nIbv23djUPLUSJGpM2yClQDP_iy_36sNVKleG0avNI0,11121
@@ -311,7 +311,7 @@ warp/tests/test_atomic_cas.py,sha256=uB6tz7SKVheRdUsYYDoK1gcY2oUq6OrYKAnLe8mFnlc
311
311
  warp/tests/test_bool.py,sha256=YPMdnjfRZryRDPNj86GwtFXbAYOp82iKrgz6I6Mo_FQ,6727
312
312
  warp/tests/test_builtins_resolution.py,sha256=wwpH3wu84llJ--mNtk4OsP7n7ij7H1ER9_apRGjY0pY,64085
313
313
  warp/tests/test_closest_point_edge_edge.py,sha256=kZmU7XkRDnkH3LoIOMPmOCg7KNq8sWPcgVZ6JnyFla0,9904
314
- warp/tests/test_codegen.py,sha256=aG8zbRCMuEHGIV9plLSOR0hGJcLQmdz7qO_9ctx0UMI,27565
314
+ warp/tests/test_codegen.py,sha256=JTfbfpQmTkF-8D9MGbQ0yHdcuEXxFpttlPJ4LICJPXA,27537
315
315
  warp/tests/test_codegen_instancing.py,sha256=2wHjnPLB0-Gfv5qT8GOAvT23-ubernvIQsgqBMhx1Dw,42014
316
316
  warp/tests/test_compile_consts.py,sha256=qLSqPi1xzBMbVazP2Aq0MarE2RcuxMNI6B2GBmEPRZo,7164
317
317
  warp/tests/test_conditional.py,sha256=Ol8oZuL_SWcRUrmIkvOTXBmjip-g986jA1sLMDSwWQk,6990
@@ -324,7 +324,7 @@ warp/tests/test_enum.py,sha256=FLkPmJxc_CvXs7iIZTdqb7adOKsRwmW3KoSqIFE_i70,4430
324
324
  warp/tests/test_examples.py,sha256=oKzCg9nvE5MTbxI8FYDc2s_vlYLwDQ3KFN_XKOloHB8,16591
325
325
  warp/tests/test_fabricarray.py,sha256=1BvryHaMvrMpPmEQxVtZDNMyQqgwmqb0PftD9gQKcBE,33573
326
326
  warp/tests/test_fast_math.py,sha256=KwYuZ3sHfYacyP6w6twYAE3H2uEdFix55Vi-0f26UVk,2484
327
- warp/tests/test_fem.py,sha256=3FkFt4wVi3zUlQTCER2s3MViA-oyLSQEHQr107NO9Tc,83731
327
+ warp/tests/test_fem.py,sha256=TddKy88Lu8xjS1-TlDTn2tQjlGhPwCJO9l7hzOrJw1Q,83945
328
328
  warp/tests/test_fixedarray.py,sha256=bBEPN_s00v4fR1c3Df9YdTuaWqUgIAc5PijrF8WODPg,6549
329
329
  warp/tests/test_fp16.py,sha256=rYGKTSnFJlcD_ECd1O4ELhgwAlntlBa1-UjL1C-UERs,4074
330
330
  warp/tests/test_func.py,sha256=y96_7mL_UkTmQDD7WVId1MosE5cuoOorO1Q901TUZls,14765
@@ -343,7 +343,7 @@ warp/tests/test_launch.py,sha256=Gk6EtbH8M5W3moN6_hntL-W63F3NVdc9CovBB8yWB94,116
343
343
  warp/tests/test_lerp.py,sha256=RkdbZsEvBQd6HQ3W4y2kHkFUDz54dwxWKb4mCzT_NlE,5448
344
344
  warp/tests/test_linear_solvers.py,sha256=-mumigO2Lf05UgK53kI2Ud9-piCaruR-0V2l9iO2ixs,7837
345
345
  warp/tests/test_lvalue.py,sha256=nAkqwMLyn5f8yA7yJ13bWjCQzfvXAdLPiqnUalxu2xI,10830
346
- warp/tests/test_map.py,sha256=8Pb6wuqGXGbH2m2nWu4oq9Pjypc12uvEZKN05nt4wMI,17294
346
+ warp/tests/test_map.py,sha256=egTs6mpq2ISg_GcaumBiP_BW3CfBPGzlnIjxXpgel60,17723
347
347
  warp/tests/test_mat.py,sha256=jDeG1ju5RsruLkuhKStalmTfo7u2IRVWffLENAr-Uos,115602
348
348
  warp/tests/test_mat_assign_copy.py,sha256=0NyESqS2fcCJe9EGzj5Ts8Rmd6H9ZviPk0-D6ACFWNQ,5060
349
349
  warp/tests/test_mat_constructors.py,sha256=2nUEe2JYrsOXMWZHYwRPvHbUiJfrrGGh1GVOG41VERg,18102
@@ -376,8 +376,8 @@ warp/tests/test_struct.py,sha256=iGXum-gMB1XHvGltVKPwK-1BnHEqoD0DV3LMllTC8J0,223
376
376
  warp/tests/test_tape.py,sha256=iOsGbnKFzCgv-hj71LCKRGdldp8cWwJ5ODNV7g3o_bw,7512
377
377
  warp/tests/test_transient_module.py,sha256=WfQairbLR6MYKW0m84kkMvS8_k8K1knw2413E1Q6STM,2462
378
378
  warp/tests/test_triangle_closest_point.py,sha256=8ik_eu-V1MwHK7OfXoeF2L1U6EFWkddJo5Vd1RWeiJU,4283
379
- warp/tests/test_tuple.py,sha256=mcRNSKsn-QHuEAnJMzd3lr9wEqdJsUmSpuuKGQYBHEM,6527
380
- warp/tests/test_types.py,sha256=UYc0fqPavpQCniIn-IqLho4l6bcvhj80ZD_52vF2zKE,21636
379
+ warp/tests/test_tuple.py,sha256=z4vJwweq5ivNULj7Ms5mrDmLbGbaNaF8dMRhW0KNqkg,10263
380
+ warp/tests/test_types.py,sha256=mRKcYjXuY1CoShu2IcVNeIk8bYRleZMiDQX5md5nmOw,24823
381
381
  warp/tests/test_utils.py,sha256=aao5fFwAZqB-KxzVShtwNjPJQfiUOHh1UlhPqEgzpik,22992
382
382
  warp/tests/test_vec.py,sha256=xELcC3awag_TLXdRrFjXTazLSGEUoj_GIrKX_t13eAs,47448
383
383
  warp/tests/test_vec_assign_copy.py,sha256=fmsaXVxiasMlso5wgGJ975pntOljPWgzBp9wdo9TMnw,3976
@@ -411,7 +411,7 @@ warp/tests/cuda/test_pinned.py,sha256=SZUFvUmoW9QpEpQ274O5vqss5A1YVzEZbW7nPufbJH
411
411
  warp/tests/cuda/test_streams.py,sha256=qPs2E2FJqmNfhbuaEk14fDSU82ufLloO0oQ2gewXAdo,22238
412
412
  warp/tests/geometry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
413
413
  warp/tests/geometry/test_bvh.py,sha256=pcHAlggUY77G_5cckqtimUEly5QgZljuEdr_BoEI54E,6379
414
- warp/tests/geometry/test_hash_grid.py,sha256=Q83zbq3hy4FdENo3I81ctj6f-MexB8KHolWsxyH_sG4,7199
414
+ warp/tests/geometry/test_hash_grid.py,sha256=2_oJf7TQNOP-_dNl_MNGXHw4cfltLKdlY0_zrcL1CrQ,8898
415
415
  warp/tests/geometry/test_marching_cubes.py,sha256=bgPl7Duvm61sE0JYsyAe-YAJ1qe3mDokDFqXcF3YISM,10563
416
416
  warp/tests/geometry/test_mesh.py,sha256=bjimRN1uRgQe5X8drjKc0i_HD6_9MrwZhNtsF-Ck5w4,9808
417
417
  warp/tests/geometry/test_mesh_query_aabb.py,sha256=pgBfHJQeyZsosQel7EQ7rCRpYUZpx3SaV3deirPuUhM,11348
@@ -421,7 +421,7 @@ warp/tests/geometry/test_volume.py,sha256=5HLQp3IRMHUuOzniqmjcL1MPT1RrAC3Q5phvmY
421
421
  warp/tests/geometry/test_volume_write.py,sha256=TnHdlKiJed_2UKPAc8Tseg2zHCznbv2dvHG151Pf7Oc,11781
422
422
  warp/tests/interop/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
423
423
  warp/tests/interop/test_dlpack.py,sha256=1uHXKGZhK4nVKlb_piMEBpJ9b85POkq0LIYRnoy8WIc,25064
424
- warp/tests/interop/test_jax.py,sha256=QCvK4EHKpWtqjSIRnnVYF9TcMo0CijEDjKAdR8hbok0,11582
424
+ warp/tests/interop/test_jax.py,sha256=ZxgQAVpwSFVKOfNUi0ZyJcYPHfZtkVoaJxWEJ1Bl-UE,28736
425
425
  warp/tests/interop/test_paddle.py,sha256=iV8V4Q2g4BHHk8q0OpcTcl2nxFBM_7IpI8nqIX1Snnw,29190
426
426
  warp/tests/interop/test_torch.py,sha256=MJzvS0ZxAqk4PAfNPHyPwSL9T1ul59m-Kzj3ZY61IuE,34873
427
427
  warp/tests/sim/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -435,7 +435,7 @@ warp/tests/sim/test_sim_grad.py,sha256=dou9dJ4i7RiecflcDFwvdB50sq1UO6uzuDK2qHYr-
435
435
  warp/tests/sim/test_sim_grad_bounce_linear.py,sha256=wcDF8xL0pcFCiLjCYdRqEWGdjWtXGIUeAWggSlI2FB0,8282
436
436
  warp/tests/sim/test_sim_kinematics.py,sha256=nzRZCOOYT-Cke1zhKandvSj7x8tZ8_PLxUIedb8m5lo,2840
437
437
  warp/tests/tile/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
438
- warp/tests/tile/test_tile.py,sha256=Z9fYvj3UE4nFcj31svOQraW1jqG6abFlsKb-hruRe8M,39332
438
+ warp/tests/tile/test_tile.py,sha256=5QvYUgFsIlX1VP98VeJuz8xGxlzbDPW9BlF4C4S83o8,41360
439
439
  warp/tests/tile/test_tile_cholesky.py,sha256=Ce2EYuTO1F7CV3XQVJ05lZA8_PpQBBMoWcC_MSb138Q,20647
440
440
  warp/tests/tile/test_tile_load.py,sha256=c87UmsrcYipGWGM8pqspA5mR43PQaff1V9F72GAeZ6o,22631
441
441
  warp/tests/tile/test_tile_mathdx.py,sha256=V9lbsQbg_oDbf1HsgcZGVwlmKP3BaFzij_rbi--QvJY,5067
@@ -449,8 +449,8 @@ warp/thirdparty/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
449
449
  warp/thirdparty/appdirs.py,sha256=2UXPK-AkDGoN5APeqAMMYkkfgf3Q_aUEZxcfkIxlQn0,24254
450
450
  warp/thirdparty/dlpack.py,sha256=HYvNWIemrvxLDgQLRseerP8gqM87Ie7SVIX7p5xSM0o,4323
451
451
  warp/thirdparty/unittest_parallel.py,sha256=1-3sDX1-v22P0ZKUjnVuSqvPmuXAaQvpx4J6M3JCI4A,26431
452
- warp_lang-1.9.0.dist-info/licenses/LICENSE.md,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
453
- warp_lang-1.9.0.dist-info/METADATA,sha256=qjAgD24hrqrGJY7vjp2BygRwY0B5jRLYQ7B5CsBnEC8,32981
454
- warp_lang-1.9.0.dist-info/WHEEL,sha256=5IC-Oq3dKIkpMXAb95kQXiS4qmlGCFaxVfBh-FYKyoo,112
455
- warp_lang-1.9.0.dist-info/top_level.txt,sha256=8pupHORyKoiN_BYWlTmv5OFBWdhqpppiBYQV5KxgEvg,5
456
- warp_lang-1.9.0.dist-info/RECORD,,
452
+ warp_lang-1.9.1.dist-info/licenses/LICENSE.md,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
453
+ warp_lang-1.9.1.dist-info/METADATA,sha256=vIM6Ux41HTzb6fyEzDdUUBR9sKSSWUFKpkjhOZdruFk,32678
454
+ warp_lang-1.9.1.dist-info/WHEEL,sha256=5IC-Oq3dKIkpMXAb95kQXiS4qmlGCFaxVfBh-FYKyoo,112
455
+ warp_lang-1.9.1.dist-info/top_level.txt,sha256=8pupHORyKoiN_BYWlTmv5OFBWdhqpppiBYQV5KxgEvg,5
456
+ warp_lang-1.9.1.dist-info/RECORD,,