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