00001
00002
00003
00004
00005
00006
00007
00008 #ifndef synaps_linalg_Decomp_H
00009 #define synaps_linalg_Decomp_H
00010
00011 #include <synaps/init.h>
00012 #include <synaps/linalg/MethodName.h>
00013
00014 __BEGIN_NAMESPACE_SYNAPS
00015
00032 template<class A, class M> inline
00033 M Decomp(const M & mat)
00034 {
00035 M x(mat);
00036 using MATRIX::decomp; decomp(A(),x.rep());
00037 return (x);
00038 }
00039
00041 template<class A, class M> inline
00042 M Triang(const M & mat)
00043 {
00044 M x(mat);
00045 using MATRIX::decomp; decomp(A(),x.rep());
00046 return (x);
00047 }
00048
00054 template<class A, class M1, class M2> inline
00055 M1 Decomp(M1 & mat, M2 & L)
00056 {
00057 M1 x(mat);
00058 using MATRIX::decomp; decomp(A(),x.rep(),L.rep());
00059 return (x);
00060 }
00061
00068 template<class A, class M1, class M2, class M3> inline
00069 M1 Decomp(M1 & mat, M2 & L, M3 & S)
00070 {
00071 M1 x(mat);
00072 using MATRIX::decomp; decomp(A(),x.rep(),L.rep(),S.rep());
00073 return (x);
00074 }
00075
00076 __END_NAMESPACE_SYNAPS
00077 #endif // synaps_linalg_Decomp_H
00078