From 355384af24bfdb6e1346a83011daf5b5381aa2eb Mon Sep 17 00:00:00 2001 From: Mike Buland Date: Thu, 30 Oct 2014 13:34:06 -0600 Subject: Divisors between 0 and 1 break division now. --- src/number.cpp | 3 ++- src/packedintarray.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/number.cpp b/src/number.cpp index c23466e..be9b8be 100644 --- a/src/number.cpp +++ b/src/number.cpp @@ -483,9 +483,10 @@ void Number::divide( const Number &rhs, Number &q, Number &r ) const for(; nNum.aInt[jtop] == 0; jtop++ ) { } // Bu::println("Computing remainder fraction from %1 to %2") // .arg( -iAnchor-1 ).arg( jtop ); + r.aFrac.clear(); for( int j = -iAnchor-1, k = 0; j >= jtop && k < r.iScale; j--, k++ ) { - if( j <= nNum.aInt.getSize() ) + if( j < nNum.aInt.getSize() ) { r.aFrac.set( k, nNum.aInt[j] ); // Bu::println("setting %1 to %2").arg( k ).arg( nNum.aInt[j] ); diff --git a/src/packedintarray.h b/src/packedintarray.h index 4ac0bc7..eb7b25a 100644 --- a/src/packedintarray.h +++ b/src/packedintarray.h @@ -21,6 +21,7 @@ public: void set( int idx, Unit i ); void insert( int idx, Unit i ); int getSize() const { return iCount; } + void setSize( int iNewSize ); void set( const PackedIntArray &rSrc, int iStart, int iSize ); void set( const PackedIntArray &rSrc ); void copy( int iDest, const PackedIntArray &rSrc, int iStart, int iSize ); -- cgit v1.2.3