public override CoordinatesMutator <TAlgorithm, TProblem, TSolution> DeepClone() { return(new CoordinatesMutatorMPT <TAlgorithm, TProblem, TSolution>(MutationProbability, Power) { GetLowerSearchBorders = (Func <double[]>?)GetLowerSearchBorders?.Clone(), GetUpperSearchBorders = (Func <double[]>?)GetUpperSearchBorders?.Clone(), GetRandom = (Func <Random>?)GetRandom?.Clone() }); }