Matrix class module. Defines a matrix type (4x4 matrix) and associated operations on matrices and other types.
not fully implmented matix class minimum implmented for neural sdf type
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=wp), | public | :: | vals(4,4) |
Matrix values |
Intalise Matrix with 1D Array
private function mat_init (array) | Initalise matrix type from 1D array |
procedure, private, pass(a) :: mat_add_scal | |
procedure, private, pass(a) :: mat_div_scal | |
procedure, private, pass(a) :: mat_minus_scal | |
procedure, private, pass(a) :: mat_mult_mat | |
procedure, private, pass(a) :: mat_mult_scal | |
generic, public :: operator(*) => mat_mult_scal, scal_mult_mat, mat_mult_mat | ../../ Overload for Multiplication operator |
generic, public :: operator(+) => mat_add_scal, scal_add_mat | ../../ Overload for Addition operator |
generic, public :: operator(-) => mat_minus_scal | ../../ Overload for Subtraction operator |
generic, public :: operator(/) => mat_div_scal | ../../ Overload for Division operator |
procedure, private, pass(b) :: scal_add_mat | |
procedure, private, pass(b) :: scal_mult_mat |
Performs a direct calculation of the inverse of a 4×4 matrix. from http://fortranwiki.org/fortran/show/Matrix+inversion
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp), | intent(in) | :: | A(4,4) |
Input Matric |
Initalise matrix type from 1D array
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp) | :: | array(16) |
1D array to initalise from. |