public object Clone()
{
var svd = new SingularValueDecomposition();
svd.m = m;
svd.n = n;
svd.s = (double[]) s.Clone();
svd.si = (int[]) si.Clone();
svd.swapped = swapped;
if (u != null) svd.u = (double[,]) u.Clone();
if (v != null) svd.v = (double[,]) u.Clone();
return svd;
}