36 typedef __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))
55 void mpc_init (mpc_t c);
56 void mpc_init2 (mpc_t c,
unsigned long int prec);
57 void mpc_clear (mpc_t c);
59 void mpc_set_prec (mpc_t c,
unsigned long int prec);
60 unsigned long int mpc_get_prec (
const mpc_t c);
61 void mpc_set_prec_raw (mpc_t c,
unsigned long int prec);
64 void mpc_set (mpc_t rc,
const mpc_t c);
65 void mpc_set_ui (mpc_t c,
unsigned long int ir,
unsigned long int ii);
66 void mpc_set_si (mpc_t c,
signed long int ir,
signed long int ii);
67 void mpc_set_d (mpc_t c,
double dr,
double di);
68 void mpc_set_z (mpc_t c, mpz_t zr, mpz_t zi);
69 void mpc_set_q (mpc_t c, mpq_t qr, mpq_t qi);
70 void mpc_set_f (mpc_t c, mpf_t fr, mpf_t fi);
71 int mpc_set_str (mpc_t c,
char *sr,
char *si,
int base);
73 void mpc_init_set (mpc_t rc, mpc_t c);
74 void mpc_init_set_ui (mpc_t c,
unsigned long int ir,
unsigned long int ii);
75 void mpc_init_set_si (mpc_t c,
signed long int ir,
signed long int ii);
76 void mpc_init_set_d (mpc_t c,
double dr,
double di);
77 void mpc_init_set_f (mpc_t c, mpf_t fr, mpf_t fi);
78 int mpc_init_set_str (mpc_t c,
char *sr,
char *si,
int base);
81 void mpc_neg (mpc_t rc, mpc_t c);
82 void mpc_smod (mpf_t f, mpc_t c);
83 void mpc_rmod (rdpe_t r, mpc_t c);
84 void mpc_mod (mpf_t f, mpc_t c);
85 void mpc_con (mpc_t rc, mpc_t c);
86 void mpc_inv (mpc_t rc, mpc_t c);
87 void mpc_inv2 (mpc_t rc, mpc_t c);
88 void mpc_sqr (mpc_t rc, mpc_t c);
89 void mpc_rot (mpc_t rc, mpc_t c);
90 void mpc_flip (mpc_t rc, mpc_t c);
93 void mpc_add (mpc_t rc, mpc_t c1, mpc_t c2);
94 void mpc_add_f (mpc_t rc, mpc_t c, mpf_t f);
95 void mpc_add_ui (mpc_t rc, mpc_t c,
unsigned long int r,
97 void mpc_sub (mpc_t rc, mpc_t c1, mpc_t c2);
98 void mpc_sub_f (mpc_t rc, mpc_t c, mpf_t f);
99 void mpc_f_sub (mpc_t rc, mpf_t f, mpc_t c);
100 void mpc_sub_ui (mpc_t rc, mpc_t c,
unsigned long int r,
101 unsigned long int i);
102 void mpc_ui_sub (mpc_t rc,
unsigned long int r,
unsigned long int i,
104 void mpc_mul (mpc_t rc, mpc_t c1, mpc_t c2);
105 void mpc_mul_f (mpc_t rc, mpc_t c, mpf_t f);
106 void mpc_mul_ui (mpc_t rc, mpc_t c,
unsigned long int i);
107 void mpc_mul_2exp (mpc_t rc, mpc_t c,
unsigned long int i);
108 void mpc_div (mpc_t rc, mpc_t c1, mpc_t c2);
109 void mpc_div_f (mpc_t rc, mpc_t c, mpf_t f);
110 void mpc_f_div (mpc_t rc, mpf_t f, mpc_t c);
111 void mpc_div_ui (mpc_t rc, mpc_t c,
unsigned long int i);
112 void mpc_ui_div (mpc_t rc,
unsigned long int i, mpc_t c);
113 void mpc_div_2exp (mpc_t rc, mpc_t c,
unsigned long int i);
114 void mpc_pow_si (mpc_t rc, mpc_t c,
register signed long int i);
115 void mpc_swap (mpc_t c1, mpc_t c2);
118 void mpc_smod_eq (mpc_t c);
119 void 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)
125 void mpc_rot_eq (mpc_t c);
126 void 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)
147 int mpc_eq (mpc_t c1, mpc_t c2,
unsigned long int i);
148 int mpc_eq_zero (mpc_t c);
149 int mpc_eq_one (mpc_t c);
152 size_t mpc_out_str_2u (FILE * f,
int base,
size_t n_digits_r,
153 size_t n_digits_i, mpc_t c);
154 size_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)
161 size_t mpc_inp_str_u (mpc_t c, FILE * f,
int base);
162 size_t mpc_inp_str (mpc_t c, FILE * f,
int base);
165 #define mpc_valloc(N) (mpc_t*)malloc ((N)*sizeof(mpc_t))
166 void mpc_vinit (mpc_t v[],
long size);
167 void mpc_vinit2 (mpc_t v[],
long size,
long prec);
168 void mpc_vclear (mpc_t v[],
long size);
169 #define mpc_vfree(C) free (C)