warp-lang 1.2.2__py3-none-manylinux2014_aarch64.whl → 1.3.0__py3-none-manylinux2014_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.

Files changed (193) hide show
  1. warp/__init__.py +8 -6
  2. warp/autograd.py +823 -0
  3. warp/bin/warp.so +0 -0
  4. warp/build.py +6 -2
  5. warp/builtins.py +1410 -886
  6. warp/codegen.py +503 -166
  7. warp/config.py +48 -18
  8. warp/context.py +400 -198
  9. warp/dlpack.py +8 -0
  10. warp/examples/assets/bunny.usd +0 -0
  11. warp/examples/benchmarks/benchmark_cloth_warp.py +1 -1
  12. warp/examples/benchmarks/benchmark_interop_torch.py +158 -0
  13. warp/examples/benchmarks/benchmark_launches.py +1 -1
  14. warp/examples/core/example_cupy.py +78 -0
  15. warp/examples/fem/example_apic_fluid.py +17 -36
  16. warp/examples/fem/example_burgers.py +9 -18
  17. warp/examples/fem/example_convection_diffusion.py +7 -17
  18. warp/examples/fem/example_convection_diffusion_dg.py +27 -47
  19. warp/examples/fem/example_deformed_geometry.py +11 -22
  20. warp/examples/fem/example_diffusion.py +7 -18
  21. warp/examples/fem/example_diffusion_3d.py +24 -28
  22. warp/examples/fem/example_diffusion_mgpu.py +7 -14
  23. warp/examples/fem/example_magnetostatics.py +190 -0
  24. warp/examples/fem/example_mixed_elasticity.py +111 -80
  25. warp/examples/fem/example_navier_stokes.py +30 -34
  26. warp/examples/fem/example_nonconforming_contact.py +290 -0
  27. warp/examples/fem/example_stokes.py +17 -32
  28. warp/examples/fem/example_stokes_transfer.py +12 -21
  29. warp/examples/fem/example_streamlines.py +350 -0
  30. warp/examples/fem/utils.py +936 -0
  31. warp/fabric.py +5 -2
  32. warp/fem/__init__.py +13 -3
  33. warp/fem/cache.py +161 -11
  34. warp/fem/dirichlet.py +37 -28
  35. warp/fem/domain.py +105 -14
  36. warp/fem/field/__init__.py +14 -3
  37. warp/fem/field/field.py +454 -11
  38. warp/fem/field/nodal_field.py +33 -18
  39. warp/fem/geometry/deformed_geometry.py +50 -15
  40. warp/fem/geometry/hexmesh.py +12 -24
  41. warp/fem/geometry/nanogrid.py +106 -31
  42. warp/fem/geometry/quadmesh_2d.py +6 -11
  43. warp/fem/geometry/tetmesh.py +103 -61
  44. warp/fem/geometry/trimesh_2d.py +98 -47
  45. warp/fem/integrate.py +231 -186
  46. warp/fem/operator.py +14 -9
  47. warp/fem/quadrature/pic_quadrature.py +35 -9
  48. warp/fem/quadrature/quadrature.py +119 -32
  49. warp/fem/space/basis_space.py +98 -22
  50. warp/fem/space/collocated_function_space.py +3 -1
  51. warp/fem/space/function_space.py +7 -2
  52. warp/fem/space/grid_2d_function_space.py +3 -3
  53. warp/fem/space/grid_3d_function_space.py +4 -4
  54. warp/fem/space/hexmesh_function_space.py +3 -2
  55. warp/fem/space/nanogrid_function_space.py +12 -14
  56. warp/fem/space/partition.py +45 -47
  57. warp/fem/space/restriction.py +19 -16
  58. warp/fem/space/shape/cube_shape_function.py +91 -3
  59. warp/fem/space/shape/shape_function.py +7 -0
  60. warp/fem/space/shape/square_shape_function.py +32 -0
  61. warp/fem/space/shape/tet_shape_function.py +11 -7
  62. warp/fem/space/shape/triangle_shape_function.py +10 -1
  63. warp/fem/space/topology.py +116 -42
  64. warp/fem/types.py +8 -1
  65. warp/fem/utils.py +301 -83
  66. warp/native/array.h +16 -0
  67. warp/native/builtin.h +0 -15
  68. warp/native/cuda_util.cpp +14 -6
  69. warp/native/exports.h +1348 -1308
  70. warp/native/quat.h +79 -0
  71. warp/native/rand.h +27 -4
  72. warp/native/sparse.cpp +83 -81
  73. warp/native/sparse.cu +381 -453
  74. warp/native/vec.h +64 -0
  75. warp/native/volume.cpp +40 -49
  76. warp/native/volume_builder.cu +2 -3
  77. warp/native/volume_builder.h +12 -17
  78. warp/native/warp.cu +3 -3
  79. warp/native/warp.h +69 -59
  80. warp/render/render_opengl.py +17 -9
  81. warp/sim/articulation.py +117 -17
  82. warp/sim/collide.py +35 -29
  83. warp/sim/model.py +123 -18
  84. warp/sim/render.py +3 -1
  85. warp/sparse.py +867 -203
  86. warp/stubs.py +312 -541
  87. warp/tape.py +29 -1
  88. warp/tests/disabled_kinematics.py +1 -1
  89. warp/tests/test_adam.py +1 -1
  90. warp/tests/test_arithmetic.py +1 -1
  91. warp/tests/test_array.py +58 -1
  92. warp/tests/test_array_reduce.py +1 -1
  93. warp/tests/test_async.py +1 -1
  94. warp/tests/test_atomic.py +1 -1
  95. warp/tests/test_bool.py +1 -1
  96. warp/tests/test_builtins_resolution.py +1 -1
  97. warp/tests/test_bvh.py +6 -1
  98. warp/tests/test_closest_point_edge_edge.py +1 -1
  99. warp/tests/test_codegen.py +66 -1
  100. warp/tests/test_compile_consts.py +1 -1
  101. warp/tests/test_conditional.py +1 -1
  102. warp/tests/test_copy.py +1 -1
  103. warp/tests/test_ctypes.py +1 -1
  104. warp/tests/test_dense.py +1 -1
  105. warp/tests/test_devices.py +1 -1
  106. warp/tests/test_dlpack.py +1 -1
  107. warp/tests/test_examples.py +33 -4
  108. warp/tests/test_fabricarray.py +5 -2
  109. warp/tests/test_fast_math.py +1 -1
  110. warp/tests/test_fem.py +213 -6
  111. warp/tests/test_fp16.py +1 -1
  112. warp/tests/test_func.py +1 -1
  113. warp/tests/test_future_annotations.py +90 -0
  114. warp/tests/test_generics.py +1 -1
  115. warp/tests/test_grad.py +1 -1
  116. warp/tests/test_grad_customs.py +1 -1
  117. warp/tests/test_grad_debug.py +247 -0
  118. warp/tests/test_hash_grid.py +6 -1
  119. warp/tests/test_implicit_init.py +354 -0
  120. warp/tests/test_import.py +1 -1
  121. warp/tests/test_indexedarray.py +1 -1
  122. warp/tests/test_intersect.py +1 -1
  123. warp/tests/test_jax.py +1 -1
  124. warp/tests/test_large.py +1 -1
  125. warp/tests/test_launch.py +1 -1
  126. warp/tests/test_lerp.py +1 -1
  127. warp/tests/test_linear_solvers.py +1 -1
  128. warp/tests/test_lvalue.py +1 -1
  129. warp/tests/test_marching_cubes.py +5 -2
  130. warp/tests/test_mat.py +34 -35
  131. warp/tests/test_mat_lite.py +2 -1
  132. warp/tests/test_mat_scalar_ops.py +1 -1
  133. warp/tests/test_math.py +1 -1
  134. warp/tests/test_matmul.py +20 -16
  135. warp/tests/test_matmul_lite.py +1 -1
  136. warp/tests/test_mempool.py +1 -1
  137. warp/tests/test_mesh.py +5 -2
  138. warp/tests/test_mesh_query_aabb.py +1 -1
  139. warp/tests/test_mesh_query_point.py +1 -1
  140. warp/tests/test_mesh_query_ray.py +1 -1
  141. warp/tests/test_mlp.py +1 -1
  142. warp/tests/test_model.py +1 -1
  143. warp/tests/test_module_hashing.py +77 -1
  144. warp/tests/test_modules_lite.py +1 -1
  145. warp/tests/test_multigpu.py +1 -1
  146. warp/tests/test_noise.py +1 -1
  147. warp/tests/test_operators.py +1 -1
  148. warp/tests/test_options.py +1 -1
  149. warp/tests/test_overwrite.py +542 -0
  150. warp/tests/test_peer.py +1 -1
  151. warp/tests/test_pinned.py +1 -1
  152. warp/tests/test_print.py +1 -1
  153. warp/tests/test_quat.py +15 -1
  154. warp/tests/test_rand.py +1 -1
  155. warp/tests/test_reload.py +1 -1
  156. warp/tests/test_rounding.py +1 -1
  157. warp/tests/test_runlength_encode.py +1 -1
  158. warp/tests/test_scalar_ops.py +95 -0
  159. warp/tests/test_sim_grad.py +1 -1
  160. warp/tests/test_sim_kinematics.py +1 -1
  161. warp/tests/test_smoothstep.py +1 -1
  162. warp/tests/test_sparse.py +82 -15
  163. warp/tests/test_spatial.py +1 -1
  164. warp/tests/test_special_values.py +2 -11
  165. warp/tests/test_streams.py +11 -1
  166. warp/tests/test_struct.py +1 -1
  167. warp/tests/test_tape.py +1 -1
  168. warp/tests/test_torch.py +194 -1
  169. warp/tests/test_transient_module.py +1 -1
  170. warp/tests/test_types.py +1 -1
  171. warp/tests/test_utils.py +1 -1
  172. warp/tests/test_vec.py +15 -63
  173. warp/tests/test_vec_lite.py +2 -1
  174. warp/tests/test_vec_scalar_ops.py +65 -1
  175. warp/tests/test_verify_fp.py +1 -1
  176. warp/tests/test_volume.py +28 -2
  177. warp/tests/test_volume_write.py +1 -1
  178. warp/tests/unittest_serial.py +1 -1
  179. warp/tests/unittest_suites.py +9 -1
  180. warp/tests/walkthrough_debug.py +1 -1
  181. warp/thirdparty/unittest_parallel.py +2 -5
  182. warp/torch.py +103 -41
  183. warp/types.py +341 -224
  184. warp/utils.py +11 -2
  185. {warp_lang-1.2.2.dist-info → warp_lang-1.3.0.dist-info}/METADATA +99 -46
  186. warp_lang-1.3.0.dist-info/RECORD +368 -0
  187. warp/examples/fem/bsr_utils.py +0 -378
  188. warp/examples/fem/mesh_utils.py +0 -133
  189. warp/examples/fem/plot_utils.py +0 -292
  190. warp_lang-1.2.2.dist-info/RECORD +0 -359
  191. {warp_lang-1.2.2.dist-info → warp_lang-1.3.0.dist-info}/LICENSE.md +0 -0
  192. {warp_lang-1.2.2.dist-info → warp_lang-1.3.0.dist-info}/WHEEL +0 -0
  193. {warp_lang-1.2.2.dist-info → warp_lang-1.3.0.dist-info}/top_level.txt +0 -0
warp/stubs.py CHANGED
@@ -23,7 +23,7 @@ FabricArray = Generic[DType]
23
23
  IndexedFabricArray = Generic[DType]
24
24
 
25
25
 
26
- from warp.types import array, array1d, array2d, array3d, array4d, constant
26
+ from warp.types import array, array1d, array2d, array3d, array4d, constant, from_ptr
27
27
  from warp.types import indexedarray, indexedarray1d, indexedarray2d, indexedarray3d, indexedarray4d
28
28
  from warp.fabric import fabricarray, fabricarrayarray, indexedfabricarray, indexedfabricarrayarray
29
29
 
@@ -40,9 +40,9 @@ from warp.types import spatial_vector, spatial_vectorh, spatial_vectorf, spatial
40
40
  from warp.types import spatial_matrix, spatial_matrixh, spatial_matrixf, spatial_matrixd
41
41
 
42
42
  from warp.types import Bvh, Mesh, HashGrid, Volume, MarchingCubes
