THIRD-PARTY-NOTICES
aadc-ode (AADC ODE integration package)
===================================================================

This file is the "THIRD-PARTY-NOTICES file" referenced by Clauses 1.9
and 10.5 of the AADC Community Edition Licence Agreement (see
LICENSE.txt, shipped beside this file). It covers the aadc-ode wheel
and nothing else.

-------------------------------------------------------------------
SCOPE - WHAT THIS WHEEL ACTUALLY CONTAINS
-------------------------------------------------------------------
Read this section before comparing this file with the AADC-NG
THIRD-PARTY-NOTICES. The two inventories are DIFFERENT, on purpose.

The aadc-ode wheel contains exactly one compiled artifact, the
extension module

    aadc_ode/_aadcode.<abi-tag>.so | .pyd

plus this package's own pure-Python modules (__init__, aad_rhs,
adjoint, butcher, rk). It contains no static libraries, no vendored
source directory, and no bundled shared objects.

THIS WHEEL DOES NOT CONTAIN libaadc-ng. The AADC-NG shared library is
redistributed by the separate `aadc` core wheel, which this package
declares as a hard runtime dependency and resolves at load time
($ORIGIN/../aadc_ng on ELF, @loader_path/../aadc_ng on Mach-O, and by
DLL name on Windows). The auditwheel / delocate / delvewheel repair
steps in this package's cibuildwheel configuration exclude it
explicitly, so that exactly one image of it exists in a process.

Consequently the components that AADC-NG itself incorporates -
MINPACK, TweetNaCl and the SLEEF-derived vector-libm material - are
NOT redistributed by this wheel, and the notices for them are not
reproduced here. They are discharged where that library is actually
distributed: see the THIRD-PARTY-NOTICES file shipped inside the
`aadc` wheel and inside the AADC-NG C++ SDK archives.

What this package DOES compile into its own extension, besides its own
source, is the header-only pybind11 binding library. That is a
redistribution in binary form of third-party code, and it is the
component listed below.

Inventory (verified against the aadc-ode 0.4.0 sources):

  1. pybind11 (C++/Python binding headers) - BSD-3-Clause
     - notice required

-------------------------------------------------------------------
1. pybind11
-------------------------------------------------------------------
Purpose : C++/Python binding layer for aadc_ode._aadcode. Declared as
          a build-system requirement (`pybind11>=2.10`), never as a
          runtime dependency.
Origin  : https://github.com/pybind/pybind11 - HEADER-ONLY. Not
          vendored as a directory; the headers are supplied by the
          pybind11 build dependency and are consumed by
          bindings/aadcbdf_pybind.cpp.
Why it  : pybind11 is header-only, so "build dependency" does not mean
is here   "absent from the artifact". Its templates and inline
          functions are instantiated into _aadcode at compile time and
          are part of the shipped binary (a linux-x86_64 build of
          0.4.0 carries 462 pybind11 symbols in its symbol table).
          BSD-3-Clause clause 2 attaches to redistribution in binary
          form, so the notice is required.
Licence : BSD-3-Clause, reproduced in full:

  Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>, All rights
  reserved.

  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions
  are met:

  1. Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above
     copyright notice, this list of conditions and the following
     disclaimer in the documentation and/or other materials provided
     with the distribution.

  3. Neither the name of the copyright holder nor the names of its
     contributors may be used to endorse or promote products derived
     from this software without specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
  WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  POSSIBILITY OF SUCH DAMAGE.

-------------------------------------------------------------------
CONSIDERED AND NOT LISTED
-------------------------------------------------------------------
Recorded so that the short inventory above is read as a conclusion
rather than an omission. Each of these was examined against what the
built extension contains.

AADC-NG (libaadc-ng) - not redistributed by this wheel. Dynamically
  linked and resolved from the `aadc` wheel at load time; see SCOPE.
  Its own third-party notices ship with that wheel.

CPython headers (Python.h and the C API) - Python Software Foundation
  Licence 2.0. Inline code from these headers is compiled into every
  Python extension module, this one included. Not listed, on the same
  basis as the rest of the ecosystem: the wheel is loaded by the very
  CPython interpreter that supplies them, and the artifact is not a
  distribution of Python or of a derivative version of Python.

The C++ standard library (libstdc++ / libc++ / MSVC STL) and the
  compiler runtime (libgcc_s) - dynamically linked, not bundled;
  allowlisted rather than vendored by the manylinux policy. Where the
  manylinux devtoolset links parts of libstdc++ statically, the GCC
  Runtime Library Exception permits that without a notice condition.

numpy - a declared RUNTIME dependency (`numpy>=1.21.0`), installed
  separately by pip and used only by this package's pure-Python
  modules. No numpy code is compiled into or shipped by this wheel: no
  numpy header appears in any translation unit and the extension uses
  no NumPy C API symbol. (The strings "numpy.bool"/"numpy.bool_" do
  appear in the binary; they are pybind11's own duck-typed type-name
  checks, not NumPy code.)

===================================================================
MatLogica Limited - aadc-ode THIRD-PARTY-NOTICES - 2026-08-21.
The AADC-NG inventory this file deliberately does not duplicate is
maintained in matlogica/aadc-license, agreements/THIRD-PARTY-NOTICES.md,
and is shipped by the `aadc` core wheel.
===================================================================
