Java Scientific Calculator


Home ·
Download ·
Design and operation ·
Modes ·
Accuracy of calculations ·
Numbers and arithmetic ·
Roots, powers and logs ·
Trigonometric functions ·
Factorials and combinations ·
Logical functions ·
Memory ·
Statistical calculations ·
Variable expressions ·
Graphing functions ·
Other features and functions ·
Modifying the code ·
Testing the code ·
Known issues ·
Similar projects ·

Known issues

Some calculations (such as taking the inverse of zero) produce NaN as an output. Others may produce ∞ (for example, through arithmetic overflow). These can be used in calculations, but I have not checked the correctness of the calculator arithmetic using infinities and NaNs.

The trigonometric functions are set to return an error if the argument or result is a complex number with nonzero imaginary part and the mode is set to degrees. This is because I don’t know of a meaningful way to convert degrees to radians and vice versa for numbers with nonzero imaginary part. This means that, for example, to evaluate cos( 1 + i ) you must first set the mode to degrees. A more subtle example is sin−1( 2 ): in degrees this returns an error, but in radians, 2 is interpreted as 2 + 0i and the inverse sin (or arcsin) is calculated as 1.570796326794896619 − 1.3169578969248167086i.

The code for variable expressions is not (at May 2008) tested thoroughly and there are some minor issues in automatic simplification of expressions. Although simplified expressions are (as far as I know) all correct, the order of summands in a polynomial is not always correct.

The code for graphs is not (at May 2008) complete. Most simple graphs will display correctly, but there are some unresolved issues. At May 2008 the graph of x−1 does not display correctly. Some graphs, such as cos( x2 ) display correctly but can produce a nonfatal exception because the calculation of the graph locus causes Java to run out of memory. Some changes of scale cause the origin of the graph to display incorrectly. The graph has facilities to display multiple loca (or loci if you prefer later Latin). But these are not yet implemented.

Last modified: Sat 31 May 2008 01:10 pm Logo