libqalculate-4.9.0
|
#include <vector>
#include <string>
#include <stack>
#include <list>
#include <errno.h>
#include <stddef.h>
#include <math.h>
#include <float.h>
#include <stdarg.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <unistd.h>
#include <stdint.h>
Classes | |
struct | SortOptions |
Options for ordering the parts of a mathematical expression/result before display. More... | |
struct | PrintOptions |
Options for formatting and display of mathematical structures/results. More... | |
struct | InternalPrintStruct |
struct | ParseOptions |
Options for parsing expressions. More... | |
struct | EvaluationOptions |
Options for calculation. More... | |
Macros | |
#define | QALCULATE_MAJOR_VERSION (4) |
#define | QALCULATE_MINOR_VERSION (9) |
#define | QALCULATE_MICRO_VERSION (0) |
#define | COMPARISON_MIGHT_BE_LESS_OR_GREATER(i) (i >= COMPARISON_RESULT_UNKNOWN || i == COMPARISON_RESULT_NOT_EQUAL) |
#define | COMPARISON_NOT_FULLY_KNOWN(i) (i >= COMPARISON_RESULT_UNKNOWN || i == COMPARISON_RESULT_NOT_EQUAL || i == COMPARISON_RESULT_EQUAL_OR_LESS || i == COMPARISON_RESULT_EQUAL_OR_GREATER) |
#define | COMPARISON_IS_EQUAL_OR_GREATER(i) (i == COMPARISON_RESULT_EQUAL || i == COMPARISON_RESULT_GREATER || i == COMPARISON_RESULT_EQUAL_OR_GREATER) |
#define | COMPARISON_IS_EQUAL_OR_LESS(i) (i == COMPARISON_RESULT_EQUAL || i == COMPARISON_RESULT_LESS || i == COMPARISON_RESULT_EQUAL_OR_LESS) |
#define | COMPARISON_IS_NOT_EQUAL(i) (i == COMPARISON_RESULT_NOT_EQUAL || i == COMPARISON_RESULT_LESS || i == COMPARISON_RESULT_GREATER) |
#define | COMPARISON_MIGHT_BE_EQUAL(i) (i >= COMPARISON_RESULT_UNKNOWN || i == COMPARISON_RESULT_EQUAL_OR_LESS || i == COMPARISON_RESULT_EQUAL_OR_GREATER || i == COMPARISON_RESULT_EQUAL) |
#define | COMPARISON_MIGHT_BE_NOT_EQUAL(i) (i >= COMPARISON_RESULT_UNKNOWN || i == COMPARISON_RESULT_EQUAL_OR_LESS || i == COMPARISON_RESULT_EQUAL_OR_GREATER || i == COMPARISON_RESULT_NOT_EQUAL) |
#define | NR_OF_PRIMES 600 |
#define | SQP_LT_1000 11 |
#define | SQP_LT_2000 17 |
#define | SQP_LT_10000 28 |
#define | SQP_LT_25000 40 |
#define | SQP_LT_100000 68 |
#define | NR_OF_SQUARE_PRIMES 170 |
#define | LARGEST_RAISED_PRIME_EXPONENT 10 |
#define | BASE_ROMAN_NUMERALS -1 |
Special values for PrintOptions::base and ParseOptions::base. | |
#define | BASE_TIME -2 |
#define | BASE_BINARY 2 |
#define | BASE_OCTAL 8 |
#define | BASE_DECIMAL 10 |
#define | BASE_DUODECIMAL 12 |
#define | BASE_HEXADECIMAL 16 |
#define | BASE_SEXAGESIMAL 60 |
#define | BASE_SEXAGESIMAL_2 62 |
#define | BASE_SEXAGESIMAL_3 63 |
#define | BASE_LATITUDE 70 |
#define | BASE_LATITUDE_2 71 |
#define | BASE_LONGITUDE 72 |
#define | BASE_LONGITUDE_2 73 |
#define | BASE_CUSTOM -3 |
Use Calculate::setCustomOutputBase() or Calculate::setCustomInputBase() to specify a number base which greater than 36, negative, or a non-integer. | |
#define | BASE_UNICODE -4 |
#define | BASE_GOLDEN_RATIO -5 |
#define | BASE_SUPER_GOLDEN_RATIO -6 |
#define | BASE_PI -7 |
#define | BASE_E -8 |
#define | BASE_SQRT2 -9 |
#define | BASE_BINARY_DECIMAL -20 |
#define | BASE_BIJECTIVE_26 -26 |
#define | BASE_FP16 -30 |
#define | BASE_FP32 -31 |
#define | BASE_FP64 -32 |
#define | BASE_FP128 -33 |
#define | BASE_FP80 -34 |
#define | BASE_IS_SEXAGESIMAL(x) ((x >= BASE_SEXAGESIMAL && x <= BASE_SEXAGESIMAL_3) || (x >= BASE_LATITUDE && x <= BASE_LONGITUDE_2)) |
#define | EXP_BASE_3 -3 |
Primary values for PrintOptions::min_exp. | |
#define | EXP_PRECISION -1 |
#define | EXP_NONE 0 |
#define | EXP_PURE 1 |
#define | EXP_SCIENTIFIC 3 |
#define | TZ_TRUNCATE -21586 |
#define | TZ_DOZENAL -53172 |
#define | STRUCTURING_SIMPLIFY STRUCTURING_EXPAND |
#define | POST_CONVERSION_BEST POST_CONVERSION_OPTIMAL_SI |
#define | PARSE_PERCENT_AS_ORDINARY_CONSTANT 0x10 |
#define | CALCULATOR calculator |
#define | DEFAULT_PRECISION 8 |
#define | PRECISION (CALCULATOR ? CALCULATOR->getPrecision() : DEFAULT_PRECISION) |
#define | SIGN_DEGREE "°" |
#define | SIGN_POWER_0 "⁰" |
#define | SIGN_POWER_1 "¹" |
#define | SIGN_POWER_2 "²" |
#define | SIGN_POWER_3 "³" |
#define | SIGN_POWER_4 "⁴" |
#define | SIGN_POWER_5 "⁵" |
#define | SIGN_POWER_6 "⁶" |
#define | SIGN_POWER_7 "⁷" |
#define | SIGN_POWER_8 "⁸" |
#define | SIGN_POWER_9 "⁹" |
#define | SIGN_EURO "€" |
#define | SIGN_POUND "£" |
#define | SIGN_CENT "¢" |
#define | SIGN_YEN "¥" |
#define | SIGN_MICRO "µ" |
#define | SIGN_PI "π" |
#define | SIGN_MULTIPLICATION "×" |
#define | SIGN_MULTIDOT "⋅" |
#define | SIGN_MIDDLEDOT "·" |
#define | SIGN_MULTIBULLET "∙" |
#define | SIGN_SMALLCIRCLE "•" |
#define | SIGN_DIVISION_SLASH "∕" |
#define | SIGN_DIVISION "÷" |
#define | SIGN_MINUS "−" |
#define | SIGN_PLUS "+" |
#define | SIGN_SQRT "√" |
#define | SIGN_ALMOST_EQUAL "≈" |
#define | SIGN_APPROXIMATELY_EQUAL "≅" |
#define | SIGN_ZETA "ζ" |
#define | SIGN_GAMMA "γ" |
#define | SIGN_PHI "φ" |
#define | SIGN_LESS_OR_EQUAL "≤" |
#define | SIGN_GREATER_OR_EQUAL "≥" |
#define | SIGN_NOT_EQUAL "≠" |
#define | SIGN_CAPITAL_SIGMA "Σ" |
#define | SIGN_CAPITAL_PI "Π" |
#define | SIGN_CAPITAL_OMEGA "Ω" |
#define | SIGN_CAPITAL_GAMMA "Γ" |
#define | SIGN_CAPITAL_BETA "Β" |
#define | SIGN_INFINITY "∞" |
#define | SIGN_PLUSMINUS "±" |
#define | THIN_SPACE " " |
#define | NNBSP " " |
#define | NBSP " " |
#define | ID_WRAP_LEFT_CH '{' |
#define | ID_WRAP_RIGHT_CH '}' |
#define | DOT_CH '.' |
#define | ZERO_CH '0' |
#define | ONE_CH '1' |
#define | TWO_CH '2' |
#define | THREE_CH '3' |
#define | FOUR_CH '4' |
#define | FIVE_CH '5' |
#define | SIX_CH '6' |
#define | SEVEN_CH '7' |
#define | EIGHT_CH '8' |
#define | NINE_CH '9' |
#define | PLUS_CH '+' |
#define | MINUS_CH '-' |
#define | MULTIPLICATION_CH '*' |
#define | MULTIPLICATION_2_CH ' ' |
#define | DIVISION_CH '/' |
#define | EXP_CH 'E' |
#define | EXP2_CH 'e' |
#define | POWER_CH '^' |
#define | SPACE_CH ' ' |
#define | LEFT_PARENTHESIS_CH '(' |
#define | RIGHT_PARENTHESIS_CH ')' |
#define | LEFT_VECTOR_WRAP_CH '[' |
#define | RIGHT_VECTOR_WRAP_CH ']' |
#define | FUNCTION_VAR_PRE_CH '\\' |
#define | COMMA_CH ',' |
#define | NAME_NUMBER_PRE_CH '_' |
#define | UNIT_DIVISION_CH '/' |
#define | AND_CH '&' |
#define | OR_CH '|' |
#define | LESS_CH '<' |
#define | GREATER_CH '>' |
#define | BITWISE_NOT_CH '~' |
#define | LOGICAL_NOT_CH '!' |
#define | NOT_CH '!' |
#define | EQUALS_CH '=' |
#define | ID_WRAP_LEFT "{" |
#define | ID_WRAP_RIGHT "}" |
#define | ID_WRAPS "{}" |
#define | DOT "." |
#define | SEXADOT ":" |
#define | COMMA "," |
#define | COMMAS ",;" |
#define | NUMBERS "0123456789" |
#define | NUMBER_ELEMENTS "0123456789.:" |
#define | SIGNS "+-*/^" |
#define | OPERATORS "~+-*/^&|!<>=" |
#define | PARENTHESISS "()" |
#define | LEFT_PARENTHESIS "(" |
#define | RIGHT_PARENTHESIS ")" |
#define | VECTOR_WRAPS "[]" |
#define | LEFT_VECTOR_WRAP "[" |
#define | RIGHT_VECTOR_WRAP "]" |
#define | SPACES " \t\n" |
#define | SPACE " " |
#define | RESERVED "\'@\\{}?\"" |
#define | PLUS "+" |
#define | MINUS "-" |
#define | MULTIPLICATION "*" |
#define | MULTIPLICATION_2 " " |
#define | DIVISION "/" |
#define | EXP "E" |
#define | EXPS "Ee" |
#define | POWER "^" |
#define | LOGICAL_AND "&&" |
#define | LOGICAL_OR "||" |
#define | LOGICAL_NOT "!" |
#define | BITWISE_AND "&" |
#define | BITWISE_OR "|" |
#define | BITWISE_NOT "~" |
#define | SHIFT_RIGHT ">>" |
#define | SHIFT_LEFT "<<" |
#define | LESS "<" |
#define | GREATER ">" |
#define | NOT "!" |
#define | EQUALS "=" |
#define | SINF "INF" |
#define | UNDERSCORE "_" |
#define | NOT_IN_NAMES RESERVED OPERATORS SPACES SEXADOT DOT VECTOR_WRAPS PARENTHESISS COMMAS |
Enumerations | |
enum | ExpressionItemType { TYPE_VARIABLE , TYPE_FUNCTION , TYPE_UNIT } |
Type of ExpressionItem. More... | |
enum | ComparisonResult { COMPARISON_RESULT_EQUAL , COMPARISON_RESULT_GREATER , COMPARISON_RESULT_LESS , COMPARISON_RESULT_EQUAL_OR_GREATER , COMPARISON_RESULT_EQUAL_OR_LESS , COMPARISON_RESULT_NOT_EQUAL , COMPARISON_RESULT_UNKNOWN , COMPARISON_RESULT_EQUAL_LIMITS , COMPARISON_RESULT_CONTAINS , COMPARISON_RESULT_CONTAINED , COMPARISON_RESULT_OVERLAPPING_LESS , COMPARISON_RESULT_OVERLAPPING_GREATER } |
The result of a comparison of two values. | |
enum | PlotLegendPlacement { PLOT_LEGEND_NONE , PLOT_LEGEND_TOP_LEFT , PLOT_LEGEND_TOP_RIGHT , PLOT_LEGEND_BOTTOM_LEFT , PLOT_LEGEND_BOTTOM_RIGHT , PLOT_LEGEND_BELOW , PLOT_LEGEND_OUTSIDE } |
Placement of legend. | |
enum | PlotStyle { PLOT_STYLE_LINES , PLOT_STYLE_POINTS , PLOT_STYLE_POINTS_LINES , PLOT_STYLE_BOXES , PLOT_STYLE_HISTOGRAM , PLOT_STYLE_STEPS , PLOT_STYLE_CANDLESTICKS , PLOT_STYLE_DOTS , PLOT_STYLE_POLAR } |
Plot type/style. | |
enum | PlotSmoothing { PLOT_SMOOTHING_NONE , PLOT_SMOOTHING_UNIQUE , PLOT_SMOOTHING_CSPLINES , PLOT_SMOOTHING_BEZIER , PLOT_SMOOTHING_SBEZIER } |
Smoothing a plotted lines. | |
enum | PlotFileType { PLOT_FILETYPE_AUTO , PLOT_FILETYPE_PNG , PLOT_FILETYPE_PS , PLOT_FILETYPE_EPS , PLOT_FILETYPE_LATEX , PLOT_FILETYPE_SVG , PLOT_FILETYPE_FIG , PLOT_FILETYPE_PDF } |
File type for saving plot to image. | |
enum | MathOperation { OPERATION_MULTIPLY , OPERATION_DIVIDE , OPERATION_ADD , OPERATION_SUBTRACT , OPERATION_RAISE , OPERATION_EXP10 , OPERATION_LOGICAL_AND , OPERATION_LOGICAL_OR , OPERATION_LOGICAL_XOR , OPERATION_BITWISE_AND , OPERATION_BITWISE_OR , OPERATION_BITWISE_XOR , OPERATION_LESS , OPERATION_GREATER , OPERATION_EQUALS_LESS , OPERATION_EQUALS_GREATER , OPERATION_EQUALS , OPERATION_NOT_EQUALS } |
Mathematical operations. | |
enum | ComparisonType { COMPARISON_LESS , COMPARISON_GREATER , COMPARISON_EQUALS_LESS , COMPARISON_EQUALS_GREATER , COMPARISON_EQUALS , COMPARISON_NOT_EQUALS } |
Comparison signs for comparison structures. | |
enum | SortFlags { SORT_DEFAULT = 1 << 0 , SORT_SCIENTIFIC = 1 << 1 } |
enum | NumberFractionFormat { FRACTION_DECIMAL , FRACTION_DECIMAL_EXACT , FRACTION_FRACTIONAL , FRACTION_COMBINED , FRACTION_FRACTIONAL_FIXED_DENOMINATOR , FRACTION_COMBINED_FIXED_DENOMINATOR , FRACTION_PERCENT , FRACTION_PERMILLE , FRACTION_PERMYRIAD } |
enum | MultiplicationSign { MULTIPLICATION_SIGN_ASTERISK , MULTIPLICATION_SIGN_DOT , MULTIPLICATION_SIGN_X , MULTIPLICATION_SIGN_ALTDOT } |
enum | DivisionSign { DIVISION_SIGN_SLASH , DIVISION_SIGN_DIVISION_SLASH , DIVISION_SIGN_DIVISION } |
enum | BaseDisplay { BASE_DISPLAY_NONE , BASE_DISPLAY_NORMAL , BASE_DISPLAY_ALTERNATIVE , BASE_DISPLAY_SUFFIX } |
enum | IntervalDisplay { INTERVAL_DISPLAY_SIGNIFICANT_DIGITS , INTERVAL_DISPLAY_INTERVAL , INTERVAL_DISPLAY_PLUSMINUS , INTERVAL_DISPLAY_MIDPOINT , INTERVAL_DISPLAY_LOWER , INTERVAL_DISPLAY_UPPER , INTERVAL_DISPLAY_CONCISE , INTERVAL_DISPLAY_RELATIVE } |
enum | DigitGrouping { DIGIT_GROUPING_NONE , DIGIT_GROUPING_STANDARD , DIGIT_GROUPING_LOCALE } |
enum | DateTimeFormat { DATE_TIME_FORMAT_ISO , DATE_TIME_FORMAT_LOCALE } |
enum | TimeZone { TIME_ZONE_UTC , TIME_ZONE_LOCAL , TIME_ZONE_CUSTOM } |
enum | ApproximationMode { APPROXIMATION_EXACT , APPROXIMATION_TRY_EXACT , APPROXIMATION_APPROXIMATE , APPROXIMATION_EXACT_VARIABLES } |
enum | StructuringMode { STRUCTURING_NONE , STRUCTURING_EXPAND , STRUCTURING_FACTORIZE , STRUCTURING_HYBRID } |
enum | AutoPostConversion { POST_CONVERSION_NONE , POST_CONVERSION_OPTIMAL_SI , POST_CONVERSION_BASE , POST_CONVERSION_OPTIMAL } |
enum | MixedUnitsConversion { MIXED_UNITS_CONVERSION_NONE , MIXED_UNITS_CONVERSION_DOWNWARDS_KEEP , MIXED_UNITS_CONVERSION_DOWNWARDS , MIXED_UNITS_CONVERSION_DEFAULT , MIXED_UNITS_CONVERSION_FORCE_INTEGER , MIXED_UNITS_CONVERSION_FORCE_ALL } |
enum | ReadPrecisionMode { DONT_READ_PRECISION , ALWAYS_READ_PRECISION , READ_PRECISION_WHEN_DECIMALS } |
enum | AngleUnit { ANGLE_UNIT_NONE , ANGLE_UNIT_RADIANS , ANGLE_UNIT_DEGREES , ANGLE_UNIT_GRADIANS , ANGLE_UNIT_CUSTOM } |
enum | ComplexNumberForm { COMPLEX_NUMBER_FORM_RECTANGULAR , COMPLEX_NUMBER_FORM_EXPONENTIAL , COMPLEX_NUMBER_FORM_POLAR , COMPLEX_NUMBER_FORM_CIS } |
enum | ParsingMode { PARSING_MODE_ADAPTIVE , PARSING_MODE_IMPLICIT_MULTIPLICATION_FIRST , PARSING_MODE_CONVENTIONAL , PARSING_MODE_CHAIN , PARSING_MODE_RPN } |
enum | IntervalCalculation { INTERVAL_CALCULATION_NONE , INTERVAL_CALCULATION_VARIANCE_FORMULA , INTERVAL_CALCULATION_INTERVAL_ARITHMETIC , INTERVAL_CALCULATION_SIMPLE_INTERVAL_ARITHMETIC } |
Variables | |
static std::string | empty_string |
static const long int | PRIMES [] |
static const long int | SQUARE_PRIMES [] |
static const long int | RAISED_PRIMES [][49] |
static const SortOptions | default_sort_options |
static const PrintOptions | default_print_options |
static const InternalPrintStruct | top_ips |
static const ParseOptions | default_parse_options |
static const EvaluationOptions | default_evaluation_options |
static EvaluationOptions | default_user_evaluation_options |
MathStructure | m_undefined |
MathStructure | m_empty_vector |
MathStructure | m_empty_matrix |
MathStructure | m_zero |
MathStructure | m_one |
MathStructure | m_minus_one |
MathStructure | m_one_i |
Number | nr_zero |
Number | nr_one |
Number | nr_two |
Number | nr_three |
Number | nr_minus_one |
Number | nr_one_i |
Number | nr_minus_i |
Number | nr_half |
Number | nr_minus_half |
Number | nr_plus_inf |
Number | nr_minus_inf |
EvaluationOptions | no_evaluation |
ExpressionName | empty_expression_name |
Calculator * | calculator |
enum ApproximationMode |
enum AutoPostConversion |
enum ExpressionItemType |
Type of ExpressionItem.
Enumerator | |
---|---|
TYPE_VARIABLE | class Variable |
TYPE_FUNCTION | class MathFunction |
TYPE_UNIT | class Unit |
enum IntervalCalculation |
enum NumberFractionFormat |
enum ParsingMode |
enum StructuringMode |
|
static |
|
static |