# RaMath

**Ramath** is a Java package for mathematics with *BigRational* numbers, continued fractions, vector and matrix operations, and for the symbolic manipulation of *Polynomial*s and diophantine equations. For the latter, the package contains *Solver*s which expand the variables systematically by building a tree of possible values.

### Basic Reasons

Class *BaseReason* checks the expanded *RelationSet* for several basic properties. The checks are implemented in method *evaluate* of *Polynomial*, and they are mainly concerned with the constant term *c* and the remaining set of variable terms *V* in the polynomial.

### c = 0

This node is a - possibly trivial - solution.

### c != 0 and V = 0

Such a node is impossible.

### c != 0 and V != 0

Here we investigate the greatest common divisor *varGCD* of the constants of all terms with variables. The node is impossible if *varGCD* > 1 and it does not divide *c*.