flint-sys 0.9.0

Bindings to the FLINT C library
Documentation
/* automatically generated by rust-bindgen 0.70.1 */

use libc::*;
use crate::deps::*;
use crate::acb_types::*;
use crate::arf_types::*;
use crate::flint::*;
use crate::fmpz_types::*;


#[repr(C)]
pub struct psl2z_struct {
    pub a: fmpz,
    pub b: fmpz,
    pub c: fmpz,
    pub d: fmpz,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
    ["Size of psl2z_struct"][::std::mem::size_of::<psl2z_struct>() - 32usize];
    ["Alignment of psl2z_struct"][::std::mem::align_of::<psl2z_struct>() - 8usize];
    ["Offset of field: psl2z_struct::a"][::std::mem::offset_of!(psl2z_struct, a) - 0usize];
    ["Offset of field: psl2z_struct::b"][::std::mem::offset_of!(psl2z_struct, b) - 8usize];
    ["Offset of field: psl2z_struct::c"][::std::mem::offset_of!(psl2z_struct, c) - 16usize];
    ["Offset of field: psl2z_struct::d"][::std::mem::offset_of!(psl2z_struct, d) - 24usize];
};
impl Default for psl2z_struct {
    fn default() -> Self {
        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
        unsafe {
            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
            s.assume_init()
        }
    }
}
pub type psl2z_t = [psl2z_struct; 1usize];
extern "C" {
    #[link_name = "psl2z_init__extern"]
    pub fn psl2z_init(g: *mut psl2z_struct);
    #[link_name = "psl2z_clear__extern"]
    pub fn psl2z_clear(g: *mut psl2z_struct);
    #[link_name = "psl2z_swap__extern"]
    pub fn psl2z_swap(f: *mut psl2z_struct, g: *mut psl2z_struct);
    #[link_name = "psl2z_set__extern"]
    pub fn psl2z_set(h: *mut psl2z_struct, g: *const psl2z_struct);
    #[link_name = "psl2z_one__extern"]
    pub fn psl2z_one(g: *mut psl2z_struct);
    pub fn psl2z_fprint(file: *mut FILE, g: *const psl2z_struct);
    pub fn psl2z_print(g: *const psl2z_struct);
    #[link_name = "psl2z_equal__extern"]
    pub fn psl2z_equal(f: *const psl2z_struct, g: *const psl2z_struct) -> libc::c_int;
    pub fn psl2z_mul(h: *mut psl2z_struct, f: *const psl2z_struct, g: *const psl2z_struct);
    pub fn psl2z_inv(h: *mut psl2z_struct, g: *const psl2z_struct);
    pub fn psl2z_is_one(g: *const psl2z_struct) -> libc::c_int;
    pub fn psl2z_is_correct(g: *const psl2z_struct) -> libc::c_int;
    pub fn psl2z_randtest(g: *mut psl2z_struct, state: *mut flint_rand_struct, bits: slong);
    pub fn acb_modular_transform(
        w: *mut acb_struct,
        g: *const psl2z_struct,
        z: *const acb_struct,
        prec: slong,
    );
    pub fn acb_modular_fundamental_domain_approx_d(
        g: *mut psl2z_struct,
        x: f64,
        y: f64,
        one_minus_eps: f64,
    );
    pub fn acb_modular_fundamental_domain_approx_arf(
        g: *mut psl2z_struct,
        xx: *const arf_struct,
        yy: *const arf_struct,
        one_minus_eps: *const arf_struct,
        prec: slong,
    );
    pub fn acb_modular_fundamental_domain_approx(
        w: *mut acb_struct,
        g: *mut psl2z_struct,
        z: *const acb_struct,
        one_minus_eps: *const arf_struct,
        prec: slong,
    );
    pub fn acb_modular_is_in_fundamental_domain(
        z: *const acb_struct,
        tol: *const arf_struct,
        prec: slong,
    ) -> libc::c_int;
    pub fn acb_modular_addseq_theta(
        exponents: *mut slong,
        aindex: *mut slong,
        bindex: *mut slong,
        num: slong,
    );
    pub fn acb_modular_addseq_eta(
        exponents: *mut slong,
        aindex: *mut slong,
        bindex: *mut slong,
        num: slong,
    );
    pub fn acb_modular_fill_addseq(tab: *mut slong, len: slong);
    pub fn acb_modular_theta_transform(
        R: *mut libc::c_int,
        S: *mut libc::c_int,
        C: *mut libc::c_int,
        g: *const psl2z_struct,
    );
    pub fn acb_modular_theta_const_sum(
        theta2: *mut acb_struct,
        theta3: *mut acb_struct,
        theta4: *mut acb_struct,
        q: *const acb_struct,
        prec: slong,
    );
    pub fn acb_modular_theta_const_sum_basecase(
        theta2: *mut acb_struct,
        theta3: *mut acb_struct,
        theta4: *mut acb_struct,
        q: *const acb_struct,
        N: slong,
        prec: slong,
    );
    pub fn acb_modular_theta_const_sum_rs(
        theta2: *mut acb_struct,
        theta3: *mut acb_struct,
        theta4: *mut acb_struct,
        q: *const acb_struct,
        N: slong,
        prec: slong,
    );
    pub fn acb_modular_theta_sum(
        theta1: acb_ptr,
        theta2: acb_ptr,
        theta3: acb_ptr,
        theta4: acb_ptr,
        w: *const acb_struct,
        w_is_unit: libc::c_int,
        q: *const acb_struct,
        len: slong,
        prec: slong,
    );
    pub fn acb_modular_theta_notransform(
        theta1: *mut acb_struct,
        theta2: *mut acb_struct,
        theta3: *mut acb_struct,
        theta4: *mut acb_struct,
        z: *const acb_struct,
        tau: *const acb_struct,
        prec: slong,
    );
    pub fn acb_modular_theta(
        theta1: *mut acb_struct,
        theta2: *mut acb_struct,
        theta3: *mut acb_struct,
        theta4: *mut acb_struct,
        z: *const acb_struct,
        tau: *const acb_struct,
        prec: slong,
    );
    pub fn acb_modular_theta_jet_notransform(
        theta1: acb_ptr,
        theta2: acb_ptr,
        theta3: acb_ptr,
        theta4: acb_ptr,
        z: *const acb_struct,
        tau: *const acb_struct,
        len: slong,
        prec: slong,
    );
    pub fn acb_modular_theta_jet(
        theta1: acb_ptr,
        theta2: acb_ptr,
        theta3: acb_ptr,
        theta4: acb_ptr,
        z: *const acb_struct,
        tau: *const acb_struct,
        len: slong,
        prec: slong,
    );
    pub fn _acb_modular_theta_series(
        theta1: acb_ptr,
        theta2: acb_ptr,
        theta3: acb_ptr,
        theta4: acb_ptr,
        z: acb_srcptr,
        zlen: slong,
        tau: *const acb_struct,
        len: slong,
        prec: slong,
    );
    pub fn acb_modular_theta_series(
        theta1: *mut acb_poly_struct,
        theta2: *mut acb_poly_struct,
        theta3: *mut acb_poly_struct,
        theta4: *mut acb_poly_struct,
        z: *const acb_poly_struct,
        tau: *const acb_struct,
        len: slong,
        prec: slong,
    );
    pub fn acb_modular_j(z: *mut acb_struct, tau: *const acb_struct, prec: slong);
    pub fn acb_modular_epsilon_arg(g: *const psl2z_struct) -> libc::c_int;
    pub fn acb_modular_eta_sum(eta: *mut acb_struct, q: *const acb_struct, prec: slong);
    pub fn acb_modular_eta(z: *mut acb_struct, tau: *const acb_struct, prec: slong);
    pub fn acb_modular_lambda(r: *mut acb_struct, tau: *const acb_struct, prec: slong);
    pub fn acb_modular_delta(r: *mut acb_struct, tau: *const acb_struct, prec: slong);
    pub fn acb_modular_eisenstein(r: acb_ptr, tau: *const acb_struct, len: slong, prec: slong);
    pub fn acb_modular_elliptic_p(
        r: *mut acb_struct,
        z: *const acb_struct,
        tau: *const acb_struct,
        prec: slong,
    );
    pub fn acb_modular_elliptic_p_zpx(
        r: acb_ptr,
        z: *const acb_struct,
        tau: *const acb_struct,
        len: slong,
        prec: slong,
    );
    pub fn acb_modular_elliptic_k(k: *mut acb_struct, m: *const acb_struct, prec: slong);
    pub fn acb_modular_elliptic_k_cpx(w: acb_ptr, m: *const acb_struct, len: slong, prec: slong);
    pub fn acb_modular_elliptic_e(res: *mut acb_struct, m: *const acb_struct, prec: slong);
    pub fn acb_modular_hilbert_class_poly(res: *mut fmpz_poly_struct, D: slong);
    pub fn _acb_modular_mul(
        z: *mut acb_struct,
        tmp1: *mut acb_struct,
        tmp2: *mut acb_struct,
        x: *const acb_struct,
        y: *const acb_struct,
        wprec: slong,
        prec: slong,
    );
}