public override IEnumerable <Tuple <int, IGaNumMultivector> > BasisVectorMaps() { for (var index = 0; index < DomainVSpaceDimension; index++) { var mv = GaNumMultivector.CreateFromColumn(VectorsMappingMatrix, index); if (!mv.IsNullOrZero()) { yield return(Tuple.Create(index, (IGaNumMultivector)mv)); } } }
public static GaNumMapUnilinearCoefSums ToCoefSumsMap(this Matrix linearMapMatrix) { Debug.Assert(linearMapMatrix.RowCount.IsValidGaSpaceDimension() && linearMapMatrix.ColumnCount.IsValidGaSpaceDimension()); var resultMap = GaNumMapUnilinearCoefSums.Create( linearMapMatrix.ColumnCount.ToVSpaceDimension(), linearMapMatrix.RowCount.ToVSpaceDimension() ); for (var id = 0; id < linearMapMatrix.ColumnCount; id++) { var mv = GaNumMultivector.CreateFromColumn(linearMapMatrix, id); if (!mv.IsNullOrZero()) { resultMap.SetBasisBladeMap(id, mv); } } return(resultMap); }
public override IGaNumMultivector this[int id1] => GaNumMultivector.CreateFromColumn(InternalMappingMatrix, id1);