Esempio n. 1
0
        public Multivector SetGrade(PureGrade value)
        {
            if (Space != value.Space)
            {
                throw new ArgumentException("Cannot set grade from a different space than the original multivector.");
            }

            var k = value.Grade;
            var l = value.Elements.Count;

            for (uint i = 0; i < l; i++)
            {
                this[(int)Space.IndexFromBladeBasis(k, i)] = value.Elements[(int)i];
            }

            return(this);
        }
Esempio n. 2
0
 public static PureGrade Conjugate(PureGrade M)
 => M.Clone().Conjugate();
Esempio n. 3
0
 public static PureGrade Reverse(PureGrade M)
 => M.Clone().Reverse();
Esempio n. 4
0
 public static PureGrade Involute(PureGrade M)
 => M.Clone().Involute();
Esempio n. 5
0
 public PureGrade Copy(PureGrade b) => (PureGrade)base.Copy(b);
Esempio n. 6
0
 public static PureGrade Clone(PureGrade M) => M.Clone();
Esempio n. 7
0
        // Retyping Multivector methods to return PureGrade

        public PureGrade(PureGrade M) : this(M.Space, M.Grade) => Copy(M);