Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

randomltl.hh

Go to the documentation of this file.
00001 // Copyright (C) 2005  Laboratoire d'Informatique de Paris 6 (LIP6),
00002 // département Systèmes Répartis Coopératifs (SRC), Université Pierre
00003 // et Marie Curie.
00004 //
00005 // This file is part of Spot, a model checking library.
00006 //
00007 // Spot is free software; you can redistribute it and/or modify it
00008 // under the terms of the GNU General Public License as published by
00009 // the Free Software Foundation; either version 2 of the License, or
00010 // (at your option) any later version.
00011 //
00012 // Spot is distributed in the hope that it will be useful, but WITHOUT
00013 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
00014 // or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
00015 // License for more details.
00016 //
00017 // You should have received a copy of the GNU General Public License
00018 // along with Spot; see the file COPYING.  If not, write to the Free
00019 // Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
00020 // 02111-1307, USA.
00021 
00022 #ifndef SPOT_LTLVISIT_RANDOMLTL_HH
00023 # define SPOT_LTLVISIT_RANDOMLTL_HH
00024 
00025 #include "apcollect.hh"
00026 #include <iosfwd>
00027 
00028 namespace spot
00029 {
00030   namespace ltl
00031   {
00032 
00045     class random_ltl
00046     {
00047     public:
00049       random_ltl(const atomic_prop_set* ap);
00050       ~random_ltl();
00051 
00062       formula* generate(int n) const;
00063 
00066       std::ostream& dump_priorities(std::ostream& os) const;
00067 
00103       const char* parse_options(char* options);
00104 
00106       const atomic_prop_set*
00107       ap() const
00108       {
00109         return ap_;
00110       }
00111 
00112     protected:
00113       void update_sums();
00114 
00115     private:
00116       struct op_proba
00117       {
00118         const char* name;
00119         int min_n;
00120         double proba;
00121         typedef formula* (*builder)(const random_ltl* rl, int n);
00122         builder build;
00123         void setup(const char* name, int min_n, builder build);
00124       };
00125       op_proba* proba_;
00126       double total_1_;
00127       op_proba* proba_2_;
00128       double total_2_;
00129       double total_2_and_more_;
00130       const atomic_prop_set* ap_;
00131     };
00132   }
00133 }
00134 
00135 
00136 #endif // SPOT_LTLVIST_RANDOMLTL_HH

Please comment this page and report errors about it on the RefDocComments page.
Generated on Mon Jan 31 12:54:24 2005 for spot by doxygen 1.4.0