45#ifndef LASS_GUARDIAN_OF_INCLUSION_NUM_IMPL_MATRIX_SOLVE_H
46#define LASS_GUARDIAN_OF_INCLUSION_NUM_IMPL_MATRIX_SOLVE_H
62 typename RandomIterator1,
63 typename RandomIterator2
65bool ludecomp(RandomIterator1 ioMatrix,
66 RandomIterator2 oIndex,
75 typename RandomIterator1,
76 typename RandomIterator2,
77 typename RandomIterator3
79void lusolve(RandomIterator1 iMatrix,
80 RandomIterator2 iIndex,
81 RandomIterator3 ioColumn,
82 std::ptrdiff_t iSize);
89 typename RandomIterator1,
90 typename RandomIterator2,
91 typename RandomIterator3,
92 typename RandomIterator4,
93 typename RandomIterator5
95void lumprove(RandomIterator1 iMatrix,
96 RandomIterator2 iMatrixLU,
97 RandomIterator3 iIndex,
98 RandomIterator4 iColumn,
100 std::ptrdiff_t iSize);
104template <
typename T,
typename RandomIterator1,
typename RandomIterator2>
105bool cramer2(RandomIterator1 iMatrixRowMajor,
106 RandomIterator2 ioColumnFirst, RandomIterator2 ioColumnLast);
108template <
typename T,
typename RandomIterator1,
typename RandomIterator2>
109bool cramer3(RandomIterator1 iMatrixRowMajor,
110 RandomIterator2 ioColumnFirst, RandomIterator2 ioColumnLast);
115template <
typename T,
typename RandomIterator1,
typename RandomIterator2,
typename RandomIterator3>
116bool solveTridiagonal(RandomIterator1 iA_1, RandomIterator1 iB_0, RandomIterator1 iC_0,
117 RandomIterator2 ioSolution, RandomIterator3 ioTemp, std::ptrdiff_t iSize);
void lusolve(RandomIterator1 iMatrix, RandomIterator2 iIndex, RandomIterator3 ioColumn, std::ptrdiff_t iSize)
Solves the set of linear eqautions A X = B.
bool cramer2(RandomIterator1 iMatrixRowMajor, RandomIterator2 ioColumnFirst, RandomIterator2 ioColumnLast)
Solve A X = B for 2x2 matrices with Cramer's rule.
bool cramer3(RandomIterator1 iMatrixRowMajor, RandomIterator2 ioColumnFirst, RandomIterator2 ioColumnLast)
Solve A X = B for 3x3 matrices with Cramer's rule.
void lumprove(RandomIterator1 iMatrix, RandomIterator2 iMatrixLU, RandomIterator3 iIndex, RandomIterator4 iColumn, RandomIterator5 ioX, std::ptrdiff_t iSize)
Improves a solution vector X of the linear set of equations A X = B.
bool solveTridiagonal(RandomIterator1 iA_1, RandomIterator1 iB_0, RandomIterator1 iC_0, RandomIterator2 ioSolution, RandomIterator3 ioTemp, std::ptrdiff_t iSize)
Solve system of linear equations with a tridiagonal matrix.
bool ludecomp(RandomIterator1 ioMatrix, RandomIterator2 oIndex, std::ptrdiff_t iSize, int &iD)
Given a complex matrix iA, this routine replaces it by the LU decomposition of a rowwise permutation ...
numeric types and traits.
Library for Assembled Shared Sources.