|  | 
| static void | aa_tf_sinccos2 (double theta2, double *sc, double *c) | 
|  | 
| static void | aa_tf_sinccos (double theta, double *sc, double *c) | 
|  | 
| static double | aa_tf_sinc (double theta) | 
|  | 
| AA_API void | aa_tf_12 (const double T[AA_RESTRICT 12], const double p0[AA_RESTRICT 3], double p1[AA_RESTRICT 3]) | 
|  | apply a euclidean transform 
 | 
|  | 
| AA_API void | aa_tf_93 (const double R[AA_RESTRICT 9], const double v[AA_RESTRICT 3], const double p0[AA_RESTRICT 3], double p1[AA_RESTRICT 4]) | 
|  | apply a euclidean transform 
 | 
|  | 
| AA_API void | aa_tf_tf_qv (const double quat[AA_RESTRICT 4], const double v[AA_RESTRICT 3], const double p0[AA_RESTRICT 3], double p1[AA_RESTRICT 4]) | 
|  | apply a euclidean transform 
 | 
|  | 
| AA_API void | aa_tf_9 (const double R[AA_RESTRICT 9], const double p0[AA_RESTRICT 3], double p1[AA_RESTRICT 4]) | 
|  | apply a euclidean transform 
 | 
|  | 
| AA_API void | aa_tf_12inv (const double T[AA_RESTRICT 12], double Ti[AA_RESTRICT 12]) | 
|  | invert transform 
 | 
|  | 
| AA_API void | aa_tf_93inv (const double R[AA_RESTRICT 9], const double v[AA_RESTRICT 3], double Ri[AA_RESTRICT 9], double vi[AA_RESTRICT 3]) | 
|  | invert transform 
 | 
|  | 
| AA_API void | aa_tf_qv_conj (const double q[AA_RESTRICT 4], const double v[AA_RESTRICT 3], double qc[AA_RESTRICT 4], double vc[AA_RESTRICT 3]) | 
|  | Invert transform.  More... 
 | 
|  | 
| AA_API void | aa_tf_12chain (const double T1[AA_RESTRICT 12], const double T2[AA_RESTRICT 12], double T[AA_RESTRICT 12]) | 
|  | chain two transforms 
 | 
|  | 
| AA_API void | aa_tf_v12chain (double T[AA_RESTRICT 12], const double T1[AA_RESTRICT 12], const double T2[AA_RESTRICT 12],...) | 
|  | Varargs transform chain. 
 | 
|  | 
| AA_API void | aa_tf_93chain (const double R0[AA_RESTRICT 9], const double v0[AA_RESTRICT 3], const double R1[AA_RESTRICT 9], const double v1[AA_RESTRICT 3], double R[AA_RESTRICT 9], double v[AA_RESTRICT 3]) | 
|  | chain two transforms 
 | 
|  | 
| AA_API void | aa_tf_qv_chain (const double q0[AA_RESTRICT 4], const double v0[AA_RESTRICT 3], const double q1[AA_RESTRICT 4], const double v1[AA_RESTRICT 3], double q[AA_RESTRICT 4], double v[AA_RESTRICT 3]) | 
|  | chain two transforms 
 | 
|  | 
| AA_API void | aa_tf_93rel (const double R1[AA_RESTRICT 9], const double v1[AA_RESTRICT 3], const double R2[AA_RESTRICT 9], const double v2[AA_RESTRICT 3], double Rrel[AA_RESTRICT 9], double vrel[AA_RESTRICT 3]) | 
|  | relative transform 
 | 
|  | 
| AA_API void | aa_tf_12rel (const double T1[AA_RESTRICT 12], const double T2[AA_RESTRICT 12], double Trel[AA_RESTRICT 12]) | 
|  | relative transform 
 | 
|  | 
| AA_API void | aa_tf_skewsym_scal2 (double a, double b, const double u[3], double R[9]) | 
|  | 
| AA_API void | aa_tf_skewsym_scal_c (const double u[AA_RESTRICT 3], const double a[AA_RESTRICT 3], const double b[AA_RESTRICT 3], double R[9]) | 
|  | 
| AA_API void | aa_tf_rotmat_mul (const double R0[AA_RESTRICT 9], const double R1[AA_RESTRICT 9], double R[AA_RESTRICT 9]) | 
|  | 
| AA_API void | aa_tf_tfmat_mul (const double T0[AA_RESTRICT 12], const double T1[AA_RESTRICT 12], double T[AA_RESTRICT 12]) | 
|  | 
| AA_API void | aa_tf_tfmat2_mul (const double R0[AA_RESTRICT 9], const double v0[AA_RESTRICT 3], const double R1[AA_RESTRICT 9], const double v1[AA_RESTRICT 3], double R[AA_RESTRICT 9], double v[AA_RESTRICT 3]) | 
|  | 
| AA_API void | aa_tf_rotmat_imul (const double R0[AA_RESTRICT 9], const double R1[AA_RESTRICT 9], double R[AA_RESTRICT 9]) | 
|  | 
| AA_API void | aa_tf_rotmat_muli (const double R0[AA_RESTRICT 9], const double R1[AA_RESTRICT 9], double R[AA_RESTRICT 9]) | 
|  | 
| AA_API void | aa_tf_tfmat_imul (const double T0[AA_RESTRICT 12], const double T1[AA_RESTRICT 12], double T[AA_RESTRICT 12]) | 
|  | 
| AA_API void | aa_tf_tfmat_muli (const double T0[AA_RESTRICT 12], const double T1[AA_RESTRICT 12], double T[AA_RESTRICT 12]) | 
|  | 
| AA_API void | aa_tf_tfmat2_imul (const double R0[AA_RESTRICT 9], const double v0[AA_RESTRICT 3], const double R1[AA_RESTRICT 9], const double v1[AA_RESTRICT 3], double R[AA_RESTRICT 9], double v[AA_RESTRICT 3]) | 
|  | 
| AA_API void | aa_tf_tfmat2_muli (const double R0[AA_RESTRICT 9], const double v0[AA_RESTRICT 3], const double R1[AA_RESTRICT 9], const double v1[AA_RESTRICT 3], double R[AA_RESTRICT 9], double v[AA_RESTRICT 3]) | 
|  | 
| AA_API void | aa_tf_rotmat_rot (const double R[AA_RESTRICT 9], const double p0[AA_RESTRICT 3], double p1[AA_RESTRICT 3]) | 
|  | 
| AA_API void | aa_tf_tfmat_tf (const double T[AA_RESTRICT 12], const double p0[AA_RESTRICT 3], double p1[AA_RESTRICT 3]) | 
|  | 
| AA_API void | aa_tf_tfmat2_tf (const double R[AA_RESTRICT 9], const double v[AA_RESTRICT 3], const double p0[AA_RESTRICT 3], double p1[AA_RESTRICT 4]) | 
|  | 
| AA_API void | aa_tf_rotmat_inv1 (double R[AA_RESTRICT 9]) | 
|  | Invert a rotation in place. 
 | 
