What the calculator can do at the moment:
- Add, subtract, multiply, divide.
- Square root, nth root, exponentiation.
- Trigonometry: sin, cos, tan with their respective inverse functions (working with degrees, radians and gradians).
- log10 and log.
- Factorial
- x10^
To do:
- Low power (need to change PCB layout, maybe in future design?)
- Constants menu
- Splash screen intro
- Graphing mode (basic explicit functions)
Known bugs:
- Syntax error when two or more unary operators are put together.
- Cursor may not be in correct position after making a line leap
- Crashes when result is bigger than 16 digits
How many digits of precision are you using, and what methods are you using for the trig and log functions, whether CORDIC or the first so many terms of the Taylor series with the coefficients adjusted to make up for the smallish number of terms? Have you tested the accuracy? I have yet to see an explanation of CORDIC in English (rather than sterile, theoretical math Ph.D. language) but it looks like you still need an iteration for every bit or digit as you advance toward an answer, using a smallish lookup table at every step. I would like to understand it. I have Jack Crenshaw's book, "Math Toolkit for Real-Time Programming," but he never mentions CORDIC. Real time tends to need the best performance.