public static GaMultivector CreatePseudoScalar(int gaspacedim, MathematicaScalar coef) { var resultMv = new GaMultivector(gaspacedim) { [gaspacedim - 1] = coef }; return(resultMv); }
public static GaMultivector CreateBasisBlade(int gaspacedim, int id) { var resultMv = new GaMultivector(gaspacedim) { [id] = SymbolicUtils.Constants.One }; return(resultMv); }
public static GaMultivector CreateTerm(int gaspacedim, int id, MathematicaScalar coef) { var resultMv = new GaMultivector(gaspacedim) { [id] = coef }; return(resultMv); }
public static GaMultivector CreateCopy(GaMultivector mv) { var resultMv = new GaMultivector(mv.GaSpaceDim); foreach (var term in mv) { resultMv.Add(term.Key, term.Value); } return(resultMv); }
public GaMultivector CliffConj() { var resultMv = new GaMultivector(GaSpaceDim); foreach (var term in _internalDictionary) { if (term.Key.BasisBladeIdHasNegativeClifConj()) { resultMv._internalDictionary.Add(term.Key, -term.Value); } else { resultMv._internalDictionary.Add(term.Key, term.Value); } } return(resultMv); }
public Dictionary <int, GaMultivector> ToKVectors() { var kvectorsList = new Dictionary <int, GaMultivector>(); foreach (var pair in _internalDictionary) { GaMultivector mv; var grade = pair.Key.BasisBladeGrade(); if (kvectorsList.TryGetValue(grade, out mv) == false) { mv = new GaMultivector(GaSpaceDim); kvectorsList.Add(grade, mv); } mv.Add(pair.Key, pair.Value); } return(kvectorsList); }