public SolverLP Clone() { //if (compactSolution != null && !allowReuse) throw new InvalidOperationException(); SolverLP clone = (SolverLP)this.MemberwiseClone(); clone.compactSolution = null; clone.lp = lp.Clone(); if (Log != null) { clone.Log = new StringBuilder(Log.ToString()); } //if (disabledHex != null) clone.disabledHex = (int[])disabledHex.Clone(); return(clone); }