faudes Namespace Reference

libFAUDES resides within the namespace faudes. More...

Classes

class  TaGenerator
 Generator with specified attribute types. More...
class  AttributeVoid
 Minimal Attribute. More...
class  AttributeFlags
 Boolean flags Attribute. More...
class  TAttrMap
 Attribute interface for TBaseSet. More...
class  TBaseSet
 STL style set template. More...
class  vBaseVector
 Vector bass class. More...
class  TBaseVector
 Vector template. More...
struct  Pnode
class  Bisimulation
class  AttributeCFlags
 Attribute class to model event controllability properties. More...
class  TcGenerator
 Compatibility: pre 2.20b used cEventSet as C++ class name. More...
class  Integer
 Elementary type. More...
class  String
 Elementary type. More...
class  Boolean
 Elementary type. More...
class  Exception
 Faudes exception class. More...
class  Parameter
 Structure to model a parameter type within the Signature of a Function. More...
class  Signature
 Signature of a Function. More...
class  FunctionDefinition
 A FunctionDefinition defines the interface to a faudes-function. More...
class  Function
 A faudes-function hosts parameter values of some faudes type and provides a method to perform an operation on the specified paramters, e.g. More...
class  vGenerator
 Base class of all FAUDES generators. More...
class  SccFilter
 Filter for strictly connected components (SCC) search/compute routines. More...
class  ConsoleOut
 Console Out. More...
class  ObjectCount
 Debugging counter. More...
class  IndexSet
 Set of indices. More...
class  TaIndexSet
 Set of indices with attributes. More...
class  NameSet
 Set of indices with symbolic names. More...
class  TaNameSet
 Set of indices with symbolic names and attributes. More...
class  OPState
class  ProductCompositionMap
 Rti-wrapper for composition maps. More...
struct  TGraph
 A graph is modelled as a map from vertex-labels to nodes. More...
struct  TNode
 A node represents the edges related to one individual vertex. More...
struct  node_entry_t
 A node-entry represents one edge. More...
struct  graph_iterator_t
 An iterators over the map of all nodes is interpreted as a state incl. More...
struct  node_iterator_t
 An iterator over the set of edges related to one vertex is interpreted as a transition. More...
struct  TGraph< Idx, Idx >
 Specialisation of the graph template to provide convenience methods addressing the intended ussage. More...
class  TypeRegistry
 The TypeRegistry registers faudes-types. More...
class  AutoRegisterType
 Auto register faudes-type with specified type name. More...
class  AutoRegisterXElementTag
class  FunctionRegistry
 The FunctionRegistry registers faudes-functions. More...
class  Hopcroft
class  SymbolSet
 Set of symbols. More...
class  SymbolTable
 A SymbolTable associates sybolic names with indices. More...
class  Token
 Tokens model atomic data for stream IO. More...
class  TokenReader
 A TokenReader reads sequential tokens from a file or string. More...
class  TokenWriter
 A TokenWriter writes sequential tokens to a file, a string or stdout. More...
class  Transition
 Triple (X1,Ev,X2) to represent current state, event and next state. More...
class  TransSort
 Alternative ordering of Transitions. More...
class  TTransSet
 Set of Transitions. More...
class  TaTransSet
 Set of Transitions with attributes. More...
class  Type
 Base class of all libFAUDES objects that participate in the run-time interface. More...
class  Documentation
 faudes type implementation macros, overall More...
class  TypeDefinition
 A TypeDefinition defines a faudes-type in that it specifies a faudes-type name to identify the type and a method NewObject() to instantiate objects of the respective type. More...
class  AttributeTimedTrans
 Transition Attribute with guard and resets. More...
class  AttributeTimedState
 State attribute with invariant. More...
class  AttributeTimedGlobal
 Globat attribute with clockset. More...
class  TtGenerator
 Generator with timing extensions. More...
class  ClockSet
 Container class to model a set of clocks. More...
class  ElemConstraint
 Model of an elementary clock constraint formula. More...
class  TimeConstraint
 A TimeConstraint is a set of elementary clock constraints. More...
class  Time
 Type to represent time. More...
class  TimeInterval
 Model of a time interval. More...
class  mbDevice
 Processimage synchronisation via Modbus/TCP. More...
class  AttributeSignalOutput
 Configuration of a signal based output mapping. More...
class  AttributeSignalInput
 Configuration of a signal based input mapping. More...
class  AttributeSignalEvent
 Configuration of a signal based input or output. More...
class  sDevice
 An sDevice implements signal based semantics for faudes events. More...
class  SimplenetAddress
 Simplenet node address. More...
class  AttributeSimplenetOutput
 Configuration of a network output mapping. More...
class  AttributeSimplenetInput
 Configuration of a network input mapping. More...
class  AttributeSimplenetEvent
 Configuration of a networked input or output. More...
class  nDevice
 An nDevice implements networked IO via a simple TCP/IP protocol. More...
class  AttributeDeviceEvent
 Attribute for the configuration of a input or output mapping. More...
class  vDevice
 Virtual base class to define the interface for event io. More...
class  xDevice
 Container of devices. More...
class  DiscreteDensityFunction
 Density Function. More...
class  SampledDensityFunction
class  DeviceExecutor
 Executer with IO device to handle external/physical events. More...
class  TimedEvent
 Global Tyoedefs. More...
class  Executor
 An Executor is a timed generator that maintains a current state. More...
class  LoggingExecutor
 Executor with logging facilities. More...
class  ParallelExecutor
 Synchronized parallel execution of TimedGenerators. More...
class  ProposingExecutor
 Executer that proposes which transition to execute. More...
class  SimEventCondition
 Defining data of event based simulation condition. More...
class  SimStateCondition
 Defining data of state based simulation condition. More...
class  AttributeSimCondition
 Attribute for a simulation condition. More...
class  SimConditionSet
 Set of simulation named conditions. More...
class  SimPriorityEventAttribute
 Defining data to prioritise events. More...
class  SimStochasticEventAttribute
 Defining data of stochastic behaviour. More...
class  SimEventAttribute
 Attribute for an event in the context of simulation. More...

Typedefs

typedef unsigned long int fType
 Convenience typdef flag data.
typedef TaNameSet
< AttributeCFlags
Alphabet
 Convenience typedef for event sets with controllability attributes.
typedef TBaseVector< AlphabetAlphaberVector
 Convenience typedef.
typedef TcGenerator
< AttributeVoid, AttributeVoid,
AttributeCFlags, AttributeVoid
System
 Convenience typedef for std System.
typedef TBaseVector< SystemSystemVector
 Convenience typedef for vectors of systems.
typedef uint32_t Idx
 Type definition for index type (allways 32bit)
typedef long int Int
 Type definition for integer type (let target system decide, minimum 32bit)
typedef double Float
 Type definition for real type.
typedef TBaseVector< IntegerIntegerVector
typedef vGenerator Generator
 Plain generator, api typedef for generator with no attributes.
typedef TBaseVector< GeneratorGeneratorVector
 Convenience typedef for vectors og generators.
typedef IndexSet StateSet
typedef TBaseVector< IndexSetIndexSetVector
 Convenience typedef for vectors og generators.
typedef NameSet EventSet
 Convenience typedef for plain event sets.
typedef TBaseVector< EventSetEventSetVector
typedef TNode< Idx, IdxNode
typedef TGraph< Idx, IdxGraph
typedef TTransSet
< TransSort::X1EvX2
TransSet
 Type definition for default sorted TTransSet.
typedef TTransSet
< TransSort::X1EvX2
TransSetX1EvX2
 Type definition for default sorted TTransSet.
typedef TTransSet
< TransSort::EvX1X2
TransSetEvX1X2
 Type definition for ev, x1, x2 sorted TTransSet.
typedef TTransSet
< TransSort::EvX2X1
TransSetEvX2X1
 Type definition for ev, x2, x1 sorted TTransSet.
typedef TTransSet
< TransSort::X2EvX1
TransSetX2EvX1
 Type definition for x2, ev, x1 sorted TTransSet.
typedef TTransSet
< TransSort::X2X1Ev
TransSetX2X1Ev
 Type definition for x2, x1, ev sorted TTransSet.
typedef TTransSet
< TransSort::X1X2Ev
TransSetX1X2Ev
 Type definition for x1, x2, ev sorted TTransSet.
typedef TtGenerator
< AttributeTimedGlobal,
AttributeTimedState,
AttributeCFlags,
AttributeTimedTrans
TimedGenerator
 Convenience typedef for std TimedGenerator.
