matrix_solve.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 #ifndef LASS_GUARDIAN_OF_INCLUSION_NUM_IMPL_MATRIX_SOLVE_H
00046 #define LASS_GUARDIAN_OF_INCLUSION_NUM_IMPL_MATRIX_SOLVE_H
00047
00048 #include "../num_common.h"
00049
00050 namespace lass
00051 {
00052 namespace num
00053 {
00054 namespace impl
00055 {
00056
00057 template
00058 <
00059 typename T,
00060 typename RandomIterator1,
00061 typename RandomIterator2
00062 >
00063 bool ludecomp(RandomIterator1 ioMatrix,
00064 RandomIterator2 oIndex,
00065 size_t iSize,
00066 int& iD);
00067
00068
00069
00070 template
00071 <
00072 typename T,
00073 typename RandomIterator1,
00074 typename RandomIterator2,
00075 typename RandomIterator3
00076 >
00077 void lusolve(RandomIterator1 iMatrix,
00078 RandomIterator2 iIndex,
00079 RandomIterator3 ioColumn,
00080 size_t iSize);
00081
00082
00083
00084 template
00085 <
00086 typename T,
00087 typename RandomIterator1,
00088 typename RandomIterator2,
00089 typename RandomIterator3,
00090 typename RandomIterator4,
00091 typename RandomIterator5
00092 >
00093 void lumprove(RandomIterator1 iMatrix,
00094 RandomIterator2 iMatrixLU,
00095 RandomIterator3 iIndex,
00096 RandomIterator4 iColumn,
00097 RandomIterator5 ioX,
00098 size_t iSize);
00099
00100
00101
00102 template <typename T, typename RandomIterator1, typename RandomIterator2>
00103 bool cramer2(RandomIterator1 iMatrixRowMajor,
00104 RandomIterator2 ioColumnFirst, RandomIterator2 ioColumnLast);
00105
00106 template <typename T, typename RandomIterator1, typename RandomIterator2>
00107 bool cramer3(RandomIterator1 iMatrixRowMajor,
00108 RandomIterator2 ioColumnFirst, RandomIterator2 ioColumnLast);
00109
00110
00111
00112
00113 template <typename T, typename RandomIterator1, typename RandomIterator2, typename RandomIterator3>
00114 bool solveTridiagonal(RandomIterator1 iA_1, RandomIterator1 iB_0, RandomIterator1 iC_0,
00115 RandomIterator2 ioSolution, RandomIterator3 ioTemp, std::size_t iSize);
00116
00117 }
00118
00119 }
00120
00121 }
00122
00123 #include "matrix_solve.inl"
00124
00125 #endif
00126
00127