Sign in Join
FPDoc Onlineexperiment

matrix unit

Two, three, four dimensional matrix unit.

The unit matrix is a unit that provides objects for the common two, three and four dimensional vectors matrices. These vectors and matrices are very common in computer graphics and are often implemented from scratch by programmers while every implementation provides exactly the same functionality.

It makes therefore sense to provide this functionality in the runtime library. This eliminates the need for programmers to reinvent the wheel and also allows libraries that use matrix operations to become more compatible.

The matrix unit does not provide n-dimensional matrices. The functionality needs of a general matrix unit varies from application to application; one can think of reduced memory usage tricks for matrices that only have data around the diagonal etc., desire for parallelization etc. etc. It is believed that programmers that do use n-dimensional matrices would not necessarily benefit from such a unit in the runtime library.

Design goals:

  • Provide common dimensions, two three and four.
  • Provide multiple floating point precisions, single, double, extended.
  • Simple trivial binary representation; it is possible to typecast vectors into other implementations that use the same trivial representation.
  • No dynamic memory management in the background. It must be possible to write expressions like matrix A * B * C without worrying about memory management.

Design decisions:

  • Class object model is ruled out. The objects object model, without virtual methods, is suitable.
  • Operator overloading is a good way to allow programmers to write matrix expressions.
  • 3 dimensions * 3 precision means 9 vector and 9 matrix objects. Macro's have been used in the source to take care of this.

Classes and records

Tmatrix2_doubleobjectDouble precision matrix of two scalars.
Tmatrix2_extendedobjectExtended precision matrix of two scalars.
Tmatrix2_singleobjectSingle precision matrix of two scalars.
Tmatrix3_doubleobjectDouble precision matrix of three scalars.
Tmatrix3_extendedobjectExtended precision matrix of three scalars.
Tmatrix3_singleobjectSingle precision matrix of three scalars.
Tmatrix4_doubleobjectDouble precision matrix of four scalars.
Tmatrix4_extendedobjectExtended precision matrix of extended scalars.
Tmatrix4_singleobjectSingle precision matrix of four scalars.
Tvector2_doubleobjectDouble precision vector of two scalars.
Tvector2_extendedobjectExtended precision vector of two scalars.
Tvector2_singleobjectSingle precision vector of two scalars.
Tvector3_doubleobjectDouble precision vector of three scalars.
Tvector3_extendedobjectExtended precision vector of three scalars.
Tvector3_singleobjectSingle precision vector of three scalars.
Tvector4_doubleobjectDouble precision vector of four scalars.
Tvector4_extendedobjectExtended precision vector of extended scalars.
Tvector4_singleobjectSingle precision vector of four scalars.

Procedures and functions

