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); }
public static PureGrade Conjugate(PureGrade M) => M.Clone().Conjugate();
public static PureGrade Reverse(PureGrade M) => M.Clone().Reverse();
public static PureGrade Involute(PureGrade M) => M.Clone().Involute();
public PureGrade Copy(PureGrade b) => (PureGrade)base.Copy(b);
public static PureGrade Clone(PureGrade M) => M.Clone();
// Retyping Multivector methods to return PureGrade public PureGrade(PureGrade M) : this(M.Space, M.Grade) => Copy(M);