# sage_setup: distribution = sagemath-flint
# distutils: libraries = flint
# distutils: depends = flint/ca_vec.h

################################################################################
# This file is auto-generated by the script
#   SAGE_ROOT/src/sage_setup/autogen/flint_autogen.py.
# From the commit 3e2c3a3e091106a25ca9c6fba28e02f2cbcd654a
# Do not modify by hand! Fix and rerun the script instead.
################################################################################

from libc.stdio cimport FILE
from sage.libs.gmp.types cimport *
from sage.libs.mpfr.types cimport *
from sage.libs.flint.types cimport *

cdef extern from "flint_wrap.h":
    ca_ptr _ca_vec_init(slong len, ca_ctx_t ctx) noexcept
    void ca_vec_init(ca_vec_t vec, slong len, ca_ctx_t ctx) noexcept
    void _ca_vec_clear(ca_ptr vec, slong len, ca_ctx_t ctx) noexcept
    void ca_vec_clear(ca_vec_t vec, ca_ctx_t ctx) noexcept
    void _ca_vec_swap(ca_ptr vec1, ca_ptr vec2, slong len, ca_ctx_t ctx) noexcept
    void ca_vec_swap(ca_vec_t vec1, ca_vec_t vec2, ca_ctx_t ctx) noexcept
    slong ca_vec_length(const ca_vec_t vec, ca_ctx_t ctx) noexcept
    void _ca_vec_fit_length(ca_vec_t vec, slong len, ca_ctx_t ctx) noexcept
    void ca_vec_set_length(ca_vec_t vec, slong len, ca_ctx_t ctx) noexcept
    void _ca_vec_set(ca_ptr res, ca_srcptr src, slong len, ca_ctx_t ctx) noexcept
    void ca_vec_set(ca_vec_t res, const ca_vec_t src, ca_ctx_t ctx) noexcept
    void _ca_vec_zero(ca_ptr res, slong len, ca_ctx_t ctx) noexcept
    void ca_vec_zero(ca_vec_t res, slong len, ca_ctx_t ctx) noexcept
    void ca_vec_print(const ca_vec_t vec, ca_ctx_t ctx) noexcept
    void ca_vec_printn(const ca_vec_t poly, slong digits, ca_ctx_t ctx) noexcept
    void ca_vec_append(ca_vec_t vec, const ca_t f, ca_ctx_t ctx) noexcept
    void _ca_vec_neg(ca_ptr res, ca_srcptr src, slong len, ca_ctx_t ctx) noexcept
    void ca_vec_neg(ca_vec_t res, const ca_vec_t src, ca_ctx_t ctx) noexcept
    void _ca_vec_add(ca_ptr res, ca_srcptr vec1, ca_srcptr vec2, slong len, ca_ctx_t ctx) noexcept
    void _ca_vec_sub(ca_ptr res, ca_srcptr vec1, ca_srcptr vec2, slong len, ca_ctx_t ctx) noexcept
    void _ca_vec_scalar_mul_ca(ca_ptr res, ca_srcptr src, slong len, const ca_t c, ca_ctx_t ctx) noexcept
    void _ca_vec_scalar_div_ca(ca_ptr res, ca_srcptr src, slong len, const ca_t c, ca_ctx_t ctx) noexcept
    void _ca_vec_scalar_addmul_ca(ca_ptr res, ca_srcptr src, slong len, const ca_t c, ca_ctx_t ctx) noexcept
    void _ca_vec_scalar_submul_ca(ca_ptr res, ca_srcptr src, slong len, const ca_t c, ca_ctx_t ctx) noexcept
    truth_t _ca_vec_check_is_zero(ca_srcptr vec, slong len, ca_ctx_t ctx) noexcept
    bint _ca_vec_is_fmpq_vec(ca_srcptr vec, slong len, ca_ctx_t ctx) noexcept
    bint _ca_vec_fmpq_vec_is_fmpz_vec(ca_srcptr vec, slong len, ca_ctx_t ctx) noexcept
    void _ca_vec_fmpq_vec_get_fmpz_vec_den(fmpz * c, fmpz_t den, ca_srcptr vec, slong len, ca_ctx_t ctx) noexcept
    void _ca_vec_set_fmpz_vec_div_fmpz(ca_ptr res, const fmpz * v, const fmpz_t den, slong len, ca_ctx_t ctx) noexcept
