warp-lang 1.9.0__py3-none-win_amd64.whl → 1.10.0rc2__py3-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of warp-lang might be problematic. Click here for more details.
- warp/__init__.py +301 -287
- warp/__init__.pyi +2220 -313
- warp/_src/__init__.py +14 -0
- warp/_src/autograd.py +1075 -0
- warp/_src/build.py +618 -0
- warp/_src/build_dll.py +640 -0
- warp/{builtins.py → _src/builtins.py} +1497 -226
- warp/_src/codegen.py +4359 -0
- warp/{config.py → _src/config.py} +178 -169
- warp/_src/constants.py +57 -0
- warp/_src/context.py +8294 -0
- warp/_src/dlpack.py +462 -0
- warp/_src/fabric.py +355 -0
- warp/_src/fem/__init__.py +14 -0
- warp/_src/fem/adaptivity.py +508 -0
- warp/_src/fem/cache.py +687 -0
- warp/_src/fem/dirichlet.py +188 -0
- warp/{fem → _src/fem}/domain.py +40 -30
- warp/_src/fem/field/__init__.py +131 -0
- warp/_src/fem/field/field.py +701 -0
- warp/{fem → _src/fem}/field/nodal_field.py +30 -15
- warp/{fem → _src/fem}/field/restriction.py +1 -1
- warp/{fem → _src/fem}/field/virtual.py +53 -27
- warp/_src/fem/geometry/__init__.py +32 -0
- warp/{fem → _src/fem}/geometry/adaptive_nanogrid.py +77 -163
- warp/_src/fem/geometry/closest_point.py +97 -0
- warp/{fem → _src/fem}/geometry/deformed_geometry.py +14 -22
- warp/{fem → _src/fem}/geometry/element.py +32 -10
- warp/{fem → _src/fem}/geometry/geometry.py +48 -20
- warp/{fem → _src/fem}/geometry/grid_2d.py +12 -23
- warp/{fem → _src/fem}/geometry/grid_3d.py +12 -23
- warp/{fem → _src/fem}/geometry/hexmesh.py +40 -63
- warp/{fem → _src/fem}/geometry/nanogrid.py +255 -248
- warp/{fem → _src/fem}/geometry/partition.py +121 -63
- warp/{fem → _src/fem}/geometry/quadmesh.py +26 -45
- warp/{fem → _src/fem}/geometry/tetmesh.py +40 -63
- warp/{fem → _src/fem}/geometry/trimesh.py +26 -45
- warp/{fem → _src/fem}/integrate.py +164 -158
- warp/_src/fem/linalg.py +383 -0
- warp/_src/fem/operator.py +396 -0
- warp/_src/fem/polynomial.py +229 -0
- warp/{fem → _src/fem}/quadrature/pic_quadrature.py +15 -20
- warp/{fem → _src/fem}/quadrature/quadrature.py +95 -47
- warp/_src/fem/space/__init__.py +248 -0
- warp/{fem → _src/fem}/space/basis_function_space.py +20 -11
- warp/_src/fem/space/basis_space.py +679 -0
- warp/{fem → _src/fem}/space/dof_mapper.py +3 -3
- warp/{fem → _src/fem}/space/function_space.py +14 -13
- warp/{fem → _src/fem}/space/grid_2d_function_space.py +4 -7
- warp/{fem → _src/fem}/space/grid_3d_function_space.py +4 -4
- warp/{fem → _src/fem}/space/hexmesh_function_space.py +4 -10
- warp/{fem → _src/fem}/space/nanogrid_function_space.py +3 -9
- warp/{fem → _src/fem}/space/partition.py +117 -60
- warp/{fem → _src/fem}/space/quadmesh_function_space.py +4 -10
- warp/{fem → _src/fem}/space/restriction.py +66 -33
- warp/_src/fem/space/shape/__init__.py +152 -0
- warp/{fem → _src/fem}/space/shape/cube_shape_function.py +9 -9
- warp/{fem → _src/fem}/space/shape/shape_function.py +8 -9
- warp/{fem → _src/fem}/space/shape/square_shape_function.py +6 -6
- warp/{fem → _src/fem}/space/shape/tet_shape_function.py +3 -3
- warp/{fem → _src/fem}/space/shape/triangle_shape_function.py +3 -3
- warp/{fem → _src/fem}/space/tetmesh_function_space.py +3 -9
- warp/_src/fem/space/topology.py +459 -0
- warp/{fem → _src/fem}/space/trimesh_function_space.py +3 -9
- warp/_src/fem/types.py +112 -0
- warp/_src/fem/utils.py +486 -0
- warp/_src/jax.py +186 -0
- warp/_src/jax_experimental/__init__.py +14 -0
- warp/_src/jax_experimental/custom_call.py +387 -0
- warp/_src/jax_experimental/ffi.py +1284 -0
- warp/_src/jax_experimental/xla_ffi.py +656 -0
- warp/_src/marching_cubes.py +708 -0
- warp/_src/math.py +414 -0
- warp/_src/optim/__init__.py +14 -0
- warp/_src/optim/adam.py +163 -0
- warp/_src/optim/linear.py +1606 -0
- warp/_src/optim/sgd.py +112 -0
- warp/_src/paddle.py +406 -0
- warp/_src/render/__init__.py +14 -0
- warp/_src/render/imgui_manager.py +289 -0
- warp/_src/render/render_opengl.py +3636 -0
- warp/_src/render/render_usd.py +937 -0
- warp/_src/render/utils.py +160 -0
- warp/_src/sparse.py +2716 -0
- warp/_src/tape.py +1206 -0
- warp/{thirdparty → _src/thirdparty}/unittest_parallel.py +9 -2
- warp/_src/torch.py +391 -0
- warp/_src/types.py +5870 -0
- warp/_src/utils.py +1693 -0
- warp/autograd.py +12 -1054
- warp/bin/warp-clang.dll +0 -0
- warp/bin/warp.dll +0 -0
- warp/build.py +8 -588
- warp/build_dll.py +6 -471
- warp/codegen.py +6 -4246
- warp/constants.py +6 -39
- warp/context.py +12 -7851
- warp/dlpack.py +6 -444
- warp/examples/distributed/example_jacobi_mpi.py +4 -5
- warp/examples/fem/example_adaptive_grid.py +1 -1
- warp/examples/fem/example_apic_fluid.py +1 -1
- warp/examples/fem/example_burgers.py +8 -8
- warp/examples/fem/example_diffusion.py +1 -1
- warp/examples/fem/example_distortion_energy.py +1 -1
- warp/examples/fem/example_mixed_elasticity.py +2 -2
- warp/examples/fem/example_navier_stokes.py +1 -1
- warp/examples/fem/example_nonconforming_contact.py +7 -7
- warp/examples/fem/example_stokes.py +1 -1
- warp/examples/fem/example_stokes_transfer.py +1 -1
- warp/examples/fem/utils.py +2 -2
- warp/examples/interop/example_jax_callable.py +1 -1
- warp/examples/interop/example_jax_ffi_callback.py +1 -1
- warp/examples/interop/example_jax_kernel.py +3 -2
- warp/examples/tile/example_tile_mcgp.py +191 -0
- warp/fabric.py +6 -337
- warp/fem/__init__.py +159 -97
- warp/fem/adaptivity.py +7 -489
- warp/fem/cache.py +9 -648
- warp/fem/dirichlet.py +6 -184
- warp/fem/field/__init__.py +8 -109
- warp/fem/field/field.py +7 -652
- warp/fem/geometry/__init__.py +7 -18
- warp/fem/geometry/closest_point.py +11 -77
- warp/fem/linalg.py +18 -366
- warp/fem/operator.py +11 -369
- warp/fem/polynomial.py +9 -209
- warp/fem/space/__init__.py +5 -211
- warp/fem/space/basis_space.py +6 -662
- warp/fem/space/shape/__init__.py +41 -118
- warp/fem/space/topology.py +6 -437
- warp/fem/types.py +6 -81
- warp/fem/utils.py +11 -444
- warp/jax.py +8 -165
- warp/jax_experimental/__init__.py +14 -1
- warp/jax_experimental/custom_call.py +8 -342
- warp/jax_experimental/ffi.py +17 -853
- warp/jax_experimental/xla_ffi.py +5 -596
- warp/marching_cubes.py +5 -689
- warp/math.py +16 -393
- warp/native/array.h +385 -37
- warp/native/builtin.h +316 -39
- warp/native/bvh.cpp +43 -9
- warp/native/bvh.cu +62 -27
- warp/native/bvh.h +310 -309
- warp/native/clang/clang.cpp +102 -97
- warp/native/coloring.cpp +0 -1
- warp/native/crt.h +208 -0
- warp/native/exports.h +156 -0
- warp/native/hashgrid.cu +2 -0
- warp/native/intersect.h +24 -1
- warp/native/intersect_tri.h +44 -35
- warp/native/mat.h +1456 -276
- warp/native/mesh.cpp +4 -4
- warp/native/mesh.cu +4 -2
- warp/native/mesh.h +176 -61
- warp/native/quat.h +0 -52
- warp/native/scan.cu +2 -0
- warp/native/sort.cu +22 -13
- warp/native/sort.h +2 -0
- warp/native/sparse.cu +7 -3
- warp/native/spatial.h +12 -0
- warp/native/tile.h +837 -70
- warp/native/tile_radix_sort.h +1 -1
- warp/native/tile_reduce.h +394 -46
- warp/native/tile_scan.h +4 -4
- warp/native/vec.h +469 -53
- warp/native/version.h +23 -0
- warp/native/volume.cpp +1 -1
- warp/native/volume.cu +1 -0
- warp/native/volume.h +1 -1
- warp/native/volume_builder.cu +2 -0
- warp/native/warp.cpp +60 -32
- warp/native/warp.cu +313 -201
- warp/native/warp.h +14 -11
- warp/optim/__init__.py +6 -3
- warp/optim/adam.py +6 -145
- warp/optim/linear.py +14 -1585
- warp/optim/sgd.py +6 -94
- warp/paddle.py +6 -388
- warp/render/__init__.py +8 -4
- warp/render/imgui_manager.py +7 -267
- warp/render/render_opengl.py +6 -3616
- warp/render/render_usd.py +6 -918
- warp/render/utils.py +6 -142
- warp/sparse.py +37 -2563
- warp/tape.py +6 -1188
- warp/tests/__main__.py +1 -1
- warp/tests/cuda/test_async.py +4 -4
- warp/tests/cuda/test_conditional_captures.py +1 -1
- warp/tests/cuda/test_multigpu.py +1 -1
- warp/tests/cuda/test_streams.py +58 -1
- warp/tests/geometry/test_bvh.py +157 -22
- warp/tests/geometry/test_hash_grid.py +38 -0
- warp/tests/geometry/test_marching_cubes.py +0 -1
- warp/tests/geometry/test_mesh.py +5 -3
- warp/tests/geometry/test_mesh_query_aabb.py +5 -12
- warp/tests/geometry/test_mesh_query_point.py +5 -2
- warp/tests/geometry/test_mesh_query_ray.py +15 -3
- warp/tests/geometry/test_volume_write.py +5 -5
- warp/tests/interop/test_dlpack.py +14 -14
- warp/tests/interop/test_jax.py +1382 -79
- warp/tests/interop/test_paddle.py +1 -1
- warp/tests/test_adam.py +0 -1
- warp/tests/test_arithmetic.py +9 -9
- warp/tests/test_array.py +529 -100
- warp/tests/test_array_reduce.py +3 -3
- warp/tests/test_atomic.py +12 -8
- warp/tests/test_atomic_bitwise.py +209 -0
- warp/tests/test_atomic_cas.py +4 -4
- warp/tests/test_bool.py +2 -2
- warp/tests/test_builtins_resolution.py +5 -571
- warp/tests/test_codegen.py +34 -15
- warp/tests/test_conditional.py +1 -1
- warp/tests/test_context.py +6 -6
- warp/tests/test_copy.py +242 -161
- warp/tests/test_ctypes.py +3 -3
- warp/tests/test_devices.py +24 -2
- warp/tests/test_examples.py +16 -84
- warp/tests/test_fabricarray.py +35 -35
- warp/tests/test_fast_math.py +0 -2
- warp/tests/test_fem.py +60 -14
- warp/tests/test_fixedarray.py +3 -3
- warp/tests/test_func.py +8 -5
- warp/tests/test_generics.py +1 -1
- warp/tests/test_indexedarray.py +24 -24
- warp/tests/test_intersect.py +39 -9
- warp/tests/test_large.py +1 -1
- warp/tests/test_lerp.py +3 -1
- warp/tests/test_linear_solvers.py +1 -1
- warp/tests/test_map.py +49 -4
- warp/tests/test_mat.py +52 -62
- warp/tests/test_mat_constructors.py +4 -5
- warp/tests/test_mat_lite.py +1 -1
- warp/tests/test_mat_scalar_ops.py +121 -121
- warp/tests/test_math.py +34 -0
- warp/tests/test_module_aot.py +4 -4
- warp/tests/test_modules_lite.py +28 -2
- warp/tests/test_print.py +11 -11
- warp/tests/test_quat.py +93 -58
- warp/tests/test_runlength_encode.py +1 -1
- warp/tests/test_scalar_ops.py +38 -10
- warp/tests/test_smoothstep.py +1 -1
- warp/tests/test_sparse.py +126 -15
- warp/tests/test_spatial.py +105 -87
- warp/tests/test_special_values.py +6 -6
- warp/tests/test_static.py +7 -7
- warp/tests/test_struct.py +13 -2
- warp/tests/test_triangle_closest_point.py +48 -1
- warp/tests/test_tuple.py +96 -0
- warp/tests/test_types.py +82 -9
- warp/tests/test_utils.py +52 -52
- warp/tests/test_vec.py +29 -29
- warp/tests/test_vec_constructors.py +5 -5
- warp/tests/test_vec_scalar_ops.py +97 -97
- warp/tests/test_version.py +75 -0
- warp/tests/tile/test_tile.py +239 -0
- warp/tests/tile/test_tile_atomic_bitwise.py +403 -0
- warp/tests/tile/test_tile_cholesky.py +7 -4
- warp/tests/tile/test_tile_load.py +26 -2
- warp/tests/tile/test_tile_mathdx.py +3 -3
- warp/tests/tile/test_tile_matmul.py +1 -1
- warp/tests/tile/test_tile_mlp.py +2 -4
- warp/tests/tile/test_tile_reduce.py +214 -13
- warp/tests/unittest_suites.py +6 -14
- warp/tests/unittest_utils.py +10 -9
- warp/tests/walkthrough_debug.py +3 -1
- warp/torch.py +6 -373
- warp/types.py +29 -5750
- warp/utils.py +10 -1659
- {warp_lang-1.9.0.dist-info → warp_lang-1.10.0rc2.dist-info}/METADATA +47 -103
- warp_lang-1.10.0rc2.dist-info/RECORD +468 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/Gaia-LICENSE.txt +6 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/appdirs-LICENSE.txt +22 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/asset_pixel_jpg-LICENSE.txt +3 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/cuda-LICENSE.txt +1582 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/dlpack-LICENSE.txt +201 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/fp16-LICENSE.txt +28 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/libmathdx-LICENSE.txt +220 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/llvm-LICENSE.txt +279 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/moller-LICENSE.txt +16 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/nanovdb-LICENSE.txt +2 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/nvrtc-LICENSE.txt +1592 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/svd-LICENSE.txt +23 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/unittest_parallel-LICENSE.txt +21 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/usd-LICENSE.txt +213 -0
- warp_lang-1.10.0rc2.dist-info/licenses/licenses/windingnumber-LICENSE.txt +21 -0
- warp/examples/assets/cartpole.urdf +0 -110
- warp/examples/assets/crazyflie.usd +0 -0
- warp/examples/assets/nv_ant.xml +0 -92
- warp/examples/assets/nv_humanoid.xml +0 -183
- warp/examples/assets/quadruped.urdf +0 -268
- warp/examples/optim/example_bounce.py +0 -266
- warp/examples/optim/example_cloth_throw.py +0 -228
- warp/examples/optim/example_drone.py +0 -870
- warp/examples/optim/example_inverse_kinematics.py +0 -182
- warp/examples/optim/example_inverse_kinematics_torch.py +0 -191
- warp/examples/optim/example_softbody_properties.py +0 -400
- warp/examples/optim/example_spring_cage.py +0 -245
- warp/examples/optim/example_trajectory.py +0 -227
- warp/examples/sim/example_cartpole.py +0 -143
- warp/examples/sim/example_cloth.py +0 -225
- warp/examples/sim/example_cloth_self_contact.py +0 -316
- warp/examples/sim/example_granular.py +0 -130
- warp/examples/sim/example_granular_collision_sdf.py +0 -202
- warp/examples/sim/example_jacobian_ik.py +0 -244
- warp/examples/sim/example_particle_chain.py +0 -124
- warp/examples/sim/example_quadruped.py +0 -203
- warp/examples/sim/example_rigid_chain.py +0 -203
- warp/examples/sim/example_rigid_contact.py +0 -195
- warp/examples/sim/example_rigid_force.py +0 -133
- warp/examples/sim/example_rigid_gyroscopic.py +0 -115
- warp/examples/sim/example_rigid_soft_contact.py +0 -140
- warp/examples/sim/example_soft_body.py +0 -196
- warp/examples/tile/example_tile_walker.py +0 -327
- warp/sim/__init__.py +0 -74
- warp/sim/articulation.py +0 -793
- warp/sim/collide.py +0 -2570
- warp/sim/graph_coloring.py +0 -307
- warp/sim/import_mjcf.py +0 -791
- warp/sim/import_snu.py +0 -227
- warp/sim/import_urdf.py +0 -579
- warp/sim/import_usd.py +0 -898
- warp/sim/inertia.py +0 -357
- warp/sim/integrator.py +0 -245
- warp/sim/integrator_euler.py +0 -2000
- warp/sim/integrator_featherstone.py +0 -2101
- warp/sim/integrator_vbd.py +0 -2487
- warp/sim/integrator_xpbd.py +0 -3295
- warp/sim/model.py +0 -4821
- warp/sim/particles.py +0 -121
- warp/sim/render.py +0 -431
- warp/sim/utils.py +0 -431
- warp/tests/sim/disabled_kinematics.py +0 -244
- warp/tests/sim/test_cloth.py +0 -863
- warp/tests/sim/test_collision.py +0 -743
- warp/tests/sim/test_coloring.py +0 -347
- warp/tests/sim/test_inertia.py +0 -161
- warp/tests/sim/test_model.py +0 -226
- warp/tests/sim/test_sim_grad.py +0 -287
- warp/tests/sim/test_sim_grad_bounce_linear.py +0 -212
- warp/tests/sim/test_sim_kinematics.py +0 -98
- warp/thirdparty/__init__.py +0 -0
- warp_lang-1.9.0.dist-info/RECORD +0 -456
- /warp/{fem → _src/fem}/quadrature/__init__.py +0 -0
- /warp/{tests/sim → _src/thirdparty}/__init__.py +0 -0
- /warp/{thirdparty → _src/thirdparty}/appdirs.py +0 -0
- /warp/{thirdparty → _src/thirdparty}/dlpack.py +0 -0
- {warp_lang-1.9.0.dist-info → warp_lang-1.10.0rc2.dist-info}/WHEEL +0 -0
- {warp_lang-1.9.0.dist-info → warp_lang-1.10.0rc2.dist-info}/licenses/LICENSE.md +0 -0
- {warp_lang-1.9.0.dist-info → warp_lang-1.10.0rc2.dist-info}/top_level.txt +0 -0
warp/native/exports.h
CHANGED
|
@@ -369,6 +369,18 @@ WP_API void wp_builtin_exp_float64(float64 x, float64* ret) { *ret = wp::exp(x);
|
|
|
369
369
|
WP_API void wp_builtin_pow_float16_float16(float16 x, float16 y, float16* ret) { *ret = wp::pow(x, y); }
|
|
370
370
|
WP_API void wp_builtin_pow_float32_float32(float32 x, float32 y, float32* ret) { *ret = wp::pow(x, y); }
|
|
371
371
|
WP_API void wp_builtin_pow_float64_float64(float64 x, float64 y, float64* ret) { *ret = wp::pow(x, y); }
|
|
372
|
+
WP_API void wp_builtin_erf_float16(float16 x, float16* ret) { *ret = wp::erf(x); }
|
|
373
|
+
WP_API void wp_builtin_erf_float32(float32 x, float32* ret) { *ret = wp::erf(x); }
|
|
374
|
+
WP_API void wp_builtin_erf_float64(float64 x, float64* ret) { *ret = wp::erf(x); }
|
|
375
|
+
WP_API void wp_builtin_erfc_float16(float16 x, float16* ret) { *ret = wp::erfc(x); }
|
|
376
|
+
WP_API void wp_builtin_erfc_float32(float32 x, float32* ret) { *ret = wp::erfc(x); }
|
|
377
|
+
WP_API void wp_builtin_erfc_float64(float64 x, float64* ret) { *ret = wp::erfc(x); }
|
|
378
|
+
WP_API void wp_builtin_erfinv_float16(float16 x, float16* ret) { *ret = wp::erfinv(x); }
|
|
379
|
+
WP_API void wp_builtin_erfinv_float32(float32 x, float32* ret) { *ret = wp::erfinv(x); }
|
|
380
|
+
WP_API void wp_builtin_erfinv_float64(float64 x, float64* ret) { *ret = wp::erfinv(x); }
|
|
381
|
+
WP_API void wp_builtin_erfcinv_float16(float16 x, float16* ret) { *ret = wp::erfcinv(x); }
|
|
382
|
+
WP_API void wp_builtin_erfcinv_float32(float32 x, float32* ret) { *ret = wp::erfcinv(x); }
|
|
383
|
+
WP_API void wp_builtin_erfcinv_float64(float64 x, float64* ret) { *ret = wp::erfcinv(x); }
|
|
372
384
|
WP_API void wp_builtin_round_float16(float16 x, float16* ret) { *ret = wp::round(x); }
|
|
373
385
|
WP_API void wp_builtin_round_float32(float32 x, float32* ret) { *ret = wp::round(x); }
|
|
374
386
|
WP_API void wp_builtin_round_float64(float64 x, float64* ret) { *ret = wp::round(x); }
|
|
@@ -1356,6 +1368,30 @@ WP_API void wp_builtin_bit_and_uint16_uint16(uint16 a, uint16 b, uint16* ret) {
|
|
|
1356
1368
|
WP_API void wp_builtin_bit_and_uint32_uint32(uint32 a, uint32 b, uint32* ret) { *ret = wp::bit_and(a, b); }
|
|
1357
1369
|
WP_API void wp_builtin_bit_and_uint64_uint64(uint64 a, uint64 b, uint64* ret) { *ret = wp::bit_and(a, b); }
|
|
1358
1370
|
WP_API void wp_builtin_bit_and_uint8_uint8(uint8 a, uint8 b, uint8* ret) { *ret = wp::bit_and(a, b); }
|
|
1371
|
+
WP_API void wp_builtin_bit_and_vec2s_vec2s(vec2s& a, vec2s& b, vec2s* ret) { *ret = wp::bit_and(a, b); }
|
|
1372
|
+
WP_API void wp_builtin_bit_and_vec3s_vec3s(vec3s& a, vec3s& b, vec3s* ret) { *ret = wp::bit_and(a, b); }
|
|
1373
|
+
WP_API void wp_builtin_bit_and_vec4s_vec4s(vec4s& a, vec4s& b, vec4s* ret) { *ret = wp::bit_and(a, b); }
|
|
1374
|
+
WP_API void wp_builtin_bit_and_vec2i_vec2i(vec2i& a, vec2i& b, vec2i* ret) { *ret = wp::bit_and(a, b); }
|
|
1375
|
+
WP_API void wp_builtin_bit_and_vec3i_vec3i(vec3i& a, vec3i& b, vec3i* ret) { *ret = wp::bit_and(a, b); }
|
|
1376
|
+
WP_API void wp_builtin_bit_and_vec4i_vec4i(vec4i& a, vec4i& b, vec4i* ret) { *ret = wp::bit_and(a, b); }
|
|
1377
|
+
WP_API void wp_builtin_bit_and_vec2l_vec2l(vec2l& a, vec2l& b, vec2l* ret) { *ret = wp::bit_and(a, b); }
|
|
1378
|
+
WP_API void wp_builtin_bit_and_vec3l_vec3l(vec3l& a, vec3l& b, vec3l* ret) { *ret = wp::bit_and(a, b); }
|
|
1379
|
+
WP_API void wp_builtin_bit_and_vec4l_vec4l(vec4l& a, vec4l& b, vec4l* ret) { *ret = wp::bit_and(a, b); }
|
|
1380
|
+
WP_API void wp_builtin_bit_and_vec2b_vec2b(vec2b& a, vec2b& b, vec2b* ret) { *ret = wp::bit_and(a, b); }
|
|
1381
|
+
WP_API void wp_builtin_bit_and_vec3b_vec3b(vec3b& a, vec3b& b, vec3b* ret) { *ret = wp::bit_and(a, b); }
|
|
1382
|
+
WP_API void wp_builtin_bit_and_vec4b_vec4b(vec4b& a, vec4b& b, vec4b* ret) { *ret = wp::bit_and(a, b); }
|
|
1383
|
+
WP_API void wp_builtin_bit_and_vec2us_vec2us(vec2us& a, vec2us& b, vec2us* ret) { *ret = wp::bit_and(a, b); }
|
|
1384
|
+
WP_API void wp_builtin_bit_and_vec3us_vec3us(vec3us& a, vec3us& b, vec3us* ret) { *ret = wp::bit_and(a, b); }
|
|
1385
|
+
WP_API void wp_builtin_bit_and_vec4us_vec4us(vec4us& a, vec4us& b, vec4us* ret) { *ret = wp::bit_and(a, b); }
|
|
1386
|
+
WP_API void wp_builtin_bit_and_vec2ui_vec2ui(vec2ui& a, vec2ui& b, vec2ui* ret) { *ret = wp::bit_and(a, b); }
|
|
1387
|
+
WP_API void wp_builtin_bit_and_vec3ui_vec3ui(vec3ui& a, vec3ui& b, vec3ui* ret) { *ret = wp::bit_and(a, b); }
|
|
1388
|
+
WP_API void wp_builtin_bit_and_vec4ui_vec4ui(vec4ui& a, vec4ui& b, vec4ui* ret) { *ret = wp::bit_and(a, b); }
|
|
1389
|
+
WP_API void wp_builtin_bit_and_vec2ul_vec2ul(vec2ul& a, vec2ul& b, vec2ul* ret) { *ret = wp::bit_and(a, b); }
|
|
1390
|
+
WP_API void wp_builtin_bit_and_vec3ul_vec3ul(vec3ul& a, vec3ul& b, vec3ul* ret) { *ret = wp::bit_and(a, b); }
|
|
1391
|
+
WP_API void wp_builtin_bit_and_vec4ul_vec4ul(vec4ul& a, vec4ul& b, vec4ul* ret) { *ret = wp::bit_and(a, b); }
|
|
1392
|
+
WP_API void wp_builtin_bit_and_vec2ub_vec2ub(vec2ub& a, vec2ub& b, vec2ub* ret) { *ret = wp::bit_and(a, b); }
|
|
1393
|
+
WP_API void wp_builtin_bit_and_vec3ub_vec3ub(vec3ub& a, vec3ub& b, vec3ub* ret) { *ret = wp::bit_and(a, b); }
|
|
1394
|
+
WP_API void wp_builtin_bit_and_vec4ub_vec4ub(vec4ub& a, vec4ub& b, vec4ub* ret) { *ret = wp::bit_and(a, b); }
|
|
1359
1395
|
WP_API void wp_builtin_bit_or_int16_int16(int16 a, int16 b, int16* ret) { *ret = wp::bit_or(a, b); }
|
|
1360
1396
|
WP_API void wp_builtin_bit_or_int32_int32(int32 a, int32 b, int32* ret) { *ret = wp::bit_or(a, b); }
|
|
1361
1397
|
WP_API void wp_builtin_bit_or_int64_int64(int64 a, int64 b, int64* ret) { *ret = wp::bit_or(a, b); }
|
|
@@ -1364,6 +1400,30 @@ WP_API void wp_builtin_bit_or_uint16_uint16(uint16 a, uint16 b, uint16* ret) { *
|
|
|
1364
1400
|
WP_API void wp_builtin_bit_or_uint32_uint32(uint32 a, uint32 b, uint32* ret) { *ret = wp::bit_or(a, b); }
|
|
1365
1401
|
WP_API void wp_builtin_bit_or_uint64_uint64(uint64 a, uint64 b, uint64* ret) { *ret = wp::bit_or(a, b); }
|
|
1366
1402
|
WP_API void wp_builtin_bit_or_uint8_uint8(uint8 a, uint8 b, uint8* ret) { *ret = wp::bit_or(a, b); }
|
|
1403
|
+
WP_API void wp_builtin_bit_or_vec2s_vec2s(vec2s& a, vec2s& b, vec2s* ret) { *ret = wp::bit_or(a, b); }
|
|
1404
|
+
WP_API void wp_builtin_bit_or_vec3s_vec3s(vec3s& a, vec3s& b, vec3s* ret) { *ret = wp::bit_or(a, b); }
|
|
1405
|
+
WP_API void wp_builtin_bit_or_vec4s_vec4s(vec4s& a, vec4s& b, vec4s* ret) { *ret = wp::bit_or(a, b); }
|
|
1406
|
+
WP_API void wp_builtin_bit_or_vec2i_vec2i(vec2i& a, vec2i& b, vec2i* ret) { *ret = wp::bit_or(a, b); }
|
|
1407
|
+
WP_API void wp_builtin_bit_or_vec3i_vec3i(vec3i& a, vec3i& b, vec3i* ret) { *ret = wp::bit_or(a, b); }
|
|
1408
|
+
WP_API void wp_builtin_bit_or_vec4i_vec4i(vec4i& a, vec4i& b, vec4i* ret) { *ret = wp::bit_or(a, b); }
|
|
1409
|
+
WP_API void wp_builtin_bit_or_vec2l_vec2l(vec2l& a, vec2l& b, vec2l* ret) { *ret = wp::bit_or(a, b); }
|
|
1410
|
+
WP_API void wp_builtin_bit_or_vec3l_vec3l(vec3l& a, vec3l& b, vec3l* ret) { *ret = wp::bit_or(a, b); }
|
|
1411
|
+
WP_API void wp_builtin_bit_or_vec4l_vec4l(vec4l& a, vec4l& b, vec4l* ret) { *ret = wp::bit_or(a, b); }
|
|
1412
|
+
WP_API void wp_builtin_bit_or_vec2b_vec2b(vec2b& a, vec2b& b, vec2b* ret) { *ret = wp::bit_or(a, b); }
|
|
1413
|
+
WP_API void wp_builtin_bit_or_vec3b_vec3b(vec3b& a, vec3b& b, vec3b* ret) { *ret = wp::bit_or(a, b); }
|
|
1414
|
+
WP_API void wp_builtin_bit_or_vec4b_vec4b(vec4b& a, vec4b& b, vec4b* ret) { *ret = wp::bit_or(a, b); }
|
|
1415
|
+
WP_API void wp_builtin_bit_or_vec2us_vec2us(vec2us& a, vec2us& b, vec2us* ret) { *ret = wp::bit_or(a, b); }
|
|
1416
|
+
WP_API void wp_builtin_bit_or_vec3us_vec3us(vec3us& a, vec3us& b, vec3us* ret) { *ret = wp::bit_or(a, b); }
|
|
1417
|
+
WP_API void wp_builtin_bit_or_vec4us_vec4us(vec4us& a, vec4us& b, vec4us* ret) { *ret = wp::bit_or(a, b); }
|
|
1418
|
+
WP_API void wp_builtin_bit_or_vec2ui_vec2ui(vec2ui& a, vec2ui& b, vec2ui* ret) { *ret = wp::bit_or(a, b); }
|
|
1419
|
+
WP_API void wp_builtin_bit_or_vec3ui_vec3ui(vec3ui& a, vec3ui& b, vec3ui* ret) { *ret = wp::bit_or(a, b); }
|
|
1420
|
+
WP_API void wp_builtin_bit_or_vec4ui_vec4ui(vec4ui& a, vec4ui& b, vec4ui* ret) { *ret = wp::bit_or(a, b); }
|
|
1421
|
+
WP_API void wp_builtin_bit_or_vec2ul_vec2ul(vec2ul& a, vec2ul& b, vec2ul* ret) { *ret = wp::bit_or(a, b); }
|
|
1422
|
+
WP_API void wp_builtin_bit_or_vec3ul_vec3ul(vec3ul& a, vec3ul& b, vec3ul* ret) { *ret = wp::bit_or(a, b); }
|
|
1423
|
+
WP_API void wp_builtin_bit_or_vec4ul_vec4ul(vec4ul& a, vec4ul& b, vec4ul* ret) { *ret = wp::bit_or(a, b); }
|
|
1424
|
+
WP_API void wp_builtin_bit_or_vec2ub_vec2ub(vec2ub& a, vec2ub& b, vec2ub* ret) { *ret = wp::bit_or(a, b); }
|
|
1425
|
+
WP_API void wp_builtin_bit_or_vec3ub_vec3ub(vec3ub& a, vec3ub& b, vec3ub* ret) { *ret = wp::bit_or(a, b); }
|
|
1426
|
+
WP_API void wp_builtin_bit_or_vec4ub_vec4ub(vec4ub& a, vec4ub& b, vec4ub* ret) { *ret = wp::bit_or(a, b); }
|
|
1367
1427
|
WP_API void wp_builtin_bit_xor_int16_int16(int16 a, int16 b, int16* ret) { *ret = wp::bit_xor(a, b); }
|
|
1368
1428
|
WP_API void wp_builtin_bit_xor_int32_int32(int32 a, int32 b, int32* ret) { *ret = wp::bit_xor(a, b); }
|
|
1369
1429
|
WP_API void wp_builtin_bit_xor_int64_int64(int64 a, int64 b, int64* ret) { *ret = wp::bit_xor(a, b); }
|
|
@@ -1372,6 +1432,30 @@ WP_API void wp_builtin_bit_xor_uint16_uint16(uint16 a, uint16 b, uint16* ret) {
|
|
|
1372
1432
|
WP_API void wp_builtin_bit_xor_uint32_uint32(uint32 a, uint32 b, uint32* ret) { *ret = wp::bit_xor(a, b); }
|
|
1373
1433
|
WP_API void wp_builtin_bit_xor_uint64_uint64(uint64 a, uint64 b, uint64* ret) { *ret = wp::bit_xor(a, b); }
|
|
1374
1434
|
WP_API void wp_builtin_bit_xor_uint8_uint8(uint8 a, uint8 b, uint8* ret) { *ret = wp::bit_xor(a, b); }
|
|
1435
|
+
WP_API void wp_builtin_bit_xor_vec2s_vec2s(vec2s& a, vec2s& b, vec2s* ret) { *ret = wp::bit_xor(a, b); }
|
|
1436
|
+
WP_API void wp_builtin_bit_xor_vec3s_vec3s(vec3s& a, vec3s& b, vec3s* ret) { *ret = wp::bit_xor(a, b); }
|
|
1437
|
+
WP_API void wp_builtin_bit_xor_vec4s_vec4s(vec4s& a, vec4s& b, vec4s* ret) { *ret = wp::bit_xor(a, b); }
|
|
1438
|
+
WP_API void wp_builtin_bit_xor_vec2i_vec2i(vec2i& a, vec2i& b, vec2i* ret) { *ret = wp::bit_xor(a, b); }
|
|
1439
|
+
WP_API void wp_builtin_bit_xor_vec3i_vec3i(vec3i& a, vec3i& b, vec3i* ret) { *ret = wp::bit_xor(a, b); }
|
|
1440
|
+
WP_API void wp_builtin_bit_xor_vec4i_vec4i(vec4i& a, vec4i& b, vec4i* ret) { *ret = wp::bit_xor(a, b); }
|
|
1441
|
+
WP_API void wp_builtin_bit_xor_vec2l_vec2l(vec2l& a, vec2l& b, vec2l* ret) { *ret = wp::bit_xor(a, b); }
|
|
1442
|
+
WP_API void wp_builtin_bit_xor_vec3l_vec3l(vec3l& a, vec3l& b, vec3l* ret) { *ret = wp::bit_xor(a, b); }
|
|
1443
|
+
WP_API void wp_builtin_bit_xor_vec4l_vec4l(vec4l& a, vec4l& b, vec4l* ret) { *ret = wp::bit_xor(a, b); }
|
|
1444
|
+
WP_API void wp_builtin_bit_xor_vec2b_vec2b(vec2b& a, vec2b& b, vec2b* ret) { *ret = wp::bit_xor(a, b); }
|
|
1445
|
+
WP_API void wp_builtin_bit_xor_vec3b_vec3b(vec3b& a, vec3b& b, vec3b* ret) { *ret = wp::bit_xor(a, b); }
|
|
1446
|
+
WP_API void wp_builtin_bit_xor_vec4b_vec4b(vec4b& a, vec4b& b, vec4b* ret) { *ret = wp::bit_xor(a, b); }
|
|
1447
|
+
WP_API void wp_builtin_bit_xor_vec2us_vec2us(vec2us& a, vec2us& b, vec2us* ret) { *ret = wp::bit_xor(a, b); }
|
|
1448
|
+
WP_API void wp_builtin_bit_xor_vec3us_vec3us(vec3us& a, vec3us& b, vec3us* ret) { *ret = wp::bit_xor(a, b); }
|
|
1449
|
+
WP_API void wp_builtin_bit_xor_vec4us_vec4us(vec4us& a, vec4us& b, vec4us* ret) { *ret = wp::bit_xor(a, b); }
|
|
1450
|
+
WP_API void wp_builtin_bit_xor_vec2ui_vec2ui(vec2ui& a, vec2ui& b, vec2ui* ret) { *ret = wp::bit_xor(a, b); }
|
|
1451
|
+
WP_API void wp_builtin_bit_xor_vec3ui_vec3ui(vec3ui& a, vec3ui& b, vec3ui* ret) { *ret = wp::bit_xor(a, b); }
|
|
1452
|
+
WP_API void wp_builtin_bit_xor_vec4ui_vec4ui(vec4ui& a, vec4ui& b, vec4ui* ret) { *ret = wp::bit_xor(a, b); }
|
|
1453
|
+
WP_API void wp_builtin_bit_xor_vec2ul_vec2ul(vec2ul& a, vec2ul& b, vec2ul* ret) { *ret = wp::bit_xor(a, b); }
|
|
1454
|
+
WP_API void wp_builtin_bit_xor_vec3ul_vec3ul(vec3ul& a, vec3ul& b, vec3ul* ret) { *ret = wp::bit_xor(a, b); }
|
|
1455
|
+
WP_API void wp_builtin_bit_xor_vec4ul_vec4ul(vec4ul& a, vec4ul& b, vec4ul* ret) { *ret = wp::bit_xor(a, b); }
|
|
1456
|
+
WP_API void wp_builtin_bit_xor_vec2ub_vec2ub(vec2ub& a, vec2ub& b, vec2ub* ret) { *ret = wp::bit_xor(a, b); }
|
|
1457
|
+
WP_API void wp_builtin_bit_xor_vec3ub_vec3ub(vec3ub& a, vec3ub& b, vec3ub* ret) { *ret = wp::bit_xor(a, b); }
|
|
1458
|
+
WP_API void wp_builtin_bit_xor_vec4ub_vec4ub(vec4ub& a, vec4ub& b, vec4ub* ret) { *ret = wp::bit_xor(a, b); }
|
|
1375
1459
|
WP_API void wp_builtin_lshift_int16_int16(int16 a, int16 b, int16* ret) { *ret = wp::lshift(a, b); }
|
|
1376
1460
|
WP_API void wp_builtin_lshift_int32_int32(int32 a, int32 b, int32* ret) { *ret = wp::lshift(a, b); }
|
|
1377
1461
|
WP_API void wp_builtin_lshift_int64_int64(int64 a, int64 b, int64* ret) { *ret = wp::lshift(a, b); }
|
|
@@ -1380,6 +1464,30 @@ WP_API void wp_builtin_lshift_uint16_uint16(uint16 a, uint16 b, uint16* ret) { *
|
|
|
1380
1464
|
WP_API void wp_builtin_lshift_uint32_uint32(uint32 a, uint32 b, uint32* ret) { *ret = wp::lshift(a, b); }
|
|
1381
1465
|
WP_API void wp_builtin_lshift_uint64_uint64(uint64 a, uint64 b, uint64* ret) { *ret = wp::lshift(a, b); }
|
|
1382
1466
|
WP_API void wp_builtin_lshift_uint8_uint8(uint8 a, uint8 b, uint8* ret) { *ret = wp::lshift(a, b); }
|
|
1467
|
+
WP_API void wp_builtin_lshift_vec2s_vec2s(vec2s& a, vec2s& b, vec2s* ret) { *ret = wp::lshift(a, b); }
|
|
1468
|
+
WP_API void wp_builtin_lshift_vec3s_vec3s(vec3s& a, vec3s& b, vec3s* ret) { *ret = wp::lshift(a, b); }
|
|
1469
|
+
WP_API void wp_builtin_lshift_vec4s_vec4s(vec4s& a, vec4s& b, vec4s* ret) { *ret = wp::lshift(a, b); }
|
|
1470
|
+
WP_API void wp_builtin_lshift_vec2i_vec2i(vec2i& a, vec2i& b, vec2i* ret) { *ret = wp::lshift(a, b); }
|
|
1471
|
+
WP_API void wp_builtin_lshift_vec3i_vec3i(vec3i& a, vec3i& b, vec3i* ret) { *ret = wp::lshift(a, b); }
|
|
1472
|
+
WP_API void wp_builtin_lshift_vec4i_vec4i(vec4i& a, vec4i& b, vec4i* ret) { *ret = wp::lshift(a, b); }
|
|
1473
|
+
WP_API void wp_builtin_lshift_vec2l_vec2l(vec2l& a, vec2l& b, vec2l* ret) { *ret = wp::lshift(a, b); }
|
|
1474
|
+
WP_API void wp_builtin_lshift_vec3l_vec3l(vec3l& a, vec3l& b, vec3l* ret) { *ret = wp::lshift(a, b); }
|
|
1475
|
+
WP_API void wp_builtin_lshift_vec4l_vec4l(vec4l& a, vec4l& b, vec4l* ret) { *ret = wp::lshift(a, b); }
|
|
1476
|
+
WP_API void wp_builtin_lshift_vec2b_vec2b(vec2b& a, vec2b& b, vec2b* ret) { *ret = wp::lshift(a, b); }
|
|
1477
|
+
WP_API void wp_builtin_lshift_vec3b_vec3b(vec3b& a, vec3b& b, vec3b* ret) { *ret = wp::lshift(a, b); }
|
|
1478
|
+
WP_API void wp_builtin_lshift_vec4b_vec4b(vec4b& a, vec4b& b, vec4b* ret) { *ret = wp::lshift(a, b); }
|
|
1479
|
+
WP_API void wp_builtin_lshift_vec2us_vec2us(vec2us& a, vec2us& b, vec2us* ret) { *ret = wp::lshift(a, b); }
|
|
1480
|
+
WP_API void wp_builtin_lshift_vec3us_vec3us(vec3us& a, vec3us& b, vec3us* ret) { *ret = wp::lshift(a, b); }
|
|
1481
|
+
WP_API void wp_builtin_lshift_vec4us_vec4us(vec4us& a, vec4us& b, vec4us* ret) { *ret = wp::lshift(a, b); }
|
|
1482
|
+
WP_API void wp_builtin_lshift_vec2ui_vec2ui(vec2ui& a, vec2ui& b, vec2ui* ret) { *ret = wp::lshift(a, b); }
|
|
1483
|
+
WP_API void wp_builtin_lshift_vec3ui_vec3ui(vec3ui& a, vec3ui& b, vec3ui* ret) { *ret = wp::lshift(a, b); }
|
|
1484
|
+
WP_API void wp_builtin_lshift_vec4ui_vec4ui(vec4ui& a, vec4ui& b, vec4ui* ret) { *ret = wp::lshift(a, b); }
|
|
1485
|
+
WP_API void wp_builtin_lshift_vec2ul_vec2ul(vec2ul& a, vec2ul& b, vec2ul* ret) { *ret = wp::lshift(a, b); }
|
|
1486
|
+
WP_API void wp_builtin_lshift_vec3ul_vec3ul(vec3ul& a, vec3ul& b, vec3ul* ret) { *ret = wp::lshift(a, b); }
|
|
1487
|
+
WP_API void wp_builtin_lshift_vec4ul_vec4ul(vec4ul& a, vec4ul& b, vec4ul* ret) { *ret = wp::lshift(a, b); }
|
|
1488
|
+
WP_API void wp_builtin_lshift_vec2ub_vec2ub(vec2ub& a, vec2ub& b, vec2ub* ret) { *ret = wp::lshift(a, b); }
|
|
1489
|
+
WP_API void wp_builtin_lshift_vec3ub_vec3ub(vec3ub& a, vec3ub& b, vec3ub* ret) { *ret = wp::lshift(a, b); }
|
|
1490
|
+
WP_API void wp_builtin_lshift_vec4ub_vec4ub(vec4ub& a, vec4ub& b, vec4ub* ret) { *ret = wp::lshift(a, b); }
|
|
1383
1491
|
WP_API void wp_builtin_rshift_int16_int16(int16 a, int16 b, int16* ret) { *ret = wp::rshift(a, b); }
|
|
1384
1492
|
WP_API void wp_builtin_rshift_int32_int32(int32 a, int32 b, int32* ret) { *ret = wp::rshift(a, b); }
|
|
1385
1493
|
WP_API void wp_builtin_rshift_int64_int64(int64 a, int64 b, int64* ret) { *ret = wp::rshift(a, b); }
|
|
@@ -1388,6 +1496,30 @@ WP_API void wp_builtin_rshift_uint16_uint16(uint16 a, uint16 b, uint16* ret) { *
|
|
|
1388
1496
|
WP_API void wp_builtin_rshift_uint32_uint32(uint32 a, uint32 b, uint32* ret) { *ret = wp::rshift(a, b); }
|
|
1389
1497
|
WP_API void wp_builtin_rshift_uint64_uint64(uint64 a, uint64 b, uint64* ret) { *ret = wp::rshift(a, b); }
|
|
1390
1498
|
WP_API void wp_builtin_rshift_uint8_uint8(uint8 a, uint8 b, uint8* ret) { *ret = wp::rshift(a, b); }
|
|
1499
|
+
WP_API void wp_builtin_rshift_vec2s_vec2s(vec2s& a, vec2s& b, vec2s* ret) { *ret = wp::rshift(a, b); }
|
|
1500
|
+
WP_API void wp_builtin_rshift_vec3s_vec3s(vec3s& a, vec3s& b, vec3s* ret) { *ret = wp::rshift(a, b); }
|
|
1501
|
+
WP_API void wp_builtin_rshift_vec4s_vec4s(vec4s& a, vec4s& b, vec4s* ret) { *ret = wp::rshift(a, b); }
|
|
1502
|
+
WP_API void wp_builtin_rshift_vec2i_vec2i(vec2i& a, vec2i& b, vec2i* ret) { *ret = wp::rshift(a, b); }
|
|
1503
|
+
WP_API void wp_builtin_rshift_vec3i_vec3i(vec3i& a, vec3i& b, vec3i* ret) { *ret = wp::rshift(a, b); }
|
|
1504
|
+
WP_API void wp_builtin_rshift_vec4i_vec4i(vec4i& a, vec4i& b, vec4i* ret) { *ret = wp::rshift(a, b); }
|
|
1505
|
+
WP_API void wp_builtin_rshift_vec2l_vec2l(vec2l& a, vec2l& b, vec2l* ret) { *ret = wp::rshift(a, b); }
|
|
1506
|
+
WP_API void wp_builtin_rshift_vec3l_vec3l(vec3l& a, vec3l& b, vec3l* ret) { *ret = wp::rshift(a, b); }
|
|
1507
|
+
WP_API void wp_builtin_rshift_vec4l_vec4l(vec4l& a, vec4l& b, vec4l* ret) { *ret = wp::rshift(a, b); }
|
|
1508
|
+
WP_API void wp_builtin_rshift_vec2b_vec2b(vec2b& a, vec2b& b, vec2b* ret) { *ret = wp::rshift(a, b); }
|
|
1509
|
+
WP_API void wp_builtin_rshift_vec3b_vec3b(vec3b& a, vec3b& b, vec3b* ret) { *ret = wp::rshift(a, b); }
|
|
1510
|
+
WP_API void wp_builtin_rshift_vec4b_vec4b(vec4b& a, vec4b& b, vec4b* ret) { *ret = wp::rshift(a, b); }
|
|
1511
|
+
WP_API void wp_builtin_rshift_vec2us_vec2us(vec2us& a, vec2us& b, vec2us* ret) { *ret = wp::rshift(a, b); }
|
|
1512
|
+
WP_API void wp_builtin_rshift_vec3us_vec3us(vec3us& a, vec3us& b, vec3us* ret) { *ret = wp::rshift(a, b); }
|
|
1513
|
+
WP_API void wp_builtin_rshift_vec4us_vec4us(vec4us& a, vec4us& b, vec4us* ret) { *ret = wp::rshift(a, b); }
|
|
1514
|
+
WP_API void wp_builtin_rshift_vec2ui_vec2ui(vec2ui& a, vec2ui& b, vec2ui* ret) { *ret = wp::rshift(a, b); }
|
|
1515
|
+
WP_API void wp_builtin_rshift_vec3ui_vec3ui(vec3ui& a, vec3ui& b, vec3ui* ret) { *ret = wp::rshift(a, b); }
|
|
1516
|
+
WP_API void wp_builtin_rshift_vec4ui_vec4ui(vec4ui& a, vec4ui& b, vec4ui* ret) { *ret = wp::rshift(a, b); }
|
|
1517
|
+
WP_API void wp_builtin_rshift_vec2ul_vec2ul(vec2ul& a, vec2ul& b, vec2ul* ret) { *ret = wp::rshift(a, b); }
|
|
1518
|
+
WP_API void wp_builtin_rshift_vec3ul_vec3ul(vec3ul& a, vec3ul& b, vec3ul* ret) { *ret = wp::rshift(a, b); }
|
|
1519
|
+
WP_API void wp_builtin_rshift_vec4ul_vec4ul(vec4ul& a, vec4ul& b, vec4ul* ret) { *ret = wp::rshift(a, b); }
|
|
1520
|
+
WP_API void wp_builtin_rshift_vec2ub_vec2ub(vec2ub& a, vec2ub& b, vec2ub* ret) { *ret = wp::rshift(a, b); }
|
|
1521
|
+
WP_API void wp_builtin_rshift_vec3ub_vec3ub(vec3ub& a, vec3ub& b, vec3ub* ret) { *ret = wp::rshift(a, b); }
|
|
1522
|
+
WP_API void wp_builtin_rshift_vec4ub_vec4ub(vec4ub& a, vec4ub& b, vec4ub* ret) { *ret = wp::rshift(a, b); }
|
|
1391
1523
|
WP_API void wp_builtin_invert_int16(int16 a, int16* ret) { *ret = wp::invert(a); }
|
|
1392
1524
|
WP_API void wp_builtin_invert_int32(int32 a, int32* ret) { *ret = wp::invert(a); }
|
|
1393
1525
|
WP_API void wp_builtin_invert_int64(int64 a, int64* ret) { *ret = wp::invert(a); }
|
|
@@ -1396,6 +1528,30 @@ WP_API void wp_builtin_invert_uint16(uint16 a, uint16* ret) { *ret = wp::invert(
|
|
|
1396
1528
|
WP_API void wp_builtin_invert_uint32(uint32 a, uint32* ret) { *ret = wp::invert(a); }
|
|
1397
1529
|
WP_API void wp_builtin_invert_uint64(uint64 a, uint64* ret) { *ret = wp::invert(a); }
|
|
1398
1530
|
WP_API void wp_builtin_invert_uint8(uint8 a, uint8* ret) { *ret = wp::invert(a); }
|
|
1531
|
+
WP_API void wp_builtin_invert_vec2s(vec2s& a, vec2s* ret) { *ret = wp::invert(a); }
|
|
1532
|
+
WP_API void wp_builtin_invert_vec3s(vec3s& a, vec3s* ret) { *ret = wp::invert(a); }
|
|
1533
|
+
WP_API void wp_builtin_invert_vec4s(vec4s& a, vec4s* ret) { *ret = wp::invert(a); }
|
|
1534
|
+
WP_API void wp_builtin_invert_vec2i(vec2i& a, vec2i* ret) { *ret = wp::invert(a); }
|
|
1535
|
+
WP_API void wp_builtin_invert_vec3i(vec3i& a, vec3i* ret) { *ret = wp::invert(a); }
|
|
1536
|
+
WP_API void wp_builtin_invert_vec4i(vec4i& a, vec4i* ret) { *ret = wp::invert(a); }
|
|
1537
|
+
WP_API void wp_builtin_invert_vec2l(vec2l& a, vec2l* ret) { *ret = wp::invert(a); }
|
|
1538
|
+
WP_API void wp_builtin_invert_vec3l(vec3l& a, vec3l* ret) { *ret = wp::invert(a); }
|
|
1539
|
+
WP_API void wp_builtin_invert_vec4l(vec4l& a, vec4l* ret) { *ret = wp::invert(a); }
|
|
1540
|
+
WP_API void wp_builtin_invert_vec2b(vec2b& a, vec2b* ret) { *ret = wp::invert(a); }
|
|
1541
|
+
WP_API void wp_builtin_invert_vec3b(vec3b& a, vec3b* ret) { *ret = wp::invert(a); }
|
|
1542
|
+
WP_API void wp_builtin_invert_vec4b(vec4b& a, vec4b* ret) { *ret = wp::invert(a); }
|
|
1543
|
+
WP_API void wp_builtin_invert_vec2us(vec2us& a, vec2us* ret) { *ret = wp::invert(a); }
|
|
1544
|
+
WP_API void wp_builtin_invert_vec3us(vec3us& a, vec3us* ret) { *ret = wp::invert(a); }
|
|
1545
|
+
WP_API void wp_builtin_invert_vec4us(vec4us& a, vec4us* ret) { *ret = wp::invert(a); }
|
|
1546
|
+
WP_API void wp_builtin_invert_vec2ui(vec2ui& a, vec2ui* ret) { *ret = wp::invert(a); }
|
|
1547
|
+
WP_API void wp_builtin_invert_vec3ui(vec3ui& a, vec3ui* ret) { *ret = wp::invert(a); }
|
|
1548
|
+
WP_API void wp_builtin_invert_vec4ui(vec4ui& a, vec4ui* ret) { *ret = wp::invert(a); }
|
|
1549
|
+
WP_API void wp_builtin_invert_vec2ul(vec2ul& a, vec2ul* ret) { *ret = wp::invert(a); }
|
|
1550
|
+
WP_API void wp_builtin_invert_vec3ul(vec3ul& a, vec3ul* ret) { *ret = wp::invert(a); }
|
|
1551
|
+
WP_API void wp_builtin_invert_vec4ul(vec4ul& a, vec4ul* ret) { *ret = wp::invert(a); }
|
|
1552
|
+
WP_API void wp_builtin_invert_vec2ub(vec2ub& a, vec2ub* ret) { *ret = wp::invert(a); }
|
|
1553
|
+
WP_API void wp_builtin_invert_vec3ub(vec3ub& a, vec3ub* ret) { *ret = wp::invert(a); }
|
|
1554
|
+
WP_API void wp_builtin_invert_vec4ub(vec4ub& a, vec4ub* ret) { *ret = wp::invert(a); }
|
|
1399
1555
|
WP_API void wp_builtin_mul_float16_float16(float16 a, float16 b, float16* ret) { *ret = wp::mul(a, b); }
|
|
1400
1556
|
WP_API void wp_builtin_mul_float32_float32(float32 a, float32 b, float32* ret) { *ret = wp::mul(a, b); }
|
|
1401
1557
|
WP_API void wp_builtin_mul_float64_float64(float64 a, float64 b, float64* ret) { *ret = wp::mul(a, b); }
|
warp/native/hashgrid.cu
CHANGED
warp/native/intersect.h
CHANGED
|
@@ -613,7 +613,15 @@ CUDA_CALLABLE inline int intersect_tri_tri(
|
|
|
613
613
|
vec3& v0, vec3& v1, vec3& v2,
|
|
614
614
|
vec3& u0, vec3& u1, vec3& u2)
|
|
615
615
|
{
|
|
616
|
-
return NoDivTriTriIsect(&v0[0], &v1[0], &v2[0], &u0[0], &u1[0], &u2[0]);
|
|
616
|
+
return NoDivTriTriIsect<float>(&v0[0], &v1[0], &v2[0], &u0[0], &u1[0], &u2[0]);
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
|
|
620
|
+
CUDA_CALLABLE inline int intersect_tri_tri(
|
|
621
|
+
vec3d& v0, vec3d& v1, vec3d& v2,
|
|
622
|
+
vec3d& u0, vec3d& u1, vec3d& u2)
|
|
623
|
+
{
|
|
624
|
+
return NoDivTriTriIsect<double>(&v0[0], &v1[0], &v2[0], &u0[0], &u1[0], &u2[0]);
|
|
617
625
|
}
|
|
618
626
|
|
|
619
627
|
CUDA_CALLABLE inline void adj_intersect_tri_tri(const vec3& var_v0,
|
|
@@ -631,6 +639,21 @@ CUDA_CALLABLE inline void adj_intersect_tri_tri(const vec3& var_v0,
|
|
|
631
639
|
int adj_ret) {}
|
|
632
640
|
|
|
633
641
|
|
|
642
|
+
CUDA_CALLABLE inline void adj_intersect_tri_tri(const vec3d& var_v0,
|
|
643
|
+
const vec3d& var_v1,
|
|
644
|
+
const vec3d& var_v2,
|
|
645
|
+
const vec3d& var_u0,
|
|
646
|
+
const vec3d& var_u1,
|
|
647
|
+
const vec3d& var_u2,
|
|
648
|
+
vec3d& adj_v0,
|
|
649
|
+
vec3d& adj_v1,
|
|
650
|
+
vec3d& adj_v2,
|
|
651
|
+
vec3d& adj_u0,
|
|
652
|
+
vec3d& adj_u1,
|
|
653
|
+
vec3d& adj_u2,
|
|
654
|
+
int adj_ret) {}
|
|
655
|
+
|
|
656
|
+
|
|
634
657
|
CUDA_CALLABLE inline void adj_closest_point_to_triangle(
|
|
635
658
|
const vec3& var_a, const vec3& var_b, const vec3& var_c, const vec3& var_p,
|
|
636
659
|
vec3& adj_a, vec3& adj_b, vec3& adj_c, vec3& adj_p, vec2& adj_ret)
|
warp/native/intersect_tri.h
CHANGED
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* Updated June 1999: removed the divisions -- a little faster now!
|
|
24
24
|
* Updated October 1999: added {} to CROSS and SUB macros
|
|
25
25
|
*
|
|
26
|
-
* int NoDivTriTriIsect(
|
|
27
|
-
*
|
|
26
|
+
* int NoDivTriTriIsect(T V0[3],T V1[3],T V2[3],
|
|
27
|
+
* T U0[3],T U1[3],T U2[3])
|
|
28
28
|
*
|
|
29
29
|
* parameters: vertices of triangle 1: V0,V1,V2
|
|
30
30
|
* vertices of triangle 2: U0,U1,U2
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
#define SORT(a,b) \
|
|
75
75
|
if(a>b) \
|
|
76
76
|
{ \
|
|
77
|
-
|
|
77
|
+
T c; \
|
|
78
78
|
c=a; \
|
|
79
79
|
a=b; \
|
|
80
80
|
b=c; \
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
|
|
107
107
|
#define EDGE_AGAINST_TRI_EDGES(V0,V1,U0,U1,U2) \
|
|
108
108
|
{ \
|
|
109
|
-
|
|
109
|
+
T Ax,Ay,Bx,By,Cx,Cy,e,d,f; \
|
|
110
110
|
Ax=V1[i0]-V0[i0]; \
|
|
111
111
|
Ay=V1[i1]-V0[i1]; \
|
|
112
112
|
/* test edge U0,U1 against V0,V1 */ \
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
|
|
120
120
|
#define POINT_IN_TRI(V0,U0,U1,U2) \
|
|
121
121
|
{ \
|
|
122
|
-
|
|
122
|
+
T a,b,c,d0,d1,d2; \
|
|
123
123
|
/* is T1 completely inside T2? */ \
|
|
124
124
|
/* check if V0 is inside tri(U0,U1,U2) */ \
|
|
125
125
|
a=U1[i1]-U0[i1]; \
|
|
@@ -142,16 +142,25 @@
|
|
|
142
142
|
} \
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
|
|
146
|
+
// Type-generic abs that works on device & host without relying on std overloads
|
|
147
|
+
CUDA_CALLABLE inline float abs_t(float x) { return fabsf(x); }
|
|
148
|
+
CUDA_CALLABLE inline double abs_t(double x) { return fabs(x); }
|
|
149
|
+
|
|
150
|
+
template <typename T>
|
|
151
|
+
CUDA_CALLABLE inline T abs_t(T x) { return x < T(0) ? -x : x; }
|
|
152
|
+
|
|
153
|
+
template<typename T>
|
|
154
|
+
CUDA_CALLABLE inline int coplanar_tri_tri(T N[3],T V0[3],T V1[3],T V2[3],
|
|
155
|
+
T U0[3],T U1[3],T U2[3])
|
|
147
156
|
{
|
|
148
|
-
|
|
157
|
+
T A[3];
|
|
149
158
|
short i0,i1;
|
|
150
159
|
/* first project onto an axis-aligned plane, that maximizes the area */
|
|
151
160
|
/* of the triangles, compute indices: i0,i1. */
|
|
152
|
-
A[0]=
|
|
153
|
-
A[1]=
|
|
154
|
-
A[2]=
|
|
161
|
+
A[0]=abs_t(N[0]);
|
|
162
|
+
A[1]=abs_t(N[1]);
|
|
163
|
+
A[2]=abs_t(N[2]);
|
|
155
164
|
if(A[0]>A[1])
|
|
156
165
|
{
|
|
157
166
|
if(A[0]>A[2])
|
|
@@ -227,20 +236,20 @@ CUDA_CALLABLE inline int coplanar_tri_tri(float N[3],float V0[3],float V1[3],flo
|
|
|
227
236
|
}
|
|
228
237
|
|
|
229
238
|
|
|
230
|
-
|
|
231
|
-
CUDA_CALLABLE inline int NoDivTriTriIsect(
|
|
232
|
-
|
|
239
|
+
template<typename T>
|
|
240
|
+
CUDA_CALLABLE inline int NoDivTriTriIsect(T V0[3], T V1[3], T V2[3],
|
|
241
|
+
T U0[3], T U1[3], T U2[3])
|
|
233
242
|
{
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
243
|
+
T E1[3],E2[3];
|
|
244
|
+
T N1[3],N2[3],d1,d2;
|
|
245
|
+
T du0,du1,du2,dv0,dv1,dv2;
|
|
246
|
+
T D[3];
|
|
247
|
+
T isect1[2], isect2[2];
|
|
248
|
+
T du0du1,du0du2,dv0dv1,dv0dv2;
|
|
240
249
|
short index;
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
250
|
+
T vp0,vp1,vp2;
|
|
251
|
+
T up0,up1,up2;
|
|
252
|
+
T bb,cc,max;
|
|
244
253
|
|
|
245
254
|
/* compute plane equation of triangle(V0,V1,V2) */
|
|
246
255
|
SUB(E1,V1,V0);
|
|
@@ -256,9 +265,9 @@ CUDA_CALLABLE inline int NoDivTriTriIsect(float V0[3],float V1[3],float V2[3],
|
|
|
256
265
|
|
|
257
266
|
/* coplanarity robustness check */
|
|
258
267
|
#if USE_EPSILON_TEST==TRUE
|
|
259
|
-
if(
|
|
260
|
-
if(
|
|
261
|
-
if(
|
|
268
|
+
if(abs_t(du0)<EPSILON) du0=0.0;
|
|
269
|
+
if(abs_t(du1)<EPSILON) du1=0.0;
|
|
270
|
+
if(abs_t(du2)<EPSILON) du2=0.0;
|
|
262
271
|
#endif
|
|
263
272
|
du0du1=du0*du1;
|
|
264
273
|
du0du2=du0*du2;
|
|
@@ -279,9 +288,9 @@ CUDA_CALLABLE inline int NoDivTriTriIsect(float V0[3],float V1[3],float V2[3],
|
|
|
279
288
|
dv2=DOT(N2,V2)+d2;
|
|
280
289
|
|
|
281
290
|
#if USE_EPSILON_TEST==TRUE
|
|
282
|
-
if(
|
|
283
|
-
if(
|
|
284
|
-
if(
|
|
291
|
+
if(abs_t(dv0)<EPSILON) dv0=0.0;
|
|
292
|
+
if(abs_t(dv1)<EPSILON) dv1=0.0;
|
|
293
|
+
if(abs_t(dv2)<EPSILON) dv2=0.0;
|
|
285
294
|
#endif
|
|
286
295
|
|
|
287
296
|
dv0dv1=dv0*dv1;
|
|
@@ -294,10 +303,10 @@ CUDA_CALLABLE inline int NoDivTriTriIsect(float V0[3],float V1[3],float V2[3],
|
|
|
294
303
|
CROSS(D,N1,N2);
|
|
295
304
|
|
|
296
305
|
/* compute and index to the largest component of D */
|
|
297
|
-
max=
|
|
306
|
+
max=abs_t(D[0]);
|
|
298
307
|
index=0;
|
|
299
|
-
bb=
|
|
300
|
-
cc=
|
|
308
|
+
bb=abs_t(D[1]);
|
|
309
|
+
cc=abs_t(D[2]);
|
|
301
310
|
if(bb>max) max=bb,index=1;
|
|
302
311
|
if(cc>max) max=cc,index=2;
|
|
303
312
|
|
|
@@ -311,14 +320,14 @@ CUDA_CALLABLE inline int NoDivTriTriIsect(float V0[3],float V1[3],float V2[3],
|
|
|
311
320
|
up2=U2[index];
|
|
312
321
|
|
|
313
322
|
/* compute interval for triangle 1 */
|
|
314
|
-
|
|
323
|
+
T a,b,c,x0,x1;
|
|
315
324
|
NEWCOMPUTE_INTERVALS(vp0,vp1,vp2,dv0,dv1,dv2,dv0dv1,dv0dv2,a,b,c,x0,x1);
|
|
316
325
|
|
|
317
326
|
/* compute interval for triangle 2 */
|
|
318
|
-
|
|
327
|
+
T d,e,f,y0,y1;
|
|
319
328
|
NEWCOMPUTE_INTERVALS(up0,up1,up2,du0,du1,du2,du0du1,du0du2,d,e,f,y0,y1);
|
|
320
329
|
|
|
321
|
-
|
|
330
|
+
T xx,yy,xxyy,tmp;
|
|
322
331
|
xx=x0*x1;
|
|
323
332
|
yy=y0*y1;
|
|
324
333
|
xxyy=xx*yy;
|