zufast is distributed under the MIT licence (see LICENSE). It includes code
from the following upstream authors, each under its own licence. zufast is a
header-only library: the installed headers under include/zufast/ carry this
code, zufast.so is compiled from it, and every package that uses
`LinkingTo: zufast` compiles the same code into its own shared object.

------------------------------------------------------------------------------
include/zufast/utf8.h -- UTF-8 decoder state table

  Transcribed from "Flexible and Economical UTF-8 Decoder",
  http://bjoern.hoehrmann.de/utf-8/decoder/dfa/

  Copyright (c) 2008-2010 Bjoern Hoehrmann <bjoern@hoehrmann.de>
  Licence: MIT. The full notice is reproduced in the header.

------------------------------------------------------------------------------
include/zufast/vendor/ffc.h -- decimal number parsing and fixed formatting

  ffc.h, a C port of fast_float, https://github.com/kolemannix/ffc.h
  Pinned at tag v26.09.01 (commit 965d4db45d03365b4c852ab34f4d5b08b53bc7b3).

  Copyright (c) 2021 The fast_float authors (Daniel Lemire, João Paulo
  Magalhaes and contributors); C port by Koleman Nix.
  Licence: MIT, chosen from the MIT / Apache-2.0 / Boost-1.0 options.
  Licence text: licenses/ffc-LICENSE.

  Patched (the tools/ directory is in the source repository,
  https://github.com/pedrobtz/zufast, not in the package):
    tools/patches/ffc/0001-add-linkage-macros.patch adds FFC_LINKAGE and
      FFC_LINKAGE_EXTERN so that every public function can be made static;
    tools/patches/ffc/0002-drop-float-equal-pragmas.patch removes the
      pragmas that silence -Wfloat-equal, which R CMD check reports;
    tools/patches/ffc/0003-u64-overflow-at-max-digits.patch rejects
      unsigned 64-bit integers that wrap around 2^64 more than once, as
      fast_float 8.3 does;
    tools/patches/ffc/0004-const-tables.patch declares the five lookup
      tables const, so that they are read-only data.

------------------------------------------------------------------------------
include/zufast/vendor/ryu/ -- shortest round-trip digits of double and float

  Ryu, https://github.com/ulfjack/ryu
  Pinned at tag v2.0 (commit 72e18e8d14d4392a4a3261f37cde248e4fbedbec).

  Copyright 2018 Ulf Adams.
  Licence: Boost Software License 1.0, chosen from the Apache-2.0 /
  Boost-1.0 options. Licence text: licenses/ryu-LICENSE.

  Patched (in the source repository): tools/patches/ryu/0001-header-only.patch installs d2s.c and
  f2s.c as d2s_impl.h and f2s_impl.h with static inline entry points,
  relative includes, and assert() routed through RYU_ASSERT.

------------------------------------------------------------------------------
include/zufast/vendor/xxhash.h -- XXH3 hashing

  xxHash, https://github.com/Cyan4973/xxHash
  Pinned at tag v0.8.4 (commit c87183a77d67f7d37e3d2d1b7eaac5e7c695e4f0).
  Only xxhash.h is vendored; the xxhsum command-line tool in the same
  repository is GPL-2 and is not included.

  Copyright (c) 2012-2023 Yann Collet.
  Licence: BSD 2-Clause. Licence text: licenses/xxhash-LICENSE.
  Not patched.

  tests/testthat/fixtures/xxh3-vectors.tsv lists XXH3 hash values (input
  length, seed, hash) for xxHash's sanity buffer, a subset of those in
  xxHash's tests/sanity_test_vectors.h. That file carries no licence
  notice of its own; it is the output of tests/sanity_test_vectors_generator.c
  (GPL-2.0-only), which is not included. The fixture copies no code, only
  computed values, which the BSD-2-Clause xxhash.h above reproduces.
  The input those values hash is rebuilt by sanity_buffer() in
  src/zufast_test.c, an independent implementation of the same three-step
  fill (start at 2654435761, emit the top byte, multiply by
  11400714785074694797, repeat), which must match exactly for the
  published values to apply; no code is copied from xxHash's test programs.
