Fix gcdrat to return correct optimization only

This commit is contained in:
uhliksk 2019-03-14 04:27:03 +01:00
commit 24f3b89337

View file

@ -44,7 +44,7 @@ void gcdrat( PRAT *pa, int32_t precision)
PNUMBER pgcd= nullptr;
PRAT a= nullptr;
a=*pa;
DUPRAT(a,*pa);
pgcd = gcd( a->pp, a->pq );
if ( !zernum( pgcd ) )
@ -54,9 +54,14 @@ void gcdrat( PRAT *pa, int32_t precision)
}
destroynum( pgcd );
*pa=a;
RENORMALIZE(*pa);
RENORMALIZE(a);
if (rat_equ(*pa, a, precision))
{
DUPRAT(*pa, a);
}
destroyrat(a);
}
//-----------------------------------------------------------------------------