From 4cec87deea15e90e465266ee5521b261bdbd5233 Mon Sep 17 00:00:00 2001 From: vermaseren Date: Thu, 9 Jul 2015 14:51:15 +0200 Subject: [PATCH] Dirty,normalize and long numbers in polyratfun --- sources/proces.c | 13 ++++++++----- sources/ratio.c | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/sources/proces.c b/sources/proces.c index c811c8a4..b138835c 100644 --- a/sources/proces.c +++ b/sources/proces.c @@ -4733,7 +4733,8 @@ WORD PrepPoly(PHEAD WORD *term) v = m; *v++ = AR.PolyFun; *v++ = FUNHEAD + 2*(ARGHEAD+sizenum+sizeden+2); - FILLFUN(v); + *v++ = CLEANPRF; + FILLFUN3(v); *v++ = ARGHEAD+2*sizenum+2; *v++ = 0; FILLARG(v); @@ -4757,13 +4758,15 @@ WORD PrepPoly(PHEAD WORD *term) { WORD oldtype = AR.SortType; AR.SortType = SORTHIGHFIRST; -/* poly_ratfun_normalize(BHEAD term); */ - ReadPolyRatFun(BHEAD term); + if ( count > 0 ) + poly_ratfun_normalize(BHEAD term); + else + ReadPolyRatFun(BHEAD term); AR.SortType = oldtype; } goto endofit; /* - #] Two arguments : + #] Two arguments : */ } else { @@ -4784,7 +4787,7 @@ endofit:; } /* - #] PrepPoly : + #] PrepPoly : #[ PolyFunMul : WORD PolyFunMul(term) */ /** diff --git a/sources/ratio.c b/sources/ratio.c index 71cbe96c..c2e74593 100644 --- a/sources/ratio.c +++ b/sources/ratio.c @@ -2644,7 +2644,7 @@ void GCDclean(PHEAD WORD *num, WORD *den) MUNLOCK(ErrorMessageLock); Terminate(-1); } - UnPack((UWORD *)r1,csize3,&csize1,&csize2); + UnPack((UWORD *)r1,csize3,&csize2,&csize1); t2 = r1+ABS(csize3); for ( i = 0; i < csize2; i++ ) r2[i] = t2[i]; r2 += csize2; *r2++ = 1;