|
Public Member Functions |
|
|
bool | calculate (MathStructure *mstruct, string str, int msecs, const EvaluationOptions &eo=default_evaluation_options, MathStructure *parsed_struct=NULL, MathStructure *to_struct=NULL, bool make_to_division=true) |
MathStructure | calculate (string str, const EvaluationOptions &eo=default_evaluation_options, MathStructure *parsed_struct=NULL, MathStructure *to_struct=NULL, bool make_to_division=true) |
string | printMathStructureTimeOut (const MathStructure &mstruct, int msecs=100000, const PrintOptions &op=default_print_options) |
int | testCondition (string expression) |
|
void | abort () |
void | abort_this () |
bool | busy () |
void | saveState () |
void | restoreState () |
void | clearBuffers () |
void | terminateThreads () |
|
bool | calculateRPNRegister (size_t index, int msecs, const EvaluationOptions &eo=default_evaluation_options) |
bool | calculateRPN (MathOperation op, int msecs, const EvaluationOptions &eo=default_evaluation_options, MathStructure *parsed_struct=NULL) |
bool | calculateRPN (MathFunction *f, int msecs, const EvaluationOptions &eo=default_evaluation_options, MathStructure *parsed_struct=NULL) |
bool | calculateRPNBitwiseNot (int msecs, const EvaluationOptions &eo=default_evaluation_options, MathStructure *parsed_struct=NULL) |
bool | calculateRPNLogicalNot (int msecs, const EvaluationOptions &eo=default_evaluation_options, MathStructure *parsed_struct=NULL) |
MathStructure * | calculateRPN (MathOperation op, const EvaluationOptions &eo=default_evaluation_options, MathStructure *parsed_struct=NULL) |
MathStructure * | calculateRPN (MathFunction *f, const EvaluationOptions &eo=default_evaluation_options, MathStructure *parsed_struct=NULL) |
MathStructure * | calculateRPNBitwiseNot (const EvaluationOptions &eo=default_evaluation_options, MathStructure *parsed_struct=NULL) |
MathStructure * | calculateRPNLogicalNot (const EvaluationOptions &eo=default_evaluation_options, MathStructure *parsed_struct=NULL) |
bool | RPNStackEnter (MathStructure *mstruct, int msecs, const EvaluationOptions &eo=default_evaluation_options) |
bool | RPNStackEnter (string str, int msecs, const EvaluationOptions &eo=default_evaluation_options, MathStructure *parsed_struct=NULL, MathStructure *to_struct=NULL, bool make_to_division=true) |
void | RPNStackEnter (MathStructure *mstruct, bool eval=false, const EvaluationOptions &eo=default_evaluation_options) |
void | RPNStackEnter (string str, const EvaluationOptions &eo=default_evaluation_options, MathStructure *parsed_struct=NULL, MathStructure *to_struct=NULL, bool make_to_division=true) |
bool | setRPNRegister (size_t index, MathStructure *mstruct, int msecs, const EvaluationOptions &eo=default_evaluation_options) |
bool | setRPNRegister (size_t index, string str, int msecs, const EvaluationOptions &eo=default_evaluation_options, MathStructure *parsed_struct=NULL, MathStructure *to_struct=NULL, bool make_to_division=true) |
void | setRPNRegister (size_t index, MathStructure *mstruct, bool eval=false, const EvaluationOptions &eo=default_evaluation_options) |
void | setRPNRegister (size_t index, string str, const EvaluationOptions &eo=default_evaluation_options, MathStructure *parsed_struct=NULL, MathStructure *to_struct=NULL, bool make_to_division=true) |
void | deleteRPNRegister (size_t index) |
MathStructure * | getRPNRegister (size_t index=1) const |
size_t | RPNStackSize () const |
void | clearRPNStack () |
void | moveRPNRegister (size_t old_index, size_t new_index) |
void | moveRPNRegisterUp (size_t index) |
void | moveRPNRegisterDown (size_t index) |
|
string | localizeExpression (string str) const |
string | unlocalizeExpression (string str, const ParseOptions &po=default_parse_options) const |
bool | separateToExpression (string &str, string &to_str, const EvaluationOptions &eo) const |
void | parseSigns (string &str) const |
MathStructure | parse (string str, const ParseOptions &po=default_parse_options) |
void | parse (MathStructure *mstruct, string str, const ParseOptions &po=default_parse_options) |
bool | parseNumber (MathStructure *mstruct, string str, const ParseOptions &po=default_parse_options) |
bool | parseOperators (MathStructure *mstruct, string str, const ParseOptions &po=default_parse_options) |
bool | parseAdd (string &str, MathStructure *mstruct, const ParseOptions &po, MathOperation s) |
bool | parseAdd (string &str, MathStructure *mstruct, const ParseOptions &po) |
|
MathStructure | convert (const MathStructure &mstruct, string composite_, const EvaluationOptions &eo=default_evaluation_options) |
MathStructure | convert (const MathStructure &mstruct, Unit *to_unit, const EvaluationOptions &eo=default_evaluation_options, bool always_convert=true) |
MathStructure | convert (double value, Unit *from_unit, Unit *to_unit, const EvaluationOptions &eo=default_evaluation_options) |
MathStructure | convert (string str, Unit *from_unit, Unit *to_unit, const EvaluationOptions &eo=default_evaluation_options) |
MathStructure | convertToBaseUnits (const MathStructure &mstruct, const EvaluationOptions &eo=default_evaluation_options) |
Unit * | getBestUnit (Unit *u, bool allow_only_div=false) |
MathStructure | convertToBestUnit (const MathStructure &mstruct, const EvaluationOptions &eo=default_evaluation_options) |
MathStructure | convertToCompositeUnit (const MathStructure &mstruct, CompositeUnit *cu, const EvaluationOptions &eo=default_evaluation_options, bool always_convert=true) |
|
void | setDefaultAssumptions (Assumptions *ass) |
Assumptions * | defaultAssumptions () |
|
Unit * | getGraUnit () |
Unit * | getRadUnit () |
Unit * | getDegUnit () |
|
DecimalPrefix * | getExactDecimalPrefix (int exp10, int exp=1) const |
BinaryPrefix * | getExactBinaryPrefix (int exp2, int exp=1) const |
Prefix * | getExactPrefix (const Number &o, int exp=1) const |
DecimalPrefix * | getNearestDecimalPrefix (int exp10, int exp=1) const |
DecimalPrefix * | getBestDecimalPrefix (int exp10, int exp=1, bool all_prefixes=true) const |
DecimalPrefix * | getBestDecimalPrefix (const Number &exp10, const Number &exp, bool all_prefixes=true) const |
BinaryPrefix * | getNearestBinaryPrefix (int exp2, int exp=1) const |
BinaryPrefix * | getBestBinaryPrefix (int exp2, int exp=1) const |
BinaryPrefix * | getBestBinaryPrefix (const Number &exp2, const Number &exp) const |
Prefix * | addPrefix (Prefix *p) |
void | prefixNameChanged (Prefix *p, bool new_item=false) |
|
void | expressionItemActivated (ExpressionItem *item) |
void | expressionItemDeactivated (ExpressionItem *item) |
void | expressionItemDeleted (ExpressionItem *item) |
void | nameChanged (ExpressionItem *item, bool new_item=false) |
void | deleteName (string name_, ExpressionItem *object=NULL) |
void | deleteUnitName (string name_, Unit *object=NULL) |
Unit * | addUnit (Unit *u, bool force=true, bool check_names=true) |
void | delPrefixUFV (Prefix *object) |
void | delUFV (ExpressionItem *object) |
bool | hasVariable (Variable *v) |
bool | hasUnit (Unit *u) |
bool | hasFunction (MathFunction *f) |
bool | stillHasVariable (Variable *v) |
bool | stillHasUnit (Unit *u) |
bool | stillHasFunction (MathFunction *f) |
void | saveFunctionCalled () |
bool | checkSaveFunctionCalled () |
ExpressionItem * | getActiveExpressionItem (string name, ExpressionItem *item=NULL) |
ExpressionItem * | getInactiveExpressionItem (string name, ExpressionItem *item=NULL) |
ExpressionItem * | getActiveExpressionItem (ExpressionItem *item) |
ExpressionItem * | getExpressionItem (string name, ExpressionItem *item=NULL) |
Unit * | getUnit (string name_) |
Unit * | getActiveUnit (string name_) |
Unit * | getCompositeUnit (string internal_name_) |
Prefix * | getPrefix (size_t index) const |
Prefix * | getPrefix (string name_) const |
Variable * | addVariable (Variable *v, bool force=true, bool check_names=true) |
void | variableNameChanged (Variable *v, bool new_item=false) |
void | functionNameChanged (MathFunction *f, bool new_item=false) |
void | unitNameChanged (Unit *u, bool new_item=false) |
Variable * | getVariable (string name_) |
Variable * | getActiveVariable (string name_) |
ExpressionItem * | addExpressionItem (ExpressionItem *item, bool force=true) |
MathFunction * | addFunction (MathFunction *f, bool force=true, bool check_names=true) |
DataSet * | addDataSet (DataSet *dc, bool force=true, bool check_names=true) |
DataSet * | getDataSet (size_t index) |
DataSet * | getDataSet (string name) |
MathFunction * | getFunction (string name_) |
MathFunction * | getActiveFunction (string name_) |
Variable * | getVariable (size_t index) const |
Unit * | getUnit (size_t index) const |
MathFunction * | getFunction (size_t index) const |
bool | unitIsUsedByOtherUnits (const Unit *u) const |
|
void | resetVariables () |
void | resetFunctions () |
void | resetUnits () |
void | reset () |
void | addBuiltinVariables () |
void | addBuiltinFunctions () |
void | addBuiltinUnits () |
|
bool | variableNameIsValid (const string &name_) |
bool | variableNameIsValid (const char *name_) |
bool | variableNameIsValid (const char *name_, int version_numbers[3], bool is_user_defs) |
bool | variableNameIsValid (const string &name_, int version_numbers[3], bool is_user_defs) |
string | convertToValidVariableName (string name_) |
bool | functionNameIsValid (const string &name_) |
bool | functionNameIsValid (const char *name_) |
bool | functionNameIsValid (const char *name_, int version_numbers[3], bool is_user_defs) |
bool | functionNameIsValid (const string &name_, int version_numbers[3], bool is_user_defs) |
string | convertToValidFunctionName (string name_) |
bool | unitNameIsValid (const string &name_) |
bool | unitNameIsValid (const char *name_) |
bool | unitNameIsValid (const char *name_, int version_numbers[3], bool is_user_defs) |
bool | unitNameIsValid (const string &name_, int version_numbers[3], bool is_user_defs) |
bool | utf8_pos_is_valid_in_name (char *pos) |
string | convertToValidUnitName (string name_) |
bool | nameTaken (string name, ExpressionItem *object=NULL) |
bool | variableNameTaken (string name, Variable *object=NULL) |
bool | unitNameTaken (string name, Unit *object=NULL) |
bool | functionNameTaken (string name, MathFunction *object=NULL) |
string | getName (string name="", ExpressionItem *object=NULL, bool force=false, bool always_append=false) |
|
void | error (bool critical, const char *TEMPLATE,...) |
void | message (MessageType mtype, const char *TEMPLATE,...) |
CalculatorMessage * | message () |
CalculatorMessage * | nextMessage () |
bool | showArgumentErrors () const |
void | beginTemporaryStopMessages () |
int | endTemporaryStopMessages (int *message_count=NULL, int *warning_count=NULL) |
|
bool | loadGlobalDefinitions () |
bool | loadGlobalDefinitions (string filename) |
bool | loadGlobalPrefixes () |
bool | loadGlobalCurrencies () |
bool | loadGlobalUnits () |
bool | loadGlobalVariables () |
bool | loadGlobalFunctions () |
bool | loadGlobalDataSets () |
bool | loadLocalDefinitions () |
int | loadDefinitions (const char *file_name, bool is_user_defs=true) |
bool | saveDefinitions () |
int | saveDataObjects () |
int | savePrefixes (const char *file_name, bool save_global=false) |
int | saveVariables (const char *file_name, bool save_global=false) |
int | saveUnits (const char *file_name, bool save_global=false) |
int | saveFunctions (const char *file_name, bool save_global=false) |
int | saveDataSets (const char *file_name, bool save_global=false) |
|
bool | importCSV (MathStructure &mstruct, const char *file_name, int first_row=1, string delimiter=",", vector< string > *headers=NULL) |
bool | importCSV (const char *file_name, int first_row=1, bool headers=true, string delimiter=",", bool to_matrix=false, string name="", string title="", string category="") |
bool | exportCSV (const MathStructure &mstruct, const char *file_name, string delimiter=",") |
|
bool | canFetch () |
bool | hasGnomeVFS () |
bool | loadExchangeRates () |
string | getExchangeRatesFileName () |
string | getExchangeRatesUrl () |
bool | fetchExchangeRates (int timeout, string wget_args) |
bool | fetchExchangeRates (int timeout=15) |
bool | checkExchangeRatesDate () |
|
bool | canPlot () |
MathStructure | expressionToPlotVector (string expression, const MathStructure &min, const MathStructure &max, int steps, MathStructure *x_vector=NULL, string x_var="\\x", const ParseOptions &po=default_parse_options) |
MathStructure | expressionToPlotVector (string expression, float min, float max, int steps, MathStructure *x_vector=NULL, string x_var="\\x", const ParseOptions &po=default_parse_options) |
MathStructure | expressionToPlotVector (string expression, const MathStructure &min, const MathStructure &max, const MathStructure &step, MathStructure *x_vector=NULL, string x_var="\\x", const ParseOptions &po=default_parse_options) |
MathStructure | expressionToPlotVector (string expression, float min, float max, float step, MathStructure *x_vector=NULL, string x_var="\\x", const ParseOptions &po=default_parse_options) |
MathStructure | expressionToPlotVector (string expression, const MathStructure &x_vector, string x_var="\\x", const ParseOptions &po=default_parse_options) |
bool | plotVectors (PlotParameters *param, const vector< MathStructure > &y_vectors, const vector< MathStructure > &x_vectors, vector< PlotDataParameters * > &pdps, bool persistent=false) |
bool | invokeGnuplot (string commands, string commandline_extra="", bool persistent=false) |
bool | closeGnuplot () |
bool | gnuplotOpen () |
|
void | setPrecision (int precision=DEFAULT_PRECISION) |
int | getPrecision () const |
|
const string & | getDecimalPoint () const |
const string & | getComma () const |
void | setLocale () |
void | useDecimalComma () |
void | useDecimalPoint () |
void | unsetLocale () |
string | localToString () const |
|
void | addStringAlternative (string replacement, string standard) |
bool | delStringAlternative (string replacement, string standard) |
void | addDefaultStringAlternative (string replacement, string standard) |
bool | delDefaultStringAlternative (string replacement, string standard) |
|
size_t | addId (MathStructure *mstruct, bool persistent=false) |
size_t | parseAddId (MathFunction *f, const string &str, const ParseOptions &po, bool persistent=false) |
size_t | parseAddIdAppend (MathFunction *f, const MathStructure &append_mstruct, const string &str, const ParseOptions &po, bool persistent=false) |
size_t | parseAddVectorId (const string &str, const ParseOptions &po, bool persistent=false) |
MathStructure * | getId (size_t id) |
void | delId (size_t id) |
Public Attributes |
KnownVariable * | v_pi |
KnownVariable * | v_e |
KnownVariable * | v_i |
KnownVariable * | v_inf |
KnownVariable * | v_pinf |
KnownVariable * | v_minf |
KnownVariable * | v_undef |
UnknownVariable * | v_x |
UnknownVariable * | v_y |
UnknownVariable * | v_z |
MathFunction * | f_vector |
MathFunction * | f_sort |
MathFunction * | f_rank |
MathFunction * | f_limits |
MathFunction * | f_component |
MathFunction * | f_dimension |
MathFunction * | f_merge_vectors |
MathFunction * | f_matrix |
MathFunction * | f_matrix_to_vector |
MathFunction * | f_area |
MathFunction * | f_rows |
MathFunction * | f_columns |
MathFunction * | f_row |
MathFunction * | f_column |
MathFunction * | f_elements |
MathFunction * | f_element |
MathFunction * | f_transpose |
MathFunction * | f_identity |
MathFunction * | f_determinant |
MathFunction * | f_permanent |
MathFunction * | f_adjoint |
MathFunction * | f_cofactor |
MathFunction * | f_inverse |
MathFunction * | f_factorial |
MathFunction * | f_factorial2 |
MathFunction * | f_multifactorial |
MathFunction * | f_binomial |
MathFunction * | f_xor |
MathFunction * | f_bitxor |
MathFunction * | f_even |
MathFunction * | f_odd |
MathFunction * | f_shift |
MathFunction * | f_abs |
MathFunction * | f_gcd |
MathFunction * | f_lcm |
MathFunction * | f_signum |
MathFunction * | f_round |
MathFunction * | f_floor |
MathFunction * | f_ceil |
MathFunction * | f_trunc |
MathFunction * | f_int |
MathFunction * | f_frac |
MathFunction * | f_rem |
MathFunction * | f_mod |
MathFunction * | f_polynomial_unit |
MathFunction * | f_polynomial_primpart |
MathFunction * | f_polynomial_content |
MathFunction * | f_coeff |
MathFunction * | f_lcoeff |
MathFunction * | f_tcoeff |
MathFunction * | f_degree |
MathFunction * | f_ldegree |
MathFunction * | f_re |
MathFunction * | f_im |
MathFunction * | f_arg |
MathFunction * | f_numerator |
MathFunction * | f_denominator |
MathFunction * | f_sqrt |
MathFunction * | f_sq |
MathFunction * | f_exp |
MathFunction * | f_ln |
MathFunction * | f_logn |
MathFunction * | f_sin |
MathFunction * | f_cos |
MathFunction * | f_tan |
MathFunction * | f_asin |
MathFunction * | f_acos |
MathFunction * | f_atan |
MathFunction * | f_sinh |
MathFunction * | f_cosh |
MathFunction * | f_tanh |
MathFunction * | f_asinh |
MathFunction * | f_acosh |
MathFunction * | f_atanh |
MathFunction * | f_radians_to_default_angle_unit |
MathFunction * | f_zeta |
MathFunction * | f_gamma |
MathFunction * | f_beta |
MathFunction * | f_total |
MathFunction * | f_percentile |
MathFunction * | f_min |
MathFunction * | f_max |
MathFunction * | f_mode |
MathFunction * | f_rand |
MathFunction * | f_isodate |
MathFunction * | f_localdate |
MathFunction * | f_timestamp |
MathFunction * | f_stamptodate |
MathFunction * | f_days |
MathFunction * | f_yearfrac |
MathFunction * | f_week |
MathFunction * | f_weekday |
MathFunction * | f_month |
MathFunction * | f_day |
MathFunction * | f_year |
MathFunction * | f_yearday |
MathFunction * | f_time |
MathFunction * | f_bin |
MathFunction * | f_oct |
MathFunction * | f_hex |
MathFunction * | f_base |
MathFunction * | f_roman |
MathFunction * | f_ascii |
MathFunction * | f_char |
MathFunction * | f_length |
MathFunction * | f_concatenate |
MathFunction * | f_replace |
MathFunction * | f_stripunits |
MathFunction * | f_genvector |
MathFunction * | f_for |
MathFunction * | f_sum |
MathFunction * | f_product |
MathFunction * | f_process |
MathFunction * | f_process_matrix |
MathFunction * | f_csum |
MathFunction * | f_if |
MathFunction * | f_function |
MathFunction * | f_select |
MathFunction * | f_diff |
MathFunction * | f_integrate |
MathFunction * | f_solve |
MathFunction * | f_multisolve |
MathFunction * | f_error |
MathFunction * | f_warning |
MathFunction * | f_message |
MathFunction * | f_save |
MathFunction * | f_load |
MathFunction * | f_export |
MathFunction * | f_title |
MathFunction * | f_register |
MathFunction * | f_stack |
Unit * | u_rad |
Unit * | u_gra |
Unit * | u_deg |
Unit * | u_euro |
DecimalPrefix * | decimal_null_prefix |
BinaryPrefix * | binary_null_prefix |
bool | place_currency_code_before |
bool | place_currency_sign_before |
bool | place_currency_code_before_negative |
bool | place_currency_sign_before_negative |
bool | default_dot_as_separator |
bool | b_busy |
bool | calculate_thread_stopped |
bool | print_thread_stopped |
string | expression_to_calculate |
string | tmp_print_result |
PrintOptions | tmp_printoptions |
EvaluationOptions | tmp_evaluationoptions |
MathStructure * | tmp_parsedstruct |
MathStructure * | tmp_tostruct |
MathStructure * | tmp_rpn_mstruct |
bool | tmp_maketodivision |
int | tmp_proc_command |
size_t | tmp_rpnindex |
PrintOptions | save_printoptions |
vector< Variable * > | variables |
vector< MathFunction * > | functions |
vector< Unit * > | units |
vector< Prefix * > | prefixes |
vector< DecimalPrefix * > | decimal_prefixes |
vector< BinaryPrefix * > | binary_prefixes |
Protected Member Functions |
bool | calculateRPN (MathStructure *mstruct, int command, size_t index, int msecs, const EvaluationOptions &eo) |
bool | calculateRPN (string str, int command, size_t index, int msecs, const EvaluationOptions &eo, MathStructure *parsed_struct, MathStructure *to_struct, bool make_to_division) |
Protected Attributes |
vector< CalculatorMessage > | messages |
int | ianglemode |
int | i_precision |
char | vbuffer [200] |
vector< void * > | ufvl |
vector< char > | ufvl_t |
vector< size_t > | ufvl_i |
vector< void * > | ufv [4][UFV_LENGTHS] |
vector< size_t > | ufv_i [4][UFV_LENGTHS] |
vector< DataSet * > | data_sets |
Sgi::hash_map< size_t, MathStructure * > | id_structs |
Sgi::hash_map< size_t, bool > | ids_p |
vector< size_t > | freed_ids |
size_t | ids_i |
vector< string > | signs |
vector< string > | real_signs |
vector< string > | default_signs |
vector< string > | default_real_signs |
char * | saved_locale |
int | disable_errors_ref |
vector< int > | stopped_errors_count |
vector< int > | stopped_warnings_count |
vector< int > | stopped_messages_count |
pthread_t | calculate_thread |
pthread_attr_t | calculate_thread_attr |
pthread_t | print_thread |
pthread_attr_t | print_thread_attr |
bool | b_functions_was |
bool | b_variables_was |
bool | b_units_was |
bool | b_unknown_was |
bool | b_calcvars_was |
bool | b_rpn_was |
string | NAME_NUMBER_PRE_S |
string | NAME_NUMBER_PRE_STR |
string | DOT_STR |
string | DOT_S |
string | COMMA_S |
string | COMMA_STR |
string | ILLEGAL_IN_NAMES |
string | ILLEGAL_IN_UNITNAMES |
string | ILLEGAL_IN_NAMES_MINUS_SPACE_STR |
bool | b_argument_errors |
bool | exchange_rates_warning_issued |
int | has_gnomevfs |
bool | b_gnuplot_open |
string | gnuplot_cmdline |
FILE * | gnuplot_pipe |
FILE * | calculate_pipe_r |
FILE * | calculate_pipe_w |
FILE * | print_pipe_r |
FILE * | print_pipe_w |
bool | local_to |
Assumptions * | default_assumptions |
vector< Variable * > | deleted_variables |
vector< MathFunction * > | deleted_functions |
vector< Unit * > | deleted_units |
bool | b_save_called |
string | per_str |
string | times_str |
string | plus_str |
string | minus_str |
string | and_str |
string | AND_str |
string | or_str |
string | OR_str |
string | XOR_str |
size_t | per_str_len |
size_t | times_str_len |
size_t | plus_str_len |
size_t | minus_str_len |
size_t | and_str_len |
size_t | AND_str_len |
size_t | or_str_len |
size_t | OR_str_len |
size_t | XOR_str_len |
vector< MathStructure * > | rpn_stack |
The calculator class is responsible for loading functions, variables and units, and keeping track of them, as well as parsing expressions and much more. A calculator object must be created before any other Qalculate! class is used. There should never be more than one calculator object, accessed with CALCULATOR.
A simple application using libqalculate need only create a calculator object, perhaps load definitions (functions, variables, units, etc.) and use the calculate function as follows: