Rational entries of the form a/b and complex entries of the form a+bi are supported. Examples: `-5/12`

, `-2i + 4.5`

. Warning: JavaScript can only store integers up to 2^53 - 1 = 9007199254740991. Because this implementation uses a pair of integers to represent rational numbers, incorrect results can be produced when intermediate values are supposed to have numerators or denominator exceeding this maximum.

Written by Adrian Stoll on 07 Jul 2016