|  | 
| AA_API void | aa_tf_rotmat_inv2 (const double R[AA_RESTRICT 9], double Ri[AA_RESTRICT 9]) | 
|  | Invert a rotation. 
 | 
|  | 
| AA_API void | aa_tf_tfmat_inv1 (double T[AA_RESTRICT 12]) | 
|  | Invert a transform in place. 
 | 
|  | 
| AA_API void | aa_tf_tfmat_inv2 (const double T[AA_RESTRICT 12], double Ti[AA_RESTRICT 12]) | 
|  | Invert a transform. 
 | 
|  | 
| AA_API int | aa_tf_isrotmat (const double R[AA_RESTRICT 9]) | 
|  | tests if R is a rotation matrix 
 | 
|  | 
| AA_API void | aa_tf_9mul (const double R0[AA_RESTRICT 9], const double R1[AA_RESTRICT 9], double R[AA_RESTRICT 9]) | 
|  | Multiply two rotation matrices. 
 | 
|  | 
| AA_API void | aa_tf_9rot (const double R[AA_RESTRICT 9], const double p0[AA_RESTRICT 3], double p1[AA_RESTRICT 3]) | 
|  | rotate p0 by R 
 | 
|  | 
| AA_API void | aa_tf_9rel (const double R1[AA_RESTRICT 9], const double R2[AA_RESTRICT 9], double Ri[AA_RESTRICT 9]) | 
|  | relative transform from R1 to R2 
 | 
|  | 
| AA_API void | aa_tf_rotmat_exp_aa (const double aa[AA_RESTRICT 4], double R[AA_RESTRICT 9]) | 
|  | Rotation Matrix exponential from axis angle. 
 | 
|  | 
| AA_API void | aa_tf_rotmat_expv (const double rv[AA_RESTRICT 3], double R[AA_RESTRICT 9]) | 
|  | Rotation Matrix exponential from rotation vector. 
 | 
|  | 
| AA_API void | aa_tf_rotmat_lnv (const double R[AA_RESTRICT 9], double v[AA_RESTRICT 3]) | 
|  | Rotation Matrix logarithm. 
 | 
|  | 
| AA_API void | aa_tf_tfmat_expv (const double v[AA_RESTRICT 6], double T[AA_RESTRICT 12]) | 
|  | Transformation Matrix exponential. 
 | 
|  | 
| AA_API void | aa_tf_tfmat_lnv (const double T[AA_RESTRICT 12], double v[AA_RESTRICT 6]) | 
|  | Transformation Matrix logarithm. 
 | 
|  | 
| AA_API void | aa_tf_rotmat_vel2diff (const double R[AA_RESTRICT 9], const double w[AA_RESTRICT 3], double dR[AA_RESTRICT 9]) | 
|  | Velocity to rotation matrix derivative. 
 | 
|  | 
| AA_API void | aa_tf_rotmat_diff2vel (const double R[AA_RESTRICT 9], const double dR[AA_RESTRICT 9], double w[AA_RESTRICT 3]) | 
|  | Rotation matrix derivative to velocity. 
 | 
|  | 
| AA_API void | aa_tf_rotmat_svel (const double R0[AA_RESTRICT 9], const double w[AA_RESTRICT 3], double dt, double R1[AA_RESTRICT 9]) | 
|  | Integrate rotational velocity. 
 | 
|  | 
| AA_API void | aa_tf_tfmat_svel (const double T0[AA_RESTRICT 12], const double w[AA_RESTRICT 3], double dt, double T1[AA_RESTRICT 12]) | 
|  | Integrate rotational velocity. 
 | 
|  | 
| AA_API void | aa_tf_v9mul (double R[AA_RESTRICT 9], const double R1[AA_RESTRICT 9], const double R2[AA_RESTRICT 9],...) | 
|  | Vararg multiply two rotation matrices. 
 | 
