public Simplex(Tuple <int, Vector <double> >[] edges, RiemannianSpace ambiantSpace) : base(edges) { var directionalVectors = new List <Vector <double> >(); foreach (var item in edges.Skip(1)) { directionalVectors.Add(item.Item2 - BasePoint); } DirectionalVectors = directionalVectors.ToArray(); DimAmbiantSpace = BasePoint.Count(); Parametrization chart = x => { var dir = Matrix <double> .Build.DenseOfColumnVectors(DirectionalVectors); return(dir * x + BasePoint); }; PushForward pushForward = x => { return(Matrix <double> .Build.DenseOfColumnVectors(DirectionalVectors)); }; AmbiantSpace = ambiantSpace; Trivialization = new LocalTrivialization(chart, pushForward, ambiantSpace); }