36typedef __mpc_struct mpc_t[1];
45#define mpc_Re(C) ((C)->r)
46#define mpc_Im(C) ((C)->i)
47#define mpc_Addr(C) ((__mpc_struct*)C)
48#define mpc_Move(C1, C2) (*(C1) = *(C2))
55void mpc_init (mpc_t c);
56void mpc_init2 (mpc_t c,
unsigned long int prec);
57void mpc_clear (mpc_t c);
59void mpc_set_prec (mpc_t c,
unsigned long int prec);
60unsigned long int mpc_get_prec (
const mpc_t c);
61void mpc_set_prec_raw (mpc_t c,
unsigned long int prec);
64void mpc_set (mpc_t rc,
const mpc_t c);
65void mpc_set_ui (mpc_t c,
unsigned long int ir,
unsigned long int ii);
66void mpc_set_si (mpc_t c,
signed long int ir,
signed long int ii);
67void mpc_set_d (mpc_t c,
double dr,
double di);
68void mpc_set_z (mpc_t c, mpz_t zr, mpz_t zi);
69void mpc_set_q (mpc_t c, mpq_t qr, mpq_t qi);
70void mpc_set_f (mpc_t c, mpf_t fr, mpf_t fi);
71int mpc_set_str (mpc_t c,
char *sr,
char *si,
int base);
73void mpc_init_set (mpc_t rc, mpc_t c);
74void mpc_init_set_ui (mpc_t c,
unsigned long int ir,
unsigned long int ii);
75void mpc_init_set_si (mpc_t c,
signed long int ir,
signed long int ii);
76void mpc_init_set_d (mpc_t c,
double dr,
double di);
77void mpc_init_set_f (mpc_t c, mpf_t fr, mpf_t fi);
78int mpc_init_set_str (mpc_t c,
char *sr,
char *si,
int base);
81void mpc_neg (mpc_t rc, mpc_t c);
82void mpc_smod (mpf_t f, mpc_t c);
83void mpc_rmod (rdpe_t r, mpc_t c);
84void mpc_mod (mpf_t f, mpc_t c);
85void mpc_con (mpc_t rc, mpc_t c);
86void mpc_inv (mpc_t rc, mpc_t c);
87void mpc_inv2 (mpc_t rc, mpc_t c);
88void mpc_sqr (mpc_t rc, mpc_t c);
89void mpc_rot (mpc_t rc, mpc_t c);
90void mpc_flip (mpc_t rc, mpc_t c);
93void mpc_add (mpc_t rc, mpc_t c1, mpc_t c2);
94void mpc_add_f (mpc_t rc, mpc_t c, mpf_t f);
95void mpc_add_ui (mpc_t rc, mpc_t c,
unsigned long int r,
97void mpc_sub (mpc_t rc, mpc_t c1, mpc_t c2);
98void mpc_sub_f (mpc_t rc, mpc_t c, mpf_t f);
99void mpc_f_sub (mpc_t rc, mpf_t f, mpc_t c);
100void mpc_sub_ui (mpc_t rc, mpc_t c,
unsigned long int r,
101 unsigned long int i);
102void mpc_ui_sub (mpc_t rc,
unsigned long int r,
unsigned long int i,
104void mpc_mul (mpc_t rc, mpc_t c1, mpc_t c2);
105void mpc_mul_f (mpc_t rc, mpc_t c, mpf_t f);
106void mpc_mul_ui (mpc_t rc, mpc_t c,
unsigned long int i);
107void mpc_mul_2exp (mpc_t rc, mpc_t c,
unsigned long int i);
108void mpc_div (mpc_t rc, mpc_t c1, mpc_t c2);
109void mpc_div_f (mpc_t rc, mpc_t c, mpf_t f);
110void mpc_f_div (mpc_t rc, mpf_t f, mpc_t c);
111void mpc_div_ui (mpc_t rc, mpc_t c,
unsigned long int i);
112void mpc_ui_div (mpc_t rc,
unsigned long int i, mpc_t c);
113void mpc_div_2exp (mpc_t rc, mpc_t c,
unsigned long int i);
114void mpc_pow_si (mpc_t rc, mpc_t c,
register signed long int i);
115void mpc_swap (mpc_t c1, mpc_t c2);
118void mpc_smod_eq (mpc_t c);
119void mpc_mod_eq (mpc_t c);
120#define mpc_neg_eq(C) mpc_neg (C, C)
121#define mpc_con_eq(C) mpc_con (C, C)
122#define mpc_inv_eq(C) mpc_inv (C, C)
123#define mpc_inv2_eq(C) mpc_inv2 (C, C)
124#define mpc_sqr_eq(C) mpc_sqr (C, C)
125void mpc_rot_eq (mpc_t c);
126void mpc_flip_eq (mpc_t c);
127#define mpc_add_eq(R, C) mpc_add (R, R, C)
128#define mpc_add_eq_f(C, F) mpc_add_f (C, C, F)
129#define mpc_add_eq_ui(C, R, I) mpc_add_ui (C, C, R, I)
130#define mpc_sub_eq(C1, C2) mpc_sub (C1, C1, C2)
131#define mpc_sub_eq_f(C, R, F) mpc_sub_f (C, C, R, F)
132#define mpc_sub_eq_ui(C, R, I) mpc_sub_ui (C, C, R, I)
133#define mpc_ui_sub_eq(C, R, I) mpc_ui_sub (C, R, I, C)
134#define mpc_mul_eq(C1, C2) mpc_mul (C1, C1, C2)
135#define mpc_mul_eq_ui(C, I) mpc_mul_ui (C, C, I)
136#define mpc_mul_eq_f(C, F) mpc_mul_mpf (C, C, F)
137#define mpc_mul_eq_2exp(C, I) mpc_mul_2exp (C, C, I)
138#define mpc_div_eq(C1, C2) mpc_div (C1, C1, C2)
139#define mpc_div2_eq(C1, C2) mpc_div2 (C1, C1, C2)
140#define mpc_div_eq_ui(C, I) mpc_div_ui (C, C, I)
141#define mpc_ui_div_eq(C, I) mpc_ui_div (C, I, C)
142#define mpc_div_eq_f(C, F) mpc_div_f (C, C, F)
143#define mpc_div_eq_2exp(C, I) mpc_div_2exp (C, C, I)
144#define mpc_pow_eq_si(C, I) mpc_pow_si (C, C, I)
147int mpc_eq (mpc_t c1, mpc_t c2,
unsigned long int i);
148int mpc_eq_zero (mpc_t c);
149int mpc_eq_one (mpc_t c);
152size_t mpc_out_str_2u (FILE * f,
int base,
size_t n_digits_r,
153 size_t n_digits_i, mpc_t c);
154size_t mpc_out_str_2 (FILE * f,
int base,
size_t n_digits_r,
155 size_t n_digits_i, mpc_t c);
156#define mpc_out_str_u(F, B, D, C) mpc_out_str_2u (F, B, D, D, C)
157#define mpc_out_str(F, B, D, C) mpc_out_str_2 (F, B, D, D, C)
158#define mpc_outln_str_u(F, B, D, C) mpc_out_str_2u (F, B, D, D, C); fputc ('\n', F)
159#define mpc_outln_str(F, B, D, C) mpc_out_str_2 (F, B, D, D, C); fputc ('\n', F)
161size_t mpc_inp_str_u (mpc_t c, FILE * f,
int base);
162size_t mpc_inp_str (mpc_t c, FILE * f,
int base);
165#define mpc_valloc(N) (mpc_t*)malloc ((N)*sizeof(mpc_t))
166void mpc_vinit (mpc_t v[],
long size);
167void mpc_vinit2 (mpc_t v[],
long size,
long prec);
168void mpc_vclear (mpc_t v[],
long size);
169#define mpc_vfree(C) free (C)
Library with extended types in C.