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 00036 using namespace hippodraw; 00037 00038 FunctionFactory * FunctionFactory::s_instance = 0; 00039 00040 FunctionFactory::FunctionFactory () 00041 { 00042 } 00043 00044 FunctionFactory * FunctionFactory::instance () 00045 { 00046 if ( s_instance == 0 ) { 00047 s_instance = new FunctionFactory (); 00048 s_instance->initialize (); 00049 } 00050 return s_instance; 00051 } 00052 00053 void FunctionFactory::initialize () 00054 { 00055 add ( new Gaussian () ); 00056 add ( new Erfc () ); 00057 add ( new Exponential () ); 00058 add ( new Landau () ); 00059 add ( new Linear () ); 00060 add ( new LinearSumFunction () ); 00061 add ( new LogNormal () ); 00062 add ( new LogParabola () ); 00063 add ( new Novosibirsk () ); 00064 add ( new PowerLaw () ); 00065 add ( new BrokenPowerLaw () ); 00066 add ( new Quadratic () ); 00067 add ( new Quadratic2 () ); 00068 add ( new ConstantF () ); 00069 add ( new Chi2Dist () ); 00070 }