upperbounds for the inequality constraint was set at 1.0^6 rather than
either 10^6 (or maybe 1e6?), this seemed to cause weird behaviour in
constrained optimisation.