|  | 
| AA_API void | aa_tf_rotmat_xy (const double x_axis[AA_RESTRICT 3], const double y_axis[AA_RESTRICT 3], double R[AA_RESTRICT 9]) | 
|  | Construct rotation matrix from an x and y axis of the child frame. 
 | 
|  | 
| AA_API void | aa_tf_rotmat_yz (const double y_axis[AA_RESTRICT 3], const double z_axis[AA_RESTRICT 3], double R[AA_RESTRICT 9]) | 
|  | Construct rotation matrix from a y and z axis of the child frame. 
 | 
|  | 
| AA_API void | aa_tf_rotmat_zx (const double z_axis[AA_RESTRICT 3], const double x_axis[AA_RESTRICT 3], double R[AA_RESTRICT 9]) | 
|  | Construct rotation matrix from a z and x axis of the child frame. 
 | 
|  | 
| static double | AA_TF_VDOT (const double a[AA_RESTRICT 3], const double b[AA_RESTRICT 3]) | 
|  | Inlined vector dot product. 
 | 
|  | 
| static float | AA_TF_VDOTF (const float a[AA_RESTRICT 3], const float b[AA_RESTRICT 3]) | 
|  | Inlined vector dot product. 
 | 
|  | 
| AA_API double | aa_tf_vdot (const double a[AA_RESTRICT 3], const double b[AA_RESTRICT 3]) | 
|  | Vector dot product. 
 | 
|  | 
| AA_API float | aa_tf_vdotf (const float a[AA_RESTRICT 3], const float b[AA_RESTRICT 3]) | 
|  | Vector dot product. 
 | 
|  | 
| static void | AA_TF_CROSS (const double a[AA_RESTRICT 3], const double b[AA_RESTRICT 3], double c[AA_RESTRICT 3]) | 
|  | Inlined Vector cross product. 
 | 
|  | 
| static void | AA_TF_CROSSF (const float a[AA_RESTRICT 3], const float b[AA_RESTRICT 3], float c[AA_RESTRICT 3]) | 
|  | Inlined Vector cross product. 
 | 
|  | 
| AA_API void | aa_tf_cross (const double a[AA_RESTRICT 3], const double b[AA_RESTRICT 3], double c[AA_RESTRICT 3]) | 
|  | Vector cross product. 
 | 
|  | 
| AA_API void | aa_tf_crossf (const float a[AA_RESTRICT 3], const float b[AA_RESTRICT 3], float c[AA_RESTRICT 3]) | 
|  | Vector cross product. 
 | 
|  | 
| AA_API void | aa_tf_vnormalize (double v[AA_RESTRICT 3]) | 
|  | Normalize Vector. 
 | 
|  | 
| AA_API void | aa_tf_vnormalizef (float v[AA_RESTRICT 3]) | 
|  | Normalize Vector. 
 | 
|  | 
| static double | AA_TF_QDOT (const double a[AA_RESTRICT 4], const double b[AA_RESTRICT 4]) | 
|  | Inlined quaternion dot product. 
 | 
|  | 
| double | aa_tf_qdot (const double a[AA_RESTRICT 4], const double b[AA_RESTRICT 4]) | 
|  | Quaternion dot product. 
 | 
|  | 
| AA_API void | aa_tf_qnormalize (double q[AA_RESTRICT 4]) | 
|  | Normalize Quaternion.  More... 
 | 
|  | 
| AA_API double | aa_tf_qnorm (const double q[AA_RESTRICT 4]) | 
|  | Return norm of the quaternion. 
 | 
|  | 
| AA_API void | aa_tf_qminimize (double q[AA_RESTRICT 4]) | 
|  | Minimize angle represented by the quaternion.  More... 
 | 
|  | 
| AA_API void | aa_tf_qminimize2 (const double q[AA_RESTRICT 4], double qmin[AA_RESTRICT 4]) | 
|  | 
| AA_API void | aa_tf_qnormalize2 (const double q[AA_RESTRICT 4], double qnorm[AA_RESTRICT 4]) | 
|  | Normailize quaternion. 
 | 
|  | 
| AA_API void | aa_tf_qconj (const double q[AA_RESTRICT 4], double r[AA_RESTRICT 4]) | 
|  | Quaternion conjugate. 
 | 
|  | 
| AA_API void | aa_tf_qexp (const double q[AA_RESTRICT 4], double r[AA_RESTRICT 4]) | 
|  | Quaternion exponential. 
 | 
|  | 
| AA_API void | aa_tf_qln (const double q[AA_RESTRICT 4], double r[AA_RESTRICT 4]) | 
|  | Quaternion natural log. 
 | 
|  | 
| AA_API void | aa_tf_qduln (const double q[AA_RESTRICT 4], const double dq[AA_RESTRICT 4], double dln[AA_RESTRICT 3]) | 
|  | Derivative of the Unit Quaternion Logarithm.  More... 
 | 
|  | 
| AA_API void | aa_tf_qdulnj (const double q[AA_RESTRICT 4], const double dq[AA_RESTRICT 4], double dln[AA_RESTRICT 3]) | 
|  | 
| AA_API void | aa_tf_qdpexp (const double e[AA_RESTRICT 3], const double de[AA_RESTRICT 3], double dq[AA_RESTRICT 4]) | 
|  | Derivative of the Pure Quaternion Exponential.  More... 
 | 
