Namespaces | Classes | Typedefs | Functions | Variables

wali Namespace Reference

Namespaces

namespace  relations
namespace  graph
namespace  regex
namespace  walienum
namespace  util
namespace  wfa
namespace  wpds
namespace  witness

Classes

class  Countable
class  DefaultWorklist
class  Exception
struct  Bucket
class  HashMapIterator
 One should always use: HashMap< a,b,c,d >::iterator or HashMap< a,b,c,d >::const_iterator. More...
class  HashMapConstIterator
class  HashMap
 class HashMap More...
struct  hm_hash
struct  hm_equal
struct  hm_hash< char >
struct  hm_hash< const char >
struct  hm_equal< char >
struct  hm_equal< const char >
struct  hm_hash< unsigned char >
struct  hm_hash< const unsigned char >
struct  hm_equal< unsigned char >
struct  hm_equal< const unsigned char >
struct  hm_hash< int >
struct  hm_hash< const int >
struct  hm_equal< int >
struct  hm_equal< const int >
struct  hm_hash< unsigned int >
struct  hm_hash< const unsigned int >
struct  hm_equal< unsigned int >
struct  hm_equal< const unsigned int >
struct  hm_hash< long >
struct  hm_hash< const long >
struct  hm_equal< long >
struct  hm_equal< const long >
struct  hm_hash< unsigned long >
struct  hm_hash< const unsigned long >
struct  hm_equal< unsigned long >
struct  hm_equal< const unsigned long >
struct  hm_hash< char * >
struct  hm_hash< const char * >
struct  hm_equal< char * >
struct  hm_equal< const char * >
struct  hm_hash< long long >
struct  hm_hash< const long long >
struct  hm_equal< long long >
struct  hm_equal< const long long >
struct  hm_hash< unsigned long long >
struct  hm_hash< const unsigned long long >
struct  hm_equal< unsigned long long >
struct  hm_equal< const unsigned long long >
class  IMarkable
class  IMergeFn
 Class IMergeFn defines the interface that all merge functions must satisfy. More...
class  IntSource
class  Triple
class  Quad
struct  hm_hash< KeyPair >
struct  hm_equal< KeyPair >
struct  hm_hash< KeyTriple >
struct  hm_equal< KeyTriple >
struct  hm_hash< std::set< Key > >
struct  hm_equal< std::set< Key > >
class  KeyOrderWorklist
class  KeyPairSource
class  KeySetSource
class  KeySource
struct  hm_hash< key_src_t >
struct  hm_equal< key_src_t >
class  KeySpace
class  Markable
class  MergeFn
class  MergeFnFactory
class  Printable
 Interface defining the print method. More...
class  PriorityWorklist
class  RankedWorklist
class  ref_ptr
 A reference counting pointer class. More...
class  SemElem
 base abstract class to be subclassed by user's semiring More...
class  SemElemPair
class  ShortestPathSemiring
class  ShortestPathWorklist
class  StringSource
class  TaggedWeight
class  TotalOrderWorklist
class  WeightFactory
class  Worklist

Typedefs

typedef Key wali_key_t
typedef ref_ptr< IMergeFnmerge_fn_t
typedef size_t Key
 For now a Key is just an unsigned int.
typedef ref_ptr< KeySourcekey_src_t
typedef std::pair< Key, KeyKeyPair
 KeyPair.
typedef Triple< Key, Key, KeyKeyTriple
 KeyTriple.
typedef Quad< Key, Key, Key, KeyKeyQuad
 KeyQuad.
typedef ref_ptr< SemElemsem_elem_t
 Handy typedef for working with reference counted SemElem objects.

Functions

std::ostream * set_wali_err (std::ostream *newErr)
 Sets error stream waliErr to param newErr.
std::ostream * setWaliErr (std::ostream *newErr)
void set_verify_fwpds (bool enable)
 Turn FWPDS verification on and off.
bool get_verify_fwpds ()
void set_lazy_fwpds (bool enable)
 Turn lazy weights on or off for FWPDS.
bool is_lazy_fwpds ()
void set_strict (bool enable)
 Enable or disable strictness on transition "to" states.
bool is_strict ()
KeySpacegetKeySpace ()
 This class defines the wali keyspace.
