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        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,
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, PyAIES, PyAIESMove, PyAutocorrelationObserver,
50            PyBound, PyESS, PyESSMove, PyEnsemble, PyLBFGSB, PyMCMCObserver, PyNelderMead,
51            PyObserver, PyPSO, PyParticle, PyPoint, PySimplexConstructionMethod, PyStatus, PySwarm,
52            PySwarmObserver, PySwarmPositionInitializer, PySwarmVelocityInitializer,
53        },
54        likelihoods::{
55            py_likelihood_one, py_likelihood_product, py_likelihood_scalar, py_likelihood_sum,
56            py_likelihood_zero, PyLikelihoodEvaluator, PyLikelihoodExpression, PyLikelihoodID,
57            PyLikelihoodManager, PyLikelihoodTerm, PyNLL,
58        },
59    };
60
61    #[pymodule_export]
62    use laddu_extensions::experimental::{py_binned_guide_term, py_regularizer};
63}