typedef TaNameSet
< SimEventAttribute
sEventSet
 Typedef for events with simulation attributes.

Functions

template<class T , class Cmp >
void SetUnion (const TBaseSet< T, Cmp > &rSetA, const TBaseSet< T, Cmp > &rSetB, TBaseSet< T, Cmp > &rRes)
template<class T , class Cmp >
void SetIntersection (const TBaseSet< T, Cmp > &rSetA, const TBaseSet< T, Cmp > &rSetB, TBaseSet< T, Cmp > &rRes)
template<class T , class Cmp >
void SetDifference (const TBaseSet< T, Cmp > &rSetA, const TBaseSet< T, Cmp > &rSetB, TBaseSet< T, Cmp > &rRes)
template<class T , class Cmp >
bool SetEquality (const TBaseSet< T, Cmp > &rSetA, const TBaseSet< T, Cmp > &rSetB)
template<class T , class Cmp >
bool SetInclusion (const TBaseSet< T, Cmp > &rSetA, const TBaseSet< T, Cmp > &rSetB)
void calcBisimulation (const Generator &rGenOrig, map< Idx, Idx > &rMapStateToPartition)
void calcBisimulation (const Generator &rGenOrig, map< Idx, Idx > &rMapStateToPartition, Generator &rGenPart)
void calcBisimulation (const Generator &rGenOrig, std::list< StateSet > &rClasses)
 Computation of the coarsest bisimulation relation for a specified generator.
FAUDES_API void calcBisimulation (const Generator &rGenOrig, std::map< Idx, Idx > &rMapStateToPartition)
 Computation of the coarsest bisimulation relation for a specified generator.
FAUDES_API void calcBisimulation (const Generator &rGenOrig, std::map< Idx, Idx > &rMapStateToPartition, Generator &rGenPart)
 Computation of the coarsest bisimulation relation for a specified generator.
void MergeEquivalenceClasses (Generator &rGen, TransSetX2EvX1 &rRevTrans, const std::list< StateSet > &rClasses)
void ExtendedTransRel (const Generator &rGen, const EventSet &rSilentAlphabet, TransSet &rXTrans)
void ObservationEquivalentQuotient (Generator &g, const EventSet &silent)
bool IsIncomingEquivalent (const TransSetX2EvX1 &rRevXTrans, const EventSet &rSilent, const StateSet &rInitialStates, Idx q1, Idx q2)
void IncomingEquivalentCandidates (const TransSet &rXTrans, const TransSetX2EvX1 &rRevXTrans, const EventSet &rSilent, const StateSet &rInitialStates, Idx q1, StateSet &rRes)
void ActiveEventsRule (Generator &g, const EventSet &silent)
void SilentContinuationRule (Generator &g, const EventSet &silent)
void MergeSilentSccs (Generator &g, const EventSet &silent)
void RemoveNonCoaccessibleOut (Generator &g)
void BlockingSilentEvent (Generator &g, const EventSet &silent)
void MergeNonCoaccessible (Generator &g)
void BlockingEvent (Generator &g, const EventSet &silent)
void OnlySilentIncoming (Generator &g, const EventSet &silent)
void OnlySilentOutgoing (Generator &g, const EventSet &silent)
void ConflictEquivalentAbstraction (vGenerator &rGen, const EventSet &rSilentEvents)
 Conflict equivalent abstraction.
bool IsNonblocking (const GeneratorVector &rGenVec)
 Test for conflicts.
void UniqueInit (Generator &rGen)
 Make initial states unique.
void UniqueInit (const Generator &rGen, Generator &rResGen)
 Make initial states unique.
void Deterministic (const Generator &rGen, Generator &rResGen)
 Make generator deterministic.
void aDeterministic (const Generator &rGen, Generator &rResGen)
 Make generator deterministic.
void Deterministic (const Generator &rGen, std::map< Idx, StateSet > &rEntryStatesMap, Generator &rResGen)
 Make generator deterministic.
void Deterministic (const Generator &rGen, std::vector< StateSet > &rPowerStates, std::vector< Idx > &rDetStates, Generator &rResGen)
 Make generator deterministic.
long int IntegerSum (const Integer &arg1, const Integer &arg2)
long int IntegerSum (const IntegerVector &intvect)
bool IsAccessible (const vGenerator &rGen)
 RTI wrapper function.
bool IsCoaccessible (const vGenerator &rGen)
 RTI wrapper function.
bool IsTrim (const vGenerator &rGen)
 RTI wrapper function.
bool IsOmegaTrim (const vGenerator &rGen)
 RTI wrapper function.
bool IsComplete (const vGenerator &rGen)
 RTI wrapper function.
bool IsComplete (const vGenerator &rGen, const StateSet &rStateSet)
bool IsComplete (const vGenerator &rGen, const EventSet &rSigmaO)
 RTI wrapper function.
bool IsDeterministic (const vGenerator &rGen)
 RTI wrapper function.
void Accessible (vGenerator &rGen)
 RTI wrapper function.
void Accessible (const vGenerator &rGen, vGenerator &rRes)
 RTI wrapper function.
void Coaccessible (vGenerator &rGen)
 RTI wrapper function.
void Coaccessible (const vGenerator &rGen, vGenerator &rRes)
 RTI wrapper function.
void Complete (vGenerator &rGen)
 RTI wrapper function.
void Complete (const vGenerator &rGen, vGenerator &rRes)
 RTI wrapper function.
void Complete (vGenerator &rGen, const EventSet &rSigmaO)
 RTI wrapper function.
void Complete (const vGenerator &rGen, const EventSet &rSigmaO, vGenerator &rRes)
 RTI wrapper function.
void Trim (vGenerator &rGen)
 RTI wrapper function.
void Trim (const vGenerator &rGen, vGenerator &rRes)
 RTI wrapper function.
void OmegaTrim (vGenerator &rGen)
 RTI wrapper function.
void OmegaTrim (const vGenerator &rGen, vGenerator &rRes)
 RTI wrapper function.
void MarkAllStates (vGenerator &rGen)
 RTI wrapper function.
void AlphabetExtract (const vGenerator &rGen, EventSet &rRes)
 RTI wrapper function.
void SetIntersection (const GeneratorVector &rGenVec, EventSet &rRes)
 RTI convenience function.
void SetUnion (const GeneratorVector &rGenVec, EventSet &rRes)
 RTI convenience function.
void SetIntersection (const vGenerator &rGenA, const vGenerator &rGenB, EventSet &rRes)
 RTI convenience function.
void SetUnion (const vGenerator &rGenA, const vGenerator &rGenB, EventSet &rRes)
 RTI convenience function.
void SetDifference (const vGenerator &rGenA, const vGenerator &rGenB, EventSet &rRes)
 RTI convenience function.
void SearchScc (const Idx vState, int &vRcount, const Generator &rGen, const SccFilter &rFilter, StateSet &rTodo, std::stack< Idx > &rStack, StateSet &rStackStates, std::map< const Idx, int > &rDfn, std::map< const Idx, int > &rLowLnk, std::list< StateSet > &rSccList, StateSet &rRoots)
 Search for strongly connected components (SCC).
bool ComputeScc (const Generator &rGen, const SccFilter &rFilter, std::list< StateSet > &rSccList, StateSet &rRoots)
 Compute strongly connected components (SCC)
bool ComputeScc (const Generator &rGen, std::list< StateSet > &rSccList, StateSet &rRoots)
 Compute strongly connected components (SCC)
bool ComputeScc (const Generator &rGen, const SccFilter &rFilter, Idx q0, StateSet &rScc)
 Compute strongly connected component (SCC)
bool ComputeScc (const Generator &rGen, const SccFilter &rFilter, StateSet &rScc)
 Compute one strongly connected components (SCC)
bool HasScc (const Generator &rGen, const SccFilter &rFilter)
 Test for strongly connected components (SCC)
bool ComputeNextScc (const Generator &rGen, SccFilter &rFilter, StateSet &rScc)
 Compute next SCC.
std::string ToStringInteger (Int number)
 integer to string
std::string ToStringInteger16 (Int number)
 integer to string base 16
std::string ToStringFloat (Float number)
 float to string
std::string ExpandString (const std::string &rString, unsigned int len)
 Fill string with spaces up to a given length if length of the string is smaller than given length parameter.
std::string CollapsString (const std::string &rString, unsigned int len=FD_MAXCONTAINERNAME)
 Limit length of string, return head and tail of string.
Idx ToIdx (const std::string &rString)
 Convert a string to Idx.
std::string StringSubstitute (const std::string &rString, const std::string &rFrom, const std::string &rTo)
 Substitute in string.