void clearKeyspace ()
Key getKey (key_src_t ks)
 Wrapper functions.
Key getKey (const std::string &s)
Key getKey (const char *s)
Key getKey (int i)
Key getKey (Key k1, Key k2)
Key getKey (std::set< Key > ks)
key_src_t getKeySource (Key k)
 Return KeySource associated with the key k.
std::ostream & printKey (std::ostream &o, Key k, bool abbreviate)
std::string key2str (Key k)
 Returns string representation of the key Essentially performs the lookup from Key to KeySource and calls KeySource::to_string.
template<typename T , typename U , typename V >
Triple< T, U, V > make_triple (T const &t, U const &u, V const &v)
 Return a Triple with the given types (analgous to std::make_pair).
template<typename T , typename U , typename V , typename W >
Quad< T, U, V, W > make_quad (T const &t, U const &u, V const &v, W const &w)
 Return a Quad with the given types (analgous to std::make_pair).
void test_semelem_impl (sem_elem_t x)
 Simple test method that can be used when developing a SemElem implementation.

Variables

std::ostream * waliErr = &std::cerr

Detailed Description

Author:
Nicholas Kidd
Version:
Id:
Common.cpp 463 2008-10-16 22:27:58Z kidd
Author:
Nicholas Kidd
Akash Lal
Nicholas Kidd
Version:
Id:
IMergeFn.cpp 444 2008-07-28 22:40:10Z liblit
Author:
Akash Lal
Nicholas Kidd
Nicholas Kidd
Version:
Revision:
529
Author:
Amanda Burton
Nicholas Kidd
Version:
Id:
KeySpace.cpp 1025 2011-05-27 18:47:27Z driscoll
Author:
Nicholas Kidd defines hm_hash<wali::KeySource*>
Akash Lal
Nicholas Kidd
Version:
Id:
MergeFn.cpp 1093 2011-06-07 16:50:18Z driscoll
Author:
Nicholas Kidd
Version:
Id:
MergeFnFactory.cpp 442 2008-06-09 13:05:01Z kidd
Author:
Nicholas Kidd
Evan Driscoll
Nicholas Kidd
Version:
Id:
Root.cpp 418 2008-05-12 17:19:03Z kidd
Author:
Nicholas Kidd
Version:
Id:
Star.cpp 425 2008-05-14 12:00:53Z kidd
Author:
Nicholas Kidd
Version:
Id:
Union.cpp 418 2008-05-12 17:19:03Z kidd
Author:
Nicholas Kidd
Version:
Id:
SemElem.cpp 1093 2011-06-07 16:50:18Z driscoll
Author:
Nicholas Kidd
Version:
Id:
SemElemPair.cpp 513 2009-02-10 17:09:07Z kidd
Author:
Nicholas Kidd
Version:
Id:
StringSource.cpp 529 2009-06-16 02:01:29Z kidd
Author:
Akash Lal
Nicholas Kidd
Akash Lal
Nicholas Kidd
Version:
Id:
Visitor.cpp 1093 2011-06-07 16:50:18Z driscoll
Author:
Nicholas Kidd
Version:
Id:
VisitorDot.cpp 467 2008-10-23 20:47:11Z kidd
Author:
Nicholas Kidd
Version:
Id:
VisitorPrinter.cpp 1094 2011-06-07 16:53:12Z driscoll
Author:
Nicholas Kidd
Version:
Id:
Witness.cpp 467 2008-10-23 20:47:11Z kidd
Author:
Nicholas Kidd
Version:
Id:
WitnessMerge.cpp 1099 2011-06-07 22:22:04Z driscoll
Author:
Nicholas Kidd
Version:
Id:
WitnessMergeFn.cpp 1099 2011-06-07 22:22:04Z driscoll
Author:
Nicholas Kidd
Version:
Id:
WitnessWrapper.cpp 1182 2011-06-14 20:56:58Z driscoll
Author:
Nicholas Kidd
Version:
Id:
Config.cpp 1099 2011-06-07 22:22:04Z driscoll
Author:
Akash Lal
Nicholas Kidd
Version:
Id:
ERule.cpp 1095 2011-06-07 18:47:31Z driscoll
Author:
Nicholas Kidd
Id:
ETrans.cpp 1099 2011-06-07 22:22:04Z driscoll
Author:
Akash Lal
Nicholas Kidd
Version:
Id:
EWPDS.cpp 1192 2011-06-22 20:41:38Z driscoll
Author:
Akash Lal, Nicholas Kidd
Akash Lal
Nicholas Kidd
Id:
LazyTrans.cpp 1099 2011-06-07 22:22:04Z driscoll
Author:
Nicholas Kidd
Id:
GenKeySource.cpp 418 2008-05-12 17:19:03Z kidd
Author:
Nicholas Kidd
Akash Lal
Version:
Id:
WPDS.cpp 1571 2012-01-20 17:52:00Z driscoll
Author:
Nicholas Kidd
Version:
Id:
Wrapper.cpp 1182 2011-06-14 20:56:58Z driscoll

