laddu/
lib.rs

1use pyo3::prelude::*;
2
3#[pymodule]
4mod laddu {
5    use super::*;
6    #[pyfunction]
7    fn version() -> String {
8        env!("CARGO_PKG_VERSION").to_string()
9    }
10
11    #[pymodule_export]
12    use laddu_python::{
13        amplitudes::{
14            py_amplitude_one, py_amplitude_product, py_amplitude_sum, py_amplitude_zero,
15            py_constant, py_parameter, py_test_amplitude, PyAmplitude, PyAmplitudeID, PyEvaluator,
16            PyExpression, PyManager, PyModel, PyParameterLike,
17        },
18        available_parallelism,
19        data::{py_open, PyBinnedDataset, PyDataset, PyEvent},
20        mpi::{finalize_mpi, get_rank, get_size, is_mpi_available, is_root, use_mpi, using_mpi},
21        utils::{
22            variables::{
23                PyAngles, PyCosTheta, PyMandelstam, PyMass, PyPhi, PyPolAngle, PyPolMagnitude,
24                PyPolarization, PyVariableExpression,
25            },
26            vectors::{PyVec3, PyVec4},
27        },
28    };
29
30    #[pymodule_export]
31    use laddu_amplitudes::{
32        breit_wigner::py_breit_wigner,
33        common::{py_complex_scalar, py_polar_complex_scalar, py_scalar},
34        kmatrix::{
35            py_kopf_kmatrix_a0, py_kopf_kmatrix_a2, py_kopf_kmatrix_f0, py_kopf_kmatrix_f2,
36            py_kopf_kmatrix_pi1, py_kopf_kmatrix_rho,
37        },
38        phase_space::py_phase_space_factor,
39        piecewise::{
40            py_piecewise_complex_scalar, py_piecewise_polar_complex_scalar, py_piecewise_scalar,
41        },
42        ylm::py_ylm,
43        zlm::{py_polphase, py_zlm},
44    };
45
46    #[pymodule_export]
47    use laddu_extensions::{
48        ganesh_ext::py_ganesh::{
49            py_integrated_autocorrelation_times, PyAutocorrelationTerminator, PyControlFlow,
50            PyEnsembleStatus, PyMCMCSummary, PyMinimizationStatus, PyMinimizationSummary, PySwarm,
51            PySwarmParticle, PyWalker,
52        },
53        likelihoods::{
54            py_likelihood_one, py_likelihood_product, py_likelihood_scalar, py_likelihood_sum,
55            py_likelihood_zero, PyLikelihoodEvaluator, PyLikelihoodExpression, PyLikelihoodID,
56            PyLikelihoodManager, PyLikelihoodTerm, PyNLL, PyStochasticNLL,
57        },
58    };
59
60    #[pymodule_export]
61    use laddu_extensions::experimental::{py_binned_guide_term, py_regularizer};
62}