d4a07df
diff -up sage-5.12/spkg/build/sage-5.12/c_lib/include/ntl_wrap.h.orig sage-5.12/spkg/build/sage-5.12/c_lib/include/ntl_wrap.h
d4a07df
--- sage-5.12/spkg/build/sage-5.12/c_lib/include/ntl_wrap.h.orig	2013-07-29 19:40:07.189020485 -0300
d4a07df
+++ sage-5.12/spkg/build/sage-5.12/c_lib/include/ntl_wrap.h	2013-07-29 19:40:11.831020662 -0300
Jerry James eac7c8f
@@ -40,91 +40,92 @@ EXTERN void setup_NTL_error_callback(voi
Jerry James 0ce0009
 ////////  ZZ //////////
Jerry James 0ce0009
 
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct ZZ;
Jerry James 0ce0009
+typedef struct ZZ ZZ;
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
-EXTERN int ZZ_to_int(const struct ZZ* x);
Jerry James 0ce0009
-EXTERN struct ZZ* int_to_ZZ(int value);
Jerry James 0ce0009
-EXTERN void ZZ_to_mpz(mpz_t* output, const struct ZZ* x);
Jerry James 0ce0009
-EXTERN void mpz_to_ZZ(struct ZZ *output, const mpz_t* x);
Jerry James 0ce0009
-EXTERN void ZZ_set_from_int(struct ZZ* x, int value);
Jerry James 0ce0009
+EXTERN int ZZ_to_int(const ZZ* x);
Jerry James 0ce0009
+EXTERN ZZ* int_to_ZZ(int value);
Jerry James 0ce0009
+EXTERN void ZZ_to_mpz(mpz_t* output, const ZZ* x);
Jerry James 0ce0009
+EXTERN void mpz_to_ZZ(ZZ *output, const mpz_t* x);
Jerry James 0ce0009
+EXTERN void ZZ_set_from_int(ZZ* x, int value);
Jerry James 0ce0009
 /*Random-number generation */
Jerry James 0ce0009
-//EXTERN void setSeed(const struct ZZ* n);
Jerry James 0ce0009
-//EXTERN struct ZZ* ZZ_randomBnd(const struct ZZ* x);
Jerry James 0ce0009
-//EXTERN struct ZZ* ZZ_randomBits(long n);
Jerry James 0ce0009
+//EXTERN void setSeed(const ZZ* n);
Jerry James 0ce0009
+//EXTERN ZZ* ZZ_randomBnd(const ZZ* x);
Jerry James 0ce0009
+//EXTERN ZZ* ZZ_randomBits(long n);
Jerry James 0ce0009
 
Jerry James 0ce0009
 #ifdef __cplusplus
Jerry James 0ce0009
-EXTERN long ZZ_remove(struct ZZ& x, const struct ZZ& a, const struct ZZ& p);
Jerry James 0ce0009
+EXTERN long ZZ_remove(ZZ& x, const ZZ& a, const ZZ& p);
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
 ////////  ZZ_p //////////
Jerry James 0ce0009
 
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct ZZ_p;
Jerry James 0ce0009
+typedef struct ZZ_p ZZ_p;
Jerry James eac7c8f
+typedef struct ZZ_pContext ZZ_pContext;
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
 #ifdef __cplusplus  // sorry, if you want a C version, feel free to add it
Jerry James 0ce0009
 EXTERN int ZZ_p_to_int(const ZZ_p& x);
Jerry James 0ce0009
 EXTERN ZZ_p int_to_ZZ_p(int value);
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
-EXTERN void ZZ_p_set_from_int(struct ZZ_p* x, int value);
Jerry James 0ce0009
-EXTERN struct ZZ_p* ZZ_p_pow(const struct ZZ_p* x, long e);
Jerry James 0ce0009
-EXTERN void ntl_ZZ_set_modulus(struct ZZ* x);
Jerry James 0ce0009
-EXTERN struct ZZ_p* ZZ_p_inv(struct ZZ_p* x);
Jerry James 0ce0009
-EXTERN struct ZZ_p* ZZ_p_neg(struct ZZ_p* x);
Jerry James 0ce0009
-EXTERN struct ZZ_p* ZZ_p_random(void);
Jerry James 0ce0009
-EXTERN void ZZ_p_modulus(struct ZZ* mod, const struct ZZ_p* x);
Jerry James 0ce0009
+EXTERN void ZZ_p_set_from_int(ZZ_p* x, int value);
Jerry James 0ce0009
+EXTERN ZZ_p* ZZ_p_pow(const ZZ_p* x, long e);
Jerry James 0ce0009
+EXTERN void ntl_ZZ_set_modulus(ZZ* x);
Jerry James 0ce0009
+EXTERN ZZ_p* ZZ_p_inv(ZZ_p* x);
Jerry James 0ce0009
+EXTERN ZZ_p* ZZ_p_neg(ZZ_p* x);
Jerry James 0ce0009
+EXTERN ZZ_p* ZZ_p_random(void);
Jerry James 0ce0009
+EXTERN void ZZ_p_modulus(ZZ* mod, const ZZ_p* x);
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-EXTERN struct ZZ_pContext* ZZ_pContext_new(struct ZZ* p);
Jerry James 0ce0009
-EXTERN struct ZZ_pContext* ZZ_pContext_construct(void* mem, struct ZZ* p);
Jerry James 0ce0009
+EXTERN ZZ_pContext* ZZ_pContext_new(ZZ* p);
Jerry James 0ce0009
+EXTERN ZZ_pContext* ZZ_pContext_construct(void* mem, ZZ* p);
Jerry James 0ce0009
 
Jerry James 0ce0009
 //////// ZZX //////////
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct ZZX;
Jerry James 0ce0009
+typedef struct ZZX ZZX;
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
-EXTERN char* ZZX_repr(struct ZZX* x);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_copy(struct ZZX* x);
Jerry James 0ce0009
-EXTERN void ZZX_setitem_from_int(struct ZZX* x, long i, int value);
Jerry James 0ce0009
-EXTERN int ZZX_getitem_as_int(struct ZZX* x, long i);
Jerry James 0ce0009
-EXTERN void ZZX_getitem_as_mpz(mpz_t* output, struct ZZX* x, long i);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_div(struct ZZX* x, struct ZZX* y, int* divisible);
Jerry James 0ce0009
-EXTERN void ZZX_quo_rem(struct ZZX* x, struct ZZX* other, struct ZZX** r, struct ZZX** q);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_square(struct ZZX* x);
Jerry James 0ce0009
-EXTERN int ZZX_equal(struct ZZX* x, struct ZZX* y);
Jerry James 0ce0009
-EXTERN int ZZX_is_monic(struct ZZX* x);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_neg(struct ZZX* x);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_left_shift(struct ZZX* x, long n);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_right_shift(struct ZZX* x, long n);
Jerry James 0ce0009
-EXTERN char* ZZX_content(struct ZZX* x);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_primitive_part(struct ZZX* x);
Jerry James 0ce0009
-EXTERN void ZZX_pseudo_quo_rem(struct ZZX* x, struct ZZX* y, struct ZZX** r, struct ZZX** q);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_gcd(struct ZZX* x, struct ZZX* y);
Jerry James 0ce0009
-EXTERN void ZZX_xgcd(struct ZZX* x, struct ZZX* y, struct ZZ** r, struct ZZX** s, struct ZZX** t, int proof);
Jerry James 0ce0009
-EXTERN long ZZX_degree(struct ZZX* x);
Jerry James 0ce0009
-EXTERN struct ZZ* ZZX_leading_coefficient(struct ZZX* x);
Jerry James 0ce0009
-EXTERN char* ZZX_constant_term(struct ZZX* x);
Jerry James 0ce0009
-EXTERN void ZZX_set_x(struct ZZX* x);
Jerry James 0ce0009
-EXTERN int ZZX_is_x(struct ZZX* x);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_derivative(struct ZZX* x);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_reverse(struct ZZX* x);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_reverse_hi(struct ZZX* x, int hi);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_truncate(struct ZZX* x, long m);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_multiply_and_truncate(struct ZZX* x, struct ZZX* y, long m);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_square_and_truncate(struct ZZX* x, long m);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_invert_and_truncate(struct ZZX* x, long m);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_multiply_mod(struct ZZX* x, struct ZZX* y,  struct ZZX* modulus);
Jerry James 0ce0009
-EXTERN struct ZZ* ZZX_trace_mod(struct ZZX* x, struct ZZX* y);
Jerry James 0ce0009
-/* EXTERN struct ZZ* ZZX_polyeval(struct ZZX* f, struct ZZ* a); */
Jerry James 0ce0009
-EXTERN char* ZZX_trace_list(struct ZZX* x);
Jerry James 0ce0009
-EXTERN struct ZZ* ZZX_resultant(struct ZZX* x, struct ZZX* y, int proof);
Jerry James 0ce0009
-EXTERN struct ZZ* ZZX_norm_mod(struct ZZX* x, struct ZZX* y, int proof);
Jerry James 0ce0009
-EXTERN struct ZZ* ZZX_discriminant(struct ZZX* x, int proof);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_charpoly_mod(struct ZZX* x, struct ZZX* y, int proof);
Jerry James 0ce0009
-EXTERN struct ZZX* ZZX_minpoly_mod(struct ZZX* x, struct ZZX* y);
Jerry James 0ce0009
-EXTERN void ZZX_clear(struct ZZX* x);
Jerry James 0ce0009
-EXTERN void ZZX_preallocate_space(struct ZZX* x, long n);
Jerry James 0ce0009
+EXTERN char* ZZX_repr(ZZX* x);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_copy(ZZX* x);
Jerry James 0ce0009
+EXTERN void ZZX_setitem_from_int(ZZX* x, long i, int value);
Jerry James 0ce0009
+EXTERN int ZZX_getitem_as_int(ZZX* x, long i);
Jerry James 0ce0009
+EXTERN void ZZX_getitem_as_mpz(mpz_t* output, ZZX* x, long i);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_div(ZZX* x, ZZX* y, int* divisible);
Jerry James 0ce0009
+EXTERN void ZZX_quo_rem(ZZX* x, ZZX* other, ZZX** r, ZZX** q);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_square(ZZX* x);
Jerry James 0ce0009
+EXTERN int ZZX_equal(ZZX* x, ZZX* y);
Jerry James 0ce0009
+EXTERN int ZZX_is_monic(ZZX* x);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_neg(ZZX* x);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_left_shift(ZZX* x, long n);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_right_shift(ZZX* x, long n);
Jerry James 0ce0009
+EXTERN char* ZZX_content(ZZX* x);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_primitive_part(ZZX* x);
Jerry James 0ce0009
+EXTERN void ZZX_pseudo_quo_rem(ZZX* x, ZZX* y, ZZX** r, ZZX** q);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_gcd(ZZX* x, ZZX* y);
Jerry James 0ce0009
+EXTERN void ZZX_xgcd(ZZX* x, ZZX* y, ZZ** r, ZZX** s, ZZX** t, int proof);
Jerry James 0ce0009
+EXTERN long ZZX_degree(ZZX* x);
Jerry James 0ce0009
+EXTERN ZZ* ZZX_leading_coefficient(ZZX* x);
Jerry James 0ce0009
+EXTERN char* ZZX_constant_term(ZZX* x);
Jerry James 0ce0009
+EXTERN void ZZX_set_x(ZZX* x);
Jerry James 0ce0009
+EXTERN int ZZX_is_x(ZZX* x);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_derivative(ZZX* x);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_reverse(ZZX* x);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_reverse_hi(ZZX* x, int hi);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_truncate(ZZX* x, long m);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_multiply_and_truncate(ZZX* x, ZZX* y, long m);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_square_and_truncate(ZZX* x, long m);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_invert_and_truncate(ZZX* x, long m);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_multiply_mod(ZZX* x, ZZX* y,  ZZX* modulus);
Jerry James 0ce0009
+EXTERN ZZ* ZZX_trace_mod(ZZX* x, ZZX* y);
Jerry James 0ce0009
+/* EXTERN ZZ* ZZX_polyeval(ZZX* f, ZZ* a); */
Jerry James 0ce0009
+EXTERN char* ZZX_trace_list(ZZX* x);
Jerry James 0ce0009
+EXTERN ZZ* ZZX_resultant(ZZX* x, ZZX* y, int proof);
Jerry James 0ce0009
+EXTERN ZZ* ZZX_norm_mod(ZZX* x, ZZX* y, int proof);
Jerry James 0ce0009
+EXTERN ZZ* ZZX_discriminant(ZZX* x, int proof);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_charpoly_mod(ZZX* x, ZZX* y, int proof);
Jerry James 0ce0009
+EXTERN ZZX* ZZX_minpoly_mod(ZZX* x, ZZX* y);
Jerry James 0ce0009
+EXTERN void ZZX_clear(ZZX* x);
Jerry James 0ce0009
+EXTERN void ZZX_preallocate_space(ZZX* x, long n);
Jerry James 0ce0009
 
Jerry James 0ce0009
 //////// ZZXFactoring //////////
Jerry James 0ce0009
 
Jerry James eac7c8f
@@ -132,76 +133,77 @@ EXTERN void ZZX_preallocate_space(struct
Jerry James 0ce0009
 //         e -- point to list of e longs (the exponents)
Jerry James 0ce0009
 //         n -- length of above two lists
Jerry James 0ce0009
 //  The lists v and e are mallocd, and must be freed by the calling code.
Jerry James 0ce0009
-EXTERN void ZZX_squarefree_decomposition(struct ZZX*** v, long** e, long* n, struct ZZX* x);
Jerry James 0ce0009
+EXTERN void ZZX_squarefree_decomposition(ZZX*** v, long** e, long* n, ZZX* x);
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
 //////// ZZ_pX //////////
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct ZZ_pX;
Jerry James 0ce0009
+typedef struct ZZ_pX ZZ_pX;
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
-EXTERN struct ZZ_pX* ZZ_pX_init();
Jerry James 0ce0009
-//EXTERN char* ZZ_pX_repr(struct ZZ_pX* x);
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_copy(struct ZZ_pX* x); */
Jerry James 0ce0009
-/* EXTERN void ZZ_pX_setitem_from_int(struct ZZ_pX* x, long i, int value); */
Jerry James 0ce0009
-/* EXTERN int ZZ_pX_getitem_as_int(struct ZZ_pX* x, long i); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_div(struct ZZ_pX* x, struct ZZ_pX* y, int* divisible); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_mod(struct ZZ_pX* x, struct ZZ_pX* y); */
Jerry James 0ce0009
-/* EXTERN void ZZ_pX_quo_rem(struct ZZ_pX* x, struct ZZ_pX* other, struct ZZ_pX** r, struct ZZ_pX** q); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_square(struct ZZ_pX* x); */
Jerry James 0ce0009
-/* EXTERN int ZZ_pX_equal(struct ZZ_pX* x, struct ZZ_pX* y); */
Jerry James 0ce0009
-/* EXTERN int ZZ_pX_is_monic(struct ZZ_pX* x); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_neg(struct ZZ_pX* x); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_left_shift(struct ZZ_pX* x, long n); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_right_shift(struct ZZ_pX* x, long n); */
Jerry James 0ce0009
-/* EXTERN void ZZ_pX_quo_rem(struct ZZ_pX* x, struct ZZ_pX* y, struct ZZ_pX** r, struct ZZ_pX** q); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_gcd(struct ZZ_pX* x, struct ZZ_pX* y); */
Jerry James 0ce0009
-/* EXTERN void ZZ_pX_xgcd(struct ZZ_pX** d, struct ZZ_pX** s, struct ZZ_pX** t, struct ZZ_pX* a, struct ZZ_pX* b); */
Jerry James 0ce0009
-/* EXTERN void ZZ_pX_plain_xgcd(struct ZZ_pX** d, struct ZZ_pX** s, struct ZZ_pX** t, struct ZZ_pX* a, struct ZZ_pX* b); */
Jerry James 0ce0009
-/* EXTERN long ZZ_pX_degree(struct ZZ_pX* x); */
Jerry James 0ce0009
-/* EXTERN void ZZ_pX_set_x(struct ZZ_pX* x); */
Jerry James 0ce0009
-/* EXTERN int ZZ_pX_is_x(struct ZZ_pX* x); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_derivative(struct ZZ_pX* x); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_reverse(struct ZZ_pX* x); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_reverse_hi(struct ZZ_pX* x, int hi); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_truncate(struct ZZ_pX* x, long m); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_multiply_and_truncate(struct ZZ_pX* x, struct ZZ_pX* y, long m); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_square_and_truncate(struct ZZ_pX* x, long m); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_invert_and_truncate(struct ZZ_pX* x, long m); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_multiply_mod(struct ZZ_pX* x, struct ZZ_pX* y,  struct ZZ_pX* modulus); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_p* ZZ_pX_trace_mod(struct ZZ_pX* x, struct ZZ_pX* y); */
Jerry James 0ce0009
-EXTERN char* ZZ_pX_trace_list(struct ZZ_pX* x);
Jerry James 0ce0009
-/* EXTERN struct ZZ_p* ZZ_pX_resultant(struct ZZ_pX* x, struct ZZ_pX* y); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_p* ZZ_pX_norm_mod(struct ZZ_pX* x, struct ZZ_pX* y); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_charpoly_mod(struct ZZ_pX* x, struct ZZ_pX* y); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_pX* ZZ_pX_minpoly_mod(struct ZZ_pX* x, struct ZZ_pX* y); */
Jerry James 0ce0009
-/* EXTERN void ZZ_pX_clear(struct ZZ_pX* x); */
Jerry James 0ce0009
-// EXTERN void ZZ_pX_preallocate_space(struct ZZ_pX* x, long n);
Jerry James 0ce0009
+EXTERN ZZ_pX* ZZ_pX_init();
Jerry James 0ce0009
+//EXTERN char* ZZ_pX_repr(ZZ_pX* x);
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_copy(ZZ_pX* x); */
Jerry James 0ce0009
+/* EXTERN void ZZ_pX_setitem_from_int(ZZ_pX* x, long i, int value); */
Jerry James 0ce0009
+/* EXTERN int ZZ_pX_getitem_as_int(ZZ_pX* x, long i); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_div(ZZ_pX* x, ZZ_pX* y, int* divisible); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_mod(ZZ_pX* x, ZZ_pX* y); */
Jerry James 0ce0009
+/* EXTERN void ZZ_pX_quo_rem(ZZ_pX* x, ZZ_pX* other, ZZ_pX** r, ZZ_pX** q); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_square(ZZ_pX* x); */
Jerry James 0ce0009
+/* EXTERN int ZZ_pX_equal(ZZ_pX* x, ZZ_pX* y); */
Jerry James 0ce0009
+/* EXTERN int ZZ_pX_is_monic(ZZ_pX* x); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_neg(ZZ_pX* x); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_left_shift(ZZ_pX* x, long n); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_right_shift(ZZ_pX* x, long n); */
Jerry James 0ce0009
+/* EXTERN void ZZ_pX_quo_rem(ZZ_pX* x, ZZ_pX* y, ZZ_pX** r, ZZ_pX** q); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_gcd(ZZ_pX* x, ZZ_pX* y); */
Jerry James 0ce0009
+/* EXTERN void ZZ_pX_xgcd(ZZ_pX** d, ZZ_pX** s, ZZ_pX** t, ZZ_pX* a, ZZ_pX* b); */
Jerry James 0ce0009
+/* EXTERN void ZZ_pX_plain_xgcd(ZZ_pX** d, ZZ_pX** s, ZZ_pX** t, ZZ_pX* a, ZZ_pX* b); */
Jerry James 0ce0009
+/* EXTERN long ZZ_pX_degree(ZZ_pX* x); */
Jerry James 0ce0009
+/* EXTERN void ZZ_pX_set_x(ZZ_pX* x); */
Jerry James 0ce0009
+/* EXTERN int ZZ_pX_is_x(ZZ_pX* x); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_derivative(ZZ_pX* x); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_reverse(ZZ_pX* x); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_reverse_hi(ZZ_pX* x, int hi); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_truncate(ZZ_pX* x, long m); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_multiply_and_truncate(ZZ_pX* x, ZZ_pX* y, long m); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_square_and_truncate(ZZ_pX* x, long m); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_invert_and_truncate(ZZ_pX* x, long m); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_multiply_mod(ZZ_pX* x, ZZ_pX* y,  ZZ_pX* modulus); */
Jerry James 0ce0009
+/* EXTERN ZZ_p* ZZ_pX_trace_mod(ZZ_pX* x, ZZ_pX* y); */
Jerry James 0ce0009
+EXTERN char* ZZ_pX_trace_list(ZZ_pX* x);
Jerry James 0ce0009
+/* EXTERN ZZ_p* ZZ_pX_resultant(ZZ_pX* x, ZZ_pX* y); */
Jerry James 0ce0009
+/* EXTERN ZZ_p* ZZ_pX_norm_mod(ZZ_pX* x, ZZ_pX* y); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_charpoly_mod(ZZ_pX* x, ZZ_pX* y); */
Jerry James 0ce0009
+/* EXTERN ZZ_pX* ZZ_pX_minpoly_mod(ZZ_pX* x, ZZ_pX* y); */
Jerry James 0ce0009
+/* EXTERN void ZZ_pX_clear(ZZ_pX* x); */
Jerry James 0ce0009
+// EXTERN void ZZ_pX_preallocate_space(ZZ_pX* x, long n);
Jerry James 0ce0009
 
Jerry James 0ce0009
 // Factoring elements of ZZ_pX:
Jerry James 0ce0009
 // OUTPUT: v -- pointer to list of n ZZ_pX elements (the irred factors)
Jerry James 0ce0009
 //         e -- point to list of e longs (the exponents)
Jerry James 0ce0009
 //         n -- length of above two lists
Jerry James 0ce0009
 //  The lists v and e are mallocd, and must be freed by the calling code.
Jerry James 0ce0009
-EXTERN void ZZ_pX_factor(struct ZZ_pX*** v, long** e, long* n, struct ZZ_pX* x, long verbose);
Jerry James 0ce0009
-EXTERN void ZZ_pX_linear_roots(struct ZZ_p*** v, long* n, struct ZZ_pX* f);
Jerry James 0ce0009
+EXTERN void ZZ_pX_factor(ZZ_pX*** v, long** e, long* n, ZZ_pX* x, long verbose);
Jerry James 0ce0009
+EXTERN void ZZ_pX_linear_roots(ZZ_p*** v, long* n, ZZ_pX* f);
Jerry James 0ce0009
 
Jerry James 0ce0009
 #ifdef __cplusplus
Jerry James 0ce0009
-EXTERN void ZZ_pX_conv_modulus(struct ZZ_pX &fout, const struct ZZ_pX &fin, const struct ZZ_pContext &mod);
Jerry James 0ce0009
-EXTERN void ZZ_pEX_conv_modulus(struct ZZ_pEX &fout, const struct ZZ_pEX &fin, const struct ZZ_pContext &mod);
Jerry James 0ce0009
-EXTERN void ZZ_pX_min_val_coeff(long &valuation, long &index, const struct ZZ_pX &f, const struct ZZ &p);
Jerry James 0ce0009
-EXTERN long ZZ_pX_get_val_coeff(const struct ZZ_pX &f, const struct ZZ &p, long i);
Jerry James 0ce0009
-EXTERN void ZZ_pX_left_pshift(struct ZZ_pX &x, const struct ZZ_pX &a, const struct ZZ &pn, const struct ZZ_pContext &c);
Jerry James 0ce0009
-EXTERN void ZZ_pX_right_pshift(struct ZZ_pX &x, const struct ZZ_pX &a, const struct ZZ &pn, const struct ZZ_pContext &c);
Jerry James 0ce0009
-EXTERN void ZZ_pX_InvMod_newton_unram(struct ZZ_pX &x, const struct ZZ_pX &a, const struct ZZ_pXModulus &F, const struct ZZ_pContext &cpn, const struct ZZ_pContext &cp;;
Jerry James 0ce0009
-EXTERN void ZZ_pX_InvMod_newton_ram(struct ZZ_pX &x, const struct ZZ_pX &a, const struct ZZ_pXModulus &F, const struct ZZ_pContext &cpn);
Jerry James 0ce0009
+EXTERN void ZZ_pX_conv_modulus(ZZ_pX &fout, const ZZ_pX &fin, const ZZ_pContext &mod);
Jerry James 0ce0009
+EXTERN void ZZ_pEX_conv_modulus(ZZ_pEX &fout, const ZZ_pEX &fin, const ZZ_pContext &mod);
Jerry James 0ce0009
+EXTERN void ZZ_pX_min_val_coeff(long &valuation, long &index, const ZZ_pX &f, const ZZ &p);
Jerry James 0ce0009
+EXTERN long ZZ_pX_get_val_coeff(const ZZ_pX &f, const ZZ &p, long i);
Jerry James 0ce0009
+EXTERN void ZZ_pX_left_pshift(ZZ_pX &x, const ZZ_pX &a, const ZZ &pn, const ZZ_pContext &c);
Jerry James 0ce0009
+EXTERN void ZZ_pX_right_pshift(ZZ_pX &x, const ZZ_pX &a, const ZZ &pn, const ZZ_pContext &c);
Jerry James 0ce0009
+EXTERN void ZZ_pX_InvMod_newton_unram(ZZ_pX &x, const ZZ_pX &a, const ZZ_pXModulus &F, const ZZ_pContext &cpn, const ZZ_pContext &cp;;
Jerry James 0ce0009
+EXTERN void ZZ_pX_InvMod_newton_ram(ZZ_pX &x, const ZZ_pX &a, const ZZ_pXModulus &F, const ZZ_pContext &cpn);
Jerry James 0ce0009
 
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
 //////// zz_p //////////
Jerry James 0ce0009
 
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct zz_p;
Jerry James 0ce0009
+typedef struct zz_p zz_p;
Jerry James eac7c8f
+typedef struct zz_pContext zz_pContext;
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
 #define zz_p_set_from_long( obj1, obj2 )\
Jerry James eac7c8f
@@ -209,14 +211,14 @@ struct zz_p;
Jerry James 0ce0009
 #define NTL_zz_p_DOUBLE_EQUALS( obj1, obj2 )\
Jerry James 0ce0009
         (obj1) == (obj2)
Jerry James 0ce0009
 
Jerry James 0ce0009
-EXTERN struct zz_pContext* zz_pContext_new(long p);
Jerry James 0ce0009
-EXTERN struct zz_pContext* zz_pContext_construct(void* mem, long p);
Jerry James 0ce0009
-EXTERN void zz_pContext_restore(struct zz_pContext* ctx);
Jerry James 0ce0009
+EXTERN zz_pContext* zz_pContext_new(long p);
Jerry James 0ce0009
+EXTERN zz_pContext* zz_pContext_construct(void* mem, long p);
Jerry James 0ce0009
+EXTERN void zz_pContext_restore(zz_pContext* ctx);
Jerry James 0ce0009
 
Jerry James 0ce0009
 //////// zz_pX //////////
Jerry James 0ce0009
 
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct zz_pX; 
Jerry James 0ce0009
+typedef struct zz_pX zz_pX;
Jerry James 0ce0009
 #endif 
Jerry James 0ce0009
 
Jerry James 0ce0009
 #define NTL_zz_pX_DOUBLE_EQUALS( obj1, obj2 )\
Jerry James eac7c8f
@@ -225,104 +227,106 @@ struct zz_pX;
Jerry James 0ce0009
 //////// ZZ_pEContext ///////////////
Jerry James 0ce0009
 
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct ZZ_pEContext;
Jerry James 0ce0009
+typedef struct ZZ_pEContext ZZ_pEContext;
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
-EXTERN struct ZZ_pEContext* ZZ_pEContext_new(struct ZZ_pX *f);
Jerry James 0ce0009
-EXTERN struct ZZ_pEContext* ZZ_pEContext_construct(void* mem, struct ZZ_pX *f);
Jerry James 0ce0009
-EXTERN void ZZ_pEContext_restore(struct ZZ_pEContext* ctx);
Jerry James 0ce0009
+EXTERN ZZ_pEContext* ZZ_pEContext_new(ZZ_pX *f);
Jerry James 0ce0009
+EXTERN ZZ_pEContext* ZZ_pEContext_construct(void* mem, ZZ_pX *f);
Jerry James 0ce0009
+EXTERN void ZZ_pEContext_restore(ZZ_pEContext* ctx);
Jerry James 0ce0009
 
Jerry James 0ce0009
 //////// ZZ_pE ////////////
Jerry James 0ce0009
 
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct ZZ_pE;
Jerry James 0ce0009
+typedef struct ZZ_pE ZZ_pE;
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
-EXTERN struct ZZ_pX ZZ_pE_to_ZZ_pX(struct ZZ_pE x);
Jerry James 0ce0009
+EXTERN ZZ_pX ZZ_pE_to_ZZ_pX(ZZ_pE x);
Jerry James 0ce0009
 
Jerry James 0ce0009
 //////// ZZ_pEX /////////
Jerry James 0ce0009
 
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct ZZ_pEX;
Jerry James 0ce0009
+typedef struct ZZ_pEX ZZ_pEX;
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
 //////// mat_ZZ //////////
Jerry James 0ce0009
 
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct mat_ZZ;
Jerry James 0ce0009
+typedef struct mat_ZZ mat_ZZ;
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
-EXTERN void mat_ZZ_SetDims(struct mat_ZZ* mZZ, long nrows, long ncols);
Jerry James 0ce0009
-EXTERN struct mat_ZZ* mat_ZZ_pow(const struct mat_ZZ* x, long e);
Jerry James 0ce0009
-EXTERN long mat_ZZ_nrows(const struct mat_ZZ* x);
Jerry James 0ce0009
-EXTERN long mat_ZZ_ncols(const struct mat_ZZ* x);
Jerry James 0ce0009
-EXTERN void mat_ZZ_setitem(struct mat_ZZ* x, int i, int j, const struct ZZ* z);
Jerry James 0ce0009
-EXTERN struct ZZ* mat_ZZ_getitem(const struct mat_ZZ* x, int i, int j);
Jerry James 0ce0009
-EXTERN struct ZZ* mat_ZZ_determinant(const struct mat_ZZ* x, long deterministic);
Jerry James 0ce0009
-EXTERN struct mat_ZZ* mat_ZZ_HNF(const struct mat_ZZ* A, const struct ZZ* D);
Jerry James 0ce0009
-EXTERN struct ZZX* mat_ZZ_charpoly(const struct mat_ZZ* A);
Jerry James 0ce0009
-EXTERN long mat_ZZ_LLL(struct ZZ **det, struct mat_ZZ *x, long a, long b, long verbose);
Jerry James 0ce0009
-EXTERN long mat_ZZ_LLL_U(struct ZZ **det, struct mat_ZZ *x, struct mat_ZZ *U, long a, long b, long verbose);
Jerry James 0ce0009
+EXTERN void mat_ZZ_SetDims(mat_ZZ* mZZ, long nrows, long ncols);
Jerry James 0ce0009
+EXTERN mat_ZZ* mat_ZZ_pow(const mat_ZZ* x, long e);
Jerry James 0ce0009
+EXTERN long mat_ZZ_nrows(const mat_ZZ* x);
Jerry James 0ce0009
+EXTERN long mat_ZZ_ncols(const mat_ZZ* x);
Jerry James 0ce0009
+EXTERN void mat_ZZ_setitem(mat_ZZ* x, int i, int j, const ZZ* z);
Jerry James 0ce0009
+EXTERN ZZ* mat_ZZ_getitem(const mat_ZZ* x, int i, int j);
Jerry James 0ce0009
+EXTERN ZZ* mat_ZZ_determinant(const mat_ZZ* x, long deterministic);
Jerry James 0ce0009
+EXTERN mat_ZZ* mat_ZZ_HNF(const mat_ZZ* A, const ZZ* D);
Jerry James 0ce0009
+EXTERN ZZX* mat_ZZ_charpoly(const mat_ZZ* A);
Jerry James 0ce0009
+EXTERN long mat_ZZ_LLL(ZZ **det, mat_ZZ *x, long a, long b, long verbose);
Jerry James 0ce0009
+EXTERN long mat_ZZ_LLL_U(ZZ **det, mat_ZZ *x, mat_ZZ *U, long a, long b, long verbose);
Jerry James 0ce0009
 
Jerry James 0ce0009
 /* //////// ZZ_p ////////// */
Jerry James 0ce0009
 /* #ifndef __cplusplus */
Jerry James 0ce0009
-/* struct ZZ_p; */
Jerry James 0ce0009
+/* typedef struct ZZ_p ZZ_p; */
Jerry James 0ce0009
 /* #endif */
Jerry James 0ce0009
 
Jerry James 0ce0009
-/* EXTERN void ZZ_p_set_modulus(const struct ZZ* p); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_p* new_ZZ_p(void); */
Jerry James 0ce0009
-/* EXTERN void del_ZZ_p(struct ZZ_p* x); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_p* ZZ_p_add(const struct ZZ_p* x, const struct ZZ_p* y); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_p* ZZ_p_sub(const struct ZZ_p* x, const struct ZZ_p* y); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_p* ZZ_p_mul(const struct ZZ_p* x, const struct ZZ_p* y); */
Jerry James 0ce0009
-/* EXTERN struct ZZ_p* ZZ_p_pow(const struct ZZ_p* x, long e); */
Jerry James 0ce0009
-/* EXTERN int ZZ_p_is_zero(struct ZZ_p*x ); */
Jerry James 0ce0009
-/* EXTERN int ZZ_p_is_one(struct ZZ_p*x ); */
Jerry James 0ce0009
+/* EXTERN void ZZ_p_set_modulus(const ZZ* p); */
Jerry James 0ce0009
+/* EXTERN ZZ_p* new_ZZ_p(void); */
Jerry James 0ce0009
+/* EXTERN void del_ZZ_p(ZZ_p* x); */
Jerry James 0ce0009
+/* EXTERN ZZ_p* ZZ_p_add(const ZZ_p* x, const ZZ_p* y); */
Jerry James 0ce0009
+/* EXTERN ZZ_p* ZZ_p_sub(const ZZ_p* x, const ZZ_p* y); */
Jerry James 0ce0009
+/* EXTERN ZZ_p* ZZ_p_mul(const ZZ_p* x, const ZZ_p* y); */
Jerry James 0ce0009
+/* EXTERN ZZ_p* ZZ_p_pow(const ZZ_p* x, long e); */
Jerry James 0ce0009
+/* EXTERN int ZZ_p_is_zero(ZZ_p*x ); */
Jerry James 0ce0009
+/* EXTERN int ZZ_p_is_one(ZZ_p*x ); */
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
 //////// ZZ_pE //////////
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct ZZ_pE;
Jerry James 0ce0009
+typedef struct ZZ_pE ZZ_pE;
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
-// EXTERN struct ZZ_pE* new_ZZ_pE
Jerry James 0ce0009
+// EXTERN ZZ_pE* new_ZZ_pE
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
 //////// ZZ_pEX //////////
Jerry James 0ce0009
 
Jerry James 0ce0009
 //#ifndef __cplusplus
Jerry James 0ce0009
-//struct ZZ_pEX;
Jerry James 0ce0009
+//typedef struct ZZ_pEX ZZ_pEX;
Jerry James 0ce0009
 //#endif
Jerry James 0ce0009
 
Jerry James 0ce0009
-//EXTERN struct ZZ_pEX* new_ZZ_pEX
Jerry James 0ce0009
+//EXTERN ZZ_pEX* new_ZZ_pEX
Jerry James 0ce0009
 
Jerry James 0ce0009
 /////// GF2X ////////////////
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct GF2X;
Jerry James 0ce0009
+typedef struct GF2X GF2X;
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
 /////// GF2EContext ////////////////
Jerry James 0ce0009
 
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct GF2EContext;
Jerry James eac7c8f
+typedef struct GF2E GF2E;
Jerry James 0ce0009
+typedef struct GF2EContext GF2EContext;
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
-EXTERN struct GF2EContext* GF2EContext_new(struct GF2X_c* p);
Jerry James 0ce0009
-EXTERN struct GF2EContext* GF2EContext_construct(void *mem, const struct GF2X *p);
Jerry James 0ce0009
+EXTERN GF2EContext* GF2EContext_new(GF2X* p);
Jerry James 0ce0009
+EXTERN GF2EContext* GF2EContext_construct(void *mem, const GF2X *p);
Jerry James 0ce0009
 
Jerry James 0ce0009
 //////// mat_GF2E //////////
Jerry James 0ce0009
 
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct mat_GF2E;
Jerry James 0ce0009
+typedef struct mat_GF2E mat_GF2E;
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
-EXTERN void mat_GF2E_setitem(struct mat_GF2E* x, int i, int j, const struct GF2E* z);
Jerry James 0ce0009
+EXTERN void mat_GF2E_setitem(mat_GF2E* x, int i, int j, const GF2E* z);
Jerry James 0ce0009
 
Jerry James 0ce0009
 //////// mat_GF2 //////////
Jerry James 0ce0009
 
Jerry James 0ce0009
 #ifndef __cplusplus
Jerry James 0ce0009
-struct mat_GF2;
Jerry James eac7c8f
+typedef struct GF2 GF2;
Jerry James 0ce0009
+typedef struct mat_GF2 mat_GF2;
Jerry James 0ce0009
 #endif
Jerry James 0ce0009
 
Jerry James 0ce0009
-EXTERN void mat_GF2_setitem(struct mat_GF2* x, int i, int j, const struct GF2* z);
Jerry James 0ce0009
+EXTERN void mat_GF2_setitem(mat_GF2* x, int i, int j, const GF2* z);
d4a07df
diff -up sage-5.12/spkg/build/sage-5.12/c_lib/src/ntl_wrap.cpp.orig sage-5.12/spkg/build/sage-5.12/c_lib/src/ntl_wrap.cpp
d4a07df
--- sage-5.12/spkg/build/sage-5.12/c_lib/src/ntl_wrap.cpp.orig	2013-07-29 19:40:07.197020485 -0300
d4a07df
+++ sage-5.12/spkg/build/sage-5.12/c_lib/src/ntl_wrap.cpp	2013-07-29 19:40:11.834020662 -0300
Jerry James 0ce0009
@@ -29,7 +29,7 @@ int ZZ_to_int(const ZZ* x)
Jerry James 0ce0009
 
Jerry James 0ce0009
 /* Returns a *new* ZZ object.
Jerry James 0ce0009
    AUTHOR: David Harvey (2008-06-08) */
Jerry James 0ce0009
-struct ZZ* int_to_ZZ(int value)
Jerry James 0ce0009
+ZZ* int_to_ZZ(int value)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZ* output = new ZZ();
Jerry James 0ce0009
     conv(*output, value);
Jerry James 0ce0009
@@ -40,7 +40,7 @@ struct ZZ* int_to_ZZ(int value)
Jerry James 0ce0009
    Assumes output has been mpz_init'd.
Jerry James 0ce0009
    AUTHOR: David Harvey
Jerry James 0ce0009
            Joel B. Mohler moved the ZZX_getitem_as_mpz code out to this function (2007-03-13) */
Jerry James 0ce0009
-void ZZ_to_mpz(mpz_t* output, const struct ZZ* x)
Jerry James 0ce0009
+void ZZ_to_mpz(mpz_t* output, const ZZ* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     unsigned char stack_bytes[4096];
Jerry James 0ce0009
     int use_heap;
Jerry James 0ce0009
@@ -62,7 +62,7 @@ void ZZ_to_mpz(mpz_t* output, const stru
Jerry James 0ce0009
 /* Copies the mpz_t into the ZZ
Jerry James 0ce0009
    AUTHOR: Joel B. Mohler (2007-03-15) */
Jerry James 0ce0009
 // This should be changed to an mpz_t not an mpz_t*
Jerry James 0ce0009
-void mpz_to_ZZ(struct ZZ* output, const mpz_t *x)
Jerry James 0ce0009
+void mpz_to_ZZ(ZZ* output, const mpz_t *x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     unsigned char stack_bytes[4096];
Jerry James 0ce0009
     int use_heap;
Jerry James 0ce0009
@@ -86,7 +86,7 @@ void ZZ_set_from_int(ZZ* x, int value)
Jerry James 0ce0009
     conv(*x, value);
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-long ZZ_remove(struct ZZ &dest, const struct ZZ &src, const struct ZZ &f)
Jerry James 0ce0009
+long ZZ_remove(ZZ &dest, const ZZ &src, const ZZ &f)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     // Based on the code for mpz_remove
Jerry James 0ce0009
     ZZ fpow[40];            // inexaustible...until year 2020 or so
Jerry James 0ce0009
@@ -172,12 +172,12 @@ void ZZ_p_set_from_int(ZZ_p* x, int valu
Jerry James 0ce0009
     conv(*x, value);
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZ_p_modulus(struct ZZ* mod, const struct ZZ_p* x)
Jerry James 0ce0009
+void ZZ_p_modulus(ZZ* mod, const ZZ_p* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     (*mod) = x->modulus();
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZ_p* ZZ_p_pow(const struct ZZ_p* x, long e) 
Jerry James 0ce0009
+ZZ_p* ZZ_p_pow(const ZZ_p* x, long e) 
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZ_p *z = new ZZ_p();
Jerry James 0ce0009
     power(*z, *x, e);
Jerry James 0ce0009
@@ -203,7 +203,7 @@ ZZ_p* ZZ_p_random(void)
Jerry James 0ce0009
     return z;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZ_p* ZZ_p_neg(struct ZZ_p* x)
Jerry James 0ce0009
+ZZ_p* ZZ_p_neg(ZZ_p* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     return new ZZ_p(-(*x));
Jerry James 0ce0009
 }
Jerry James 0ce0009
@@ -214,7 +214,7 @@ struct ZZ_p* ZZ_p_neg(struct ZZ_p* x)
Jerry James 0ce0009
 //////// ZZX //////////
Jerry James 0ce0009
 ///////////////////////////////////////////////
Jerry James 0ce0009
 
Jerry James 0ce0009
-char* ZZX_repr(struct ZZX* x)
Jerry James 0ce0009
+char* ZZX_repr(ZZX* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ostringstream instore;
Jerry James 0ce0009
     instore << (*x);
Jerry James 0ce0009
@@ -224,13 +224,13 @@ char* ZZX_repr(struct ZZX* x)
Jerry James 0ce0009
     return buf;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_copy(struct ZZX* x) {
Jerry James 0ce0009
+ZZX* ZZX_copy(ZZX* x) {
Jerry James 0ce0009
     return new ZZX(*x);
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 /* Sets ith coefficient of x to value.
Jerry James 0ce0009
    AUTHOR: David Harvey (2006-06-08) */
Jerry James 0ce0009
-void ZZX_setitem_from_int(struct ZZX* x, long i, int value)
Jerry James 0ce0009
+void ZZX_setitem_from_int(ZZX* x, long i, int value)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     SetCoeff(*x, i, value);
Jerry James 0ce0009
 }
Jerry James 0ce0009
@@ -238,7 +238,7 @@ void ZZX_setitem_from_int(struct ZZX* x,
Jerry James 0ce0009
 /* Returns ith coefficient of x.
Jerry James 0ce0009
    Return value is only valid if the result should fit into an int.
Jerry James 0ce0009
    AUTHOR: David Harvey (2006-06-08) */
Jerry James 0ce0009
-int ZZX_getitem_as_int(struct ZZX* x, long i)
Jerry James 0ce0009
+int ZZX_getitem_as_int(ZZX* x, long i)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     return ZZ_to_int(&coeff(*x, i));
Jerry James 0ce0009
 }
Jerry James 0ce0009
@@ -246,75 +246,75 @@ int ZZX_getitem_as_int(struct ZZX* x, lo
Jerry James 0ce0009
 /* Copies ith coefficient of x to output.
Jerry James 0ce0009
    Assumes output has been mpz_init'd.
Jerry James 0ce0009
    AUTHOR: David Harvey (2007-02) */
Jerry James 0ce0009
-void ZZX_getitem_as_mpz(mpz_t* output, struct ZZX* x, long i)
Jerry James 0ce0009
+void ZZX_getitem_as_mpz(mpz_t* output, ZZX* x, long i)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     const ZZ& z = coeff(*x, i);
Jerry James 0ce0009
     ZZ_to_mpz(output, &z);
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_div(struct ZZX* x, struct ZZX* y, int* divisible)
Jerry James 0ce0009
+ZZX* ZZX_div(ZZX* x, ZZX* y, int* divisible)
Jerry James 0ce0009
 {
Jerry James 0ce0009
-    struct ZZX* z = new ZZX();
Jerry James 0ce0009
+    ZZX* z = new ZZX();
Jerry James 0ce0009
     *divisible = divide(*z, *x, *y);
Jerry James 0ce0009
     return z;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZX_quo_rem(struct ZZX* x, struct ZZX* other, struct ZZX** r, struct ZZX** q)
Jerry James 0ce0009
+void ZZX_quo_rem(ZZX* x, ZZX* other, ZZX** r, ZZX** q)
Jerry James 0ce0009
 {
Jerry James 0ce0009
-    struct ZZX *qq = new ZZX(), *rr = new ZZX();
Jerry James 0ce0009
+    ZZX *qq = new ZZX(), *rr = new ZZX();
Jerry James 0ce0009
     DivRem(*qq, *rr, *x, *other);
Jerry James 0ce0009
     *r = rr; *q = qq;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_square(struct ZZX* x)
Jerry James 0ce0009
+ZZX* ZZX_square(ZZX* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
-    struct ZZX* s = new ZZX();
Jerry James 0ce0009
+    ZZX* s = new ZZX();
Jerry James 0ce0009
     sqr(*s, *x);
Jerry James 0ce0009
     return s;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-int ZZX_is_monic(struct ZZX* x)
Jerry James 0ce0009
+int ZZX_is_monic(ZZX* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     return IsOne(LeadCoeff(*x));
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_neg(struct ZZX* x)
Jerry James 0ce0009
+ZZX* ZZX_neg(ZZX* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
-    struct ZZX* y = new ZZX();
Jerry James 0ce0009
+    ZZX* y = new ZZX();
Jerry James 0ce0009
     *y = -*x;
Jerry James 0ce0009
     return y;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_left_shift(struct ZZX* x, long n)
Jerry James 0ce0009
+ZZX* ZZX_left_shift(ZZX* x, long n)
Jerry James 0ce0009
 {
Jerry James 0ce0009
-    struct ZZX* y = new ZZX();
Jerry James 0ce0009
+    ZZX* y = new ZZX();
Jerry James 0ce0009
     LeftShift(*y, *x, n);
Jerry James 0ce0009
     return y;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_right_shift(struct ZZX* x, long n)
Jerry James 0ce0009
+ZZX* ZZX_right_shift(ZZX* x, long n)
Jerry James 0ce0009
 {
Jerry James 0ce0009
-    struct ZZX* y = new ZZX();
Jerry James 0ce0009
+    ZZX* y = new ZZX();
Jerry James 0ce0009
     RightShift(*y, *x, n);
Jerry James 0ce0009
     return y;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_primitive_part(struct ZZX* x)
Jerry James 0ce0009
+ZZX* ZZX_primitive_part(ZZX* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
-    struct ZZX* p = new ZZX();
Jerry James 0ce0009
+    ZZX* p = new ZZX();
Jerry James 0ce0009
     PrimitivePart(*p, *x);
Jerry James 0ce0009
     return p;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZX_pseudo_quo_rem(struct ZZX* x, struct ZZX* y, struct ZZX** r, struct ZZX** q)
Jerry James 0ce0009
+void ZZX_pseudo_quo_rem(ZZX* x, ZZX* y, ZZX** r, ZZX** q)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     *r = new ZZX();
Jerry James 0ce0009
     *q = new ZZX();
Jerry James 0ce0009
@@ -322,16 +322,15 @@ void ZZX_pseudo_quo_rem(struct ZZX* x, s
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_gcd(struct ZZX* x, struct ZZX* y)
Jerry James 0ce0009
+ZZX* ZZX_gcd(ZZX* x, ZZX* y)
Jerry James 0ce0009
 {
Jerry James 0ce0009
-    struct ZZX* g = new ZZX();
Jerry James 0ce0009
+    ZZX* g = new ZZX();
Jerry James 0ce0009
     GCD(*g, *x, *y);
Jerry James 0ce0009
     return g;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZX_xgcd(struct ZZX* x, struct ZZX* y, struct ZZ** r, struct ZZX** s,
Jerry James 0ce0009
-          struct ZZX** t, int proof)
Jerry James 0ce0009
+void ZZX_xgcd(ZZX* x, ZZX* y, ZZ** r, ZZX** s, ZZX** t, int proof)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     *r = new ZZ();
Jerry James 0ce0009
     *s = new ZZX();
Jerry James 0ce0009
@@ -340,24 +339,24 @@ void ZZX_xgcd(struct ZZX* x, struct ZZX*
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-long ZZX_degree(struct ZZX* x)
Jerry James 0ce0009
+long ZZX_degree(ZZX* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     return deg(*x);
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZX_set_x(struct ZZX* x)
Jerry James 0ce0009
+void ZZX_set_x(ZZX* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     SetX(*x);
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-int ZZX_is_x(struct ZZX* x)
Jerry James 0ce0009
+int ZZX_is_x(ZZX* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     return IsX(*x);
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_derivative(struct ZZX* x)
Jerry James 0ce0009
+ZZX* ZZX_derivative(ZZX* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZX* d = new ZZX();
Jerry James 0ce0009
     diff(*d, *x);
Jerry James 0ce0009
@@ -365,14 +364,14 @@ struct ZZX* ZZX_derivative(struct ZZX* x
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_reverse(struct ZZX* x)
Jerry James 0ce0009
+ZZX* ZZX_reverse(ZZX* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZX* r = new ZZX();
Jerry James 0ce0009
     reverse(*r, *x);
Jerry James 0ce0009
     return r;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_reverse_hi(struct ZZX* x, int hi)
Jerry James 0ce0009
+ZZX* ZZX_reverse_hi(ZZX* x, int hi)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZX* r = new ZZX();
Jerry James 0ce0009
     reverse(*r, *x, hi);
Jerry James 0ce0009
@@ -380,7 +379,7 @@ struct ZZX* ZZX_reverse_hi(struct ZZX* x
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_truncate(struct ZZX* x, long m)
Jerry James 0ce0009
+ZZX* ZZX_truncate(ZZX* x, long m)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZX* t = new ZZX();
Jerry James 0ce0009
     trunc(*t, *x, m);
Jerry James 0ce0009
@@ -388,7 +387,7 @@ struct ZZX* ZZX_truncate(struct ZZX* x,
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_multiply_and_truncate(struct ZZX* x, struct ZZX* y, long m)
Jerry James 0ce0009
+ZZX* ZZX_multiply_and_truncate(ZZX* x, ZZX* y, long m)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZX* t = new ZZX();
Jerry James 0ce0009
     MulTrunc(*t, *x, *y, m);
Jerry James 0ce0009
@@ -396,7 +395,7 @@ struct ZZX* ZZX_multiply_and_truncate(st
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_square_and_truncate(struct ZZX* x, long m)
Jerry James 0ce0009
+ZZX* ZZX_square_and_truncate(ZZX* x, long m)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZX* t = new ZZX();
Jerry James 0ce0009
     SqrTrunc(*t, *x, m);
Jerry James 0ce0009
@@ -404,7 +403,7 @@ struct ZZX* ZZX_square_and_truncate(stru
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_invert_and_truncate(struct ZZX* x, long m)
Jerry James 0ce0009
+ZZX* ZZX_invert_and_truncate(ZZX* x, long m)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZX* t = new ZZX();
Jerry James 0ce0009
     InvTrunc(*t, *x, m);
Jerry James 0ce0009
@@ -412,7 +411,7 @@ struct ZZX* ZZX_invert_and_truncate(stru
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_multiply_mod(struct ZZX* x, struct ZZX* y,  struct ZZX* modulus)
Jerry James 0ce0009
+ZZX* ZZX_multiply_mod(ZZX* x, ZZX* y,  ZZX* modulus)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZX* p = new ZZX();
Jerry James 0ce0009
     MulMod(*p, *x, *y, *modulus);
Jerry James 0ce0009
@@ -420,7 +419,7 @@ struct ZZX* ZZX_multiply_mod(struct ZZX*
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZ* ZZX_trace_mod(struct ZZX* x, struct ZZX* y)
Jerry James 0ce0009
+ZZ* ZZX_trace_mod(ZZX* x, ZZX* y)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZ* p = new ZZ();
Jerry James 0ce0009
     TraceMod(*p, *x, *y);
Jerry James 0ce0009
@@ -428,7 +427,7 @@ struct ZZ* ZZX_trace_mod(struct ZZX* x,
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-char* ZZX_trace_list(struct ZZX* x)
Jerry James 0ce0009
+char* ZZX_trace_list(ZZX* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     vec_ZZ v;
Jerry James 0ce0009
     TraceVec(v, *x);
Jerry James 0ce0009
@@ -441,7 +440,7 @@ char* ZZX_trace_list(struct ZZX* x)
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZ* ZZX_resultant(struct ZZX* x, struct ZZX* y, int proof)
Jerry James 0ce0009
+ZZ* ZZX_resultant(ZZX* x, ZZX* y, int proof)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZ* res = new ZZ();
Jerry James 0ce0009
     resultant(*res, *x, *y, proof);
Jerry James 0ce0009
@@ -449,7 +448,7 @@ struct ZZ* ZZX_resultant(struct ZZX* x,
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZ* ZZX_norm_mod(struct ZZX* x, struct ZZX* y, int proof)
Jerry James 0ce0009
+ZZ* ZZX_norm_mod(ZZX* x, ZZX* y, int proof)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZ* res = new ZZ();
Jerry James 0ce0009
     NormMod(*res, *x, *y, proof);
Jerry James 0ce0009
@@ -457,7 +456,7 @@ struct ZZ* ZZX_norm_mod(struct ZZX* x, s
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZ* ZZX_discriminant(struct ZZX* x, int proof)
Jerry James 0ce0009
+ZZ* ZZX_discriminant(ZZX* x, int proof)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZ* d = new ZZ();
Jerry James 0ce0009
     discriminant(*d, *x, proof);
Jerry James 0ce0009
@@ -465,7 +464,7 @@ struct ZZ* ZZX_discriminant(struct ZZX*
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_charpoly_mod(struct ZZX* x, struct ZZX* y, int proof)
Jerry James 0ce0009
+ZZX* ZZX_charpoly_mod(ZZX* x, ZZX* y, int proof)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZX* f = new ZZX();
Jerry James 0ce0009
     CharPolyMod(*f, *x, *y, proof);
Jerry James 0ce0009
@@ -473,7 +472,7 @@ struct ZZX* ZZX_charpoly_mod(struct ZZX*
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* ZZX_minpoly_mod(struct ZZX* x, struct ZZX* y)
Jerry James 0ce0009
+ZZX* ZZX_minpoly_mod(ZZX* x, ZZX* y)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZX* f = new ZZX();
Jerry James 0ce0009
     MinPolyMod(*f, *x, *y);
Jerry James 0ce0009
@@ -481,19 +480,19 @@ struct ZZX* ZZX_minpoly_mod(struct ZZX*
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZX_clear(struct ZZX* x)
Jerry James 0ce0009
+void ZZX_clear(ZZX* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     clear(*x);
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZX_preallocate_space(struct ZZX* x, long n)
Jerry James 0ce0009
+void ZZX_preallocate_space(ZZX* x, long n)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     x->SetMaxLength(n);
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 /*
Jerry James 0ce0009
-EXTERN struct ZZ* ZZX_polyeval(struct ZZX* f, struct ZZ* a)
Jerry James 0ce0009
+EXTERN ZZ* ZZX_polyeval(ZZX* f, ZZ* a)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZ* b = new ZZ();
Jerry James 0ce0009
     *b = PolyEval(*f, *a);
Jerry James 0ce0009
@@ -501,7 +500,7 @@ EXTERN struct ZZ* ZZX_polyeval(struct ZZ
Jerry James 0ce0009
 }
Jerry James 0ce0009
 */
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZX_squarefree_decomposition(struct ZZX*** v, long** e, long* n, struct ZZX* x)
Jerry James 0ce0009
+void ZZX_squarefree_decomposition(ZZX*** v, long** e, long* n, ZZX* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     vec_pair_ZZX_long factors;
Jerry James 0ce0009
     SquareFreeDecomp(factors, *x);
Jerry James 0ce0009
@@ -518,7 +517,7 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 //////// ZZ_pX //////////
Jerry James 0ce0009
 ///////////////////////////////////////////////
Jerry James 0ce0009
 
Jerry James 0ce0009
-// char* ZZ_pX_repr(struct ZZ_pX* x)
Jerry James 0ce0009
+// char* ZZ_pX_repr(ZZ_pX* x)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ostringstream instore;
Jerry James 0ce0009
 //   instore << (*x);
Jerry James 0ce0009
@@ -528,17 +527,17 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 //   return buf;
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
-// void ZZ_pX_dealloc(struct ZZ_pX* x) {
Jerry James 0ce0009
+// void ZZ_pX_dealloc(ZZ_pX* x) {
Jerry James 0ce0009
 //   delete x;
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_copy(struct ZZ_pX* x) {
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_copy(ZZ_pX* x) {
Jerry James 0ce0009
 //   return new ZZ_pX(*x);
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 // /* Sets ith coefficient of x to value.
Jerry James 0ce0009
 //    AUTHOR: David Harvey (2008-06-08) */
Jerry James 0ce0009
-// void ZZ_pX_setitem_from_int(struct ZZ_pX* x, long i, int value)
Jerry James 0ce0009
+// void ZZ_pX_setitem_from_int(ZZ_pX* x, long i, int value)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   SetCoeff(*x, i, value);
Jerry James 0ce0009
 // }
Jerry James 0ce0009
@@ -546,26 +545,26 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 // /* Returns ith coefficient of x.
Jerry James 0ce0009
 //    Return value is only valid if the result should fit into an int.
Jerry James 0ce0009
 //    AUTHOR: David Harvey (2008-06-08) */
Jerry James 0ce0009
-// int ZZ_pX_getitem_as_int(struct ZZ_pX* x, long i)
Jerry James 0ce0009
+// int ZZ_pX_getitem_as_int(ZZ_pX* x, long i)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //     return ZZ_to_int(&rep(coeff(*x, i)));
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_add(struct ZZ_pX* x, struct ZZ_pX* y)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_add(ZZ_pX* x, ZZ_pX* y)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_pX *z = new ZZ_pX();
Jerry James 0ce0009
 //   add(*z, *x, *y);
Jerry James 0ce0009
 //   return z;
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_sub(struct ZZ_pX* x, struct ZZ_pX* y)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_sub(ZZ_pX* x, ZZ_pX* y)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_pX *z = new ZZ_pX();
Jerry James 0ce0009
 //   sub(*z, *x, *y);
Jerry James 0ce0009
 //   return z;
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_mul(struct ZZ_pX* x, struct ZZ_pX* y)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_mul(ZZ_pX* x, ZZ_pX* y)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_pX *z = new ZZ_pX();
Jerry James 0ce0009
 //   mul(*z, *x, *y);
Jerry James 0ce0009
@@ -573,24 +572,24 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_div(struct ZZ_pX* x, struct ZZ_pX* y, int* divisible)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_div(ZZ_pX* x, ZZ_pX* y, int* divisible)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
-//   struct ZZ_pX* z = new ZZ_pX();
Jerry James 0ce0009
+//   ZZ_pX* z = new ZZ_pX();
Jerry James 0ce0009
 //   *divisible = divide(*z, *x, *y);
Jerry James 0ce0009
 //   return z;
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_mod(struct ZZ_pX* x, struct ZZ_pX* y)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_mod(ZZ_pX* x, ZZ_pX* y)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
-//   struct ZZ_pX* z = new ZZ_pX();
Jerry James 0ce0009
+//   ZZ_pX* z = new ZZ_pX();
Jerry James 0ce0009
 //   rem(*z, *x, *y);
Jerry James 0ce0009
 //   return z;
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// void ZZ_pX_quo_rem(struct ZZ_pX* x, struct ZZ_pX* y, struct ZZ_pX** r, struct ZZ_pX** q)
Jerry James 0ce0009
+// void ZZ_pX_quo_rem(ZZ_pX* x, ZZ_pX* y, ZZ_pX** r, ZZ_pX** q)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   *r = new ZZ_pX();
Jerry James 0ce0009
 //   *q = new ZZ_pX();
Jerry James 0ce0009
@@ -598,55 +597,55 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_square(struct ZZ_pX* x)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_square(ZZ_pX* x)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
-//   struct ZZ_pX* s = new ZZ_pX();
Jerry James 0ce0009
+//   ZZ_pX* s = new ZZ_pX();
Jerry James 0ce0009
 //   sqr(*s, *x);
Jerry James 0ce0009
 //   return s;
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// int ZZ_pX_is_monic(struct ZZ_pX* x)
Jerry James 0ce0009
+// int ZZ_pX_is_monic(ZZ_pX* x)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   IsOne(LeadCoeff(*x));
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_neg(struct ZZ_pX* x)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_neg(ZZ_pX* x)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
-//   struct ZZ_pX* y = new ZZ_pX();
Jerry James 0ce0009
+//   ZZ_pX* y = new ZZ_pX();
Jerry James 0ce0009
 //   *y = -*x;
Jerry James 0ce0009
 //   return y;
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_left_shift(struct ZZ_pX* x, long n)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_left_shift(ZZ_pX* x, long n)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
-//   struct ZZ_pX* y = new ZZ_pX();
Jerry James 0ce0009
+//   ZZ_pX* y = new ZZ_pX();
Jerry James 0ce0009
 //   LeftShift(*y, *x, n);
Jerry James 0ce0009
 //   return y;
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_right_shift(struct ZZ_pX* x, long n)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_right_shift(ZZ_pX* x, long n)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
-//   struct ZZ_pX* y = new ZZ_pX();
Jerry James 0ce0009
+//   ZZ_pX* y = new ZZ_pX();
Jerry James 0ce0009
 //   RightShift(*y, *x, n);
Jerry James 0ce0009
 //   return y;
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_gcd(struct ZZ_pX* x, struct ZZ_pX* y)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_gcd(ZZ_pX* x, ZZ_pX* y)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
-//   struct ZZ_pX* g = new ZZ_pX();
Jerry James 0ce0009
+//   ZZ_pX* g = new ZZ_pX();
Jerry James 0ce0009
 //   GCD(*g, *x, *y);
Jerry James 0ce0009
 //   return g;
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// void ZZ_pX_xgcd(struct ZZ_pX** d, struct ZZ_pX** s, struct ZZ_pX** t, struct ZZ_pX* a, struct ZZ_pX* b)
Jerry James 0ce0009
+// void ZZ_pX_xgcd(ZZ_pX** d, ZZ_pX** s, ZZ_pX** t, ZZ_pX* a, ZZ_pX* b)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   *d = new ZZ_pX();
Jerry James 0ce0009
 //   *s = new ZZ_pX();
Jerry James 0ce0009
@@ -654,7 +653,7 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 //   XGCD(**d, **s, **t, *a, *b);
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
-// void ZZ_pX_plain_xgcd(struct ZZ_pX** d, struct ZZ_pX** s, struct ZZ_pX** t, struct ZZ_pX* a, struct ZZ_pX* b)
Jerry James 0ce0009
+// void ZZ_pX_plain_xgcd(ZZ_pX** d, ZZ_pX** s, ZZ_pX** t, ZZ_pX* a, ZZ_pX* b)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   *d = new ZZ_pX();
Jerry James 0ce0009
 //   *s = new ZZ_pX();
Jerry James 0ce0009
@@ -662,25 +661,25 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 //   PlainXGCD(**d, **s, **t, *a, *b);
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
-// ZZ_p* ZZ_pX_leading_coefficient(struct ZZ_pX* x)
Jerry James 0ce0009
+// ZZ_p* ZZ_pX_leading_coefficient(ZZ_pX* x)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   return new ZZ_p(LeadCoeff(*x));
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// void ZZ_pX_set_x(struct ZZ_pX* x)
Jerry James 0ce0009
+// void ZZ_pX_set_x(ZZ_pX* x)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   SetX(*x);
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// int ZZ_pX_is_x(struct ZZ_pX* x)
Jerry James 0ce0009
+// int ZZ_pX_is_x(ZZ_pX* x)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   return IsX(*x);
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_derivative(struct ZZ_pX* x)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_derivative(ZZ_pX* x)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_pX* d = new ZZ_pX();
Jerry James 0ce0009
 //   diff(*d, *x);
Jerry James 0ce0009
@@ -688,14 +687,14 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_reverse(struct ZZ_pX* x)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_reverse(ZZ_pX* x)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_pX* r = new ZZ_pX();
Jerry James 0ce0009
 //   reverse(*r, *x);
Jerry James 0ce0009
 //   return r;
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_reverse_hi(struct ZZ_pX* x, int hi)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_reverse_hi(ZZ_pX* x, int hi)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_pX* r = new ZZ_pX();
Jerry James 0ce0009
 //   reverse(*r, *x, hi);
Jerry James 0ce0009
@@ -703,7 +702,7 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_truncate(struct ZZ_pX* x, long m)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_truncate(ZZ_pX* x, long m)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_pX* t = new ZZ_pX();
Jerry James 0ce0009
 //   trunc(*t, *x, m);
Jerry James 0ce0009
@@ -711,7 +710,7 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_multiply_and_truncate(struct ZZ_pX* x, struct ZZ_pX* y, long m)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_multiply_and_truncate(ZZ_pX* x, ZZ_pX* y, long m)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_pX* t = new ZZ_pX();
Jerry James 0ce0009
 //   MulTrunc(*t, *x, *y, m);
Jerry James 0ce0009
@@ -719,7 +718,7 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_square_and_truncate(struct ZZ_pX* x, long m)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_square_and_truncate(ZZ_pX* x, long m)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_pX* t = new ZZ_pX();
Jerry James 0ce0009
 //   SqrTrunc(*t, *x, m);
Jerry James 0ce0009
@@ -727,7 +726,7 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_invert_and_truncate(struct ZZ_pX* x, long m)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_invert_and_truncate(ZZ_pX* x, long m)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_pX* t = new ZZ_pX();
Jerry James 0ce0009
 //   InvTrunc(*t, *x, m);
Jerry James 0ce0009
@@ -735,7 +734,7 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_multiply_mod(struct ZZ_pX* x, struct ZZ_pX* y,  struct ZZ_pX* modulus)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_multiply_mod(ZZ_pX* x, ZZ_pX* y,  ZZ_pX* modulus)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_pX* p = new ZZ_pX();
Jerry James 0ce0009
 //   MulMod(*p, *x, *y, *modulus);
Jerry James 0ce0009
@@ -743,7 +742,7 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_p* ZZ_pX_trace_mod(struct ZZ_pX* x, struct ZZ_pX* y)
Jerry James 0ce0009
+// ZZ_p* ZZ_pX_trace_mod(ZZ_pX* x, ZZ_pX* y)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_p* p = new ZZ_p();
Jerry James 0ce0009
 //   TraceMod(*p, *x, *y);
Jerry James 0ce0009
@@ -751,7 +750,7 @@ void ZZX_squarefree_decomposition(struct
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-char* ZZ_pX_trace_list(struct ZZ_pX* x)
Jerry James 0ce0009
+char* ZZ_pX_trace_list(ZZ_pX* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     vec_ZZ_p v;
Jerry James 0ce0009
     TraceVec(v, *x);
Jerry James 0ce0009
@@ -764,7 +763,7 @@ char* ZZ_pX_trace_list(struct ZZ_pX* x)
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_p* ZZ_pX_resultant(struct ZZ_pX* x, struct ZZ_pX* y)
Jerry James 0ce0009
+// ZZ_p* ZZ_pX_resultant(ZZ_pX* x, ZZ_pX* y)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_p* res = new ZZ_p();
Jerry James 0ce0009
 //   resultant(*res, *x, *y);
Jerry James 0ce0009
@@ -772,7 +771,7 @@ char* ZZ_pX_trace_list(struct ZZ_pX* x)
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_p* ZZ_pX_norm_mod(struct ZZ_pX* x, struct ZZ_pX* y)
Jerry James 0ce0009
+// ZZ_p* ZZ_pX_norm_mod(ZZ_pX* x, ZZ_pX* y)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_p* res = new ZZ_p();
Jerry James 0ce0009
 //   NormMod(*res, *x, *y);
Jerry James 0ce0009
@@ -781,7 +780,7 @@ char* ZZ_pX_trace_list(struct ZZ_pX* x)
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_charpoly_mod(struct ZZ_pX* x, struct ZZ_pX* y)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_charpoly_mod(ZZ_pX* x, ZZ_pX* y)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_pX* f = new ZZ_pX();
Jerry James 0ce0009
 //   CharPolyMod(*f, *x, *y);
Jerry James 0ce0009
@@ -789,7 +788,7 @@ char* ZZ_pX_trace_list(struct ZZ_pX* x)
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// struct ZZ_pX* ZZ_pX_minpoly_mod(struct ZZ_pX* x, struct ZZ_pX* y)
Jerry James 0ce0009
+// ZZ_pX* ZZ_pX_minpoly_mod(ZZ_pX* x, ZZ_pX* y)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   ZZ_pX* f = new ZZ_pX();
Jerry James 0ce0009
 //   MinPolyMod(*f, *x, *y);
Jerry James 0ce0009
@@ -797,18 +796,18 @@ char* ZZ_pX_trace_list(struct ZZ_pX* x)
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// void ZZ_pX_clear(struct ZZ_pX* x)
Jerry James 0ce0009
+// void ZZ_pX_clear(ZZ_pX* x)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   clear(*x);
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-// void ZZ_pX_preallocate_space(struct ZZ_pX* x, long n)
Jerry James 0ce0009
+// void ZZ_pX_preallocate_space(ZZ_pX* x, long n)
Jerry James 0ce0009
 // {
Jerry James 0ce0009
 //   x->SetMaxLength(n);
Jerry James 0ce0009
 // }
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZ_pX_factor(struct ZZ_pX*** v, long** e, long* n, struct ZZ_pX* x, long verbose)
Jerry James 0ce0009
+void ZZ_pX_factor(ZZ_pX*** v, long** e, long* n, ZZ_pX* x, long verbose)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     long i;
Jerry James 0ce0009
     vec_pair_ZZ_pX_long factors;
Jerry James 0ce0009
@@ -822,7 +821,7 @@ void ZZ_pX_factor(struct ZZ_pX*** v, lon
Jerry James 0ce0009
     }
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZ_pX_linear_roots(struct ZZ_p*** v, long* n, struct ZZ_pX* f)
Jerry James 0ce0009
+void ZZ_pX_linear_roots(ZZ_p*** v, long* n, ZZ_pX* f)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     long i;
Jerry James 0ce0009
     vec_ZZ_p w;
Jerry James 0ce0009
@@ -836,7 +835,7 @@ void ZZ_pX_linear_roots(struct ZZ_p*** v
Jerry James 0ce0009
 
Jerry James 0ce0009
 /////////// ZZ_pE //////////////
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZ_pX ZZ_pE_to_ZZ_pX(struct ZZ_pE x)
Jerry James 0ce0009
+ZZ_pX ZZ_pE_to_ZZ_pX(ZZ_pE x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     return ZZ_pX(rep(x));
Jerry James 0ce0009
 }
Jerry James 0ce0009
@@ -845,67 +844,67 @@ struct ZZ_pX ZZ_pE_to_ZZ_pX(struct ZZ_pE
Jerry James 0ce0009
 
Jerry James 0ce0009
 //////// mat_ZZ //////////
Jerry James 0ce0009
 
Jerry James 0ce0009
-void mat_ZZ_SetDims(struct mat_ZZ* mZZ, long nrows, long ncols){
Jerry James 0ce0009
+void mat_ZZ_SetDims(mat_ZZ* mZZ, long nrows, long ncols){
Jerry James 0ce0009
     mZZ->SetDims(nrows, ncols);
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct mat_ZZ* mat_ZZ_pow(const struct mat_ZZ* x, long e) 
Jerry James 0ce0009
+mat_ZZ* mat_ZZ_pow(const mat_ZZ* x, long e) 
Jerry James 0ce0009
 {
Jerry James 0ce0009
     mat_ZZ *z = new mat_ZZ();
Jerry James 0ce0009
     power(*z, *x, e);
Jerry James 0ce0009
     return z;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-long mat_ZZ_nrows(const struct mat_ZZ* x)
Jerry James 0ce0009
+long mat_ZZ_nrows(const mat_ZZ* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     return x->NumRows();
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-long mat_ZZ_ncols(const struct mat_ZZ* x)
Jerry James 0ce0009
+long mat_ZZ_ncols(const mat_ZZ* x)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     return x->NumCols();
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-void mat_ZZ_setitem(struct mat_ZZ* x, int i, int j, const struct ZZ* z)
Jerry James 0ce0009
+void mat_ZZ_setitem(mat_ZZ* x, int i, int j, const ZZ* z)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     (*x)[i][j] = *z;
Jerry James 0ce0009
   
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZ* mat_ZZ_getitem(const struct mat_ZZ* x, int i, int j)
Jerry James 0ce0009
+ZZ* mat_ZZ_getitem(const mat_ZZ* x, int i, int j)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     return new ZZ((*x)(i,j));
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZ* mat_ZZ_determinant(const struct mat_ZZ* x, long deterministic)
Jerry James 0ce0009
+ZZ* mat_ZZ_determinant(const mat_ZZ* x, long deterministic)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZ* d = new ZZ();
Jerry James 0ce0009
     determinant(*d, *x, deterministic);
Jerry James 0ce0009
     return d;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct mat_ZZ* mat_ZZ_HNF(const struct mat_ZZ* A, const struct ZZ* D)
Jerry James 0ce0009
+mat_ZZ* mat_ZZ_HNF(const mat_ZZ* A, const ZZ* D)
Jerry James 0ce0009
 {
Jerry James 0ce0009
-    struct mat_ZZ* W = new mat_ZZ();
Jerry James 0ce0009
+    mat_ZZ* W = new mat_ZZ();
Jerry James 0ce0009
     HNF(*W, *A, *D);
Jerry James 0ce0009
     return W;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-long mat_ZZ_LLL(struct ZZ **det, struct mat_ZZ *x, long a, long b, long verbose)
Jerry James 0ce0009
+long mat_ZZ_LLL(ZZ **det, mat_ZZ *x, long a, long b, long verbose)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     *det = new ZZ();
Jerry James 0ce0009
     return LLL(**det,*x,a,b,verbose);
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-long mat_ZZ_LLL_U(struct ZZ **det, struct mat_ZZ *x, struct mat_ZZ *U, long a, long b, long verbose)
Jerry James 0ce0009
+long mat_ZZ_LLL_U(ZZ **det, mat_ZZ *x, mat_ZZ *U, long a, long b, long verbose)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     *det = new ZZ();
Jerry James 0ce0009
     return LLL(**det,*x,*U,a,b,verbose);
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-struct ZZX* mat_ZZ_charpoly(const struct mat_ZZ* A)
Jerry James 0ce0009
+ZZX* mat_ZZ_charpoly(const mat_ZZ* A)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     ZZX* f = new ZZX();
Jerry James 0ce0009
     CharPoly(*f, *A);
Jerry James 0ce0009
@@ -928,12 +927,12 @@ GF2EContext* GF2EContext_new(const GF2X
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
 
Jerry James 0ce0009
-void mat_GF2E_setitem(struct mat_GF2E* x, int i, int j, const struct GF2E* z)
Jerry James 0ce0009
+void mat_GF2E_setitem(mat_GF2E* x, int i, int j, const GF2E* z)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     (*x)[i][j] = *z;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-void mat_GF2_setitem(struct mat_GF2* x, int i, int j, const struct GF2* z)
Jerry James 0ce0009
+void mat_GF2_setitem(mat_GF2* x, int i, int j, const GF2* z)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     (*x)[i][j] = *z;
Jerry James 0ce0009
 }
Jerry James 0ce0009
@@ -1022,7 +1021,7 @@ void ZZ_pEX_conv_modulus(ZZ_pEX &fout, c
Jerry James 0ce0009
     fout.normalize();
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZ_pX_min_val_coeff(long & valuation, long &index, const struct ZZ_pX &f, const struct ZZ &p)
Jerry James 0ce0009
+void ZZ_pX_min_val_coeff(long & valuation, long &index, const ZZ_pX &f, const ZZ &p)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     // Sets index, where the indexth coefficient of f has the minimum p-adic valuation.
Jerry James 0ce0009
     // Sets valuation to be this valuation.
Jerry James 0ce0009
@@ -1067,7 +1066,7 @@ void ZZ_pX_min_val_coeff(long & valuatio
Jerry James 0ce0009
     delete u;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-long ZZ_pX_get_val_coeff(const struct ZZ_pX &f, const struct ZZ &p, long i)
Jerry James 0ce0009
+long ZZ_pX_get_val_coeff(const ZZ_pX &f, const ZZ &p, long i)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     // Gets the p-adic valuation of the ith coefficient of f.
Jerry James 0ce0009
     ZZ *u = new ZZ();
Jerry James 0ce0009
@@ -1076,7 +1075,7 @@ long ZZ_pX_get_val_coeff(const struct ZZ
Jerry James 0ce0009
     return ans;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZ_pX_left_pshift(struct ZZ_pX &x, const struct ZZ_pX &a, const struct ZZ &pn, const struct ZZ_pContext &c)
Jerry James 0ce0009
+void ZZ_pX_left_pshift(ZZ_pX &x, const ZZ_pX &a, const ZZ &pn, const ZZ_pContext &c)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     // Multiplies each coefficient by pn, and sets the context of the answer to c.
Jerry James 0ce0009
 
Jerry James 0ce0009
@@ -1102,7 +1101,7 @@ void ZZ_pX_left_pshift(struct ZZ_pX &x,
Jerry James 0ce0009
     x.normalize();    
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZ_pX_right_pshift(struct ZZ_pX &x, const struct ZZ_pX &a, const struct ZZ &pn, const struct ZZ_pContext &c)
Jerry James 0ce0009
+void ZZ_pX_right_pshift(ZZ_pX &x, const ZZ_pX &a, const ZZ &pn, const ZZ_pContext &c)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     // Divides each coefficient by pn, and sets the context of the answer to c.
Jerry James 0ce0009
 
Jerry James 0ce0009
@@ -1128,7 +1127,7 @@ void ZZ_pX_right_pshift(struct ZZ_pX &x,
Jerry James 0ce0009
     x.normalize();    
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZ_pX_InvMod_newton_unram(struct ZZ_pX &x, const struct ZZ_pX &a, const struct ZZ_pXModulus &F, const struct ZZ_pContext &cpn, const struct ZZ_pContext &cp)
Jerry James 0ce0009
+void ZZ_pX_InvMod_newton_unram(ZZ_pX &x, const ZZ_pX &a, const ZZ_pXModulus &F, const ZZ_pContext &cpn, const ZZ_pContext &cp)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     //int j;
Jerry James 0ce0009
     cp.restore();
Jerry James 0ce0009
@@ -1163,7 +1162,7 @@ void ZZ_pX_InvMod_newton_unram(struct ZZ
Jerry James 0ce0009
     delete xn;
Jerry James 0ce0009
 }
Jerry James 0ce0009
 
Jerry James 0ce0009
-void ZZ_pX_InvMod_newton_ram(struct ZZ_pX &x, const struct ZZ_pX &a, const struct ZZ_pXModulus &F, const struct ZZ_pContext &cpn)
Jerry James 0ce0009
+void ZZ_pX_InvMod_newton_ram(ZZ_pX &x, const ZZ_pX &a, const ZZ_pXModulus &F, const ZZ_pContext &cpn)
Jerry James 0ce0009
 {
Jerry James 0ce0009
     //int j;
Jerry James 0ce0009
     cpn.restore();
d4a07df
diff -up sage-5.12/spkg/build/sage-5.12/sage/libs/ntl/decl.pxi.orig sage-5.12/spkg/build/sage-5.12/sage/libs/ntl/decl.pxi
d4a07df
--- sage-5.12/spkg/build/sage-5.12/sage/libs/ntl/decl.pxi.orig	2013-07-29 19:39:08.246018227 -0300
d4a07df
+++ sage-5.12/spkg/build/sage-5.12/sage/libs/ntl/decl.pxi	2013-07-29 19:40:11.836020662 -0300
4c97a63
@@ -22,7 +22,7 @@ from sage.libs.ntl.ntl_ZZ_pEX_decl cimpo
Jerry James eac7c8f
 
Jerry James eac7c8f
 cdef extern from "ntl_wrap.h":
Jerry James eac7c8f
     #### mat_ZZ_c
Jerry James eac7c8f
-    ctypedef struct mat_ZZ_c "struct mat_ZZ":
Jerry James eac7c8f
+    ctypedef struct mat_ZZ_c "mat_ZZ":
Jerry James eac7c8f
         pass
Jerry James eac7c8f
 
Jerry James eac7c8f
     # Some boiler-plate
4c97a63
@@ -92,7 +92,7 @@ cdef extern from "ntl_wrap.h":
Jerry James eac7c8f
     cdef long mat_ZZ_G_BKZ_RR_U   "G_BKZ_RR"(mat_ZZ_c B, mat_ZZ_c U, double delta, long BlockSize, long prune, int check, long verbose)
Jerry James eac7c8f
 
Jerry James eac7c8f
     #### GF2_c
Jerry James eac7c8f
-    ctypedef struct GF2_c "struct GF2":
Jerry James eac7c8f
+    ctypedef struct GF2_c "GF2":
Jerry James eac7c8f
         pass
Jerry James eac7c8f
 
Jerry James eac7c8f
     GF2_c* GF2_new "New<GF2>"()
4c97a63
@@ -118,7 +118,7 @@ cdef extern from "ntl_wrap.h":
Jerry James eac7c8f
 
Jerry James eac7c8f
     #### GF2X_c
Jerry James eac7c8f
 
Jerry James eac7c8f
-    ctypedef struct GF2X_c "struct GF2X":
Jerry James eac7c8f
+    ctypedef struct GF2X_c "GF2X":
Jerry James eac7c8f
         pass
Jerry James eac7c8f
 
Jerry James eac7c8f
     long *GF2XHexOutput_c "(&GF2X::HexOutput)" # work-around for Cython bug
4c97a63
@@ -175,7 +175,7 @@ cdef extern from "ntl_wrap.h":
Jerry James eac7c8f
     void GF2X_BuildIrred "BuildIrred" (GF2X_c f, long n)
Jerry James eac7c8f
 
Jerry James eac7c8f
     #### GF2XModulus_c
Jerry James eac7c8f
-    ctypedef struct GF2XModulus_c "struct GF2XModulus":
Jerry James eac7c8f
+    ctypedef struct GF2XModulus_c "GF2XModulus":
Jerry James eac7c8f
         pass
Jerry James eac7c8f
 
Jerry James eac7c8f
     GF2X_c GF2XModulus_GF2X "GF2X" (GF2XModulus_c m)
4c97a63
@@ -184,7 +184,7 @@ cdef extern from "ntl_wrap.h":
Jerry James eac7c8f
 
Jerry James eac7c8f
     #### GF2EContext_c
Jerry James eac7c8f
 
Jerry James eac7c8f
-    ctypedef struct GF2EContext_c "struct GF2EContext":
Jerry James eac7c8f
+    ctypedef struct GF2EContext_c "GF2EContext":
Jerry James eac7c8f
         void (*restore)()
Jerry James eac7c8f
 
Jerry James eac7c8f
     GF2EContext_c* GF2EContext_new "New<GF2EContext>"()
4c97a63
@@ -195,7 +195,7 @@ cdef extern from "ntl_wrap.h":
Jerry James eac7c8f
     void GF2EContext_delete "Delete<GF2EContext>"(GF2EContext_c *mem)
Jerry James eac7c8f
 
Jerry James eac7c8f
     #### GF2E_c
Jerry James eac7c8f
-    ctypedef struct GF2E_c "struct GF2E":
Jerry James eac7c8f
+    ctypedef struct GF2E_c "GF2E":
Jerry James eac7c8f
         pass
Jerry James eac7c8f
 
Jerry James eac7c8f
     void GF2E_init "GF2E::init"(GF2X_c x)
4c97a63
@@ -230,7 +230,7 @@ cdef extern from "ntl_wrap.h":
Jerry James eac7c8f
     GF2_c GF2E_trace "trace"(GF2E_c x)
Jerry James eac7c8f
 
Jerry James eac7c8f
     #### GF2EX_c
Jerry James eac7c8f
-    ctypedef struct GF2EX_c "struct GF2EX":
Jerry James eac7c8f
+    ctypedef struct GF2EX_c "GF2EX":
Jerry James eac7c8f
         pass
Jerry James eac7c8f
 
Jerry James eac7c8f
     GF2EX_c* GF2EX_new "New<GF2EX>"()
4c97a63
@@ -249,7 +249,7 @@ cdef extern from "ntl_wrap.h":
Jerry James eac7c8f
     int GF2EX_IsZero "IsZero"(GF2EX_c x)
Jerry James eac7c8f
 
Jerry James eac7c8f
     #### vec_GF2E_c
Jerry James eac7c8f
-    ctypedef struct vec_GF2E_c "struct vec_GF2E":
Jerry James eac7c8f
+    ctypedef struct vec_GF2E_c "vec_GF2E":
Jerry James eac7c8f
         pass
Jerry James eac7c8f
 
Jerry James eac7c8f
     vec_GF2E_c* vec_GF2E_new "New<vec_GF2E>"()
4c97a63
@@ -260,7 +260,7 @@ cdef extern from "ntl_wrap.h":
Jerry James eac7c8f
     object vec_GF2E_to_PyString "_to_PyString<vec_GF2E>"(vec_GF2E_c *x)
Jerry James eac7c8f
 
Jerry James eac7c8f
     #### mat_GF2E_c
Jerry James eac7c8f
-    ctypedef struct mat_GF2E_c "struct mat_GF2E":
Jerry James eac7c8f
+    ctypedef struct mat_GF2E_c "mat_GF2E":
Jerry James eac7c8f
         void (*SetDims)(long nrows, long ncols)
Jerry James eac7c8f
         long (*NumRows)()
Jerry James eac7c8f
         long (*NumCols)()
4c97a63
@@ -299,7 +299,7 @@ cdef extern from "ntl_wrap.h":
Jerry James eac7c8f
     void mat_GF2E_conv_vec_GF2E(mat_GF2E_c out, vec_GF2E_c inp)
Jerry James eac7c8f
 
Jerry James eac7c8f
     #### vec_GF2_c
Jerry James eac7c8f
-    ctypedef struct vec_GF2_c "struct vec_GF2":
Jerry James eac7c8f
+    ctypedef struct vec_GF2_c "vec_GF2":
Jerry James eac7c8f
         pass
Jerry James eac7c8f
 
Jerry James eac7c8f
     vec_GF2_c* vec_GF2_new "New<vec_GF2>"()
4c97a63
@@ -311,7 +311,7 @@ cdef extern from "ntl_wrap.h":
Jerry James eac7c8f
 
Jerry James eac7c8f
 
Jerry James eac7c8f
     #### mat_GF2_c
Jerry James eac7c8f
-    ctypedef struct mat_GF2_c "struct mat_GF2":
Jerry James eac7c8f
+    ctypedef struct mat_GF2_c "mat_GF2":
Jerry James eac7c8f
         void (*SetDims)(long nrows, long ncols)
Jerry James eac7c8f
         long (*NumRows)()
Jerry James eac7c8f
         long (*NumCols)()