def fix(self, *args, **kwargs):
<EOL>self.set(**kwargs)<EOL>pnames = list(args) + list(kwargs.keys())<EOL>for pname in pnames:<EOL><INDENT>if not pname in self._pnames:<EOL><INDENT>self._error("<STR_LIT>"+pname+"<STR_LIT>")<EOL><DEDENT>else:<EOL><INDENT>n = self._pnames.index(pname)<EOL>if self.results: value = self.results[<NUM_LIT:0>][n]<EOL>else: value = self._pguess[n]<EOL>if type(self._pnames)    is not list: self._pnames    = list(self._pnames)<EOL>if type(self._pguess)    is not list: self._pguess    = list(self._pguess)<EOL>if type(self._cnames)    is not list: self._cnames    = list(self._cnames)<EOL>if type(self._constants) is not list: self._constants = list(self._constants)<EOL>self._pnames.pop(n)<EOL>self._pguess.pop(n)<EOL>self._cnames.append(pname)<EOL>self._constants.append(value)<EOL>self._update_functions()<EOL><DEDENT><DEDENT>return self<EOL>
Turns parameters to constants. As arguments, parameters must be strings.
As keyword arguments, they can be set at the same time.

Note this will NOT work when specifying a non-string fit function, 
because there is no flexibility in the number of arguments. To get
around this, suppose you've defined a function stuff(x,a,b). Instead
of sending the stuff object to self.set_functions() directly, make it
a string function, e.g.:

  self.set_functions('stuff(x,a,b)', 'a,b', stuff=stuff)