|  | 
| AA_API void | aa_tf_qdpexpj (const double e[AA_RESTRICT 3], const double de[AA_RESTRICT 3], double dq[AA_RESTRICT 4]) | 
|  | 
| double | aa_tf_qangle (const double q[AA_RESTRICT 4]) | 
|  | Return the angle of the quaternion.  More... 
 | 
|  | 
| double | aa_tf_qangle_rel (const double *q, const double *p) | 
|  | 
| double | aa_tf_quhypangle2 (const double q[AA_RESTRICT 4], const double p[AA_RESTRICT 4]) | 
|  | Return the angle between unit quaterniosn in 4D space. 
 | 
|  | 
| AA_API void | aa_tf_qinv (const double q[AA_RESTRICT 4], double r[AA_RESTRICT 4]) | 
|  | Quaternion inverse. 
 | 
|  | 
| AA_API void | aa_tf_qadd (const double a[AA_RESTRICT 4], const double b[AA_RESTRICT 4], double c[AA_RESTRICT 4]) | 
|  | Quaternion addition.  More... 
 | 
|  | 
| AA_API void | aa_tf_qsub (const double a[AA_RESTRICT 4], const double b[AA_RESTRICT 4], double c[AA_RESTRICT 4]) | 
|  | Quaternion subtraction.  More... 
 | 
|  | 
| AA_API void | aa_tf_qmul (const double a[AA_RESTRICT 4], const double b[AA_RESTRICT 4], double c[AA_RESTRICT 4]) | 
|  | Quaternion multiplication.  More... 
 | 
|  | 
| AA_API void | aa_tf_qmulnorm (const double a[AA_RESTRICT 4], const double b[AA_RESTRICT 4], double c[AA_RESTRICT 4]) | 
|  | Quaternion multiplication and normalize.  More... 
 | 
|  | 
| AA_API void | aa_tf_qmul_qv (const double q[AA_RESTRICT 4], const double v[AA_RESTRICT 3], double c[AA_RESTRICT 4]) | 
|  | Quaternion multiplication.  More... 
 | 
|  | 
| AA_API void | aa_tf_qmul_vq (const double v[AA_RESTRICT 3], const double q[AA_RESTRICT 4], double c[AA_RESTRICT 4]) | 
|  | Quaternion multiplication.  More... 
 | 
|  | 
| AA_API void | aa_tf_qcmul (const double a[AA_RESTRICT 4], const double b[AA_RESTRICT 4], double c[AA_RESTRICT 4]) | 
|  | Quaternion conjugate a and multiply by b.  More... 
 | 
|  | 
| AA_API void | aa_tf_qmulc (const double a[AA_RESTRICT 4], const double b[AA_RESTRICT 4], double c[AA_RESTRICT 4]) | 
|  | Quaternion multiply a by conjugate b.  More... 
 | 
|  | 
| AA_API void | aa_tf_qrot1 (const double q[AA_RESTRICT 4], double v[AA_RESTRICT 3]) | 
|  | Quaternion point rotation, in place. 
 | 
|  | 
| AA_API void | aa_tf_qrot (const double q[AA_RESTRICT 4], const double v[AA_RESTRICT 3], double p[AA_RESTRICT 3]) | 
|  | Quaternion point rotation.  More... 
 | 
|  | 
| AA_API void | aa_tf_qrel (const double q1[AA_RESTRICT 4], const double q2[AA_RESTRICT 4], double q_rel[AA_RESTRICT 4]) | 
|  | Relative orientation.  More... 
 | 
|  | 
| AA_API void | aa_tf_qslerp (double tau, const double a[AA_RESTRICT 4], const double b[AA_RESTRICT 4], double c[AA_RESTRICT 4]) | 
|  | Quaternion SLERP.  More... 
 | 
|  | 
| AA_API void | aa_tf_qslerpalg (double tau, const double a[AA_RESTRICT 4], const double b[AA_RESTRICT 4], double c[AA_RESTRICT 4]) | 
|  | Quaternion SLERP, computed algebraicly.  More... 
 | 
|  | 
| AA_API void | aa_tf_qslerpdiff (double tau, const double a[AA_RESTRICT 4], const double b[AA_RESTRICT 4], double c[AA_RESTRICT 4]) | 
|  | Derivative of quaternation SLERP WRT tau.  More... 
 | 
|  | 
| AA_API void | aa_tf_qslerpdiffalg (double tau, const double a[AA_RESTRICT 4], const double b[AA_RESTRICT 4], double c[AA_RESTRICT 4]) | 
|  | Derivative of quaternation SLERP WRT tau, computed algebraicly. 
 | 
|  | 
| AA_API void | aa_tf_qslerpchaindiff (double u, double du, const double q1[AA_RESTRICT 4], const double dq1[AA_RESTRICT 4], const double q2[AA_RESTRICT 4], const double dq2[AA_RESTRICT 4], double q[AA_RESTRICT 4], double dq[AA_RESTRICT 4]) | 
|  | Chain-rule slerp differentiation. 
 | 
|  | 
| AA_API void | aa_tf_qslerp3diff (double u12, double du12, const double q1[AA_RESTRICT 4], const double q2[AA_RESTRICT 4], double u34, double du34, const double q3[AA_RESTRICT 4], const double q4[AA_RESTRICT 4], double u, double du, double q[AA_RESTRICT 4], double dq[AA_RESTRICT 4]) | 
|  | Triad sequence of slerp differentiation. 
 | 
