Implementation in java of a binary expression tree, written by me and @eirikhalvard, using atom's new plugin Teletype, for real time collaboration (check it out!)
A binary expression tree is a binary tree representation of mathematical expressions, which make it easier to translate an input expression to an actual answer.
Consider this example, with input of -2*7-4^2
.
To compose this tree our algorithm searches for the least significant operator (based on order of operations), and divides the calculation into two subparts. This process is repeated recursively, always pivoting by the least significant operator. In later versions, where we may add support for parentheses, the parentheses would be generated as smaller individual trees that would be solved first, passing the result as a digit to the rest of the tree for further processing.
The plan is trying to implement more functionality to the tree, making it a useful and fast math tool, for use in any terminal. After implementing basic functions mentioned underneath, we may move into the world of linear algebra, and all that entails...
- Negative numbers
- Parenthesis
- + - / * ^
- sqrt
- ln
- log10
- sin, cos, tan
- arcsin, arccos, arctan
- sinh, cosh, tanh
- cot, csc, sec
- pi
- e
- the imaginary unit i