00001
00002
00003
00004
00005
00006
00007 #ifndef MCFMP_H
00008 #define MCFMP_H
00009
00010 #ifdef USE_STD
00011 #include <iostream>
00012 #include <cmath>
00013 using namespace std;
00014 #else
00015 #include <iostream.h>
00016 #include <math.h>
00017 #endif
00018
00019 #include "utility.h"
00020 #include "Rtmra.h"
00021 #include "Rtrsmra.h"
00022 #include "MCFmpBase.h"
00023
00024 template <class Rtmra_t>
00025 class MCFmp : public MCFmpBase
00026 {
00027 public:
00028
00029 typedef typename Rtmra_t::DataType Data_t;
00030
00031 MCFmp( const int bplen_mpsizeb, const int bplen_coef,
00032 const int bplen_n, const int bplen_a);
00033
00034 MCFmp( const int bplen_mpsizeb, const int bplen_coef,
00035 const int bplen_n) ;
00036
00037 ~MCFmp() {}
00038
00039 void threshold( const Data_t threshold );
00040 Data_t threshold();
00041
00042 MCFmp<Rtmra_t>& operator () ( Rtmra_t&, const char mcode );
00043
00044 void encode( Rtmra_t&, const char mcode ) {}
00045
00046 void replace( Rtmra_t& ) {}
00047
00048 protected:
00049 Data_t _threshold;
00050
00051 };
00052
00053 template <class Rtmra_t>
00054 MCFmp<Rtmra_t>::MCFmp(
00055 const int bplen_mpsizeb, const int bplen_coef,
00056 const int bplen_n, const int bplen_a
00057 ) : MCFmpBase( bplen_mpsizeb, bplen_coef, bplen_n, bplen_a ) {}
00058
00059 template <class Rtmra_t>
00060 MCFmp<Rtmra_t>::MCFmp(
00061 const int bplen_mpsizeb, const int bplen_coef,
00062 const int bplen_n
00063 ) : MCFmpBase( bplen_mpsizeb, bplen_coef, bplen_n ) {}
00064
00065 template <class Rtmra_t>
00066 void MCFmp<Rtmra_t>::threshold( const Data_t threshold )
00067 {
00068 _threshold = threshold;
00069 }
00070
00071 template <class Rtmra_t>
00072 typename MCFmp<Rtmra_t>::Data_t MCFmp<Rtmra_t>::threshold() { return _threshold; }
00073
00074 template <class Rtmra_t>
00075 MCFmp<Rtmra_t>& MCFmp<Rtmra_t>::operator () ( Rtmra_t& x, const char mcode )
00076 {
00077 MCFmp<Rtmra_t>::encode(x,mcode);
00078 return *this;
00079 }
00080
00081 #include "MCFmp_Rtmra_float_scalar.h"
00082 #include "MCFmp_Rtmra_double_scalar.h"
00083 #include "MCFmp_Rtmra_int_scalar.h"
00084
00085 #include "MCFmp_Rtmra_float_array.h"
00086 #include "MCFmp_Rtmra_double_array.h"
00087 #include "MCFmp_Rtmra_int_array.h"
00088
00089 #include "MCFmp_Rtrsmra_float_scalar.h"
00090 #include "MCFmp_Rtrsmra_double_scalar.h"
00091 #include "MCFmp_Rtrsmra_int_scalar.h"
00092
00093 #include "MCFmp_Rtrsmra_float_array.h"
00094 #include "MCFmp_Rtrsmra_double_array.h"
00095 #include "MCFmp_Rtrsmra_int_array.h"
00096
00097 #endif
00098