Make solver non-linear + perf
Defaults to 0, also ensure conversion to float