|  | 
| AA_API void | aa_tf_qdiff2vel (const double q[AA_RESTRICT 4], const double dq_dt[AA_RESTRICT 4], double v[AA_RESTRICT 3]) | 
|  | 
| AA_API void | aa_tf_qvel2diff (const double q[AA_RESTRICT 4], const double v[AA_RESTRICT 3], double dq_dt[AA_RESTRICT 4]) | 
|  | 
| AA_API void | aa_tf_rotvec_diff2vel (const double v[3], const double dv[3], double w[3]) | 
|  | 
| AA_API void | aa_tf_qrk1 (const double q0[AA_RESTRICT 4], const double dq[AA_RESTRICT 4], double dt, double q1[AA_RESTRICT 4]) | 
|  | Integrate unit quaternion, Runge-Kutta-1 (euler) integration.  More... 
 | 
|  | 
| AA_API void | aa_tf_qvelrk1 (const double q0[AA_RESTRICT 4], const double v[AA_RESTRICT 3], double dt, double q1[AA_RESTRICT 4]) | 
|  | Integrate unit quaternion from angular velocity, Runge-Kutta-1 (euler) integration.  More... 
 | 
|  | 
| AA_API void | aa_tf_qvelrk4 (const double q0[AA_RESTRICT 4], const double v[AA_RESTRICT 3], double dt, double q1[AA_RESTRICT 4]) | 
|  | Integrate unit quaternion from angular velocity, Runge-Kutta-4 (euler) integration.  More... 
 | 
|  | 
| AA_API void | aa_tf_qsvel (const double q0[AA_RESTRICT 4], const double v[AA_RESTRICT 3], double dt, double q1[AA_RESTRICT 4]) | 
|  | Integrate unit quaternion from constant angular velocity.  More... 
 | 
|  | 
| AA_API void | aa_tf_qsdiff (const double q0[AA_RESTRICT 4], const double dq[AA_RESTRICT 4], double dt, double q1[AA_RESTRICT 4]) | 
|  | Integrate unit quaternion from quaternion derivative.  More... 
 | 
|  | 
| AA_API void | aa_tf_xangle2quat (double theta_x, double q[AA_RESTRICT 4]) | 
|  | Unit quaternion for angle about x axis. 
 | 
|  | 
| AA_API void | aa_tf_yangle2quat (double theta_y, double q[AA_RESTRICT 4]) | 
|  | Unit quaternion for angle about y axis. 
 | 
|  | 
| AA_API void | aa_tf_zangle2quat (double theta_z, double q[AA_RESTRICT 4]) | 
|  | Unit quaternion for angle about z axis. 
 | 
|  | 
| AA_API void | aa_tf_quat_davenport_matrix (size_t n, const double *w, const double *q, size_t ldqq, double *M) | 
|  | 
| AA_API void | aa_tf_quat_davenport (size_t n, const double *w, const double *Q, size_t ldq, double *y) | 
|  | 
| AA_API void | aa_tf_qmatrix_l (const double *q, double *M, size_t ldm) | 
|  | Construct matrix for left quaternion multiply q*p = M*p. 
 | 
|  | 
| AA_API void | aa_tf_qmatrix_r (const double *q, double *M, size_t ldm) | 
|  | Construct matrix for right quaternion multiply p*q = M*p. 
 | 
|  | 
| void | aa_tf_qurand (double q[4]) | 
|  | Generate random unit quaternion. 
 | 
|  | 
| AA_API void | aa_tf_axang_make (double x, double y, double z, double theta, double axang[AA_RESTRICT 4]) | 
|  | copy x,y,z,theta into axang 
 | 
|  | 
| AA_API void | aa_tf_axang_permute (const double rv[AA_RESTRICT 4], int k, double rv_p[AA_RESTRICT 4]) | 
|  | Scales angle by k * 2 * pi. 
 | 
|  | 
| AA_API void | aa_tf_rotvec_permute (const double rv[AA_RESTRICT 3], int k, double rv_p[AA_RESTRICT 3]) | 
|  | find alternate equivalent representations of rv 
 | 
|  | 
| AA_API void | aa_tf_rotvec_near (const double rv[AA_RESTRICT 3], const double rv_near[AA_RESTRICT 3], double rv_p[AA_RESTRICT 3]) | 
|  | Scales rv by multiple of 2pi to minimized SSD with rv_near. 
 | 
|  | 
| void | aa_tf_qv_conj (const double q[4], const double v[3], double qc[4], double vc[3]) | 
|  | quaternion-translation conjugate 
 | 
|  | 
| void | aa_tf_qutr2duqu (const double e[7], double s[8]) | 
|  | quaternion-translation to dual quaternion 
 | 
|  | 
| void | aa_tf_qutr2tfmat (const double e[7], double T[12]) | 
|  | quaternion-translation to transformation matrix 
 | 
|  | 
| void | aa_tf_tfmat2qutr (const double T[12], double e[7]) | 
|  | transformation matrix to quaternion-translation 
 | 
|  | 
| void | aa_tf_duqu2qutr (const double s[8], double e[7]) | 
|  | dual quaternion to quaternion-translation 
 | 
|  | 
| void | aa_tf_qutr_mul (const double a[7], const double b[7], double c[7]) | 
|  | quaternion-translation multiply 
 | 
|  | 
| AA_API void | aa_tf_qutr_tf (const double E[AA_RESTRICT 7], const double p0[AA_RESTRICT 3], double p1[AA_RESTRICT 3]) | 
|  | Transform a point,. 
 | 
