Skip to content

Latest commit

 

History

History
45 lines (33 loc) · 1.7 KB

README.md

File metadata and controls

45 lines (33 loc) · 1.7 KB

Binary expresion tree

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!)

How it works

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.

Tree

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.

Roadmap

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...

General

  • Negative numbers
  • Parenthesis

Basic operators

  • + - / * ^
  • sqrt
  • ln
  • log10

Trigonometric functions

  • sin, cos, tan
  • arcsin, arccos, arctan
  • sinh, cosh, tanh
  • cot, csc, sec

Constants

  • pi
  • e
  • the imaginary unit i