add(Tmatrix2_double,Double):Tmatrix2_doubleoperatorAdd scalar to two-dimensional double precision matrix.
add(Tmatrix2_double,Tmatrix2_double):Tmatrix2_doubleoperatorAdd two two-dimensional double precision matrices together.
add(Tmatrix2_extended,extended):Tmatrix2_extendedoperatorAdd scalar to two-dimensional extended precision matrix.
add(Tmatrix2_extended,Tmatrix2_extended):Tmatrix2_extendedoperatorAdd two two-dimensional extended precision matrices together.
add(Tmatrix2_single,single):Tmatrix2_singleoperatorAdd scalar to two-dimensional single precision matrix.
add(Tmatrix2_single,Tmatrix2_single):Tmatrix2_singleoperatorAdd two two-dimensional single precision matrices together.
add(Tmatrix3_double,Double):Tmatrix3_doubleoperatorAdd scalar to three-dimensional double precision matrix.
add(Tmatrix3_double,Tmatrix3_double):Tmatrix3_doubleoperatorAdd two three-dimensional double precision matrices together.
add(Tmatrix3_extended,extended):Tmatrix3_extendedoperatorAdd scalar to three-dimensional extended precision matrix.
add(Tmatrix3_extended,Tmatrix3_extended):Tmatrix3_extendedoperatorAdd two three-dimensional extended precision matrices together.
add(Tmatrix3_single,single):Tmatrix3_singleoperatorAdd scalar to three-dimensional single precision matrix.
add(Tmatrix3_single,Tmatrix3_single):Tmatrix3_singleoperatorAdd two three-dimensional single precision matrices together.
add(Tmatrix4_double,Double):Tmatrix4_doubleoperatorAdd scalar to four-dimensional double precision matrix.
add(Tmatrix4_double,Tmatrix4_double):Tmatrix4_doubleoperatorAdd two four-dimensional double precision matrices together.
add(Tmatrix4_extended,extended):Tmatrix4_extendedoperatorAdd scalar to four-dimensional extended precision matrix.
add(Tmatrix4_extended,Tmatrix4_extended):Tmatrix4_extendedoperatorAdd two four-dimensional extended precision matrices together.
add(Tmatrix4_single,single):Tmatrix4_singleoperatorAdd scalar to four-dimensional single precision matrix.
add(Tmatrix4_single,Tmatrix4_single):Tmatrix4_singleoperatorAdd two four-dimensional single precision matrices together.
add(Tvector2_double,Double):Tvector2_doubleoperatorAdd scalar to two-dimensional double precision vector.
add(Tvector2_double,Tvector2_double):Tvector2_doubleoperatorAdd two-dimensional double precision vectors together.
add(Tvector2_extended,extended):Tvector2_extendedoperatorAdd scalar to two-dimensional extended precision vector.
add(Tvector2_extended,Tvector2_extended):Tvector2_extendedoperatorAdd two-dimensional extended precision vectors together.
add(Tvector2_single,single):Tvector2_singleoperatorAdd scalar to two-dimensional single precision vector.
add(Tvector2_single,Tvector2_single):Tvector2_singleoperatorAdd two-dimensional single precision vectors together.
add(Tvector3_double,Double):Tvector3_doubleoperatorAdd scalar to three-dimensional double precision vector.
add(Tvector3_double,Tvector3_double):Tvector3_doubleoperatorAdd three-dimensional double precision vectors together.
add(Tvector3_extended,extended):Tvector3_extendedoperatorAdd scalar to three-dimensional extended precision vector.
add(Tvector3_extended,Tvector3_extended):Tvector3_extendedoperatorAdd three-dimensional extended precision vectors together.
add(Tvector3_single,single):Tvector3_singleoperatorAdd scalar to three-dimensional single precision vector.
add(Tvector3_single,Tvector3_single):Tvector3_singleoperatorAdd three-dimensional extended precision vectors together.
add(Tvector4_double,Double):Tvector4_doubleoperatorAdd scalar to four-dimensional double precision vector.
add(Tvector4_double,Tvector4_double):Tvector4_doubleoperatorAdd four-dimensional double precision vectors together.
add(Tvector4_extended,extended):Tvector4_extendedoperatorAdd scalar to four-dimensional extended precision vector.
add(Tvector4_extended,Tvector4_extended):Tvector4_extendedoperatorAdd four-dimensional extended precision vectors together.
add(Tvector4_single,single):Tvector4_singleoperatorAdd scalar to four-dimensional single precision vector.
add(Tvector4_single,Tvector4_single):Tvector4_singleoperatorAdd four-dimensional single precision vectors together.
assign(Tmatrix2_double):Tmatrix2_extendedoperatorAllow assignment of two-dimensional double precision matrix to two-dimensional extended precision matrix.
assign(Tmatrix2_double):Tmatrix2_singleoperatorAllow assignment of two-dimensional double precision matrix to two-dimensional single precision matrix.
assign(Tmatrix2_double):Tmatrix3_doubleoperatorAllow assignment of two-dimensional double precision matrix to three-dimensional double precision matrix.
assign(Tmatrix2_double):Tmatrix3_extendedoperatorAllow assignment of two-dimensional double precision matrix to three-dimensional extended precision matrix.
assign(Tmatrix2_double):Tmatrix3_singleoperatorAllow assignment of two-dimensional single precision matrix to three-dimensional single precision matrix.
assign(Tmatrix2_double):Tmatrix4_doubleoperatorAllow assignment of two-dimensional double precision matrix to four-dimensional double precision matrix.
assign(Tmatrix2_double):Tmatrix4_extendedoperatorAllow assignment of two-dimensional double precision matrix to four-dimensional extended precision matrix.
assign(Tmatrix2_double):Tmatrix4_singleoperatorAllow assignment of two-dimensional double precision matrix to four-dimensional single precision matrix.
assign(Tmatrix2_extended):Tmatrix2_doubleoperatorAllow assignment of two-dimensional extended precision matrix to two-dimensional double precision matrix.
assign(Tmatrix2_extended):Tmatrix2_singleoperatorAllow assignment of two-dimensional extended precision matrix to two-dimensional single precision matrix.
assign(Tmatrix2_extended):Tmatrix3_doubleoperatorAllow assignment of two-dimensional extended precision matrix to three-dimensional double precision matrix.
assign(Tmatrix2_extended):Tmatrix3_extendedoperatorAllow assignment of two-dimensional extended precision matrix to three-dimensional extended precision matrix.
assign(Tmatrix2_extended):Tmatrix3_singleoperatorAllow assignment of two-dimensional extended precision matrix to three-dimensional single precision matrix.
assign(Tmatrix2_extended):Tmatrix4_doubleoperatorAllow assignment of two-dimensional extended precision matrix to four-dimensional double precision matrix.
assign(Tmatrix2_extended):Tmatrix4_extendedoperatorAllow assignment of two-dimensional extended precision matrix to four-dimensional extended precision matrix.
assign(Tmatrix2_extended):Tmatrix4_singleoperatorAllow assignment of two-dimensional extended precision matrix to four-dimensional single precision matrix.
assign(Tmatrix2_single):Tmatrix2_doubleoperatorAllow assignment of two-dimensional single precision matrix to two-dimensional double precision matrix.
assign(Tmatrix2_single):Tmatrix2_extendedoperatorAllow assignment of two-dimensional single precision matrix to two-dimensional extended precision matrix.
assign(Tmatrix2_single):Tmatrix3_doubleoperatorAllow assignment of two-dimensional single precision matrix to three-dimensional double precision matrix.
assign(Tmatrix2_single):Tmatrix3_extendedoperatorAllow assignment of two-dimensional single precision matrix to three-dimensional extended precision matrix.
assign(Tmatrix2_single):Tmatrix3_singleoperatorAllow assignment of two-dimensional single precision matrix to three-dimensional single precision matrix.
assign(Tmatrix2_single):Tmatrix4_doubleoperatorAllow assignment of two-dimensional single precision matrix to four-dimensional double precision matrix.
assign(Tmatrix2_single):Tmatrix4_extendedoperatorAllow assignment of two-dimensional single precision matrix to four-dimensional extended precision matrix.
assign(Tmatrix2_single):Tmatrix4_singleoperatorAllow assignment of two-dimensional single precision matrix to four-dimensional single precision matrix.
assign(Tmatrix3_double):Tmatrix2_doubleoperatorAllow assignment of three-dimensional double precision matrix to two-dimensional double precision matrix.
assign(Tmatrix3_double):Tmatrix2_extendedoperatorAllow assignment of three-dimensional double precision matrix to two-dimensional extended precision matrix.
assign(Tmatrix3_double):Tmatrix2_singleoperatorAllow assignment of three-dimensional double precision matrix to two-dimensional single precision matrix.
assign(Tmatrix3_double):Tmatrix3_extendedoperatorAllow assignment of three-dimensional double precision matrix to three-dimensional extended precision matrix.
assign(Tmatrix3_double):Tmatrix3_singleoperatorAllow assignment of three-dimensional double precision matrix to three-dimensional single precision matrix.
assign(Tmatrix3_double):Tmatrix4_doubleoperatorAllow assignment of three-dimensional double precision matrix to four-dimensional double precision matrix.
assign(Tmatrix3_double):Tmatrix4_extendedoperatorAllow assignment of three-dimensional double precision matrix to four-dimensional extended precision matrix.
assign(Tmatrix3_double):Tmatrix4_singleoperatorAllow assignment of three-dimensional double precision matrix to four-dimensional single precision matrix.
assign(Tmatrix3_extended):Tmatrix2_doubleoperatorAllow assignment of three-dimensional extended precision matrix to two-dimensional double precision matrix.
assign(Tmatrix3_extended):Tmatrix2_extendedoperatorAllow assignment of three-dimensional extended precision matrix to two-dimensional extended precision matrix.
assign(Tmatrix3_extended):Tmatrix2_singleoperatorAllow assignment of three-dimensional extended precision matrix to two-dimensional single precision matrix.
assign(Tmatrix3_extended):Tmatrix3_doubleoperatorAllow assignment of three-dimensional extended precision matrix to three-dimensional double precision matrix.
assign(Tmatrix3_extended):Tmatrix3_singleoperatorAllow assignment of three-dimensional extended precision matrix to three-dimensional single precision matrix.
assign(Tmatrix3_extended):Tmatrix4_doubleoperatorAllow assignment of three-dimensional extended precision matrix to four-dimensional double precision matrix.
assign(Tmatrix3_extended):Tmatrix4_extendedoperatorAllow assignment of three-dimensional extended precision matrix to four-dimensional extended precision matrix.
assign(Tmatrix3_extended):Tmatrix4_singleoperatorAllow assignment of three-dimensional extended precision matrix to four-dimensional single precision matrix.
assign(Tmatrix3_single):Tmatrix2_doubleoperatorAllow assignment of three-dimensional single precision matrix to two-dimensional double precision matrix.
assign(Tmatrix3_single):Tmatrix2_extendedoperatorAllow assignment of three-dimensional single precision matrix to two-dimensional extended precision matrix.
assign(Tmatrix3_single):Tmatrix2_singleoperatorAllow assignment of three-dimensional single precision matrix to two-dimensional single precision matrix.
assign(Tmatrix3_single):Tmatrix3_doubleoperatorAllow assignment of three-dimensional single precision matrix to three-dimensional double precision matrix.
assign(Tmatrix3_single):Tmatrix3_extendedoperatorAllow assignment of three-dimensional single precision matrix to three-dimensional extended precision matrix.
assign(Tmatrix3_single):Tmatrix4_doubleoperatorAllow assignment of three-dimensional single precision matrix to four-dimensional double precision matrix.
assign(Tmatrix3_single):Tmatrix4_extendedoperatorAllow assignment of three-dimensional single precision matrix to four-dimensional extended precision matrix.
assign(Tmatrix3_single):Tmatrix4_singleoperatorAllow assignment of three-dimensional single precision matrix to four-dimensional single precision matrix.
assign(Tmatrix4_double):Tmatrix2_doubleoperatorAllow assignment of four-dimensional double precision matrix to two-dimensional double precision matrix.
assign(Tmatrix4_double):Tmatrix2_extendedoperatorAllow assignment of four-dimensional double precision matrix to two-dimensional extended precision matrix.
assign(Tmatrix4_double):Tmatrix2_singleoperatorAllow assignment of four-dimensional double precision matrix to two-dimensional single precision matrix.
assign(Tmatrix4_double):Tmatrix3_doubleoperatorAllow assignment of four-dimensional double precision matrix to three-dimensional double precision matrix.
assign(Tmatrix4_double):Tmatrix3_extendedoperatorAllow assignment of four-dimensional double precision matrix to three-dimensional extended precision matrix.
assign(Tmatrix4_double):Tmatrix3_singleoperatorAllow assignment of four-dimensional double precision matrix to three-dimensional single precision matrix.
assign(Tmatrix4_double):Tmatrix4_extendedoperatorAllow assignment of four-dimensional double precision matrix to four-dimensional extended precision matrix.
assign(Tmatrix4_double):Tmatrix4_singleoperatorAllow assignment of four-dimensional single precision matrix to four-dimensional single precision matrix.
assign(Tmatrix4_extended):Tmatrix2_doubleoperatorAllow assignment of four-dimensional extended precision matrix to two-dimensional double precision matrix.
assign(Tmatrix4_extended):Tmatrix2_extendedoperatorAllow assignment of four-dimensional extended precision matrix to two-dimensional extended precision matrix.
assign(Tmatrix4_extended):Tmatrix2_singleoperatorAllow assignment of four-dimensional extended precision matrix to two-dimensional single precision matrix.
assign(Tmatrix4_extended):Tmatrix3_doubleoperatorAllow assignment of four-dimensional extended precision matrix to three-dimensional double precision matrix.
assign(Tmatrix4_extended):Tmatrix3_extendedoperatorAllow assignment of four-dimensional extended precision matrix to three-dimensional extended precision matrix.
assign(Tmatrix4_extended):Tmatrix3_singleoperatorAllow assignment of four-dimensional extended precision matrix to three-dimensional single precision matrix.
assign(Tmatrix4_extended):Tmatrix4_doubleoperatorAllow assignment of four-dimensional extended precision matrix to four-dimensional double precision matrix.
assign(Tmatrix4_extended):Tmatrix4_singleoperatorAllow assignment of four-dimensional extended precision matrix to four-dimensional single precision matrix.
assign(Tmatrix4_single):Tmatrix2_doubleoperatorAllow assignment of four-dimensional single precision matrix to two-dimensional double precision matrix.
assign(Tmatrix4_single):Tmatrix2_extendedoperatorAllow assignment of four-dimensional single precision matrix to two-dimensional extended precision matrix.
assign(Tmatrix4_single):Tmatrix2_singleoperatorAllow assignment of four-dimensional single precision matrix to two-dimensional single precision matrix.
assign(Tmatrix4_single):Tmatrix3_doubleoperatorAllow assignment of four-dimensional single precision matrix to three-dimensional double precision matrix.
assign(Tmatrix4_single):Tmatrix3_extendedoperatorAllow assignment of four-dimensional single precision matrix to three-dimensional extended precision matrix.
assign(Tmatrix4_single):Tmatrix3_singleoperatorAllow assignment of four-dimensional single precision matrix to three-dimensional single precision matrix.
assign(Tmatrix4_single):Tmatrix4_doubleoperatorAllow assignment of four-dimensional single precision matrix to four-dimensional double precision matrix.
assign(Tmatrix4_single):Tmatrix4_extendedoperatorAllow assignment of four-dimensional single precision matrix to four-dimensional extended precision matrix.
assign(Tvector2_double):Tvector2_extendedoperatorAllow assignment of double precision vector to extended precision vector.
assign(Tvector2_double):Tvector2_singleoperatorAllow assignment of double precision vector to single precision vector.
assign(Tvector2_double):Tvector3_doubleoperatorAllow assignment of two-dimensional double precision vector to three-dimensional double precision vector.
assign(Tvector2_double):Tvector3_extendedoperatorAllow assignment of two-dimensional double precision vector to three-dimensional extended precision vector.
assign(Tvector2_double):Tvector3_singleoperatorAllow assignment of two-dimensional double precision vector to three-dimensional single precision vector.
assign(Tvector2_double):Tvector4_doubleoperatorAllow assignment of two-dimensional double precision vector to four-dimensional double precision vector.
assign(Tvector2_double):Tvector4_extendedoperatorAllow assignment of two-dimensional double precision vector to four-dimensional extended precision vector.
assign(Tvector2_double):Tvector4_singleoperatorAllow assignment of two-dimensional double precision vector to four-dimensional single precision vector.
assign(Tvector2_extended):Tvector2_doubleoperatorAllow assignment of extended precision vector to double precision vector.
assign(Tvector2_extended):Tvector2_singleoperatorAllow assignment of extended precision vector to single precision vector.
assign(Tvector2_extended):Tvector3_doubleoperatorAllow assignment of two-dimensional extended precision vector to three-dimensional double precision vector.
assign(Tvector2_extended):Tvector3_extendedoperatorAllow assignment of two-dimensional extended precision vector to three-dimensional extended precision vector.
assign(Tvector2_extended):Tvector3_singleoperatorAllow assignment of two-dimensional extended precision vector to three-dimensional single precision vector.
assign(Tvector2_extended):Tvector4_doubleoperatorAllow assignment of two-dimensional extended precision vector to four-dimensional double precision vector.
assign(Tvector2_extended):Tvector4_extendedoperatorAllow assignment of two-dimensional extended precision vector to four-dimensional extended precision vector.
assign(Tvector2_extended):Tvector4_singleoperatorAllow assignment of two-dimensional extended precision vector to four-dimensional single precision vector.
assign(Tvector2_single):Tvector2_doubleoperatorAllow assignment of single precision vector to double precision vector.
assign(Tvector2_single):Tvector2_extendedoperatorAllow assignment of single precision vector to extended precision vector.
assign(Tvector2_single):Tvector3_doubleoperatorAllow assignment of two-dimensional single precision vector to three-dimensional double precision vector.
assign(Tvector2_single):Tvector3_extendedoperatorAllow assignment of two-dimensional single precision vector to three-dimensional extended precision vector.
assign(Tvector2_single):Tvector3_singleoperatorAllow assignment of two-dimensional single precision vector to three-dimensional single precision vector.
assign(Tvector2_single):Tvector4_doubleoperatorAllow assignment of two-dimensional single precision vector to four-dimensional double precision vector.
assign(Tvector2_single):Tvector4_extendedoperatorAllow assignment of two-dimensional single precision vector to four-dimensional extended precision vector.
assign(Tvector2_single):Tvector4_singleoperatorAllow assignment of two-dimensional single precision vector to four-dimensional single precision vector.
assign(Tvector3_double):Tvector2_doubleoperatorAllow assignment of three-dimensional double precision vector to two-dimensional double precision vector.
assign(Tvector3_double):Tvector2_extendedoperatorAllow assignment of three-dimensional double precision vector to two-dimensional extended precision vector.
assign(Tvector3_double):Tvector2_singleoperatorAllow assignment of three-dimensional double precision vector to two-dimensional single precision vector.
assign(Tvector3_double):Tvector3_extendedoperatorAllow assignment of three-dimensional double precision vector to three-dimensional extended precision vector.
assign(Tvector3_double):Tvector3_singleoperatorAllow assignment of three-dimensional double precision vector to three-dimensional single precision vector.
assign(Tvector3_double):Tvector4_doubleoperatorAllow assignment of three-dimensional double precision vector to four-dimensional double precision vector.
assign(Tvector3_double):Tvector4_extendedoperatorAllow assignment of three-dimensional double precision vector to four-dimensional extended precision vector.
assign(Tvector3_double):Tvector4_singleoperatorAllow assignment of three-dimensional double precision vector to four-dimensional single precision vector.
assign(Tvector3_extended):Tvector2_doubleoperatorAllow assignment of three-dimensional extended precision vector to two-dimensional double precision vector.
assign(Tvector3_extended):Tvector2_extendedoperatorAllow assignment of three-dimensional extended precision vector to two-dimensional extended precision vector.
assign(Tvector3_extended):Tvector2_singleoperatorAllow assignment of three-dimensional extended precision vector to two-dimensional single precision vector.
assign(Tvector3_extended):Tvector3_doubleoperatorAllow assignment of three-dimensional extended precision vector to three-dimensional double precision vector.
assign(Tvector3_extended):Tvector3_singleoperatorAllow assignment of three-dimensional single precision vector to three-dimensional double precision vector.
assign(Tvector3_extended):Tvector4_doubleoperatorAllow assignment of three-dimensional extended precision vector to four-dimensional double precision vector.
assign(Tvector3_extended):Tvector4_extendedoperatorAllow assignment of three-dimensional extended precision vector to four-dimensional extended precision vector.
assign(Tvector3_extended):Tvector4_singleoperatorAllow assignment of three-dimensional extended precision vector to four-dimensional single precision vector.
assign(Tvector3_single):Tvector2_doubleoperatorAllow assignment of three-dimensional single precision vector to two-dimensional double precision vector.
assign(Tvector3_single):Tvector2_extendedoperatorAllow assignment of three-dimensional single precision vector to two-dimensional extended precision vector.
assign(Tvector3_single):Tvector2_singleoperatorAllow assignment of three-dimensional single precision vector to two-dimensional single precision vector.
assign(Tvector3_single):Tvector3_doubleoperatorAllow assignment of three-dimensional single precision vector to three-dimensional double precision vector.
assign(Tvector3_single):Tvector3_extendedoperatorAllow assignment of three-dimensional single precision vector to three-dimensional extended precision vector.
assign(Tvector3_single):Tvector4_doubleoperatorAllow assignment of three-dimensional single precision vector to four-dimensional double precision vector.
assign(Tvector3_single):Tvector4_extendedoperatorAllow assignment of three-dimensional single precision vector to four-dimensional extended precision vector.
assign(Tvector3_single):Tvector4_singleoperatorAllow assignment of three-dimensional single precision vector to four-dimensional single precision vector.
assign(Tvector4_double):Tvector2_doubleoperatorAllow assignment of four-dimensional double precision vector to two-dimensional double precision vector.
assign(Tvector4_double):Tvector2_extendedoperatorAllow assignment of four-dimensional double precision vector to two-dimensional extended precision vector.
assign(Tvector4_double):Tvector2_singleoperatorAllow assignment of four-dimensional double precision vector to two-dimensional single precision vector.
assign(Tvector4_double):Tvector3_doubleoperatorAllow assignment of four-dimensional double precision vector to three-dimensional double precision vector.
assign(Tvector4_double):Tvector3_extendedoperatorAllow assignment of four-dimensional double precision vector to three-dimensional extended precision vector.
assign(Tvector4_double):Tvector3_singleoperatorAllow assignment of four-dimensional double precision vector to three-dimensional single precision vector.
assign(Tvector4_double):Tvector4_extendedoperatorAllow assignment of four-dimensional single precision vector to four-dimensional extended precision vector.
assign(Tvector4_double):Tvector4_singleoperatorAllow assignment of four-dimensional double precision vector to four-dimensional single precision vector.
assign(Tvector4_extended):Tvector2_doubleoperatorAllow assignment of four-dimensional extended precision vector to two-dimensional double precision vector.
assign(Tvector4_extended):Tvector2_extendedoperatorAllow assignment of four-dimensional extended precision vector to two-dimensional extended precision vector.
assign(Tvector4_extended):Tvector2_singleoperatorAllow assignment of four-dimensional extended precision vector to two-dimensional single precision vector.
assign(Tvector4_extended):Tvector3_doubleoperatorAllow assignment of four-dimensional extended precision vector to three-dimensional double precision vector.
assign(Tvector4_extended):Tvector3_extendedoperatorAllow assignment of four-dimensional extended precision vector to three-dimensional extended precision vector.
assign(Tvector4_extended):Tvector3_singleoperatorAllow assignment of four-dimensional extended precision vector to three-dimensional single precision vector.
assign(Tvector4_extended):Tvector4_doubleoperatorAllow assignment of four-dimensional single precision vector to four-dimensional double precision vector.
assign(Tvector4_extended):Tvector4_singleoperatorAllow assignment of four-dimensional extended precision vector to four-dimensional single precision vector.
assign(Tvector4_single):Tvector2_doubleoperatorAllow assignment of four-dimensional single precision vector to two-dimensional double precision vector.
assign(Tvector4_single):Tvector2_extendedoperatorAllow assignment of four-dimensional single precision vector to two-dimensional extended precision vector.
assign(Tvector4_single):Tvector2_singleoperatorAllow assignment of four-dimensional single precision vector to two-dimensional single precision vector.
assign(Tvector4_single):Tvector3_doubleoperatorAllow assignment of four-dimensional single precision vector to three-dimensional double precision vector.
assign(Tvector4_single):Tvector3_extendedoperatorAllow assignment of four-dimensional single precision vector to three-dimensional extended precision vector.
assign(Tvector4_single):Tvector3_singleoperatorAllow assignment of four-dimensional single precision vector to three-dimensional single precision vector.
assign(Tvector4_single):Tvector4_doubleoperatorAllow assignment of four-dimensional single precision vector to four-dimensional double precision vector.
assign(Tvector4_single):Tvector4_extendedoperatorAllow assignment of four-dimensional single precision vector to four-dimensional extended precision vector.
divide(Tmatrix2_double,Double):Tmatrix2_doubleoperatorDivide a two-dimensional single precision matrix by a scalar.
divide(Tmatrix2_extended,extended):Tmatrix2_extendedoperatorDivide a two-dimensional single precision matrix by a scalar.
divide(Tmatrix2_single,single):Tmatrix2_singleoperatorDivide a two-dimensional single precision matrix by a scalar.
divide(Tmatrix3_double,Double):Tmatrix3_doubleoperatorDivide a two-dimensional single precision matrix by a scalar.
divide(Tmatrix3_extended,extended):Tmatrix3_extendedoperatorDivide a two-dimensional single precision matrix by a scalar.
divide(Tmatrix3_single,single):Tmatrix3_singleoperatorDivide a two-dimensional single precision matrix by a scalar.
divide(Tmatrix4_double,Double):Tmatrix4_doubleoperatorDivide a two-dimensional single precision matrix by a scalar.
divide(Tmatrix4_extended,extended):Tmatrix4_extendedoperatorDivide a two-dimensional single precision matrix by a scalar.
divide(Tmatrix4_single,single):Tmatrix4_singleoperatorDivide a two-dimensional single precision matrix by a scalar.
divide(Tvector2_double,Double):Tvector2_doubleoperatorDivide a two-dimensional double precision vector by a scalar.
divide(Tvector2_extended,extended):Tvector2_extendedoperatorDivide a two-dimensional extended precision vector by a scalar.
divide(Tvector2_single,single):Tvector2_singleoperatorDivide a two-dimensional single precision vector by a scalar.
divide(Tvector3_double,Double):Tvector3_doubleoperatorDivide a three-dimensional double precision vector by a scalar.
divide(Tvector3_extended,extended):Tvector3_extendedoperatorDivide a three-dimensional extended precision vector by a scalar.
divide(Tvector3_single,single):Tvector3_singleoperatorDivide a three-dimensional single precision vector by a scalar.
divide(Tvector4_double,Double):Tvector4_doubleoperatorDivide a four-dimensional double precision vector by a scalar.
divide(Tvector4_extended,extended):Tvector4_extendedoperatorDivide a four-dimensional extended precision vector by a scalar.
divide(Tvector4_single,single):Tvector4_singleoperatorDivide a four-dimensional single precision vector by a scalar.
multiply(Tmatrix2_double,Double):Tmatrix2_doubleoperatorMultiply a two-dimensional double precision matrix by a scalar.
multiply(Tmatrix2_double,Tmatrix2_double):Tmatrix2_doubleoperatorGive product of two two-dimensional double precision matrices.
multiply(Tmatrix2_double,Tvector2_double):Tvector2_doubleoperatorGive product of a two-dimensional double precision matrix and vector.
multiply(Tmatrix2_extended,extended):Tmatrix2_extendedoperatorMultiply a two-dimensional extended precision matrix by a scalar.
multiply(Tmatrix2_extended,Tmatrix2_extended):Tmatrix2_extendedoperatorGive product of two two-dimensional extended precision matrices.
multiply(Tmatrix2_extended,Tvector2_extended):Tvector2_extendedoperatorGive product of a two-dimensional extended precision matrix and vector.
multiply(Tmatrix2_single,single):Tmatrix2_singleoperatorMultiply a two-dimensional single precision matrix by a scalar.
multiply(Tmatrix2_single,Tmatrix2_single):Tmatrix2_singleoperatorGive product of two two-dimensional single precision matrices.
multiply(Tmatrix2_single,Tvector2_single):Tvector2_singleoperatorGive product of a two-dimensional single precision matrix and vector.
multiply(Tmatrix3_double,Double):Tmatrix3_doubleoperatorMultiply a three-dimensional double precision matrix by a scalar.
multiply(Tmatrix3_double,Tmatrix3_double):Tmatrix3_doubleoperatorGive product of two three-dimensional double precision matrices.
multiply(Tmatrix3_double,Tvector3_double):Tvector3_doubleoperatorGive product of a three-dimensional double precision matrix and vector.
multiply(Tmatrix3_extended,extended):Tmatrix3_extendedoperatorMultiply a three-dimensional extended precision matrix by a scalar.
multiply(Tmatrix3_extended,Tmatrix3_extended):Tmatrix3_extendedoperatorGive product of two three-dimensional extended precision matrices.
multiply(Tmatrix3_extended,Tvector3_extended):Tvector3_extendedoperatorGive product of a three-dimensional extended precision matrix and vector.
multiply(Tmatrix3_single,single):Tmatrix3_singleoperatorMultiply a three-dimensional single precision matrix by a scalar.
multiply(Tmatrix3_single,Tmatrix3_single):Tmatrix3_singleoperatorGive product of two three-dimensional single precision matrices.
multiply(Tmatrix3_single,Tvector3_single):Tvector3_singleoperatorGive product of a three-dimensional single precision matrix and vector.
multiply(Tmatrix4_double,Double):Tmatrix4_doubleoperatorMultiply a four-dimensional double precision matrix by a scalar.
multiply(Tmatrix4_double,Tmatrix4_double):Tmatrix4_doubleoperatorGive product of two four-dimensional double precision matrices.
multiply(Tmatrix4_double,Tvector4_double):Tvector4_doubleoperatorGive product of a four-dimensional double precision matrix and vector.
multiply(Tmatrix4_extended,extended):Tmatrix4_extendedoperatorMultiply a four-dimensional extended precision matrix by a scalar.
multiply(Tmatrix4_extended,Tmatrix4_extended):Tmatrix4_extendedoperatorGive product of two four-dimensional extended precision matrices.
multiply(Tmatrix4_extended,Tvector4_extended):Tvector4_extendedoperatorGive product of a four-dimensional extended precision matrix and vector.
multiply(Tmatrix4_single,single):Tmatrix4_singleoperatorMultiply a four-dimensional single precision matrix by a scalar.
multiply(Tmatrix4_single,Tmatrix4_single):Tmatrix4_singleoperatorGive product of two four-dimensional single precision matrices.
multiply(Tmatrix4_single,Tvector4_single):Tvector4_singleoperatorGive product of a four-dimensional single precision matrix and vector.
multiply(Tvector2_double,Double):Tvector2_doubleoperatorMultiply a two-dimensional double precision vector by a scalar.
multiply(Tvector2_double,Tvector2_double):Tvector2_doubleoperatorMultiply two vectors element wise.
multiply(Tvector2_extended,extended):Tvector2_extendedoperatorMultiply a two-dimensional extended precision vector by a scalar.
multiply(Tvector2_extended,Tvector2_extended):Tvector2_extendedoperatorMultiply two vectors element wise.
multiply(Tvector2_single,single):Tvector2_singleoperatorMultiply a two-dimensional single precision vector by a scalar.
multiply(Tvector2_single,Tvector2_single):Tvector2_singleoperatorMultiply two vectors element wise.
multiply(Tvector3_double,Double):Tvector3_doubleoperatorMultiply a three-dimensional double precision vector by a scalar.
multiply(Tvector3_double,Tvector3_double):Tvector3_doubleoperatorMultiply two vectors element wise.
multiply(Tvector3_extended,extended):Tvector3_extendedoperatorMultiply a three-dimensional extended precision vector by a scalar.
multiply(Tvector3_extended,Tvector3_extended):Tvector3_extendedoperatorMultiply two vectors element wise.
multiply(Tvector3_single,single):Tvector3_singleoperatorMultiply a three-dimensional single precision vector by a scalar.
multiply(Tvector3_single,Tvector3_single):Tvector3_singleoperatorMultiply two vectors element wise.
multiply(Tvector4_double,Double):Tvector4_doubleoperatorMultiply a four-dimensional double precision vector by a scalar.
multiply(Tvector4_double,Tvector4_double):Tvector4_doubleoperatorMultiply two vectors element wise.
multiply(Tvector4_extended,extended):Tvector4_extendedoperatorMultiply a four-dimensional extended precision vector by a scalar.
multiply(Tvector4_extended,Tvector4_extended):Tvector4_extendedoperatorMultiply two vectors element wise.
multiply(Tvector4_single,single):Tvector4_singleoperatorMultiply a four-dimensional single precision vector by a scalar.
multiply(Tvector4_single,Tvector4_single):Tvector4_singleoperatorMultiply two vectors element wise.
negative(Tmatrix2_double):Tmatrix2_doubleoperatorNegate two-dimensional double precision matrix.
negative(Tmatrix2_extended):Tmatrix2_extendedoperatorNegate two-dimensional extended precision matrix.
negative(Tmatrix2_single):Tmatrix2_singleoperatorNegate two-dimensional single precision matrix.
negative(Tmatrix3_double):Tmatrix3_doubleoperatorNegate three-dimensional double precision matrix.
negative(Tmatrix3_extended):Tmatrix3_extendedoperatorNegate three-dimensional extended precision matrix.
negative(Tmatrix3_single):Tmatrix3_singleoperatorNegate three-dimensional single precision matrix.
negative(Tmatrix4_double):Tmatrix4_doubleoperatorNegate four-dimensional double precision matrix.
negative(Tmatrix4_extended):Tmatrix4_extendedoperatorNegate four-dimensional extended precision matrix.
negative(Tmatrix4_single):Tmatrix4_singleoperatorNegate four-dimensional single precision matrix.
negative(Tvector2_double):Tvector2_doubleoperatorNegate two-dimensional vector.
negative(Tvector2_extended):Tvector2_extendedoperatorNegate two-dimensional vector.
negative(Tvector2_single):Tvector2_singleoperatorNegate two-dimensional vector.
negative(Tvector3_double):Tvector3_doubleoperatorNegate three-dimensional vector.
negative(Tvector3_extended):Tvector3_extendedoperatorNegate three-dimensional vector.
negative(Tvector3_single):Tvector3_singleoperatorNegate three-dimensional vector.
negative(Tvector4_double):Tvector4_doubleoperatorNegate four-dimensional vector.
negative(Tvector4_extended):Tvector4_extendedoperatorNegate four-dimensional vector.
negative(Tvector4_single):Tvector4_singleoperatorNegate four-dimensional vector.
power(Tvector2_double,Tvector2_double):DoubleoperatorCalculate the internal product of two vectors.
power(Tvector2_extended,Tvector2_extended):extendedoperatorCalculate the internal product of two vectors.
power(Tvector2_single,Tvector2_single):singleoperatorCalculate the internal product of two vectors.
power(Tvector3_double,Tvector3_double):DoubleoperatorCalculate the internal product of two vectors.
power(Tvector3_extended,Tvector3_extended):extendedoperatorCalculate the internal product of two vectors.
power(Tvector3_single,Tvector3_single):singleoperatorCalculate the internal product of two vectors.
power(Tvector4_double,Tvector4_double):DoubleoperatorCalculate the internal product of two vectors.
power(Tvector4_extended,Tvector4_extended):extendedoperatorCalculate the internal product of two vectors.
power(Tvector4_single,Tvector4_single):singleoperatorCalculate the internal product of two vectors.
subtract(Tmatrix2_double,Double):Tmatrix2_doubleoperatorSubtract scalar to two-dimensional double precision matrix.
subtract(Tmatrix2_double,Tmatrix2_double):Tmatrix2_doubleoperatorSubtract a two-dimensional double precision matrix from another.
subtract(Tmatrix2_extended,extended):Tmatrix2_extendedoperatorAdd scalar to two-dimensional extended precision matrix.
subtract(Tmatrix2_extended,Tmatrix2_extended):Tmatrix2_extendedoperatorSubtract a two-dimensional extended precision matrix from another.
subtract(Tmatrix2_single,single):Tmatrix2_singleoperatorSubtract scalar to two-dimensional single precision matrix.
subtract(Tmatrix2_single,Tmatrix2_single):Tmatrix2_singleoperatorSubtract a two-dimensional single precision matrix from another.
subtract(Tmatrix3_double,Double):Tmatrix3_doubleoperatorAdd scalar to three-dimensional double precision matrix.
subtract(Tmatrix3_double,Tmatrix3_double):Tmatrix3_doubleoperatorSubtract a three-dimensional double precision matrix from another.
subtract(Tmatrix3_extended,extended):Tmatrix3_extendedoperatorAdd scalar to three-dimensional extended precision matrix.
subtract(Tmatrix3_extended,Tmatrix3_extended):Tmatrix3_extendedoperatorSubtract a three-dimensional extended precision matrix from another.
subtract(Tmatrix3_single,single):Tmatrix3_singleoperatorAdd scalar to three-dimensional single precision matrix.
subtract(Tmatrix3_single,Tmatrix3_single):Tmatrix3_singleoperatorSubtract a three-dimensional single precision matrix from another.
subtract(Tmatrix4_double,Double):Tmatrix4_doubleoperatorAdd scalar to four-dimensional double precision matrix.
subtract(Tmatrix4_double,Tmatrix4_double):Tmatrix4_doubleoperatorSubtract a four-dimensional double precision matrix from another.
subtract(Tmatrix4_extended,extended):Tmatrix4_extendedoperatorAdd scalar to four-dimensional extended precision matrix.
subtract(Tmatrix4_extended,Tmatrix4_extended):Tmatrix4_extendedoperatorSubtract a four-dimensional extended precision matrix from another.
subtract(Tmatrix4_single,single):Tmatrix4_singleoperatorAdd scalar to four-dimensional single precision matrix.
subtract(Tmatrix4_single,Tmatrix4_single):Tmatrix4_singleoperatorSubtract a four-dimensional single precision matrix from another.
subtract(Tvector2_double,Double):Tvector2_doubleoperatorSubtract scalar from two-dimensional double precision vector.
subtract(Tvector2_double,Tvector2_double):Tvector2_doubleoperatorSubtract two-dimensional double precision vectors from each other.
subtract(Tvector2_extended,extended):Tvector2_extendedoperatorSubtract scalar from two-dimensional extended precision vector.
subtract(Tvector2_extended,Tvector2_extended):Tvector2_extendedoperatorSubtract two-dimensional extended precision vectors from each other.
subtract(Tvector2_single,single):Tvector2_singleoperatorSubtract scalar from two-dimensional single precision vector.
subtract(Tvector2_single,Tvector2_single):Tvector2_singleoperatorSubtract two-dimensional single precision vectors from each other.
subtract(Tvector3_double,Double):Tvector3_doubleoperatorSubtract scalar from three-dimensional double precision vector.
subtract(Tvector3_double,Tvector3_double):Tvector3_doubleoperatorSubtract three-dimensional double precision vectors from each other.
subtract(Tvector3_extended,extended):Tvector3_extendedoperatorSubtract scalar from three-dimensional extended precision vector.
subtract(Tvector3_extended,Tvector3_extended):Tvector3_extendedoperatorSubtract three-dimensional extended precision vectors from each other.
subtract(Tvector3_single,single):Tvector3_singleoperatorSubtract scalar from three-dimensional single precision vector.
subtract(Tvector3_single,Tvector3_single):Tvector3_singleoperatorSubtract three-dimensional single precision vectors from each other.
subtract(Tvector4_double,Double):Tvector4_doubleoperatorSubtract scalar from four-dimensional double precision vector.
subtract(Tvector4_double,Tvector4_double):Tvector4_doubleoperatorSubtract four-dimensional double precision vectors from each other.
subtract(Tvector4_extended,extended):Tvector4_extendedoperatorSubtract scalar from four-dimensional extended precision vector.
subtract(Tvector4_extended,Tvector4_extended):Tvector4_extendedoperatorSubtract four-dimensional extended precision vectors from each other.
subtract(Tvector4_single,single):Tvector4_singleoperatorSubtract scalar from four-dimensional single precision vector.
subtract(Tvector4_single,Tvector4_single):Tvector4_singleoperatorSubtract four-dimensional single precision vectors from each other.
symmetricaldifference(Tvector3_double,Tvector3_double):Tvector3_doubleoperatorCalculate the external product of two three-dimensional vectors.
symmetricaldifference(Tvector3_extended,Tvector3_extended):Tvector3_extendedoperatorCalculate the external product of two three-dimensional vectors.
symmetricaldifference(Tvector3_single,Tvector3_single):Tvector3_singleoperatorCalculate the external product of two three-dimensional vectors.