|  | 
| void | aa_tf_qutr_mulnorm (const double a[7], const double b[7], double c[7]) | 
|  | quaternion-translation multiply and normalize 
 | 
|  | 
| void | aa_tf_qutr_conj (const double a[7], double c[7]) | 
|  | quaternion-translation conjugate 
 | 
|  | 
| void | aa_tf_qutr_mulc (const double a[7], const double b[7], double c[7]) | 
|  | quaternion-translation conjugate multiply 
 | 
|  | 
| void | aa_tf_qutr_cmul (const double a[7], const double b[7], double c[7]) | 
|  | quaternion-translation conjugate multiply 
 | 
|  | 
| void | aa_tf_qutr_diff2vel (const double e[7], const double de[7], double dx[6]) | 
|  | Quaternion-translation derivative to spatial velocity. 
 | 
|  | 
| void | aa_tf_qutr_vel2diff (const double e[7], const double dx[6], double de[7]) | 
|  | Quaternion-translation spatial velocity to derivative. 
 | 
|  | 
| void | aa_tf_qutr_svel (const double e0[7], const double dx[6], double dt, double e1[7]) | 
|  | Integrate a quaternion-translation. 
 | 
|  | 
| void | aa_tf_qutr_sdiff (const double e0[7], const double de[7], double dt, double e1[7]) | 
|  | Integrate a quaternion-translation. 
 | 
|  | 
| void | aa_tf_qutr_wavg (size_t n, const double *w, const double *EE, size_t ldee, double *a) | 
|  | Weighted average transform. 
 | 
|  | 
| void | aa_tf_qutr_rand (double E[7]) | 
|  | Generate random transform. 
 | 
|  | 
| AA_API void | aa_tf_quat2axang (const double q[AA_RESTRICT 4], double axang[AA_RESTRICT 4]) | 
|  | Quaternion to axis-angle.  More... 
 | 
|  | 
| AA_API void | aa_tf_axang2quat (const double axang[AA_RESTRICT 4], double q[AA_RESTRICT 4]) | 
|  | axis-angle to quaternion.  More... 
 | 
|  | 
| AA_API void | aa_tf_axang2quat2 (const double axis[AA_RESTRICT 3], double angle, double q[AA_RESTRICT 4]) | 
|  | axis-angle to quaternion.  More... 
 | 
|  | 
| AA_API void | aa_tf_vecs2quat (const double u[AA_RESTRICT 3], const double v[AA_RESTRICT 3], double q[AA_RESTRICT 4]) | 
|  | Convert rotation between two vectors to a quaternion. 
 | 
|  | 
| AA_API void | aa_tf_axang2rotvec (const double axang[AA_RESTRICT 4], double rotvec[AA_RESTRICT 3]) | 
|  | convert axis-angle to rotation vector 
 | 
|  | 
| AA_API void | aa_tf_rotvec2axang (const double rotvec[AA_RESTRICT 3], double axang[AA_RESTRICT 4]) | 
|  | convert rotation vector to axis-angle 
 | 
|  | 
| AA_API void | aa_tf_rotvec2quat (const double rotvec[AA_RESTRICT 3], double q[AA_RESTRICT 4]) | 
|  | covert rotation vector to quaternion 
 | 
|  | 
| AA_API void | aa_tf_quat2rotvec (const double q[AA_RESTRICT 4], double rotvec[AA_RESTRICT 3]) | 
|  | covert quaternion to rotation vector 
 | 
|  | 
| AA_API void | aa_tf_quat2rotvec_near (const double q[AA_RESTRICT 4], const double rv_near[AA_RESTRICT 3], double rotvec[AA_RESTRICT 3]) | 
|  | covert quaternion to rotation vector minimizing distance from rv_near 
 | 
|  | 
| AA_API void | aa_tf_quat2rotmat (const double quat[AA_RESTRICT 4], double rotmat[AA_RESTRICT 9]) | 
|  | convert quaternion to rotation matrix 
 | 
|  | 
| AA_API void | aa_tf_rotmat2quat (const double rotmat[AA_RESTRICT 9], double quat[AA_RESTRICT 4]) | 
|  | convert rotation matrix to quaternion 
 | 
|  | 
| AA_API void | aa_tf_rotmat2axang (const double R[AA_RESTRICT 9], double ra[AA_RESTRICT 4]) | 
|  | convert rotation matrix to axis angle 
 | 
|  | 
| AA_API void | aa_tf_rotmat2rotvec (const double R[AA_RESTRICT 9], double rv[AA_RESTRICT 3]) | 
|  | convert axis rotation matrix to rotation vector 
 | 
|  | 
| AA_API void | aa_tf_axang2rotmat (const double ra[AA_RESTRICT 4], double R[AA_RESTRICT 9]) | 
|  | convert axis angle to rotation matrix 
 | 
|  | 
| AA_API void | aa_tf_rotvec2rotmat (const double rv[AA_RESTRICT 3], double R[AA_RESTRICT 9]) | 
|  | convert rotatoin vector to rotation matrix 
 | 
|  | 
| AA_API void | aa_tf_qv2tfmat (const double q[AA_RESTRICT 4], const double v[AA_RESTRICT 3], double T[AA_RESTRICT 12]) | 
|  | Convert orientation unit quaternion and translation vector to transformation matrix.  More... 
 | 
