@zxing/library
Version:
TypeScript port of ZXing multi-format 1D/2D barcode image processing library.
48 lines (47 loc) • 1.75 kB
TypeScript
import AbstractGenericGF from './AbstractGenericGF';
/**
* <p>Represents a polynomial whose coefficients are elements of a GF.
* Instances of this class are immutable.</p>
*
* <p>Much credit is due to William Rucklidge since portions of this code are an indirect
* port of his C++ Reed-Solomon implementation.</p>
*
* @author Sean Owen
*/
export default class GenericGFPoly {
private field;
private coefficients;
/**
* @param field the {@link GenericGF} instance representing the field to use
* to perform computations
* @param coefficients coefficients as ints representing elements of GF(size), arranged
* from most significant (highest-power term) coefficient to least significant
* @throws IllegalArgumentException if argument is null or empty,
* or if leading coefficient is 0 and this is not a
* constant polynomial (that is, it is not the monomial "0")
*/
constructor(field: AbstractGenericGF, coefficients: Int32Array);
getCoefficients(): Int32Array;
/**
* @return degree of this polynomial
*/
getDegree(): number;
/**
* @return true iff this polynomial is the monomial "0"
*/
isZero(): boolean;
/**
* @return coefficient of x^degree term in this polynomial
*/
getCoefficient(degree: number): number;
/**
* @return evaluation of this polynomial at a given point
*/
evaluateAt(a: number): number;
addOrSubtract(other: GenericGFPoly): GenericGFPoly;
multiply(other: GenericGFPoly): GenericGFPoly;
multiplyScalar(scalar: number): GenericGFPoly;
multiplyByMonomial(degree: number, coefficient: number): GenericGFPoly;
divide(other: GenericGFPoly): GenericGFPoly[];
toString(): string;
}