public override GaSymMultivectorTerm MapToTerm(int id1, int id2) { return(GaSymMultivectorTerm.CreateTerm( TargetGaSpaceDimension, id1 ^ id2, GMacMathUtils.IsNegativeEGp(id1, id2) ? Expr.INT_MINUSONE : Expr.INT_ONE )); }
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] ); }
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) )); }
public override IGaSymMultivector this[int id1] { get { IGaSymMultivector mv; _basisBladeMaps.TryGetLeafValue((ulong)id1, out mv); return(mv ?? GaSymMultivectorTerm.CreateZero(TargetGaSpaceDimension)); } }
public override IGaSymMultivector this[int id1, int id2] { get { IGaSymMultivector resultMv; _basisBladesMaps.TryGetValue(id1, id2, out resultMv); return(resultMv ?? GaSymMultivectorTerm.CreateZero(TargetGaSpaceDimension)); } }
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 )); }
public override IGaSymMultivector this[int id1] => _basisBladeMaps[id1] ?? GaSymMultivectorTerm.CreateZero(TargetGaSpaceDimension);