--- Singular-3-1-6/factory/NTLconvert.cc.orig 2012-12-19 14:01:16.000000000 -0700 +++ Singular-3-1-6/factory/NTLconvert.cc 2015-01-12 20:00:00.000000000 -0700 @@ -55,6 +55,63 @@ NTL_CLIENT #endif +// Needed explicit template instantiations for NTL 8.x.x +template mat_zz_p::Mat(const mat_zz_p&); +template mat_zz_pE::Mat(const mat_zz_pE&); + +template class Vec >; +template class Vec >; +template class Vec >; +template class Vec >; +template class Vec >; +template class Vec >; +template class Vec >; +template class Vec >; +template class Vec >; +template class Vec; +template class Vec; + +template long operator==(const vec_zz_p&, const vec_zz_p&); + +template void BlockConstruct >(Pair* p, long n); +template void BlockConstruct >(Pair* p, long n); +template void BlockConstruct >(Pair* p, long n); +template void BlockConstruct >(Pair* p, long n); +template void BlockConstruct >(Pair* p, long n); +template void BlockConstruct >(Pair* p, long n); +template void BlockConstruct >(Pair* p, long n); +template void BlockConstruct >(Vec* p, long n); +template void BlockConstruct >(Vec* p, long n); +template void BlockConstruct(zz_pEX* p, long n); + +template void BlockConstructFromVec >(Pair* p, long n, const Pair* q); +template void BlockConstructFromVec >(Pair* p, long n, const Pair* q); +template void BlockConstructFromVec >(Pair* p, long n, const Pair* q); +template void BlockConstructFromVec >(Pair* p, long n, const Pair* q); +template void BlockConstructFromVec >(Pair* p, long n, const Pair* q); +template void BlockConstructFromVec >(Pair* p, long n, const Pair* q); +template void BlockConstructFromVec >(Pair* p, long n, const Pair* q); +template void BlockConstructFromVec >(Vec* p, long n, const Vec* q); +template void BlockConstructFromVec >(Vec* p, long n, const Vec* q); +template void BlockConstructFromVec(zz_p* p, long n, const zz_p* q); +template void BlockConstructFromVec(zz_pE* p, long n, const zz_pE* q); +template void BlockConstructFromVec(zz_pEX* p, long n, const zz_pEX* q); + +template void BlockConstructFromObj >(Pair* p, long n, const Pair& q); +template void BlockConstructFromObj >(Pair* p, long n, const Pair& q); +template void BlockConstructFromObj >(Pair* p, long n, const Pair& q); +template void BlockConstructFromObj >(Pair* p, long n, const Pair& q); +template void BlockConstructFromObj >(Pair* p, long n, const Pair& q); +template void BlockConstructFromObj >(Pair* p, long n, const Pair& q); +template void BlockConstructFromObj >(Pair* p, long n, const Pair& q); +template void BlockConstructFromObj >(Vec* p, long n, const Vec& q); +template void BlockConstructFromObj >(Vec* p, long n, const Vec& q); +template void BlockConstructFromObj(zz_pEX* p, long n, const zz_pEX& q); + +template SmartPtr MakeSmart(const GF2X &ptr); +template SmartPtr MakeSmart(const zz_pX &ptr); +template SmartPtr MakeSmart(const ZZ &ptr); + //////////////////////////////////////////////////////////////////////////////// // NAME: convertFacCF2NTLZZpX // // // @@ -511,7 +568,7 @@ } else { - long sizeofrep= ((long *) a.rep) [1]; + long sizeofrep= ((long *) &a) [1]; bool lessZero= false; if (sizeofrep < 0) { @@ -529,7 +586,7 @@ cf_stringtemp_l= sizeofrep*sizeof(mp_limb_t)*2; cf_stringtemp= (unsigned char*) Alloc (cf_stringtemp_l); } - int cc= mpn_get_str (cf_stringtemp, 16, (mp_limb_t *) (((long *) (a.rep)) + 2), sizeofrep); + int cc= mpn_get_str (cf_stringtemp, 16, (mp_limb_t *) (((long *) &a) + 2), sizeofrep); char* cf_stringtemp2; if (lessZero)