Skip to main content

Module f64

Module f64 

Source

Structs§

EulerAngle
Represents a set of Euler angles.
Mat2
A 2x2 matrix. Data and operations are column-major.
Mat3
A 3x3 matrix. Data and operations are column-major.
Mat4
A 4x4 matrix. Data and operations are column-major.
Quaternion
A quaternion using Hamilton (not JPL) transformation conventions. The most common operations usedful for representing orientations and rotations are defined, including for operations with Vec3.
Quaternionx4
SoA. Performs operations on x quaternions
Quaternionx8
SoA. Performs operations on x quaternions
Vec2
A len-2 column vector.
Vec3
A len-3 column vector.
Vec4
A len-4 column vector
Vec3x4
SoA. Performs operations on x Vecs.
Vec3x8
SoA. Performs operations on x Vecs.
Vec4x4
SoA. Performs operations on x Vecs.
Vec4x8
SoA. Performs operations on x Vecs.
f64x4
Similar to core::simd.
f64x8
Similar to core::simd.

Constants§

X_VEC
Y_VEC
Z_VEC

Functions§

calc_dihedral_angle
Calculate the dihedral angle between 4 positions (3 bonds). Compared to calc_dihedral_angle_v2(), this function’s API is more clear if you have the bonds/connections, but not the positions. this might happen if you are doing certain vector operations, for example.
calc_dihedral_angle_v2
Calculate the dihedral angle between 4 positions. The positions must be in order by connection/bond, although both directions produce identical results. Compared to calc_dihedral_angle(), this function’s API is more clear if you have the set of positions directly.
det_from_cols
Calculate the determinate of a matrix defined by its columns. We use this for determining the full 0 - tau angle between bonds.
pack_quaternionx4
Used for creating a set of Quaternionx from one of Quatenrion. Padded as required. The result will have approximately x fewer elements than the input.
pack_quaternionx8
Used for creating a set of Quaternionx from one of Quatenrion. Padded as required. The result will have approximately x fewer elements than the input.
pack_slice
Convert a slice of any type to an array values, for use with SIMD. Padded as required. The result will have approximately 8x fewer elements than the input.
pack_slice_noncopy
pack_vec3x4
Used for creating a set of Vec3x from one of Vec3. Padded as required. The result will have approximately x fewer elements than the input.
pack_vec3x8
Used for creating a set of Vec3x from one of Vec3. Padded as required. The result will have approximately x fewer elements than the input.
pack_x4
Convert a slice of $f to an array of SIMD $f values, x-wide. Padded as required. The result will have approximately 8x fewer elements than the input.
pack_x8
Convert a slice of $f to an array of SIMD $f values, x-wide. Padded as required. The result will have approximately 8x fewer elements than the input.
unpack_quaternionx4
Convert a slice of SIMD Quaternionx values, x-wide to Quaternion. The result will have approximately x as many elements as the input. Its parameters include the number of original values, so it knows to only use valid lanes on the last chunk.
unpack_quaternionx8
Convert a slice of SIMD Quaternionx values, x-wide to Quaternion. The result will have approximately x as many elements as the input. Its parameters include the number of original values, so it knows to only use valid lanes on the last chunk.
unpack_slice
unpack_vec3x4
Convert a slice of SIMD Vec3x values, x-wide to Vec3. The result will have approximately x as many elements as the input. Its parameters include the number of original values, so it knows to only use valid lanes on the last chunk.
unpack_vec3x8
Convert a slice of SIMD Vec3x values, x-wide to Vec3. The result will have approximately x as many elements as the input. Its parameters include the number of original values, so it knows to only use valid lanes on the last chunk.
unpack_x4
Convert a slice of SIMD floating point values to plain floating point ones. The result will have approximately x as many elements as the input. Its parameters include the number of original values, so it knows to only use valid lanes on the last chunk.
unpack_x8
Convert a slice of SIMD floating point values to plain floating point ones. The result will have approximately x as many elements as the input. Its parameters include the number of original values, so it knows to only use valid lanes on the last chunk.