This implements a better representation of Polynomial and Monomial classes (should be safer and according to benchmarks is also faster).
Apart from that, there are some tweaks to the Generator (newton.h) to make it faster and the internals of FreeSemiring will now use raw pointers instead of shared_ptr. Finally we also disable the assertion in Release mode (-DNDEBUG).
To sum up, all of the above changes bring the run-time of float-perf-test3.g from around 3.7s to 0.4s. :-)
Btw if you have some tests not included in the testsuite, please remember to run them -- there are quite a lot of changes here...
This implements a better representation of
Polynomial
andMonomial
classes (should be safer and according to benchmarks is also faster).Apart from that, there are some tweaks to the
Generator
(newton.h
) to make it faster and the internals ofFreeSemiring
will now use raw pointers instead ofshared_ptr
. Finally we also disable the assertion inRelease
mode (-DNDEBUG
).To sum up, all of the above changes bring the run-time of
float-perf-test3.g
from around 3.7s to 0.4s. :-)Btw if you have some tests not included in the testsuite, please remember to run them -- there are quite a lot of changes here...