示例#1
0
 public override GaSymMultivectorTerm MapToTerm(int id1, int id2)
 {
     return(GaSymMultivectorTerm.CreateTerm(
                TargetGaSpaceDimension,
                id1 ^ id2,
                GMacMathUtils.IsNegativeEGp(id1, id2) ? Expr.INT_MINUSONE : Expr.INT_ONE
                ));
 }
示例#2
0
 public override GaSymMultivectorTerm MapToTerm(int id1, int id2)
 {
     return GaSymMultivectorTerm.CreateTerm(
         TargetGaSpaceDimension,
         id1 ^ id2,
         GMacMathUtils.IsNegativeEGp(id1, id2)
             ? Mfs.Minus[OrthogonalMetric[id1 & id2]]
             : OrthogonalMetric[id1 & id2]
     );
 }
示例#3
0
 public override GaSymMultivectorTerm MapToTerm(int id1, int id2)
 {
     return(GaSymMultivectorTerm.CreateTerm(
                TargetGaSpaceDimension,
                id1 ^ id2,
                GMacMathUtils.IsNegativeEGp(id1, id2)
             ? Mfs.Minus[OrthonormalMetric.GetExprSignature(id1 & id2)]
             : OrthonormalMetric.GetExprSignature(id1 & id2)
                ));
 }
示例#4
0
        public override IGaSymMultivector this[int id1]
        {
            get
            {
                IGaSymMultivector mv;
                _basisBladeMaps.TryGetLeafValue((ulong)id1, out mv);

                return(mv
                       ?? GaSymMultivectorTerm.CreateZero(TargetGaSpaceDimension));
            }
        }
示例#5
0
        public override IGaSymMultivector this[int id1, int id2]
        {
            get
            {
                IGaSymMultivector resultMv;
                _basisBladesMaps.TryGetValue(id1, id2, out resultMv);

                return(resultMv
                       ?? GaSymMultivectorTerm.CreateZero(TargetGaSpaceDimension));
            }
        }
示例#6
0
 public override GaSymMultivectorTerm MapToTerm(int id1, int id2)
 {
     return(GaSymMultivectorTerm.CreateTerm(
                TargetGaSpaceDimension,
                0,
                GMacMathUtils.IsNonZeroESp(id1, id2)
             ? (GMacMathUtils.IsNegativeEGp(id1, id1)
                 ? Mfs.Minus[OrthonormalMetric.GetExprSignature(id1)]
                 : OrthonormalMetric.GetExprSignature(id1))
             : Expr.INT_ZERO
                ));
 }
示例#7
0
 public override IGaSymMultivector this[int id1]
 => _basisBladeMaps[id1]
 ?? GaSymMultivectorTerm.CreateZero(TargetGaSpaceDimension);