Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages   Examples  

CTBfunc.hxx

Go to the documentation of this file.
00001 #ifndef _CTBfunc_HXX
00002 #define _CTBfunc_HXX 1
00003 
00008 /*----------------------------------------------------------------------------*/
00009 /* C Tool Box: Designed and implemented by:                                   */
00010 /*    Walter F.J. Mueller   Gesellschaft fuer Schwerionenforschung (GSI)      */
00011 /*                          Planckstrasse 1, D-64291 Darmstadt, Germany       */
00012 /*                  Email:  W.F.J.Mueller@gsi.de                              */
00013 /*                  WWW:    http://www-kp3.gsi.de/www/kp3/people/mueller.html */
00014 /*------------------------------------------+---------------------------------*/
00015 
00016 #include "CTBvector.hxx"
00017 #include "CTBmatrix.hxx"
00018 
00019 class CTBfuncBase {
00020   public:
00021     virtual         ~CTBfuncBase() {}
00022 };
00023 
00024 //##############################################################################
00025 template <class T>
00026 class CTBfunc1f1v : public CTBfuncBase {
00027   public:
00028     virtual T       operator()(T x) = 0;
00029 };
00030 
00031 //##############################################################################
00032 template <class T>
00033 class CTBfunc1f1df1v : public CTBfuncBase {
00034   public:
00035     virtual T       operator()(T& df, T x) = 0;
00036 };
00037 
00038 //##############################################################################
00039 template <class T>
00040 class CTBfunc1fNv : public CTBfuncBase {
00041   public:
00042     virtual T       operator()(const CTBvector<T>& x) = 0;
00043 };
00044 
00045 //##############################################################################
00046 template <class T>
00047 class CTBfunc1fNdfNv : public CTBfuncBase {
00048   public:
00049     virtual T       operator()(CTBvector<T>& df,
00050                                const CTBvector<T>& x) = 0;
00051 };
00052 
00053 //##############################################################################
00054 template <class T>
00055 class CTBfuncNfNv : public CTBfuncBase {
00056   public:
00057     virtual void    operator()(CTBvector<T>& f, const CTBvector<T>& x) = 0;
00058 };
00059 
00060 //##############################################################################
00061 template <class T>
00062 class CTBfuncNfNdfNv : public CTBfuncBase {
00063   public:
00064     virtual void    operator()(CTBvector<T>& f, CTBmatrix<T>& df,
00065                                const CTBvector<T>& x) = 0;
00066 };
00067 
00068 //##############################################################################
00069 template <class T>
00070 class CTBfuncNf1vNv : public CTBfuncBase {
00071   public:
00072     virtual void    operator()(CTBvector<T>& f, T t, const CTBvector<T>& x) = 0;
00073 };
00074 
00075 //##############################################################################
00076 template <class T>
00077 class CTBfuncNfNvNv : public CTBfuncBase {
00078   public:
00079     virtual void    operator()(CTBvector<T>& f, const CTBvector<T>& x1,
00080                                const CTBvector<T>& x2) = 0;
00081 };
00082 
00083 //##############################################################################
00084 template <class TR, class T1>
00085 class CTBfunc1Arg : public CTBfuncBase {
00086   public:
00087     virtual TR      operator()(T1 p1) = 0;
00088 };
00089 
00090 //##############################################################################
00091 template <class TR, class T1, class T2>
00092 class CTBfunc2Arg : public CTBfuncBase {
00093   public:
00094     virtual TR      operator()(T1 p1, T2 p2) = 0;
00095 };
00096 
00097 //##############################################################################
00098 template <class TR, class T1, class T2, class T3>
00099 class CTBfunc3Arg : public CTBfuncBase {
00100   public:
00101     virtual TR      operator()(T1 p1, T2 p2, T3 p3) = 0;
00102 };
00103 
00104 //##############################################################################
00105 template <class TR, class T1, class T2, class T3, class T4>
00106 class CTBfunc4Arg : public CTBfuncBase {
00107   public:
00108     virtual TR      operator()(T1 p1, T2 p2, T3 p3, T4 p4) = 0;
00109 };
00110 
00111 //##############################################################################
00112 template <class TR, class T1, class T2, class T3, class T4, class T5>
00113 class CTBfunc5Arg : public CTBfuncBase {
00114   public:
00115     virtual TR      operator()(T1 p1, T2 p2, T3 p3, T4 p4, T5 p5) = 0;
00116 };
00117 
00118 //##############################################################################
00119 template <class TR, class T1, class T2, class T3, class T4, class T5, class T6>
00120 class CTBfunc6Arg : public CTBfuncBase {
00121   public:
00122     virtual TR      operator()(T1 p1, T2 p2, T3 p3, T4 p4, T5 p5, T6 p6) = 0;
00123 };
00124 
00125 #endif

Generated at Fri Oct 24 18:11:28 2003 for CTBbase by doxygen1.2.9-20010812 written by Dimitri van Heesch, © 1997-2001