comparison mupdf-source/thirdparty/zxing-cpp/core/src/ReedSolomonEncoder.h @ 3:2c135c81b16c

MERGE: upstream PyMuPDF 1.26.4 with MuPDF 1.26.7
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:44:09 +0200
parents b50eed0cc0ef
children
comparison
equal deleted inserted replaced
0:6015a75abc2d 3:2c135c81b16c
1 /*
2 * Copyright 2016 Huy Cuong Nguyen
3 * Copyright 2016 ZXing authors
4 */
5 // SPDX-License-Identifier: Apache-2.0
6
7 #pragma once
8
9 #include "GenericGFPoly.h"
10
11 #include <list>
12 #include <vector>
13
14 namespace ZXing {
15
16 // public only for testing purposes
17 class ReedSolomonEncoder
18 {
19 public:
20 explicit ReedSolomonEncoder(const GenericGF& field);
21
22 void encode(std::vector<int>& message, int numECCodeWords);
23
24 private:
25 const GenericGF* _field;
26 std::list<GenericGFPoly> _cachedGenerators;
27
28 const GenericGFPoly& buildGenerator(int degree);
29 };
30
31 /**
32 * @brief ReedSolomonEncode replaces the last numECCodeWords code words in message with error correction code words
33 */
34 inline void ReedSolomonEncode(const GenericGF& field, std::vector<int>& message, int numECCodeWords)
35 {
36 ReedSolomonEncoder(field).encode(message, numECCodeWords);
37 }
38
39 } // namespace ZXing