protected void RecreateParameters()
{
// Keep a reference to old ones to copy
var savedParams = parameters;
// Create new params
parameters = program.CreateParameters();
// Copy old (matching) values across
// Don't use copyConstantsFrom since program may be different
if (savedParams != null)
parameters.CopyMatchingNamedConstantsFrom(savedParams);
recreateParams = false;
}