Typedef Documentation

For now a Key is just an unsigned int.

typedef std::pair< Key,Key > wali::KeyPair

KeyPair.

KeyTriple.

KeyQuad.

Handy typedef for working with reference counted SemElem objects.


Function Documentation

std::ostream * wali::set_wali_err ( std::ostream *  newErr  ) 

Sets error stream waliErr to param newErr.

Returns:
old err ostream
Parameters:
newErr std::ostream*
Returns:
old err ostream
std::ostream * wali::setWaliErr ( std::ostream *  newErr  ) 
Returns:
old err ostream
void wali::set_verify_fwpds ( bool  enable  ) 

Turn FWPDS verification on and off.

Returns:
void

When running pre or post* query in FWPDS, setting this to true will also run the same query using regular EWPDS and verify the results are the same.

Parameters:
enable turn FWPDS verification on/off
bool wali::get_verify_fwpds (  ) 
Returns:
true if FWPDS will verify the result of each poststar or prestar query against EWPDS.
whether FWPDS reachability is to be verified

Referenced by wali::wpds::fwpds::FWPDS::poststarIGR().

void wali::set_lazy_fwpds ( bool  enable  ) 

Turn lazy weights on or off for FWPDS.

Returns:
void
bool wali::is_lazy_fwpds (  ) 
Returns:
true if FWPDS outputs a WFA whose transitions have lazy weights.returns a lazy automaton.
void wali::set_strict ( bool  enable  ) 

Enable or disable strictness on transition "to" states.

Returns:
void

Referenced by wali::wpds::fwpds::SWPDS::prestar().

bool wali::is_strict (  ) 
Returns:
true if WALi is being strict about transitions being to a PDS state.

Referenced by wali::wpds::WPDS::operator()(), wali::wpds::ewpds::EWPDS::operator()(), and wali::wpds::fwpds::SWPDS::prestar().

KeySpace * wali::getKeySpace (  ) 

This class defines the wali keyspace.

void wali::clearKeyspace (  ) 
Key wali::getKey ( key_src_t  ks  ) 
Key wali::getKey ( const std::string &  s  ) 
Key wali::getKey ( const char *  s  ) 
Key wali::getKey ( int  i  ) 
Key wali::getKey ( Key  k1,
Key  k2 
)
Key wali::getKey ( std::set< Key >  ks  ) 
key_src_t wali::getKeySource ( Key  k  ) 

Return KeySource associated with the key k.

std::ostream & wali::printKey ( std::ostream &  o,
Key  k,
bool  abbreviate = false 
)
std::string wali::key2str ( Key  k  ) 
template<typename T , typename U , typename V >
Triple<T, U, V> wali::make_triple ( T const &  t,
U const &  u,
V const &  v 
)

Return a Triple with the given types (analgous to std::make_pair).

Referenced by opennwa::parser::details::read_triple().

template<typename T , typename U , typename V , typename W >
Quad<T, U, V, W> wali::make_quad ( T const &  t,
U const &  u,
V const &  v,
W const &  w 
)

Return a Quad with the given types (analgous to std::make_pair).

Referenced by opennwa::parser::details::read_quad().

void wali::test_semelem_impl ( sem_elem_t  x  ) 

Simple test method that can be used when developing a SemElem implementation.

Tests include

o 0 = 0 o 1 = 1 o x = x o x + 0 = x = 0 + x o x * 0 = 0 = 0 * x o x * 1 = x = 1 * x


Variable Documentation

std::ostream * wali::waliErr = &std::cerr