List of API Functions Related to Fixed Decimals

Data type

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 type

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.

Calculations

Calculations of Fixed-point Decimals

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).

Calculations of Fixed-point Decimals (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 calculations

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 calculations

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

Applies 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 calculations

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

Applies with 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 from left a matrix with a vector.

MTX_TransApply43

Applies from left a matrix with the translation matrix.

MTX_LookAt

Sets the camera matrix to the matrix.

4x4 matrix calculations

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

Applies the scale matrix from the 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 the scaleW parameter).

MTX_PerspectiveW

Sets the projection matrix (with the scaleW parameter)

MTX_OrthoW

Sets the projection matrix (with the scaleW parameter)

Vector calculations

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.

Miscellaneous

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