/// <summary> /// Squares this GF2nPolynomialElement using GF2nField's squaring matrix. /// <para>This is supposed to be fast when using a polynomial (no tri- or pentanomial) as fieldpolynomial. /// Use SquarePreCalc when using a tri- or pentanomial as fieldpolynomial instead.</para> /// </summary> /// /// <returns>Returns <c>this^2</c> (newly created)</returns> public GF2nPolynomialElement SquareMatrix() { GF2nPolynomialElement result = new GF2nPolynomialElement(this); result.SquareThisMatrix(); result.ReduceThis(); return(result); }
/// <summary> /// Squares this GF2nPolynomialElement by shifting left its Bitstring and reducing. /// <para>This is supposed to be the slowest method. Use SquarePreCalc or SquareMatrix instead.</para> /// </summary> /// /// <returns></returns> public GF2nPolynomialElement SquareBitwise() { GF2nPolynomialElement result = new GF2nPolynomialElement(this); result.SquareThisBitwise(); result.ReduceThis(); return(result); }
/// <summary> /// Squares this GF2nPolynomialElement by using precalculated values and reducing. /// <para>This is supposed to de fastest when using a trinomial or pentanomial as field polynomial. /// Use SquareMatrix when using a ordinary polynomial as field polynomial.</para> /// </summary> /// /// <returns></returns> public GF2nPolynomialElement SquarePreCalc() { GF2nPolynomialElement result = new GF2nPolynomialElement(this); result.SquareThisPreCalc(); result.ReduceThis(); return(result); }
/// <summary> /// Squares this GF2nPolynomialElement by using precalculated values and reducing. /// <para>This is supposed to de fastest when using a trinomial or pentanomial as field polynomial. /// Use SquareMatrix when using a ordinary polynomial as field polynomial.</para> /// </summary> /// /// <returns></returns> public GF2nPolynomialElement SquarePreCalc() { GF2nPolynomialElement result = new GF2nPolynomialElement(this); result.SquareThisPreCalc(); result.ReduceThis(); return result; }
/// <summary> /// Squares this GF2nPolynomialElement using GF2nField's squaring matrix. /// <para>This is supposed to be fast when using a polynomial (no tri- or pentanomial) as fieldpolynomial. /// Use SquarePreCalc when using a tri- or pentanomial as fieldpolynomial instead.</para> /// </summary> /// /// <returns>Returns <c>this^2</c> (newly created)</returns> public GF2nPolynomialElement SquareMatrix() { GF2nPolynomialElement result = new GF2nPolynomialElement(this); result.SquareThisMatrix(); result.ReduceThis(); return result; }
/// <summary> /// Squares this GF2nPolynomialElement by shifting left its Bitstring and reducing. /// <para>This is supposed to be the slowest method. Use SquarePreCalc or SquareMatrix instead.</para> /// </summary> /// /// <returns></returns> public GF2nPolynomialElement SquareBitwise() { GF2nPolynomialElement result = new GF2nPolynomialElement(this); result.SquareThisBitwise(); result.ReduceThis(); return result; }