|  | 
| AA_API void | aa_tf_rotmat2eulerzyx (const double R[AA_RESTRICT 9], double e[AA_RESTRICT 3]) | 
|  | Convert Rotation Matrix to ZYX Euler Angles. 
 | 
|  | 
| AA_API void | aa_tf_quat2eulerzyx (const double q[AA_RESTRICT 4], double e[AA_RESTRICT 3]) | 
|  | Convert quaternion to ZYX Euler Angles. 
 | 
|  | 
| AA_API void | aa_tf_xangle2rotmat (double theta_x, double R[AA_RESTRICT 9]) | 
|  | Angle about x axis. 
 | 
|  | 
| AA_API void | aa_tf_yangle2rotmat (double theta_y, double R[AA_RESTRICT 9]) | 
|  | Angle about y axis. 
 | 
|  | 
| AA_API void | aa_tf_zangle2rotmat (double theta_z, double R[AA_RESTRICT 9]) | 
|  | Angle about z axis. 
 | 
|  | 
| AA_API void | aa_tf_rotmat_mzlook (const double eye[AA_RESTRICT 3], const double target[AA_RESTRICT 3], const double up[AA_RESTRICT 3], double R[AA_RESTRICT 9]) | 
|  | Find the camera frame, looking in negative z direction. 
 | 
|  | 
| AA_API void | aa_tf_tfmat_mzlook (const double eye[AA_RESTRICT 3], const double target[AA_RESTRICT 3], const double up[AA_RESTRICT 3], double T[AA_RESTRICT 12]) | 
|  | Find the camera frame, looking in negative z direction. 
 | 
|  | 
| AA_API void | aa_tf_qmzlook (const double eye[AA_RESTRICT 3], const double target[AA_RESTRICT 3], const double up[AA_RESTRICT 3], double q[AA_RESTRICT 4]) | 
|  | Find the camera frame, looking in negative z direction. 
 | 
|  | 
| AA_API void | aa_tf_qv_mzlook (const double eye[AA_RESTRICT 3], const double target[AA_RESTRICT 3], const double up[AA_RESTRICT 3], double q[AA_RESTRICT 4], double v[AA_RESTRICT 3]) | 
|  | Find the camera frame, looking in negative z direction. 
 | 
|  | 
| AA_API void | aa_tf_qutr_mzlook (const double eye[AA_RESTRICT 3], const double target[AA_RESTRICT 3], const double up[AA_RESTRICT 3], double T[AA_RESTRICT 12]) | 
|  | Find the camera frame, looking in negative z direction. 
 | 
|  | 
| AA_API void | aa_tf_duqu_add (const double d1[AA_RESTRICT 8], const double d2[AA_RESTRICT 8], double d3[AA_RESTRICT 8]) | 
|  | Dual quaternion addition. 
 | 
|  | 
| AA_API void | aa_tf_duqu_sub (const double d1[AA_RESTRICT 8], const double d2[AA_RESTRICT 8], double d3[AA_RESTRICT 8]) | 
|  | Dual quaternion subtraction. 
 | 
|  | 
| AA_API void | aa_tf_duqu_smul (const double d1[AA_RESTRICT 8], const double d2[AA_RESTRICT 8], double d3[AA_RESTRICT 8]) | 
|  | Dual quaternion scalar multiplication. 
 | 
|  | 
| AA_API void | aa_tf_duqu_mul (const double d1[AA_RESTRICT 8], const double d2[AA_RESTRICT 8], double d3[AA_RESTRICT 8]) | 
|  | Dual quaternion multiplication. 
 | 
|  | 
| AA_API void | aa_tf_duqu_matrix_l (const double *q, double *M, size_t ldm) | 
|  | Construct matrix for left dual quaternion multiply q*p = M*p. 
 | 
|  | 
| AA_API void | aa_tf_duqu_matrix_r (const double *q, double *M, size_t ldm) | 
|  | Construct matrix for right dual quaternion multiply p*q = M*p. 
 | 
|  | 
| AA_API void | aa_tf_duqu_cmul (const double d1[AA_RESTRICT 8], const double d2[AA_RESTRICT 8], double d3[AA_RESTRICT 8]) | 
|  | Dual quaternion multiply conjugate of d1 by d2. 
 | 
|  | 
| AA_API void | aa_tf_duqu_mulc (const double d1[AA_RESTRICT 8], const double d2[AA_RESTRICT 8], double d3[AA_RESTRICT 8]) | 
|  | Dual quaternion multiply d1 by conjugate of d2. 
 | 
|  | 
| AA_API void | aa_tf_duqu_conj (const double d[AA_RESTRICT 8], double dconj[AA_RESTRICT 8]) | 
|  | Dual quaternion conjugate. 
 | 
|  | 
| AA_API void | aa_tf_duqu_exp (const double d[AA_RESTRICT 8], double e[AA_RESTRICT 8]) | 
|  | Dual quaternion exponential. 
 | 
|  | 
| AA_API void | aa_tf_duqu_ln (const double d[AA_RESTRICT 8], double e[AA_RESTRICT 8]) | 
|  | Dual quaternion natural logarithm. 
 | 
|  | 
| AA_API void | aa_tf_duqu_norm (const double d[AA_RESTRICT 8], double *nreal, double *ndual) | 
|  | Dual quaternion norm. 
 | 
|  | 
| AA_API void | aa_tf_duqu_normalize (double d[AA_RESTRICT 8]) | 
|  | Dual quaternion normalization. 
 | 
