NOTICE

shinrin vendors portions of the following BSD-3-Clause and Apache-2.0
licensed projects (plus one GPL-3.0 project, noted below) and also ships a
Rust port of one of them. Their copyright and license notices are reproduced
below and in the LICENSE files kept alongside the vendored code.

1. scikit-garden (BSD-3-Clause)
   https://github.com/scikit-garden/scikit-garden

   Vendored (adapted) into `src/shinrin/_skgarden/`, including the Mondrian
   forest / tree modules. The Mondrian Cython extension (`mondrian/tree/*.pyx`)
   has been ported to Rust in `src/lib.rs` (built via maturin/pyo3 as
   `shinrin._native`) and the Cython shim modules replaced with Python
   interfaces to that Rust extension.

   Copyright (c) 2016 - scikit-garden developers.
   License: BSD-3-Clause (see src/shinrin/_skgarden/LICENSE.txt)

2. skope-rules (BSD-3-Clause)
   https://github.com/scikit-learn-contrib/skope-rules

   Vendored (adapted) into `src/shinrin/_skrules/`.

   Copyright (c) 2017 The skope-rules developers.
   License: BSD-3-Clause (see src/shinrin/_skrules/LICENSE.txt)
3. TabM (Apache-2.0)
   https://github.com/yandex-research/tabm

   The TabM architecture, parameter initialization scheme and training
   objective vendored (reimplemented) into `src/shinrin/tabm.py` and
   `src/shinrin/_tabm/` are derived from yandex-research/tabm.

   Copyright (c) 2024 Yandex Research.
   License: Apache-2.0 (upstream LICENSE to be added; see
   https://www.apache.org/licenses/LICENSE-2.0)

4. rtdl-num-embeddings (Apache-2.0)
   https://github.com/yandex-research/rtdl-num-embeddings

   The piecewise-linear numerical embedding semantics (including the
   `linear0` clamp rules) implemented in `src/shinrin/_tabm/_transforms.py`
   follow rtdl-num-embeddings.

   Copyright (c) 2024 Yandex Research.
   License: Apache-2.0 (upstream LICENSE to be added; see
   https://www.apache.org/licenses/LICENSE-2.0)

5. tabm-lightning (adapted source reference)
   https://github.com/chapman73/tabm-lightning

   The sklearn-style estimator interface and preprocessing pipeline of the
   shinrin TabM implementation were adapted from chapman73/tabm-lightning,
   which itself wraps the yandex-research/tabm reference above.

6. pycorels / CORELS (GPL-3.0)
   https://github.com/corels/pycorels
   https://github.com/corels/corels

   Vendored (adapted) into `src/shinrin/_corels/`: the CORELS C++ engine
   (`cpp/corels/`, `cpp/mining/`) and its Python layer (`corels.py`,
   `utils.py`). The upstream Cython binding is replaced by PyO3 bindings in
   `src/lib.rs`; the C++ sources are compiled into `shinrin._native` with
   `-DGMP`, where `<gmp.h>` resolves to the bundled mini-gmp (see item 7),
   so no system libgmp dependency exists.

   NOTE: unlike the other vendored projects above, this code is licensed
   under the GNU General Public License v3.0. The upstream license text is
   kept at `src/shinrin/_corels/LICENSE` (pycorels) and
   `src/shinrin/_corels/cpp/corels/LICENSE` (CORELS).

   Copyright (c) 2017 Elaine Angelino, Nicholas Larus-Stone, Daniel Alabi,
   Margo Seltzer (CORELS); pycorels contributors.
   License: GPL-3.0 (see src/shinrin/_corels/LICENSE)

7. GMP mini-gmp (LGPL-3.0-or-later)
   https://gmplib.org/

   Vendored (unmodified) into `src/shinrin/_corels/cpp/minigmp/` from the
   official GMP 6.3.0 release tarball: `mini-gmp/mini-gmp.c` and
   `mini-gmp/mini-gmp.h`. Provides the `mpz_t` API used by the CORELS build
   (`-DGMP`) without requiring libgmp on the system.

   License: LGPL-3.0-or-later (see
   src/shinrin/_corels/cpp/minigmp/LICENSE).

   Copyright 1991-2023 Free Software Foundation, Inc.

8. gosdt-guesses (BSD-3-Clause)
   https://github.com/ubc-systopia/gosdt-guesses

   Vendored into `src/shinrin/_gosdt/`: the GOSDT C++ engine
   ("Fast Sparse Decision Tree Optimization via Reference Ensembles",
   AAAI 2022; "Generalized and Scalable Optimal Sparse Decision Trees",
   ICML 2020) and its Python layer. Upstream's pybind11 module is replaced
   by PyO3 bindings in `src/lib.rs`; oneTBB container types are replaced by
   serial shims written for shinrin (`cpp/tbbshim/`, no TBB code) and the
   engine runs single-threaded; GOSDT's global `Queue` class is renamed
   `GosdtQueue` to avoid a linker symbol collision with CORELS' `Queue`.

   Copyright (c) 2020-2024, UBC Systopia Lab.
   License: BSD-3-Clause (see src/shinrin/_gosdt/LICENSE)

9. nlohmann/json (MIT)
   https://github.com/nlohmann/json

   Vendored single header v3.11.3 at `src/shinrin/_gosdt/cpp/nlohmann/`.

   Copyright (c) 2013-2022 Niels Lohmann.
   License: MIT (see src/shinrin/_gosdt/cpp/nlohmann/LICENSE.MIT)
