C++ / LANGUAGE AND MATHEMATICS
ESINMATH
Turn mathematical notation into a structure a program can reason about.

01 / THE PROBLEM
Expressions become trees that can be evaluated and simplified.
A mathematical expression needs a clear grammar and representation before it can be evaluated, simplified or connected to variables and a user session.
02 / THE APPROACH
How the system fits together.
The C++ project tokenizes input, builds expression-tree structures and implements rational arithmetic. Its source includes expression simplification, variable handling and a session layer, supported by the course-provided ESIN libraries.
Input text → tokenization
Tokens → expression tree
Rational values → exact arithmetic
Tree operations → evaluation and simplification
Variables → interactive math session
03 / ENGINEERING DECISIONS
Preserve structure while simplifying
Expression nodes represent operations and operands, allowing simplification rules to operate over the expression rather than raw text alone.
Keep rational calculations exact
A separate rational type handles fraction arithmetic and its error cases alongside integer and real expression values.
CURRENT SCOPE
Coursework built around supplied ESIN teaching libraries and fixtures. The repository does not declare a license, and its bundled course materials are not redistributed here. No fresh build or numerical benchmark is claimed.