List of API Functions Related to Fixed Decimals

Data Types

Fixed decimal type

fx16 This type represents a signed fixed point decimal with a 3-bit integer and 12-bit fraction.
fx32 This type represents a signed fixed point decimal with a 19-bit integer and 12-bit fraction.
fx64 This type represents a signed fixed point decimal with a 51-bit integer and 12-bit fraction.
fx64c This type represents a signed fixed point decimal with a 31-bit integer and 32-bit fraction.

Matrix/Vector Types

MtxFx22 This is a 2x2 matrix with elements of type fx32.
MtxFx33 This is a 3x3 matrix with elements of type fx32.
MtxFx43 This is a 4x3 matrix with elements of type fx32.
MtxFx44 This is a 4x4 matrix with elements of type fx32.
VecFx32 This is a three-dimensional vector with elements of type fx32.
VecFx16 This is a three-dimensional vector with elements of type fx16.

Initialization

Initialization

FX_Init This initializes the fixed-point decimal APIs.

Calculation

Calculation of Fixed Decimal

FX_Whole Returns results as integers by discarding values after the decimal point.
FX_Floor Discards values after the decimal point.
FX_Modf Separates fx32 into integer and decimal portions.
FX_Mul Performs multiplication calculations with other fx32 types.
FX_Mul32x64c Performs multiplication calculations of fx32 and fx64c types.
FX_Div Performs division calculations with other fx32 types.
FX_DivFx64c Performs division calculations with other fx32 types. Returns an fx64c value.
FX_Mod Returns the remainder of dividing two fx32 types.
FX_Sqrt Obtains a square root of type fx32.
FX_InvSqrt Obtains the reciprocal of a square root of type fx32.
FX_Inv Obtains a reciprocal number of type fx32 and returns an fx32 value.
FX_InvFx64c Obtains a reciprocal number of type fx32 and returns an fx64c value.
FX_SinIdx Calculates a sine. Receives a 16-bit index and returns the result as type fx16 (table lookup).
FX_CosIdx Calculates a cosine. Receives a 16-bit index and returns the result as type fx16 (table lookup).
FX_SinFx64c Calculates a sine. Receives radians as fx32 type and returns the result as type fx64c (when precision is required).
FX_CosFx64c Calculates a cosine. Receives radians as fx32 type and returns the result as type fx64c (when precision is required).
FX_AtanIdx Calculates the arctangent. Receives fx32 type values and returns results as u16 type (table lookup).
FX_Atan2Idx Calculates the arctangent. Receives (y, x) as fx32 type values and returns results as u16 type (table lookup).
FX_Atan Calculates the arctangent. Receives fx32 type values and returns results as fx16 type (in units of radian) (table lookup).
FX_Atan2 Calculates the arctangent. Receives (y, x) as fx32 type values and returns results as fx16 type (in units of radian) (table lookup).

Calculation of Fixed Decimal (Asynchronous)

FX_DivAsync Performs asynchronous division.
FX_DivAsyncImm Performs asynchronous division. It does not set the division mode.
FX_GetDivResultFx64c Obtains the result of division as an fx64c type.
FX_GetDivResult Obtains the result of division as a fx32 type.
FX_InvAsync Performs asynchronous reciprocal calculations.
FX_InvAsyncImm Performs asynchronous reciprocal calculations. It does not set the division mode.
FX_GetInvResultFx64c Same as FX_GetDivResultFx64c.
FX_GetInvResult Same as FX_GetDivResult.
FX_SqrtAsync Performs asynchronous square root calculations.
FX_SqrtAsyncImm Performs asynchronous square root calculations. Does not set the square root calculation mode.
FX_GetSqrtResult Obtains the result of a square root calculation as a fx32 type.

2x2 Matrix Calculation

MTX_Identity22 Sets the identity matrix.
MTX_Transpose22 Sets the transpose of a matrix.
MTX_Scale22 Sets the scale matrix.
MTX_ScaleApply22 Apply the scale matrix from left.
MTX_Rot22 Sets the rotation matrix
MTX_Inverse22 Calculates the inverse matrix.
MTX_Concat22 Performs matrix multiplication.

3x3 Matrix Calculation

