metaSMT 2
Functions
Run algorithm
Support

Run algorithm API. More...

Functions

template<typename Vec , template< class T > class Algo>
eval_visitor< Vec, Algo >
::result_type 
metaSMT::run_algorithm (unsigned wanted)
template<typename Vec , template< class T > class Algo, typename ARG0 >
eval_visitor< Vec, Algo >
::result_type 
metaSMT::run_algorithm (unsigned wanted, ARG0 arg0)
template<typename Vec , template< class T > class Algo, typename ARG0 , typename ARG1 >
eval_visitor< Vec, Algo >
::result_type 
metaSMT::run_algorithm (unsigned wanted, ARG0 arg0, ARG1 arg1)
template<typename Vec , template< class T > class Algo, typename ARG0 , typename ARG1 , typename ARG2 >
eval_visitor< Vec, Algo >
::result_type 
metaSMT::run_algorithm (unsigned wanted, ARG0 arg0, ARG1 arg1, ARG2 arg2)
template<typename Vec , template< class T > class Algo, typename ARG0 , typename ARG1 , typename ARG2 , typename ARG3 >
eval_visitor< Vec, Algo >
::result_type 
metaSMT::run_algorithm (unsigned wanted, ARG0 arg0, ARG1 arg1, ARG2 arg2, ARG3 arg3)
template<typename Vec , template< class T > class Algo, typename ARG0 , typename ARG1 , typename ARG2 , typename ARG3 , typename ARG4 >
eval_visitor< Vec, Algo >
::result_type 
metaSMT::run_algorithm (unsigned wanted, ARG0 arg0, ARG1 arg1, ARG2 arg2, ARG3 arg3, ARG4 arg4)

Detailed Description

Run algorithm API.

compile an algorithm for multiple contexts. Select at run-time which algorithm will be used.

The call to run_algorithm is parametrized with an boost MPL sequence of Context-types and an algorithm template that will be instanciated for all Contexts. At run-time specific instance of the Algorithm can be executed by passing its index in the sequence. Furthermore parameters can be passed to the contexts operator().

 typedef boost::mpl::vector < 
     DirectSolver_Context < Boolector >
   , DirectSolver_Context < BitBlast < SAT_Aiger < MiniSAT > > >
   , DirectSolver_Context < BitBlast < SAT_Aiger < PicoSAT > > >
   , DirectSolver_Context < BitBlast < CUDD_Context > >
 
   , GraphSolver_Context < Boolector >
   , GraphSolver_Context < BitBlast < SAT_Aiger < MiniSAT > > >
   , GraphSolver_Context < BitBlast < SAT_Aiger < PicoSAT > > >
   , GraphSolver_Context < BitBlast < CUDD_Context > >
    
     > SolverVec;
  DirectSolver_Context< Boolector > ctx;

  template<typename Context>
  struct MyAlgorithm {
    typedef void result_type;
    result_type operator() () {
      Context ctx;
      ...
    }
  }

  int main(int argc, const char *argv[])
  {
    unsigned i = atoi(argv[1]);
    run_algorithm<SolverVec, MyAlgorithm>(i);
    return 0;
  }

Function Documentation

template<typename Vec , template< class T > class Algo>
eval_visitor<Vec, Algo>::result_type metaSMT::run_algorithm ( unsigned  wanted)

Definition at line 249 of file run_algorithm.hpp.

template<typename Vec , template< class T > class Algo, typename ARG0 , typename ARG1 , typename ARG2 , typename ARG3 , typename ARG4 >
eval_visitor<Vec, Algo>::result_type metaSMT::run_algorithm ( unsigned  wanted,
ARG0  arg0,
ARG1  arg1,
ARG2  arg2,
ARG3  arg3,
ARG4  arg4 
)

Definition at line 294 of file run_algorithm.hpp.

template<typename Vec , template< class T > class Algo, typename ARG0 , typename ARG1 , typename ARG2 , typename ARG3 >
eval_visitor<Vec, Algo>::result_type metaSMT::run_algorithm ( unsigned  wanted,
ARG0  arg0,
ARG1  arg1,
ARG2  arg2,
ARG3  arg3 
)

Definition at line 285 of file run_algorithm.hpp.

template<typename Vec , template< class T > class Algo, typename ARG0 , typename ARG1 , typename ARG2 >
eval_visitor<Vec, Algo>::result_type metaSMT::run_algorithm ( unsigned  wanted,
ARG0  arg0,
ARG1  arg1,
ARG2  arg2 
)

Definition at line 276 of file run_algorithm.hpp.

template<typename Vec , template< class T > class Algo, typename ARG0 , typename ARG1 >
eval_visitor<Vec, Algo>::result_type metaSMT::run_algorithm ( unsigned  wanted,
ARG0  arg0,
ARG1  arg1 
)

Definition at line 267 of file run_algorithm.hpp.

template<typename Vec , template< class T > class Algo, typename ARG0 >
eval_visitor<Vec, Algo>::result_type metaSMT::run_algorithm ( unsigned  wanted,
ARG0  arg0 
)

Definition at line 258 of file run_algorithm.hpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines