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_READSOLOMONGF256POLY_H_ 8 #define _BC_READSOLOMONGF256POLY_H_ 9 class CBC_ReedSolomonGF256; 10 class CBC_ReedSolomonGF256Poly { 11 public: 12 CBC_ReedSolomonGF256Poly(CBC_ReedSolomonGF256* field, int32_t coefficients); 13 CBC_ReedSolomonGF256Poly(); 14 virtual ~CBC_ReedSolomonGF256Poly(); 15 int32_t GetCoefficients(int32_t degree); 16 CFX_Int32Array* GetCoefficients(); 17 int32_t GetDegree(); 18 FX_BOOL IsZero(); 19 int32_t EvaluateAt(int32_t a); 20 CBC_ReedSolomonGF256Poly* AddOrSubtract(CBC_ReedSolomonGF256Poly* other, 21 int32_t& e); 22 CBC_ReedSolomonGF256Poly* Multiply(CBC_ReedSolomonGF256Poly* other, 23 int32_t& e); 24 CBC_ReedSolomonGF256Poly* Multiply(int32_t scalar, int32_t& e); 25 CBC_ReedSolomonGF256Poly* MultiplyByMonomial(int32_t degree, 26 int32_t coefficient, 27 int32_t& e); 28 CFX_PtrArray* Divide(CBC_ReedSolomonGF256Poly* other, int32_t& e); 29 CBC_ReedSolomonGF256Poly* Clone(int32_t& e); 30 virtual void Init(CBC_ReedSolomonGF256* field, 31 CFX_Int32Array* coefficients, 32 int32_t& e); 33 34 private: 35 CBC_ReedSolomonGF256* m_field; 36 CFX_Int32Array m_coefficients; 37 }; 38 #endif 39