00001
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef MATRIXROUTINES_H
00019 #define MATRIXROUTINES_H
00020
00022
00023 inline TDSPMatrix* Transform(TDSPMatrix *A, TDSPMatrix* X, TDSPMatrix *result=NULL) { return A->Transform(X,result);};
00024 inline TDSPMatrix* AdjointTransform(TDSPMatrix *A, TDSPMatrix* X, TDSPMatrix *result=NULL) { return A->AdjointTransform(X,result);};
00025 TDSPVector* Affine(TDSPMatrix *A, TDSPVector *x, TDSPVector *b=NULL, TDSPVector *result=NULL);
00026 TDSPMatrix* UnitMatrix(Int_t nrows, Int_t ncols=0, TComplex diag=1.0);
00027 TDSPMatrix* FlatMatrix(Int_t nrows, Int_t ncols=0, TComplex fil=1.0);
00028 inline TDSPMatrix* ZeroMatrix(Int_t nrows, Int_t ncols=0) {return FlatMatrix(nrows,ncols,0.0);}
00029 inline TDSPMatrix* Zeros(Int_t nrows, Int_t ncols=0) {return ZeroMatrix(nrows,ncols);};
00030 inline TDSPMatrix* Ones(Int_t nrows, Int_t ncols=0) {return FlatMatrix(nrows,ncols,1.0);}
00031 inline TComplex Det(TDSPMatrix *a) { return a->Det();};
00032
00033 TDSPMatrix* RowStack( TDSPVector*, Int_t n, TDSPMatrix *result=NULL);
00034 TDSPMatrix* ColumnStack(TDSPVector*, Int_t n, TDSPMatrix *result=NULL);
00035 TDSPMatrix* ConvMatrix( TDSPVector*, Int_t m=0, Int_t n=0, TDSPMatrix *result=NULL,Bool_t cyclic=kTRUE,Int_t Offset=0);
00036 TDSPMatrix* ConvMatrix( TDSPMatrix*, Int_t m=0, Int_t n=0, TDSPMatrix *result=NULL,
00037 Bool_t cyclic=kTRUE,Int_t mOffset=0,Int_t nOffset=0);
00038 TDSPMatrix* Toeplitz( TDSPVector*, Int_t m=0, Int_t n=0, TDSPMatrix *result=NULL,Bool_t cyclic=kTRUE);
00039 TDSPMatrix* RandNC(UInt_t M, UInt_t N, Double_t sigma=1.);
00040 #endif