use crate::deps::*;
use crate::acb_types::*;
use crate::arb_types::*;
use crate::arf_types::*;
use crate::flint::*;
use crate::fmpz_types::*;
pub const ACB_THETA_LOW_PREC: u32 = 32;
#[repr(C)]
pub struct acb_theta_eld_struct {
pub dim: slong,
pub ambient_dim: slong,
pub last_coords: *mut slong,
pub min: slong,
pub mid: slong,
pub max: slong,
pub nr: slong,
pub nl: slong,
pub rchildren: *mut acb_theta_eld_struct,
pub lchildren: *mut acb_theta_eld_struct,
pub nb_pts: slong,
pub nb_border: slong,
pub box_: *mut slong,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of acb_theta_eld_struct"][::std::mem::size_of::<acb_theta_eld_struct>() - 104usize];
["Alignment of acb_theta_eld_struct"][::std::mem::align_of::<acb_theta_eld_struct>() - 8usize];
["Offset of field: acb_theta_eld_struct::dim"]
[::std::mem::offset_of!(acb_theta_eld_struct, dim) - 0usize];
["Offset of field: acb_theta_eld_struct::ambient_dim"]
[::std::mem::offset_of!(acb_theta_eld_struct, ambient_dim) - 8usize];
["Offset of field: acb_theta_eld_struct::last_coords"]
[::std::mem::offset_of!(acb_theta_eld_struct, last_coords) - 16usize];
["Offset of field: acb_theta_eld_struct::min"]
[::std::mem::offset_of!(acb_theta_eld_struct, min) - 24usize];
["Offset of field: acb_theta_eld_struct::mid"]
[::std::mem::offset_of!(acb_theta_eld_struct, mid) - 32usize];
["Offset of field: acb_theta_eld_struct::max"]
[::std::mem::offset_of!(acb_theta_eld_struct, max) - 40usize];
["Offset of field: acb_theta_eld_struct::nr"]
[::std::mem::offset_of!(acb_theta_eld_struct, nr) - 48usize];
["Offset of field: acb_theta_eld_struct::nl"]
[::std::mem::offset_of!(acb_theta_eld_struct, nl) - 56usize];
["Offset of field: acb_theta_eld_struct::rchildren"]
[::std::mem::offset_of!(acb_theta_eld_struct, rchildren) - 64usize];
["Offset of field: acb_theta_eld_struct::lchildren"]
[::std::mem::offset_of!(acb_theta_eld_struct, lchildren) - 72usize];
["Offset of field: acb_theta_eld_struct::nb_pts"]
[::std::mem::offset_of!(acb_theta_eld_struct, nb_pts) - 80usize];
["Offset of field: acb_theta_eld_struct::nb_border"]
[::std::mem::offset_of!(acb_theta_eld_struct, nb_border) - 88usize];
["Offset of field: acb_theta_eld_struct::box_"]
[::std::mem::offset_of!(acb_theta_eld_struct, box_) - 96usize];
};
impl Default for acb_theta_eld_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 acb_theta_eld_t = [acb_theta_eld_struct; 1usize];
#[repr(C)]
pub struct acb_theta_ctx_tau_struct {
pub g: slong,
pub allow_shift: libc::c_int,
pub yinv: arb_mat_struct,
pub cho: arb_mat_struct,
pub exp_tau_div_4: acb_mat_t,
pub exp_tau_div_2: acb_mat_t,
pub exp_tau: acb_mat_t,
pub exp_tau_div_4_inv: acb_mat_t,
pub exp_tau_div_2_inv: acb_mat_t,
pub exp_tau_inv: acb_mat_t,
pub exp_tau_a: acb_ptr,
pub exp_tau_a_inv: acb_ptr,
pub exp_a_tau_a_div_4: acb_ptr,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of acb_theta_ctx_tau_struct"]
[::std::mem::size_of::<acb_theta_ctx_tau_struct>() - 296usize];
["Alignment of acb_theta_ctx_tau_struct"]
[::std::mem::align_of::<acb_theta_ctx_tau_struct>() - 8usize];
["Offset of field: acb_theta_ctx_tau_struct::g"]
[::std::mem::offset_of!(acb_theta_ctx_tau_struct, g) - 0usize];
["Offset of field: acb_theta_ctx_tau_struct::allow_shift"]
[::std::mem::offset_of!(acb_theta_ctx_tau_struct, allow_shift) - 8usize];
["Offset of field: acb_theta_ctx_tau_struct::yinv"]
[::std::mem::offset_of!(acb_theta_ctx_tau_struct, yinv) - 16usize];
["Offset of field: acb_theta_ctx_tau_struct::cho"]
[::std::mem::offset_of!(acb_theta_ctx_tau_struct, cho) - 48usize];
["Offset of field: acb_theta_ctx_tau_struct::exp_tau_div_4"]
[::std::mem::offset_of!(acb_theta_ctx_tau_struct, exp_tau_div_4) - 80usize];
["Offset of field: acb_theta_ctx_tau_struct::exp_tau_div_2"]
[::std::mem::offset_of!(acb_theta_ctx_tau_struct, exp_tau_div_2) - 112usize];
["Offset of field: acb_theta_ctx_tau_struct::exp_tau"]
[::std::mem::offset_of!(acb_theta_ctx_tau_struct, exp_tau) - 144usize];
["Offset of field: acb_theta_ctx_tau_struct::exp_tau_div_4_inv"]
[::std::mem::offset_of!(acb_theta_ctx_tau_struct, exp_tau_div_4_inv) - 176usize];
["Offset of field: acb_theta_ctx_tau_struct::exp_tau_div_2_inv"]
[::std::mem::offset_of!(acb_theta_ctx_tau_struct, exp_tau_div_2_inv) - 208usize];
["Offset of field: acb_theta_ctx_tau_struct::exp_tau_inv"]
[::std::mem::offset_of!(acb_theta_ctx_tau_struct, exp_tau_inv) - 240usize];
["Offset of field: acb_theta_ctx_tau_struct::exp_tau_a"]
[::std::mem::offset_of!(acb_theta_ctx_tau_struct, exp_tau_a) - 272usize];
["Offset of field: acb_theta_ctx_tau_struct::exp_tau_a_inv"]
[::std::mem::offset_of!(acb_theta_ctx_tau_struct, exp_tau_a_inv) - 280usize];
["Offset of field: acb_theta_ctx_tau_struct::exp_a_tau_a_div_4"]
[::std::mem::offset_of!(acb_theta_ctx_tau_struct, exp_a_tau_a_div_4) - 288usize];
};
impl Default for acb_theta_ctx_tau_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 acb_theta_ctx_tau_t = [acb_theta_ctx_tau_struct; 1usize];
#[repr(C)]
pub struct acb_theta_ctx_z_struct {
pub g: slong,
pub exp_z: acb_ptr,
pub exp_2z: acb_ptr,
pub exp_z_inv: acb_ptr,
pub exp_2z_inv: acb_ptr,
pub v: arb_ptr,
pub u: arb_struct,
pub uinv: arb_struct,
pub is_real: libc::c_int,
}
#[allow(clippy::unnecessary_operation, clippy::identity_op)]
const _: () = {
["Size of acb_theta_ctx_z_struct"][::std::mem::size_of::<acb_theta_ctx_z_struct>() - 152usize];
["Alignment of acb_theta_ctx_z_struct"]
[::std::mem::align_of::<acb_theta_ctx_z_struct>() - 8usize];
["Offset of field: acb_theta_ctx_z_struct::g"]
[::std::mem::offset_of!(acb_theta_ctx_z_struct, g) - 0usize];
["Offset of field: acb_theta_ctx_z_struct::exp_z"]
[::std::mem::offset_of!(acb_theta_ctx_z_struct, exp_z) - 8usize];
["Offset of field: acb_theta_ctx_z_struct::exp_2z"]
[::std::mem::offset_of!(acb_theta_ctx_z_struct, exp_2z) - 16usize];
["Offset of field: acb_theta_ctx_z_struct::exp_z_inv"]
[::std::mem::offset_of!(acb_theta_ctx_z_struct, exp_z_inv) - 24usize];
["Offset of field: acb_theta_ctx_z_struct::exp_2z_inv"]
[::std::mem::offset_of!(acb_theta_ctx_z_struct, exp_2z_inv) - 32usize];
["Offset of field: acb_theta_ctx_z_struct::v"]
[::std::mem::offset_of!(acb_theta_ctx_z_struct, v) - 40usize];
["Offset of field: acb_theta_ctx_z_struct::u"]
[::std::mem::offset_of!(acb_theta_ctx_z_struct, u) - 48usize];
["Offset of field: acb_theta_ctx_z_struct::uinv"]
[::std::mem::offset_of!(acb_theta_ctx_z_struct, uinv) - 96usize];
["Offset of field: acb_theta_ctx_z_struct::is_real"]
[::std::mem::offset_of!(acb_theta_ctx_z_struct, is_real) - 144usize];
};
impl Default for acb_theta_ctx_z_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 acb_theta_ctx_z_t = [acb_theta_ctx_z_struct; 1usize];
pub type acb_theta_sum_worker_t = ::std::option::Option<
unsafe extern "C" fn(
arg1: acb_ptr,
arg2: acb_srcptr,
arg3: acb_srcptr,
arg4: *const slong,
arg5: slong,
arg6: *const acb_struct,
arg7: *const slong,
arg8: slong,
arg9: slong,
arg10: slong,
arg11: slong,
),
>;
extern "C" {
#[link_name = "sp2gz_dim__extern"]
pub fn sp2gz_dim(mat: *const fmpz_mat_struct) -> slong;
pub fn sp2gz_set_blocks(
mat: *mut fmpz_mat_struct,
alpha: *const fmpz_mat_struct,
beta: *const fmpz_mat_struct,
gamma: *const fmpz_mat_struct,
delta: *const fmpz_mat_struct,
);
pub fn sp2gz_j(mat: *mut fmpz_mat_struct);
pub fn sp2gz_block_diag(mat: *mut fmpz_mat_struct, U: *const fmpz_mat_struct);
pub fn sp2gz_trig(mat: *mut fmpz_mat_struct, S: *const fmpz_mat_struct);
pub fn sp2gz_embed(res: *mut fmpz_mat_struct, mat: *const fmpz_mat_struct);
pub fn sp2gz_restrict(res: *mut fmpz_mat_struct, mat: *const fmpz_mat_struct);
#[link_name = "sp2gz_nb_fundamental__extern"]
pub fn sp2gz_nb_fundamental(g: slong) -> slong;
pub fn sp2gz_fundamental(mat: *mut fmpz_mat_struct, j: slong);
pub fn sp2gz_is_correct(mat: *const fmpz_mat_struct) -> libc::c_int;
pub fn sp2gz_is_j(mat: *const fmpz_mat_struct) -> libc::c_int;
pub fn sp2gz_is_block_diag(mat: *const fmpz_mat_struct) -> libc::c_int;
pub fn sp2gz_is_trig(mat: *const fmpz_mat_struct) -> libc::c_int;
pub fn sp2gz_is_embedded(res: *mut fmpz_mat_struct, mat: *const fmpz_mat_struct)
-> libc::c_int;
pub fn sp2gz_inv(inv: *mut fmpz_mat_struct, mat: *const fmpz_mat_struct);
pub fn sp2gz_decompose(nb: *mut slong, mat: *const fmpz_mat_struct) -> *mut fmpz_mat_struct;
pub fn sp2gz_randtest(mat: *mut fmpz_mat_struct, state: *mut flint_rand_struct, bits: slong);
pub fn acb_siegel_cocycle(
c: *mut acb_mat_struct,
mat: *const fmpz_mat_struct,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_siegel_transform_cocycle_inv(
w: *mut acb_mat_struct,
c: *mut acb_mat_struct,
cinv: *mut acb_mat_struct,
mat: *const fmpz_mat_struct,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_siegel_transform(
w: *mut acb_mat_struct,
mat: *const fmpz_mat_struct,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_siegel_cho_yinv(
cho: *mut arb_mat_struct,
yinv: *mut arb_mat_struct,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_siegel_reduce(mat: *mut fmpz_mat_struct, tau: *const acb_mat_struct, prec: slong);
pub fn acb_siegel_is_reduced(
tau: *const acb_mat_struct,
tol_exp: slong,
prec: slong,
) -> libc::c_int;
pub fn acb_siegel_kappa(
sqrtdet: *mut acb_struct,
mat: *const fmpz_mat_struct,
tau: *const acb_mat_struct,
sqr: libc::c_int,
prec: slong,
) -> slong;
pub fn acb_siegel_kappa2(mat: *const fmpz_mat_struct) -> slong;
pub fn acb_siegel_randtest(
tau: *mut acb_mat_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn acb_siegel_randtest_reduced(
tau: *mut acb_mat_struct,
state: *mut flint_rand_struct,
prec: slong,
mag_bits: slong,
);
pub fn acb_siegel_randtest_compact(
tau: *mut acb_mat_struct,
state: *mut flint_rand_struct,
exact: libc::c_int,
prec: slong,
);
pub fn acb_siegel_randtest_vec(
z: acb_ptr,
state: *mut flint_rand_struct,
g: slong,
prec: slong,
);
pub fn acb_siegel_randtest_vec_reduced(
zs: acb_ptr,
state: *mut flint_rand_struct,
nb: slong,
tau: *const acb_mat_struct,
exact: libc::c_int,
prec: slong,
);
#[link_name = "acb_theta_char_bit__extern"]
pub fn acb_theta_char_bit(ch: ulong, j: slong, n: slong) -> libc::c_int;
pub fn acb_theta_char_get_arb(v: arb_ptr, a: ulong, g: slong);
pub fn acb_theta_char_get_acb(v: acb_ptr, a: ulong, g: slong);
pub fn acb_theta_char_set_slong_vec(vec: *const slong, len: slong) -> ulong;
pub fn acb_theta_char_dot(a: ulong, b: ulong, g: slong) -> slong;
pub fn acb_theta_char_dot_slong(a: ulong, n: *const slong, g: slong) -> slong;
#[link_name = "acb_theta_char_is_even__extern"]
pub fn acb_theta_char_is_even(ab: ulong, g: slong) -> libc::c_int;
pub fn acb_theta_char_table(
ch: *mut ulong,
e: *mut slong,
mat: *const fmpz_mat_struct,
ab: ulong,
all: libc::c_int,
);
pub fn acb_theta_char_shuffle(
res: acb_ptr,
mat: *const fmpz_mat_struct,
th: acb_srcptr,
sqr: libc::c_int,
prec: slong,
);
pub fn acb_theta_jet_nb(ord: slong, g: slong) -> slong;
pub fn acb_theta_jet_total_order(tup: *const slong, g: slong) -> slong;
pub fn acb_theta_jet_tuples(tups: *mut slong, ord: slong, g: slong);
pub fn acb_theta_jet_index(tup: *const slong, g: slong) -> slong;
pub fn acb_theta_jet_mul(
res: acb_ptr,
v1: acb_srcptr,
v2: acb_srcptr,
ord: slong,
g: slong,
prec: slong,
);
pub fn acb_theta_jet_compose(
res: acb_ptr,
v: acb_srcptr,
N: *const acb_mat_struct,
ord: slong,
prec: slong,
);
pub fn acb_theta_jet_exp_pi_i(res: acb_ptr, a: arb_srcptr, ord: slong, g: slong, prec: slong);
pub fn acb_theta_jet_exp_qf(
res: acb_ptr,
z: acb_srcptr,
N: *const acb_mat_struct,
ord: slong,
prec: slong,
);
pub fn acb_theta_eld_init(E: *mut acb_theta_eld_struct, d: slong, g: slong);
pub fn acb_theta_eld_clear(E: *mut acb_theta_eld_struct);
pub fn acb_theta_eld_set(
E: *mut acb_theta_eld_struct,
C: *const arb_mat_struct,
R2: *const arf_struct,
v: arb_srcptr,
) -> libc::c_int;
#[link_name = "acb_theta_eld_nb_pts__extern"]
pub fn acb_theta_eld_nb_pts(E: *const acb_theta_eld_struct) -> slong;
pub fn acb_theta_eld_points(pts: *mut slong, E: *const acb_theta_eld_struct);
#[link_name = "acb_theta_eld_box__extern"]
pub fn acb_theta_eld_box(E: *const acb_theta_eld_struct, j: slong) -> slong;
#[link_name = "acb_theta_eld_nb_border__extern"]
pub fn acb_theta_eld_nb_border(E: *const acb_theta_eld_struct) -> slong;
pub fn acb_theta_eld_border(pts: *mut slong, E: *const acb_theta_eld_struct);
pub fn acb_theta_eld_contains(E: *const acb_theta_eld_struct, pt: *const slong) -> libc::c_int;
pub fn acb_theta_eld_print(E: *const acb_theta_eld_struct);
pub fn acb_theta_eld_distances(
ds: arb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_theta_sum_radius(
R2: *mut arf_struct,
eps: *mut arf_struct,
cho: *const arb_mat_struct,
ord: slong,
prec: slong,
);
pub fn acb_theta_sum_jet_radius(
R2: *mut arf_struct,
eps: *mut arf_struct,
cho: *const arb_mat_struct,
v: arb_srcptr,
ord: slong,
prec: slong,
);
pub fn acb_theta_sum_term(
res: *mut acb_struct,
z: acb_srcptr,
tau: *const acb_mat_struct,
tup: *const slong,
n: *const slong,
prec: slong,
);
pub fn acb_theta_sum_addprec(d: *const arb_struct) -> slong;
pub fn acb_theta_ctx_tau_init(
ctx: *mut acb_theta_ctx_tau_struct,
allow_shift: libc::c_int,
g: slong,
);
pub fn acb_theta_ctx_tau_clear(ctx: *mut acb_theta_ctx_tau_struct);
pub fn acb_theta_ctx_z_init(ctx: *mut acb_theta_ctx_z_struct, g: slong);
pub fn acb_theta_ctx_z_clear(ctx: *mut acb_theta_ctx_z_struct);
pub fn acb_theta_ctx_z_vec_init(nb: slong, g: slong) -> *mut acb_theta_ctx_z_struct;
pub fn acb_theta_ctx_z_vec_clear(vec: *mut acb_theta_ctx_z_struct, nb: slong);
pub fn acb_theta_ctx_exp_inv(
exp_inv: *mut acb_struct,
exp: *const acb_struct,
x: *const acb_struct,
is_real: libc::c_int,
prec: slong,
);
pub fn acb_theta_ctx_sqr_inv(
sqr_inv: *mut acb_struct,
inv: *const acb_struct,
sqr: *const acb_struct,
is_real: libc::c_int,
prec: slong,
);
pub fn acb_theta_ctx_tau_set(
ctx: *mut acb_theta_ctx_tau_struct,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_theta_ctx_tau_dupl(ctx: *mut acb_theta_ctx_tau_struct, prec: slong);
pub fn acb_theta_ctx_tau_overlaps(
ctx1: *const acb_theta_ctx_tau_struct,
ctx2: *const acb_theta_ctx_tau_struct,
) -> libc::c_int;
pub fn acb_theta_ctx_z_set(
ctx: *mut acb_theta_ctx_z_struct,
z: acb_srcptr,
ctx_tau: *const acb_theta_ctx_tau_struct,
prec: slong,
);
pub fn acb_theta_ctx_z_dupl(ctx: *mut acb_theta_ctx_z_struct, prec: slong);
pub fn acb_theta_ctx_z_add_real(
res: *mut acb_theta_ctx_z_struct,
ctx: *const acb_theta_ctx_z_struct,
ctx_real: *const acb_theta_ctx_z_struct,
prec: slong,
);
pub fn acb_theta_ctx_z_common_v(
v: arb_ptr,
vec: *const acb_theta_ctx_z_struct,
nb: slong,
prec: slong,
);
pub fn acb_theta_ctx_z_overlaps(
ctx1: *const acb_theta_ctx_z_struct,
ctx2: *const acb_theta_ctx_z_struct,
) -> libc::c_int;
pub fn acb_theta_sum_sqr_pow(
sqr_pow: *mut acb_ptr,
exp_tau: *const acb_mat_struct,
E: *const acb_theta_eld_struct,
prec: slong,
);
pub fn acb_theta_sum_work(
th: acb_ptr,
len: slong,
exp_z: acb_srcptr,
exp_z_inv: acb_srcptr,
exp_tau: *const acb_mat_struct,
exp_tau_inv: *const acb_mat_struct,
sqr_pow: *const acb_ptr,
E: *const acb_theta_eld_struct,
ord: slong,
prec: slong,
worker: acb_theta_sum_worker_t,
);
pub fn acb_theta_sum(
th: acb_ptr,
vec: *const acb_theta_ctx_z_struct,
nb: slong,
ctx_tau: *const acb_theta_ctx_tau_struct,
distances: arb_srcptr,
all_a: libc::c_int,
all_b: libc::c_int,
tilde: libc::c_int,
prec: slong,
);
pub fn acb_theta_sum_jet(
th: acb_ptr,
vec: *const acb_theta_ctx_z_struct,
nb: slong,
ctx_tau: *const acb_theta_ctx_tau_struct,
ord: slong,
all_a: libc::c_int,
all_b: libc::c_int,
prec: slong,
);
pub fn acb_theta_agm_sqrt(
res: acb_ptr,
a: acb_srcptr,
roots: acb_srcptr,
nb: slong,
prec: slong,
);
pub fn acb_theta_agm_mul(
res: acb_ptr,
a1: acb_srcptr,
a2: acb_srcptr,
g: slong,
all: libc::c_int,
prec: slong,
);
pub fn acb_theta_agm_mul_tight(
res: acb_ptr,
a0: acb_srcptr,
a: acb_srcptr,
d0: arb_srcptr,
d: arb_srcptr,
g: slong,
all: libc::c_int,
prec: slong,
);
pub fn acb_theta_ql_nb_steps(
pattern: *mut slong,
tau: *const acb_mat_struct,
cst: libc::c_int,
prec: slong,
) -> libc::c_int;
pub fn acb_theta_ql_lower_dim(
new_zs: *mut acb_ptr,
cofactors: *mut acb_ptr,
pts: *mut *mut slong,
nb: *mut slong,
err: *mut arf_struct,
fullprec: *mut slong,
z: acb_srcptr,
tau: *const acb_mat_struct,
distances: arb_srcptr,
s: slong,
a: ulong,
prec: slong,
) -> libc::c_int;
pub fn acb_theta_ql_recombine(
th: acb_ptr,
th0: acb_srcptr,
cofactors: acb_srcptr,
pts: *const slong,
nb: slong,
err: *const arf_struct,
fullprec: slong,
s: slong,
a: ulong,
all: libc::c_int,
g: slong,
prec: slong,
);
pub fn acb_theta_ql_setup(
rts: acb_ptr,
rts_all: acb_ptr,
t: acb_ptr,
guard: *mut slong,
easy_steps: *mut slong,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
distances: arb_srcptr,
nb_steps: slong,
all: libc::c_int,
prec: slong,
) -> libc::c_int;
pub fn acb_theta_ql_exact(
th: acb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
pattern: *const slong,
all: libc::c_int,
shifted_prec: libc::c_int,
prec: slong,
);
pub fn acb_theta_ql_local_bound(
c: *mut arb_struct,
rho: *mut arb_struct,
z: acb_srcptr,
tau: *const acb_mat_struct,
ord: slong,
);
pub fn acb_theta_ql_jet_error(
err: arb_ptr,
z: acb_srcptr,
tau: *const acb_mat_struct,
dth: acb_srcptr,
ord: slong,
prec: slong,
);
pub fn acb_theta_ql_jet_fd(
th: acb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
ord: slong,
all: libc::c_int,
prec: slong,
);
pub fn acb_theta_ql_jet(
th: acb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
ord: slong,
all: libc::c_int,
prec: slong,
);
pub fn acb_theta_jet_notransform(
th: acb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
ord: slong,
ab: ulong,
all: libc::c_int,
sqr: libc::c_int,
prec: slong,
);
pub fn acb_theta_reduce_tau(
new_zs: acb_ptr,
new_tau: *mut acb_mat_struct,
mat: *mut fmpz_mat_struct,
N: *mut acb_mat_struct,
ct: *mut acb_mat_struct,
exps: acb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
prec: slong,
) -> libc::c_int;
pub fn acb_theta_reduce_z(
new_zs: acb_ptr,
rs: arb_ptr,
cs: acb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
prec: slong,
) -> libc::c_int;
pub fn acb_theta_jet(
th: acb_ptr,
zs: acb_srcptr,
nb: slong,
tau: *const acb_mat_struct,
ord: slong,
ab: ulong,
all: libc::c_int,
sqr: libc::c_int,
prec: slong,
);
#[link_name = "acb_theta_one__extern"]
pub fn acb_theta_one(
th: acb_ptr,
z: acb_srcptr,
tau: *const acb_mat_struct,
ab: ulong,
prec: slong,
);
#[link_name = "acb_theta_all__extern"]
pub fn acb_theta_all(
th: acb_ptr,
z: acb_srcptr,
tau: *const acb_mat_struct,
sqr: libc::c_int,
prec: slong,
);
pub fn acb_theta_g2_detk_symj(
res: *mut acb_poly_struct,
m: *const acb_mat_struct,
f: *const acb_poly_struct,
k: slong,
j: slong,
prec: slong,
);
pub fn acb_theta_g2_transvectant(
res: *mut acb_poly_struct,
g: *const acb_poly_struct,
h: *const acb_poly_struct,
m: slong,
n: slong,
k: slong,
lead: libc::c_int,
prec: slong,
);
pub fn acb_theta_g2_character(mat: *const fmpz_mat_struct) -> slong;
pub fn acb_theta_g2_even_weight(
psi4: *mut acb_struct,
psi6: *mut acb_struct,
chi10: *mut acb_struct,
chi12: *mut acb_struct,
th2: acb_srcptr,
prec: slong,
);
pub fn acb_theta_g2_chi5(res: *mut acb_struct, th: acb_srcptr, prec: slong);
pub fn acb_theta_g2_chi35(res: *mut acb_struct, th: acb_srcptr, prec: slong);
pub fn acb_theta_g2_chi3_6(res: *mut acb_poly_struct, dth: acb_srcptr, prec: slong);
pub fn acb_theta_g2_sextic_chi5(
f: *mut acb_poly_struct,
chi5: *mut acb_struct,
tau: *const acb_mat_struct,
prec: slong,
);
pub fn acb_theta_g2_covariants(
res: *mut acb_poly_struct,
f: *const acb_poly_struct,
lead: libc::c_int,
prec: slong,
);
}