Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-11-07 10:15:25

0001 /*
0002     Copyright (C) 2025 Fredrik Johansson
0003 
0004     This file is part of FLINT.
0005 
0006     FLINT is free software: you can redistribute it and/or modify it under
0007     the terms of the GNU Lesser General Public License (LGPL) as published
0008     by the Free Software Foundation; either version 3 of the License, or
0009     (at your option) any later version.  See <https://www.gnu.org/licenses/>.
0010 */
0011 
0012 #ifndef GR_SERIES_H
0013 #define GR_SERIES_H
0014 
0015 #include "flint.h"
0016 #include "gr.h"
0017 #include "dirichlet.h"
0018 
0019 #ifdef __cplusplus
0020 extern "C" {
0021 #endif
0022 
0023 typedef struct
0024 {
0025     gr_ctx_struct * base_ring;
0026     slong n;
0027     char * var;
0028 }
0029 series_mod_ctx_t;
0030 
0031 typedef struct
0032 {
0033     gr_ctx_struct * base_ring;
0034     slong prec;     /* default approximate truncation */
0035     char * var;
0036 }
0037 series_ctx_t;
0038 
0039 #define GR_SERIES_CTX(ring_ctx) ((series_ctx_t *)((ring_ctx)))
0040 #define GR_SERIES_ELEM_CTX(ring_ctx) (GR_SERIES_CTX(ring_ctx)->base_ring)
0041 #define GR_SERIES_PREC(ring_ctx) (GR_SERIES_CTX(ring_ctx)->prec)
0042 
0043 #define GR_SERIES_MOD_CTX(ring_ctx) ((series_mod_ctx_t *)((ring_ctx)))
0044 #define GR_SERIES_MOD_ELEM_CTX(ring_ctx) (GR_SERIES_MOD_CTX(ring_ctx)->base_ring)
0045 #define GR_SERIES_MOD_N(ring_ctx) (GR_SERIES_MOD_CTX(ring_ctx)->n)
0046 
0047 
0048 #define GR_SERIES_ERR_EXACT WORD_MAX
0049 #define GR_SERIES_ERR_MAX WORD_MAX / 4
0050 
0051 typedef struct
0052 {
0053     gr_poly_struct poly;
0054     slong error;
0055 }
0056 gr_series_struct;
0057 
0058 typedef gr_series_struct gr_series_t[1];
0059 
0060 #define GR_SERIES_POLY(x) (&((x)->poly))
0061 #define GR_SERIES_ERROR(x) ((x)->error)
0062 
0063 typedef struct
0064 {
0065     gr_series_struct * entries;
0066     slong alloc;
0067     slong length;
0068 }
0069 gr_series_vec_struct;
0070 
0071 typedef gr_series_vec_struct gr_series_vec_t[1];
0072 
0073 
0074 void gr_series_ctx_init(gr_ctx_t ctx, gr_ctx_t base_ring, slong prec);
0075 void gr_series_ctx_clear(gr_ctx_t ctx);
0076 
0077 int gr_series_ctx_write(gr_stream_t out, gr_ctx_t ctx);
0078 truth_t gr_series_ctx_is_ring(gr_ctx_t ctx);
0079 truth_t gr_series_ctx_is_commutative_ring(gr_ctx_t ctx);
0080 truth_t gr_series_ctx_is_integral_domain(gr_ctx_t ctx);
0081 truth_t gr_series_ctx_is_rational_vector_space(gr_ctx_t ctx);
0082 truth_t gr_series_ctx_is_real_vector_space(gr_ctx_t ctx);
0083 truth_t gr_series_ctx_is_complex_vector_space(gr_ctx_t ctx);
0084 truth_t gr_series_ctx_is_finite_characteristic(gr_ctx_t ctx);
0085 WARN_UNUSED_RESULT int gr_series_ctx_set_gen_name(gr_ctx_t ctx, const char * s);
0086 WARN_UNUSED_RESULT int gr_series_ctx_set_gen_names(gr_ctx_t ctx, const char ** s);
0087 
0088 void gr_series_init(gr_series_t res, gr_ctx_t ctx);
0089 void gr_series_clear(gr_series_t res, gr_ctx_t ctx);
0090 void gr_series_swap(gr_series_t x, gr_series_t y, gr_ctx_t ctx);
0091 void gr_series_set_shallow(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0092 
0093 slong _gr_series_get_error(const gr_series_t x, gr_ctx_t ctx);
0094 truth_t _gr_series_is_exact(const gr_series_t x, gr_ctx_t ctx);
0095 void _gr_series_set_error(gr_series_t x, slong err, gr_ctx_t ctx);
0096 void _gr_series_make_exact(gr_series_t x, gr_ctx_t ctx);
0097 
0098 WARN_UNUSED_RESULT int gr_series_randtest(gr_series_t res, flint_rand_t state, gr_ctx_t ctx);
0099 WARN_UNUSED_RESULT int gr_series_write(gr_stream_t out, const gr_series_t x, gr_ctx_t ctx);
0100 WARN_UNUSED_RESULT int gr_series_zero(gr_series_t res, gr_ctx_t ctx);
0101 WARN_UNUSED_RESULT int gr_series_one(gr_series_t res, gr_ctx_t ctx);
0102 WARN_UNUSED_RESULT int gr_series_set(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0103 WARN_UNUSED_RESULT int gr_series_gen(gr_series_t res, gr_ctx_t ctx);
0104 WARN_UNUSED_RESULT int gr_series_gens_recursive(gr_vec_t vec, gr_ctx_t ctx);
0105 WARN_UNUSED_RESULT int gr_series_big_o(gr_series_t res, const gr_series_t base, const fmpz_t exp, gr_ctx_t ctx);
0106 WARN_UNUSED_RESULT int gr_series_neg(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0107 WARN_UNUSED_RESULT int gr_series_set_gr_poly(gr_series_t res, const gr_poly_t x, gr_ctx_t ctx);
0108 WARN_UNUSED_RESULT int gr_series_set_scalar(gr_series_t res, gr_srcptr x, gr_ctx_t ctx);
0109 WARN_UNUSED_RESULT int gr_series_set_si(gr_series_t res, slong c, gr_ctx_t ctx);
0110 WARN_UNUSED_RESULT int gr_series_set_ui(gr_series_t res, ulong c, gr_ctx_t ctx);
0111 WARN_UNUSED_RESULT int gr_series_set_fmpz(gr_series_t res, const fmpz_t c, gr_ctx_t ctx);
0112 WARN_UNUSED_RESULT int gr_series_set_fmpq(gr_series_t res, const fmpq_t c, gr_ctx_t ctx);
0113 WARN_UNUSED_RESULT int gr_series_set_other(gr_series_t res, gr_srcptr x, gr_ctx_t x_ctx, gr_ctx_t ctx);
0114 truth_t gr_series_is_zero(const gr_series_t x, gr_ctx_t ctx);
0115 truth_t gr_series_is_one(const gr_series_t x, gr_ctx_t ctx);
0116 truth_t gr_series_coeff_is_zero(const gr_series_t x, slong i, gr_ctx_t ctx);
0117 truth_t gr_series_equal(const gr_series_t x, const gr_series_t y, gr_ctx_t ctx);
0118 WARN_UNUSED_RESULT int gr_series_add(gr_series_t res, const gr_series_t x, const gr_series_t y, gr_ctx_t ctx);
0119 WARN_UNUSED_RESULT int gr_series_sub(gr_series_t res, const gr_series_t x, const gr_series_t y, gr_ctx_t ctx);
0120 WARN_UNUSED_RESULT int gr_series_mul(gr_series_t res, const gr_series_t x, const gr_series_t y, gr_ctx_t ctx);
0121 WARN_UNUSED_RESULT int gr_series_inv(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0122 WARN_UNUSED_RESULT int gr_series_div(gr_series_t res, const gr_series_t x, const gr_series_t y, gr_ctx_t ctx);
0123 WARN_UNUSED_RESULT int gr_series_divexact(gr_series_t res, const gr_series_t x, const gr_series_t y, gr_ctx_t ctx);
0124 WARN_UNUSED_RESULT int gr_series_sqrt(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0125 WARN_UNUSED_RESULT int gr_series_rsqrt(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0126 
0127 WARN_UNUSED_RESULT int gr_series_exp(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0128 WARN_UNUSED_RESULT int gr_series_log(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0129 WARN_UNUSED_RESULT int gr_series_sin(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0130 WARN_UNUSED_RESULT int gr_series_cos(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0131 WARN_UNUSED_RESULT int gr_series_sin_pi(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0132 WARN_UNUSED_RESULT int gr_series_cos_pi(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0133 WARN_UNUSED_RESULT int gr_series_sin_cos(gr_series_t res1, gr_series_t res2, const gr_series_t x, gr_ctx_t ctx);
0134 WARN_UNUSED_RESULT int gr_series_sin_cos_pi(gr_series_t res1, gr_series_t res2, const gr_series_t x, gr_ctx_t ctx);
0135 WARN_UNUSED_RESULT int gr_series_tan(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0136 WARN_UNUSED_RESULT int gr_series_tanh(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0137 WARN_UNUSED_RESULT int gr_series_cot(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0138 WARN_UNUSED_RESULT int gr_series_coth(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0139 WARN_UNUSED_RESULT int gr_series_tan_pi(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0140 WARN_UNUSED_RESULT int gr_series_cot_pi(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0141 WARN_UNUSED_RESULT int gr_series_asin(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0142 WARN_UNUSED_RESULT int gr_series_acos(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0143 WARN_UNUSED_RESULT int gr_series_atan(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0144 WARN_UNUSED_RESULT int gr_series_asinh(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0145 WARN_UNUSED_RESULT int gr_series_acosh(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0146 WARN_UNUSED_RESULT int gr_series_atanh(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0147 
0148 /* currently arb/acb wrappers only */
0149 WARN_UNUSED_RESULT int gr_series_gamma(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0150 WARN_UNUSED_RESULT int gr_series_rgamma(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0151 WARN_UNUSED_RESULT int gr_series_lgamma(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0152 WARN_UNUSED_RESULT int gr_series_digamma(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0153 WARN_UNUSED_RESULT int gr_series_erf(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0154 WARN_UNUSED_RESULT int gr_series_erfc(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0155 WARN_UNUSED_RESULT int gr_series_erfi(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0156 WARN_UNUSED_RESULT int gr_series_exp_integral_ei(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0157 WARN_UNUSED_RESULT int gr_series_cos_integral(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0158 WARN_UNUSED_RESULT int gr_series_cosh_integral(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0159 WARN_UNUSED_RESULT int gr_series_sin_integral(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0160 WARN_UNUSED_RESULT int gr_series_sinh_integral(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0161 
0162 WARN_UNUSED_RESULT int gr_series_bessel_j(gr_series_t res, const gr_srcptr nu, const gr_series_t z, gr_ctx_t ctx);
0163 
0164 WARN_UNUSED_RESULT int gr_series_fresnel(gr_series_t res1, gr_series_t res2, const gr_series_t x, int normalized, gr_ctx_t ctx);
0165 WARN_UNUSED_RESULT int gr_series_fresnel_s(gr_series_t res, const gr_series_t x, int normalized, gr_ctx_t ctx);
0166 WARN_UNUSED_RESULT int gr_series_fresnel_c(gr_series_t res, const gr_series_t x, int normalized, gr_ctx_t ctx);
0167 WARN_UNUSED_RESULT int gr_series_airy(gr_series_t res1, gr_series_t res2, gr_series_t res3, gr_series_t res4, const gr_series_t x, gr_ctx_t ctx);
0168 WARN_UNUSED_RESULT int gr_series_airy_ai(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0169 WARN_UNUSED_RESULT int gr_series_airy_ai_prime(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0170 WARN_UNUSED_RESULT int gr_series_airy_bi(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0171 WARN_UNUSED_RESULT int gr_series_airy_bi_prime(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0172 WARN_UNUSED_RESULT int gr_series_log_integral(gr_series_t res, const gr_series_t x, int offset, gr_ctx_t ctx);
0173 WARN_UNUSED_RESULT int gr_series_gamma_upper(gr_series_t res, const gr_series_t s, const gr_series_t x, int regularized, gr_ctx_t ctx);
0174 WARN_UNUSED_RESULT int gr_series_gamma_lower(gr_series_t res, const gr_series_t s, const gr_series_t x, int regularized, gr_ctx_t ctx);
0175 WARN_UNUSED_RESULT int gr_series_beta_lower(gr_series_t res, const gr_series_t a, const gr_series_t b, const gr_series_t x, int regularized, gr_ctx_t ctx);
0176 WARN_UNUSED_RESULT int gr_series_polylog(gr_series_t res, const gr_series_t s, const gr_series_t z, gr_ctx_t ctx);
0177 WARN_UNUSED_RESULT int gr_series_hurwitz_zeta(gr_series_t res, const gr_series_t s, const gr_series_t z, gr_ctx_t ctx);
0178 WARN_UNUSED_RESULT int gr_series_dirichlet_l(gr_series_t res, const dirichlet_group_t G, const dirichlet_char_t chi, const gr_series_t x, gr_ctx_t ctx);
0179 WARN_UNUSED_RESULT int gr_series_dirichlet_hardy_theta(gr_series_t res, const dirichlet_group_t G, const dirichlet_char_t chi, const gr_series_t x, gr_ctx_t ctx);
0180 WARN_UNUSED_RESULT int gr_series_dirichlet_hardy_z(gr_series_t res, const dirichlet_group_t G, const dirichlet_char_t chi, const gr_series_t x, gr_ctx_t ctx);
0181 WARN_UNUSED_RESULT int gr_series_jacobi_theta(gr_series_t res1, gr_series_t res2, gr_series_t res3, gr_series_t res4, const gr_series_t x, const gr_series_t tau, gr_ctx_t ctx);
0182 WARN_UNUSED_RESULT int gr_series_jacobi_theta_1(gr_series_t res, const gr_series_t x, const gr_series_t tau, gr_ctx_t ctx);
0183 WARN_UNUSED_RESULT int gr_series_jacobi_theta_2(gr_series_t res, const gr_series_t x, const gr_series_t tau, gr_ctx_t ctx);
0184 WARN_UNUSED_RESULT int gr_series_jacobi_theta_3(gr_series_t res, const gr_series_t x, const gr_series_t tau, gr_ctx_t ctx);
0185 WARN_UNUSED_RESULT int gr_series_jacobi_theta_4(gr_series_t res, const gr_series_t x, const gr_series_t tau, gr_ctx_t ctx);
0186 WARN_UNUSED_RESULT int gr_series_agm1(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0187 WARN_UNUSED_RESULT int gr_series_elliptic_k(gr_series_t res, const gr_series_t x, gr_ctx_t ctx);
0188 WARN_UNUSED_RESULT int gr_series_weierstrass_p(gr_series_t res, const gr_series_t x, const gr_series_t tau, gr_ctx_t ctx);
0189 WARN_UNUSED_RESULT int gr_series_hypgeom_pfq(gr_series_t res, const gr_series_vec_t a, const gr_series_vec_t b, const gr_series_t x, int regularized, gr_ctx_t ctx);
0190 
0191 void gr_series_mod_ctx_init(gr_ctx_t ctx, gr_ctx_t base_ring, slong n);
0192 void gr_series_mod_ctx_clear(gr_ctx_t ctx);
0193 int gr_series_mod_ctx_write(gr_stream_t out, gr_ctx_t ctx);
0194 truth_t gr_series_mod_ctx_is_ring(gr_ctx_t ctx);
0195 truth_t gr_series_mod_ctx_is_commutative_ring(gr_ctx_t ctx);
0196 truth_t gr_series_mod_ctx_is_integral_domain(gr_ctx_t ctx);
0197 truth_t gr_series_mod_ctx_is_rational_vector_space(gr_ctx_t ctx);
0198 truth_t gr_series_mod_ctx_is_real_vector_space(gr_ctx_t ctx);
0199 truth_t gr_series_mod_ctx_is_complex_vector_space(gr_ctx_t ctx);
0200 truth_t gr_series_mod_ctx_is_field(gr_ctx_t ctx);
0201 truth_t gr_series_mod_ctx_is_finite_characteristic(gr_ctx_t ctx);
0202 WARN_UNUSED_RESULT int gr_series_mod_ctx_set_gen_name(gr_ctx_t ctx, const char * s);
0203 WARN_UNUSED_RESULT int gr_series_mod_ctx_set_gen_names(gr_ctx_t ctx, const char ** s);
0204 WARN_UNUSED_RESULT int gr_series_mod_gens_recursive(gr_vec_t vec, gr_ctx_t ctx);
0205 WARN_UNUSED_RESULT int gr_series_mod_big_o(gr_poly_t res, const gr_poly_t base, const fmpz_t exp, gr_ctx_t ctx);
0206 void gr_series_mod_init(gr_poly_t res, gr_ctx_t ctx);
0207 void gr_series_mod_clear(gr_poly_t res, gr_ctx_t ctx);
0208 void gr_series_mod_swap(gr_poly_t x, gr_poly_t y, gr_ctx_t ctx);
0209 WARN_UNUSED_RESULT int gr_series_mod_randtest(gr_poly_t res, flint_rand_t state, gr_ctx_t ctx);
0210 WARN_UNUSED_RESULT int gr_series_mod_write(gr_stream_t out, const gr_poly_t x, gr_ctx_t ctx);
0211 WARN_UNUSED_RESULT int gr_series_mod_zero(gr_poly_t res, gr_ctx_t ctx);
0212 WARN_UNUSED_RESULT int gr_series_mod_one(gr_poly_t res, gr_ctx_t ctx);
0213 WARN_UNUSED_RESULT int gr_series_mod_gen(gr_poly_t res, gr_ctx_t ctx);
0214 WARN_UNUSED_RESULT int gr_series_mod_set(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0215 WARN_UNUSED_RESULT int gr_series_mod_set_other(gr_poly_t res, gr_srcptr x, gr_ctx_t x_ctx, gr_ctx_t ctx);
0216 void gr_series_mod_set_shallow(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0217 WARN_UNUSED_RESULT int gr_series_mod_set_si(gr_poly_t res, slong c, gr_ctx_t ctx);
0218 WARN_UNUSED_RESULT int gr_series_mod_set_ui(gr_poly_t res, ulong c, gr_ctx_t ctx);
0219 WARN_UNUSED_RESULT int gr_series_mod_set_fmpz(gr_poly_t res, const fmpz_t c, gr_ctx_t ctx);
0220 WARN_UNUSED_RESULT int gr_series_mod_set_fmpq(gr_poly_t res, const fmpq_t c, gr_ctx_t ctx);
0221 truth_t gr_series_mod_is_zero(const gr_poly_t x, gr_ctx_t ctx);
0222 truth_t gr_series_mod_is_one(const gr_poly_t x, gr_ctx_t ctx);
0223 truth_t gr_series_mod_equal(const gr_poly_t x, const gr_poly_t y, gr_ctx_t ctx);
0224 WARN_UNUSED_RESULT int gr_series_mod_neg(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0225 WARN_UNUSED_RESULT int gr_series_mod_add(gr_poly_t res, const gr_poly_t x, const gr_poly_t y, gr_ctx_t ctx);
0226 WARN_UNUSED_RESULT int gr_series_mod_sub(gr_poly_t res, const gr_poly_t x, const gr_poly_t y, gr_ctx_t ctx);
0227 WARN_UNUSED_RESULT int gr_series_mod_mul(gr_poly_t res, const gr_poly_t x, const gr_poly_t y, gr_ctx_t ctx);
0228 WARN_UNUSED_RESULT int gr_series_mod_inv(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0229 WARN_UNUSED_RESULT int gr_series_mod_div(gr_poly_t res, const gr_poly_t x, const gr_poly_t y, gr_ctx_t ctx);
0230 WARN_UNUSED_RESULT int gr_series_mod_exp(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0231 WARN_UNUSED_RESULT int gr_series_mod_log(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0232 WARN_UNUSED_RESULT int gr_series_mod_sqrt(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0233 WARN_UNUSED_RESULT int gr_series_mod_rsqrt(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0234 WARN_UNUSED_RESULT int gr_series_mod_sin(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0235 WARN_UNUSED_RESULT int gr_series_mod_cos(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0236 WARN_UNUSED_RESULT int gr_series_mod_sin_pi(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0237 WARN_UNUSED_RESULT int gr_series_mod_cos_pi(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0238 WARN_UNUSED_RESULT int gr_series_mod_sin_cos(gr_poly_t res1, gr_poly_t res2, const gr_poly_t x, gr_ctx_t ctx);
0239 WARN_UNUSED_RESULT int gr_series_mod_sin_cos_pi(gr_poly_t res1, gr_poly_t res2, const gr_poly_t x, gr_ctx_t ctx);
0240 WARN_UNUSED_RESULT int gr_series_mod_tan(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0241 WARN_UNUSED_RESULT int gr_series_mod_tanh(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0242 WARN_UNUSED_RESULT int gr_series_mod_cot(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0243 WARN_UNUSED_RESULT int gr_series_mod_coth(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0244 WARN_UNUSED_RESULT int gr_series_mod_tan_pi(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0245 WARN_UNUSED_RESULT int gr_series_mod_cot_pi(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0246 WARN_UNUSED_RESULT int gr_series_mod_asin(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0247 WARN_UNUSED_RESULT int gr_series_mod_acos(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0248 WARN_UNUSED_RESULT int gr_series_mod_atan(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0249 WARN_UNUSED_RESULT int gr_series_mod_asinh(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0250 WARN_UNUSED_RESULT int gr_series_mod_acosh(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0251 WARN_UNUSED_RESULT int gr_series_mod_atanh(gr_poly_t res, const gr_poly_t x, gr_ctx_t ctx);
0252 
0253 
0254 #ifdef __cplusplus
0255 }
0256 #endif
0257 
0258 #endif /* GR_SERIES_H */