00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00018 #ifndef _ARAGELI_bareiss_hpp_
00019 #define _ARAGELI_bareiss_hpp_
00020
00021 #include "config.hpp"
00022
00023
00024 namespace Arageli
00025 {
00026
00027
00029
00037 template
00038 <
00039 typename MA,
00040 typename MB,
00041 typename MQ,
00042 typename Basis,
00043 typename T_det
00044 >
00045 void bareiss
00046 (
00047 const MA& A,
00048 MB& B,
00049 MQ& Q,
00050 Basis& basis,
00051 T_det& det
00052 );
00053
00054
00056
00063 template
00064 <
00065 typename MA,
00066 typename MP,
00067 typename MQ,
00068 typename Rank,
00069 typename T_det
00070 >
00071 void bareiss_pq
00072 ( const MA& A,
00073 MP& P,
00074 MQ& Q,
00075 Rank& rank,
00076 T_det& det
00077 );
00078
00079
00080 template <typename MA> MA adjoint (const MA& A);
00081
00082
00083 template
00084 <
00085 typename MA,
00086 typename MP,
00087 typename T_det
00088 >
00089 void adjoint
00090 (
00091 const MA& A,
00092 MP& P,
00093 T_det& det
00094 );
00095
00096
00097 template <typename MA>
00098 typename MA::element_type det_brs (const MA& A);
00099
00100
00101 template <typename MA>
00102 typename MA::size_type rank_brs (const MA& A);
00103
00104
00105 }
00106
00107
00108 #ifdef ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE
00109 #define ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_bareiss
00110 #include "bareiss.cpp"
00111 #undef ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_bareiss
00112 #endif
00113
00114 #endif // #ifndef _ARAGELI_bareiss_hpp_