Diana
0.8.3
|
00001 /* ----------------------------------------------------------------------------- 00002 * Diana process modelling, simulation and analysis software 00003 * Copyright (c) 2005, Michael Krasnyk 00004 * All rights reserved. 00005 * 00006 * This file is a part of Diana process modelling, simulation and analysis software 00007 * 00008 * Diana is free software; you can redistribute it and/or modify it 00009 * under the terms of the GNU General Public License as published 00010 * by the Free Software Foundation (see accompanying file LICENSE) 00011 * ----------------------------------------------------------------------------- 00012 * $Id: Diana.hpp 8935 2009-11-24 12:40:19Z miha $ 00013 * ----------------------------------------------------------------------------- 00014 * Description: 00015 */ 00016 00017 #ifndef DIANA_HPP 00018 #define DIANA_HPP 00019 00020 #include <Diana/DianaParameter.hpp> 00021 #include <Diana/DianaPetriNet.hpp> 00022 #include <Diana/DianaDAESO.hpp> 00023 #include <Diana/DianaNLAESO.hpp> 00024 #include <Diana/DianaXmlDAESO.hpp> 00025 #include <Diana/DianaModel.hpp> 00026 #include <Diana/DianaSolver.hpp> 00027 #include <Diana/DianaReporting.hpp> 00028 #include <Diana/DianaNLPParameter.hpp> 00029 #include <Diana/DianaNLPData.hpp> 00030 00031 #include <Diana/IDianaNLPParalleling.hpp> 00032 #include <Diana/IDianaContinuation.hpp> 00033 #include <Diana/IDianaMain.hpp> 00034 #include <Diana/parallel/IParallelEnv.hpp> 00035 #include <Diana/DianaNLPTask.hpp> 00036 #include <Diana/DianaBasicNLPTask.hpp> 00037 #include <Diana/DianaDynamicNLPTask.hpp> 00038 #include <Diana/DianaParameterFittingTask.hpp> 00039 #include <Diana/DianaMultipleParameterFittingTask.hpp> 00040 #include <Diana/DianaOEDTask.hpp> 00041 #include <Diana/DianaNLPTaskFactory.hpp> 00042 00043 00044 00045 #ifdef DEBUG 00046 #include <signal.h> 00047 #define ddbg if (0) ; else std::cerr<<__PRETTY_FUNCTION__<<" ("<<__FILE__<<":"<<__LINE__<<") " 00048 #define dtrap {kill(getpid(), SIGTRAP);} 00049 #else 00050 #define ddbg if (1) ; else std::cerr 00051 #define dtrap 00052 #endif 00053 #define dlog std::cerr 00054 00055 // Templates for the integer exponentiation 00056 template <int n> inline double pow (double x) { return pow<2>(pow<n/2>(x))*pow<n%2>(x); }; 00057 template <> inline double pow<0>(double x) { return double(1); }; 00058 template <> inline double pow<1>(double x) { return x; }; 00059 template <> inline double pow<2>(double x) { return x*x; }; 00060 00061 // Additional trigonometric functions not defined in math.h 00062 #include <math.h> 00063 template <typename T> inline T cot(T x) { return 1.0/tan(x); }; 00064 template <typename T> inline T csc(T x) { return 1.0/sin(x); }; 00065 template <typename T> inline T sec(T x) { return 1.0/cos(x); }; 00066 template <typename T> inline T coth(T x) { return 1.0/tanh(x); }; 00067 template <typename T> inline T csch(T x) { return 1.0/sinh(x); }; 00068 template <typename T> inline T sech(T x) { return 1.0/cosh(x); }; 00069 00070 #endif // DIANA_HPP