std::string VersionString ()
 Return FAUDES_VERSION as std::string.
std::string PluginsString ()
 Return FAUDES_PLUGINS as std::string.
std::string ContributorsString ()
 Return contributors as std::string.
void ProcessDot (const std::string &rDotFile, const std::string &rOutFile, const std::string &rOutFormat="", const std::string &rDotExec="dot")
 Convenience function: process dot file to graphics output.
std::string CreateTempFile (void)
 Create a temp file, length 0.
bool RemoveFile (const std::string &rFileName)
 Delete a file.
std::string ExtractDirectory (const std::string &rFullPath)
 Extract directory from full path.
std::string ExtractFilename (const std::string &rFullName)
 Extract file name from full path.
std::string ExtractBasename (const std::string &rFullName)
 Extract file name from full path.
std::string ExtractExtension (const std::string &rFullName)
 Extract file name from full path.
std::string PrependDirectory (const std::string &rDirectory, const std::string &rFileName)
 Construct full path from directory and filename.
bool DirectoryExists (const std::string &rDirectory)
 Test existence of directory.
std::set< std::string > ReadDirectory (const std::string &rDirectory)
 Read the contents of the specified directors.
bool FileExists (const std::string &rFilename)
 Test existence of file.
bool FileDelete (const std::string &rFilename)
 Delete file.
bool FileCopy (const std::string &rFromFile, const std::string &rToFile)
 Copy file.
void ExitFunction (void)
std::string TestProtocol (const std::string &rSource)
 Test Protocol.
void TestProtocol (const std::string &rMessage, const Type &rData, bool core=false)
 Test Protocol.
void TestProtocol (const std::string &rMessage, bool data)
 Test Protocol.
void TestProtocol (const std::string &rMessage, long int data)
 Test Protocol.
void TestProtocol (const std::string &rMessage, const std::string &data)
 Test Protocol.
bool TestProtocol (void)
 Test Protocol.
void LoopCallback (bool pBreak(void))
void LoopCallback (void)
 Algorithm loop callback.
FAUDES_API const std::string & PathSeparator (void)
 Std dir-separator.
FAUDES_API void LoopCallback (bool(*pBreakFnct)(void))
 Algorithm loop callback.
StateSet LowExitStates (const Generator &rLowGen, const EventSet &rHighAlph, const std::map< Idx, StateSet > &rEntryStatesMap, const TransSetX2EvX1 &rLowRevTransRel, Idx highState)
 LowExitStates return-copy function:
void LowExitStates (const EventSet &rHighAlph, const std::map< Idx, StateSet > &rEntryStatesMap, const TransSetX2EvX1 &rLowRevTransRel, Idx highState, StateSet &rLowExitStates)
 LowExitStates call-by-reference function:
EventSet ReachableEvents (const Generator &rLowGen, const EventSet &rHighAlph, Idx lowState)
 ReachableEvents return-copy function:
void ReachableEvents (const Generator &rLowGen, const EventSet &rHighAlph, Idx lowState, EventSet &rReachableEvents)
 ReachableEvents call-by-reference function:
void LocalCoaccessibleReach (const TransSetX2EvX1 &rRevTransRel, const EventSet &rHighAlph, Idx lowState, StateSet &rCoaccessibleReach)
 Compute the coaccessible reach for a local automaton.
void LocalAccessibleReach (const Generator &rLowGen, const EventSet &rHighAlph, Idx lowState, StateSet &rAccessibleReach)
 Compute the accessible reach for a local automaton.
