Merge if you like math!

GMP is no longer a dependency. If GMP does not exist, BC Math is used instead.
Clean file up, add some comment documentation on what you are doing and why. Might have examples of how to use the different engines.