|  | 
| AA_API void | aa_tf_duqu_minimize (double d[AA_RESTRICT 8]) | 
|  | Dual quaternion angle minimization. 
 | 
|  | 
| AA_API void | aa_tf_tf_duqu (const double d[AA_RESTRICT 8], const double p0[AA_RESTRICT 3], double p1[AA_RESTRICT 3]) | 
|  | Dual quaternion transformation. 
 | 
|  | 
| AA_API void | aa_tf_duqu_trans (const double d[AA_RESTRICT 8], double v[AA_RESTRICT 3]) | 
|  | Extract dual quaternion translation vector. 
 | 
|  | 
| AA_API void | aa_tf_duqu2tfmat (const double d[AA_RESTRICT 8], double T[AA_RESTRICT 12]) | 
|  | Convert dual quaternion to transformation matrix. 
 | 
|  | 
| AA_API void | aa_tf_tfmat2duqu (const double T[AA_RESTRICT 12], double d[AA_RESTRICT 8]) | 
|  | Convert transformation matrix to dual quaternion. 
 | 
|  | 
| AA_API void | aa_tf_qv2duqu (const double q[AA_RESTRICT 4], const double v[AA_RESTRICT 3], double d[AA_RESTRICT 8]) | 
|  | Convert orientation unit quaternion and translation vector to dual quaternion.  More... 
 | 
|  | 
| AA_API void | aa_tf_xyz2duqu (double x, double y, double z, double d[AA_RESTRICT 8]) | 
|  | Pure translation dual quaternion.  More... 
 | 
|  | 
| AA_API void | aa_tf_xxyz2duqu (double theta, double x, double y, double z, double d[AA_RESTRICT 8]) | 
|  | Convert x angle and translation to dual quaternion.  More... 
 | 
|  | 
| AA_API void | aa_tf_yxyz2duqu (double theta, double x, double y, double z, double d[AA_RESTRICT 8]) | 
|  | Convert y angle and translation to dual quaternion.  More... 
 | 
|  | 
| AA_API void | aa_tf_zxyz2duqu (double theta, double x, double y, double z, double d[AA_RESTRICT 8]) | 
|  | Convert z angle and translation to dual quaternion.  More... 
 | 
|  | 
| AA_API void | aa_tf_duqu2qv (const double d[AA_RESTRICT 8], double q[AA_RESTRICT 4], double v[AA_RESTRICT 3]) | 
|  | Convert dual quaternion to orientation unit quaternion and translation vector.  More... 
 | 
|  | 
| void | aa_tf_tfmat2av (const double T[12], double q[AA_RESTRICT 4], double v[AA_RESTRICT 3]) | 
|  | transformation matrix to quaternion-translation 
 | 
|  | 
| AA_API void | aa_tf_duqu_vel2twist (const double d[AA_RESTRICT 8], const double dx[AA_RESTRICT 6], double t[AA_RESTRICT 8]) | 
|  | Dual quaternion twist from velocity. 
 | 
|  | 
| AA_API void | aa_tf_duqu_twist2vel (const double d[AA_RESTRICT 8], const double t[AA_RESTRICT 8], double dx[AA_RESTRICT 6]) | 
|  | Dual quaternion twist to velocity. 
 | 
|  | 
| AA_API void | aa_tf_duqu_twist2diff (const double d[AA_RESTRICT 8], const double t[AA_RESTRICT 8], double dd[AA_RESTRICT 8]) | 
|  | Dual quaternion twist to derivative. 
 | 
|  | 
| AA_API void | aa_tf_duqu_vel2diff (const double d[AA_RESTRICT 8], const double dx[AA_RESTRICT 6], double dd[AA_RESTRICT 8]) | 
|  | Dual quaternion derivative from velocity. 
 | 
|  | 
| AA_API void | aa_tf_duqu_diff2vel (const double d[AA_RESTRICT 8], const double dd[AA_RESTRICT 8], double dx[AA_RESTRICT 6]) | 
|  | Dual quaternion derivative to spatial velocity. 
 | 
|  | 
| AA_API void | aa_tf_duqu_diff2twist (const double d[AA_RESTRICT 8], const double dd[AA_RESTRICT 8], double twist[AA_RESTRICT 8]) | 
|  | Convert dual quaternion derivative to dual quaternion twist. 
 | 
|  | 
| AA_API void | aa_tf_duqu_stwist (const double d0[AA_RESTRICT 8], const double twist[AA_RESTRICT 8], double dt, double d1[AA_RESTRICT 6]) | 
|  | Dual quaternion twist integration.  More... 
 | 
|  | 
| AA_API void | aa_tf_duqu_svel (const double d0[AA_RESTRICT 8], const double dx[AA_RESTRICT 6], double dt, double d1[AA_RESTRICT 6]) | 
|  | Dual quaternion velocity integration.  More... 
 | 
|  | 
| AA_API void | aa_tf_duqu_sdiff (const double d0[AA_RESTRICT 8], const double dd[AA_RESTRICT 8], double dt, double d1[AA_RESTRICT 6]) | 
|  | Dual quaternion derivative integration.  More... 
 | 
|  | 
| void | aa_tf_relx_mean (size_t n, const double *R, const double *X, size_t ldx, const double *Y, size_t ldy, double rel[3]) | 
|  | 
| void | aa_tf_relx_median (size_t n, const double *R, const double *X, size_t ldx, const double *Y, size_t ldy, double rel[3]) | 
|  |