43
- from warp.types import bvh_query_t, hash_grid_query_t, mesh_query_aabb_t, mesh_query_point_t, mesh_query_ray_t
43
+ from warp.types import BvhQuery, HashGridQuery, MeshQueryAABB, MeshQueryPoint, MeshQueryRay
44
44
 
45
- from warp.types import matmul, adj_matmul, batched_matmul, adj_batched_matmul, from_ptr
45
+ from warp.types import matmul, adj_matmul, batched_matmul, adj_batched_matmul
46
46
 
47
47
  from warp.types import vector as vec
48
48
  from warp.types import matrix as mat
@@ -108,54 +108,56 @@ from warp.jax import device_from_jax, device_to_jax
108
108
 
109
109
  from warp.dlpack import from_dlpack, to_dlpack
110
110
 
111
+ from warp.build import clear_kernel_cache
112
+
111
113
  from warp.constants import *
112
114
 
113
115
  from . import builtins
114
116
 
115
- import warp.config
117
+ import warp.config as config
116
118
 
117
- __version__ = warp.config.version
119
+ __version__ = config.version
118
120
 
119
121
 
120
122
  @over
121
- def min(x: Scalar, y: Scalar) -> Scalar:
123
+ def min(a: Scalar, b: Scalar) -> Scalar:
122
124
  """Return the minimum of two scalars."""
123
125
  ...
124
126
 
125
127
 
126
128
  @over
