private double[] NormalVector(double[,] m, List <double[]> dRho) { double detm = MetricTensorDet(m); double[] drhoBydrho = VectorOperations.VectorCrossProduct(dRho[0], dRho[1]); double[] n = VectorOperations.VectorScalarProductNew(drhoBydrho, 1.0 / (Math.Sqrt(detm))); return(n); }