code: public StochasticPathwiseLevenbergMarquardt getCloneWithModifiedTargetValues(List<RandomVariable> newTargetVaues, List<RandomVariable> newWeights, boolean isUseBestParametersAsInitialParameters) throws CloneNotSupportedException {
  		StochasticPathwiseLevenbergMarquardt clonedOptimizer = clone();
  		clonedOptimizer.targetValues = numberListToDoubleArray(newTargetVaues);
  		clonedOptimizer.weights = numberListToDoubleArray(newWeights);
  
  		if(isUseBestParametersAsInitialParameters && this.done()) {
  			clonedOptimizer.initialParameters = this.getBestFitParameters();
  		}
  
  		return clonedOptimizer;
  	}
docs: Create a clone of this LevenbergMarquardt optimizer with a new vector for the
  target values and weights.
  
  The clone will use the same objective function than this implementation,
  i.e., the implementation of {@link #setValues(RandomVariable[], RandomVariable[])} and
  that of {@link #setDerivatives(RandomVariable[], RandomVariable[][])} is reused.
  
  The initial values of the cloned optimizer will either be the original
  initial values of this object or the best parameters obtained by this
  optimizer, the latter is used only if this optimized signals a {@link #done()}.
  
  @param newTargetVaues New list of target values.
  @param newWeights New list of weights.
  @param isUseBestParametersAsInitialParameters If true and this optimizer is done(), then the clone will use this.{@link #getBestFitParameters()} as initial parameters.
  @return A new LevenbergMarquardt optimizer, cloning this one except modified target values and weights.
  @throws CloneNotSupportedException Thrown if this optimizer cannot be cloned.