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, PyAmplitude, PyAmplitudeID, PyEvaluator, PyExpression,
16            PyManager, PyModel, PyParameterLike,
17        },
18        data::{py_open, PyBinnedDataset, PyDataset, PyEvent},
19        mpi::{finalize_mpi, get_rank, get_size, is_mpi_available, is_root, use_mpi, using_mpi},
20        utils::{
21            variables::{
22                PyAngles, PyCosTheta, PyMandelstam, PyMass, PyPhi, PyPolAngle, PyPolMagnitude,
23                PyPolarization,
24            },
25            vectors::{PyVector3, PyVector4},
26        },
27    };
28
29    #[pymodule_export]
30    use laddu_amplitudes::{
31        breit_wigner::py_breit_wigner,
32        common::{py_complex_scalar, py_polar_complex_scalar, py_scalar},
33        kmatrix::{
34            py_kopf_kmatrix_a0, py_kopf_kmatrix_a2, py_kopf_kmatrix_f0, py_kopf_kmatrix_f2,
35            py_kopf_kmatrix_pi1, py_kopf_kmatrix_rho,
36        },
37        phase_space::py_phase_space_factor,
38        piecewise::{
39            py_piecewise_complex_scalar, py_piecewise_polar_complex_scalar, py_piecewise_scalar,
40        },
41        ylm::py_ylm,
42        zlm::py_zlm,
43    };
44
45    #[pymodule_export]
46    use laddu_extensions::{
47        ganesh_ext::py_ganesh::{
48            py_integrated_autocorrelation_times, PyAIES, PyAIESMove, PyAutocorrelationObserver,
49            PyBound, PyESS, PyESSMove, PyEnsemble, PyLBFGSB, PyMCMCObserver, PyNelderMead,
50            PyObserver, PyPSO, PyParticle, PyPoint, PySimplexConstructionMethod, PyStatus, PySwarm,
51            PySwarmObserver, PySwarmPositionInitializer, PySwarmVelocityInitializer,
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,
57        },
58    };
59
60    #[pymodule_export]
61    use laddu_extensions::experimental::{py_binned_guide_term, py_regularizer};
62}