Classes | |
struct | CloneTag |
struct | VarTag |
Public Types | |
enum | TriTruthValue { IsAlways, IsNever, Unknown } |
Public Member Functions | |
CodeTree (double v) | |
CodeTree (unsigned varno, VarTag) | |
CodeTree (const CodeTree &b, CloneTag) | |
void | GenerateFrom (const std::vector< unsigned > &byteCode, const std::vector< double > &immed, const FunctionParser::Data &data, bool keep_powi=false) |
void | GenerateFrom (const std::vector< unsigned > &byteCode, const std::vector< double > &immed, const FunctionParser::Data &data, const std::vector< CodeTree > &var_trees, bool keep_powi=false) |
void | SynthesizeByteCode (std::vector< unsigned > &byteCode, std::vector< double > &immed, size_t &stacktop_max) |
void | SynthesizeByteCode (FPoptimizer_ByteCode::ByteCodeSynth &synth, bool MustPopTemps=true) const |
size_t | SynthCommonSubExpressions (FPoptimizer_ByteCode::ByteCodeSynth &synth) const |
void | SetParams (const std::vector< CodeTree > &RefParams) |
void | SetParamsMove (std::vector< CodeTree > &RefParams) |
CodeTree | GetUniqueRef () |
void | SetParam (size_t which, const CodeTree &b) |
void | SetParamMove (size_t which, CodeTree &b) |
void | AddParam (const CodeTree ¶m) |
void | AddParamMove (CodeTree ¶m) |
void | AddParams (const std::vector< CodeTree > &RefParams) |
void | AddParamsMove (std::vector< CodeTree > &RefParams) |
void | AddParamsMove (std::vector< CodeTree > &RefParams, size_t replacing_slot) |
void | DelParam (size_t index) |
void | DelParams () |
void | Become (const CodeTree &b) |
size_t | GetParamCount () const |
CodeTree & | GetParam (size_t n) |
const CodeTree & | GetParam (size_t n) const |
void | SetOpcode (FUNCTIONPARSERTYPES::OPCODE o) |
void | SetFuncOpcode (FUNCTIONPARSERTYPES::OPCODE o, unsigned f) |
void | SetVar (unsigned v) |
void | SetImmed (double v) |
FUNCTIONPARSERTYPES::OPCODE | GetOpcode () const |
FUNCTIONPARSERTYPES::fphash_t | GetHash () const |
const std::vector< CodeTree > & | GetParams () const |
std::vector< CodeTree > & | GetParams () |
size_t | GetDepth () const |
const double & | GetImmed () const |
unsigned | GetVar () const |
unsigned | GetFuncNo () const |
bool | IsDefined () const |
bool | IsImmed () const |
bool | IsVar () const |
bool | IsLongIntegerImmed () const |
long | GetLongIntegerImmed () const |
bool | IsLogicalValue () const |
unsigned | GetRefCount () const |
MinMaxTree | CalculateResultBoundaries_do () const |
MinMaxTree | CalculateResultBoundaries () const |
TriTruthValue | GetEvennessInfo () const |
bool | IsAlwaysSigned (bool positive) const |
bool | IsAlwaysParity (bool odd) const |
bool | IsAlwaysInteger (bool integer) const |
void | ConstantFolding () |
bool | ConstantFolding_AndLogic () |
bool | ConstantFolding_OrLogic () |
bool | ConstantFolding_MulLogicItems () |
bool | ConstantFolding_AddLogicItems () |
bool | ConstantFolding_IfOperations () |
bool | ConstantFolding_PowOperations () |
bool | ConstantFolding_ComparisonOperations () |
template<typename CondType > | |
bool | ConstantFolding_LogicCommon (CondType cond_type, bool is_logical) |
bool | ConstantFolding_MulGrouping () |
bool | ConstantFolding_AddGrouping () |
bool | ConstantFolding_Assimilate () |
void | Rehash (bool constantfolding=true) |
void | Mark_Incompletely_Hashed () |
bool | Is_Incompletely_Hashed () const |
const FPoptimizer_Grammar::Grammar * | GetOptimizedUsing () const |
void | SetOptimizedUsing (const FPoptimizer_Grammar::Grammar *g) |
bool | RecreateInversionsAndNegations (bool prefer_base2=false) |
void | FixIncompleteHashes () |
void | swap (CodeTree &b) |
bool | IsIdenticalTo (const CodeTree &b) const |
void | CopyOnWrite () |