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));
                }
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 public override IGaNumMultivector this[int id1]
 => GaNumMultivector.CreateFromColumn(InternalMappingMatrix, id1);