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 #ifndef EpetraExt_CRSMATRIX_BTF_H
00030 #define EpetraExt_CRSMATRIX_BTF_H
00031
00032 #include <EpetraExt_Transform.h>
00033
00034 class Epetra_CrsMatrix;
00035 class Epetra_CrsGraph;
00036 class Epetra_Map;
00037 class Epetra_Import;
00038
00039 namespace EpetraExt {
00040
00041 class CrsMatrix_BTF : public SameTypeTransform<Epetra_CrsMatrix> {
00042
00043 public:
00044
00045 ~CrsMatrix_BTF();
00046
00047 CrsMatrix_BTF( double thres = 0.0,
00048 bool verbose = false )
00049 : NewRowMap_(0),
00050 NewColMap_(0),
00051 NewMatrix_(0),
00052 NewGraph_(0),
00053 Importer_(0),
00054 threshold_(thres),
00055 verbose_(verbose)
00056 {}
00057
00058 NewTypeRef operator()( OriginalTypeRef orig );
00059
00060 bool fwd();
00061 bool rvs();
00062
00063 private:
00064
00065 Epetra_Map * NewRowMap_;
00066 Epetra_Map * NewColMap_;
00067
00068 Epetra_CrsMatrix * NewMatrix_;
00069 Epetra_CrsGraph * NewGraph_;
00070
00071 Epetra_Import * Importer_;
00072
00073 const double threshold_;
00074
00075 const bool verbose_;
00076 };
00077
00078 }
00079
00080 #endif //EpetraExt_CRSMATRIX_BTF_H