Choral
Data Types | Functions/Subroutines
algebra_lin Module Reference

LINEAR ALGEBRA TOOLS More...

Data Types

interface  matvecprod
 
interface  transpose
 

Functions/Subroutines

subroutine algebra_lin_matvecprod (y, A, X)
 Matrix Vector Product v <= m*u. More...
 
subroutine, public matmatprod (M, A, B)
 M <– A * B. More...
 
subroutine array_transpose (M, A)
 M <– transpose(A) More...
 
subroutine, public invtrisup (res, M, vec)
 Calcul de x=M^{-1}vec avec M triangulaire superieure. More...
 
real(rp) function, dimension(3), public crossprod_3d (u, v)
 Cross product in R**3. More...
 
real(rp) function, public det_3x3 (M)
 determinant of 3x3 matrix More...
 
real(rp) function, public det_3x2 (M)
 'determinant' of 3x2 matrix More...
 
real(rp) function, dimension(3, 3), public cplmtmat_3x3 (M)
 N = complementary matrix of M = transpose of the cofactor matrix. More...
 
real(rp) function, dimension(3, 2), public cplmtmat_3x2 (M)
 N = 'complementary' matrix of M. More...
 
real(rp) function, public nrm2_3d (v)
 Euclidian norm. More...
 
subroutine, public matvecprod_3x3 (y, A, X)
 matrix vector product R3 –> R3 More...
 
subroutine, public matvecprod_3x2 (y, A, X)
 matrix vector product R2 –> R3 More...
 
subroutine, public matvecprod_3x1 (y, A, X)
 matrix vector product R1 –> R3 More...
 
subroutine, public solve_3x3 (x, A, b)
 Solve A x = b for 3x3 matrix. More...
 

Detailed Description

LINEAR ALGEBRA TOOLS

Author
Charles Pierre

Function/Subroutine Documentation

◆ algebra_lin_matvecprod()

subroutine algebra_lin::algebra_lin_matvecprod ( real(rp), dimension(:), intent(out)  y,
real(rp), dimension(size(y,1), size(x,1)), intent(in)  A,
real(rp), dimension(:), intent(in)  X 
)
private

Matrix Vector Product v <= m*u.

Definition at line 71 of file algebra_lin.F90.

Here is the call graph for this function:

◆ array_transpose()

subroutine algebra_lin::array_transpose ( real(rp), dimension(:,:), intent(out)  M,
real(rp), dimension(:,:), intent(in)  A 
)
private

M <– transpose(A)

Definition at line 122 of file algebra_lin.F90.

Here is the call graph for this function:

◆ cplmtmat_3x2()

real(rp) function, dimension(3,2), public algebra_lin::cplmtmat_3x2 ( real(rp), dimension(3,2), intent(in)  M)

N = 'complementary' matrix of M.

N * t^M = det_3x2(M) * Id

Definition at line 247 of file algebra_lin.F90.

Here is the call graph for this function:

◆ cplmtmat_3x3()

real(rp) function, dimension(3,3), public algebra_lin::cplmtmat_3x3 ( real(rp), dimension(3,3), intent(in)  M)

N = complementary matrix of M = transpose of the cofactor matrix.

M * t^N = det(M) * Id

Definition at line 233 of file algebra_lin.F90.

Here is the call graph for this function:

◆ crossprod_3d()

real(rp) function, dimension(3), public algebra_lin::crossprod_3d ( real(rp), dimension(3), intent(in)  u,
real(rp), dimension(3), intent(in)  v 
)

Cross product in R**3.

Definition at line 178 of file algebra_lin.F90.

◆ det_3x2()

real(rp) function, public algebra_lin::det_3x2 ( real(rp), dimension(3,2), intent(in)  M)

'determinant' of 3x2 matrix

det(AB,AC) = norm2( crossProd( AB, AC ))

Definition at line 210 of file algebra_lin.F90.

◆ det_3x3()

real(rp) function, public algebra_lin::det_3x3 ( real(rp), dimension(3,3), intent(in)  M)

determinant of 3x3 matrix

Definition at line 191 of file algebra_lin.F90.

◆ invtrisup()

subroutine, public algebra_lin::invtrisup ( real(rp), dimension(:), intent(out)  res,
real(rp), dimension(:,:), intent(in)  M,
real(rp), dimension(:), intent(in)  vec 
)

Calcul de x=M^{-1}vec avec M triangulaire superieure.

Definition at line 146 of file algebra_lin.F90.

Here is the call graph for this function:

◆ matmatprod()

subroutine, public algebra_lin::matmatprod ( real(rp), dimension(:,:), intent(out)  M,
real(rp), dimension(:,:), intent(in)  A,
real(rp), dimension(:,:), intent(in)  B 
)

M <– A * B.

Definition at line 95 of file algebra_lin.F90.

Here is the call graph for this function:

◆ matvecprod_3x1()

subroutine, public algebra_lin::matvecprod_3x1 ( real(rp), dimension(3), intent(out)  y,
real(rp), dimension(3,1), intent(in)  A,
real(rp), dimension(1), intent(in)  X 
)

matrix vector product R1 –> R3

Definition at line 310 of file algebra_lin.F90.

◆ matvecprod_3x2()

subroutine, public algebra_lin::matvecprod_3x2 ( real(rp), dimension(3), intent(out)  y,
real(rp), dimension(3,2), intent(in)  A,
real(rp), dimension(2), intent(in)  X 
)

matrix vector product R2 –> R3

Definition at line 297 of file algebra_lin.F90.

◆ matvecprod_3x3()

subroutine, public algebra_lin::matvecprod_3x3 ( real(rp), dimension(3), intent(out)  y,
real(rp), dimension(3,3), intent(in)  A,
real(rp), dimension(3), intent(in)  X 
)

matrix vector product R3 –> R3

Definition at line 282 of file algebra_lin.F90.

◆ nrm2_3d()

real(rp) function, public algebra_lin::nrm2_3d ( real(rp), dimension(3)  v)

Euclidian norm.

Definition at line 271 of file algebra_lin.F90.

◆ solve_3x3()

subroutine, public algebra_lin::solve_3x3 ( real(rp), dimension(3), intent(out)  x,
real(rp), dimension(3,3), intent(in)  A,
real(rp), dimension(3), intent(in)  b 
)

Solve A x = b for 3x3 matrix.

Definition at line 322 of file algebra_lin.F90.

Here is the call graph for this function: