LCOV - code coverage report
Current view: top level - builds/barbot/Cosmos/src/ModelGenerator - parameters.hpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 13 13 100.0 %
Date: 2021-06-16 15:43:28 Functions: 4 4 100.0 %

          Line data    Source code
       1             : /*******************************************************************************
       2             :  *                                                                             *
       3             :  * Cosmos:(C)oncept et (O)utils (S)tatistique pour les (Mo)deles               *
       4             :  * (S)tochastiques                                                             *
       5             :  *                                                                             *
       6             :  * Copyright (C) 2009-2012 LSV & LACL                                          *
       7             :  * Authors: Paolo Ballarini BenoƮt Barbot & Hilal Djafri                       *
       8             :  * Website: http://www.lsv.ens-cachan.fr/Software/cosmos                       *
       9             :  *                                                                             *
      10             :  * This program is free software; you can redistribute it and/or modify        *
      11             :  * it under the terms of the GNU General Public License as published by        *
      12             :  * the Free Software Foundation; either version 3 of the License, or           *
      13             :  * (at your option) any later version.                                         *
      14             :  *                                                                             *
      15             :  * This program is distributed in the hope that it will be useful,             *
      16             :  * but WITHOUT ANY WARRANTY; without even the implied warranty of              *
      17             :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               *
      18             :  * GNU General Public License for more details.                                *
      19             :  *                                                                             *
      20             :  * You should have received a copy of the GNU General Public License along     *
      21             :  * with this program; if not, write to the Free Software Foundation, Inc.,     *
      22             :  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.                 *
      23             :  * file parameters.hpp                                                         *
      24             :  * Created by Benoit Barbot on 08/02/12.                                       *
      25             :  *******************************************************************************
      26             :  */
      27             : 
      28             : #ifndef Cosmos_parameters_h
      29             : #define Cosmos_parameters_h
      30             : 
      31             : #include <string>
      32             : #include <set>
      33             : #include <vector>
      34             : #include <map>
      35             : #include <chrono>
      36             : 
      37             : #include "HaslFormula.hpp"
      38             : 
      39             : #define let const auto&
      40             : 
      41             : enum LHAGenType:int {
      42             :     NoGen,
      43             :     EmptyLoop,
      44             :     TimeLoop,
      45             :     ActionLoop,
      46             :     SamplingLoop,
      47             :     CSL_LHA
      48             : };
      49             : 
      50             : enum Poption {
      51             :     CO_level,
      52             :     CO_width,
      53             :     CO_batch,
      54             :     CO_max_run,
      55             :     CO_seed,
      56             :     CO_VDC,
      57             :     CO_RandomGen,
      58             :     CO_local_test,
      59             :     CO_sampling,
      60             :     CO_loop,
      61             :     CO_transient,
      62             :     CO_formula,
      63             :     CO_chernoff,
      64             :     CO_relative,
      65             :     CO_const,
      66             :     CO_rareevent,
      67             :     CO_boundedcountiniouceRE,
      68             :     CO_boundedRE,
      69             :     CO_step_continuous,
      70             :     CO_epsilon,
      71             :     CO_set_Horizon,
      72             :     CO_state_space,
      73             :     CO_lump,
      74             :     CO_prism,
      75             :     CO_normalize_IS,
      76             :     CO_grml_input,
      77             :     CO_alligator_mode,
      78             :     CO_gui_greatSPN_mode,
      79             :     CO_unfold,
      80             :     CO_output_model,
      81             :     CO_HASL_formula,
      82             :     CO_njob,
      83             :     CO_gppcmd,
      84             :     CO_gppflags,
      85             :     CO_light_simulator,
      86             :     CO_verbose,
      87             :     CO_interactive,
      88             :     CO_update_time,
      89             :     CO_output_data,
      90             :     CO_output_raw,
      91             :     CO_output_trace,
      92             :     CO_output_graph,
      93             :     CO_output_dot,
      94             :     CO_gnuplot_driver,
      95             :     CO_trace_pt,
      96             :     CO_help,
      97             :     CO_count_transition,
      98             :     CO_debug_string,
      99             :     CO_tmp_path,
     100             :     CO_tmp_status,
     101             :     CO_bin_path,
     102             :     CO_prism_path,
     103             :     CO_magic_values,
     104             :     CO_version,
     105             :     CO_reuse,
     106             :     CO_use_magic_print,
     107             :     CO_domain_impl,
     108             :     CO_force_TTY,
     109             :     CO_not_gspn,
     110             :     CO_gracefull_ending,
     111             : };
     112             : 
     113             : enum RandomGenerator:int {
     114             :     MT19937,
     115             :     VDC,
     116             :     Kronecker
     117             : };
     118             : 
     119             : enum TmpStat:int {
     120             :     TS_GEN       = 0x01,
     121             :     TS_BUILD     = 0x02,
     122             :     TS_RUN       = 0x04,
     123             :     TS_DESTROY   = 0x08
     124             : };
     125             : 
     126             : enum ModelType:int {
     127             :     GSPN,
     128             :     GSPN_Simulink,
     129             :     External,
     130             :     CTMC
     131             : };
     132             : 
     133             : enum LHAType:int {
     134             :     DET,
     135             :     NOT_DET
     136             : };
     137             : 
     138             : 
     139         276 : struct parameters {
     140             :     std::string commandLine;
     141             :     int verbose;
     142             :     bool interactive;
     143             :     std::chrono::milliseconds updatetime;
     144             :     unsigned long seed;
     145             :     int randomGen;
     146             :     int Njob;
     147             : 
     148             :     double epsilon;
     149             :     int continuousStep;
     150             :     double Level;
     151             :     double Width;
     152             :     unsigned long int Batch;
     153             :     unsigned long int MaxRuns;
     154             :     bool sequential;
     155             :     bool relative;
     156             :     bool chernoff;
     157             : 
     158             :     std::string comp_uuid;
     159             :     std::string tmpPath;
     160             :     TmpStat tmpStatus;      // 0 create and destroy tmp (default),
     161             :                             // 1 do not build but destroy,
     162             :                             // 2 do not destroy,
     163             :                             // 3 do not build nor destoy
     164             :                             // 4 do not generate but build and do not destroy
     165             :     bool reuse;
     166             : 
     167             :     ModelType modelType;
     168             :     LHAType lhaType;
     169             : 
     170             :     std::string Path;
     171             :     std::string PathGspn;
     172             :     std::string PathLha;
     173             :     std::map<std::string, std::string> constants;
     174             : 
     175             :     LHAGenType generateLHA;
     176             :     double loopLHA;
     177             :     double loopTransientLHA;
     178             :     std::string CSLformula;
     179             :     std::string externalHASL;
     180             :     bool localTesting;
     181             :     bool RareEvent;
     182             :     bool DoubleIS;
     183             :     int BoundedRE;
     184             :     double horizon;
     185             :     bool BoundedContinuous;
     186             :     bool CountTrans;
     187             :     bool StringInSpnLHA;
     188             : 
     189             :     bool GMLinput;
     190             :     int computeStateSpace;
     191             :     bool lumpStateSpace;
     192             : 
     193             :     bool alligatorMode;
     194             :     bool guiGreatSpnMode;
     195             :     std::string unfold;
     196             :     std::string outputModel;
     197             :     bool isTTY;
     198             :     int terminalWidth;
     199             :     int graceFullEnding;
     200             : 
     201             :     std::string gcccmd;
     202             :     std::string boostpath;
     203             :     std::string gccflags;
     204             :     std::string boostlib;
     205             :     bool lightSimulator;
     206             : 
     207             :     //void parseCommandLine2(int argc, char** argv);
     208             :     std::string prismPath;
     209             :     std::string dataoutput;
     210             :     std::string dataraw;
     211             :     std::string datatrace;
     212             :     double sampleResol;
     213             :     std::string dataPDFCDF;
     214             :     std::string gnuplotDriver;
     215             :     std::map<std::string,int> tracedPlace;
     216             :     std::string dotfile;
     217             :     std::string magic_values;
     218             :     bool use_magic_print;
     219             :     bool is_domain_impl_set;
     220             : 
     221             :     std::vector<HaslFormulasTop*> HaslFormulas;
     222             :     std::vector<std::string> HaslFormulasname;
     223             :     size_t nbAlgebraic;
     224             :     size_t nbQualitatif;
     225             :     size_t nbPlace;
     226             : 
     227             :     parameters();
     228             :     void View();
     229             :     void usage();
     230             :     void parseCommandLine(int argc, char** argv);
     231             :     Poption parsersingleOpt(int i) const;
     232             : 
     233             : public:
     234             :     template<class Archive>
     235          63 :     void serialize(Archive & ar){
     236          63 :         ar & verbose & interactive & seed & randomGen & Njob;
     237          63 :         ar & epsilon & continuousStep & Level & Width & Batch & MaxRuns & sequential & relative & chernoff;
     238             : 
     239          63 :         ar & comp_uuid & tmpPath & (int&)tmpStatus & reuse & graceFullEnding ;
     240          63 :         ar & (int&)modelType & (int&)lhaType;
     241             : 
     242          63 :         ar & Path & PathGspn & PathLha & constants;
     243             : 
     244          63 :         ar & (int&)generateLHA & loopLHA & loopTransientLHA & CSLformula & externalHASL;
     245          63 :         ar & localTesting & RareEvent & DoubleIS & BoundedRE & horizon & BoundedContinuous;
     246          63 :         ar & CountTrans & StringInSpnLHA & GMLinput & computeStateSpace & lumpStateSpace;
     247             : 
     248          63 :         ar & prismPath & dataoutput & dataraw & datatrace & sampleResol & dataPDFCDF & gnuplotDriver;
     249          63 :         ar & tracedPlace & dotfile & magic_values & use_magic_print & is_domain_impl_set;
     250             : 
     251          63 :     }
     252             : 
     253             : };
     254             : 
     255             : /**
     256             :  * Retrive the real absolute path of the executable of Cosmos
     257             :  * This is usefull for finding the library containing all the
     258             :  * code for the simulator.
     259             :  * Thoses functions fill the variable P.Path
     260             :  * This code is system dependant.
     261             :  * @param P is a structure of parameters
     262             :  */
     263             : void findBinaryPath(parameters& P);
     264             : 
     265             : extern parameters P;
     266             : 
     267             : #endif

Generated by: LCOV version 1.13