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_PDF417ECMODULUSGF_H_ 8 #define _BC_PDF417ECMODULUSGF_H_ 9 class CBC_PDF417ECModulusPoly; 10 class CBC_PDF417Common; 11 class CBC_PDF417ECModulusGF { 12 public: 13 CBC_PDF417ECModulusGF(int32_t modulus, int32_t generator, int32_t& e); 14 virtual ~CBC_PDF417ECModulusGF(); 15 static void Initialize(int32_t& e); 16 static void Finalize(); 17 CBC_PDF417ECModulusPoly* getZero(); 18 CBC_PDF417ECModulusPoly* getOne(); 19 CBC_PDF417ECModulusPoly* buildMonomial(int32_t degree, 20 int32_t coefficient, 21 int32_t& e); 22 int32_t add(int32_t a, int32_t b); 23 int32_t subtract(int32_t a, int32_t b); 24 int32_t exp(int32_t a); 25 int32_t log(int32_t a, int32_t& e); 26 int32_t inverse(int32_t a, int32_t& e); 27 int32_t multiply(int32_t a, int32_t b); 28 int32_t getSize(); 29 static CBC_PDF417ECModulusGF* PDF417_GF; 30 31 private: 32 CFX_Int32Array m_expTable; 33 CFX_Int32Array m_logTable; 34 CBC_PDF417ECModulusPoly* m_zero; 35 CBC_PDF417ECModulusPoly* m_one; 36 int32_t m_modulus; 37 }; 38 #endif 39