AMFlow.cpp 1.0.0 — first public release
AMFlow.cpp 1.0.0 — first public release
A C++17 reimplementation of the auxiliary-mass-flow algorithm
(Liu & Ma 2023) for
multi-loop Feynman integrals.
Highlights
- 12/12 oracle benchmarks match the upstream Mathematica reference at
rel ~ 1e-30(tools/bench/). - 508 GoogleTest cases (Kira-dependent ones auto-skip when
AMFLOW_KIRAis unset). - Domain-oriented architecture under
amflow::{numeric, algebra, ode, qft, ibp, pipeline, api, cli}, with strict ABI/PIMPL boundaries between domains. - CMake install / export — downstream projects can use
find_package(AMFlowCpp 1.0)and linkAMFlowCpp::amflow. amflow_cliJSON driver coveringamflow,black_box_amflow, andsolve_integralsmodes.- GitHub Actions CI matrix (Ubuntu × {gcc, clang}); SPDX-MIT headers across all C++ sources.
Quick start
sudo apt-get install -y build-essential cmake pkg-config \
libflint-dev libgtest-dev nlohmann-json3-dev
git clone https://github.com/chang18/amflow-cpp.git
cd amflow-cpp
cmake -S . -B build -DAMFLOW_BUILD_DRIVER=ON
cmake --build build -j32
ctest --test-dir build --output-on-failure -j 4
# Raw ODE example (no Kira / Fermat needed):
./build/src/cli/amflow_cli examples/power_law.jsonFull AMFlow workflows additionally require Kira + Fermat at runtime — see README.md.
Scientific attribution
This is a C++ port of the Mathematica package AMFlow by Xiao Liu and Yan-Qing Ma. All algorithmic credit belongs to the upstream authors. If you use this software in published research, please cite both the upstream paper and this repository — see CITATION.cff and NOTICE.
The upstream Mathematica source is not vendored. To regenerate Mathematica reference data locally, clone or symlink the upstream into reference/amflow-master/ (gitignored) — see reference/README.md.
Implementation provenance
This C++17 source was developed primarily by AI coding agents under the direction of the maintainer (canyi@fizzlycode.com), with every behavioural change gated by numerical-parity verification against the upstream Mathematica reference.
Out of scope (v1.0)
SolveIntegralsGaugeLink, HQET / SCET / Wilson lines. See AUDIT.md for the validated parity surface.
Full changelog
Contact: bug reports / feature requests via GitHub issues; other inquiries via canyi@fizzlycode.com.