libqalculate-5.4.0
Calculator.h File Reference
#include <libqalculate/includes.h>
#include <libqalculate/util.h>
#include <sys/time.h>
#include <libqalculate/MathStructure.h>

Classes

struct  PlotParameters
 Parameters passed to plotting functions. More...
 
struct  PlotDataParameters
 Parameters for plot data series. More...
 
class  CalculatorMessage
 A message with information to the user. Primarily used for errors and warnings. More...
 
struct  Element
 
class  Calculator
 The almighty calculator class. More...
 

Macros

#define MESSAGE_STAGE_CONVERSION   -4
 Message stages.
 
#define MESSAGE_STAGE_CONVERSION_PARSING   -3
 
#define MESSAGE_STAGE_CALCULATION   -2
 
#define MESSAGE_STAGE_PARSING   -1
 
#define MESSAGE_STAGE_UNSET   0
 
#define MESSAGE_CATEGORY_NONE   0
 Message categories.
 
#define MESSAGE_CATEGORY_PARSING   1
 
#define MESSAGE_CATEGORY_WIDE_INTERVAL   10
 
#define MESSAGE_CATEGORY_IMPLICIT_MULTIPLICATION   11
 
#define MESSAGE_CATEGORY_NO_PROPER_INTERVAL_SUPPORT   12
 
#define UFV_LENGTHS   20
 

Typedefs

typedef std::vector< Prefix * > p_type
 

Enumerations

enum  MessageType { MESSAGE_INFORMATION , MESSAGE_WARNING , MESSAGE_ERROR }
 Message types.
 
enum  AutomaticFractionFormat { AUTOMATIC_FRACTION_OFF , AUTOMATIC_FRACTION_SINGLE , AUTOMATIC_FRACTION_AUTO , AUTOMATIC_FRACTION_DUAL }
 
enum  AutomaticApproximation { AUTOMATIC_APPROXIMATION_OFF , AUTOMATIC_APPROXIMATION_SINGLE , AUTOMATIC_APPROXIMATION_AUTO , AUTOMATIC_APPROXIMATION_DUAL }
 
enum  {
  VARIABLE_ID_I = 200 , VARIABLE_ID_PLUS_INFINITY = 201 , VARIABLE_ID_MINUS_INFINITY = 202 , VARIABLE_ID_UNDEFINED = 203 ,
  VARIABLE_ID_X = 300 , VARIABLE_ID_Y = 301 , VARIABLE_ID_Z = 302 , VARIABLE_ID_N = 303 ,
  VARIABLE_ID_C = 304 , VARIABLE_ID_PERCENT = 350 , VARIABLE_ID_PERMILLE = 351 , VARIABLE_ID_PERMYRIAD = 352
}
 
enum  {
  UNIT_ID_EURO = 510 , UNIT_ID_BYN = 515 , UNIT_ID_BTC = 520 , UNIT_ID_SECOND = 550 ,
  UNIT_ID_MINUTE = 551 , UNIT_ID_HOUR = 552 , UNIT_ID_DAY = 553 , UNIT_ID_MONTH = 554 ,
  UNIT_ID_YEAR = 555 , UNIT_ID_KELVIN = 560 , UNIT_ID_RANKINE = 561 , UNIT_ID_CELSIUS = 562 ,
  UNIT_ID_FAHRENHEIT = 563
}
 
enum  {
  ELEMENT_CLASS_NOT_DEFINED , ALKALI_METALS , ALKALI_EARTH_METALS , LANTHANIDES ,
  ACTINIDES , TRANSITION_METALS , METALS , METALLOIDS ,
  NONMETALS , HALOGENS , NOBLE_GASES , TRANSACTINIDES
}
 
enum  TemperatureCalculationMode { TEMPERATURE_CALCULATION_HYBRID , TEMPERATURE_CALCULATION_ABSOLUTE , TEMPERATURE_CALCULATION_RELATIVE }
 

Functions

void print_dual (const MathStructure &mresult, const std::string &original_expression, const MathStructure &mparse, MathStructure &mexact, std::string &result_str, std::vector< std::string > &results_v, PrintOptions &po, const EvaluationOptions &evalops, AutomaticFractionFormat auto_frac, AutomaticApproximation auto_approx, bool cplx_angle=false, bool *exact_cmp=NULL, bool b_parsed=true, bool format=false, int colorize=0, int tagtype=TAG_TYPE_HTML, int max_length=-1, bool converted=false)
 
void calculate_dual_exact (MathStructure &mstruct_exact, MathStructure *mstruct, const std::string &original_expression, const MathStructure *parsed_mstruct, EvaluationOptions &evalops, AutomaticApproximation auto_approx, int msecs=0, int max_size=10)
 
bool transform_expression_for_equals_save (std::string &, const ParseOptions &)
 
MathStructure get_units_for_parsed_expression (const MathStructure *parsed_struct, Unit *to_unit, const EvaluationOptions &eo, const MathStructure *mstruct=NULL)
 
bool expression_contains_save_function (const std::string &, const ParseOptions &, bool=false)
 
void convert_unchanged_quantity_with_unit (const MathStructure &mp, MathStructure &mr, EvaluationOptions &eo)