コード例 #1
0
ファイル: GaMultivector.cs プロジェクト: phreed/GMac
        public static GaMultivector CreatePseudoScalar(int gaspacedim, MathematicaScalar coef)
        {
            var resultMv = new GaMultivector(gaspacedim)
            {
                [gaspacedim - 1] = coef
            };


            return(resultMv);
        }
コード例 #2
0
ファイル: GaMultivector.cs プロジェクト: phreed/GMac
        public static GaMultivector CreateBasisBlade(int gaspacedim, int id)
        {
            var resultMv = new GaMultivector(gaspacedim)
            {
                [id] = SymbolicUtils.Constants.One
            };


            return(resultMv);
        }
コード例 #3
0
ファイル: GaMultivector.cs プロジェクト: phreed/GMac
        public static GaMultivector CreateTerm(int gaspacedim, int id, MathematicaScalar coef)
        {
            var resultMv = new GaMultivector(gaspacedim)
            {
                [id] = coef
            };


            return(resultMv);
        }
コード例 #4
0
ファイル: GaMultivector.cs プロジェクト: phreed/GMac
        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);
        }
コード例 #5
0
ファイル: GaMultivector.cs プロジェクト: phreed/GMac
        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);
        }
コード例 #6
0
ファイル: GaMultivector.cs プロジェクト: phreed/GMac
        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);
        }