metaSMT 2
Defines | Typedefs | Functions | Variables
QF_BV (Bit-Vector) Frontend
Frontend

Defines

#define _QF_BV_BINARY_FUNCTION(NAME_, TAG_)
#define _QF_BV_UNARY_FUNCTION(NAME_, TAG_)

Typedefs

typedef
proto::result_of::make_expr
< tag::bvuint_tag,
QF_BV_Domain, unsigned long,
unsigned long >::type 
metaSMT::logic::QF_BV::bvuint_result_type
typedef
proto::result_of::make_expr
< tag::bvsint_tag,
QF_BV_Domain, long, unsigned
long >::type 
metaSMT::logic::QF_BV::bvsint_result_type
typedef
proto::result_of::make_expr
< proto::tag::terminal,
QF_BV_Domain, tag::var_tag >
::type 
metaSMT::logic::QF_BV::bitvector

Functions

template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvand_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvand (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvnand_tag,
QF_BV_Domain, E1 const &, E2
const & >::type 
metaSMT::logic::QF_BV::bvnand (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvor_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvor (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvnor_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvnor (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvxor_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvxor (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvxnor_tag,
QF_BV_Domain, E1 const &, E2
const & >::type 
metaSMT::logic::QF_BV::bvxnor (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvadd_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvadd (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvmul_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvmul (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvsub_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvsub (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvudiv_tag,
QF_BV_Domain, E1 const &, E2
const & >::type 
metaSMT::logic::QF_BV::bvudiv (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvurem_tag,
QF_BV_Domain, E1 const &, E2
const & >::type 
metaSMT::logic::QF_BV::bvurem (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvsdiv_tag,
QF_BV_Domain, E1 const &, E2
const & >::type 
metaSMT::logic::QF_BV::bvsdiv (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvsrem_tag,
QF_BV_Domain, E1 const &, E2
const & >::type 
metaSMT::logic::QF_BV::bvsrem (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvcomp_tag,
QF_BV_Domain, E1 const &, E2
const & >::type 
metaSMT::logic::QF_BV::bvcomp (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvslt_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvslt (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvsgt_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvsgt (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvsle_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvsle (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvsge_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvsge (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvult_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvult (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvugt_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvugt (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvule_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvule (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvuge_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvuge (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvshl_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvshl (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvshr_tag, QF_BV_Domain,
E1 const &, E2 const & >::type 
metaSMT::logic::QF_BV::bvshr (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::bvashr_tag,
QF_BV_Domain, E1 const &, E2
const & >::type 
metaSMT::logic::QF_BV::bvashr (E1 const &e1, E2 const &e2)
template<typename E1 , typename E2 >
proto::result_of::make_expr
< tag::concat_tag,
QF_BV_Domain, E1 const &, E2
const & >::type 
metaSMT::logic::QF_BV::concat (E1 const &e1, E2 const &e2)
template<typename E1 >
proto::result_of::make_expr
< tag::bvnot_tag, QF_BV_Domain,
E1 const & >::type 
metaSMT::logic::QF_BV::bvnot (E1 const &e1)
template<typename E1 >
proto::result_of::make_expr
< tag::bvneg_tag, QF_BV_Domain,
E1 const & >::type 
metaSMT::logic::QF_BV::bvneg (E1 const &e1)
template<typename Expr >
proto::result_of::make_expr
< tag::extract_tag,
QF_BV_Domain, unsigned long
const &, unsigned long const
&, Expr const & >::type 
metaSMT::logic::QF_BV::extract (unsigned long const &from, unsigned long const &width, Expr const &e)
template<typename Expr >
proto::result_of::make_expr
< tag::zero_extend_tag,
QF_BV_Domain, unsigned long
const &, Expr const & >::type 
metaSMT::logic::QF_BV::zero_extend (unsigned long const &howMany, Expr const &e)
template<typename Expr >
proto::result_of::make_expr
< tag::sign_extend_tag,
QF_BV_Domain, unsigned long
const &, Expr const & >::type 
metaSMT::logic::QF_BV::sign_extend (unsigned long const &howMany, Expr const &e)
bvuint_result_type metaSMT::logic::QF_BV::bvuint (unsigned long const &value, unsigned long const &width)
bvsint_result_type metaSMT::logic::QF_BV::bvsint (long const &value, long unsigned const &width)
template<typename Integer >
boost::enable_if< typename
boost::mpl::and_
< boost::is_integral< Integer >
, boost::is_signed< Integer >
>::type, bvsint_result_type >
::type 
metaSMT::logic::QF_BV::bvint (Integer value, unsigned long const &width)
proto::result_of::make_expr
< tag::bvbin_tag, QF_BV_Domain,
std::string const & >::type 
metaSMT::logic::QF_BV::bvbin (std::string const &value)
proto::result_of::make_expr
< tag::bvhex_tag, QF_BV_Domain,
std::string const & >::type 
metaSMT::logic::QF_BV::bvhex (std::string const &value)
bitvector metaSMT::logic::QF_BV::new_bitvector (unsigned width=1)

Variables

QF_BV< proto::terminal
< tag::bit0_tag >::type >
const 
metaSMT::logic::QF_BV::bit0
QF_BV< proto::terminal
< tag::bit1_tag >::type >
const 
metaSMT::logic::QF_BV::bit1

Define Documentation

#define _QF_BV_BINARY_FUNCTION (   NAME_,
  TAG_ 
)
Value:
template<typename E1, typename E2> \
      typename proto::result_of::make_expr< TAG_, QF_BV_Domain, E1 const &, E2 const & >::type \
      NAME_( E1 const& e1, E2 const & e2 ) \
      { \
        return proto::make_expr< TAG_, QF_BV_Domain >(boost::cref(e1), boost::cref(e2));\
      }

Definition at line 166 of file QF_BV.hpp.

#define _QF_BV_UNARY_FUNCTION (   NAME_,
  TAG_ 
)
Value:
template<typename E1> \
      typename proto::result_of::make_expr< TAG_, QF_BV_Domain, E1 const &>::type \
      NAME_( E1 const& e1) \
      { \
        return proto::make_expr< TAG_, QF_BV_Domain >(boost::cref(e1));\
      }

Definition at line 211 of file QF_BV.hpp.


Typedef Documentation

typedef proto::result_of::make_expr< proto::tag::terminal, QF_BV_Domain , tag::var_tag >::type metaSMT::logic::QF_BV::bitvector

Definition at line 327 of file QF_BV.hpp.

typedef proto::result_of::make_expr< tag::bvsint_tag, QF_BV_Domain , long , unsigned long >::type metaSMT::logic::QF_BV::bvsint_result_type

Definition at line 274 of file QF_BV.hpp.

typedef proto::result_of::make_expr< tag::bvuint_tag, QF_BV_Domain , unsigned long , unsigned long >::type metaSMT::logic::QF_BV::bvuint_result_type

Definition at line 263 of file QF_BV.hpp.


Function Documentation

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvadd_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvadd ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 182 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvand_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvand ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 175 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvashr_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvashr ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 204 of file QF_BV.hpp.

proto::result_of::make_expr< tag::bvbin_tag, QF_BV_Domain , std::string const & >::type metaSMT::logic::QF_BV::bvbin ( std::string const &  value) [inline]

Definition at line 310 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvcomp_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvcomp ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 190 of file QF_BV.hpp.

proto::result_of::make_expr< tag::bvhex_tag, QF_BV_Domain , std::string const & >::type metaSMT::logic::QF_BV::bvhex ( std::string const &  value) [inline]

Definition at line 318 of file QF_BV.hpp.

template<typename Integer >
boost::enable_if< typename boost::mpl::and_< boost::is_integral< Integer >, boost::mpl::not_< boost::is_signed< Integer > > >::type, bvuint_result_type >::type metaSMT::logic::QF_BV::bvint ( Integer  value,
unsigned long const &  width 
)

Definition at line 289 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvmul_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvmul ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 183 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvnand_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvnand ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 176 of file QF_BV.hpp.

template<typename E1 >
proto::result_of::make_expr< tag::bvneg_tag , QF_BV_Domain, E1 const &>::type metaSMT::logic::QF_BV::bvneg ( E1 const &  e1)

Definition at line 221 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvnor_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvnor ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 178 of file QF_BV.hpp.

template<typename E1 >
proto::result_of::make_expr< tag::bvnot_tag , QF_BV_Domain, E1 const &>::type metaSMT::logic::QF_BV::bvnot ( E1 const &  e1)

Definition at line 220 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvor_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvor ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 177 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvsdiv_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvsdiv ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 187 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvsge_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvsge ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 195 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvsgt_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvsgt ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 193 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvshl_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvshl ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 202 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvshr_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvshr ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 203 of file QF_BV.hpp.

bvsint_result_type metaSMT::logic::QF_BV::bvsint ( long const &  value,
long unsigned const &  width 
) [inline]

Definition at line 277 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvsle_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvsle ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 194 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvslt_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvslt ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 192 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvsrem_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvsrem ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 188 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvsub_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvsub ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 184 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvudiv_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvudiv ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 185 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvuge_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvuge ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 200 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvugt_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvugt ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 198 of file QF_BV.hpp.

bvuint_result_type metaSMT::logic::QF_BV::bvuint ( unsigned long const &  value,
unsigned long const &  width 
) [inline]

Definition at line 266 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvule_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvule ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 199 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvult_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvult ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 197 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvurem_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvurem ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 186 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvxnor_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvxnor ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 180 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::bvxor_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::bvxor ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 179 of file QF_BV.hpp.

template<typename E1 , typename E2 >
proto::result_of::make_expr< tag::concat_tag , QF_BV_Domain, E1 const &, E2 const & >::type metaSMT::logic::QF_BV::concat ( E1 const &  e1,
E2 const &  e2 
)

Definition at line 207 of file QF_BV.hpp.

template<typename Expr >
proto::result_of::make_expr< tag::extract_tag, QF_BV_Domain , unsigned long const & , unsigned long const & , Expr const & >::type metaSMT::logic::QF_BV::extract ( unsigned long const &  from,
unsigned long const &  width,
Expr const &  e 
) [inline]

Definition at line 232 of file QF_BV.hpp.

bitvector metaSMT::logic::QF_BV::new_bitvector ( unsigned  width = 1) [inline]

Definition at line 330 of file QF_BV.hpp.

template<typename Expr >
proto::result_of::make_expr< tag::sign_extend_tag, QF_BV_Domain , unsigned long const & , Expr const & >::type metaSMT::logic::QF_BV::sign_extend ( unsigned long const &  howMany,
Expr const &  e 
) [inline]

Definition at line 254 of file QF_BV.hpp.

template<typename Expr >
proto::result_of::make_expr< tag::zero_extend_tag, QF_BV_Domain , unsigned long const & , Expr const & >::type metaSMT::logic::QF_BV::zero_extend ( unsigned long const &  howMany,
Expr const &  e 
) [inline]

Definition at line 243 of file QF_BV.hpp.


Variable Documentation

QF_BV<proto::terminal<tag::bit0_tag>::type > const metaSMT::logic::QF_BV::bit0

Definition at line 162 of file QF_BV.hpp.

QF_BV<proto::terminal<tag::bit1_tag>::type > const metaSMT::logic::QF_BV::bit1

Definition at line 163 of file QF_BV.hpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines