Diana  0.8.3
Diana.hpp
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