The timings for C-code are:
Simplex, with constraints = 2.192
Simplex, without constraints = 0.216
BFGS, without constraints = 0.079
Newton, without constraints = 0.031
This is pretty pretty fast.
To this profiling script, I would also now add some verification on calculations.
Profile, with constraints, C code, Simplex
Wed Aug 27 11:45:16 2014 /var/folders/ww/1jkhkh315x57jglgxnr9g24w0000gp/T/tmpvJSNrB
724946 function calls (723444 primitive calls) in 2.192 seconds
Ordered by: cumulative time
List reduced from 307 to 1 due to restriction <1>
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 2.192 2.192 profiling_relax_fit.py:314(verify)
Verify, without constraints, C code, Simplex
Wed Aug 27 11:45:16 2014 /var/folders/ww/1jkhkh315x57jglgxnr9g24w0000gp/T/tmphJ9GV3
76042 function calls (74654 primitive calls) in 0.216 seconds
Ordered by: cumulative time
List reduced from 132 to 1 due to restriction <1>
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.216 0.216 profiling_relax_fit.py:314(verify)
Verify, without constraints, C code BFGS
Wed Aug 27 11:45:16 2014 /var/folders/ww/1jkhkh315x57jglgxnr9g24w0000gp/T/tmp78MZjS
25618 function calls (24230 primitive calls) in 0.079 seconds
Ordered by: cumulative time
List reduced from 153 to 1 due to restriction <1>
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.079 0.079 profiling_relax_fit.py:314(verify)
Verify, without constraints, C code Newton
Wed Aug 27 11:45:16 2014 /var/folders/ww/1jkhkh315x57jglgxnr9g24w0000gp/T/tmp2IPgFC
14572 function calls (13184 primitive calls) in 0.031 seconds
Ordered by: cumulative time
List reduced from 169 to 1 due to restriction <1>
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.031 0.031 profiling_relax_fit.py:314(verify)
Verify, with constraints, Python, Simplex
Wed Aug 27 11:45:20 2014 /var/folders/ww/1jkhkh315x57jglgxnr9g24w0000gp/T/tmpQUUY4L
808444 function calls (806942 primitive calls) in 3.108 seconds
Ordered by: cumulative time
List reduced from 141 to 1 due to restriction <1>
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 3.108 3.108 profiling_relax_fit.py:353(verify_pyt)
Verify, without constraints, Python, Simplex
Wed Aug 27 11:45:20 2014 /var/folders/ww/1jkhkh315x57jglgxnr9g24w0000gp/T/tmp3nFBTq
87492 function calls (86104 primitive calls) in 0.320 seconds
Ordered by: cumulative time
List reduced from 131 to 1 due to restriction <1>
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.320 0.320 profiling_relax_fit.py:353(verify_pyt)
Verify, without constraints, Python Scipy
Wed Aug 27 11:45:20 2014 /var/folders/ww/1jkhkh315x57jglgxnr9g24w0000gp/T/tmpo1HoWn
6600 function calls (5212 primitive calls) in 0.020 seconds
Ordered by: cumulative time
List reduced from 137 to 1 due to restriction <1>
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.020 0.020 profiling_relax_fit.py:388(verify_sci)
task #7822(https://gna.org/task/index.php?7822): Implement user function to estimate R2eff and associated errors for exponential curve fitting.