Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

TDSPBlockOperation.h

Go to the documentation of this file.
00001 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 #ifndef TDSPBLOCKOPERATION_H
00019 #define TDSPBLOCKOPERATION_H
00020 
00021 #include <Rtypes.h>
00022 #include <TDSPVector.h>
00023 
00028 class TDSPBlockOperation {
00029  public: 
00030   TDSPBlockOperation();
00031 
00032   virtual ~TDSPBlockOperation();
00033   virtual Int_t      GetBlockLen() = 0;
00034   virtual UInt_t     TrimBlock(UInt_t l) { return (l/GetBlockLen())*GetBlockLen();}; 
00035   static TDSPVector *Sum(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00036   TDSPVector*        Sum(TDSPVector *in, TDSPVector*result=NULL);
00037 
00038   static TDSPVector *SumDiff(Int_t, TDSPVector *in1, 
00039                  TDSPVector *in2,TDSPVector*result=NULL, 
00040                  TComplex scaler=1); 
00041   TDSPVector*        SumDiff(TDSPVector *in1, TDSPVector *in2, 
00042                  TDSPVector*result=NULL, TComplex scaler=1);  
00043 
00044   static TDSPVector *MeanDiff(Int_t, TDSPVector *in1, 
00045                   TDSPVector *in2,TDSPVector*result=NULL, 
00046                   TComplex scaler=1);
00047   TDSPVector*        MeanDiff(TDSPVector *in1, TDSPVector *in2, 
00048                   TDSPVector*result=NULL, TComplex scaler=1);  
00049 
00050   static TDSPVector *Sum2Diff(Int_t, TDSPVector *in1, TDSPVector *in2,TDSPVector*result=NULL, TComplex scaler=1);
00051   TDSPVector*        Sum2Diff(TDSPVector *in1, TDSPVector *in2, TDSPVector*result=NULL, TComplex scaler=1); 
00052 
00053   static TDSPVector *Mean2Diff(Int_t, TDSPVector *in1, 
00054                    TDSPVector *in2,TDSPVector*result=NULL, 
00055                    TComplex scaler=1);
00056   TDSPVector*        Mean2Diff(TDSPVector *in1, TDSPVector *in2, 
00057                    TDSPVector*result=NULL, TComplex scaler=1);  
00058       
00059   static TDSPVector *Mean(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00060   TDSPVector*        Mean(TDSPVector *in, TDSPVector*result=NULL);
00061 
00062   static TDSPVector *MeanAbs2(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00063   TDSPVector*        MeanAbs2(TDSPVector *in, TDSPVector*result=NULL);
00064 
00065   static TDSPVector *I_MeanAbs2(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00066   TDSPVector*        I_MeanAbs2(TDSPVector *in, TDSPVector*result=NULL);
00067 
00068   static TDSPVector *MeanAbs(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00069   TDSPVector*        MeanAbs(TDSPVector *in, TDSPVector*result=NULL);
00070 
00071   static TDSPVector *I_MeanAbs(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00072   TDSPVector*        I_MeanAbs(TDSPVector *in, TDSPVector*result=NULL);
00073 
00074   static TDSPVector *MaxAbs2(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00075   TDSPVector*        MaxAbs2(TDSPVector *in, TDSPVector*result=NULL);
00076 
00077   static TDSPVector *I_MaxAbs2(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00078   TDSPVector*        I_MaxAbs2(TDSPVector *in, TDSPVector*result=NULL);
00079 
00080   static TDSPVector *MinAbs2(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00081   TDSPVector*        MinAbs2(TDSPVector *in, TDSPVector*result=NULL);
00082 
00083   static TDSPVector *I_MinAbs2(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00084   TDSPVector*        I_MinAbs2(TDSPVector *in, TDSPVector*result=NULL);
00085 
00086   static TDSPVector *MaxAbs(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00087   TDSPVector*        MaxAbs(TDSPVector *in, TDSPVector*result=NULL);
00088 
00089   static TDSPVector *I_MaxAbs(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00090   TDSPVector*        I_MaxAbs(TDSPVector *in, TDSPVector*result=NULL);
00091 
00092   static TDSPVector *MinAbs(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00093   TDSPVector*        MinAbs(TDSPVector *in, TDSPVector*result=NULL);
00094 
00095   static TDSPVector *I_MinAbs(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00096   TDSPVector*        I_MinAbs(TDSPVector *in, TDSPVector*result=NULL);
00097 
00098   static TDSPVector *MeanPower(Int_t, TDSPVector *in, TDSPVector*result=NULL);
00099   TDSPVector*        MeanPower(TDSPVector *in, TDSPVector*result=NULL);
00100 
00101   static TDSPVector *MSE(Int_t, TDSPVector *in1, TDSPVector *in2, TDSPVector*result=NULL, TComplex scaler=1);
00102   TDSPVector*        MSE(TDSPVector *in1, TDSPVector *in2, TDSPVector*result=NULL, TComplex scaler=1);
00103 
00104   static TDSPVector *SumPhaseDiff(Int_t, TDSPVector *in1, TDSPVector *in2, TDSPVector*result=NULL, TComplex scaler=1);
00105   TDSPVector*        SumPhaseDiff(TDSPVector *in1, TDSPVector *in2, TDSPVector*result=NULL, TComplex scaler=1);
00106 
00107   static TDSPVector *Sum2PhaseDiff(Int_t, TDSPVector *in1, TDSPVector *in2, TDSPVector*result=NULL, TComplex scaler=1);
00108   TDSPVector*        Sum2PhaseDiff(TDSPVector *in1, TDSPVector *in2, TDSPVector*result=NULL, TComplex scaler=1);
00109 
00110   static TDSPVector *MeanPhaseDiff(Int_t, TDSPVector *in1, TDSPVector *in2, TDSPVector*result=NULL, TComplex scaler=1);
00111   TDSPVector*        MeanPhaseDiff(TDSPVector *in1, TDSPVector *in2, TDSPVector*result=NULL, TComplex scaler=1);
00112 
00113   static TDSPVector *Mean2PhaseDiff(Int_t, TDSPVector *in1, TDSPVector *in2, TDSPVector*result=NULL, TComplex scaler=1);
00114   TDSPVector*        Mean2PhaseDiff(TDSPVector *in1, TDSPVector *in2, TDSPVector*result=NULL, TComplex scaler=1);
00115 
00116   ClassDef(TDSPBlockOperation,1)
00117 
00118 };
00119 
00120 inline TDSPVector* TDSPBlockOperation::Sum(TDSPVector *in, TDSPVector *result) {
00121   return Sum(GetBlockLen(), in, result);
00122 }
00123 
00124 inline TDSPVector* TDSPBlockOperation::Mean(TDSPVector *in, TDSPVector *result) {
00125   return Mean(GetBlockLen(), in, result);
00126 }
00127 
00128 inline TDSPVector* TDSPBlockOperation::MeanAbs2(TDSPVector *in, TDSPVector *result) {
00129   return MeanAbs2(GetBlockLen(), in, result);
00130 }
00131 
00132 inline TDSPVector* TDSPBlockOperation::I_MeanAbs2(TDSPVector *in, TDSPVector *result) {
00133   return I_MeanAbs2(GetBlockLen(), in, result);
00134 }
00135 
00136 inline TDSPVector* TDSPBlockOperation::MeanAbs(TDSPVector *in, TDSPVector *result) {
00137   return MeanAbs(GetBlockLen(), in, result);
00138 }
00139 
00140 inline TDSPVector* TDSPBlockOperation::I_MeanAbs(TDSPVector *in, TDSPVector *result) {
00141   return I_MeanAbs(GetBlockLen(), in, result);
00142 }
00143 
00144 inline TDSPVector* TDSPBlockOperation::MaxAbs2(TDSPVector *in, TDSPVector *result) {
00145   return MaxAbs2(GetBlockLen(), in, result);
00146 }
00147 
00148 inline TDSPVector* TDSPBlockOperation::I_MaxAbs2(TDSPVector *in, TDSPVector *result) {
00149   return I_MaxAbs2(GetBlockLen(), in, result);
00150 }
00151 
00152 inline TDSPVector* TDSPBlockOperation::MinAbs2(TDSPVector *in, TDSPVector *result) {
00153   return MinAbs2(GetBlockLen(), in, result);
00154 }
00155 
00156 inline TDSPVector* TDSPBlockOperation::I_MinAbs2(TDSPVector *in, TDSPVector *result) {
00157   return I_MinAbs2(GetBlockLen(), in, result);
00158 }
00159 
00160 inline TDSPVector* TDSPBlockOperation::MaxAbs(TDSPVector *in, TDSPVector *result) {
00161   return MaxAbs(GetBlockLen(), in, result);
00162 }
00163 
00164 inline TDSPVector* TDSPBlockOperation::I_MaxAbs(TDSPVector *in, TDSPVector *result) {
00165   return I_MaxAbs(GetBlockLen(), in, result);
00166 }
00167 
00168 inline TDSPVector* TDSPBlockOperation::MinAbs(TDSPVector *in, TDSPVector *result) {
00169   return MinAbs(GetBlockLen(), in, result);
00170 }
00171 
00172 inline TDSPVector* TDSPBlockOperation::I_MinAbs(TDSPVector *in, TDSPVector *result) {
00173   return MinAbs(GetBlockLen(), in, result);
00174 }
00175 
00176 inline TDSPVector* TDSPBlockOperation::MeanPower(TDSPVector *in, TDSPVector *result) {
00177   return MeanPower(GetBlockLen(), in, result);
00178 }
00179 
00180 inline TDSPVector* TDSPBlockOperation::SumDiff(TDSPVector *in1, TDSPVector *in2, TDSPVector*result, TComplex scaler) {
00181   return SumDiff(GetBlockLen(),in1,in2,result,scaler);
00182 }  
00183 inline TDSPVector* TDSPBlockOperation::MeanDiff(TDSPVector *in1, TDSPVector *in2, TDSPVector*result, TComplex scaler) {
00184   return MeanDiff(GetBlockLen(),in1,in2,result,scaler);
00185 }  
00186 inline TDSPVector* TDSPBlockOperation::Sum2Diff(TDSPVector *in1, TDSPVector *in2, TDSPVector*result, TComplex scaler) {
00187   return Sum2Diff(GetBlockLen(),in1,in2,result,scaler);
00188 }  
00189 inline TDSPVector* TDSPBlockOperation::Mean2Diff(TDSPVector *in1, TDSPVector *in2, TDSPVector*result, TComplex scaler) {
00190   return Sum2Diff(GetBlockLen(),in1,in2,result,scaler);
00191 }  
00192 inline TDSPVector* TDSPBlockOperation::MSE(TDSPVector *in1, TDSPVector *in2, TDSPVector*result, TComplex scaler) {
00193   return Mean2Diff(GetBlockLen(),in1,in2,result,scaler);
00194 }  
00195 
00196 inline TDSPVector* TDSPBlockOperation::MSE(Int_t bl,TDSPVector *in1, TDSPVector *in2, TDSPVector*result, TComplex scaler) {
00197   return Mean2Diff(bl,in1,in2,result,scaler);
00198 }  
00199 
00200 inline TDSPVector* TDSPBlockOperation::SumPhaseDiff(TDSPVector *in1, TDSPVector *in2, TDSPVector*result, TComplex scaler) {
00201   return SumPhaseDiff(GetBlockLen(),in1,in2,result,scaler);
00202 }  
00203 
00204 inline TDSPVector* TDSPBlockOperation::Sum2PhaseDiff(TDSPVector *in1, TDSPVector *in2, TDSPVector*result, TComplex scaler) {
00205   return Sum2PhaseDiff(GetBlockLen(),in1,in2,result,scaler);
00206 }  
00207 
00208 inline TDSPVector* TDSPBlockOperation::MeanPhaseDiff(TDSPVector *in1, TDSPVector *in2, TDSPVector*result, TComplex scaler) {
00209   return MeanPhaseDiff(GetBlockLen(),in1,in2,result,scaler);
00210 }  
00211 inline TDSPVector* TDSPBlockOperation::Mean2PhaseDiff(TDSPVector *in1, TDSPVector *in2, TDSPVector*result, TComplex scaler) {
00212   return Mean2PhaseDiff(GetBlockLen(),in1,in2,result,scaler);
00213 }  
00214 #endif

Generated on Fri Apr 23 16:23:43 2004 by doxygen 1.3.2