/*
Copyright (C) 2017 Fredrik Johansson
This file is part of Arb.
Arb is free software: you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version. See .
*/
#ifndef ACB_ELLIPTIC_H
#define ACB_ELLIPTIC_H
#include
#include "acb.h"
#include "acb_poly.h"
#ifdef __cplusplus
extern "C" {
#endif
void acb_elliptic_k(acb_t k, const acb_t m, slong prec);
void acb_elliptic_k_jet(acb_ptr w, const acb_t m, slong len, slong prec);
void _acb_elliptic_k_series(acb_ptr res, acb_srcptr m, slong zlen, slong len, slong prec);
void acb_elliptic_k_series(acb_poly_t res, const acb_poly_t m, slong len, slong prec);
void acb_elliptic_e(acb_t res, const acb_t m, slong prec);
void acb_elliptic_rf(acb_t res, const acb_t x, const acb_t y, const acb_t z, int flags, slong prec);
void acb_elliptic_rj(acb_t res, const acb_t x, const acb_t y, const acb_t z, const acb_t p, int flags, slong prec);
void acb_elliptic_rj_carlson(acb_t res, const acb_t x, const acb_t y, const acb_t z, const acb_t p, int flags, slong prec);
void acb_elliptic_rj_integration(acb_t res, const acb_t x, const acb_t y, const acb_t z, const acb_t p, int flags, slong prec);
void acb_elliptic_rg(acb_t res, const acb_t x, const acb_t y, const acb_t z, int flags, slong prec);
void acb_elliptic_rc1(acb_t res, const acb_t x, slong prec);
void acb_elliptic_f(acb_t res, const acb_t phi, const acb_t m, int times_pi, slong prec);
void acb_elliptic_e_inc(acb_t res, const acb_t phi, const acb_t m, int times_pi, slong prec);
void acb_elliptic_pi(acb_t r, const acb_t n, const acb_t m, slong prec);
void acb_elliptic_pi_inc(acb_t res, const acb_t n, const acb_t phi, const acb_t m, int times_pi, slong prec);
void acb_elliptic_p(acb_t r, const acb_t z, const acb_t tau, slong prec);
void acb_elliptic_p_prime(acb_t r, const acb_t z, const acb_t tau, slong prec);
void acb_elliptic_p_jet(acb_ptr r, const acb_t z, const acb_t tau, slong len, slong prec);
void _acb_elliptic_p_series(acb_ptr res, acb_srcptr z, slong zlen, const acb_t tau, slong len, slong prec);
void acb_elliptic_p_series(acb_poly_t res, const acb_poly_t z, const acb_t tau, slong len, slong prec);
void acb_elliptic_zeta(acb_t res, const acb_t z, const acb_t tau, slong prec);
void acb_elliptic_sigma(acb_t res, const acb_t z, const acb_t tau, slong prec);
void acb_elliptic_roots(acb_t e1, acb_t e2, acb_t e3, const acb_t tau, slong prec);
void acb_elliptic_invariants(acb_t g2, acb_t g3, const acb_t tau, slong prec);
void acb_elliptic_inv_p(acb_t res, const acb_t z, const acb_t tau, slong prec);
#ifdef __cplusplus
}
#endif
#endif