UNPKG

@zxing/library

Version:

TypeScript port of ZXing multi-format 1D/2D barcode image processing library.

48 lines (47 loc) 1.75 kB
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; }