Expand description
§Expression calculator
Calculator transparently supports operations with different type of numbers,
converting to appropriate type when it is needed. For instance,
sqrt(-2)
is automatically converted from integer number -2
to complex
one -2+0i
and is evaluated to 0+1.4142135623730951i
Extra feature: trigonometric functions support both radians and degrees:
- Radians are just float numbers:
sin(pi/2)
returns1
- Degrees can be written in one of the following forms:
12°30'45"
or12d30m45s
or12.5125d
Internally degrees are stored and act as float numbers. They only support their own input format. Output format is always a float number.
If two numbers have different types, they are converted to highest type and then the result is calculated. The list of number types starting from highest:
- Complex numbers. Two input formats supported:
1+2i
and1+i2
.i
can be capital.j
can be used instead ofi
- Float numbers (degrees are float numbers, too)
- Rational numbers
- Big integer numbers
Note: sometimes higher types are converted to lower ones. It may happen after multiplication, division, and squaring a number. Examples:
sqr(0+2i)
->-4
- automatically complex is converted to float number1.5 / 0.5
->3
- float to big integer1\2 + 1\2
->1
- half and half is an integer one
The list of supported functions:
- trigonometric functions (including inverted ones): sin, cos, tan, asin, acos, atan
- hyperbolic functions (including inverted ones): sinh, cosh, tanh, asinh, acosh, atanh
- square and square root: sqr and sqrt
- exponent, logarithm: exp, ln
- complex functions: norm, re, im, conjugate
- rounding: ceil, floor, trunc, round
- float to rational: ratio
- absolute value and sign: abs, signum
- fractional part of a float number: fract
Operators (starting from highest priority):
!
- factorial (when used after a number or closing bracket)-
- unary minus**
- power*
,/
,//
- multiplication, division, integer division+
,-
- addition, subtraction&
,^
- bitwise AND and XOR|
,<<
,>>
- bitwise OR, SHL, and SHR==
,!=
,>
,<
,>=
, and<=
- comparison operators
Predefined constants:
PI
- 3.14159…E
- 2.71828…PHI
- golden section - 1.6180…
The calculator does not have special type for boolean numbers. When using logical
operators any zero value is treated as false
and true
otherwise. So, doing
double NOT transforms any number into big integer 1
or 0
depending on if the
original value was zero