default constructor (needed to initialize parent classes) IParamFunction() : BaseParamFunc() {} user may re-implement this for better efficiency this method is NOT required to change internal values of parameters. confusing ?? Evaluate function at a point x and for parameters p. This method mey be needed for better efficiencies when for each function evaluation the parameters are changed.