#include <valuecalc.h>
Public Member Functions | |
| ValueCalc (ValueConverter *c) | |
| ValueConverter * | conv () |
| void | setDoc (Doc *d) |
| Doc * | doc () |
| Value | add (const Value &a, const Value &b) |
| Value | sub (const Value &a, const Value &b) |
| Value | mul (const Value &a, const Value &b) |
| Value | div (const Value &a, const Value &b) |
| Value | mod (const Value &a, const Value &b) |
| Value | pow (const Value &a, const Value &b) |
| Value | sqr (const Value &a) |
| Value | sqrt (const Value &a) |
| Value | add (const Value &a, double b) |
| Value | sub (const Value &a, double b) |
| Value | mul (const Value &a, double b) |
| Value | div (const Value &a, double b) |
| Value | pow (const Value &a, double b) |
| Value | abs (const Value &a) |
| bool | isZero (const Value &a) |
| bool | isEven (const Value &a) |
| bool | equal (const Value &a, const Value &b) |
| bool | approxEqual (const Value &a, const Value &b) |
| bool | greater (const Value &a, const Value &b) |
| bool | gequal (const Value &a, const Value &b) |
| bool | lower (const Value &a, const Value &b) |
| bool | strEqual (const Value &a, const Value &b, bool CS=true) |
| bool | strGreater (const Value &a, const Value &b, bool CS=true) |
| bool | strGequal (const Value &a, const Value &b, bool CS=true) |
| bool | strLower (const Value &a, const Value &b, bool CS=true) |
| bool | naturalEqual (const Value &a, const Value &b, bool CS=true) |
| bool | naturalGreater (const Value &a, const Value &b, bool CS=true) |
| bool | naturalGequal (const Value &a, const Value &b, bool CS=true) |
| bool | naturalLower (const Value &a, const Value &b, bool CS=true) |
| int | sign (const Value &a) |
| Value | roundDown (const Value &a, const Value &digits) |
| Value | roundUp (const Value &a, const Value &digits) |
| Value | round (const Value &a, const Value &digits) |
| Value | roundDown (const Value &a, int digits=0) |
| Value | roundUp (const Value &a, int digits=0) |
| Value | round (const Value &a, int digits=0) |
| Value | log (const Value &number, const Value &base) |
| Value | log (const Value &number, double base=10) |
| Value | ln (const Value &number) |
| Value | exp (const Value &number) |
| Value | pi () |
| Value | eps () |
| Value | random (double range=1.0) |
| Value | random (Value range) |
| Value | fact (const Value &which) |
| Value | fact (const Value &which, const Value &end) |
| Value | fact (int which, int end=0) |
| Value | factDouble (int which) |
| Value | factDouble (Value which) |
| Value | combin (int n, int k) |
| Value | combin (Value n, Value k) |
| Value | gcd (const Value &a, const Value &b) |
| Value | lcm (const Value &a, const Value &b) |
| Value | base (const Value &val, int base=16, int prec=0) |
| Value | fromBase (const Value &val, int base=16) |
| Value | sin (const Value &number) |
| Value | cos (const Value &number) |
| Value | tg (const Value &number) |
| Value | cotg (const Value &number) |
| Value | asin (const Value &number) |
| Value | acos (const Value &number) |
| Value | atg (const Value &number) |
| Value | atan2 (const Value &y, const Value &x) |
| Value | sinh (const Value &number) |
| Value | cosh (const Value &number) |
| Value | tgh (const Value &number) |
| Value | asinh (const Value &number) |
| Value | acosh (const Value &number) |
| Value | atgh (const Value &number) |
| Value | phi (Value x) |
| Value | gauss (Value xx) |
| Value | gaussinv (Value xx) |
| Value | GetGamma (Value _x) |
| Value | GetLogGamma (Value _x) |
| Value | GetGammaDist (Value _x, Value _alpha, Value _beta) |
| Value | GetBeta (Value _x, Value _alpha, Value _beta) |
| Value | besseli (Value v, Value x) |
| Value | besselj (Value v, Value x) |
| Value | besselk (Value v, Value x) |
| Value | besseln (Value v, Value x) |
| Value | erf (Value x) |
| Value | erfc (Value x) |
| void | arrayWalk (const Value &range, Value &res, arrayWalkFunc func, Value param) |
| void | arrayWalk (TQValueVector< Value > &range, Value &res, arrayWalkFunc func, Value param) |
| void | twoArrayWalk (const Value &a1, const Value &a2, Value &res, arrayWalkFunc func) |
| void | twoArrayWalk (TQValueVector< Value > &a1, TQValueVector< Value > &a2, Value &res, arrayWalkFunc func) |
| arrayWalkFunc | awFunc (const TQString &name) |
| void | registerAwFunc (const TQString &name, arrayWalkFunc func) |
| Value | sum (const Value &range, bool full=true) |
| Value | sumsq (const Value &range, bool full=true) |
| Value | sumIf (const Value &range, const Value &checkRange, const Condition &cond) |
| int | count (const Value &range, bool full=true) |
| int | countIf (const Value &range, const Condition &cond) |
| Value | avg (const Value &range, bool full=true) |
| Value | max (const Value &range, bool full=true) |
| Value | min (const Value &range, bool full=true) |
| Value | product (const Value &range, Value init, bool full=true) |
| Value | stddev (const Value &range, bool full=true) |
| Value | stddev (const Value &range, Value avg, bool full=true) |
| Value | stddevP (const Value &range, bool full=true) |
| Value | stddevP (const Value &range, Value avg, bool full=true) |
| Value | sum (TQValueVector< Value > range, bool full=true) |
| int | count (TQValueVector< Value > range, bool full=true) |
| Value | avg (TQValueVector< Value > range, bool full=true) |
| Value | max (TQValueVector< Value > range, bool full=true) |
| Value | min (TQValueVector< Value > range, bool full=true) |
| Value | product (TQValueVector< Value > range, Value init, bool full=true) |
| Value | stddev (TQValueVector< Value > range, bool full=true) |
| Value | stddev (TQValueVector< Value > range, Value avg, bool full=true) |
| Value | stddevP (TQValueVector< Value > range, bool full=true) |
| Value | stddevP (TQValueVector< Value > range, Value avg, bool full=true) |
| void | getCond (Condition &cond, Value val) |
| bool | matches (const Condition &cond, Value d) |
Protected Member Functions | |
| Value::Format | format (Value::Format a, Value::Format b) |
Protected Attributes | |
| ValueConverter * | converter |
| Doc * | _doc |
| std::map< TQString, arrayWalkFunc > | awFuncs |
Detailed Description
The ValueCalc class is used to perform all sorts of calculations.
No other means of calculation should be performed, to achieve transparency, and to ease addition of new datatypes.
Currently, most functions simply convert data to double and work with that. The idea is such that after we add support for bigger precision, we only need to adjust this class and the parsing/formatting/converting classes. All function implementations will remain exactly the same.
Of course, for some functions, it might be impossible to apply them on all datatypes, but since all of them can be applied on both doubles and GnuMP-based numbers, that is not of much concern ;)
Definition at line 69 of file valuecalc.h.
Constructor & Destructor Documentation
◆ ValueCalc()
| ValueCalc::ValueCalc | ( | ValueConverter * | c | ) |
Definition at line 154 of file valuecalc.cpp.
Member Function Documentation
◆ abs()
Definition at line 397 of file valuecalc.cpp.
◆ acos()
Definition at line 869 of file valuecalc.cpp.
◆ acosh()
Definition at line 945 of file valuecalc.cpp.
◆ add() [1/2]
basic arithmetic operations
Definition at line 176 of file valuecalc.cpp.
◆ add() [2/2]
Definition at line 338 of file valuecalc.cpp.
◆ approxEqual()
numerical comparison with a little epsilon tolerance
Definition at line 426 of file valuecalc.cpp.
◆ arrayWalk() [1/2]
array/range walking
Definition at line 1595 of file valuecalc.cpp.
◆ arrayWalk() [2/2]
| void ValueCalc::arrayWalk | ( | TQValueVector< Value > & | range, |
| Value & | res, | ||
| arrayWalkFunc | func, | ||
| Value | param | ||
| ) |
Walk the array in function-like style.
This method is here to avoid duplication in function handlers.
Definition at line 1621 of file valuecalc.cpp.
◆ asin()
Definition at line 856 of file valuecalc.cpp.
◆ asinh()
Definition at line 932 of file valuecalc.cpp.
◆ atan2()
Definition at line 895 of file valuecalc.cpp.
◆ atg()
Definition at line 882 of file valuecalc.cpp.
◆ atgh()
Definition at line 958 of file valuecalc.cpp.
◆ avg() [1/2]
Definition at line 1785 of file valuecalc.cpp.
◆ avg() [2/2]
Definition at line 1793 of file valuecalc.cpp.
◆ awFunc()
| arrayWalkFunc ValueCalc::awFunc | ( | const TQString & | name | ) |
Definition at line 1674 of file valuecalc.cpp.
◆ base()
base conversion 10 -> base
Definition at line 779 of file valuecalc.cpp.
◆ besseli()
bessel functions - may also end up being separated from here
Definition at line 1553 of file valuecalc.cpp.
◆ besselj()
Definition at line 1560 of file valuecalc.cpp.
◆ besselk()
Definition at line 1567 of file valuecalc.cpp.
◆ besseln()
Definition at line 1574 of file valuecalc.cpp.
◆ combin() [1/2]
| Value ValueCalc::combin | ( | int | n, |
| int | k | ||
| ) |
combinations
Definition at line 726 of file valuecalc.cpp.
◆ combin() [2/2]
Definition at line 737 of file valuecalc.cpp.
◆ conv()
|
inline |
Definition at line 73 of file valuecalc.h.
◆ cos()
Definition at line 826 of file valuecalc.cpp.
◆ cosh()
Definition at line 912 of file valuecalc.cpp.
◆ cotg()
Definition at line 846 of file valuecalc.cpp.
◆ count() [1/2]
| int ValueCalc::count | ( | const Value & | range, |
| bool | full = true |
||
| ) |
Definition at line 1743 of file valuecalc.cpp.
◆ count() [2/2]
| int ValueCalc::count | ( | TQValueVector< Value > | range, |
| bool | full = true |
||
| ) |
Definition at line 1750 of file valuecalc.cpp.
◆ countIf()
| int ValueCalc::countIf | ( | const Value & | range, |
| const Condition & | cond | ||
| ) |
Definition at line 1757 of file valuecalc.cpp.
◆ div() [1/2]
Definition at line 242 of file valuecalc.cpp.
◆ div() [2/2]
Definition at line 371 of file valuecalc.cpp.
◆ doc()
|
inline |
Definition at line 77 of file valuecalc.h.
◆ eps()
| Value ValueCalc::eps | ( | ) |
Definition at line 666 of file valuecalc.cpp.
◆ equal()
numerical comparison
Definition at line 415 of file valuecalc.cpp.
◆ erf()
error functions (see: man erf)
Definition at line 1583 of file valuecalc.cpp.
◆ erfc()
Definition at line 1588 of file valuecalc.cpp.
◆ exp()
Definition at line 653 of file valuecalc.cpp.
◆ fact() [1/3]
some computational functions
Definition at line 683 of file valuecalc.cpp.
◆ fact() [2/3]
Definition at line 690 of file valuecalc.cpp.
◆ fact() [3/3]
| Value ValueCalc::fact | ( | int | which, |
| int | end = 0 |
||
| ) |
Definition at line 699 of file valuecalc.cpp.
◆ factDouble() [1/2]
| Value ValueCalc::factDouble | ( | int | which | ) |
double factorial (every other number multiplied)
Definition at line 711 of file valuecalc.cpp.
◆ factDouble() [2/2]
Definition at line 721 of file valuecalc.cpp.
◆ format()
|
protected |
return result formatting, based on these two values
Definition at line 1913 of file valuecalc.cpp.
◆ fromBase()
base conversion base -> 10
Definition at line 805 of file valuecalc.cpp.
◆ gauss()
Definition at line 989 of file valuecalc.cpp.
◆ gaussinv()
Definition at line 1039 of file valuecalc.cpp.
◆ gcd()
greatest common divisor
Definition at line 744 of file valuecalc.cpp.
◆ gequal()
numerical comparison - greater or equal
Definition at line 509 of file valuecalc.cpp.
◆ GetBeta()
Definition at line 1331 of file valuecalc.cpp.
◆ getCond()
| void ValueCalc::getCond | ( | Condition & | cond, |
| Value | val | ||
| ) |
This method parses the condition in string text to the condition cond.
It sets the condition's type and value.
Definition at line 1924 of file valuecalc.cpp.
◆ GetGamma()
Definition at line 1240 of file valuecalc.cpp.
◆ GetGammaDist()
Definition at line 1264 of file valuecalc.cpp.
◆ GetLogGamma()
Definition at line 1252 of file valuecalc.cpp.
◆ greater()
numerical comparison
Definition at line 502 of file valuecalc.cpp.
◆ isEven()
| bool ValueCalc::isEven | ( | const Value & | a | ) |
Definition at line 409 of file valuecalc.cpp.
◆ isZero()
| bool ValueCalc::isZero | ( | const Value & | a | ) |
comparison and related
Definition at line 403 of file valuecalc.cpp.
◆ lcm()
lowest common multiplicator
Definition at line 762 of file valuecalc.cpp.
◆ ln()
Definition at line 627 of file valuecalc.cpp.
◆ log() [1/2]
logarithms and exponentials
Definition at line 609 of file valuecalc.cpp.
◆ log() [2/2]
Definition at line 637 of file valuecalc.cpp.
◆ lower()
numerical comparison
Definition at line 514 of file valuecalc.cpp.
◆ matches()
| bool ValueCalc::matches | ( | const Condition & | cond, |
| Value | d | ||
| ) |
Returns true if value d matches the condition cond, built with getCond().
Otherwise, it returns false.
Definition at line 1990 of file valuecalc.cpp.
◆ max() [1/2]
Definition at line 1801 of file valuecalc.cpp.
◆ max() [2/2]
Definition at line 1808 of file valuecalc.cpp.
◆ min() [1/2]
Definition at line 1815 of file valuecalc.cpp.
◆ min() [2/2]
Definition at line 1822 of file valuecalc.cpp.
◆ mod()
Definition at line 264 of file valuecalc.cpp.
◆ mul() [1/2]
Definition at line 224 of file valuecalc.cpp.
◆ mul() [2/2]
Definition at line 360 of file valuecalc.cpp.
◆ naturalEqual()
string or numerical comparison
Definition at line 474 of file valuecalc.cpp.
◆ naturalGequal()
string or numerical comparison - greater or equal
Definition at line 492 of file valuecalc.cpp.
◆ naturalGreater()
string or numerical comparison
Definition at line 483 of file valuecalc.cpp.
◆ naturalLower()
string or numerical comparison
Definition at line 497 of file valuecalc.cpp.
◆ phi()
some statistical stuff TODO: we may want to move these over to a separate class or something, as the functions are mostly big
Definition at line 971 of file valuecalc.cpp.
◆ pi()
| Value ValueCalc::pi | ( | ) |
constants
Definition at line 658 of file valuecalc.cpp.
◆ pow() [1/2]
Definition at line 301 of file valuecalc.cpp.
◆ pow() [2/2]
Definition at line 386 of file valuecalc.cpp.
◆ product() [1/2]
Definition at line 1829 of file valuecalc.cpp.
◆ product() [2/2]
Definition at line 1843 of file valuecalc.cpp.
◆ random() [1/2]
| Value ValueCalc::random | ( | double | range = 1.0 | ) |
random number from <0.0, range)
Definition at line 673 of file valuecalc.cpp.
◆ random() [2/2]
Definition at line 678 of file valuecalc.cpp.
◆ registerAwFunc()
| void ValueCalc::registerAwFunc | ( | const TQString & | name, |
| arrayWalkFunc | func | ||
| ) |
Definition at line 1681 of file valuecalc.cpp.
◆ round() [1/2]
Definition at line 529 of file valuecalc.cpp.
◆ round() [2/2]
Definition at line 578 of file valuecalc.cpp.
◆ roundDown() [1/2]
rounding
Definition at line 519 of file valuecalc.cpp.
◆ roundDown() [2/2]
Definition at line 534 of file valuecalc.cpp.
◆ roundUp() [1/2]
Definition at line 524 of file valuecalc.cpp.
◆ roundUp() [2/2]
Definition at line 556 of file valuecalc.cpp.
◆ setDoc()
|
inline |
Definition at line 76 of file valuecalc.h.
◆ sign()
| int ValueCalc::sign | ( | const Value & | a | ) |
Definition at line 600 of file valuecalc.cpp.
◆ sin()
goniometric functions
Definition at line 816 of file valuecalc.cpp.
◆ sinh()
hyperbolic functions
Definition at line 902 of file valuecalc.cpp.
◆ sqr()
Definition at line 319 of file valuecalc.cpp.
◆ sqrt()
Definition at line 325 of file valuecalc.cpp.
◆ stddev() [1/4]
Definition at line 1857 of file valuecalc.cpp.
◆ stddev() [2/4]
Definition at line 1862 of file valuecalc.cpp.
◆ stddev() [3/4]
Definition at line 1871 of file valuecalc.cpp.
◆ stddev() [4/4]
Definition at line 1876 of file valuecalc.cpp.
◆ stddevP() [1/4]
Definition at line 1885 of file valuecalc.cpp.
◆ stddevP() [2/4]
Definition at line 1890 of file valuecalc.cpp.
◆ stddevP() [3/4]
Definition at line 1899 of file valuecalc.cpp.
◆ stddevP() [4/4]
Definition at line 1904 of file valuecalc.cpp.
◆ strEqual()
string comparison
Definition at line 436 of file valuecalc.cpp.
◆ strGequal()
string comparison - greater or equal
Definition at line 458 of file valuecalc.cpp.
◆ strGreater()
string comparison
Definition at line 447 of file valuecalc.cpp.
◆ strLower()
string comparison
Definition at line 469 of file valuecalc.cpp.
◆ sub() [1/2]
Definition at line 206 of file valuecalc.cpp.
◆ sub() [2/2]
Definition at line 349 of file valuecalc.cpp.
◆ sum() [1/2]
basic range functions
Definition at line 1688 of file valuecalc.cpp.
◆ sum() [2/2]
range functions using value lists
Definition at line 1695 of file valuecalc.cpp.
◆ sumIf()
Definition at line 1710 of file valuecalc.cpp.
◆ sumsq()
Definition at line 1703 of file valuecalc.cpp.
◆ tg()
Definition at line 836 of file valuecalc.cpp.
◆ tgh()
Definition at line 922 of file valuecalc.cpp.
◆ twoArrayWalk() [1/2]
| void ValueCalc::twoArrayWalk | ( | const Value & | a1, |
| const Value & | a2, | ||
| Value & | res, | ||
| arrayWalkFunc | func | ||
| ) |
Definition at line 1629 of file valuecalc.cpp.
◆ twoArrayWalk() [2/2]
| void ValueCalc::twoArrayWalk | ( | TQValueVector< Value > & | a1, |
| TQValueVector< Value > & | a2, | ||
| Value & | res, | ||
| arrayWalkFunc | func | ||
| ) |
Definition at line 1662 of file valuecalc.cpp.
Member Data Documentation
◆ _doc
|
protected |
Definition at line 278 of file valuecalc.h.
◆ awFuncs
|
protected |
registered array-walk functions
Definition at line 281 of file valuecalc.h.
◆ converter
|
protected |
Definition at line 274 of file valuecalc.h.
The documentation for this class was generated from the following files:
