1 // Copyright 2014 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #ifndef _BC_PDF417ECMODULUSPOLY_H_ 8 #define _BC_PDF417ECMODULUSPOLY_H_ 9 class CBC_PDF417ECModulusGF; 10 class CBC_PDF417ECModulusPoly { 11 public: 12 CBC_PDF417ECModulusPoly(CBC_PDF417ECModulusGF* field, 13 CFX_Int32Array& coefficients, 14 int32_t& e); 15 virtual ~CBC_PDF417ECModulusPoly(); 16 CFX_Int32Array& getCoefficients(); 17 CBC_PDF417ECModulusGF* getField(); 18 int32_t getDegree(); 19 FX_BOOL isZero(); 20 int32_t getCoefficient(int32_t degree); 21 int32_t evaluateAt(int32_t a); 22 CBC_PDF417ECModulusPoly* add(CBC_PDF417ECModulusPoly* other, int32_t& e); 23 CBC_PDF417ECModulusPoly* subtract(CBC_PDF417ECModulusPoly* other, int32_t& e); 24 CBC_PDF417ECModulusPoly* multiply(CBC_PDF417ECModulusPoly* other, int32_t& e); 25 CBC_PDF417ECModulusPoly* negative(int32_t& e); 26 CBC_PDF417ECModulusPoly* multiply(int32_t scalar, int32_t& e); 27 CBC_PDF417ECModulusPoly* multiplyByMonomial(int32_t degree, 28 int32_t coefficient, 29 int32_t& e); 30 CFX_PtrArray* divide(CBC_PDF417ECModulusPoly* other, int32_t& e); 31 CFX_ByteString toString(); 32 33 private: 34 CBC_PDF417ECModulusGF* m_field; 35 CFX_Int32Array m_coefficients; 36 }; 37 #endif 38