Skip to content

Commit

Permalink
Merge pull request #162 from kalmarek/flint3
Browse files Browse the repository at this point in the history
Preparation for Flint 3
  • Loading branch information
Joel-Dahne authored Oct 29, 2023
2 parents 4ae7c48 + cc6998e commit 436ac3d
Show file tree
Hide file tree
Showing 37 changed files with 155 additions and 391 deletions.
4 changes: 1 addition & 3 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ authors = ["Marek Kaluba <[email protected]>", "Sascha Timme <Sascha Timme <timm
version = "0.8.1"

[deps]
Arb_jll = "d9960996-1013-53c9-9ba4-74a4155039c3"
FLINT_jll = "e134572f-a0d5-539d-bddf-3cad8db41a82"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
Expand All @@ -16,8 +15,7 @@ Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[compat]
Arb_jll = "~200.2300"
FLINT_jll = "~200.900.000"
FLINT_jll = "~300.0.0"
SpecialFunctions = "1.0, 2"
julia = "1.6"

Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
[![][docs-stable-img]][docs-stable-url]
[![][docs-dev-img]][docs-dev-url]

This package is a thin, efficient wrapper around [Arb](http://arblib.org) - a C library for arbitrary-precision ball arithmetic.
This package is a thin, efficient wrapper around
[Arb](http://arblib.org) - a C library for arbitrary-precision ball
arithmetic. Since 2023 Arb is part of [Flint](https://flintlib.org/).

The package is currently in early development. More features and
documentation will be added. While we try to avoid it there might be
Expand Down
3 changes: 2 additions & 1 deletion docs/src/index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# Arblib.jl Documentation

This package is a wrapper around [Arb](http://arblib.org) - a C
library for arbitrary-precision ball arithmetic. Other wrappers of Arb
library for arbitrary-precision ball arithmetic. Since 2023 Arb is
part of [Flint](https://flintlib.org/). Other wrappers of Arb/Flint
for Julia include [Nemo](https://github.com/Nemocas/Nemo.jl) and
[ArbNumerics.jl](https://github.com/JeffreySarnoff/ArbNumerics.jl).

Expand Down
2 changes: 1 addition & 1 deletion src/ArbCall/ArbFPWrapFunction.jl
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ function jlcode(af::ArbFPWrapFunction, jl_fname = jlfname(af))
flags::Cint = accurate_parts + correct_rounding * 2 + work_limit * 65536

return_flag = ccall(
Arblib.@libarb($(arbfname(af))),
Arblib.@libflint($(arbfname(af))),
Cint,
$(Expr(:tuple, ctype.(cargs)...)),
$(name.(cargs)...),
Expand Down
2 changes: 1 addition & 1 deletion src/ArbCall/ArbFunction.jl
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ function jlcode(af::ArbFunction, jl_fname = jlfname(af))
func_full_args = :(
function $jl_fname($(jl_full_args...))
__ret = ccall(
Arblib.@libarb($(arbfname(af))),
Arblib.@libflint($(arbfname(af))),
$returnT,
$(Expr(:tuple, ctype.(cargs)...)),
$(name.(cargs)...),
Expand Down
59 changes: 29 additions & 30 deletions src/ArbCall/parse.jl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""
parse_arbdoc(filename)
Parse a `.rst` file from the Arb documentation. Returns the title of
Parse a `.rst` file from the Flint documentation. Returns the title of
the document together with a list of sections with their titles and
the functions documented in them as strings.
Expand Down Expand Up @@ -177,45 +177,44 @@ function generate_file(
end

"""
parse_and_generate_arbdoc(arb_doc_dir, out_dir = "src/arbcalls/")
parse_and_generate_arbdoc(doc_dir, out_dir = "src/arbcalls/"; filenames, verbose)
Parses the Arb documentation and generates corresponding Julia files.
The value of `arb_doc_dir` should be a path to the directory
`doc/source/` in the Arb directory.
Parses the Flint documentation and generates corresponding Julia
files. The value of `doc_dir` should be a path to the directory
`doc/source/` in the Flint directory.
The `filenames` argument can be given to specify specific doc files to
use. The `verbose` argument can be set to true to give more
information about the result of the parsing.
"""
function parse_and_generate_arbdoc(
arb_doc_dir,
doc_dir,
out_dir = "src/arbcalls/";
filenames = (
filenames = [
"mag",
"arf",
"acf",
"arb",
"acb",
"acb_calc",
"acb_dft",
"acb_dirichlet",
"acb_elliptic",
"acb_hypgeom",
"acb_mat",
"acb_modular",
"arb_poly",
"acb_poly",
"arb",
"arb_calc",
"arb_fmpz_poly",
"arb_fpwrap",
"arb_hypgeom",
"acb_dft",
"arb_mat",
"arb_poly",
"arf",
"acb_mat",
"acb_hypgeom",
"arb_hypgeom",
"acb_elliptic",
"acb_modular",
"acb_dirichlet",
"bernoulli",
"bool_mat",
"dirichlet",
"dlog",
"double_interval",
#"fmpr", # Deprecated
"fmpz_extras",
"fmpzi",
"hypgeom",
"mag",
"partitions",
),
"arb_calc",
"acb_calc",
"arb_fpwrap",
"fmpz_extras",
],
verbose = false,
)

Expand Down Expand Up @@ -248,7 +247,7 @@ function parse_and_generate_arbdoc(

for filename in filenames
verbose && @info "Generating $filename.jl"
title, sections = parse_arbdoc(joinpath(arb_doc_dir, "$filename.rst"))
title, sections = parse_arbdoc(joinpath(doc_dir, "$filename.rst"))
generate_file(
joinpath(out_dir, "$filename.jl"),
title,
Expand Down
15 changes: 4 additions & 11 deletions src/Arblib.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module Arblib

using Arb_jll
using FLINT_jll
import LinearAlgebra
import Serialization
import SpecialFunctions
Expand All @@ -27,12 +27,8 @@ export Mag,
AcbSeries,
ref

macro libarb(function_name)
return (:($function_name), libarb)
end

macro libflint(function_name)
return (:($function_name), Arb_jll.libflint)
return (:($function_name), libflint)
end

const __isthreaded = Ref(false)
Expand Down Expand Up @@ -86,30 +82,27 @@ include("special-functions.jl")

include("arbcalls/mag.jl")
include("arbcalls/arf.jl")
include("arbcalls/acf.jl")
include("arbcalls/arb.jl")
include("arbcalls/acb.jl")
include("arbcalls/arb_poly.jl")
include("arbcalls/arb_fmpz_poly.jl")
include("arbcalls/acb_poly.jl")
include("arbcalls/arb_fmpz_poly.jl")
include("arbcalls/acb_dft.jl")
include("arbcalls/arb_mat.jl")
include("arbcalls/acb_mat.jl")
include("arbcalls/acb_hypgeom.jl")
include("arbcalls/arb_hypgeom.jl")
include("arbcalls/acb_elliptic.jl")
include("arbcalls/acb_modular.jl")
include("arbcalls/dirichlet.jl")
include("arbcalls/acb_dirichlet.jl")
include("arbcalls/bernoulli.jl")
include("arbcalls/hypgeom.jl")
include("arbcalls/partitions.jl")
include("arbcalls/arb_calc.jl")
include("arbcalls/acb_calc.jl")
include("arbcalls/arb_fpwrap.jl")
include("arbcalls/double_interval.jl")
include("arbcalls/fmpz_extras.jl")
include("arbcalls/bool_mat.jl")
include("arbcalls/dlog.jl")
include("arbcalls/eigen.jl")

end # module
10 changes: 5 additions & 5 deletions src/arb_types.jl
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ mutable struct arb_vec_struct
n::Int

function arb_vec_struct(n::Integer)
v = new(ccall(@libarb(_arb_vec_init), Ptr{arb_struct}, (Int,), n), n)
v = new(ccall(@libflint(_arb_vec_init), Ptr{arb_struct}, (Int,), n), n)
finalizer(clear!, v)
return v
end
Expand All @@ -119,7 +119,7 @@ mutable struct acb_vec_struct
n::Int

function acb_vec_struct(n::Integer)
v = new(ccall(@libarb(_acb_vec_init), Ptr{acb_struct}, (Int,), n), n)
v = new(ccall(@libflint(_acb_vec_init), Ptr{acb_struct}, (Int,), n), n)
finalizer(clear!, v)
return v
end
Expand All @@ -130,8 +130,8 @@ end
"""
mutable struct arb_poly_struct
coeffs::Ptr{arb_struct}
length::Int
alloc::Int
length::Int

function arb_poly_struct()
poly = new()
Expand All @@ -146,8 +146,8 @@ end
"""
mutable struct acb_poly_struct
coeffs::Ptr{acb_struct}
length::Int
alloc::Int
length::Int

function acb_poly_struct()
poly = new()
Expand Down Expand Up @@ -254,7 +254,7 @@ mutable struct calc_integrate_opt_struct
function calc_integrate_opt_struct()
opts = new()
ccall(
@libarb(acb_calc_integrate_opt_init),
@libflint(acb_calc_integrate_opt_init),
Cvoid,
(Ref{calc_integrate_opt_struct},),
opts,
Expand Down
15 changes: 7 additions & 8 deletions src/arbcalls/acb_dirichlet.jl
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,17 @@ arbcall"void acb_dirichlet_zeta_rs_d_coeffs(arb_ptr d, const arb_t sigma, slong
arbcall"void acb_dirichlet_zeta_rs_bound(mag_t err, const acb_t s, slong K)"
arbcall"void acb_dirichlet_zeta_rs_r(acb_t res, const acb_t s, slong K, slong prec)"
arbcall"void acb_dirichlet_zeta_rs(acb_t res, const acb_t s, slong K, slong prec)"
arbcall"void acb_dirichlet_zeta_jet_rs(acb_t res, const acb_t s, slong len, slong prec)"
arbcall"void acb_dirichlet_zeta_jet_rs(acb_ptr res, const acb_t s, slong len, slong prec)"

### Hurwitz zeta function
arbcall"void acb_dirichlet_hurwitz(acb_t res, const acb_t s, const acb_t a, slong prec)"

### Hurwitz zeta function precomputation
#ni arbcall"void acb_dirichlet_hurwitz_precomp_init(acb_dirichlet_hurwitz_precomp_t pre, const acb_t s, int deflate, ulong A, ulong K, ulong N, slong prec)"
#ni arbcall"void acb_dirichlet_hurwitz_precomp_init(acb_dirichlet_hurwitz_precomp_t pre, const acb_t s, int deflate, slong A, slong K, slong N, slong prec)"
#ni arbcall"void acb_dirichlet_hurwitz_precomp_init_num(acb_dirichlet_hurwitz_precomp_t pre, const acb_t s, int deflate, double num_eval, slong prec)"
#ni arbcall"void acb_dirichlet_hurwitz_precomp_clear(acb_dirichlet_hurwitz_precomp_t pre)"
arbcall"void acb_dirichlet_hurwitz_precomp_choose_param(ulong * A, ulong * K, ulong * N, const acb_t s, double num_eval, slong prec)"
arbcall"void acb_dirichlet_hurwitz_precomp_bound(mag_t res, const acb_t s, ulong A, ulong K, ulong N)"
arbcall"void acb_dirichlet_hurwitz_precomp_bound(mag_t res, const acb_t s, slong A, slong K, slong N)"
#ni arbcall"void acb_dirichlet_hurwitz_precomp_eval(acb_t res, const acb_dirichlet_hurwitz_precomp_t pre, ulong p, ulong q, slong prec)"

### Lerch transcendent
Expand All @@ -56,10 +56,9 @@ arbcall"void acb_dirichlet_lerch_phi(acb_t res, const acb_t z, const acb_t s, co
### Dirichlet character Gauss, Jacobi and theta sums
#ni arbcall"void acb_dirichlet_gauss_sum_naive(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)"
#ni arbcall"void acb_dirichlet_gauss_sum_factor(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)"
#ni arbcall"void acb_dirichlet_gauss_sum_order2(acb_t res, const dirichlet_char_t chi, slong prec)"
#ni arbcall"void acb_dirichlet_gauss_sum_order2(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)"
#ni arbcall"void acb_dirichlet_gauss_sum_theta(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)"
#ni arbcall"void acb_dirichlet_gauss_sum(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)"
#ni arbcall"void acb_dirichlet_gauss_sum_ui(acb_t res, const dirichlet_group_t G, ulong a, slong prec)"
#ni arbcall"void acb_dirichlet_jacobi_sum_naive(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi1, const dirichlet_char_t chi2, slong prec)"
#ni arbcall"void acb_dirichlet_jacobi_sum_factor(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi1, const dirichlet_char_t chi2, slong prec)"
#ni arbcall"void acb_dirichlet_jacobi_sum_gauss(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi1, const dirichlet_char_t chi2, slong prec)"
Expand All @@ -68,8 +67,8 @@ arbcall"void acb_dirichlet_lerch_phi(acb_t res, const acb_t z, const acb_t s, co
#ni arbcall"void acb_dirichlet_chi_theta_arb(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, const arb_t t, slong prec)"
#ni arbcall"void acb_dirichlet_ui_theta_arb(acb_t res, const dirichlet_group_t G, ulong a, const arb_t t, slong prec)"
arbcall"ulong acb_dirichlet_theta_length(ulong q, const arb_t t, slong prec)"
#ni arbcall"void acb_dirichlet_qseries_powers_naive(acb_t res, const arb_t x, int p, const ulong * a, const acb_dirichlet_powers_t z, slong len, slong prec)"
#ni arbcall"void acb_dirichlet_qseries_powers_smallorder(acb_t res, const arb_t x, int p, const ulong * a, const acb_dirichlet_powers_t z, slong len, slong prec)"
#ni arbcall"void acb_dirichlet_qseries_arb_powers_naive(acb_t res, const arb_t x, int p, const ulong * a, const acb_dirichlet_roots_t z, slong len, slong prec)"
#ni arbcall"void acb_dirichlet_qseries_arb_powers_smallorder(acb_t res, const arb_t x, int p, const ulong * a, const acb_dirichlet_roots_t z, slong len, slong prec)"

### Discrete Fourier transforms
#ni arbcall"void acb_dirichlet_dft_conrey(acb_ptr w, acb_srcptr v, const dirichlet_group_t G, slong prec)"
Expand All @@ -91,7 +90,7 @@ arbcall"ulong acb_dirichlet_theta_length(ulong q, const arb_t t, slong prec)"

### Hardy Z-functions
#ni arbcall"void acb_dirichlet_hardy_theta(acb_ptr res, const acb_t t, const dirichlet_group_t G, const dirichlet_char_t chi, slong len, slong prec)"
#ni arbcall"void acb_dirichlet_hardy_z(acb_t res, const acb_t t, const dirichlet_group_t G, const dirichlet_char_t chi, slong len, slong prec)"
#ni arbcall"void acb_dirichlet_hardy_z(acb_ptr res, const acb_t t, const dirichlet_group_t G, const dirichlet_char_t chi, slong len, slong prec)"
#ni arbcall"void _acb_dirichlet_hardy_theta_series(acb_ptr res, acb_srcptr t, slong tlen, const dirichlet_group_t G, const dirichlet_char_t chi, slong len, slong prec)"
#ni arbcall"void acb_dirichlet_hardy_theta_series(acb_poly_t res, const acb_poly_t t, const dirichlet_group_t G, const dirichlet_char_t chi, slong len, slong prec)"
#ni arbcall"void _acb_dirichlet_hardy_z_series(acb_ptr res, acb_srcptr t, slong tlen, const dirichlet_group_t G, const dirichlet_char_t chi, slong len, slong prec)"
Expand Down
2 changes: 1 addition & 1 deletion src/arbcalls/acb_hypgeom.jl
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ arbcall"void acb_hypgeom_u_asymp(acb_t res, const acb_t a, const acb_t b, const
arbcall"int acb_hypgeom_u_use_asymp(const acb_t z, slong prec)"

### Generalized hypergeometric function
arbcall"void acb_hypgeom_pfq(acb_poly_t res, acb_srcptr a, slong p, acb_srcptr b, slong q, const acb_t z, int regularized, slong prec)"
arbcall"void acb_hypgeom_pfq(acb_t res, acb_srcptr a, slong p, acb_srcptr b, slong q, const acb_t z, int regularized, slong prec)"

### Confluent hypergeometric functions
arbcall"void acb_hypgeom_u_1f1_series(acb_poly_t res, const acb_poly_t a, const acb_poly_t b, const acb_poly_t z, slong len, slong prec)"
Expand Down
2 changes: 1 addition & 1 deletion src/arbcalls/acb_mat.jl
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ arbcall"void acb_mat_conjugate(acb_mat_t dest, const acb_mat_t src)"

### Norms
arbcall"void acb_mat_bound_inf_norm(mag_t b, const acb_mat_t A)"
arbcall"void acb_mat_frobenius_norm(acb_t res, const acb_mat_t A, slong prec)"
arbcall"void acb_mat_frobenius_norm(arb_t res, const acb_mat_t A, slong prec)"
arbcall"void acb_mat_bound_frobenius_norm(mag_t res, const acb_mat_t A)"

### Arithmetic
Expand Down
22 changes: 3 additions & 19 deletions src/arbcalls/acb_poly.jl
Original file line number Diff line number Diff line change
Expand Up @@ -99,24 +99,10 @@ arbcall"int acb_poly_divrem(acb_poly_t Q, acb_poly_t R, const acb_poly_t A, cons
arbcall"void _acb_poly_div_root(acb_ptr Q, acb_t R, acb_srcptr A, slong len, const acb_t c, slong prec)"

### Composition
arbcall"void _acb_poly_taylor_shift_horner(acb_ptr g, const acb_t c, slong n, slong prec)"
arbcall"void acb_poly_taylor_shift_horner(acb_poly_t g, const acb_poly_t f, const acb_t c, slong prec)"
arbcall"void _acb_poly_taylor_shift_divconquer(acb_ptr g, const acb_t c, slong n, slong prec)"
arbcall"void acb_poly_taylor_shift_divconquer(acb_poly_t g, const acb_poly_t f, const acb_t c, slong prec)"
arbcall"void _acb_poly_taylor_shift_convolution(acb_ptr g, const acb_t c, slong n, slong prec)"
arbcall"void acb_poly_taylor_shift_convolution(acb_poly_t g, const acb_poly_t f, const acb_t c, slong prec)"
arbcall"void _acb_poly_taylor_shift(acb_ptr g, const acb_t c, slong n, slong prec)"
arbcall"void acb_poly_taylor_shift(acb_poly_t g, const acb_poly_t f, const acb_t c, slong prec)"
arbcall"void _acb_poly_compose_horner(acb_ptr res, acb_srcptr poly1, slong len1, acb_srcptr poly2, slong len2, slong prec)"
arbcall"void acb_poly_compose_horner(acb_poly_t res, const acb_poly_t poly1, const acb_poly_t poly2, slong prec)"
arbcall"void _acb_poly_compose_divconquer(acb_ptr res, acb_srcptr poly1, slong len1, acb_srcptr poly2, slong len2, slong prec)"
arbcall"void acb_poly_compose_divconquer(acb_poly_t res, const acb_poly_t poly1, const acb_poly_t poly2, slong prec)"
arbcall"void _acb_poly_compose(acb_ptr res, acb_srcptr poly1, slong len1, acb_srcptr poly2, slong len2, slong prec)"
arbcall"void acb_poly_compose(acb_poly_t res, const acb_poly_t poly1, const acb_poly_t poly2, slong prec)"
arbcall"void _acb_poly_compose_series_horner(acb_ptr res, acb_srcptr poly1, slong len1, acb_srcptr poly2, slong len2, slong n, slong prec)"
arbcall"void acb_poly_compose_series_horner(acb_poly_t res, const acb_poly_t poly1, const acb_poly_t poly2, slong n, slong prec)"
arbcall"void _acb_poly_compose_series_brent_kung(acb_ptr res, acb_srcptr poly1, slong len1, acb_srcptr poly2, slong len2, slong n, slong prec)"
arbcall"void acb_poly_compose_series_brent_kung(acb_poly_t res, const acb_poly_t poly1, const acb_poly_t poly2, slong n, slong prec)"
arbcall"void _acb_poly_compose_series(acb_ptr res, acb_srcptr poly1, slong len1, acb_srcptr poly2, slong len2, slong n, slong prec)"
arbcall"void acb_poly_compose_series(acb_poly_t res, const acb_poly_t poly1, const acb_poly_t poly2, slong n, slong prec)"
arbcall"void _acb_poly_revert_series_lagrange(acb_ptr h, acb_srcptr f, slong flen, slong n, slong prec)"
Expand Down Expand Up @@ -169,6 +155,8 @@ arbcall"void acb_poly_interpolate_fast(acb_poly_t poly, acb_srcptr xs, acb_srcpt
### Differentiation
arbcall"void _acb_poly_derivative(acb_ptr res, acb_srcptr poly, slong len, slong prec)"
arbcall"void acb_poly_derivative(acb_poly_t res, const acb_poly_t poly, slong prec)"
arbcall"void _acb_poly_nth_derivative(acb_ptr res, acb_srcptr poly, ulong n, slong len, slong prec)"
arbcall"void acb_poly_nth_derivative(acb_poly_t res, const acb_poly_t poly, ulong n, slong prec)"
arbcall"void _acb_poly_integral(acb_ptr res, acb_srcptr poly, slong len, slong prec)"
arbcall"void acb_poly_integral(acb_poly_t res, const acb_poly_t poly, slong prec)"

Expand All @@ -184,7 +172,7 @@ arbcall"void acb_poly_binomial_transform_convolution(acb_poly_t b, const acb_pol
arbcall"void _acb_poly_binomial_transform(acb_ptr b, acb_srcptr a, slong alen, slong len, slong prec)"
arbcall"void acb_poly_binomial_transform(acb_poly_t b, const acb_poly_t a, slong len, slong prec)"
arbcall"void _acb_poly_graeffe_transform(acb_ptr b, acb_srcptr a, slong len, slong prec)"
arbcall"void acb_poly_graeffe_transform(acb_poly_t b, acb_poly_t a, slong prec)"
arbcall"void acb_poly_graeffe_transform(acb_poly_t b, const acb_poly_t a, slong prec)"

### Elementary functions
arbcall"void _acb_poly_pow_ui_trunc_binexp(acb_ptr res, acb_srcptr f, slong flen, ulong exp, slong len, slong prec)"
Expand All @@ -211,10 +199,6 @@ arbcall"void _acb_poly_exp_series(acb_ptr f, acb_srcptr h, slong hlen, slong n,
arbcall"void acb_poly_exp_series(acb_poly_t f, const acb_poly_t h, slong n, slong prec)"
arbcall"void _acb_poly_exp_pi_i_series(acb_ptr f, acb_srcptr h, slong hlen, slong n, slong prec)"
arbcall"void acb_poly_exp_pi_i_series(acb_poly_t f, const acb_poly_t h, slong n, slong prec)"
arbcall"void _acb_poly_sin_cos_series_basecase(acb_ptr s, acb_ptr c, acb_srcptr h, slong hlen, slong n, slong prec, int times_pi)"
arbcall"void acb_poly_sin_cos_series_basecase(acb_poly_t s, acb_poly_t c, const acb_poly_t h, slong n, slong prec, int times_pi)"
arbcall"void _acb_poly_sin_cos_series_tangent(acb_ptr s, acb_ptr c, acb_srcptr h, slong hlen, slong n, slong prec, int times_pi)"
arbcall"void acb_poly_sin_cos_series_tangent(acb_poly_t s, acb_poly_t c, const acb_poly_t h, slong n, slong prec, int times_pi)"
arbcall"void _acb_poly_sin_cos_series(acb_ptr s, acb_ptr c, acb_srcptr h, slong hlen, slong n, slong prec)"
arbcall"void acb_poly_sin_cos_series(acb_poly_t s, acb_poly_t c, const acb_poly_t h, slong n, slong prec)"
arbcall"void _acb_poly_sin_series(acb_ptr s, acb_srcptr h, slong hlen, slong n, slong prec)"
Expand Down
Loading

0 comments on commit 436ac3d

Please sign in to comment.