MTX_Identity33 Sets the identity matrix.
MTX_Copy33To43 Copies a matrix.
MTX_Copy33To44 Copies a matrix.
MTX_Transpose33 Sets the transpose of a matrix.
MTX_Scale33 Sets the scale matrix.
MTX_ScaleApply33 Apply the scale matrix from left.
MTX_RotX33 Sets the rotation matrix for the X-axis.
MTX_RotY33 Sets the rotation matrix for the Y-axis.
MTX_RotZ33 Sets the rotation matrix for the Z-axis.
MTX_RotAxis33 Sets the rotation matrix for any axis.
MTX_Inverse33 Calculates the inverse matrix.
MTX_Concat33 Performs matrix multiplication.
MTX_MultVec33 Applies the matrix to a vector from left.

4x3 Matrix Calculation

MTX_Identity43 Sets the identity matrix.
MTX_Copy43To33 Copies a matrix.
MTX_Copy43To44 Copies a matrix.
MTX_Transpose43 Sets the transpose of a matrix.
MTX_Scale43 Sets the scale matrix.
MTX_ScaleApply43 Apply the scale matrix from left.
MTX_RotX43 Sets the rotation matrix for the X-axis.
MTX_RotY43 Sets the rotation matrix for the Y-axis.
MTX_RotZ43 Sets the rotation matrix for the Z-axis.
MTX_RotAxis43 Sets the rotation matrix for any axis.
MTX_Inverse43 Calculates the inverse matrix.
MTX_Concat43 Performs matrix multiplication.
MTX_MultVec43 Applies the matrix to a vector from left.
MTX_TransApply43 Applies from left a matrix with the translation matrix.
MTX_LookAt Sets the camera matrix to the matrix.

4x4 Matrix Calculation

MTX_Identity44 Sets the identity matrix.
MTX_Copy44To33 Copies a matrix.
MTX_Copy44To43 Copies a matrix.
MTX_Transpose44 Sets the transpose of a matrix.
MTX_Scale44 Sets the scale matrix.
MTX_ScaleApply44 Apply the scale matrix from left.
MTX_RotX44 Sets the rotation matrix for the X-axis.
MTX_RotY44 Sets the rotation matrix for the Y-axis.
MTX_RotZ44 Sets the rotation matrix for the Z-axis.
MTX_RotAxis44 Sets the rotation matrix for any axis.
MTX_Concat44 Performs matrix multiplication.
MTX_TransApply44 Applies from left a matrix with the translation matrix.
MTX_Frustum Sets the projection matrix.
MTX_Perspective Sets the projection matrix.
MTX_Ortho Sets the projection matrix.
MTX_FrustumW Sets the projection matrix. (with scale W parameters)
MTX_PerspectiveW Sets the projection matrix (with the scaleW parameter)
MTX_OrthoW Sets the projection matrix. (with scale W parameters)

Vector Calculation

VEC_Set Sets up values in fx32 type 3-dimensional vectors.
VEC_Add Adds two fx32 type 3-dimensional vectors.
VEC_Subtract Subtracts two fx32 type 3-dimensional vectors.
VEC_DotProduct Calculates the dot product of fx32 type 3-dimensional vectors.
VEC_CrossProduct Calculates the cross product of fx32 type 3-dimensional vectors.
VEC_Mag Calculates the magnitude of a fx32 type 3-dimensional vector.
VEC_Distance Calculates the distance between two fx32 type 3-dimensional vectors.
VEC_Normalize Normalizes a fx32 type 3-dimensional vector.
VEC_MultAdd Scalar multiplies a fx32 type 3-dimensional vector and then adds a fx32 type 3-dimensional vector.
VEC_MultSubtract Scalar multiplies a fx32 type 3-dimensional vector and then subtracts a fx32 type 3-dimensional vector.
VEC_Fx16Set Sets up values in fx16 type 3-dimensional vectors.
VEC_Fx16Add Adds two fx16 type 3-dimensional vectors.
VEC_Fx16Subtract Subtracts two fx16 type 3-dimensional vectors.
VEC_Fx16DotProduct Calculates the dot product of fx16 type 3-dimensional vectors.
VEC_Fx16CrossProduct Calculates the cross product of fx16 type 3-dimensional vectors.
VEC_Fx16Mag Calculates the magnitude of a fx16 type 3-dimensional vector.
VEC_Fx16Distance Calculates the distance between two fx16 type 3-dimensional vectors.
VEC_Fx16Normalize Normalizes a fx16 type 3-dimensional vector.

Other

FX_DivS32 Division with s32 types.
FX_ModS32 Calculates the remainder from s32 type division.

Macros

fx16 Type Macros

fx32 Type Macros

fx64 Type Macros

fx64c Type Macros

Constants

fx16 Type Constant Macros

fx32 Type Constant Macros

fx64c Type Constant Macros