public T Clone() { var r = new T(); r.A = (DenseMatrix)A.Clone(); r.B = (DenseVector)B.Clone(); r.C = (DenseVector)C.Clone(); if (J != null) { r.J = new List <int> (J); } r.N = N; r.M = M; r.DL = (DenseVector)DL.Clone(); r.DR = (DenseVector)DR.Clone(); return(r); }