| @@ -557,10 +557,10 @@ template<typename T> real_t<T> real_t<T>::operator *(real_t<T> const &x) const | |||||
| prev = carry; | prev = carry; | ||||
| carry += (uint64_t)m_mantissa[bigit_count() - 1 - j] | carry += (uint64_t)m_mantissa[bigit_count() - 1 - j] | ||||
| * (uint64_t)x.m_mantissa[j]; | * (uint64_t)x.m_mantissa[j]; | ||||
| hicarry += (carry<prev); | |||||
| hicarry += (carry < prev); | |||||
| } | } | ||||
| if ((carry+bigit_count()) >> bigit_bits() != carry >> bigit_bits()) | |||||
| if ((carry + bigit_count()) >> bigit_bits() != carry >> bigit_bits()) | |||||
| { | { | ||||
| carry = 0; hicarry = 0; | carry = 0; hicarry = 0; | ||||
| for (int i = 0; i < bigit_count(); ++i) | for (int i = 0; i < bigit_count(); ++i) | ||||
| @@ -582,7 +582,6 @@ template<typename T> real_t<T> real_t<T>::operator *(real_t<T> const &x) const | |||||
| carry |= hicarry << bigit_bits(); | carry |= hicarry << bigit_bits(); | ||||
| hicarry >>= bigit_bits(); | hicarry >>= bigit_bits(); | ||||
| /* Multiply the other components */ | /* Multiply the other components */ | ||||
| for (int i = 0; i < bigit_count(); ++i) | for (int i = 0; i < bigit_count(); ++i) | ||||
| { | { | ||||
| @@ -591,12 +590,12 @@ template<typename T> real_t<T> real_t<T>::operator *(real_t<T> const &x) const | |||||
| prev = carry; | prev = carry; | ||||
| carry += (uint64_t)m_mantissa[bigit_count() - 1 - j] | carry += (uint64_t)m_mantissa[bigit_count() - 1 - j] | ||||
| * (uint64_t)x.m_mantissa[j - 1 - i]; | * (uint64_t)x.m_mantissa[j - 1 - i]; | ||||
| hicarry += (carry<prev); | |||||
| hicarry += (carry < prev); | |||||
| } | } | ||||
| prev = carry; | prev = carry; | ||||
| carry += m_mantissa[bigit_count() - 1 - i]; | carry += m_mantissa[bigit_count() - 1 - i]; | ||||
| carry += x.m_mantissa[bigit_count() - 1 - i]; | carry += x.m_mantissa[bigit_count() - 1 - i]; | ||||
| hicarry += (carry<prev); | |||||
| hicarry += (carry < prev); | |||||
| ret.m_mantissa[bigit_count() - 1 - i] = carry & ~(bigit_t)0; | ret.m_mantissa[bigit_count() - 1 - i] = carry & ~(bigit_t)0; | ||||
| carry >>= bigit_bits(); | carry >>= bigit_bits(); | ||||
| carry |= hicarry << bigit_bits(); | carry |= hicarry << bigit_bits(); | ||||