Calcutta is a free and open source console based calculator with scripting capabilities.
The main purpose is to serve as a programmer's calculator, e.g. to convert numbers between different number systems. Since it represents all numbers by rational fractions internally, there are no errors introduced by rounding. E.g. 1*(1/3) is not nearly 1, but exactly 1.
Furthermore, Calcutta's internal number representation is only limited by the RAM available. There is no restriction due to the typical 32bit or 64bit bounds of integers or doubles.
Here are some key features of "Calcutta":
· Number representations by rational fractions: no precision loss by division/multiplication. Support for rational fractions with endless period.
· Fast BigDecimal Taylor approximations are used for irrational functions as sin, exp etc. Much higher resolution that usual approaches using double.
· Support for very large and very small numbers (only limited by the space available)
· Support for large parts of C/Java operators: even binary operators (&,|,^) and comparison operators are supported. Shorcut operators (&&/||) supported!!!
Advanced scripting support:
· User defined functions
· Conditionals (if/else)
· Loops (for / for each / while / do-while)
· Script files: just write complex functions using a text editor, than load the script into Calcutta.
· Hex/binary input: easy output conversions to hex/binary
· Support for casting operators to simulate limited number ranges.
· Support for lists (multidimensional lists that can hold any value)
· Support for strings (some basic operations like concatenation, replace, insert, substrings etc.)
· Platform independent
Requirements:
· Java 1.5 or later