127
- def min(x: Vector[Any, Scalar], y: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
129
+ def min(a: Vector[Any, Scalar], b: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
128
130
  """Return the element-wise minimum of two vectors."""
129
131
  ...
130
132
 
131
133
 
132
134
  @over
133
- def min(v: Vector[Any, Scalar]) -> Scalar:
134
- """Return the minimum element of a vector ``v``."""
135
+ def min(a: Vector[Any, Scalar]) -> Scalar:
136
+ """Return the minimum element of a vector ``a``."""
135
137
  ...
136
138
 
137
139
 
138
140
  @over
139
- def max(x: Scalar, y: Scalar) -> Scalar:
141
+ def max(a: Scalar, b: Scalar) -> Scalar:
140
142
  """Return the maximum of two scalars."""
141
143
  ...
142
144
 
143
145
 
144
146
  @over
145
- def max(x: Vector[Any, Scalar], y: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
147
+ def max(a: Vector[Any, Scalar], b: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
146
148
  """Return the element-wise maximum of two vectors."""
147
149
  ...
148
150
 
149
151
 
150
152
  @over
151
- def max(v: Vector[Any, Scalar]) -> Scalar:
152
- """Return the maximum element of a vector ``v``."""
153
+ def max(a: Vector[Any, Scalar]) -> Scalar:
154
+ """Return the maximum element of a vector ``a``."""
153
155
  ...
154
156
 
155
157
 
156
158
  @over
157
- def clamp(x: Scalar, a: Scalar, b: Scalar) -> Scalar:
158
- """Clamp the value of ``x`` to the range [a, b]."""
159
+ def clamp(x: Scalar, low: Scalar, high: Scalar) -> Scalar:
160
+ """Clamp the value of ``x`` to the range [low, high]."""
159
161
  ...
160
162
 
161
163
 
@@ -165,12 +167,24 @@ def abs(x: Scalar) -> Scalar:
165
167
  ...
166
168
 
167
169
 
170
+ @over
171
+ def abs(x: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
172
+ """Return the absolute values of the elements of ``x``."""
173
+ ...
174
+
175
+
168
176
  @over
169
177
  def sign(x: Scalar) -> Scalar:
170
178
  """Return -1 if ``x`` < 0, return 1 otherwise."""
171
179
  ...
172
180
 
173
181
 
182
+ @over
183
+ def sign(x: Vector[Any, Scalar]) -> Scalar:
184
+ """Return -1 for the negative elements of ``x``, and 1 otherwise."""
185
+ ...
186
+
187
+
174
188
  @over
175
189
  def step(x: Scalar) -> Scalar:
176
190
  """Return 1.0 if ``x`` < 0.0, return 0.0 otherwise."""
@@ -321,7 +335,7 @@ def trunc(x: Float) -> Float:
321
335
  """Return the nearest integer that is closer to zero than ``x``.
322
336
 
323
337
  In other words, it discards the fractional part of ``x``.
324
- It is similar to casting ``float(int(x))``, but preserves the negative sign when x is in the range [-0.0, -1.0).
338
+ It is similar to casting ``float(int(a))``, but preserves the negative sign when ``x`` is in the range [-0.0, -1.0).
325
339
  Equivalent to :func:`numpy.trunc()` and :func:`numpy.fix()`.
326
340
  """
327
341
  ...
@@ -341,349 +355,349 @@ def ceil(x: Float) -> Float:
341
355
 
342
356
  @over
343
357
  def frac(x: Float) -> Float:
344
- """Retrieve the fractional part of x.
358
+ """Retrieve the fractional part of ``x``.
345
359
 
346
- In other words, it discards the integer part of x and is equivalent to ``x - trunc(x)``.
360
+ In other words, it discards the integer part of ``x`` and is equivalent to ``x - trunc(x)``.
347
361
  """
348
362
  ...
349
363
 
350
364
 
351
365
  @over
352
- def isfinite(x: Scalar) -> bool:
353
- """Return ``True`` if x is a finite number, otherwise return ``False``."""
366
+ def isfinite(a: Scalar) -> bool:
367
+ """Return ``True`` if ``a`` is a finite number, otherwise return ``False``."""
354
368
  ...
355
369
 
356
370
 
357
371
  @over
358
- def isfinite(x: Vector[Any, Scalar]) -> bool:
359
- """Return ``True`` if all elements of the vector ``x`` are finite, otherwise return ``False``."""
372
+ def isfinite(a: Vector[Any, Scalar]) -> bool:
373
+ """Return ``True`` if all elements of the vector ``a`` are finite, otherwise return ``False``."""
360
374
  ...
361
375
 
362
376
 
363
377
  @over
364
- def isfinite(x: Quaternion[Scalar]) -> bool:
365
- """Return ``True`` if all elements of the quaternion ``x`` are finite, otherwise return ``False``."""
378
+ def isfinite(a: Quaternion[Scalar]) -> bool:
379
+ """Return ``True`` if all elements of the quaternion ``a`` are finite, otherwise return ``False``."""
366
380
  ...
367
381
 
368
382
 
369
383
  @over
370
- def isfinite(m: Matrix[Any, Any, Scalar]) -> bool:
371
- """Return ``True`` if all elements of the matrix ``m`` are finite, otherwise return ``False``."""
384
+ def isfinite(a: Matrix[Any, Any, Scalar]) -> bool:
385
+ """Return ``True`` if all elements of the matrix ``a`` are finite, otherwise return ``False``."""
372
386
  ...
373
387
 
374
388
 
375
389
  @over
376
- def isnan(x: Scalar) -> bool:
377
- """Return ``True`` if ``x`` is NaN, otherwise return ``False``."""
390
+ def isnan(a: Scalar) -> bool:
391
+ """Return ``True`` if ``a`` is NaN, otherwise return ``False``."""
378
392
  ...
379
393
 
380
394
 
381
395
  @over
382
- def isnan(x: Vector[Any, Scalar]) -> bool:
383
- """Return ``True`` if any element of the vector ``x`` is NaN, otherwise return ``False``."""
396
+ def isnan(a: Vector[Any, Scalar]) -> bool:
397
+ """Return ``True`` if any element of the vector ``a`` is NaN, otherwise return ``False``."""
384
398
  ...
385
399
 
386
400
 
387
401
  @over
388
- def isnan(x: Quaternion[Scalar]) -> bool:
389
- """Return ``True`` if any element of the quaternion ``x`` is NaN, otherwise return ``False``."""
402
+ def isnan(a: Quaternion[Scalar]) -> bool:
403
+ """Return ``True`` if any element of the quaternion ``a`` is NaN, otherwise return ``False``."""
390
404
  ...
391
405
 
392
406
 
393
407
  @over
394
- def isnan(m: Matrix[Any, Any, Scalar]) -> bool:
395
- """Return ``True`` if any element of the matrix ``m`` is NaN, otherwise return ``False``."""
408
+ def isnan(a: Matrix[Any, Any, Scalar]) -> bool:
409
+ """Return ``True`` if any element of the matrix ``a`` is NaN, otherwise return ``False``."""
396
410
  ...
397
411
 
398
412
 
399
413
  @over
400
- def isinf(x: Scalar) -> bool:
401
- """Return ``True`` if x is positive or negative infinity, otherwise return ``False``."""
414
+ def isinf(a: Scalar) -> bool:
415
+ """Return ``True`` if ``a`` is positive or negative infinity, otherwise return ``False``."""
402
416
  ...
403
417
 
404
418
 
405
419
  @over
406
- def isinf(x: Vector[Any, Scalar]) -> bool:
407
- """Return ``True`` if any element of the vector ``x`` is positive or negative infinity, otherwise return ``False``."""
420
+ def isinf(a: Vector[Any, Scalar]) -> bool:
421
+ """Return ``True`` if any element of the vector ``a`` is positive or negative infinity, otherwise return ``False``."""
408
422
  ...
409
423
 
410
424
 
411
425
  @over
412
- def isinf(x: Quaternion[Scalar]) -> bool:
413
- """Return ``True`` if any element of the quaternion ``x`` is positive or negative infinity, otherwise return ``False``."""
426
+ def isinf(a: Quaternion[Scalar]) -> bool:
427
+ """Return ``True`` if any element of the quaternion ``a`` is positive or negative infinity, otherwise return ``False``."""
414
428
  ...
415
429
 
416
430
 
417
431
  @over
418
- def isinf(m: Matrix[Any, Any, Scalar]) -> bool:
419
- """Return ``True`` if any element of the matrix ``m`` is positive or negative infinity, otherwise return ``False``."""
432
+ def isinf(a: Matrix[Any, Any, Scalar]) -> bool:
433
+ """Return ``True`` if any element of the matrix ``a`` is positive or negative infinity, otherwise return ``False``."""
420
434
  ...
421
435
 
422
436
 
423
437
  @over
424
- def dot(x: Vector[Any, Scalar], y: Vector[Any, Scalar]) -> Scalar:
438
+ def dot(a: Vector[Any, Scalar], b: Vector[Any, Scalar]) -> Scalar:
425
439
  """Compute the dot product between two vectors."""
426
440
  ...
427
441
 
428
442
 
429
443
  @over
430
- def dot(x: Quaternion[Float], y: Quaternion[Float]) -> Scalar:
444
+ def dot(a: Quaternion[Float], b: Quaternion[Float]) -> Float:
431
445
  """Compute the dot product between two quaternions."""
432
446
  ...
433
447
 
434
448
 
435
449
  @over
436
- def ddot(x: Matrix[Any, Any, Scalar], y: Matrix[Any, Any, Scalar]) -> Scalar:
450
+ def ddot(a: Matrix[Any, Any, Scalar], b: Matrix[Any, Any, Scalar]) -> Scalar:
437
451
  """Compute the double dot product between two matrices."""
438
452
  ...
439
453
 
440
454
 
441
455
  @over
442
- def argmin(v: Vector[Any, Scalar]) -> uint32:
443
- """Return the index of the minimum element of a vector ``v``."""
456
+ def argmin(a: Vector[Any, Scalar]) -> uint32:
457
+ """Return the index of the minimum element of a vector ``a``."""
444
458
  ...
445
459
 
446
460
 
447
461
  @over
448
- def argmax(v: Vector[Any, Scalar]) -> uint32:
449
- """Return the index of the maximum element of a vector ``v``."""
462
+ def argmax(a: Vector[Any, Scalar]) -> uint32:
463
+ """Return the index of the maximum element of a vector ``a``."""
450
464
  ...
451
465
 
452
466
 
453
467
  @over
454
- def outer(x: Vector[Any, Scalar], y: Vector[Any, Scalar]) -> Matrix[Any, Any, Scalar]:
455
- """Compute the outer product ``x*y^T`` for two vectors."""
468
+ def outer(a: Vector[Any, Scalar], b: Vector[Any, Scalar]) -> Matrix[Any, Any, Scalar]:
469
+ """Compute the outer product ``a*b^T`` for two vectors."""
456
470
  ...
457
471
 
458
472
 
459
473
  @over
460
- def cross(x: Vector[3, Scalar], y: Vector[3, Scalar]) -> Vector[3, Scalar]:
474
+ def cross(a: Vector[3, Scalar], b: Vector[3, Scalar]) -> Vector[3, Scalar]:
461
475
  """Compute the cross product of two 3D vectors."""
462
476
  ...
463
477
 
464
478
 
465
479
  @over
466
- def skew(x: Vector[3, Scalar]):
467
- """Compute the skew-symmetric 3x3 matrix for a 3D vector ``x``."""
480
+ def skew(vec: Vector[3, Scalar]):
481
+ """Compute the skew-symmetric 3x3 matrix for a 3D vector ``vec``."""
468
482
  ...
469
483
 
470
484
 
471
485
  @over
472
- def length(x: Vector[Any, Float]) -> Scalar:
473
- """Compute the length of a floating-point vector ``x``."""
486
+ def length(a: Vector[Any, Float]) -> Float:
487
+ """Compute the length of a floating-point vector ``a``."""
474
488
  ...
475
489
 
476
490
 
477
491
  @over
478
- def length(x: Quaternion[Float]) -> Scalar:
479
- """Compute the length of a quaternion ``x``."""
492
+ def length(a: Quaternion[Float]) -> Float:
493
+ """Compute the length of a quaternion ``a``."""
480
494
  ...
481
495
 
482
496
 
483
497
  @over
484
- def length_sq(x: Vector[Any, Scalar]) -> Scalar:
485
- """Compute the squared length of a vector ``x``."""
498
+ def length_sq(a: Vector[Any, Scalar]) -> Scalar:
499
+ """Compute the squared length of a vector ``a``."""
486
500
  ...
487
501
 
488
502
 
489
503
  @over
490
- def length_sq(x: Quaternion[Scalar]) -> Scalar:
491
- """Compute the squared length of a quaternion ``x``."""
504
+ def length_sq(a: Quaternion[Scalar]) -> Scalar:
505
+ """Compute the squared length of a quaternion ``a``."""
492
506
  ...
493
507
 
494
508
 
495
509
  @over
496
- def normalize(x: Vector[Any, Float]) -> Vector[Any, Scalar]:
497
- """Compute the normalized value of ``x``. If ``length(x)`` is 0 then the zero vector is returned."""
510
+ def normalize(a: Vector[Any, Float]) -> Vector[Any, Float]:
511
+ """Compute the normalized value of ``a``. If ``length(a)`` is 0 then the zero vector is returned."""
498
512
  ...
499
513
 
500
514
 
501
515
  @over
502
- def normalize(x: Quaternion[Float]) -> Quaternion[Scalar]:
503
- """Compute the normalized value of ``x``. If ``length(x)`` is 0, then the zero quaternion is returned."""
516
+ def normalize(a: Quaternion[Float]) -> Quaternion[Float]:
517
+ """Compute the normalized value of ``a``. If ``length(a)`` is 0, then the zero quaternion is returned."""
504
518
  ...
505
519
 
506
520
 
507
521
  @over
508
- def transpose(m: Matrix[Any, Any, Scalar]):
509
- """Return the transpose of the matrix ``m``."""
522
+ def transpose(a: Matrix[Any, Any, Scalar]):
523
+ """Return the transpose of the matrix ``a``."""
510
524
  ...
511
525
 
512
526
 
513
527
  @over
514
- def inverse(m: Matrix[2, 2, Float]) -> Matrix[Any, Any, Float]:
515
- """Return the inverse of a 2x2 matrix ``m``."""
528
+ def inverse(a: Matrix[2, 2, Float]) -> Matrix[Any, Any, Float]:
529
+ """Return the inverse of a 2x2 matrix ``a``."""
516
530
  ...
517
531
 
518
532
 
519
533
  @over
520
- def inverse(m: Matrix[3, 3, Float]) -> Matrix[Any, Any, Float]:
521
- """Return the inverse of a 3x3 matrix ``m``."""
534
+ def inverse(a: Matrix[3, 3, Float]) -> Matrix[Any, Any, Float]:
535
+ """Return the inverse of a 3x3 matrix ``a``."""
522
536
  ...
523
537
 
524
538
 
525
539
  @over
526
- def inverse(m: Matrix[4, 4, Float]) -> Matrix[Any, Any, Float]:
527
- """Return the inverse of a 4x4 matrix ``m``."""
540
+ def inverse(a: Matrix[4, 4, Float]) -> Matrix[Any, Any, Float]:
541
+ """Return the inverse of a 4x4 matrix ``a``."""
528
542
  ...
529
543
 
530
544
 
531
545
  @over
532
- def determinant(m: Matrix[2, 2, Float]) -> Scalar:
533
- """Return the determinant of a 2x2 matrix ``m``."""
546
+ def determinant(a: Matrix[2, 2, Float]) -> Float:
547
+ """Return the determinant of a 2x2 matrix ``a``."""
534
548
  ...
535
549
 
536
550
 
537
551
  @over
538
- def determinant(m: Matrix[3, 3, Float]) -> Scalar:
539
- """Return the determinant of a 3x3 matrix ``m``."""
552
+ def determinant(a: Matrix[3, 3, Float]) -> Float:
553
+ """Return the determinant of a 3x3 matrix ``a``."""
540
554
  ...
541
555
 
542
556
 
543
557
  @over
544
- def determinant(m: Matrix[4, 4, Float]) -> Scalar:
545
- """Return the determinant of a 4x4 matrix ``m``."""
558
+ def determinant(a: Matrix[4, 4, Float]) -> Float:
559
+ """Return the determinant of a 4x4 matrix ``a``."""
546
560
  ...
547
561
 
548
562
 
549
563
  @over
550
- def trace(m: Matrix[Any, Any, Scalar]) -> Scalar:
551
- """Return the trace of the matrix ``m``."""
564
+ def trace(a: Matrix[Any, Any, Scalar]) -> Scalar:
565
+ """Return the trace of the matrix ``a``."""
552
566
  ...
553
567
 
554
568
 
555
569
  @over
556
- def diag(d: Vector[Any, Scalar]) -> Matrix[Any, Any, Scalar]:
557
- """Returns a matrix with the components of the vector ``d`` on the diagonal."""
570
+ def diag(vec: Vector[Any, Scalar]) -> Matrix[Any, Any, Scalar]:
571
+ """Returns a matrix with the components of the vector ``vec`` on the diagonal."""
558
572
  ...
559
573
 
560
574
 
561
575
  @over
562
- def get_diag(m: Matrix[Any, Any, Scalar]) -> Vector[Any, Scalar]:
563
- """Returns a vector containing the diagonal elements of the square matrix ``m``."""
576
+ def get_diag(mat: Matrix[Any, Any, Scalar]) -> Vector[Any, Scalar]:
577
+ """Returns a vector containing the diagonal elements of the square matrix ``mat``."""
564
578
  ...
565
579
 
566
580
 
567
581
  @over
568
- def cw_mul(x: Vector[Any, Scalar], y: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
582
+ def cw_mul(a: Vector[Any, Scalar], b: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
569
583
  """Component-wise multiplication of two vectors."""
570
584
  ...
571
585
 
572
586
 
573
587
  @over
574
- def cw_mul(x: Matrix[Any, Any, Scalar], y: Matrix[Any, Any, Scalar]) -> Matrix[Any, Any, Scalar]:
588
+ def cw_mul(a: Matrix[Any, Any, Scalar], b: Matrix[Any, Any, Scalar]) -> Matrix[Any, Any, Scalar]:
575
589
  """Component-wise multiplication of two matrices."""
576
590
  ...
577
591
 
578
592
 
579
593
  @over
580
- def cw_div(x: Vector[Any, Scalar], y: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
594
+ def cw_div(a: Vector[Any, Scalar], b: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
581
595
  """Component-wise division of two vectors."""
582
596
  ...
583
597
 
584
598
 
585
599
  @over
586
- def cw_div(x: Matrix[Any, Any, Scalar], y: Matrix[Any, Any, Scalar]) -> Matrix[Any, Any, Scalar]:
600
+ def cw_div(a: Matrix[Any, Any, Scalar], b: Matrix[Any, Any, Scalar]) -> Matrix[Any, Any, Scalar]:
587
601
  """Component-wise division of two matrices."""
588
602
  ...
589
603
 
590
604
 
591
605
  @over
592
- def quat_identity() -> quatf:
606
+ def quat_identity(dtype: Float) -> quatf:
593
607
  """Construct an identity quaternion with zero imaginary part and real part of 1.0"""
594
608
  ...
595
609
 
596
610
 
597
611
  @over
598
- def quat_from_axis_angle(axis: Vector[3, Float], angle: Float) -> Quaternion[Scalar]:
612
+ def quat_from_axis_angle(axis: Vector[3, Float], angle: Float) -> Quaternion[Float]:
599
613
  """Construct a quaternion representing a rotation of angle radians around the given axis."""
600
614
  ...
601
615
 
602
616
 
603
617
  @over
604
- def quat_to_axis_angle(q: Quaternion[Float], axis: Vector[3, Float], angle: Float):
618
+ def quat_to_axis_angle(quat: Quaternion[Float], axis: Vector[3, Float], angle: Float):
605
619
  """Extract the rotation axis and angle radians a quaternion represents."""
606
620
  ...
607
621
 
608
622
 
609
623
  @over
610
- def quat_from_matrix(m: Matrix[3, 3, Float]) -> Quaternion[Scalar]:
624
+ def quat_from_matrix(mat: Matrix[3, 3, Float]) -> Quaternion[Float]:
611
625
  """Construct a quaternion from a 3x3 matrix."""
612
626
  ...
613
627
 
614
628
 
615
629
  @over
616
- def quat_rpy(roll: Float, pitch: Float, yaw: Float) -> Quaternion[Scalar]:
630
+ def quat_rpy(roll: Float, pitch: Float, yaw: Float) -> Quaternion[Float]:
617
631
  """Construct a quaternion representing a combined roll (z), pitch (x), yaw rotations (y) in radians."""
618
632
  ...
619
633
 
620
634
 
621
635
  @over
622
- def quat_inverse(q: Quaternion[Float]) -> Quaternion[Scalar]:
636
+ def quat_inverse(quat: Quaternion[Float]) -> Quaternion[Float]:
623
637
  """Compute quaternion conjugate."""
624
638
  ...
625
639
 
626
640
 
627
641
  @over
628
- def quat_rotate(q: Quaternion[Float], p: Vector[3, Float]) -> Vector[3, Scalar]:
642
+ def quat_rotate(quat: Quaternion[Float], vec: Vector[3, Float]) -> Vector[3, Float]:
629
643
  """Rotate a vector by a quaternion."""
630
644
  ...
631
645
 
632
646
 
633
647
  @over
634
- def quat_rotate_inv(q: Quaternion[Float], p: Vector[3, Float]) -> Vector[3, Scalar]:
648
+ def quat_rotate_inv(quat: Quaternion[Float], vec: Vector[3, Float]) -> Vector[3, Float]:
635
649
  """Rotate a vector by the inverse of a quaternion."""
636
650
  ...
637
651
 
638
652
 
639
653
  @over
640
- def quat_slerp(q0: Quaternion[Float], q1: Quaternion[Float], t: Float) -> Quaternion[Scalar]:
654
+ def quat_slerp(a: Quaternion[Float], b: Quaternion[Float], t: Float) -> Quaternion[Float]:
641
655
  """Linearly interpolate between two quaternions."""
642
656
  ...
643
657
 
644
658
 
645
659
  @over
646
- def quat_to_matrix(q: Quaternion[Float]) -> Matrix[3, 3, Scalar]:
660
+ def quat_to_matrix(quat: Quaternion[Float]) -> Matrix[3, 3, Float]:
647
661
  """Convert a quaternion to a 3x3 rotation matrix."""
648
662
  ...
649
663
 
650
664
 
651
665
  @over
652
- def transform_identity() -> transformf:
666
+ def transform_identity(dtype: Float) -> transformf:
653
667
  """Construct an identity transform with zero translation and identity rotation."""
654
668
  ...
655
669
 
656
670
 
657
671
  @over
658
- def transform_get_translation(t: Transformation[Float]) -> Vector[3, Scalar]:
659
- """Return the translational part of a transform ``t``."""
672
+ def transform_get_translation(xform: Transformation[Float]) -> Vector[3, Float]:
673
+ """Return the translational part of a transform ``xform``."""
660
674
  ...
661
675
 
662
676
 
663
677
  @over
664
- def transform_get_rotation(t: Transformation[Float]) -> Quaternion[Scalar]:
665
- """Return the rotational part of a transform ``t``."""
678
+ def transform_get_rotation(xform: Transformation[Float]) -> Quaternion[Float]:
679
+ """Return the rotational part of a transform ``xform``."""
666
680
  ...
667
681
 
668
682
 
669
683
  @over
670
- def transform_multiply(a: Transformation[Float], b: Transformation[Float]) -> Transformation[Scalar]:
684
+ def transform_multiply(a: Transformation[Float], b: Transformation[Float]) -> Transformation[Float]:
671
685
  """Multiply two rigid body transformations together."""
672
686
  ...
673
687
 
674
688
 
675
689
  @over
676
- def transform_point(t: Transformation[Scalar], p: Vector[3, Scalar]) -> Vector[3, Scalar]:
677
- """Apply the transform to a point ``p`` treating the homogeneous coordinate as w=1 (translation and rotation)."""
690
+ def transform_point(xform: Transformation[Float], point: Vector[3, Float]) -> Vector[3, Float]:
691
+ """Apply the transform to a point ``point`` treating the homogeneous coordinate as w=1 (translation and rotation)."""
678
692
  ...
679
693
 
680
694
 
681
695
  @over
682
- def transform_point(m: Matrix[4, 4, Scalar], p: Vector[3, Scalar]) -> Vector[3, Scalar]:
683
- """Apply the transform to a point ``p`` treating the homogeneous coordinate as w=1.
696
+ def transform_point(mat: Matrix[4, 4, Float], point: Vector[3, Float]) -> Vector[3, Float]:
697
+ """Apply the transform to a point ``point`` treating the homogeneous coordinate as w=1.
684
698
 
685
- The transformation is applied treating ``p`` as a column vector, e.g.: ``y = M*p``.
686
- Note this is in contrast to some libraries, notably USD, which applies transforms to row vectors, ``y^T = p^T*M^T``.
699
+ The transformation is applied treating ``point`` as a column vector, e.g.: ``y = mat*point``.
700
+ Note this is in contrast to some libraries, notably USD, which applies transforms to row vectors, ``y^T = point^T*mat^T``.
687
701
  If the transform is coming from a library that uses row-vectors, then users should transpose the transformation
688
702
  matrix before calling this method.
689
703
  """
@@ -691,17 +705,17 @@ def transform_point(m: Matrix[4, 4, Scalar], p: Vector[3, Scalar]) -> Vector[3,
691
705
 
692
706
 
693
707
  @over
694
- def transform_vector(t: Transformation[Scalar], v: Vector[3, Scalar]) -> Vector[3, Scalar]:
695
- """Apply the transform to a vector ``v`` treating the homogeneous coordinate as w=0 (rotation only)."""
708
+ def transform_vector(xform: Transformation[Float], vec: Vector[3, Float]) -> Vector[3, Float]:
709
+ """Apply the transform to a vector ``vec`` treating the homogeneous coordinate as w=0 (rotation only)."""
696
710
  ...
697
711
 
698
712
 
699
713
  @over
700
- def transform_vector(m: Matrix[4, 4, Scalar], v: Vector[3, Scalar]) -> Vector[3, Scalar]:
701
- """Apply the transform to a vector ``v`` treating the homogeneous coordinate as w=0.
714
+ def transform_vector(mat: Matrix[4, 4, Float], vec: Vector[3, Float]) -> Vector[3, Float]:
715
+ """Apply the transform to a vector ``vec`` treating the homogeneous coordinate as w=0.
702
716
 
703
- The transformation is applied treating ``v`` as a column vector, e.g.: ``y = M*v``
704
- note this is in contrast to some libraries, notably USD, which applies transforms to row vectors, ``y^T = v^T*M^T``.
717
+ The transformation is applied treating ``vec`` as a column vector, e.g.: ``y = mat*vec``
718
+ note this is in contrast to some libraries, notably USD, which applies transforms to row vectors, ``y^T = vec^T*mat^T``.
705
719
  If the transform is coming from a library that uses row-vectors, then users should transpose the transformation
706
720
  matrix before calling this method.
707
721
  """
@@ -709,13 +723,13 @@ def transform_vector(m: Matrix[4, 4, Scalar], v: Vector[3, Scalar]) -> Vector[3,
709
723
 
710
724
 
711
725
  @over
712
- def transform_inverse(t: Transformation[Float]) -> Transformation[Float]:
713
- """Compute the inverse of the transformation ``t``."""
726
+ def transform_inverse(xform: Transformation[Float]) -> Transformation[Float]:
727
+ """Compute the inverse of the transformation ``xform``."""
714
728
  ...
715
729
 
716
730
 
717
731
  @over
718
- def spatial_dot(a: Vector[6, Float], b: Vector[6, Float]) -> Scalar:
732
+ def spatial_dot(a: Vector[6, Float], b: Vector[6, Float]) -> Float:
719
733
  """Compute the dot product of two 6D screw vectors."""
720
734
  ...
721
735
 
@@ -733,13 +747,13 @@ def spatial_cross_dual(a: Vector[6, Float], b: Vector[6, Float]) -> Vector[6, Fl
733
747
 
734
748
 
735
749
  @over
736
- def spatial_top(a: Vector[6, Float]):
750
+ def spatial_top(svec: Vector[6, Float]):
737
751
  """Return the top (first) part of a 6D screw vector."""
738
752
  ...
739
753
 
740
754
 
741
755
  @over
742
- def spatial_bottom(a: Vector[6, Float]):
756
+ def spatial_bottom(svec: Vector[6, Float]):
743
757
  """Return the bottom (second) part of a 6D screw vector."""
744
758
  ...
745
759
 
@@ -791,249 +805,6 @@ def mlp(
791
805
  ...
792
806
 
793
807
 
794
- @over
795
- def bvh_query_aabb(id: uint64, lower: vec3f, upper: vec3f) -> bvh_query_t:
796
- """Construct an axis-aligned bounding box query against a BVH object.
797
-
798
- This query can be used to iterate over all bounds inside a BVH.
799
-
800
- :param id: The BVH identifier
801
- :param lower: The lower bound of the bounding box in BVH space
802
- :param upper: The upper bound of the bounding box in BVH space
803
- """
804
- ...
805
-
806
-
807
- @over
808
- def bvh_query_ray(id: uint64, start: vec3f, dir: vec3f) -> bvh_query_t:
809
- """Construct a ray query against a BVH object.
810
-
811
- This query can be used to iterate over all bounds that intersect the ray.
812
-
813
- :param id: The BVH identifier
814
- :param start: The start of the ray in BVH space
815
- :param dir: The direction of the ray in BVH space
816
- """
817
- ...
818
-
819
-
820
- @over
821
- def bvh_query_next(query: bvh_query_t, index: int32) -> bool:
822
- """Move to the next bound returned by the query.
823
- The index of the current bound is stored in ``index``, returns ``False`` if there are no more overlapping bound.
824
- """
825
- ...
826
-
827
-
828
- @over
829
- def mesh_query_point(id: uint64, point: vec3f, max_dist: float32) -> mesh_query_point_t:
830
- """Computes the closest point on the :class:`Mesh` with identifier ``id`` to the given ``point`` in space.
831
-
832
- Identifies the sign of the distance using additional ray-casts to determine if the point is inside or outside.
833
- This method is relatively robust, but does increase computational cost.
834
- See below for additional sign determination methods.
835
-
836
- :param id: The mesh identifier
837
- :param point: The point in space to query
838
- :param max_dist: Mesh faces above this distance will not be considered by the query
839
- """
840
- ...
841
-
842
-
843
- @over
844
- def mesh_query_point_no_sign(id: uint64, point: vec3f, max_dist: float32) -> mesh_query_point_t:
845
- """Computes the closest point on the :class:`Mesh` with identifier ``id`` to the given ``point`` in space.
846
-
847
- This method does not compute the sign of the point (inside/outside) which makes it faster than other point query methods.
848
-
849
- :param id: The mesh identifier
850
- :param point: The point in space to query
851
- :param max_dist: Mesh faces above this distance will not be considered by the query
852
- """
853
- ...
854
-
855
-
856
- @over
857
- def mesh_query_furthest_point_no_sign(id: uint64, point: vec3f, min_dist: float32) -> mesh_query_point_t:
858
- """Computes the furthest point on the mesh with identifier `id` to the given point in space.
859
-
860
- This method does not compute the sign of the point (inside/outside).
861
-
862
- :param id: The mesh identifier
863
- :param point: The point in space to query
864
- :param min_dist: Mesh faces below this distance will not be considered by the query
865
- """
866
- ...
867
-
868
-
869
- @over
870
- def mesh_query_point_sign_normal(id: uint64, point: vec3f, max_dist: float32, epsilon: float32) -> mesh_query_point_t:
871
- """Computes the closest point on the :class:`Mesh` with identifier ``id`` to the given ``point`` in space.
872
-
873
- Identifies the sign of the distance (inside/outside) using the angle-weighted pseudo normal.
874
- This approach to sign determination is robust for well conditioned meshes that are watertight and non-self intersecting.
875
- It is also comparatively fast to compute.
876
-
877
- :param id: The mesh identifier
878
- :param point: The point in space to query
879
- :param max_dist: Mesh faces above this distance will not be considered by the query
880
- :param epsilon: Epsilon treating distance values as equal, when locating the minimum distance vertex/face/edge, as a
881
- fraction of the average edge length, also for treating closest point as being on edge/vertex default 1e-3
882
- """
883
- ...
884
-
885
-
886
- @over
887
- def mesh_query_point_sign_winding_number(
888
- id: uint64, point: vec3f, max_dist: float32, accuracy: float32, threshold: float32
889
- ) -> mesh_query_point_t:
890
- """Computes the closest point on the :class:`Mesh` with identifier ``id`` to the given point in space.
891
-
892
- Identifies the sign using the winding number of the mesh relative to the query point. This method of sign determination is robust for poorly conditioned meshes
893
- and provides a smooth approximation to sign even when the mesh is not watertight. This method is the most robust and accurate of the sign determination meshes
894
- but also the most expensive.
895
-
896
- .. note:: The :class:`Mesh` object must be constructed with ``support_winding_number=True`` for this method to return correct results.
897
-
898
- :param id: The mesh identifier
899
- :param point: The point in space to query
900
- :param max_dist: Mesh faces above this distance will not be considered by the query
901
- :param accuracy: Accuracy for computing the winding number with fast winding number method utilizing second-order dipole approximation, default 2.0
902
- :param threshold: The threshold of the winding number to be considered inside, default 0.5
903
- """
904
- ...
905
-
906
-
907
- @over
908
- def mesh_query_ray(id: uint64, start: vec3f, dir: vec3f, max_t: float32) -> mesh_query_ray_t:
909
- """Computes the closest ray hit on the :class:`Mesh` with identifier ``id``.
910
-
911
- :param id: The mesh identifier
912
- :param start: The start point of the ray
913
- :param dir: The ray direction (should be normalized)
914
- :param max_t: The maximum distance along the ray to check for intersections
915
- """
916
- ...
917
-
918
-
919
- @over
920
- def mesh_query_aabb(id: uint64, lower: vec3f, upper: vec3f) -> mesh_query_aabb_t:
921
- """Construct an axis-aligned bounding box query against a :class:`Mesh`.
922
-
923
- This query can be used to iterate over all triangles inside a volume.
924
-
925
- :param id: The mesh identifier
926
- :param lower: The lower bound of the bounding box in mesh space
927
- :param upper: The upper bound of the bounding box in mesh space
928
- """
929
- ...
930
-
931
-
932
- @over
933
- def mesh_query_aabb_next(query: mesh_query_aabb_t, index: int32) -> bool:
934
- """Move to the next triangle overlapping the query bounding box.
935
-
936
- The index of the current face is stored in ``index``, returns ``False`` if there are no more overlapping triangles.
937
- """
938
- ...
939
-
940
-
941
- @over
942
- def mesh_eval_position(id: uint64, face: int32, bary_u: float32, bary_v: float32) -> vec3f:
943
- """Evaluates the position on the :class:`Mesh` given a face index and barycentric coordinates."""
944
- ...
945
-
946
-
947
- @over
948
- def mesh_eval_velocity(id: uint64, face: int32, bary_u: float32, bary_v: float32) -> vec3f:
949
- """Evaluates the velocity on the :class:`Mesh` given a face index and barycentric coordinates."""
950
- ...
951
-
952
-
953
- @over
954
- def hash_grid_query(id: uint64, point: vec3f, max_dist: float32) -> hash_grid_query_t:
955
- """Construct a point query against a :class:`HashGrid`.
956
-
957
- This query can be used to iterate over all neighboring point within a fixed radius from the query point.
958
- """
959
- ...
960
-
961
-
962
- @over
963
- def hash_grid_query_next(query: hash_grid_query_t, index: int32) -> bool:
964
- """Move to the next point in the hash grid query.
965
-
966
- The index of the current neighbor is stored in ``index``, returns ``False`` if there are no more neighbors.
967
- """
968
- ...
969
-
970
-
971
- @over
972
- def hash_grid_point_id(id: uint64, index: int32) -> int:
973
- """Return the index of a point in the :class:`HashGrid`.
974
-
975
- This can be used to reorder threads such that grid traversal occurs in a spatially coherent order.
976
-
977
- Returns -1 if the :class:`HashGrid` has not been reserved.
978
- """
979
- ...
980
-
981
-
982
- @over
983
- def intersect_tri_tri(v0: vec3f, v1: vec3f, v2: vec3f, u0: vec3f, u1: vec3f, u2: vec3f) -> int:
984
- """Tests for intersection between two triangles (v0, v1, v2) and (u0, u1, u2) using Moller's method.
985
-
986
- Returns > 0 if triangles intersect.
987
- """
988
- ...
989
-
990
-
991
- @over
992
- def mesh_get(id: uint64) -> Mesh:
993
- """Retrieves the mesh given its index."""
994
- ...
995
-
996
-
997
- @over
998
- def mesh_eval_face_normal(id: uint64, face: int32) -> vec3f:
999
- """Evaluates the face normal the mesh given a face index."""
1000
- ...
1001
-
1002
-
1003
- @over
1004
- def mesh_get_point(id: uint64, index: int32) -> vec3f:
1005
- """Returns the point of the mesh given a index."""
1006
- ...
1007
-
1008
-
1009
- @over
1010
- def mesh_get_velocity(id: uint64, index: int32) -> vec3f:
1011
- """Returns the velocity of the mesh given a index."""
1012
- ...
1013
-
1014
-
1015
- @over
1016
- def mesh_get_index(id: uint64, index: int32) -> int:
1017
- """Returns the point-index of the mesh given a face-vertex index."""
1018
- ...
1019
-
1020
-
1021
- @over
1022
- def closest_point_edge_edge(p1: vec3f, q1: vec3f, p2: vec3f, q2: vec3f, epsilon: float32) -> vec3f:
1023
- """Finds the closest points between two edges.
1024
-
1025
- Returns barycentric weights to the points on each edge, as well as the closest distance between the edges.
1026
-
1027
- :param p1: First point of first edge
1028
- :param q1: Second point of first edge
1029
- :param p2: First point of second edge
1030
- :param q2: Second point of second edge
1031
- :param epsilon: Zero tolerance for determining if points in an edge are degenerate.
1032
- :param out: vec3 output containing (s,t,d), where `s` in [0,1] is the barycentric weight for the first edge, `t` is the barycentric weight for the second edge, and `d` is the distance between the two edges at these two closest points.
1033
- """
1034
- ...
1035
-
1036
-
1037
808
  @over
1038
809
  def volume_sample_f(id: uint64, uvw: vec3f, sampling_mode: int32) -> float:
1039
810
  """Sample the volume given by ``id`` at the volume local-space point ``uvw``.
@@ -1170,8 +941,8 @@ def randi(state: uint32) -> int:
1170
941
 
1171
942
 
1172
943
  @over
1173
- def randi(state: uint32, min: int32, max: int32) -> int:
1174
- """Return a random integer between [min, max)."""
944
+ def randi(state: uint32, low: int32, high: int32) -> int:
945
+ """Return a random integer between [low, high)."""
1175
946
  ...
1176
947
 
1177
948
 
@@ -1182,8 +953,8 @@ def randf(state: uint32) -> float:
1182
953
 
1183
954
 
1184
955
  @over
1185
- def randf(state: uint32, min: float32, max: float32) -> float:
1186
- """Return a random float between [min, max)."""
956
+ def randf(state: uint32, low: float32, high: float32) -> float:
957
+ """Return a random float between [low, high)."""
1187
958
  ...
1188
959
 
1189
960
 
@@ -1330,7 +1101,7 @@ def curlnoise(state: uint32, xyzt: vec4f, octaves: uint32, lacunarity: float32,
1330
1101
 
1331
1102
 
1332
1103
  @over
1333
- def printf():
1104
+ def printf(fmt: str, *args: Any):
1334
1105
  """Allows printing formatted strings using C-style format specifiers."""
1335
1106
  ...
1336
1107
 
@@ -1369,212 +1140,212 @@ def tid() -> Tuple[int, int, int, int]:
1369
1140
 
1370
1141
 
1371
1142
  @over
1372
- def select(cond: bool, arg1: Any, arg2: Any):
1373
- """Select between two arguments, if ``cond`` is ``False`` then return ``arg1``, otherwise return ``arg2``"""
1143
+ def select(cond: bool, value_if_false: Any, value_if_true: Any):
1144
+ """Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``"""
1374
1145
  ...
1375
1146
 
1376
1147
 
1377
1148
  @over
1378
- def select(cond: int8, arg1: Any, arg2: Any):
1379
- """Select between two arguments, if ``cond`` is ``False`` then return ``arg1``, otherwise return ``arg2``"""
1149
+ def select(cond: int8, value_if_false: Any, value_if_true: Any):
1150
+ """Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``"""
1380
1151
  ...
1381
1152
 
1382
1153
 
1383
1154
  @over
1384
- def select(cond: uint8, arg1: Any, arg2: Any):
1385
- """Select between two arguments, if ``cond`` is ``False`` then return ``arg1``, otherwise return ``arg2``"""
1155
+ def select(cond: uint8, value_if_false: Any, value_if_true: Any):
1156
+ """Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``"""
1386
1157
  ...
1387
1158
 
1388
1159
 
1389
1160
  @over
1390
- def select(cond: int16, arg1: Any, arg2: Any):
1391
- """Select between two arguments, if ``cond`` is ``False`` then return ``arg1``, otherwise return ``arg2``"""
1161
+ def select(cond: int16, value_if_false: Any, value_if_true: Any):
1162
+ """Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``"""
1392
1163
  ...
1393
1164
 
1394
1165
 
1395
1166
  @over
1396
- def select(cond: uint16, arg1: Any, arg2: Any):
1397
- """Select between two arguments, if ``cond`` is ``False`` then return ``arg1``, otherwise return ``arg2``"""
1167
+ def select(cond: uint16, value_if_false: Any, value_if_true: Any):
1168
+ """Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``"""
1398
1169
  ...
1399
1170
 
1400
1171
 
1401
1172
  @over
1402
- def select(cond: int32, arg1: Any, arg2: Any):
1403
- """Select between two arguments, if ``cond`` is ``False`` then return ``arg1``, otherwise return ``arg2``"""
1173
+ def select(cond: int32, value_if_false: Any, value_if_true: Any):
1174
+ """Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``"""
1404
1175
  ...
1405
1176
 
1406
1177
 
1407
1178
  @over
1408
- def select(cond: uint32, arg1: Any, arg2: Any):
1409
- """Select between two arguments, if ``cond`` is ``False`` then return ``arg1``, otherwise return ``arg2``"""
1179
+ def select(cond: uint32, value_if_false: Any, value_if_true: Any):
1180
+ """Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``"""
1410
1181
  ...
1411
1182
 
1412
1183
 
1413
1184
  @over
1414
- def select(cond: int64, arg1: Any, arg2: Any):
1415
- """Select between two arguments, if ``cond`` is ``False`` then return ``arg1``, otherwise return ``arg2``"""
1185
+ def select(cond: int64, value_if_false: Any, value_if_true: Any):
1186
+ """Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``"""
1416
1187
  ...
1417
1188
 
1418
1189
 
1419
1190
  @over
1420
- def select(cond: uint64, arg1: Any, arg2: Any):
1421
- """Select between two arguments, if ``cond`` is ``False`` then return ``arg1``, otherwise return ``arg2``"""
1191
+ def select(cond: uint64, value_if_false: Any, value_if_true: Any):
1192
+ """Select between two arguments, if ``cond`` is ``False`` then return ``value_if_false``, otherwise return ``value_if_true``"""
1422
1193
  ...
1423
1194
 
1424
1195
 
1425
1196
  @over
1426
- def select(arr: Array[Any], arg1: Any, arg2: Any):
1427
- """Select between two arguments, if ``arr`` is null then return ``arg1``, otherwise return ``arg2``"""
1197
+ def select(arr: Array[Any], value_if_false: Any, value_if_true: Any):
1198
+ """Select between two arguments, if ``arr`` is null then return ``value_if_false``, otherwise return ``value_if_true``"""
1428
1199
  ...
1429
1200
 
1430
1201
 
1431
1202
  @over
1432
- def atomic_add(a: Array[Any], i: int32, value: Any):
1433
- """Atomically add ``value`` onto ``a[i]``."""
1203
+ def atomic_add(arr: Array[Any], i: int32, value: Any):
1204
+ """Atomically add ``value`` onto ``arr[i]``."""
1434
1205
  ...
1435
1206
 
1436
1207
 
1437
1208
  @over
1438
- def atomic_add(a: Array[Any], i: int32, j: int32, value: Any):
1439
- """Atomically add ``value`` onto ``a[i,j]``."""
1209
+ def atomic_add(arr: Array[Any], i: int32, j: int32, value: Any):
1210
+ """Atomically add ``value`` onto ``arr[i,j]``."""
1440
1211
  ...
1441
1212
 
1442
1213
 
1443
1214
  @over
1444
- def atomic_add(a: Array[Any], i: int32, j: int32, k: int32, value: Any):
1445
- """Atomically add ``value`` onto ``a[i,j,k]``."""
1215
+ def atomic_add(arr: Array[Any], i: int32, j: int32, k: int32, value: Any):
1216
+ """Atomically add ``value`` onto ``arr[i,j,k]``."""
1446
1217
  ...
1447
1218
 
1448
1219
 
1449
1220
  @over
1450
- def atomic_add(a: Array[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1451
- """Atomically add ``value`` onto ``a[i,j,k,l]``."""
1221
+ def atomic_add(arr: Array[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1222
+ """Atomically add ``value`` onto ``arr[i,j,k,l]``."""
1452
1223
  ...
1453
1224
 
1454
1225
 
1455
1226
  @over
1456
- def atomic_add(a: FabricArray[Any], i: int32, value: Any):
1457
- """Atomically add ``value`` onto ``a[i]``."""
1227
+ def atomic_add(arr: FabricArray[Any], i: int32, value: Any):
1228
+ """Atomically add ``value`` onto ``arr[i]``."""
1458
1229
  ...
1459
1230
 
1460
1231
 
1461
1232
  @over
1462
- def atomic_add(a: FabricArray[Any], i: int32, j: int32, value: Any):
1463
- """Atomically add ``value`` onto ``a[i,j]``."""
1233
+ def atomic_add(arr: FabricArray[Any], i: int32, j: int32, value: Any):
1234
+ """Atomically add ``value`` onto ``arr[i,j]``."""
1464
1235
  ...
1465
1236
 
1466
1237
 
1467
1238
  @over
1468
- def atomic_add(a: FabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1469
- """Atomically add ``value`` onto ``a[i,j,k]``."""
1239
+ def atomic_add(arr: FabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1240
+ """Atomically add ``value`` onto ``arr[i,j,k]``."""
1470
1241
  ...
1471
1242
 
1472
1243
 
1473
1244
  @over
1474
- def atomic_add(a: FabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1475
- """Atomically add ``value`` onto ``a[i,j,k,l]``."""
1245
+ def atomic_add(arr: FabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1246
+ """Atomically add ``value`` onto ``arr[i,j,k,l]``."""
1476
1247
  ...
1477
1248
 
1478
1249
 
1479
1250
  @over
1480
- def atomic_add(a: IndexedFabricArray[Any], i: int32, value: Any):
1481
- """Atomically add ``value`` onto ``a[i]``."""
1251
+ def atomic_add(arr: IndexedFabricArray[Any], i: int32, value: Any):
1252
+ """Atomically add ``value`` onto ``arr[i]``."""
1482
1253
  ...
1483
1254
 
1484
1255
 
1485
1256
  @over
1486
- def atomic_add(a: IndexedFabricArray[Any], i: int32, j: int32, value: Any):
1487
- """Atomically add ``value`` onto ``a[i,j]``."""
1257
+ def atomic_add(arr: IndexedFabricArray[Any], i: int32, j: int32, value: Any):
1258
+ """Atomically add ``value`` onto ``arr[i,j]``."""
1488
1259
  ...
1489
1260
 
1490
1261
 
1491
1262
  @over
1492
- def atomic_add(a: IndexedFabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1493
- """Atomically add ``value`` onto ``a[i,j,k]``."""
1263
+ def atomic_add(arr: IndexedFabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1264
+ """Atomically add ``value`` onto ``arr[i,j,k]``."""
1494
1265
  ...
1495
1266
 
1496
1267
 
1497
1268
  @over
1498
- def atomic_add(a: IndexedFabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1499
- """Atomically add ``value`` onto ``a[i,j,k,l]``."""
1269
+ def atomic_add(arr: IndexedFabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1270
+ """Atomically add ``value`` onto ``arr[i,j,k,l]``."""
1500
1271
  ...
1501
1272
 
1502
1273
 
1503
1274
  @over
1504
- def atomic_sub(a: Array[Any], i: int32, value: Any):
1505
- """Atomically subtract ``value`` onto ``a[i]``."""
1275
+ def atomic_sub(arr: Array[Any], i: int32, value: Any):
1276
+ """Atomically subtract ``value`` onto ``arr[i]``."""
1506
1277
  ...
1507
1278
 
1508
1279
 
1509
1280
  @over
1510
- def atomic_sub(a: Array[Any], i: int32, j: int32, value: Any):
1511
- """Atomically subtract ``value`` onto ``a[i,j]``."""
1281
+ def atomic_sub(arr: Array[Any], i: int32, j: int32, value: Any):
1282
+ """Atomically subtract ``value`` onto ``arr[i,j]``."""
1512
1283
  ...
1513
1284
 
1514
1285
 
1515
1286
  @over
1516
- def atomic_sub(a: Array[Any], i: int32, j: int32, k: int32, value: Any):
1517
- """Atomically subtract ``value`` onto ``a[i,j,k]``."""
1287
+ def atomic_sub(arr: Array[Any], i: int32, j: int32, k: int32, value: Any):
1288
+ """Atomically subtract ``value`` onto ``arr[i,j,k]``."""
1518
1289
  ...
1519
1290
 
1520
1291
 
1521
1292
  @over
1522
- def atomic_sub(a: Array[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1523
- """Atomically subtract ``value`` onto ``a[i,j,k,l]``."""
1293
+ def atomic_sub(arr: Array[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1294
+ """Atomically subtract ``value`` onto ``arr[i,j,k,l]``."""
1524
1295
  ...
1525
1296
 
1526
1297
 
1527
1298
  @over
1528
- def atomic_sub(a: FabricArray[Any], i: int32, value: Any):
1529
- """Atomically subtract ``value`` onto ``a[i]``."""
1299
+ def atomic_sub(arr: FabricArray[Any], i: int32, value: Any):
1300
+ """Atomically subtract ``value`` onto ``arr[i]``."""
1530
1301
  ...
1531
1302
 
1532
1303
 
1533
1304
  @over
1534
- def atomic_sub(a: FabricArray[Any], i: int32, j: int32, value: Any):
1535
- """Atomically subtract ``value`` onto ``a[i,j]``."""
1305
+ def atomic_sub(arr: FabricArray[Any], i: int32, j: int32, value: Any):
1306
+ """Atomically subtract ``value`` onto ``arr[i,j]``."""
1536
1307
  ...
1537
1308
 
1538
1309
 
1539
1310
  @over
1540
- def atomic_sub(a: FabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1541
- """Atomically subtract ``value`` onto ``a[i,j,k]``."""
1311
+ def atomic_sub(arr: FabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1312
+ """Atomically subtract ``value`` onto ``arr[i,j,k]``."""
1542
1313
  ...
1543
1314
 
1544
1315
 
1545
1316
  @over
1546
- def atomic_sub(a: FabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1547
- """Atomically subtract ``value`` onto ``a[i,j,k,l]``."""
1317
+ def atomic_sub(arr: FabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1318
+ """Atomically subtract ``value`` onto ``arr[i,j,k,l]``."""
1548
1319
  ...
1549
1320
 
1550
1321
 
1551
1322
  @over
1552
- def atomic_sub(a: IndexedFabricArray[Any], i: int32, value: Any):
1553
- """Atomically subtract ``value`` onto ``a[i]``."""
1323
+ def atomic_sub(arr: IndexedFabricArray[Any], i: int32, value: Any):
1324
+ """Atomically subtract ``value`` onto ``arr[i]``."""
1554
1325
  ...
1555
1326
 
1556
1327
 
1557
1328
  @over
1558
- def atomic_sub(a: IndexedFabricArray[Any], i: int32, j: int32, value: Any):
1559
- """Atomically subtract ``value`` onto ``a[i,j]``."""
1329
+ def atomic_sub(arr: IndexedFabricArray[Any], i: int32, j: int32, value: Any):
1330
+ """Atomically subtract ``value`` onto ``arr[i,j]``."""
1560
1331
  ...
1561
1332
 
1562
1333
 
1563
1334
  @over
1564
- def atomic_sub(a: IndexedFabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1565
- """Atomically subtract ``value`` onto ``a[i,j,k]``."""
1335
+ def atomic_sub(arr: IndexedFabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1336
+ """Atomically subtract ``value`` onto ``arr[i,j,k]``."""
1566
1337
  ...
1567
1338
 
1568
1339
 
1569
1340
  @over
1570
- def atomic_sub(a: IndexedFabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1571
- """Atomically subtract ``value`` onto ``a[i,j,k,l]``."""
1341
+ def atomic_sub(arr: IndexedFabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1342
+ """Atomically subtract ``value`` onto ``arr[i,j,k,l]``."""
1572
1343
  ...
1573
1344
 
1574
1345
 
1575
1346
  @over
1576
- def atomic_min(a: Array[Any], i: int32, value: Any):
1577
- """Compute the minimum of ``value`` and ``a[i]`` and atomically update the array.
1347
+ def atomic_min(arr: Array[Any], i: int32, value: Any):
1348
+ """Compute the minimum of ``value`` and ``arr[i]`` and atomically update the array.
1578
1349
 
1579
1350
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1580
1351
  """
@@ -1582,8 +1353,8 @@ def atomic_min(a: Array[Any], i: int32, value: Any):
1582
1353
 
1583
1354
 
1584
1355
  @over
1585
- def atomic_min(a: Array[Any], i: int32, j: int32, value: Any):
1586
- """Compute the minimum of ``value`` and ``a[i,j]`` and atomically update the array.
1356
+ def atomic_min(arr: Array[Any], i: int32, j: int32, value: Any):
1357
+ """Compute the minimum of ``value`` and ``arr[i,j]`` and atomically update the array.
1587
1358
 
1588
1359
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1589
1360
  """
@@ -1591,8 +1362,8 @@ def atomic_min(a: Array[Any], i: int32, j: int32, value: Any):
1591
1362
 
1592
1363
 
1593
1364
  @over
1594
- def atomic_min(a: Array[Any], i: int32, j: int32, k: int32, value: Any):
1595
- """Compute the minimum of ``value`` and ``a[i,j,k]`` and atomically update the array.
1365
+ def atomic_min(arr: Array[Any], i: int32, j: int32, k: int32, value: Any):
1366
+ """Compute the minimum of ``value`` and ``arr[i,j,k]`` and atomically update the array.
1596
1367
 
1597
1368
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1598
1369
  """
@@ -1600,8 +1371,8 @@ def atomic_min(a: Array[Any], i: int32, j: int32, k: int32, value: Any):
1600
1371
 
1601
1372
 
1602
1373
  @over
1603
- def atomic_min(a: Array[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1604
- """Compute the minimum of ``value`` and ``a[i,j,k,l]`` and atomically update the array.
1374
+ def atomic_min(arr: Array[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1375
+ """Compute the minimum of ``value`` and ``arr[i,j,k,l]`` and atomically update the array.
1605
1376
 
1606
1377
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1607
1378
  """
@@ -1609,8 +1380,8 @@ def atomic_min(a: Array[Any], i: int32, j: int32, k: int32, l: int32, value: Any
1609
1380
 
1610
1381
 
1611
1382
  @over
1612
- def atomic_min(a: FabricArray[Any], i: int32, value: Any):
1613
- """Compute the minimum of ``value`` and ``a[i]`` and atomically update the array.
1383
+ def atomic_min(arr: FabricArray[Any], i: int32, value: Any):
1384
+ """Compute the minimum of ``value`` and ``arr[i]`` and atomically update the array.
1614
1385
 
1615
1386
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1616
1387
  """
@@ -1618,8 +1389,8 @@ def atomic_min(a: FabricArray[Any], i: int32, value: Any):
1618
1389
 
1619
1390
 
1620
1391
  @over
1621
- def atomic_min(a: FabricArray[Any], i: int32, j: int32, value: Any):
1622
- """Compute the minimum of ``value`` and ``a[i,j]`` and atomically update the array.
1392
+ def atomic_min(arr: FabricArray[Any], i: int32, j: int32, value: Any):
1393
+ """Compute the minimum of ``value`` and ``arr[i,j]`` and atomically update the array.
1623
1394
 
1624
1395
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1625
1396
  """
@@ -1627,8 +1398,8 @@ def atomic_min(a: FabricArray[Any], i: int32, j: int32, value: Any):
1627
1398
 
1628
1399
 
1629
1400
  @over
1630
- def atomic_min(a: FabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1631
- """Compute the minimum of ``value`` and ``a[i,j,k]`` and atomically update the array.
1401
+ def atomic_min(arr: FabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1402
+ """Compute the minimum of ``value`` and ``arr[i,j,k]`` and atomically update the array.
1632
1403
 
1633
1404
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1634
1405
  """
@@ -1636,8 +1407,8 @@ def atomic_min(a: FabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1636
1407
 
1637
1408
 
1638
1409
  @over
1639
- def atomic_min(a: FabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1640
- """Compute the minimum of ``value`` and ``a[i,j,k,l]`` and atomically update the array.
1410
+ def atomic_min(arr: FabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1411
+ """Compute the minimum of ``value`` and ``arr[i,j,k,l]`` and atomically update the array.
1641
1412
 
1642
1413
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1643
1414
  """
@@ -1645,8 +1416,8 @@ def atomic_min(a: FabricArray[Any], i: int32, j: int32, k: int32, l: int32, valu
1645
1416
 
1646
1417
 
1647
1418
  @over
1648
- def atomic_min(a: IndexedFabricArray[Any], i: int32, value: Any):
1649
- """Compute the minimum of ``value`` and ``a[i]`` and atomically update the array.
1419
+ def atomic_min(arr: IndexedFabricArray[Any], i: int32, value: Any):
1420
+ """Compute the minimum of ``value`` and ``arr[i]`` and atomically update the array.
1650
1421
 
1651
1422
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1652
1423
  """
@@ -1654,8 +1425,8 @@ def atomic_min(a: IndexedFabricArray[Any], i: int32, value: Any):
1654
1425
 
1655
1426
 
1656
1427
  @over
1657
- def atomic_min(a: IndexedFabricArray[Any], i: int32, j: int32, value: Any):
1658
- """Compute the minimum of ``value`` and ``a[i,j]`` and atomically update the array.
1428
+ def atomic_min(arr: IndexedFabricArray[Any], i: int32, j: int32, value: Any):
1429
+ """Compute the minimum of ``value`` and ``arr[i,j]`` and atomically update the array.
1659
1430
 
1660
1431
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1661
1432
  """
@@ -1663,8 +1434,8 @@ def atomic_min(a: IndexedFabricArray[Any], i: int32, j: int32, value: Any):
1663
1434
 
1664
1435
 
1665
1436
  @over
1666
- def atomic_min(a: IndexedFabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1667
- """Compute the minimum of ``value`` and ``a[i,j,k]`` and atomically update the array.
1437
+ def atomic_min(arr: IndexedFabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1438
+ """Compute the minimum of ``value`` and ``arr[i,j,k]`` and atomically update the array.
1668
1439
 
1669
1440
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1670
1441
  """
@@ -1672,8 +1443,8 @@ def atomic_min(a: IndexedFabricArray[Any], i: int32, j: int32, k: int32, value:
1672
1443
 
1673
1444
 
1674
1445
  @over
1675
- def atomic_min(a: IndexedFabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1676
- """Compute the minimum of ``value`` and ``a[i,j,k,l]`` and atomically update the array.
1446
+ def atomic_min(arr: IndexedFabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1447
+ """Compute the minimum of ``value`` and ``arr[i,j,k,l]`` and atomically update the array.
1677
1448
 
1678
1449
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1679
1450
  """
@@ -1681,8 +1452,8 @@ def atomic_min(a: IndexedFabricArray[Any], i: int32, j: int32, k: int32, l: int3
1681
1452
 
1682
1453
 
1683
1454
  @over
1684
- def atomic_max(a: Array[Any], i: int32, value: Any):
1685
- """Compute the maximum of ``value`` and ``a[i]`` and atomically update the array.
1455
+ def atomic_max(arr: Array[Any], i: int32, value: Any):
1456
+ """Compute the maximum of ``value`` and ``arr[i]`` and atomically update the array.
1686
1457
 
1687
1458
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1688
1459
  """
@@ -1690,8 +1461,8 @@ def atomic_max(a: Array[Any], i: int32, value: Any):
1690
1461
 
1691
1462
 
1692
1463
  @over
1693
- def atomic_max(a: Array[Any], i: int32, j: int32, value: Any):
1694
- """Compute the maximum of ``value`` and ``a[i,j]`` and atomically update the array.
1464
+ def atomic_max(arr: Array[Any], i: int32, j: int32, value: Any):
1465
+ """Compute the maximum of ``value`` and ``arr[i,j]`` and atomically update the array.
1695
1466
 
1696
1467
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1697
1468
  """
@@ -1699,8 +1470,8 @@ def atomic_max(a: Array[Any], i: int32, j: int32, value: Any):
1699
1470
 
1700
1471
 
1701
1472
  @over
1702
- def atomic_max(a: Array[Any], i: int32, j: int32, k: int32, value: Any):
1703
- """Compute the maximum of ``value`` and ``a[i,j,k]`` and atomically update the array.
1473
+ def atomic_max(arr: Array[Any], i: int32, j: int32, k: int32, value: Any):
1474
+ """Compute the maximum of ``value`` and ``arr[i,j,k]`` and atomically update the array.
1704
1475
 
1705
1476
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1706
1477
  """
@@ -1708,8 +1479,8 @@ def atomic_max(a: Array[Any], i: int32, j: int32, k: int32, value: Any):
1708
1479
 
1709
1480
 
1710
1481
  @over
1711
- def atomic_max(a: Array[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1712
- """Compute the maximum of ``value`` and ``a[i,j,k,l]`` and atomically update the array.
1482
+ def atomic_max(arr: Array[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1483
+ """Compute the maximum of ``value`` and ``arr[i,j,k,l]`` and atomically update the array.
1713
1484
 
1714
1485
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1715
1486
  """
@@ -1717,8 +1488,8 @@ def atomic_max(a: Array[Any], i: int32, j: int32, k: int32, l: int32, value: Any
1717
1488
 
1718
1489
 
1719
1490
  @over
1720
- def atomic_max(a: FabricArray[Any], i: int32, value: Any):
1721
- """Compute the maximum of ``value`` and ``a[i]`` and atomically update the array.
1491
+ def atomic_max(arr: FabricArray[Any], i: int32, value: Any):
1492
+ """Compute the maximum of ``value`` and ``arr[i]`` and atomically update the array.
1722
1493
 
1723
1494
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1724
1495
  """
@@ -1726,8 +1497,8 @@ def atomic_max(a: FabricArray[Any], i: int32, value: Any):
1726
1497
 
1727
1498
 
1728
1499
  @over
1729
- def atomic_max(a: FabricArray[Any], i: int32, j: int32, value: Any):
1730
- """Compute the maximum of ``value`` and ``a[i,j]`` and atomically update the array.
1500
+ def atomic_max(arr: FabricArray[Any], i: int32, j: int32, value: Any):
1501
+ """Compute the maximum of ``value`` and ``arr[i,j]`` and atomically update the array.
1731
1502
 
1732
1503
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1733
1504
  """
@@ -1735,8 +1506,8 @@ def atomic_max(a: FabricArray[Any], i: int32, j: int32, value: Any):
1735
1506
 
1736
1507
 
1737
1508
  @over
1738
- def atomic_max(a: FabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1739
- """Compute the maximum of ``value`` and ``a[i,j,k]`` and atomically update the array.
1509
+ def atomic_max(arr: FabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1510
+ """Compute the maximum of ``value`` and ``arr[i,j,k]`` and atomically update the array.
1740
1511
 
1741
1512
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1742
1513
  """
@@ -1744,8 +1515,8 @@ def atomic_max(a: FabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1744
1515
 
1745
1516
 
1746
1517
  @over
1747
- def atomic_max(a: FabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1748
- """Compute the maximum of ``value`` and ``a[i,j,k,l]`` and atomically update the array.
1518
+ def atomic_max(arr: FabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1519
+ """Compute the maximum of ``value`` and ``arr[i,j,k,l]`` and atomically update the array.
1749
1520
 
1750
1521
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1751
1522
  """
@@ -1753,8 +1524,8 @@ def atomic_max(a: FabricArray[Any], i: int32, j: int32, k: int32, l: int32, valu
1753
1524
 
1754
1525
 
1755
1526
  @over
1756
- def atomic_max(a: IndexedFabricArray[Any], i: int32, value: Any):
1757
- """Compute the maximum of ``value`` and ``a[i]`` and atomically update the array.
1527
+ def atomic_max(arr: IndexedFabricArray[Any], i: int32, value: Any):
1528
+ """Compute the maximum of ``value`` and ``arr[i]`` and atomically update the array.
1758
1529
 
1759
1530
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1760
1531
  """
@@ -1762,8 +1533,8 @@ def atomic_max(a: IndexedFabricArray[Any], i: int32, value: Any):
1762
1533
 
1763
1534
 
1764
1535
  @over
1765
- def atomic_max(a: IndexedFabricArray[Any], i: int32, j: int32, value: Any):
1766
- """Compute the maximum of ``value`` and ``a[i,j]`` and atomically update the array.
1536
+ def atomic_max(arr: IndexedFabricArray[Any], i: int32, j: int32, value: Any):
1537
+ """Compute the maximum of ``value`` and ``arr[i,j]`` and atomically update the array.
1767
1538
 
1768
1539
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1769
1540
  """
@@ -1771,8 +1542,8 @@ def atomic_max(a: IndexedFabricArray[Any], i: int32, j: int32, value: Any):
1771
1542
 
1772
1543
 
1773
1544
  @over
1774
- def atomic_max(a: IndexedFabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1775
- """Compute the maximum of ``value`` and ``a[i,j,k]`` and atomically update the array.
1545
+ def atomic_max(arr: IndexedFabricArray[Any], i: int32, j: int32, k: int32, value: Any):
1546
+ """Compute the maximum of ``value`` and ``arr[i,j,k]`` and atomically update the array.
1776
1547
 
1777
1548
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1778
1549
  """
@@ -1780,8 +1551,8 @@ def atomic_max(a: IndexedFabricArray[Any], i: int32, j: int32, k: int32, value:
1780
1551
 
1781
1552
 
1782
1553
  @over
1783
- def atomic_max(a: IndexedFabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1784
- """Compute the maximum of ``value`` and ``a[i,j,k,l]`` and atomically update the array.
1554
+ def atomic_max(arr: IndexedFabricArray[Any], i: int32, j: int32, k: int32, l: int32, value: Any):
1555
+ """Compute the maximum of ``value`` and ``arr[i,j,k,l]`` and atomically update the array.
1785
1556
 
1786
1557
  .. note:: The operation is only atomic on a per-component basis for vectors and matrices.
1787
1558
  """
@@ -1819,22 +1590,22 @@ def lerp(a: Transformation[Float], b: Transformation[Float], t: Float) -> Transf
1819
1590
 
1820
1591
 
1821
1592
  @over
1822
- def smoothstep(edge0: Float, edge1: Float, x: Float) -> Float:
1823
- """Smoothly interpolate between two values ``edge0`` and ``edge1`` using a factor ``x``,
1593
+ def smoothstep(a: Float, b: Float, x: Float) -> Float:
1594
+ """Smoothly interpolate between two values ``a`` and ``b`` using a factor ``x``,
1824
1595
  and return a result between 0 and 1 using a cubic Hermite interpolation after clamping.
1825
1596
  """
1826
1597
  ...
1827
1598
 
1828
1599
 
1829
1600
  @over
1830
- def expect_near(arg1: Float, arg2: Float, tolerance: Float):
1831
- """Prints an error to stdout if ``arg1`` and ``arg2`` are not closer than tolerance in magnitude"""
1601
+ def expect_near(a: Float, b: Float, tolerance: Float):
1602
+ """Prints an error to stdout if ``a`` and ``b`` are not closer than tolerance in magnitude"""
1832
1603
  ...
1833
1604
 
1834
1605
 
1835
1606
  @over
1836
- def expect_near(arg1: vec3f, arg2: vec3f, tolerance: float32):
1837
- """Prints an error to stdout if any element of ``arg1`` and ``arg2`` are not closer than tolerance in magnitude"""
1607
+ def expect_near(a: vec3f, b: vec3f, tolerance: float32):
1608
+ """Prints an error to stdout if any element of ``a`` and ``b`` are not closer than tolerance in magnitude"""
1838
1609
  ...
1839
1610
 
1840
1611
 
@@ -1851,235 +1622,235 @@ def lower_bound(arr: Array[Scalar], arr_begin: int32, arr_end: int32, value: Sca
1851
1622
 
1852
1623
 
1853
1624
  @over
1854
- def add(x: Scalar, y: Scalar) -> Scalar:
1625
+ def add(a: Scalar, b: Scalar) -> Scalar:
1855
1626
  """ """
1856
1627
  ...
1857
1628
 
1858
1629
 
1859
1630
  @over
1860
- def add(x: Vector[Any, Scalar], y: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
1631
+ def add(a: Vector[Any, Scalar], b: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
1861
1632
  """ """
1862
1633
  ...
1863
1634
 
1864
1635
 
1865
1636
  @over
1866
- def add(x: Quaternion[Scalar], y: Quaternion[Scalar]) -> Quaternion[Scalar]:
1637
+ def add(a: Quaternion[Scalar], b: Quaternion[Scalar]) -> Quaternion[Scalar]:
1867
1638
  """ """
1868
1639
  ...
1869
1640
 
1870
1641
 
1871
1642
  @over
1872
- def add(x: Matrix[Any, Any, Scalar], y: Matrix[Any, Any, Scalar]) -> Matrix[Any, Any, Scalar]:
1643
+ def add(a: Matrix[Any, Any, Scalar], b: Matrix[Any, Any, Scalar]) -> Matrix[Any, Any, Scalar]:
1873
1644
  """ """
1874
1645
  ...
1875
1646
 
1876
1647
 
1877
1648
  @over
1878
- def add(x: Transformation[Scalar], y: Transformation[Scalar]) -> Transformation[Scalar]:
1649
+ def add(a: Transformation[Scalar], b: Transformation[Scalar]) -> Transformation[Scalar]:
1879
1650
  """ """
1880
1651
  ...
1881
1652
 
1882
1653
 
1883
1654
  @over
1884
- def sub(x: Scalar, y: Scalar) -> Scalar:
1655
+ def sub(a: Scalar, b: Scalar) -> Scalar:
1885
1656
  """ """
1886
1657
  ...
1887
1658
 
1888
1659
 
1889
1660
  @over
1890
- def sub(x: Vector[Any, Scalar], y: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
1661
+ def sub(a: Vector[Any, Scalar], b: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
1891
1662
  """ """
1892
1663
  ...
1893
1664
 
1894
1665
 
1895
1666
  @over
1896
- def sub(x: Matrix[Any, Any, Scalar], y: Matrix[Any, Any, Scalar]) -> Matrix[Any, Any, Scalar]:
1667
+ def sub(a: Matrix[Any, Any, Scalar], b: Matrix[Any, Any, Scalar]) -> Matrix[Any, Any, Scalar]:
1897
1668
  """ """
1898
1669
  ...
1899
1670
 
1900
1671
 
1901
1672
  @over
1902
- def sub(x: Quaternion[Scalar], y: Quaternion[Scalar]) -> Quaternion[Scalar]:
1673
+ def sub(a: Quaternion[Scalar], b: Quaternion[Scalar]) -> Quaternion[Scalar]:
1903
1674
  """ """
1904
1675
  ...
1905
1676
 
1906
1677
 
1907
1678
  @over
1908
- def sub(x: Transformation[Scalar], y: Transformation[Scalar]) -> Transformation[Scalar]:
1679
+ def sub(a: Transformation[Scalar], b: Transformation[Scalar]) -> Transformation[Scalar]:
1909
1680
  """ """
1910
1681
  ...
1911
1682
 
1912
1683
 
1913
1684
  @over
1914
- def bit_and(x: Int, y: Int) -> Int:
1685
+ def bit_and(a: Int, b: Int) -> Int:
1915
1686
  """ """
1916
1687
  ...
1917
1688
 
1918
1689
 
1919
1690
  @over
1920
- def bit_or(x: Int, y: Int) -> Int:
1691
+ def bit_or(a: Int, b: Int) -> Int:
1921
1692
  """ """
1922
1693
  ...
1923
1694
 
1924
1695
 
1925
1696
  @over
1926
- def bit_xor(x: Int, y: Int) -> Int:
1697
+ def bit_xor(a: Int, b: Int) -> Int:
1927
1698
  """ """
1928
1699
  ...
1929
1700
 
1930
1701
 
1931
1702
  @over
1932
- def lshift(x: Int, y: Int) -> Int:
1703
+ def lshift(a: Int, b: Int) -> Int:
1933
1704
  """ """
1934
1705
  ...
1935
1706
 
1936
1707
 
1937
1708
  @over
1938
- def rshift(x: Int, y: Int) -> Int:
1709
+ def rshift(a: Int, b: Int) -> Int:
1939
1710
  """ """
1940
1711
  ...
1941
1712
 
1942
1713
 
1943
1714
  @over
1944
- def invert(x: Int) -> Int:
1715
+ def invert(a: Int) -> Int:
1945
1716
  """ """
1946
1717
  ...
1947
1718
 
1948
1719
 
1949
1720
  @over
1950
- def mul(x: Scalar, y: Scalar) -> Scalar:
1721
+ def mul(a: Scalar, b: Scalar) -> Scalar:
1951
1722
  """ """
1952
1723
  ...
1953
1724
 
1954
1725
 
1955
1726
  @over
1956
- def mul(x: Vector[Any, Scalar], y: Scalar) -> Vector[Any, Scalar]:
1727
+ def mul(a: Vector[Any, Scalar], b: Scalar) -> Vector[Any, Scalar]:
1957
1728
  """ """
1958
1729
  ...
1959
1730
 
1960
1731
 
1961
1732
  @over
1962
- def mul(x: Scalar, y: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
1733
+ def mul(a: Scalar, b: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
1963
1734
  """ """
1964
1735
  ...
1965
1736
 
1966
1737
 
1967
1738
  @over
1968
- def mul(x: Quaternion[Scalar], y: Scalar) -> Quaternion[Scalar]:
1739
+ def mul(a: Quaternion[Scalar], b: Scalar) -> Quaternion[Scalar]:
1969
1740
  """ """
1970
1741
  ...
1971
1742
 
1972
1743
 
1973
1744
  @over
1974
- def mul(x: Scalar, y: Quaternion[Scalar]) -> Quaternion[Scalar]:
1745
+ def mul(a: Scalar, b: Quaternion[Scalar]) -> Quaternion[Scalar]:
1975
1746
  """ """
1976
1747
  ...
1977
1748
 
1978
1749
 
1979
1750
  @over
1980
- def mul(x: Quaternion[Scalar], y: Quaternion[Scalar]) -> Quaternion[Scalar]:
1751
+ def mul(a: Quaternion[Scalar], b: Quaternion[Scalar]) -> Quaternion[Scalar]:
1981
1752
  """ """
1982
1753
  ...
1983
1754
 
1984
1755
 
1985
1756
  @over
1986
- def mul(x: Scalar, y: Matrix[Any, Any, Scalar]) -> Matrix[Any, Any, Scalar]:
1757
+ def mul(a: Scalar, b: Matrix[Any, Any, Scalar]) -> Matrix[Any, Any, Scalar]:
1987
1758
  """ """
1988
1759
  ...
1989
1760
 
1990
1761
 
1991
1762
  @over
1992
- def mul(x: Matrix[Any, Any, Scalar], y: Scalar) -> Matrix[Any, Any, Scalar]:
1763
+ def mul(a: Matrix[Any, Any, Scalar], b: Scalar) -> Matrix[Any, Any, Scalar]:
1993
1764
  """ """
1994
1765
  ...
1995
1766
 
1996
1767
 
1997
1768
  @over
1998
- def mul(x: Matrix[Any, Any, Scalar], y: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
1769
+ def mul(a: Matrix[Any, Any, Scalar], b: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
1999
1770
  """ """
2000
1771
  ...
2001
1772
 
2002
1773
 
2003
1774
  @over
2004
- def mul(x: Vector[Any, Scalar], y: Matrix[Any, Any, Scalar]) -> Vector[Any, Scalar]:
1775
+ def mul(a: Vector[Any, Scalar], b: Matrix[Any, Any, Scalar]) -> Vector[Any, Scalar]:
2005
1776
  """ """
2006
1777
  ...
2007
1778
 
2008
1779
 
2009
1780
  @over
2010
- def mul(x: Matrix[Any, Any, Scalar], y: Matrix[Any, Any, Scalar]):
1781
+ def mul(a: Matrix[Any, Any, Scalar], b: Matrix[Any, Any, Scalar]):
2011
1782
  """ """
2012
1783
  ...
2013
1784
 
2014
1785
 
2015
1786
  @over
2016
- def mul(x: Transformation[Scalar], y: Transformation[Scalar]) -> Transformation[Scalar]:
1787
+ def mul(a: Transformation[Scalar], b: Transformation[Scalar]) -> Transformation[Scalar]:
2017
1788
  """ """
2018
1789
  ...
2019
1790
 
2020
1791
 
2021
1792
  @over
2022
- def mul(x: Scalar, y: Transformation[Scalar]) -> Transformation[Scalar]:
1793
+ def mul(a: Scalar, b: Transformation[Scalar]) -> Transformation[Scalar]:
2023
1794
  """ """
2024
1795
  ...
2025
1796
 
2026
1797
 
2027
1798
  @over
2028
- def mul(x: Transformation[Scalar], y: Scalar) -> Transformation[Scalar]:
1799
+ def mul(a: Transformation[Scalar], b: Scalar) -> Transformation[Scalar]:
2029
1800
  """ """
2030
1801
  ...
2031
1802
 
2032
1803
 
2033
1804
  @over
2034
- def mod(x: Scalar, y: Scalar) -> Scalar:
1805
+ def mod(a: Scalar, b: Scalar) -> Scalar:
2035
1806
  """ """
2036
1807
  ...
2037
1808
 
2038
1809
 
2039
1810
  @over
2040
- def div(x: Scalar, y: Scalar) -> Scalar:
1811
+ def div(a: Scalar, b: Scalar) -> Scalar:
2041
1812
  """ """
2042
1813
  ...
2043
1814
 
2044
1815
 
2045
1816
  @over
2046
- def div(x: Vector[Any, Scalar], y: Scalar) -> Vector[Any, Scalar]:
1817
+ def div(a: Vector[Any, Scalar], b: Scalar) -> Vector[Any, Scalar]:
2047
1818
  """ """
2048
1819
  ...
2049
1820
 
2050
1821
 
2051
1822
  @over
2052
- def div(x: Scalar, y: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
1823
+ def div(a: Scalar, b: Vector[Any, Scalar]) -> Vector[Any, Scalar]:
2053
1824
  """ """
2054
1825
  ...
2055
1826
 
2056
1827
 
2057
1828
  @over
2058
- def div(x: Matrix[Any, Any, Scalar], y: Scalar) -> Matrix[Any, Any, Scalar]:
1829
+ def div(a: Matrix[Any, Any, Scalar], b: Scalar) -> Matrix[Any, Any, Scalar]:
2059
1830
  """ """
2060
1831
  ...
2061
1832
 
2062
1833
 
2063
1834
  @over
2064
- def div(x: Scalar, y: Matrix[Any, Any, Scalar]) -> Matrix[Any, Any, Scalar]:
1835
+ def div(a: Scalar, b: Matrix[Any, Any, Scalar]) -> Matrix[Any, Any, Scalar]:
2065
1836
  """ """
2066
1837
  ...
2067
1838
 
2068
1839
 
2069
1840
  @over
2070
- def div(x: Quaternion[Scalar], y: Scalar) -> Quaternion[Scalar]:
1841
+ def div(a: Quaternion[Scalar], b: Scalar) -> Quaternion[Scalar]:
2071
1842
  """ """
2072
1843
  ...
2073
1844
 
2074
1845
 
2075
1846
  @over
2076
- def div(x: Scalar, y: Quaternion[Scalar]) -> Quaternion[Scalar]:
1847
+ def div(a: Scalar, b: Quaternion[Scalar]) -> Quaternion[Scalar]:
2077
1848
  """ """
2078
1849
  ...
2079
1850
 
2080
1851
 
2081
1852
  @over
2082
- def floordiv(x: Scalar, y: Scalar) -> Scalar:
1853
+ def floordiv(a: Scalar, b: Scalar) -> Scalar:
2083
1854
  """ """
2084
1855
  ...
2085
1856
 
@@ -2133,55 +1904,55 @@ def neg(x: Matrix[Any, Any, Scalar]) -> Matrix[Any, Any, Scalar]:
2133
1904
 
2134
1905
 
2135
1906
  @over
2136
- def unot(b: bool) -> bool:
1907
+ def unot(a: bool) -> bool:
2137
1908
  """ """
2138
1909
  ...
2139
1910
 
2140
1911
 
2141
1912
  @over
2142
- def unot(b: int8) -> bool:
1913
+ def unot(a: int8) -> bool:
2143
1914
  """ """
2144
1915
  ...
2145
1916
 
2146
1917
 
2147
1918
  @over
2148
- def unot(b: uint8) -> bool:
1919
+ def unot(a: uint8) -> bool:
2149
1920
  """ """
2150
1921
  ...
2151
1922
 
2152
1923
 
2153
1924
  @over
2154
- def unot(b: int16) -> bool:
1925
+ def unot(a: int16) -> bool:
2155
1926
  """ """
2156
1927
  ...
2157
1928
 
2158
1929
 
2159
1930
  @over
2160
- def unot(b: uint16) -> bool:
1931
+ def unot(a: uint16) -> bool:
2161
1932
  """ """
2162
1933
  ...
2163
1934
 
2164
1935
 
2165
1936
  @over
2166
- def unot(b: int32) -> bool:
1937
+ def unot(a: int32) -> bool:
2167
1938
  """ """
2168
1939
  ...
2169
1940
 
2170
1941
 
2171
1942
  @over
2172
- def unot(b: uint32) -> bool:
1943
+ def unot(a: uint32) -> bool:
2173
1944
  """ """
2174
1945
  ...
2175
1946
 
2176
1947
 
2177
1948
  @over
2178
- def unot(b: int64) -> bool:
1949
+ def unot(a: int64) -> bool:
2179
1950
  """ """
2180
1951
  ...
2181
1952
 
2182
1953
 
2183
1954
  @over
2184
- def unot(b: uint64) -> bool:
1955
+ def unot(a: uint64) -> bool:
2185
1956
  """ """
2186
1957
  ...
2187
1958