Procedures

ProcedureLocationProcedure TypeDescription
aa_fix rotlib_m Subroutine

Modifies axis and angle to ensure a right handed rotation with angle .

aa_from_rotmat rotlib_m Subroutine

Extracts axis and angle from a rotation matrix.

aa_rand rotlib_m Subroutine

Generates a random orientation in axis-angle representation. The axis is a random vector drawn from a uniform distribution on the surface of a unit sphere. The current implementation in based on the algorithm from Allen & Tildesley p. 349.

aa_rotate_vectors rotlib_m Subroutine

Rotates vectors about axis by angle.

aa_rotmat rotlib_m Subroutine

Returns the rotation matrix corresponding to an axis-angle representation.

aa_shift_tensor2 rotlib_m Subroutine

Given two frames A and B such that the orientation of frame B with respect to frame A is given by an axis-angle representation, shifts second-order tensors from A to B or B to A.

aa_shift_tensor3 rotlib_m Subroutine

Given two frames A and B such that the orientation of frame B with respect to frame A is given by an axis-angle representation, shifts third-order tensors from A to B or B to A.

aa_shift_vectors rotlib_m Subroutine

Given two frames A and B such that the orientation of frame B with respect to frame A is given by an axis-angle representation, shifts vectors from A to B or B to A.

aa_shiftmat rotlib_m Subroutine

Returns the shifter matrix corresponding to an axis-angle representation.

aa_to_dcm rotlib_m Subroutine

Converts an axis-angle representation to a direction cosine matrix.

aa_to_euler rotlib_m Subroutine

Coverts an axis-angle representation to Euler angles.

aa_to_quat rotlib_m Subroutine

Converts an axis-angle representation to a unit quaternion.

add_transpose utils_math_m Subroutine

Adds a square matrix and its transpose in place:

align rotlib_m Subroutine

Rotates vectors such that a set of mutually orthogonal unit vectors aligns with another set of mutually orthogonal unit vectors.

Read more…
allclose utils_math_m Interface

Checks if two arrays are elementwise close within tolerance

allclose_rank1 utils_math_m Function

Checks if two rank-1 floating point arrays of type double are close within tolerance.

allclose_rank2 utils_math_m Function

Checks if two rank-2 floating point arrays of type double are close within tolerance.

allclose_rank3 utils_math_m Function

Checks if two rank-3 floating point arrays of type double are close within tolerance.

cross utils_math_m Subroutine

Calculates the cross product between two 3-element vectors

cross_mat utils_math_m Subroutine

Calculates the cross product matrix of a 3-element vector. The cross product matrix A of a is defined as a x b = A . b, where b is another 3-element vector.

dcm_from_axes rotlib_m Subroutine

Returns the direction cosine matrix of axes(i.e. frame) B with respect to axes(i.e. frame) A.

dcm_rotate_vectors rotlib_m Subroutine

Rotates vectors by a direction cosine matrix.

dcm_rotmat rotlib_m Subroutine

Returns the rotation matrix corresponding to a direction cosine matrix.

dcm_shift_tensor2 rotlib_m Subroutine

Given two frames A and B such that the orientation of frame B with respect to frame A is given by a direction cosine matrix, shifts second-order tesnors from A to B or B to A.

dcm_shift_tensor3 rotlib_m Subroutine

Given two frames A and B such that the orientation of frame B with respect to frame A is given by a direction cosine matrix, shifts third-order tesnors from A to B or B to A.

dcm_shift_vectors rotlib_m Subroutine

Given two frames A and B such that the orientation of frame B with respect to frame A is given by a direction cosine matrix, shifts vectors from A to B or B to A.

dcm_shiftmat rotlib_m Subroutine

Returns the shifter matrix corresponding to a direction cosine matrix.

dcm_to_aa rotlib_m Subroutine

Converts a direction cosine matrix to an axis-angle representation.

dcm_to_euler rotlib_m Subroutine

Converts a direction cosine matrix to Euler angles.

dcm_to_quat rotlib_m Subroutine

Converts a direction cosine matrix to a unit quaternion.

deg2rad utils_math_m Subroutine
det utils_math_m Function

Returns the determinant of an (N x N) matrix, where N = 2, 3, or 4.

Read more…
dsyevc3 utils_math_m Subroutine

Calculates the eigenvalues of a symmetric 3x3 matrix A using Cardano's analytical algorithm. Only the diagonal and upper triangular parts of A are accessed. The access is read-only.

Read more…
eigval_33rsym utils_math_m Subroutine

Calculates the eigenvalues of a 3 x 3 real symmetric matrix. The eigenvalues calculated are in decreasing order. Only the diagonal and lower triangular part of the matrix is accessed.

Read more…
euler_rotate_vectors rotlib_m Subroutine

Rotates vectors with a set of Euler angles.

euler_rotmat rotlib_m Subroutine

Returns the rotation matrix for a set of Euler angles.

euler_shift_tensor2 rotlib_m Subroutine

Given two frames A and B such that the orientation of frame B with respect to frame A is given by three Euler angles, shifts second-order tensors from A to B or B to A.

euler_shift_tensor3 rotlib_m Subroutine

Given two frames A and B such that the orientation of frame B with respect to frame A is given by three Euler angles, shifts third-order tensors from A to B or B to A.