Types

Tmatrix2_double_datatypeInternal data of Tmatrix2_double.
Tmatrix2_extended_datatypeInternal data of Tmatrix2_extended.
Tmatrix2_single_datatypeInternal data of Tmatrix2_single.
Tmatrix3_double_datatypeInternal data of Tmatrix3_double.
Tmatrix3_extended_datatypeInternal data of Tmatrix3_extended.
Tmatrix3_single_datatypeInternal data of Tmatrix3_single.
Tmatrix4_double_datatypeInternal data of Tmatrix4_double.
Tmatrix4_extended_datatypeInternal data of Tmatrix4_extended.
Tmatrix4_single_datatypeInternal data of Tmatrix4_single.
Tvector2_double_datatypeInternal data of Tvector2_double.
Tvector2_extended_datatypeInternal data of Tvector2_extended.
Tvector2_single_datatypeInternal data of Tvector2_single.
Tvector3_double_datatypeInternal data of Tvector3_double.
Tvector3_extended_datatypeInternal data of Tvector3_extended.
Tvector3_single_datatypeInternal data of Tvector3_single.
Tvector4_double_datatypeInternal data of Tvector4_double.
Tvector4_extended_datatypeInternal data of Tvector4_extended.
Tvector4_single_datatypeInternal data of Tvector4_single.

An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.