Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sagelib
Path: blob/master/sage/libs/gmp/mpz.pxd
4079 views
from types cimport *

cdef extern from "gmp.h":

    ### Integer Functions ###
    
    # Initialization Functions
    void mpz_init (mpz_t integer) 
    void mpz_init2 (mpz_t integer, unsigned long n) 
    void mpz_clear (mpz_t integer) 
    void mpz_realloc2 (mpz_t integer, unsigned long n) 

    # Assignment Functions
    void mpz_set (mpz_t rop, mpz_t op) 
    void mpz_set_ui (mpz_t rop, unsigned long int op) 
    void mpz_set_si (mpz_t rop, signed long int op) 
    void mpz_set_d (mpz_t rop, double op) 
    void mpz_set_q (mpz_t rop, mpq_t op) 
    void mpz_set_f (mpz_t rop, mpf_t op) 
    int mpz_set_str (mpz_t rop, char *str, int base) 
    void mpz_swap (mpz_t rop1, mpz_t rop2) 

    # Combined Initialization and Assignment Functions
    void mpz_init_set (mpz_t rop, mpz_t op) 
    void mpz_init_set_ui (mpz_t rop, unsigned long int op) 
    void mpz_init_set_si (mpz_t rop, signed long int op) 
    void mpz_init_set_d (mpz_t rop, double op) 
    int mpz_init_set_str (mpz_t rop, char *str, int base) 

    # Conversion Functions
    unsigned long int mpz_get_ui (mpz_t op) 
    signed long int mpz_get_si (mpz_t op) 
    double mpz_get_d (mpz_t op) 
    double mpz_get_d_2exp (long int *exp, mpz_t op) 
    char * mpz_get_str (char *str, int base, mpz_t op) 

    # Arithmetic Functions
    void mpz_add (mpz_t rop, mpz_t op1, mpz_t op2) 
    void mpz_add_ui (mpz_t rop, mpz_t op1, unsigned long int op2) 
    void mpz_sub (mpz_t rop, mpz_t op1, mpz_t op2) 
    void mpz_sub_ui (mpz_t rop, mpz_t op1, unsigned long int op2) 
    void mpz_ui_sub (mpz_t rop, unsigned long int op1, mpz_t op2) 
    void mpz_mul (mpz_t rop, mpz_t op1, mpz_t op2) 
    void mpz_mul_si (mpz_t rop, mpz_t op1, long int op2) 
    void mpz_mul_ui (mpz_t rop, mpz_t op1, unsigned long int op2) 
    void mpz_addmul (mpz_t rop, mpz_t op1, mpz_t op2) 
    void mpz_addmul_ui (mpz_t rop, mpz_t op1, unsigned long int op2) 
    void mpz_submul (mpz_t rop, mpz_t op1, mpz_t op2) 
    void mpz_submul_ui (mpz_t rop, mpz_t op1, unsigned long int op2) 
    void mpz_mul_2exp (mpz_t rop, mpz_t op1, unsigned long int op2) 
    void mpz_neg (mpz_t rop, mpz_t op) 
    void mpz_abs (mpz_t rop, mpz_t op) 

    # Division Functions
    void mpz_cdiv_q (mpz_t q, mpz_t n, mpz_t d) 
    void mpz_cdiv_r (mpz_t r, mpz_t n, mpz_t d) 
    void mpz_cdiv_qr (mpz_t q, mpz_t r, mpz_t n, mpz_t d) 
    unsigned long int mpz_cdiv_q_ui (mpz_t q, mpz_t n, unsigned long int d) 
    unsigned long int mpz_cdiv_r_ui (mpz_t r, mpz_t n, unsigned long int d) 
    unsigned long int mpz_cdiv_qr_ui (mpz_t q, mpz_t r, mpz_t n, unsigned long int d) 
    unsigned long int mpz_cdiv_ui (mpz_t n, unsigned long int d) 
    void mpz_cdiv_q_2exp (mpz_t q, mpz_t n, unsigned long int b) 
    void mpz_cdiv_r_2exp (mpz_t r, mpz_t n, unsigned long int b) 
    void mpz_fdiv_q (mpz_t q, mpz_t n, mpz_t d) 
    void mpz_fdiv_r (mpz_t r, mpz_t n, mpz_t d) 
    void mpz_fdiv_qr (mpz_t q, mpz_t r, mpz_t n, mpz_t d) 
    unsigned long int mpz_fdiv_q_ui (mpz_t q, mpz_t n, unsigned long int d) 
    unsigned long int mpz_fdiv_r_ui (mpz_t r, mpz_t n, unsigned long int d) 
    unsigned long int mpz_fdiv_qr_ui (mpz_t q, mpz_t r, mpz_t n, unsigned long int d) 
    unsigned long int mpz_fdiv_ui (mpz_t n, unsigned long int d) 
    void mpz_fdiv_q_2exp (mpz_t q, mpz_t n, unsigned long int b) 
    void mpz_fdiv_r_2exp (mpz_t r, mpz_t n, unsigned long int b) 
    void mpz_tdiv_q (mpz_t q, mpz_t n, mpz_t d) 
    void mpz_tdiv_r (mpz_t r, mpz_t n, mpz_t d) 
    void mpz_tdiv_qr (mpz_t q, mpz_t r, mpz_t n, mpz_t d) 
    unsigned long int mpz_tdiv_q_ui (mpz_t q, mpz_t n, unsigned long int d) 
    unsigned long int mpz_tdiv_r_ui (mpz_t r, mpz_t n, unsigned long int d) 
    unsigned long int mpz_tdiv_qr_ui (mpz_t q, mpz_t r, mpz_t n, unsigned long int d) 
    unsigned long int mpz_tdiv_ui (mpz_t n, unsigned long int d) 
    void mpz_tdiv_q_2exp (mpz_t q, mpz_t n, unsigned long int b) 
    void mpz_tdiv_r_2exp (mpz_t r, mpz_t n, unsigned long int b) 
    void mpz_mod (mpz_t r, mpz_t n, mpz_t d) 
    unsigned long int mpz_mod_ui (mpz_t r, mpz_t n, unsigned long int d) 
    void mpz_divexact (mpz_t q, mpz_t n, mpz_t d) 
    void mpz_divexact_ui (mpz_t q, mpz_t n, unsigned long d) 
    bint mpz_divisible_p (mpz_t n, mpz_t d) 
    bint mpz_divisible_ui_p (mpz_t n, unsigned long int d) 
    bint mpz_divisible_2exp_p (mpz_t n, unsigned long int b) 
    bint mpz_congruent_p (mpz_t n, mpz_t c, mpz_t d) 
    bint mpz_congruent_ui_p (mpz_t n, unsigned long int c, unsigned long int d) 
    bint mpz_congruent_2exp_p (mpz_t n, mpz_t c, unsigned long int b) 

    # Exponentiation Functions
    void mpz_powm (mpz_t rop, mpz_t base, mpz_t exp, mpz_t mod) 
    void mpz_powm_ui (mpz_t rop, mpz_t base, unsigned long int exp, mpz_t mod) 
    void mpz_pow_ui (mpz_t rop, mpz_t base, unsigned long int exp) 
    void mpz_ui_pow_ui (mpz_t rop, unsigned long int base, unsigned long int exp) 

    # Root Extraction Functions
    int mpz_root (mpz_t rop, mpz_t op, unsigned long int n) 
    void mpz_rootrem (mpz_t root, mpz_t rem, mpz_t u, unsigned long int n) 
    void mpz_sqrt (mpz_t rop, mpz_t op) 
    void mpz_sqrtrem (mpz_t rop1, mpz_t rop2, mpz_t op) 
    bint mpz_perfect_power_p (mpz_t op) 
    bint mpz_perfect_square_p (mpz_t op) 

    # Number Theoretic Functions
    bint mpz_probab_prime_p (mpz_t n, int reps) 
    void mpz_nextprime (mpz_t rop, mpz_t op) 
    void mpz_gcd (mpz_t rop, mpz_t op1, mpz_t op2) 
    unsigned long int mpz_gcd_ui (mpz_t rop, mpz_t op1, unsigned long int op2) 
    void mpz_gcdext (mpz_t g, mpz_t s, mpz_t t, mpz_t a, mpz_t b) 
    void mpz_lcm (mpz_t rop, mpz_t op1, mpz_t op2) 
    void mpz_lcm_ui (mpz_t rop, mpz_t op1, unsigned long op2) 
    int mpz_invert (mpz_t rop, mpz_t op1, mpz_t op2) 
    int mpz_jacobi (mpz_t a, mpz_t b) 
    int mpz_legendre (mpz_t a, mpz_t p) 
    int mpz_kronecker (mpz_t a, mpz_t b) 
    int mpz_kronecker_si (mpz_t a, long b) 
    int mpz_kronecker_ui (mpz_t a, unsigned long b) 
    int mpz_si_kronecker (long a, mpz_t b) 
    int mpz_ui_kronecker (unsigned long a, mpz_t b) 
    unsigned long int mpz_remove (mpz_t rop, mpz_t op, mpz_t f) 
    void mpz_fac_ui (mpz_t rop, unsigned long int op) 
    void mpz_bin_ui (mpz_t rop, mpz_t n, unsigned long int k) 
    void mpz_bin_uiui (mpz_t rop, unsigned long int n, unsigned long int k) 
    void mpz_fib_ui (mpz_t fn, unsigned long int n) 
    void mpz_fib2_ui (mpz_t fn, mpz_t fnsub1, unsigned long int n) 
    void mpz_lucnum_ui (mpz_t ln, unsigned long int n) 
    void mpz_lucnum2_ui (mpz_t ln, mpz_t lnsub1, unsigned long int n) 

    # Comparison Functions
    int mpz_cmp (mpz_t op1, mpz_t op2) 
    int mpz_cmp_d (mpz_t op1, double op2) 
    int mpz_cmp_si (mpz_t op1, signed long int op2) 
    int mpz_cmp_ui (mpz_t op1, unsigned long int op2) 
    int mpz_cmpabs (mpz_t op1, mpz_t op2) 
    int mpz_cmpabs_d (mpz_t op1, double op2) 
    int mpz_cmpabs_ui (mpz_t op1, unsigned long int op2) 
    int mpz_sgn (mpz_t op) 

    # Logical and Bit Manipulation Functions
    void mpz_and (mpz_t rop, mpz_t op1, mpz_t op2) 
    void mpz_ior (mpz_t rop, mpz_t op1, mpz_t op2) 
    void mpz_xor (mpz_t rop, mpz_t op1, mpz_t op2) 
    void mpz_com (mpz_t rop, mpz_t op) 
    unsigned long int mpz_popcount (mpz_t op) 
    unsigned long int mpz_hamdist (mpz_t op1, mpz_t op2) 
    unsigned long int mpz_scan0 (mpz_t op, unsigned long int starting_bit) 
    unsigned long int mpz_scan1 (mpz_t op, unsigned long int starting_bit) 
    void mpz_setbit (mpz_t rop, unsigned long int bit_index) 
    void mpz_clrbit (mpz_t rop, unsigned long int bit_index) 
    void mpz_combit (mpz_t rop, unsigned long int bit_index) 
    int mpz_tstbit (mpz_t op, unsigned long int bit_index) 

    # Input and Output Functions
    # size_t mpz_out_str (file *stream, int base, mpz_t op) 
    # size_t mpz_inp_str (mpz_t rop, file *stream, int base) 
    # size_t mpz_out_raw (file *stream, mpz_t op) 
    # size_t mpz_inp_raw (mpz_t rop, file *stream) 

    # Random Number Functions
    void mpz_urandomb (mpz_t rop, gmp_randstate_t state, unsigned long int n) 
    void mpz_urandomm (mpz_t rop, gmp_randstate_t state, mpz_t n) 
    void mpz_rrandomb (mpz_t rop, gmp_randstate_t state, unsigned long int n) 
    void mpz_random (mpz_t rop, mp_size_t max_size) 
    void mpz_random2 (mpz_t rop, mp_size_t max_size) 

    # Integer Import and Export
    void mpz_import (mpz_t rop, size_t count, int order, int size, int endian, size_t nails, void *op) 
    void * mpz_export (void *rop, size_t *countp, int order, int size, int endian, size_t nails, mpz_t op) 

    # Miscellaneous Functions
    bint mpz_fits_ulong_p (mpz_t op) 
    bint mpz_fits_slong_p (mpz_t op) 
    bint mpz_fits_uint_p (mpz_t op) 
    bint mpz_fits_sint_p (mpz_t op) 
    bint mpz_fits_ushort_p (mpz_t op) 
    bint mpz_fits_sshort_p (mpz_t op) 
    bint mpz_odd_p (mpz_t op) 
    bint mpz_even_p (mpz_t op) 
    size_t mpz_sizeinbase (mpz_t op, int base) 

    # Special Functions
    void mpz_array_init (mpz_t integer_array, size_t array_size, mp_size_t fixed_num_bits) 
    void * _mpz_realloc (mpz_t integer, mp_size_t new_alloc) 
    mp_limb_t mpz_getlimbn (mpz_t op, mp_size_t n) 
    size_t mpz_size (mpz_t op)