euler_shift_vectors rotlib_m Subroutine

Given two frames A and B such that the orientation of frame B with respect to frame A is given by three Euler angles, shifts vectors from A to B or B to A.

euler_shiftmat rotlib_m Subroutine

Returns the shifter matrix for a set of Euler angles.

euler_to_aa rotlib_m Subroutine

Convert Euler angles to an axis-angle representation.

euler_to_dcm rotlib_m Subroutine

Convert Euler angles to a direction cosine matrix.

euler_to_euler rotlib_m Subroutine

Convert one set of Euler angles to another.

euler_to_quat rotlib_m Subroutine

Convert Euler angles to a unit quaternion.

get_diagonal utils_math_m Subroutine

Returns the diagonal elements of a square matrix.

get_quad_form utils_math_m Function

Calculates the quadratic form x^T A x, where A is an n x n matrix and x is a vector of length n

identity utils_math_m Subroutine

Creates an identity matrix of size n x n.

invert_mat33 utils_math_m Subroutine

Inverts a 3x3 matrix.

Read more…
isclose utils_math_m Function

Checks if two floating point numbers of type double are close within tolerance.

Read more…
linspace utils_math_m Subroutine

Generates evenly spaced numbers over a specified interval. Both end points are included. If start < finish, the returned step size (if step is present) will be negative.

logspace utils_math_m Subroutine

Generates numbers spaced evenly on a log scale. In linear space, the sequence starts at base ** start (base to the power of start) and ends with base ** stop

mat_is_dcm rotlib_m Function

Returns true if a (3,3) matrix is a direction cosine matrix.

mat_is_rotmat rotlib_m Function

Returns .true. if a (3,3) matrix is a rotation matrix.

multiply_transpose utils_math_m Subroutine

Multiplies a matrix with its transpose:

orth utils_math_m Subroutine

Orthogonalizes a set of vectors in-place using Gram-Schmidt orthonormalization

Read more…
outer utils_math_m Subroutine

Calculates the outer product of two vectors, .

quat_angle_between rotlib_m Function

Returns the angle between two unit quaternions

quat_conjugated rotlib_m Subroutine

Conjugates a quaternion in-place.

quat_deriv_from_angvel rotlib_m Subroutine

Calculates the time derivative of a unit quaternion from angular velocity.

quat_deriv_from_angvel_mat rotlib_m Subroutine

Returns the matrix mapping angular velocity to time derivative of a unit quaternion.

quat_deriv_to_angvel rotlib_m Subroutine

Calculates the angular velocity from a unit quaternion and its time derivative.

quat_deriv_to_angvel_mat rotlib_m Subroutine

Returns the matrix mapping the derivative of a unit quaternion to angular velocity.

quat_identity rotlib_m Subroutine

Returns the identity unit quaternion.

quat_interpolate rotlib_m Subroutine

Interpolates between two unit quaternions.

quat_inverted rotlib_m Subroutine

Inverts a quaternion in-place.

quat_is_normalized rotlib_m Function

Returns .true. if quaternion is normalized, i.e. if it is a unit quaternion

quat_normalized rotlib_m Subroutine

Normalizes a quaternion in-place.

quat_prod rotlib_m Subroutine

Calculates the product of two quaternions

quat_rand rotlib_m Subroutine

Returns a random unit quaternion.

quat_rotate_vectors rotlib_m Subroutine

Rotates vectors by a unit quaternion.

quat_rotmat rotlib_m Subroutine

Returns the rotation matrix corresponding to a unit quaternion.

quat_shift_tensor2 rotlib_m Subroutine

Given two frames A and B such that the orientation of frame B with respect to frame A is given by a unit quaternion, shifts second-order tensors from A to B or B to A.

quat_shift_tensor3 rotlib_m Subroutine

Given two frames A and B such that the orientation of frame B with respect to frame A is given by a unit quaternion, shifts third-order tensors from A to B or B to A.

quat_shift_vectors rotlib_m Subroutine

Given two frames A and B such that the orientation of frame B with respect to frame A is given by a unit quaternion, shifts vectors from A to B or B to A.

quat_shiftmat rotlib_m Subroutine

Returns the shifter matrix corresponding to a unit quaternion.

quat_to_aa rotlib_m Subroutine

Converts a unit quaternion to an axis-angle representation.

quat_to_dcm rotlib_m Subroutine

Converts a unit quaternion to a direction cosine matrix.

quat_to_euler rotlib_m Subroutine

Converts a unit quaternion to an Euler angle sequence.

rad2deg utils_math_m Subroutine
scalar_triple_product utils_math_m Function

Returns the scalar triple product a.(b x c)

subtract_transpose utils_math_m Subroutine

Calculates the difference of a square matrix and its transpose in place:

swap utils_math_m Interface

Swaps two arrays

swap_complex utils_math_m Subroutine
swap_integer utils_math_m Subroutine
swap_real utils_math_m Subroutine
trace utils_math_m Function

Returns the trace of a square matrix

unitize utils_math_m Subroutine

Normalizes a vector in-place. If the magnitude of the vector is nearly zero, no normalization takes place and the vector is returned as is with a warning message.

vector_triple_product utils_math_m Subroutine

Returns the vector triple product d = a x (b x c)