OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #ifndef _BC_READSOLOMONGF256POLY_H_ | 7 #ifndef _BC_READSOLOMONGF256POLY_H_ |
8 #define _BC_READSOLOMONGF256POLY_H_ | 8 #define _BC_READSOLOMONGF256POLY_H_ |
9 class CBC_ReedSolomonGF256; | 9 class CBC_ReedSolomonGF256; |
10 class CBC_ReedSolomonGF256Poly; | 10 class CBC_ReedSolomonGF256Poly |
11 class CBC_ReedSolomonGF256Poly : public CFX_Object | |
12 { | 11 { |
13 public: | 12 public: |
14 CBC_ReedSolomonGF256Poly(CBC_ReedSolomonGF256* field, FX_INT32 coefficients)
; | 13 CBC_ReedSolomonGF256Poly(CBC_ReedSolomonGF256* field, FX_INT32 coefficients)
; |
15 CBC_ReedSolomonGF256Poly(); | 14 CBC_ReedSolomonGF256Poly(); |
16 virtual ~CBC_ReedSolomonGF256Poly(); | 15 virtual ~CBC_ReedSolomonGF256Poly(); |
17 FX_INT32 GetCoefficients(FX_INT32 degree); | 16 FX_INT32 GetCoefficients(FX_INT32 degree); |
18 CFX_Int32Array* GetCoefficients(); | 17 CFX_Int32Array* GetCoefficients(); |
19 FX_INT32 GetDegree(); | 18 FX_INT32 GetDegree(); |
20 FX_BOOL IsZero(); | 19 FX_BOOL IsZero(); |
21 FX_INT32 EvaluateAt(FX_INT32 a); | 20 FX_INT32 EvaluateAt(FX_INT32 a); |
22 CBC_ReedSolomonGF256Poly* AddOrSubtract(CBC_ReedSolomonGF256Poly* other, FX_
INT32 &e); | 21 CBC_ReedSolomonGF256Poly* AddOrSubtract(CBC_ReedSolomonGF256Poly* other, FX_
INT32 &e); |
23 CBC_ReedSolomonGF256Poly* Multiply(CBC_ReedSolomonGF256Poly* other, FX_INT32
&e); | 22 CBC_ReedSolomonGF256Poly* Multiply(CBC_ReedSolomonGF256Poly* other, FX_INT32
&e); |
24 CBC_ReedSolomonGF256Poly* Multiply(FX_INT32 scalar, FX_INT32 &e); | 23 CBC_ReedSolomonGF256Poly* Multiply(FX_INT32 scalar, FX_INT32 &e); |
25 CBC_ReedSolomonGF256Poly* MultiplyByMonomial(FX_INT32 degree, FX_INT32 coeff
icient, FX_INT32 &e); | 24 CBC_ReedSolomonGF256Poly* MultiplyByMonomial(FX_INT32 degree, FX_INT32 coeff
icient, FX_INT32 &e); |
26 CFX_PtrArray* Divide(CBC_ReedSolomonGF256Poly *other, FX_INT32 &e); | 25 CFX_PtrArray* Divide(CBC_ReedSolomonGF256Poly *other, FX_INT32 &e); |
27 CBC_ReedSolomonGF256Poly* Clone(FX_INT32 &e); | 26 CBC_ReedSolomonGF256Poly* Clone(FX_INT32 &e); |
28 virtual void Init(CBC_ReedSolomonGF256* field, CFX_Int32Array* coefficients,
FX_INT32 &e); | 27 virtual void Init(CBC_ReedSolomonGF256* field, CFX_Int32Array* coefficients,
FX_INT32 &e); |
29 private: | 28 private: |
30 CBC_ReedSolomonGF256* m_field; | 29 CBC_ReedSolomonGF256* m_field; |
31 CFX_Int32Array m_coefficients; | 30 CFX_Int32Array m_coefficients; |
32 }; | 31 }; |
33 #endif | 32 #endif |
OLD | NEW |