Beispiel #1
0
        public override IGaSymMultivectorTemp MapToTemp(GaSymMultivector mv1, GaSymMultivector mv2)
        {
            if (mv1.GaSpaceDimension != DomainGaSpaceDimension || mv2.GaSpaceDimension != DomainGaSpaceDimension2)
            {
                throw new GMacSymbolicException("Multivector size mismatch");
            }

            return(GaSymMultivector
                   .CreateZeroTemp(TargetGaSpaceDimension)
                   .AddFactors(mv1.GetBiTermsForEAcp(mv2)));
        }
        public static GaSymMultivector EAcp(this GaSymMultivector mv1, GaSymMultivector mv2)
        {
            if (mv1.GaSpaceDimension != mv2.GaSpaceDimension)
            {
                throw new GMacSymbolicException("Multivector size mismatch");
            }

            return(GaSymMultivector
                   .CreateZeroTemp(mv1.GaSpaceDimension)
                   .AddFactors(mv1.GetBiTermsForEAcp(mv2))
                   .ToMultivector());
        }