Extension
rmath.geometry
Distance metrics, 3D rotations via quaternions, and computational geometry algorithms. All vector operations are parallelized.
Quaternion
Unit quaternion for 3D rotations: q = w + xi + yj + zk.
Quaternion(w, x, y, z) | Create a quaternion |
.norm() | float | Quaternion magnitude |
.normalize() | Quaternion | Unit quaternion |
.rotate_vector(v) | Vector | Apply rotation to a 3D vector |
q1 * q2 | Quaternion | Hamilton product (rotation composition) |
Distance Metrics
| Function | Returns | Description |
euclidean_distance(v1, v2) | float | L2 distance |
manhattan_distance(v1, v2) | float | L1 distance |
minkowski_distance(v1, v2, p) | float | Lp distance |
cosine_similarity(v1, v2) | float | Cosine of angle between vectors |
angle_between(v1, v2) | float | Angle in radians |
Vector Operations
projection(v, target) | Vector | Project v onto target |
cross_product(v1, v2) | Vector | 3D cross product |
Computational Geometry
is_point_in_polygon(x, y, poly_x, poly_y) | bool | Ray-casting point-in-polygon test |
convex_hull(points_x, points_y) | (list, list) | Convex hull of 2D points |