I just noticed, that fixing a parameter of TF1/2 sets the limits of parameter to 1,1. Releasing it sets it to 0,0. The original limits set by a user are lost. As this behaviour is not documented (at least I think it is not ), I wonder if it is a bug or feature. Perhaps original parameter limits could be stored somewhere, and fixing/releasing would not change them?
Another thing is a feature request. Could you implement TF1::FixParameter(Int_t)? I mean the version of fixing parameter that does not require specifing the parameter value and fix to the current parameter value. Implementation, I guess is very simple - just calling FixParameter(parnum, TF1::GetParameter(parnum)). In case of multistage fit where some parameters are just fixed an released this function version would be handy…