00001 00012 // for truncation warning in debug mode 00013 #ifdef _MSC_VER 00014 #include "msdevstudio/MSconfig.h" 00015 #endif 00016 00017 #include "functions/FunctionFactory.h" 00018 00019 // List of default functions 00020 #include "functions/BrokenPowerLaw.h" 00021 #include "functions/ConstantF.h" 00022 #include "functions/Erfc.h" 00023 #include "functions/Exponential.h" 00024 #include "functions/Gaussian.h" 00025 #include "functions/Landau.h" 00026 #include "functions/Linear.h" 00027 #include "functions/LinearSumFunction.h" 00028 #include "functions/LogNormal.h" 00029 #include "functions/LogParabola.h" 00030 #include "functions/Novosibirsk.h" 00031 #include "functions/PowerLaw.h" 00032 #include "functions/Quadratic.h" 00033 #include "functions/Quadratic2.h" 00034 #include "functions/Chi2Dist.h" 00035 #include "functions/Weibull.h" 00036 00037 using namespace hippodraw; 00038 00039 FunctionFactory * FunctionFactory::s_instance = 0; 00040 00041 FunctionFactory::FunctionFactory () 00042 { 00043 } 00044 00045 FunctionFactory * FunctionFactory::instance () 00046 { 00047 if ( s_instance == 0 ) { 00048 s_instance = new FunctionFactory (); 00049 s_instance->initialize (); 00050 } 00051 return s_instance; 00052 } 00053 00054 void FunctionFactory::initialize () 00055 { 00056 add ( new Gaussian () ); 00057 add ( new Erfc () ); 00058 add ( new Exponential () ); 00059 add ( new Landau () ); 00060 add ( new Linear () ); 00061 add ( new LinearSumFunction () ); 00062 add ( new LogNormal () ); 00063 add ( new LogParabola () ); 00064 add ( new Novosibirsk () ); 00065 add ( new PowerLaw () ); 00066 add ( new BrokenPowerLaw () ); 00067 add ( new Quadratic () ); 00068 add ( new Quadratic2 () ); 00069 add ( new ConstantF () ); 00070 add ( new Chi2Dist () ); 00071 add ( new Weibull () ); 00072 }