Skip to content

Commit

Permalink
Adding more documentation (#89)
Browse files Browse the repository at this point in the history
  • Loading branch information
JuliusDiestra authored Jan 27, 2024
1 parent 90fd667 commit 4ee4945
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 12 deletions.
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Marsvin library : Matrix, vectors and linear algebra

Documentation : [Link](https://juliusdiestra.github.io/marsvin-matrix-container-cpp/)

Repository that contains the **MARSVIN** library that contains usefull containers and operations for linear algebra.

Contains :
Expand All @@ -8,9 +10,11 @@ Contains :
* Vector container.
* Forward substitution.
* Backward substitution.
* Gauss elimination.
* Matrix inverse calculation.
* Solution of A\*x = b.
* Triangular matrix inverse.
* Solution of triangular systems. L\*x = b and U\*x = b
* LU Decomposition : Partial Pivoting.
* Matrix inverse calculation. -> TBD
* Solution of A\*x = b. -> TBD

## How to build library

Expand Down
2 changes: 1 addition & 1 deletion documentation/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -1514,7 +1514,7 @@ DISABLE_INDEX = NO
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.

GENERATE_TREEVIEW = NO
GENERATE_TREEVIEW = YES

# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
# doxygen will group on one line in the generated HTML documentation.
Expand Down
45 changes: 37 additions & 8 deletions documentation/main_page.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ and the **Matrix** class includes extra methods useful for matrix linear algebra

Header file :

include "base_matrix.hpp"
#include "marsvin/containers/base_matrix.hpp"

A **BaseMatrix** object can be created as,

Expand Down Expand Up @@ -60,7 +60,7 @@ Basic operations are provided using overload operators :

Header file :

include "matrix.hpp"
#include "marsvin/containers/matrix.hpp"

A **Matrix** object can be created as,

Expand All @@ -74,7 +74,7 @@ A vector is considered as Nx1 matrix in this library.

Header file :

include "vector.hpp"
#include "marsvin/containers/vector.hpp"

A **Vector** object can be created as,

Expand All @@ -88,9 +88,11 @@ A **Vector** object can be created as,

#### Forward Substitution

Solution of a lower triangular system
Header file :

For the following equation,
#include "marsvin/triangular_systems/forward_substitution.hpp"

The algorithm provides a solution for the following equation,

\f$ Lx = b \f$

Expand Down Expand Up @@ -150,6 +152,10 @@ For example,

#### Inverse

Header file :

#include "marsvin/triangular_system/lower_inverse.hpp"

### Upper Triangular Matrix
#### Backward Substitution

Expand Down Expand Up @@ -215,6 +221,10 @@ For example,

#### Inverse

Header file :

#include "marsvin/triangular_system/upper_inverse.hpp"

Giving the following equation,

\f[
Expand Down Expand Up @@ -323,11 +333,30 @@ Then, the Following algorithm can be formulated,



## Gauss Elimination

TBD
## LU Decomposition

Given a \f$ n \times n \f$ matrix defined as \f$A\f$.
A general expression for factorization can be written as,

\f[
PAQ = LU
\f]

where,

\f$A\f$ : Matrix to be factorized. Dimension : \f$ n \times n \f$.

\f$P\f$ : Permutation matrix to re-order rows of A. Dimension : \f$ n \times n \f$.

\f$Q\f$ : Permutation matrix to re-order columns of A. Dimension : \f$ n \times n \f$.

\f$L\f$ : Lower triangular matrix. Dimension : \f$ n \times n \f$.

\f$U\f$ : Upper triangular matrix. Dimension : \f$ n \times n \f$.

### Partial Pivoting

TBD
TBD : Addingle pseudo code for algorithm.


0 comments on commit 4ee4945

Please sign in to comment.