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()floatQuaternion magnitude
.normalize()QuaternionUnit quaternion
.rotate_vector(v)VectorApply rotation to a 3D vector
q1 * q2QuaternionHamilton product (rotation composition)

Distance Metrics

FunctionReturnsDescription
euclidean_distance(v1, v2)floatL2 distance
manhattan_distance(v1, v2)floatL1 distance
minkowski_distance(v1, v2, p)floatLp distance
cosine_similarity(v1, v2)floatCosine of angle between vectors
angle_between(v1, v2)floatAngle in radians

Vector Operations

projection(v, target)VectorProject v onto target
cross_product(v1, v2)Vector3D cross product

Computational Geometry

is_point_in_polygon(x, y, poly_x, poly_y)boolRay-casting point-in-polygon test
convex_hull(points_x, points_y)(list, list)Convex hull of 2D points