diff options
Diffstat (limited to 'xfa/fxbarcode/pdf417/BC_PDF417ECModulusGF.h')
-rw-r--r-- | xfa/fxbarcode/pdf417/BC_PDF417ECModulusGF.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/xfa/fxbarcode/pdf417/BC_PDF417ECModulusGF.h b/xfa/fxbarcode/pdf417/BC_PDF417ECModulusGF.h new file mode 100644 index 0000000000..094e00164d --- /dev/null +++ b/xfa/fxbarcode/pdf417/BC_PDF417ECModulusGF.h @@ -0,0 +1,39 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_FXBARCODE_PDF417_BC_PDF417ECMODULUSGF_H_ +#define XFA_FXBARCODE_PDF417_BC_PDF417ECMODULUSGF_H_ + +class CBC_PDF417ECModulusPoly; +class CBC_PDF417ECModulusGF { + public: + CBC_PDF417ECModulusGF(int32_t modulus, int32_t generator, int32_t& e); + virtual ~CBC_PDF417ECModulusGF(); + static void Initialize(int32_t& e); + static void Finalize(); + CBC_PDF417ECModulusPoly* getZero(); + CBC_PDF417ECModulusPoly* getOne(); + CBC_PDF417ECModulusPoly* buildMonomial(int32_t degree, + int32_t coefficient, + int32_t& e); + int32_t add(int32_t a, int32_t b); + int32_t subtract(int32_t a, int32_t b); + int32_t exp(int32_t a); + int32_t log(int32_t a, int32_t& e); + int32_t inverse(int32_t a, int32_t& e); + int32_t multiply(int32_t a, int32_t b); + int32_t getSize(); + static CBC_PDF417ECModulusGF* PDF417_GF; + + private: + CFX_Int32Array m_expTable; + CFX_Int32Array m_logTable; + CBC_PDF417ECModulusPoly* m_zero; + CBC_PDF417ECModulusPoly* m_one; + int32_t m_modulus; +}; + +#endif // XFA_FXBARCODE_PDF417_BC_PDF417ECMODULUSGF_H_ |