glamx 0.5.0

Physics-oriented extensions of glam (Rot2, Pose2, Pose3, SdpMatrix, symmetric eigen): port of Dimforge glamx on the fixed Q32.32 scalar

Readme

glamx

Pure Cairo port of Dimforge's glamx 0.3.1 on the fixed Q32.32 scalar and glam: Rot2, Rot3, Pose2, Pose3, SdpMatrix2, SdpMatrix3 and SymmetricEigen3.

[dependencies]
glamx = "0.4.1"

Compatible with Cairo 2.20.0. It depends on glam_core and fixed (not on the glam facade). glamx values interoperate with glam facade users: glam::vec3::Vec3, glam::quat::Quat, glam::mat4::Mat4 and the other facade types are the glam_core types glamx takes and returns.

Gas

Sierra gas (l2 gas, what a transaction pays) and prover cost (steps, range checks) of one call, net of the test overhead (X__op - X__base, see scripts/bench.py), measured with scarb 2.20.1, starknet-foundry 0.64.0 (.tool-versions). Source of truth: gas/*.snap; this region is generated by scripts/gas_tables.py, do not edit it.

Pose3

op l2 gas steps range checks mul_pose3 18 360 164 28 inv_mul 20 580 182 34 inverse 10 240 94 12 transform_point 10 140 93 12 transform_vector 9 240 84 12 inverse_transform_point 11 460 102 18 nlerp 34 790 284 59 to_mat4 21 240 183 42

Pose2

op l2 gas steps range checks mul 8 720 76 16 inv_mul 9 800 84 20 inverse 5 060 45 8 transform_point 4 960 44 8 transform_vector 4 560 40 8

Rot2

op l2 gas steps range checks mul 4 560 40 8 mul_vec2 4 560 40 8 inverse 400 4 0 from_angle 31 300 243 62 angle 29 630 207 44 normalize 8 820 75 18 lerp 4 760 42 8 slerp 71 960 536 126

SdpMatrix3

op l2 gas steps range checks mul_vec 7 040 62 12 mul_mat 19 520 170 36 add 5 840 50 12 quadform 21 010 183 24 inverse_regular 27 650 226 56 from_rotated_diagonal 35 550 299 66

SymmetricEigen3

op l2 gas steps range checks new (generic) 550 950 4 578 961 new (diagonal) 57 960 484 62 eigenvalues (generic) 507 470 4 205 873

The committed snapshots are measured by scripts/bench.py and checked in CI.

Metadata

Version 0.5.0

Uploaded 1 week ago

License MIT

Cairo version ^2.20.0

Size 97.7 KB

Installation

Run the following command in your project dir

scarb add glamx@0.5.0

Or add the following line to your Scarb.toml

glamx = "0.5.0"

Monthly downloads

Links

Owners