Motr  M0
Systems of Linear Equations Solving Algorithm:

Data Structures

struct  m0_linsys
 

Functions

M0_INTERNAL void m0_linsys_init (struct m0_linsys *linsys, struct m0_matrix *mat, struct m0_matvec *vec, struct m0_matvec *res)
 
M0_INTERNAL void m0_linsys_fini (struct m0_linsys *linsys)
 
M0_INTERNAL void m0_linsys_solve (struct m0_linsys *linsys)
 
M0_INTERNAL int m0_matrix_invert (const struct m0_matrix *mat, struct m0_matrix *mat_inverse)
 

Detailed Description

A systems of linear equations solving algorithm is a part of M0 core. It is based on Gauss method and performs the following:

Function Documentation

◆ m0_linsys_fini()

M0_INTERNAL void m0_linsys_fini ( struct m0_linsys linsys)

Definition at line 47 of file ls_solve.c.

◆ m0_linsys_init()

M0_INTERNAL void m0_linsys_init ( struct m0_linsys linsys,
struct m0_matrix mat,
struct m0_matvec vec,
struct m0_matvec res 
)
Precondition
m0_matrix_init(mat) && m0_matvec_init(vec) && m0_vec_init(res)
mat->m_height > 0 && mat->width > 0
mat->m_width == mat->m_height && res->mv_size == vec->mv_size && vec->mv_size == mat->m_width

Definition at line 33 of file ls_solve.c.

◆ m0_linsys_solve()

M0_INTERNAL void m0_linsys_solve ( struct m0_linsys linsys)

Solves given system of linear equations, writes result into 'linsys->l_res'.

Definition at line 126 of file ls_solve.c.

Here is the call graph for this function:

◆ m0_matrix_invert()

M0_INTERNAL int m0_matrix_invert ( const struct m0_matrix mat,
struct m0_matrix mat_inverse 
)

Inverts a square matrix.

Parameters
[in]matPointer to an input square matrix
[out]mat_inversePointer to the inverse of an input matrix
Return values
0matrix inversion is successful
-ENOMEMout of memory
-EDOMinput matrix is singular
Precondition
m0_matrix_is_square(mat) and m0_matrix_is_square(mat_inverse)
mat->m_width == mat_inverse->m_width

Definition at line 136 of file ls_solve.c.

Here is the call graph for this function:
Here is the caller graph for this function: