/*************************************************************************** TGapIntegrals.h Author: Bastian M. Wojek ***************************************************************************/ /*************************************************************************** * Copyright (C) 2009 by Bastian M. Wojek * * bastian.wojek@psi.ch * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ #ifndef _TGapIntegrals_H_ #define _TGapIntegrals_H_ #include #include #include "PUserFcnBase.h" #include "BMWIntegrator.h" //-------------------------------------------------------------------- /** *

*/ class TGapSWave : public PUserFcnBase { public: TGapSWave(); virtual ~TGapSWave(); double operator()(double, const std::vector&) const; private: TGapIntegral *fGapIntegral; mutable std::vector fTemp; mutable std::vector::const_iterator fTempIter; mutable std::vector fIntegralValues; mutable std::vector fCalcNeeded; mutable std::vector fPar; ClassDef(TGapSWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TGapPointPWave : public PUserFcnBase { public: TGapPointPWave(); virtual ~TGapPointPWave(); double operator()(double, const std::vector&) const; private: TPointPWaveGapIntegralCuhre *fGapIntegral; mutable std::vector fTemp; mutable std::vector::const_iterator fTempIter; mutable std::vector fIntegralValues; mutable std::vector fCalcNeeded; mutable std::vector fPar; ClassDef(TGapPointPWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TGapLinePWave : public PUserFcnBase { public: TGapLinePWave(); virtual ~TGapLinePWave(); double operator()(double, const std::vector&) const; private: TLinePWaveGapIntegralCuhre *fGapIntegral; mutable std::vector fTemp; mutable std::vector::const_iterator fTempIter; mutable std::vector fIntegralValues; mutable std::vector fCalcNeeded; mutable std::vector fPar; ClassDef(TGapLinePWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TGapDWave : public PUserFcnBase { public: TGapDWave(); virtual ~TGapDWave(); double operator()(double, const std::vector&) const; private: TDWaveGapIntegralCuhre *fGapIntegral; mutable std::vector fTemp; mutable std::vector::const_iterator fTempIter; mutable std::vector fIntegralValues; mutable std::vector fCalcNeeded; mutable std::vector fPar; ClassDef(TGapDWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TGapCosSqDWave : public PUserFcnBase { public: TGapCosSqDWave(); virtual ~TGapCosSqDWave(); double operator()(double, const std::vector&) const; private: TCosSqDWaveGapIntegralCuhre *fGapIntegral; mutable std::vector fTemp; mutable std::vector::const_iterator fTempIter; mutable std::vector fIntegralValues; mutable std::vector fCalcNeeded; mutable std::vector fPar; ClassDef(TGapCosSqDWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TGapSinSqDWave : public PUserFcnBase { public: TGapSinSqDWave(); virtual ~TGapSinSqDWave(); double operator()(double, const std::vector&) const; private: TSinSqDWaveGapIntegralCuhre *fGapIntegral; mutable std::vector fTemp; mutable std::vector::const_iterator fTempIter; mutable std::vector fIntegralValues; mutable std::vector fCalcNeeded; mutable std::vector fPar; ClassDef(TGapSinSqDWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TGapAnSWave : public PUserFcnBase { public: TGapAnSWave(); virtual ~TGapAnSWave(); double operator()(double, const std::vector&) const; private: TAnSWaveGapIntegralCuhre *fGapIntegral; mutable std::vector fTemp; mutable std::vector::const_iterator fTempIter; mutable std::vector fIntegralValues; mutable std::vector fCalcNeeded; mutable std::vector fPar; ClassDef(TGapAnSWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TGapNonMonDWave1 : public PUserFcnBase { public: TGapNonMonDWave1(); virtual ~TGapNonMonDWave1(); double operator()(double, const std::vector&) const; private: TNonMonDWave1GapIntegralCuhre *fGapIntegral; mutable std::vector fTemp; mutable std::vector::const_iterator fTempIter; mutable std::vector fIntegralValues; mutable std::vector fCalcNeeded; mutable std::vector fPar; ClassDef(TGapNonMonDWave1,1) }; //-------------------------------------------------------------------- /** *

*/ class TGapNonMonDWave2 : public PUserFcnBase { public: TGapNonMonDWave2(); virtual ~TGapNonMonDWave2(); double operator()(double, const std::vector&) const; private: TNonMonDWave2GapIntegralCuhre *fGapIntegral; mutable std::vector fTemp; mutable std::vector::const_iterator fTempIter; mutable std::vector fIntegralValues; mutable std::vector fCalcNeeded; mutable std::vector fPar; ClassDef(TGapNonMonDWave2,1) }; //-------------------------------------------------------------------- /** *

*/ class TGapPowerLaw : public PUserFcnBase { public: TGapPowerLaw() {} virtual ~TGapPowerLaw() {} double operator()(double, const std::vector&) const; private: ClassDef(TGapPowerLaw,1) }; //-------------------------------------------------------------------- /** *

*/ class TGapDirtySWave : public PUserFcnBase { public: TGapDirtySWave() {} virtual ~TGapDirtySWave() {} double operator()(double, const std::vector&) const; private: ClassDef(TGapDirtySWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaSWave : public PUserFcnBase { public: TLambdaSWave(); virtual ~TLambdaSWave(); double operator()(double, const std::vector&) const; private: TGapSWave *fLambdaInvSq; ClassDef(TLambdaSWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaPointPWave : public PUserFcnBase { public: TLambdaPointPWave(); virtual ~TLambdaPointPWave(); double operator()(double, const std::vector&) const; private: TGapPointPWave *fLambdaInvSq; ClassDef(TLambdaPointPWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaLinePWave : public PUserFcnBase { public: TLambdaLinePWave(); virtual ~TLambdaLinePWave(); double operator()(double, const std::vector&) const; private: TGapLinePWave *fLambdaInvSq; ClassDef(TLambdaLinePWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaDWave : public PUserFcnBase { public: TLambdaDWave(); virtual ~TLambdaDWave(); double operator()(double, const std::vector&) const; private: TGapDWave *fLambdaInvSq; ClassDef(TLambdaDWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaAnSWave : public PUserFcnBase { public: TLambdaAnSWave(); virtual ~TLambdaAnSWave(); double operator()(double, const std::vector&) const; private: TGapAnSWave *fLambdaInvSq; ClassDef(TLambdaAnSWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaNonMonDWave1 : public PUserFcnBase { public: TLambdaNonMonDWave1(); virtual ~TLambdaNonMonDWave1(); double operator()(double, const std::vector&) const; private: TGapNonMonDWave1 *fLambdaInvSq; ClassDef(TLambdaNonMonDWave1,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaNonMonDWave2 : public PUserFcnBase { public: TLambdaNonMonDWave2(); virtual ~TLambdaNonMonDWave2(); double operator()(double, const std::vector&) const; private: TGapNonMonDWave2 *fLambdaInvSq; ClassDef(TLambdaNonMonDWave2,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaPowerLaw : public PUserFcnBase { public: TLambdaPowerLaw() {} virtual ~TLambdaPowerLaw() {} double operator()(double, const std::vector&) const; private: ClassDef(TLambdaPowerLaw,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaInvSWave : public PUserFcnBase { public: TLambdaInvSWave(); virtual ~TLambdaInvSWave(); double operator()(double, const std::vector&) const; private: TGapSWave *fLambdaInvSq; ClassDef(TLambdaInvSWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaInvPointPWave : public PUserFcnBase { public: TLambdaInvPointPWave(); virtual ~TLambdaInvPointPWave(); double operator()(double, const std::vector&) const; private: TGapPointPWave *fLambdaInvSq; ClassDef(TLambdaInvPointPWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaInvLinePWave : public PUserFcnBase { public: TLambdaInvLinePWave(); virtual ~TLambdaInvLinePWave(); double operator()(double, const std::vector&) const; private: TGapLinePWave *fLambdaInvSq; ClassDef(TLambdaInvLinePWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaInvDWave : public PUserFcnBase { public: TLambdaInvDWave(); virtual ~TLambdaInvDWave(); double operator()(double, const std::vector&) const; private: TGapDWave *fLambdaInvSq; ClassDef(TLambdaInvDWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaInvAnSWave : public PUserFcnBase { public: TLambdaInvAnSWave(); virtual ~TLambdaInvAnSWave(); double operator()(double, const std::vector&) const; private: TGapAnSWave *fLambdaInvSq; ClassDef(TLambdaInvAnSWave,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaInvNonMonDWave1 : public PUserFcnBase { public: TLambdaInvNonMonDWave1(); virtual ~TLambdaInvNonMonDWave1(); double operator()(double, const std::vector&) const; private: TGapNonMonDWave1 *fLambdaInvSq; ClassDef(TLambdaInvNonMonDWave1,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaInvNonMonDWave2 : public PUserFcnBase { public: TLambdaInvNonMonDWave2(); virtual ~TLambdaInvNonMonDWave2(); double operator()(double, const std::vector&) const; private: TGapNonMonDWave2 *fLambdaInvSq; ClassDef(TLambdaInvNonMonDWave2,1) }; //-------------------------------------------------------------------- /** *

*/ class TLambdaInvPowerLaw : public PUserFcnBase { public: TLambdaInvPowerLaw() {} virtual ~TLambdaInvPowerLaw() {} double operator()(double, const std::vector&) const; private: ClassDef(TLambdaInvPowerLaw,1) }; //-------------------------------------------------------------------- /** *

*/ class TFilmMagnetizationDWave : public PUserFcnBase { public: TFilmMagnetizationDWave(); virtual ~TFilmMagnetizationDWave(); double operator()(double, const std::vector&) const; private: TGapDWave *fLambdaInvSq; mutable std::vector fPar; ClassDef(TFilmMagnetizationDWave,1) }; #endif //_TGapIntegrals_H_