|
SMTStabilizer API
Public API documentation for SMTStabilizer
|
#include <sort.h>
Public Member Functions | |
| SortManager () | |
| ~SortManager () | |
| std::shared_ptr< Sort > | getSort (const size_t index) const |
| size_t | getIndex (const std::shared_ptr< Sort > &sort) const |
| size_t | size () const |
| std::shared_ptr< Sort > | createSort (SORT_KIND kind, std::string name, size_t arity, std::vector< std::shared_ptr< Sort > > children) |
| std::shared_ptr< Sort > | createSort (SORT_KIND kind, std::string name, size_t arity) |
| std::shared_ptr< Sort > | createSort (SORT_KIND kind, std::string name) |
| std::shared_ptr< Sort > | createSort (SORT_KIND kind) |
| std::shared_ptr< Sort > | createSort (std::string name) |
| std::shared_ptr< Sort > | createSort () |
| std::shared_ptr< Sort > | createBVSort (size_t width) |
| std::shared_ptr< Sort > | createFPSort (size_t exp, size_t sig) |
| std::shared_ptr< Sort > | createArraySort (std::shared_ptr< Sort > index, std::shared_ptr< Sort > elem) |
| std::shared_ptr< Sort > | createTupleSort (const std::vector< std::shared_ptr< Sort > > &fields) |
| std::shared_ptr< Sort > | createSortDec (const std::string &name, size_t arity) |
| std::shared_ptr< Sort > | createSortDef (const std::string &name, const std::vector< std::shared_ptr< Sort > > ¶ms, std::shared_ptr< Sort > out_sort) |
| void | clear () |
| size_t | getBitWidth (const std::shared_ptr< Sort > &sort) |
| size_t | getExponentWidth (const std::shared_ptr< Sort > &sort) |
| size_t | getSignificandWidth (const std::shared_ptr< Sort > &sort) |
| std::shared_ptr< Sort > | getIndexSort (const std::shared_ptr< Sort > &sort) |
| std::shared_ptr< Sort > | getElemSort (const std::shared_ptr< Sort > &sort) |
| std::shared_ptr< Sort > | getParamSort (const std::shared_ptr< Sort > &sort, size_t index) |
| std::vector< std::shared_ptr< Sort > > | getParams (const std::shared_ptr< Sort > &sort) |
| std::shared_ptr< Sort > | getOutSort (const std::shared_ptr< Sort > &sort) |
Static Public Member Functions | |
| static std::shared_ptr< Sort > | getNull () |
| static std::shared_ptr< Sort > | getUnknown () |
| static std::shared_ptr< Sort > | getBool () |
| static std::shared_ptr< Sort > | getInt () |
| static std::shared_ptr< Sort > | getReal () |
| static std::shared_ptr< Sort > | getAlgebraic () |
| static std::shared_ptr< Sort > | getTranscendental () |
| static std::shared_ptr< Sort > | getStr () |
| static std::shared_ptr< Sort > | getReg () |
| static std::shared_ptr< Sort > | getExt () |
| static std::shared_ptr< Sort > | getNat () |
| static std::shared_ptr< Sort > | getRand () |
| static std::shared_ptr< Sort > | getIntOrReal () |
| static std::shared_ptr< Sort > | getFloat64 () |
| static std::shared_ptr< Sort > | getFloat32 () |
| static std::shared_ptr< Sort > | getFloat16 () |
| static std::shared_ptr< Sort > | getRoundingMode () |
Static Public Attributes | |
| static const std::shared_ptr< Sort > | NULL_SORT |
| static const std::shared_ptr< Sort > | UNKNOWN_SORT |
| static const std::shared_ptr< Sort > | BOOL_SORT |
| static const std::shared_ptr< Sort > | INT_SORT |
| static const std::shared_ptr< Sort > | REAL_SORT |
| static const std::shared_ptr< Sort > | ALGEBRAIC_SORT |
| static const std::shared_ptr< Sort > | TRANSCENDENTAL_SORT |
| static const std::shared_ptr< Sort > | STR_SORT |
| static const std::shared_ptr< Sort > | REG_SORT |
| static const std::shared_ptr< Sort > | EXT_SORT |
| static const std::shared_ptr< Sort > | NAT_SORT |
| static const std::shared_ptr< Sort > | RAND_SORT |
| static const std::shared_ptr< Sort > | INTOREAL_SORT |
| static const std::shared_ptr< Sort > | FLOAT64_SORT |
| static const std::shared_ptr< Sort > | FLOAT32_SORT |
| static const std::shared_ptr< Sort > | FLOAT16_SORT |
| static const std::shared_ptr< Sort > | ROUNDING_MODE_SORT |
Private Member Functions | |
| void | initializeStaticSorts () |
| std::shared_ptr< Sort > | insertSortToBucket (const std::shared_ptr< Sort > &sort) |
Private Attributes | |
| std::vector< std::shared_ptr< Sort > > | sorts |
| std::unordered_map< size_t, std::vector< std::pair< std::shared_ptr< Sort >, size_t > > > | sort_buckets |
| stabilizer::parser::SortManager::SortManager | ( | ) |
Definition at line 36 of file sort.cpp.
References initializeStaticSorts().
| stabilizer::parser::SortManager::~SortManager | ( | ) |
| void stabilizer::parser::SortManager::clear | ( | ) |
Definition at line 85 of file sort.cpp.
References sort_buckets, and sorts.
Referenced by ~SortManager().
| std::shared_ptr< Sort > stabilizer::parser::SortManager::createArraySort | ( | std::shared_ptr< Sort > | index, |
| std::shared_ptr< Sort > | elem | ||
| ) |
Definition at line 161 of file sort.cpp.
References insertSortToBucket(), and stabilizer::parser::SK_ARRAY.
| std::shared_ptr< Sort > stabilizer::parser::SortManager::createBVSort | ( | size_t | width | ) |
Definition at line 146 of file sort.cpp.
References insertSortToBucket(), stabilizer::parser::SK_BV, and stabilizer::parser::SK_NULL.
| std::shared_ptr< Sort > stabilizer::parser::SortManager::createFPSort | ( | size_t | exp, |
| size_t | sig | ||
| ) |
Definition at line 153 of file sort.cpp.
References insertSortToBucket(), stabilizer::parser::SK_FP, and stabilizer::parser::SK_NULL.
| std::shared_ptr< Sort > stabilizer::parser::SortManager::createSort | ( | ) |
Definition at line 140 of file sort.cpp.
References insertSortToBucket().
Definition at line 130 of file sort.cpp.
References insertSortToBucket().
| std::shared_ptr< Sort > stabilizer::parser::SortManager::createSort | ( | SORT_KIND | kind, |
| std::string | name | ||
| ) |
Definition at line 124 of file sort.cpp.
References insertSortToBucket().
| std::shared_ptr< Sort > stabilizer::parser::SortManager::createSort | ( | SORT_KIND | kind, |
| std::string | name, | ||
| size_t | arity | ||
| ) |
Definition at line 119 of file sort.cpp.
References insertSortToBucket().
| std::shared_ptr< Sort > stabilizer::parser::SortManager::createSort | ( | SORT_KIND | kind, |
| std::string | name, | ||
| size_t | arity, | ||
| std::vector< std::shared_ptr< Sort > > | children | ||
| ) |
Definition at line 114 of file sort.cpp.
References insertSortToBucket().
| std::shared_ptr< Sort > stabilizer::parser::SortManager::createSort | ( | std::string | name | ) |
Definition at line 135 of file sort.cpp.
References insertSortToBucket().
| std::shared_ptr< Sort > stabilizer::parser::SortManager::createSortDec | ( | const std::string & | name, |
| size_t | arity | ||
| ) |
Definition at line 174 of file sort.cpp.
References insertSortToBucket(), and stabilizer::parser::SK_DEC.
| std::shared_ptr< Sort > stabilizer::parser::SortManager::createSortDef | ( | const std::string & | name, |
| const std::vector< std::shared_ptr< Sort > > & | params, | ||
| std::shared_ptr< Sort > | out_sort | ||
| ) |
Definition at line 181 of file sort.cpp.
References insertSortToBucket(), and stabilizer::parser::SK_DEF.
| std::shared_ptr< Sort > stabilizer::parser::SortManager::createTupleSort | ( | const std::vector< std::shared_ptr< Sort > > & | fields | ) |
Definition at line 169 of file sort.cpp.
References insertSortToBucket(), and stabilizer::parser::SK_TUPLE.
|
inlinestatic |
Definition at line 356 of file sort.h.
References ALGEBRAIC_SORT.
| size_t stabilizer::parser::SortManager::getBitWidth | ( | const std::shared_ptr< Sort > & | sort | ) |
|
inlinestatic |
| size_t stabilizer::parser::SortManager::getExponentWidth | ( | const std::shared_ptr< Sort > & | sort | ) |
|
inlinestatic |
|
inlinestatic |
Definition at line 368 of file sort.h.
References FLOAT16_SORT.
|
inlinestatic |
Definition at line 367 of file sort.h.
References FLOAT32_SORT.
|
inlinestatic |
Definition at line 366 of file sort.h.
References FLOAT64_SORT.
| size_t stabilizer::parser::SortManager::getIndex | ( | const std::shared_ptr< Sort > & | sort | ) | const |
|
inlinestatic |
|
inlinestatic |
Definition at line 365 of file sort.h.
References INTOREAL_SORT.
|
inlinestatic |
|
inlinestatic |
Definition at line 351 of file sort.h.
References NULL_SORT.
Referenced by stabilizer::parser::Parser::parseExpr().
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 369 of file sort.h.
References ROUNDING_MODE_SORT.
| size_t stabilizer::parser::SortManager::getSignificandWidth | ( | const std::shared_ptr< Sort > & | sort | ) |
| std::shared_ptr< Sort > stabilizer::parser::SortManager::getSort | ( | const size_t | index | ) | const |
|
inlinestatic |
|
inlinestatic |
Definition at line 357 of file sort.h.
References TRANSCENDENTAL_SORT.
|
inlinestatic |
Definition at line 352 of file sort.h.
References UNKNOWN_SORT.
|
private |
Definition at line 40 of file sort.cpp.
References ALGEBRAIC_SORT, BOOL_SORT, EXT_SORT, FLOAT16_SORT, FLOAT32_SORT, FLOAT64_SORT, INT_SORT, INTOREAL_SORT, NAT_SORT, NULL_SORT, RAND_SORT, REAL_SORT, REG_SORT, ROUNDING_MODE_SORT, sort_buckets, sorts, STR_SORT, TRANSCENDENTAL_SORT, and UNKNOWN_SORT.
Referenced by SortManager().
|
private |
Definition at line 91 of file sort.cpp.
References sort_buckets, and sorts.
Referenced by createArraySort(), createBVSort(), createFPSort(), createSort(), createSort(), createSort(), createSort(), createSort(), createSort(), createSortDec(), createSortDef(), and createTupleSort().
| size_t stabilizer::parser::SortManager::size | ( | ) | const |
|
inlinestatic |
Definition at line 394 of file sort.h.
Referenced by getAlgebraic(), and initializeStaticSorts().
|
inlinestatic |
Definition at line 388 of file sort.h.
Referenced by stabilizer::parser::DAGNode::DAGNode(), getBool(), initializeStaticSorts(), stabilizer::parser::Parser::mkAnd(), stabilizer::parser::Parser::mkBoolSort(), stabilizer::parser::Parser::mkBvSge(), stabilizer::parser::Parser::mkBvSgt(), stabilizer::parser::Parser::mkBvSle(), stabilizer::parser::Parser::mkBvSlt(), stabilizer::parser::Parser::mkBvUge(), stabilizer::parser::Parser::mkBvUgt(), stabilizer::parser::Parser::mkBvUle(), stabilizer::parser::Parser::mkBvUlt(), stabilizer::parser::Parser::mkDistinct(), stabilizer::parser::Parser::mkEq(), stabilizer::parser::Parser::mkExists(), stabilizer::parser::Parser::mkForall(), stabilizer::parser::Parser::mkFpEq(), stabilizer::parser::Parser::mkFpGe(), stabilizer::parser::Parser::mkFpGt(), stabilizer::parser::Parser::mkFpIsInf(), stabilizer::parser::Parser::mkFpIsNaN(), stabilizer::parser::Parser::mkFpIsNeg(), stabilizer::parser::Parser::mkFpIsNormal(), stabilizer::parser::Parser::mkFpIsPos(), stabilizer::parser::Parser::mkFpIsSubnormal(), stabilizer::parser::Parser::mkFpIsZero(), stabilizer::parser::Parser::mkFpLe(), stabilizer::parser::Parser::mkFpLt(), stabilizer::parser::Parser::mkGe(), stabilizer::parser::Parser::mkGt(), stabilizer::parser::Parser::mkImplies(), stabilizer::parser::Parser::mkIsDivisible(), stabilizer::parser::Parser::mkIsEven(), stabilizer::parser::Parser::mkIsInt(), stabilizer::parser::Parser::mkIsOdd(), stabilizer::parser::Parser::mkIsPrime(), stabilizer::parser::Parser::mkLe(), stabilizer::parser::Parser::mkLt(), stabilizer::parser::Parser::mkNot(), stabilizer::parser::Parser::mkOr(), stabilizer::parser::Parser::mkStrContains(), stabilizer::parser::Parser::mkStrGe(), stabilizer::parser::Parser::mkStrGt(), stabilizer::parser::Parser::mkStrInReg(), stabilizer::parser::Parser::mkStrIsDigit(), stabilizer::parser::Parser::mkStrLe(), stabilizer::parser::Parser::mkStrLt(), stabilizer::parser::Parser::mkStrPrefixof(), stabilizer::parser::Parser::mkStrSuffixof(), stabilizer::parser::Parser::mkVarBool(), stabilizer::parser::Parser::mkXor(), stabilizer::parser::Parser::parseOper(), and stabilizer::parser::Parser::parseSort().
|
inlinestatic |
Definition at line 402 of file sort.h.
Referenced by stabilizer::parser::DAGNode::DAGNode(), getExt(), and initializeStaticSorts().
|
inlinestatic |
Definition at line 416 of file sort.h.
Referenced by getFloat16(), initializeStaticSorts(), and stabilizer::parser::Parser::parseSort().
|
inlinestatic |
Definition at line 413 of file sort.h.
Referenced by getFloat32(), initializeStaticSorts(), and stabilizer::parser::Parser::parseSort().
|
inlinestatic |
Definition at line 410 of file sort.h.
Referenced by getFloat64(), initializeStaticSorts(), and stabilizer::parser::Parser::parseSort().
|
inlinestatic |
Definition at line 390 of file sort.h.
Referenced by stabilizer::parser::DAGNode::DAGNode(), getInt(), stabilizer::parser::Parser::getSort(), initializeStaticSorts(), stabilizer::parser::Parser::mkAdd(), stabilizer::parser::Parser::mkBvToInt(), stabilizer::parser::Parser::mkBvToNat(), stabilizer::parser::Parser::mkDivInt(), stabilizer::parser::Parser::mkFact(), stabilizer::parser::Parser::mkFloor(), stabilizer::parser::Parser::mkGcd(), stabilizer::parser::Parser::mkIand(), stabilizer::parser::Parser::mkIndexofReg(), stabilizer::parser::Parser::mkInfinity(), stabilizer::parser::Parser::mkIntSort(), stabilizer::parser::Parser::mkLcm(), stabilizer::parser::Parser::mkMod(), stabilizer::parser::Parser::mkMul(), stabilizer::parser::Parser::mkNegInfinity(), stabilizer::parser::Parser::mkPosInfinity(), stabilizer::parser::Parser::mkRound(), stabilizer::parser::Parser::mkSbvToInt(), stabilizer::parser::Parser::mkStrIndexof(), stabilizer::parser::Parser::mkStrIndexofReg(), stabilizer::parser::Parser::mkStrLen(), stabilizer::parser::Parser::mkStrNumSplits(), stabilizer::parser::Parser::mkStrNumSplitsRe(), stabilizer::parser::Parser::mkStrSplit(), stabilizer::parser::Parser::mkStrToCode(), stabilizer::parser::Parser::mkStrToInt(), stabilizer::parser::Parser::mkSub(), stabilizer::parser::Parser::mkToInt(), stabilizer::parser::Parser::mkUbvToInt(), stabilizer::parser::Parser::mkVarInt(), stabilizer::parser::Parser::parseConstFunc(), and stabilizer::parser::Parser::parseSort().
|
inlinestatic |
Definition at line 408 of file sort.h.
Referenced by getIntOrReal(), initializeStaticSorts(), and stabilizer::parser::Parser::mkConstInt().
|
inlinestatic |
Definition at line 404 of file sort.h.
Referenced by getNat(), initializeStaticSorts(), and stabilizer::parser::Parser::mkNatSort().
|
inlinestatic |
Definition at line 384 of file sort.h.
Referenced by stabilizer::parser::DAGNode::DAGNode(), getNull(), initializeStaticSorts(), stabilizer::parser::Parser::parseOper(), and stabilizer::parser::Parser::parseSort().
|
inlinestatic |
Definition at line 406 of file sort.h.
Referenced by getRand(), and initializeStaticSorts().
|
inlinestatic |
Definition at line 392 of file sort.h.
Referenced by stabilizer::parser::DAGNode::DAGNode(), getReal(), stabilizer::parser::Parser::getSort(), initializeStaticSorts(), stabilizer::parser::Parser::mkAcos(), stabilizer::parser::Parser::mkAcosh(), stabilizer::parser::Parser::mkAcot(), stabilizer::parser::Parser::mkAcoth(), stabilizer::parser::Parser::mkAcsc(), stabilizer::parser::Parser::mkAcsch(), stabilizer::parser::Parser::mkAdd(), stabilizer::parser::Parser::mkAsec(), stabilizer::parser::Parser::mkAsech(), stabilizer::parser::Parser::mkAsin(), stabilizer::parser::Parser::mkAsinh(), stabilizer::parser::Parser::mkAtan(), stabilizer::parser::Parser::mkAtan2(), stabilizer::parser::Parser::mkAtanh(), stabilizer::parser::Parser::mkConstReal(), stabilizer::parser::Parser::mkConstReal(), stabilizer::parser::Parser::mkConstReal(), stabilizer::parser::Parser::mkConstReal(), stabilizer::parser::Parser::mkCos(), stabilizer::parser::Parser::mkCosh(), stabilizer::parser::Parser::mkCot(), stabilizer::parser::Parser::mkCoth(), stabilizer::parser::Parser::mkCsc(), stabilizer::parser::Parser::mkCsch(), stabilizer::parser::Parser::mkDivReal(), stabilizer::parser::Parser::mkExp(), stabilizer::parser::Parser::mkFpToReal(), stabilizer::parser::Parser::mkIand(), stabilizer::parser::Parser::mkInfinity(), stabilizer::parser::Parser::mkLb(), stabilizer::parser::Parser::mkLg(), stabilizer::parser::Parser::mkLn(), stabilizer::parser::Parser::mkLog(), stabilizer::parser::Parser::mkMul(), stabilizer::parser::Parser::mkNegInfinity(), stabilizer::parser::Parser::mkPlaceholderVar(), stabilizer::parser::Parser::mkPosInfinity(), stabilizer::parser::Parser::mkRealSort(), stabilizer::parser::Parser::mkRootObj(), stabilizer::parser::Parser::mkRootOfWithInterval(), stabilizer::parser::Parser::mkSec(), stabilizer::parser::Parser::mkSech(), stabilizer::parser::Parser::mkSin(), stabilizer::parser::Parser::mkSinh(), stabilizer::parser::Parser::mkSub(), stabilizer::parser::Parser::mkTan(), stabilizer::parser::Parser::mkTanh(), stabilizer::parser::Parser::mkToReal(), stabilizer::parser::Parser::mkVarReal(), stabilizer::parser::Parser::parseConstFunc(), stabilizer::parser::Parser::parseExpr(), and stabilizer::parser::Parser::parseSort().
|
inlinestatic |
Definition at line 400 of file sort.h.
Referenced by getReg(), initializeStaticSorts(), stabilizer::parser::Parser::mkConstReg(), stabilizer::parser::Parser::mkRegComplement(), stabilizer::parser::Parser::mkRegConcat(), stabilizer::parser::Parser::mkRegDiff(), stabilizer::parser::Parser::mkRegInter(), stabilizer::parser::Parser::mkRegLoop(), stabilizer::parser::Parser::mkRegOpt(), stabilizer::parser::Parser::mkRegPlus(), stabilizer::parser::Parser::mkRegRange(), stabilizer::parser::Parser::mkRegRepeat(), stabilizer::parser::Parser::mkRegSort(), stabilizer::parser::Parser::mkRegStar(), stabilizer::parser::Parser::mkRegUnion(), stabilizer::parser::Parser::mkStrToReg(), stabilizer::parser::Parser::mkVarReg(), and stabilizer::parser::Parser::parseSort().
|
inlinestatic |
Definition at line 419 of file sort.h.
Referenced by getRoundingMode(), initializeStaticSorts(), stabilizer::parser::Parser::mkRoundingMode(), stabilizer::parser::Parser::mkRoundingModeSort(), and stabilizer::parser::Parser::parseSort().
|
private |
Definition at line 317 of file sort.h.
Referenced by clear(), initializeStaticSorts(), and insertSortToBucket().
|
private |
Definition at line 314 of file sort.h.
Referenced by clear(), getIndex(), getSort(), initializeStaticSorts(), insertSortToBucket(), and size().
|
inlinestatic |
Definition at line 398 of file sort.h.
Referenced by stabilizer::parser::DAGNode::DAGNode(), getStr(), initializeStaticSorts(), stabilizer::parser::Parser::mkConstStr(), stabilizer::parser::Parser::mkInfinity(), stabilizer::parser::Parser::mkNegInfinity(), stabilizer::parser::Parser::mkPosInfinity(), stabilizer::parser::Parser::mkReplaceReg(), stabilizer::parser::Parser::mkReplaceRegAll(), stabilizer::parser::Parser::mkStrCharat(), stabilizer::parser::Parser::mkStrConcat(), stabilizer::parser::Parser::mkStrFromCode(), stabilizer::parser::Parser::mkStrFromInt(), stabilizer::parser::Parser::mkStrRev(), stabilizer::parser::Parser::mkStrSort(), stabilizer::parser::Parser::mkStrSplit(), stabilizer::parser::Parser::mkStrSplitAt(), stabilizer::parser::Parser::mkStrSplitAtRe(), stabilizer::parser::Parser::mkStrSplitRest(), stabilizer::parser::Parser::mkStrSplitRestRe(), stabilizer::parser::Parser::mkStrToLower(), stabilizer::parser::Parser::mkStrToUpper(), stabilizer::parser::Parser::mkVarStr(), and stabilizer::parser::Parser::parseSort().
|
inlinestatic |
Definition at line 396 of file sort.h.
Referenced by getTranscendental(), and initializeStaticSorts().
|
inlinestatic |
Definition at line 386 of file sort.h.
Referenced by getUnknown(), and initializeStaticSorts().