vendor/khanamiryan/qrcode-detector-decoder/lib/common/reedsolomon/GenericGFPoly.php

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php
/*
 * Copyright 2007 ZXing authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

namespace Zxing\Common\Reedsolomon;

/**
 * <p>Represents a polynomial whose coefficients are elements of a GF.
 * Instances of this class are immutable.</p>
 *
 * <p>Much credit is due to William Rucklidge since portions of this code are an indirect
 * port of his C++ Reed-Solomon implementation.</p>
 *
 * @author Sean Owen
 */
final class GenericGFPoly {

  private $field;
  private $coefficients;

  /**
   * @param field the {@link GenericGF} instance representing the field to use
   * to perform computations
   * @param coefficients array coefficients as ints representing elements of GF(size), arranged
   * from most significant (highest-power term) coefficient to least significant
   * @throws IllegalArgumentException if argument is null or empty,
   * or if leading coefficient is 0 and this is not a
   * constant polynomial (that is, it is not the monomial "0")
   */
  function __construct($field, $coefficients) {
    if (count($coefficients) == 0) {
      throw new \InvalidArgumentException();
    }
    $this->field = $field;
    $coefficientsLength = count($coefficients);
    if ($coefficientsLength > 1 && $coefficients[0] == 0) {
      // Leading term must be non-zero for anything except the constant polynomial "0"
      $firstNonZero = 1;
      while ($firstNonZero < $coefficientsLength && $coefficients[$firstNonZero] == 0) {
        $firstNonZero++;
      }
      if ($firstNonZero == $coefficientsLength) {
        $this->coefficients = array(0);
      } else {
        $this->coefficients = fill_array(0,$coefficientsLength - $firstNonZero,0);
          $this->coefficients =  arraycopy($coefficients,
            $firstNonZero,

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。