void aOmegaProduct (const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
 Product composition for Buechi automata.
void OmegaProduct (const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
 Product composition for Buechi automata.
void aOmegaParallel (const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
 Parallel composition with relaxed acceptance condition.
void OmegaParallel (const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
 Parallel composition with relaxed acceptance condition.
void OmegaClosure (Generator &rGen)
 Topological closure.
bool IsOmegaClosed (const Generator &rGen)
 Test for topologically closed omega language.
void Parallel (const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
 Parallel composition.
void aParallel (const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
 Parallel composition.
void aParallel (const GeneratorVector &rGenVec, Generator &rResGen)
 Parallel composition.
void aParallel (const Generator &rGen1, const Generator &rGen2, ProductCompositionMap &rCompositionMap, Generator &rResGen)
 Parallel composition.
void Parallel (const Generator &rGen1, const Generator &rGen2, ProductCompositionMap &rCompositionMap, Generator &rResGen)
 Parallel composition.
void Parallel (const Generator &rGen1, const Generator &rGen2, ProductCompositionMap &rCompositionMap, StateSet &rMark1, StateSet &rMark2, Generator &rResGen)
 Parallel composition.
void Parallel (const Generator &rGen1, const Generator &rGen2, std::map< std::pair< Idx, Idx >, Idx > &rCompositionMap, Generator &rResGen)
 Parallel composition.
void Product (const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
 Product composition.
void aProduct (const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
 Product composition.
void aProduct (const Generator &rGen1, const Generator &rGen2, ProductCompositionMap &rCompositionMap, Generator &rResGen)
 Product composition.
void Product (const Generator &rGen1, const Generator &rGen2, std::map< std::pair< Idx, Idx >, Idx > &rCompositionMap, StateSet &rMark1, StateSet &rMark2, Generator &rResGen)
 Product composition.
void Product (const Generator &rGen1, const Generator &rGen2, std::map< std::pair< Idx, Idx >, Idx > &rCompositionMap, Generator &rResGen)
 Product composition.
void SetComposedStateNames (const Generator &rGen1, const Generator &rGen2, const std::map< std::pair< Idx, Idx >, Idx > &rCompositionMap, Generator &rGen12)
 Helper: uses composition map to track state names in a paralell composition.
void CompositionMap1 (const std::map< std::pair< Idx, Idx >, Idx > &rCompositionMap, std::map< Idx, Idx > &rCompositionMap1)
void CompositionMap2 (const std::map< std::pair< Idx, Idx >, Idx > &rCompositionMap, std::map< Idx, Idx > &rCompositionMap2)
void ProjectNonDet_opitz (Generator &rGen, const EventSet &rProjectAlphabet)
void ProjectNonDet_ref (Generator &rGen, const EventSet &rProjectAlphabet)
void ProjectNonDet_graph (Generator &rGen, const EventSet &rProjectAlphabet)
void ProjectNonDet_simple (Generator &rGen, const EventSet &rProjectAlphabet)
void ProjectNonDet_barthel (Generator &rGen, const EventSet &rProjectAlphabet)
void ProjectNonDet_fbr (Generator &rGen, const EventSet &rProjectAlphabet)
void ProjectNonDet_scc (Generator &rGen, const EventSet &rProjectAlphabet)
void ProjectNonDet (Generator &rGen, const EventSet &rProjectAlphabet)
 Language projection.
void ProjectNonDetScc (Generator &rGen, const EventSet &rProjectAlphabet)
 Language projection.
void Project (const Generator &rGen, const EventSet &rProjectAlphabet, Generator &rResGen)
 Deterministic projection.
void aProjectNonDet (Generator &rGen, const EventSet &rProjectAlphabet)
 Language projection.
void aProject (const Generator &rGen, const EventSet &rProjectAlphabet, Generator &rResGen)
 Deterministic projection.
void Project (const Generator &rGen, const EventSet &rProjectAlphabet, std::map< Idx, StateSet > &rEntryStatesMap, Generator &rResGen)
 Deterministic projection.
void InvProject (Generator &rGen, const EventSet &rProjectAlphabet)
 Inverse projection.
void aInvProject (Generator &rGen, const EventSet &rProjectAlphabet)
 Inverse projection.
void aInvProject (const Generator &rGen, const EventSet &rProjectAlphabet, Generator &rResGen)
 Inverse projection.
void CreateEntryStatesMap (const std::map< StateSet, Idx > &rRevEntryStatesMap, std::map< Idx, StateSet > &rEntryStatesMap)
void LoadRegistry (const std::string &rPath="")
 Load all registered types and functions.
void SaveRegistry (const std::string &rPath="")
 Dump all registered types and functions.
void ClearRegistry (void)
 Clear all registry.
TypeNewFaudesObject (const std::string &rTypeName)
 Instantiate faudes typed objects by type name.
FunctionNewFaudesFunction (const std::string &rFunctName)
 Instantiate faudes function objects by function name.
const std::string & FaudesTypeName (const Type &rObject)
 Query type name.
bool FaudesTypeTest (const std::string &rTypeName, const Type &rObject)
 Test type compatibility.
const std::string & FaudesFunctionName (const Function &rObject)
FAUDES_API const std::string & FaudesFunctionName (const Type &rObject)
 Query function name.
void LanguageUnionNonDet (const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
 Language union, nondeterministic version.
void LanguageUnion (const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
 Language union, deterministic version.
void LanguageUnion (const GeneratorVector &rGenVec, Generator &rResGen)
 Language union.
void LanguageIntersection (const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
 Language intersection.
void LanguageIntersection (const GeneratorVector &rGenVec, Generator &rResGen)
 Language intersection.
bool EmptyLanguageIntersection (const Generator &rGen1, const Generator &rGen2)
 Test for empty language intersection (same as Disjoind()).
bool LanguageDisjoint (const Generator &rGen1, const Generator &rGen2)
 Test whether two languages are disjoint.
void Automaton (Generator &rGen, const EventSet &rAlphabet)
 Convert generator to automaton wrt specified alphabet.
void Automaton (Generator &rGen)
 Convert generator to automaton.
void LanguageComplement (Generator &rGen, const EventSet &rAlphabet)
 Language complement wrt specified alphabet.
void LanguageComplement (Generator &rGen)
 Language complement.
void LanguageComplement (const Generator &rGen, Generator &rRes)
 Language Complement (uniform API wrapper).
void LanguageComplement (const Generator &rGen, const EventSet &rSigma, Generator &rRes)
 Language Complement (uniform API wrapper).
void LanguageDifference (const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
 Language difference (set-theoretic difference).
void LanguageConcatenateNonDet (const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
 Language concatenation, nondeterministic version.
void LanguageConcatenate (const Generator &rGen1, const Generator &rGen2, Generator &rResGen)
 Language concatenation, deterministic version.
void FullLanguage (const EventSet &rAlphabet, Generator &rResGen)
 Full Language, L(G)=Lm(G)=Sigma*.
void AlphabetLanguage (const EventSet &rAlphabet, Generator &rResGen)
 Alphabet Language, L(G)=Lm(G)=Sigma.
void EmptyStringLanguage (const EventSet &rAlphabet, Generator &rResGen)
 Empty string language, L(G)=Lm(G)={epsilon}.
void EmptyLanguage (const EventSet &rAlphabet, Generator &rResGen)
 Empty language Lm(G)={}.
bool IsEmptyLanguage (const Generator &rGen)
 Test for Empty language Lm(G)=={}.
bool LanguageInclusion (const Generator &rGen1, const Generator &rGen2)
 Test language inclusion, Lm1<=Lm2.
bool LanguageEquality (const Generator &rGen1, const Generator &rGen2)
 Language equality, Lm1==Lm2.
void KleeneClosure (Generator &rGen)
 Kleene Closure.
void KleeneClosure (const Generator &rGen, Generator &rResGen)
 Kleene Closure.
void KleeneClosureNonDet (Generator &rGen)
 Kleene Closure, nondeterministic version.
void PrefixClosure (Generator &rGen)
 Prefix Closure.
bool IsPrefixClosed (const Generator &rGen)
 Test for prefix closed marked language.
bool IsNonblocking (const Generator &rGen)
 Test for nonblocking generator.
bool IsNonblocking (const Generator &rGen1, const Generator &rGen2)
 Test for nonblocking marked languages.
void SelfLoop (Generator &rGen, const EventSet &rAlphabet)
 Self-loop all states.
void SelfLoopMarkedStates (Generator &rGen, const EventSet &rAlphabet)
 Self-loop all marked states.
void SelfLoop (Generator &rGen, const EventSet &rAlphabet, const StateSet &rStates)
 Self-loop specified states.
void StateMin_org (const Generator &rGen, Generator &rResGen, std::vector< StateSet > &rSubsets, std::vector< Idx > &rNewIndices)
void StateMin (const Generator &rGen, Generator &rResGen)
 State set minimization.
void StateMin (const Generator &rGen, Generator &rResGen, std::vector< StateSet > &rSubsets, std::vector< Idx > &rNewIndices)
 State set minimization.
void aStateMin (const Generator &rGen, Generator &rResGen)
 State set minimization.
void aStateMin (Generator &rGen)
 State set minimization.
template<class GlobalAttr1 , class StateAttr1 , class EventAttr1 , class TransAttr1 , class GlobalAttr2 , class StateAttr2 , class EventAttr2 , class TransAttr2 , class GlobalAttrR , class StateAttrR , class EventAttrR , class TransAttrR >
void TParallel (const TGEN1 &rGen1, const TGEN2 &rGen2, TGENR &rResGen)
 Parallel composition of timed generators.
template<class GlobalAttr1 , class StateAttr1 , class EventAttr1 , class TransAttr1 , class GlobalAttr2 , class StateAttr2 , class EventAttr2 , class TransAttr2 , class GlobalAttrR , class StateAttrR , class EventAttrR , class TransAttrR >
void TParallel (const TGEN1 &rGen1, const TGEN2 &rGen2, std::map< std::pair< Idx, Idx >, Idx > &rReverseCompositionMap, TGENR &rResGen)
 Parallel composition of timed generators.
void * SDeviceSynchro (void *arg)
int syncSend (int dest, const char *data, int len, int flag)
void * NDeviceListen (void *arg)
void ran_plant_seeds (long x)
 Use this function to set the state of all the random number generator streams by "planting" a sequence of states (seeds), one per stream, with all states dictated by the state of the default stream.
void ran_put_seed (long seed)
 Put a seed.
void ran_select_stream (int index)
 Use this function to set the current random number generator stream – that stream from which the next random number will come.
void ran_init (long seed)
 Initialize random generator.
double ran (void)
 Run random generator Random Number Generator (for more details see "Random Number Generators: Good Ones Are Hard To Find" Steve Park and Keith Miller Communications of the ACM, October 1988)
double ran_uniform (double a, double b)
 Sample a random variable uniformly on interval [a;b) Distribution: f(t) dt= {1/(b-a)} dt for t, a <=t< b, else 0.
long ran_uniform_int (long a, long b)
 Sample a discrete random variable uniformly on interval [a;b) Distribution: p(n) = 1/(b-a-1)
double ran_exponential (double mu)
 Sample a random variable exponentially Distribution: f(t) dt = 1/mu exp(-t/mu) dt for t>=0.
double ran_exponential (double mu, Time::Type tossLB, Time::Type tossUB)
 Sample a random variable exponentially on a restricted interval Distribution: f(t) dt = 1/mu exp(-t/mu) dt for t>=0.
double ran_gauss (double mu, double sigma, Time::Type tossLB, Time::Type tossUB)
 Sample a random variable gaussian distributed on a restricted interval Distribution: f(t) = 1 / sqrt(2 pi sigma^2) * exp( -1/2 ((t-mu)/sigma)^2) for t>=0.
double ran_gaussian_cdf_P (double x)
 Help function: calculate gaussian CDF using an approximation from Abromowitz and Stegun: Handbook of Mathematical Functions.

Variables

TokenWritergTestProtocolTw = NULL
std::string gTestProtocolFr
static bool(* gBreakFnct )(void)=0
AutoRegisterType< mbDevicegRtiRegisterSpiDevice ("ModbusDevice")
AutoRegisterType< TaNameSet
< AttributeSignalEvent > > 
gRti1RegisterSignalDeviceEventSet ("SignalDeviceEventSet")
AutoRegisterXElementTag
< TaNameSet
< AttributeSignalEvent > > 
gRti1XElementTagSignalDeviceEventSet ("SignalDeviceEventSet","Event")
AutoRegisterType< nDevicegRtiRegisterSimplenetDevice ("SimplenetDevice")
static volatile
AutoRegisterType< xDevice
gRtiRegisterDeviceContainer ("DeviceContainer")
static long ran_seed [STREAMS] = {DEFAULT}
static int ran_stream = 0
static int ran_initialized = 0

Detailed Description

libFAUDES resides within the namespace faudes.

sp_densityfnct.h Discrete density function approximation

Plug-Ins may use the same namespace.

Typedef Documentation

Convenience typedef.

Definition at line 243 of file cfl_cgenerator.h.

typedef double faudes::Float

Type definition for real type.

Definition at line 52 of file cfl_definitions.h.

typedef unsigned long int faudes::fType

Convenience typdef flag data.

Definition at line 182 of file cfl_attributes.h.

Definition at line 486 of file cfl_project.cpp.

typedef uint32_t faudes::Idx

Type definition for index type (allways 32bit)

Definition at line 43 of file cfl_definitions.h.

typedef long int faudes::Int

Type definition for integer type (let target system decide, minimum 32bit)

Definition at line 47 of file cfl_definitions.h.

Definition at line 218 of file cfl_elementary.h.

Definition at line 485 of file cfl_project.cpp.

Convenience typedef for std TimedGenerator.

Definition at line 776 of file tp_tgenerator.h.

Function Documentation

void faudes::ActiveEventsRule ( Generator &  g,
const EventSet &  silent 
)

Definition at line 313 of file cfl_conflequiv.cpp.

FAUDES_API void faudes::aParallel ( const GeneratorVector &  rGenVec,
Generator &  rResGen 
)

Parallel composition.

See also aParallel(const Generator&, const Generator&, Generator&). This version takes a vector of generators as argument to perform a synchronous composition of multiple generators. The implementation calls the std aParallel multiple times, future implementations may explore the overall reachable state set.

Parameters
rGenVecVector of input generators
rResGenReference to resulting composition generator

Definition at line 87 of file cfl_parallel.cpp.

void faudes::BlockingEvent ( Generator &  g,
const EventSet &  silent 
)

Definition at line 647 of file cfl_conflequiv.cpp.

void faudes::BlockingSilentEvent ( Generator &  g,
const EventSet &  silent 
)

Definition at line 592 of file cfl_conflequiv.cpp.

void faudes::calcBisimulation ( const Generator &  rGenOrig,
map< Idx, Idx > &  rMapStateToPartition 
)

Definition at line 1272 of file cfl_bisimulation.cpp.

void faudes::calcBisimulation ( const Generator &  rGenOrig,
map< Idx, Idx > &  rMapStateToPartition,
Generator &  rGenPart 
)

Definition at line 1289 of file cfl_bisimulation.cpp.

FAUDES_API std::string faudes::CollapsString ( const std::string &  rString,
unsigned int  len = FD_MAXCONTAINERNAME 
)

Limit length of string, return head and tail of string.

Parameters
rStringstring
lenMaximum number of charakters in string (approx)
Returns
Collapsed string

Definition at line 91 of file cfl_helper.cpp.

void faudes::CompositionMap1 ( const std::map< std::pair< Idx, Idx >, Idx > &  rCompositionMap,
std::map< Idx, Idx > &  rCompositionMap1 
)

Definition at line 681 of file cfl_parallel.cpp.

void faudes::CompositionMap2 ( const std::map< std::pair< Idx, Idx >, Idx > &  rCompositionMap,
std::map< Idx, Idx > &  rCompositionMap2 
)

Definition at line 693 of file cfl_parallel.cpp.

FAUDES_API std::string faudes::ContributorsString ( )

Return contributors as std::string.

Returns
std::string

Definition at line 141 of file cfl_helper.cpp.

void faudes::CreateEntryStatesMap ( const std::map< StateSet, Idx > &  rRevEntryStatesMap,
std::map< Idx, StateSet > &  rEntryStatesMap 
)

Definition at line 1525 of file cfl_project.cpp.

FAUDES_API std::string faudes::CreateTempFile ( void  )

Create a temp file, length 0.

Returns
Name of temp file

Definition at line 205 of file cfl_helper.cpp.

FAUDES_API void faudes::Deterministic ( const Generator &  rGen,
std::map< Idx, StateSet > &  rEntryStatesMap,
Generator &  rResGen 
)

Make generator deterministic.

Constructs a deterministic generator while preserving the generated and marked languages. See Deterministic(const Generator&,Generator& rResGen) for the intended api. This version provides as a second parameter the resulting map from new states to their respective original state set. It is used as a so called "entry state map" for deterministic projected generators.

Parameters
rGenReference to generator
rEntryStatesMapEntry state map
rResGenReference to resulting deterministic generator

Definition at line 96 of file cfl_determin.cpp.

FAUDES_API void faudes::Deterministic ( const Generator &  rGen,
std::vector< StateSet > &  rPowerStates,
std::vector< Idx > &  rDetStates,
Generator &  rResGen 
)

Make generator deterministic.

Constructs a deterministic generator while preserving the generated and marked languages. See Deterministic(const Generator&,Generator& rResGen) for the intended api. This version provides as second and third parameters the correspondence between new states and the original state sets. in vectors

Parameters
rGenReference to generator
rPowerStatesVector that holds the power states
rDetStatesVector that holds the corresponding deterministic states
rResGenReference to resulting deterministic generator

Definition at line 113 of file cfl_determin.cpp.

FAUDES_API bool faudes::DirectoryExists ( const std::string &  rDirectory)

Test existence of directory.

Parameters
rDitectoryName of file to test
Returns
True <> can open directory for reading

Definition at line 320 of file cfl_helper.cpp.

void faudes::ExitFunction ( void  )

Definition at line 463 of file cfl_helper.cpp.

FAUDES_API std::string faudes::ExpandString ( const std::string &  rString,
unsigned int  len 
)

Fill string with spaces up to a given length if length of the string is smaller than given length parameter.

Parameters
rStringstring
lenMinimum number of charakters in string
Returns
Expanded string

Definition at line 80 of file cfl_helper.cpp.

void faudes::ExtendedTransRel ( const Generator &  rGen,
const EventSet &  rSilentAlphabet,
TransSet &  rXTrans 
)

Definition at line 119 of file cfl_conflequiv.cpp.

FAUDES_API std::string faudes::ExtractBasename ( const std::string &  rFullName)

Extract file name from full path.

This version also removes the last suffix.

Parameters
rFullNameFull path of file eg "/home/friend/data/generator.gen"
Returns
Filename "generator"

Definition at line 280 of file cfl_helper.cpp.

FAUDES_API std::string faudes::ExtractDirectory ( const std::string &  rFullPath)

Extract directory from full path.

Parameters
rFullPathFull name of file eg "/home/friend/data/generator.gen"
Returns
Directory eg "/home/friend/data"

Definition at line 262 of file cfl_helper.cpp.

FAUDES_API std::string faudes::ExtractExtension ( const std::string &  rFullName)

Extract file name from full path.

This version also remove the last suffix.

Parameters
rFullNameFull path of file eg "/home/friend/data/generator.gen"
Returns
Extension "gen"

Definition at line 294 of file cfl_helper.cpp.

FAUDES_API std::string faudes::ExtractFilename ( const std::string &  rFullName)

Extract file name from full path.

Parameters
rFullNameFull path of file eg "/home/friend/data/generator.gen"
Returns
Filename "generator.gen"

Definition at line 271 of file cfl_helper.cpp.

const std::string& faudes::FaudesFunctionName ( const Function &  rObject)

Definition at line 704 of file cfl_registry.cpp.

FAUDES_API bool faudes::FileCopy ( const std::string &  rFromFile,
const std::string &  rToFile 
)

Copy file.

Parameters
rFromFileName of source file
rToFileName of dest file
Returns
True <> operation ok

Definition at line 385 of file cfl_helper.cpp.

FAUDES_API bool faudes::FileDelete ( const std::string &  rFilename)

Delete file.

Parameters
rFilenameName of file to delete
Returns
True <> could delete the file

Definition at line 380 of file cfl_helper.cpp.

FAUDES_API bool faudes::FileExists ( const std::string &  rFilename)

Test existence of file.

Parameters
rFilenameName of file to test
Returns
True <> can open file for reading

Definition at line 373 of file cfl_helper.cpp.

void faudes::IncomingEquivalentCandidates ( const TransSet &  rXTrans,
const TransSetX2EvX1 &  rRevXTrans,
const EventSet &  rSilent,
const StateSet &  rInitialStates,
Idx  q1,
StateSet &  rRes 
)

Definition at line 262 of file cfl_conflequiv.cpp.

FAUDES_API long int faudes::IntegerSum ( const Integer &  arg1,
const Integer &  arg2 
)

Definition at line 102 of file cfl_elementary.cpp.

FAUDES_API long int faudes::IntegerSum ( const IntegerVector &  intvect)

Definition at line 107 of file cfl_elementary.cpp.

bool faudes::IsComplete ( const vGenerator &  rGen,
const StateSet &  rStateSet 
)

Definition at line 3881 of file cfl_generator.cpp.

bool faudes::IsIncomingEquivalent ( const TransSetX2EvX1 &  rRevXTrans,
const EventSet &  rSilent,
const StateSet &  rInitialStates,
Idx  q1,
Idx  q2 
)

Definition at line 195 of file cfl_conflequiv.cpp.

FAUDES_API void faudes::LanguageIntersection ( const GeneratorVector &  rGenVec,
Generator &  rResGen 
)

Language intersection.

See also LanguageUnion(const Generator&, const Generator&, Generator&); This version takes a vector of generators as argument to perform the intersection for multiple languages. The implementation calls the std intersection multiple times, future implementations may do better.

Parameters
rGenVecVector of input generators
rResGenReference to resulting generator

Definition at line 205 of file cfl_regular.cpp.

FAUDES_API void faudes::LanguageUnion ( const GeneratorVector &  rGenVec,
Generator &  rResGen 
)

Language union.

See also LanguageUnion(const Generator&, const Generator&, Generator&); This version takes a vector of generators as argument to perform the union for multiple languages. The implementation calls the std union multiple times, future implementations may do better.

Parameters
rGenVecVector of input generators
rResGenReference to resulting generator

Definition at line 155 of file cfl_regular.cpp.

FAUDES_API void faudes::LocalAccessibleReach ( const Generator &  rLowGen,
const EventSet &  rHighAlph,
Idx  lowState,
StateSet &  rAccessibleReach 
)

Compute the accessible reach for a local automaton.

Parameters
rLowGenLow level generator
rHighAlphHigh level alphabet
lowStateLow level entry state
rAccessibleReachResult

Definition at line 161 of file cfl_localgen.cpp.

FAUDES_API void faudes::LocalCoaccessibleReach ( const TransSetX2EvX1 &  rRevTransRel,
const EventSet &  rHighAlph,
Idx  lowState,
StateSet &  rCoaccessibleReach 
)

Compute the coaccessible reach for a local automaton.

Parameters
rRevTransRelReverse sorted transition relation
rHighAlphHigh level alphabet
lowStateLow level exit state
rCoaccessibleReachResult

Definition at line 129 of file cfl_localgen.cpp.

FAUDES_API void faudes::LoopCallback ( bool(*)(void)  pBreakFnct)

Algorithm loop callback.

Set a callback function for libFAUDES algorithms. Applications are meant to use this interface to terminate an algorithm on user request. libFAUDES algorithms are meant to throw an execption when the callback function returns true. See also void LoopCallback(void).

Parameters
pBreakFnct
void faudes::LoopCallback ( bool   pBreakvoid)

Definition at line 620 of file cfl_helper.cpp.

FAUDES_API void faudes::LoopCallback ( void  )

Algorithm loop callback.

Calls the loop callback function and throws an exception if it returns true.

Exceptions
Breakon appliation request (id 110)

Definition at line 627 of file cfl_helper.cpp.

FAUDES_API StateSet faudes::LowExitStates ( const Generator &  rLowGen,
const EventSet &  rHighAlph,
const std::map< Idx, StateSet > &  rEntryStatesMap,
const TransSetX2EvX1 &  rLowRevTransRel,
Idx  highState 
)

LowExitStates return-copy function:

Wrapper for the corresponding call-by-reference function. Creates new StateSet, calls function and returns StateSet containing low level exit states.

Parameters
rLowGenLow level generator (just needed for determining statetable)
rHighAlphHigh level events
rEntryStatesMapEntry states map (see CreateEntryStatesMap(resmap))
rLowRevTransRelReverse sorted low level transition relation
highStateHi level state for which to compute low level exit states
Exceptions
ExceptionHi level state not found in entry states map (with FAUDES_CHECKED) (id 502)

Definition at line 27 of file cfl_localgen.cpp.

FAUDES_API void faudes::LowExitStates ( const EventSet &  rHighAlph,
const std::map< Idx, StateSet > &  rEntryStatesMap,
const TransSetX2EvX1 &  rLowRevTransRel,
Idx  highState,
StateSet &  rLowExitStates 
)

LowExitStates call-by-reference function:

Compute the low level exit states for a corresponding hi level state

Parameters
rHighAlphHigh level events
rEntryStatesMapEntry states map (see CreateEntryStatesMap(resmap))
rLowRevTransRelReverse sorted low level transition relation
highStateHi level state for which to compute low level exit states
rLowExitStatesReference to StateSet for low level exit states (result)
Exceptions
ExceptionHi level state not found in entry states map (with FAUDES_CHECKED)

Definition at line 40 of file cfl_localgen.cpp.

void faudes::MergeEquivalenceClasses ( Generator &  rGen,
TransSetX2EvX1 &  rRevTrans,
const std::list< StateSet > &  rClasses 
)

Definition at line 52 of file cfl_conflequiv.cpp.

void faudes::MergeNonCoaccessible ( Generator &  g)

Definition at line 625 of file cfl_conflequiv.cpp.

void faudes::MergeSilentSccs ( Generator &  g,
const EventSet &  silent 
)

Definition at line 506 of file cfl_conflequiv.cpp.

void * faudes::NDeviceListen ( void *  arg)

Definition at line 677 of file iop_simplenet.cpp.

void faudes::ObservationEquivalentQuotient ( Generator &  g,
const EventSet &  silent 
)

Definition at line 166 of file cfl_conflequiv.cpp.

void faudes::OnlySilentIncoming ( Generator &  g,
const EventSet &  silent 
)

Definition at line 687 of file cfl_conflequiv.cpp.

void faudes::OnlySilentOutgoing ( Generator &  g,
const EventSet &  silent 
)

Definition at line 761 of file cfl_conflequiv.cpp.

FAUDES_API void faudes::Parallel ( const Generator &  rGen1,
const Generator &  rGen2,
ProductCompositionMap &  rCompositionMap,
StateSet &  rMark1,
StateSet &  rMark2,
Generator &  rResGen 
)

Parallel composition.

See Parallel(const Generator&, const Generator&, Generator&). This version fills a composition map to map pairs of old states to new states. It also returns the sets of states marked w.r.t. the argument generators.

Parameters
rGen1First generator
rGen2Second generator
rCompositionMapComposition map (map< pair<Idx,Idx>, Idx>)
rMark2States maked in first generator
rMark1States maked in second generator
rResGenReference to resulting parallel composition generator

Definition at line 170 of file cfl_parallel.cpp.

FAUDES_API void faudes::Parallel ( const Generator &  rGen1,
const Generator &  rGen2,
std::map< std::pair< Idx, Idx >, Idx > &  rCompositionMap,
Generator &  rResGen 
)

Parallel composition.

See Parallel(const Generator&, const Generator&, Generator&). This version fills a composition map to map pairs of old states to new states.

Parameters
rGen1First generator
rGen2Second generator
rCompositionMapComposition map (map< pair<Idx,Idx>, Idx>)
rResGenReference to resulting parallel composition generator

Definition at line 213 of file cfl_parallel.cpp.

FAUDES_API const std::string& faudes::PathSeparator ( void  )

Std dir-separator.

Returns
Separator as one-char string
FAUDES_API std::string faudes::PluginsString ( )

Return FAUDES_PLUGINS as std::string.

Returns
std::string with FAUDES_VERSION

Definition at line 136 of file cfl_helper.cpp.

FAUDES_API std::string faudes::PrependDirectory ( const std::string &  rDirectory,
const std::string &  rFileName 
)

Construct full path from directory and filename.

Parameters
rDirectoryDirectory eg "/home/friend/data"
rFileNameFile eg "generator.gen"
Returns
Path eg "/home/friend/data/generator.gen"

Definition at line 309 of file cfl_helper.cpp.

FAUDES_API void faudes::ProcessDot ( const std::string &  rDotFile,
const std::string &  rOutFile,
const std::string &  rOutFormat = "",
const std::string &  rDotExec = "dot" 
)

Convenience function: process dot file to graphics output.

If no output format is given, try to guess from filename extension.

Parameters
rDotFilename of dot file
rOutFilename of graphics file
rOutFormatgraphics format eg "png", "jpg"
rDotExecpath/name of executable
Exceptions
Exception
  • error in systemcall (id 3)
  • unkown format (id 3)

Definition at line 148 of file cfl_helper.cpp.

FAUDES_API void faudes::Product ( const Generator &  rGen1,
const Generator &  rGen2,
std::map< std::pair< Idx, Idx >, Idx > &  rCompositionMap,
StateSet &  rMark1,
StateSet &  rMark2,
Generator &  rResGen 
)

Product composition.

See Product(const Generator&, const Generator&, Generator&). This version fills given composition map to map pairs of old states to new states. It also returns the sets of states marked w.r.t. the argument generators.

Parameters
rGen1First generator
rGen2Second generator
rCompositionMapComposition map (map< pair<Idx,Idx>, Idx>)
rMark2States maked in first generator
rMark1States maked in second generator
rResGenReference to resulting product composition generator

Definition at line 497 of file cfl_parallel.cpp.

FAUDES_API void faudes::Product ( const Generator &  rGen1,
const Generator &  rGen2,
std::map< std::pair< Idx, Idx >, Idx > &  rCompositionMap,
Generator &  rResGen 
)

Product composition.

See Product(const Generator&, const Generator&, Generator&). This version fills given composition map to map pairs of old states to new states.

Parameters
rGen1First generator
rGen2Second generator
rCompositionMapComposition map (map< pair<Idx,Idx>, Idx>)
rResGenReference to resulting product composition generator

Definition at line 522 of file cfl_parallel.cpp.

FAUDES_API void faudes::Project ( const Generator &  rGen,
const EventSet &  rProjectAlphabet,
std::map< Idx, StateSet > &  rEntryStatesMap,
Generator &  rResGen 
)

Deterministic projection.

Projects the generated and marked languages to a subalphabet of the original alphabet, and subsequently calls Deterministic to construct a deterministic minimal realisation of the result. The input generator does not need to be deterministic.

Parameters
rGenReference to generator
rProjectAlphabetProjection alphabet
rEntryStatesMapReference to entry states map, see Deterministic(..) (result)
rResGenReference to resulting deterministic generator (result)

Definition at line 1426 of file cfl_project.cpp.

void faudes::ProjectNonDet_barthel ( Generator &  rGen,
const EventSet &  rProjectAlphabet 
)

Definition at line 683 of file cfl_project.cpp.

void faudes::ProjectNonDet_fbr ( Generator &  rGen,
const EventSet &  rProjectAlphabet 
)

Definition at line 801 of file cfl_project.cpp.

void faudes::ProjectNonDet_graph ( Generator &  rGen,
const EventSet &  rProjectAlphabet 
)

Definition at line 493 of file cfl_project.cpp.

void faudes::ProjectNonDet_opitz ( Generator &  rGen,
const EventSet &  rProjectAlphabet 
)

Definition at line 46 of file cfl_project.cpp.

void faudes::ProjectNonDet_ref ( Generator &  rGen,
const EventSet &  rProjectAlphabet 
)

Definition at line 128 of file cfl_project.cpp.

void faudes::ProjectNonDet_scc ( Generator &  rGen,
const EventSet &  rProjectAlphabet 
)

Definition at line 1056 of file cfl_project.cpp.

void faudes::ProjectNonDet_simple ( Generator &  rGen,
const EventSet &  rProjectAlphabet 
)

Definition at line 603 of file cfl_project.cpp.

double faudes::ran ( void  )

Run random generator Random Number Generator (for more details see "Random Number Generators: Good Ones Are Hard To Find" Steve Park and Keith Miller Communications of the ACM, October 1988)

Returns
Random value in [0,1) ( excluding 1 (?))

Definition at line 75 of file sp_random.cpp.

double faudes::ran_exponential ( double  mu)

Sample a random variable exponentially Distribution: f(t) dt = 1/mu exp(-t/mu) dt for t>=0.

Parameters
mumu
Returns
Random variabe

Definition at line 107 of file sp_random.cpp.

double faudes::ran_exponential ( double  mu,
Time::Type  tossLB,
Time::Type  tossUB 
)

Sample a random variable exponentially on a restricted interval Distribution: f(t) dt = 1/mu exp(-t/mu) dt for t>=0.

Parameters
mumu
tossLBLower interval bound
tossUBUpper interval bound

Definition at line 116 of file sp_random.cpp.

double faudes::ran_gauss ( double  mu,
double  sigma,
Time::Type  tossLB,
Time::Type  tossUB 
)

Sample a random variable gaussian distributed on a restricted interval Distribution: f(t) = 1 / sqrt(2 pi sigma^2) * exp( -1/2 ((t-mu)/sigma)^2) for t>=0.

Parameters
mumu
sigmasigma
tossLBLower interval bound
tossUBUpper interval bound

Definition at line 132 of file sp_random.cpp.

double faudes::ran_gaussian_cdf_P ( double  x)

Help function: calculate gaussian CDF using an approximation from Abromowitz and Stegun: Handbook of Mathematical Functions.

Parameters
x
Returns
CDF(x)

Definition at line 224 of file sp_random.cpp.

void faudes::ran_init ( long  seed)

Initialize random generator.

Parameters
seedRandom generator seed

Definition at line 67 of file sp_random.cpp.

void faudes::ran_plant_seeds ( long  x)

Use this function to set the state of all the random number generator streams by "planting" a sequence of states (seeds), one per stream, with all states dictated by the state of the default stream.

The sequence of planted states is separated one from the next by 8,367,782 calls to ran().

Definition at line 35 of file sp_random.cpp.

void faudes::ran_put_seed ( long  seed)

Put a seed.

Parameters
seedRandom generator seed

Definition at line 55 of file sp_random.cpp.

void faudes::ran_select_stream ( int  index)

Use this function to set the current random number generator stream – that stream from which the next random number will come.

Definition at line 60 of file sp_random.cpp.

double faudes::ran_uniform ( double  a,
double  b 
)

Sample a random variable uniformly on interval [a;b) Distribution: f(t) dt= {1/(b-a)} dt for t, a <=t< b, else 0.

Parameters
aLower bound
bUpper bound
Returns
Random value

Definition at line 91 of file sp_random.cpp.

long faudes::ran_uniform_int ( long  a,
long  b 
)

Sample a discrete random variable uniformly on interval [a;b) Distribution: p(n) = 1/(b-a-1)

Parameters
aLower bound
bUpper bound
Returns
Random value

Definition at line 98 of file sp_random.cpp.

FAUDES_API EventSet faudes::ReachableEvents ( const Generator &  rLowGen,
const EventSet &  rHighAlph,
Idx  lowState 
)

ReachableEvents return-copy function:

Wrapper for the corresponding call-by-reference function. Creates new EventSet, calls function and returns EventSet containing the reachable hi level events.

Parameters
rLowGenLow level generator
rHighAlphHigh level alphabet
lowStateLow level state

Definition at line 76 of file cfl_localgen.cpp.

FAUDES_API void faudes::ReachableEvents ( const Generator &  rLowGen,
const EventSet &  rHighAlph,
Idx  lowState,
EventSet &  rReachableEvents 
)

ReachableEvents call-by-reference function:

Compute the set of hi level events which can be reached from a low level state. Resulting set will be cleared first.

Parameters
rLowGenLow level generator
rHighAlphHigh level alphabet
lowStateLow level state
rReachableEventsReference to EventSet which will contain the reachable high level events (result)

Definition at line 88 of file cfl_localgen.cpp.

FAUDES_API std::set< std::string > faudes::ReadDirectory ( const std::string &  rDirectory)

Read the contents of the specified directors.

Parameters
rDirectoryDirectory eg "/home/friend/data"
Returns
List of files, e.g. "gen1.gen gen2.gen data subdir"

Definition at line 336 of file cfl_helper.cpp.

FAUDES_API bool faudes::RemoveFile ( const std::string &  rFileName)

Delete a file.

Parameters
rFileNameName of file to delete

Definition at line 256 of file cfl_helper.cpp.

void faudes::RemoveNonCoaccessibleOut ( Generator &  g)

Definition at line 576 of file cfl_conflequiv.cpp.

void * faudes::SDeviceSynchro ( void *  arg)

Definition at line 772 of file iop_sdevice.cpp.

FAUDES_API void faudes::SearchScc ( const Idx  vState,
int &  vRcount,
const Generator &  rGen,
const SccFilter &  rFilter,
StateSet &  rTodo,
std::stack< Idx > &  rStack,
StateSet &  rStackStates,
std::map< const Idx, int > &  rDfn,
std::map< const Idx, int > &  rLowLnk,
std::list< StateSet > &  rSccList,
StateSet &  rRoots 
)

Search for strongly connected components (SCC).

This function partitions the stateset of a generator into equivalent classes such that states x1 and x2 are equivalent iff there is a path from x1 to x2 AND a path from x2 to x1.

This function implements the algorithm based on a recursive depth first search presented in:

– Aho, Hopcroft, Ullman: The Design and Analysis of Computer Algorithms –

While the original algorithm works on a directed graph, this implementation adds some features that refer to transition systems and allow to filter SCCs on the run. The filter condition is specified by the SccFilter parameter rFilter.

Note: this version is derived from earlier implementations used in various plug-ins; in due course, this version will replace earlier versions.

Note: Due to the recursive implementation, this function requires a stack size proportional to the largest SCC. We have experienced typical default configurations to be good for a depth of about 80000 (Mac OSX 10.6, Debian 7.4). For SCCs exceeding the default stack size, you may adjust the operating system parameters accordingly. On Unix/Linux/MacOsX this is done by the shell command "ulimit -s hard". A future revision of SearchSCC() may be re-designed to circumvent this inconvenient issue.

Note: for a convenience API see also ComputeScc()

Parameters
vStateState, from which the current recursion is started.
vRcountDenotes the current depth of the recursion.
rGenTransition system to investigate
rFilterFilter out specified transitions
rTodoSet of states that up to now were not found by the depth first search.
rStackStack of states to represent current path.
rStackStatesSet of states that are in rStack
rDfnMap assigning to each state idx its Depth-First Number.
rLowLnkMap assigning to each state its LOWLINK Number.
rSccListSet SCCs (accumulative result).
rRootsSet of states that each are root of some SCC (accumulative result).

Definition at line 228 of file cfl_graphfncts.cpp.

FAUDES_API void faudes::SetComposedStateNames ( const Generator &  rGen1,
const Generator &  rGen2,
const std::map< std::pair< Idx, Idx >, Idx > &  rCompositionMap,
Generator &  rGen12 
)

Helper: uses composition map to track state names in a paralell composition.

Purely cosmetic.

Parameters
rGen1First generator
rGen2Second generator
rCompositionMapComposition map (map< pair<Idx,Idx>, Idx>)
rGen12Reference to resulting parallel composition generator

Definition at line 658 of file cfl_parallel.cpp.

FAUDES_API void faudes::SetDifference ( const vGenerator &  rGenA,
const vGenerator &  rGenB,
EventSet &  rRes 
)

RTI convenience function.

Definition at line 4015 of file cfl_generator.cpp.

FAUDES_API void faudes::SetIntersection ( const vGenerator &  rGenA,
const vGenerator &  rGenB,
EventSet &  rRes 
)

RTI convenience function.

Definition at line 4005 of file cfl_generator.cpp.

FAUDES_API void faudes::SetUnion ( const vGenerator &  rGenA,
const vGenerator &  rGenB,
EventSet &  rRes 
)

RTI convenience function.

Definition at line 4010 of file cfl_generator.cpp.

void faudes::SilentContinuationRule ( Generator &  g,
const EventSet &  silent 
)

Definition at line 425 of file cfl_conflequiv.cpp.

FAUDES_API void faudes::StateMin ( const Generator &  rGen,
Generator &  rResGen,
std::vector< StateSet > &  rSubsets,
std::vector< Idx > &  rNewIndices 
)

State set minimization.

This function implements the (n*log n) set partitioning algorithm by John E. Hopcroft. Given generator will be made accessible before computing minimized generator. See also StateMin(Generator&,Generator&).

Parameters
rGenGenerator
rResGenMinimized generator (result)
rSubsetsVector of subsets that will be constructed during running the algorithm (optional parameter)
rNewIndicesVector of new state indices corresponding to the subsets (optional parameter)
Exceptions
ExceptionInput automaton nondeterministic (id 101)

Definition at line 620 of file cfl_statemin.cpp.

void faudes::StateMin_org ( const Generator &  rGen,
Generator &  rResGen,
std::vector< StateSet > &  rSubsets,
std::vector< Idx > &  rNewIndices 
)

Definition at line 375 of file cfl_statemin.cpp.

FAUDES_API std::string faudes::StringSubstitute ( const std::string &  rString,
const std::string &  rFrom,
const std::string &  rTo 
)

Substitute in string.

Parameters
rStringSource string to substitute
rFromString to match
rToReplacement to fill in
Returns
Result string

Definition at line 111 of file cfl_helper.cpp.

int faudes::syncSend ( int  dest,
const char *  data,
int  len,
int  flag 
)

Definition at line 248 of file iop_simplenet.cpp.

FAUDES_API std::string faudes::TestProtocol ( const std::string &  rSource)

Test Protocol.

Sets the filename for the test protocol by

  • removing any path specififucation,
  • replacing "." by "_",
  • appending ".prot", and finaly
  • prepending "tmp_". The function returns the filename except for the "tmp_" prefix. The latter is considered the nominal protocol output (aka reference protocol).

Note: only the first invocation of this functions actually sets the protocol file. Further invocations are ignored, but can be used to query the reference protocol.

Parameters
rSourceSource file to protocol
Returns
Filename with nominal protocol.

Definition at line 505 of file cfl_helper.cpp.

FAUDES_API void faudes::TestProtocol ( const std::string &  rMessage,
const Type &  rData,
bool  core = false 
)

Test Protocol.

This function dumps the specified data to the protocol file for the purpose of later comparison with a refernce value. If the protocol file has not been set up, this function does nothing; see also TestProtocol(const std::string&.

Parameters
rMessageInformal identifyer of the test
rDataFormal result of the test case
coreWhether to record full token io or statistics only.

Definition at line 530 of file cfl_helper.cpp.

FAUDES_API void faudes::TestProtocol ( const std::string &  rMessage,
bool  data 
)

Test Protocol.

Specialized version for boolean test data. See also TestProtocol(const std::string&, const Type&, bool);

Parameters
rMessageInformal identifyer of the test
dataTest data

Definition at line 540 of file cfl_helper.cpp.

FAUDES_API void faudes::TestProtocol ( const std::string &  rMessage,
long int  data 
)

Test Protocol.

Specialized version for integer test data. See also TestProtocol(const std::string&, const Type&, bool);

Parameters
rMessageInformal identifyer of the test
dataTest data

Definition at line 544 of file cfl_helper.cpp.

FAUDES_API void faudes::TestProtocol ( const std::string &  rMessage,
const std::string &  data 
)

Test Protocol.

Specialized version for string data. See also TestProtocol(const std::string&, const Type&, bool);

Parameters
rMessageInformal identifyer of the test
dataTest data

Definition at line 548 of file cfl_helper.cpp.

FAUDES_API bool faudes::TestProtocol ( void  )

Test Protocol.

Perform a comparison of the recent protocol file and the corresponding reference. Returns true if the test passes.

Note: this function closes the current protocol.

Returns
True <=> test past

Definition at line 554 of file cfl_helper.cpp.

FAUDES_API Idx faudes::ToIdx ( const std::string &  rString)

Convert a string to Idx.

Parameters
rStringstring to convert
Returns
Idx
Exceptions
Idxoverflow (id 600)

Definition at line 100 of file cfl_helper.cpp.

FAUDES_API std::string faudes::ToStringFloat ( Float  number)

float to string

Parameters
numberdouble
Returns
string

Definition at line 64 of file cfl_helper.cpp.

FAUDES_API std::string faudes::ToStringInteger ( Int  number)

integer to string

Parameters
numberinteger
Returns
string

Definition at line 43 of file cfl_helper.cpp.

FAUDES_API std::string faudes::ToStringInteger16 ( Int  number)

integer to string base 16

Parameters
numberinteger
Returns
string

Definition at line 54 of file cfl_helper.cpp.

FAUDES_API std::string faudes::VersionString ( )

Return FAUDES_VERSION as std::string.

Returns
std::string with FAUDES_VERSION

Definition at line 131 of file cfl_helper.cpp.

Variable Documentation

bool(* faudes::gBreakFnct)(void)=0
static

Definition at line 617 of file cfl_helper.cpp.

AutoRegisterType< TaNameSet<AttributeSignalEvent> > faudes::gRti1RegisterSignalDeviceEventSet("SignalDeviceEventSet")
AutoRegisterXElementTag< TaNameSet<AttributeSignalEvent> > faudes::gRti1XElementTagSignalDeviceEventSet("SignalDeviceEventSet","Event")
volatile AutoRegisterType<xDevice> faudes::gRtiRegisterDeviceContainer("DeviceContainer")
static
AutoRegisterType<nDevice> faudes::gRtiRegisterSimplenetDevice("SimplenetDevice")
AutoRegisterType<mbDevice> faudes::gRtiRegisterSpiDevice("ModbusDevice")
std::string faudes::gTestProtocolFr

Definition at line 502 of file cfl_helper.cpp.

TokenWriter* faudes::gTestProtocolTw = NULL

Definition at line 501 of file cfl_helper.cpp.

int faudes::ran_initialized = 0
static

Definition at line 31 of file sp_random.cpp.

long faudes::ran_seed[STREAMS] = {DEFAULT}
static

Definition at line 29 of file sp_random.cpp.

int faudes::ran_stream = 0
static

Definition at line 30 of file sp_random.cpp.

libFAUDES 2.28a --- 2016.09.13 --- c++ api documentaion by doxygen