Scientific calculator

This calculator is able to perform all basic mathematical operations, evaluate standard functions and plot graphics. It is even possible to write small programs using functions and conditional operator. Expressions are specified in standard infix notation. calculations are performed with 128 but precision (64-but for mantissa and 64 bit for exponent).

Basic operations
OperationExampleDescription
Assignmentx=1Assign new value to variable. After evaluation of this expression, it is possible to refer to this variable from other expressions.
Function definitionf(x)=x*xEvaluation of this expression defines function which can be used in other expressions and which graph can be plotted using plot() function
Conditional operatorc?x:yIf condition left to '?' sign is true, then result of conditional expression is value of expression right to '?' sign, otherwise - result of conditional expression is value of expression after ':' sign. Example of function definition using conditional operator - calculation of Fibonacci numbers: fib(x)=x<2?1:fib(x-1)+fib(x-2)
Greaterx>yThe result of expression is true if value of left operand is greater than value of right operand
Lessx<yThe result of expression is true if value of left operand is less than value of right operand
Between1<x<5The result of expression is true if value of second operand is between values of first and third operands.
Sequencex=1,y=2Sequence of expressions. The expressions are calculated in left-to-right order and result is the value of last expression. Using expression sequences you can write the simplest programs.
Additionx+ySum of two operands
Subtractionx-yDifference of two operands
Multiplicationx*yMultiplication of two operands
Divisionx/yDividing value of first operand by value of second operand
Powerx^yRaise value of the first operand to a power determined by value of second operand
Integer part[x]Integer part of number
Fraction part{x}fraction part of number
Absolute value|x|Absolute value
Expression in parentheses(x)Expression in parentheses
Sinesin(x)Sine function (radian)
Cosinecos(x)Cosine function (radian)
Tangenttan(x)Tangent function (radian)
Arcsineasin(x)Arcsine function (radian)
Arccosineacos(x)Arccosine function (radian)
Arctangentatan(x)Arctangent function (radian)
Exponentexp(x)Exponent
Logarithmlog(x)Natural logarithm
Ceilceil(x)Round to the minimal integer number greater or equal than specified value
Floorfloor(x)Round to the maximal integer number less or equal than specified value
Square rootsqr(x)Square root
Plot function graphplot(from,till,func)Plot graph of the function. First and second parameters specifies start and end point. Then it is possible to specify optional step value (if step is not specified, than it is chosen automatically based on screen resolution). And last parameter specifies name of plotted functions
Plot graph by pointsplot{x1, y1, x2, y2,..., xn, yn}Plot graph given (x,y) coordinates of points. Please notice that braces are used instead of round brackets.

Calculator remembers all expressions you have entered. You can always list and choose one of them using List item of menu. Those expression which were entered but not yet evaluated re marked with yellow question sign, those expressions which were successfully evaluated - with green tick, and expressions containing errors - with red exclamation sign. If expression assigned value to variable or define function, then it us possible to used this variable or function in other expressions when this expression contains no error and was evaluated. Calculator tries to evaluate all expressions when program is started. But newly entered expressions should be evaluated manually.

Help menu item allows to get list of all supported operations and insert template of this operation.

Calculator contains no command which can compare two values for equality. First of all because it is not correct to compare floating point number for equality because of possible rounding errors, and second - to avoid conflict with assignment operator. Instead of it calculator provides operator which checks if value belongs to the specified range. This operator is written in the same way, as in normal mathematical notation: 0<x<5.