diff --git a/CHANGELOG b/CHANGELOG index 7b8201e..1f80b1a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,4 @@ -Version 0.9.2 prerelease (2010.09.22): +Version 0.9.2 (2010.09.23): * fixed: Big::Add() sometimes incorrectly rounded the last bit from its mantissa * fixed: Big::BigAnd() Big::BigOr() Big::BigXor() should have set NaN when the argument was negative (they only returned 2) @@ -8,9 +8,9 @@ Version 0.9.2 prerelease (2010.09.22): in some cases when in the output string the exponent should be equal zero the method changes the exponent to one so the last digit from the mantissa was lost - * fixed: Big::ToDouble(double &) set always +INF (infinity) - when the value was too large (even for negative values) - (it should set -INF in such a case) + * fixed: Big::ToDouble(double &) set always +INF (infinity) + when the value was too large (even for negative values) + (it should set -INF in such a case) * added: some missing operators UInt::operator~() /* bitwise neg */ UInt::operator&() /* bitwise and */ @@ -57,32 +57,32 @@ Version 0.9.2 prerelease (2010.09.22): but you can force using asm version (the same asm as for Microsoft Visual) by defining TTMATH_FORCEASM macro you have to be sure that your compiler accept such an asm format - * added: some missing methods for converting - for UInt<>, Int<> and Big<> classes: - uint ToUInt() - sint ToInt() - ToUInt(uint32_t &) - ToInt(uint32_t &) - ToInt(int32_t &) + * added: some missing methods for converting + for UInt<>, Int<> and Big<> classes: + uint ToUInt() + sint ToInt() + ToUInt(uint32_t &) + ToInt(uint32_t &) + ToInt(int32_t &) ToUInt(uint64_t &) - ToInt(uint64_t &) - ToInt(int64_t &) + ToInt(uint64_t &) + ToInt(int64_t &) FromUInt(uint32_t &) FromInt(uint32_t &) - FromInt(int32_t &) + FromInt(int32_t &) FromUInt(uint64_t &) FromInt(uint64_t &) - FromInt(int64_t &) + FromInt(int64_t &) and appropriate constructors and operators - * added: double Big::ToDouble() /there was only Big::ToDouble(double &) / - uint Big::ToFloat(float &) - float Big::ToFloat() + * added: double Big::ToDouble() /there was only Big::ToDouble(double &) / + uint Big::ToFloat(float &) + float Big::ToFloat() * changed: now asm version is available only on x86 and amd64 (and only for GCC and MS VC compilers) - * removed: macro TTMATH_RELEASE + * removed: macro TTMATH_RELEASE (now the 'release' version is default) for debug version define TTMATH_DEBUG macro TTMATH_DEBUG is also automatically defined when DEBUG or _DEBUG is set - * removed: macro TTMATH_REFERENCE_ASSERT from all methods from public interface + * removed: macro TTMATH_REFERENCE_ASSERT from all methods in public interface Version 0.9.1 (2010.02.07): diff --git a/doxygen.cfg b/doxygen.cfg index 08a935c..200ffea 100644 --- a/doxygen.cfg +++ b/doxygen.cfg @@ -31,7 +31,7 @@ PROJECT_NAME = TTMath # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 0.8.2 +PROJECT_NUMBER = 0.9.2 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff --git a/ttmath/ttmathtypes.h b/ttmath/ttmathtypes.h index a4dce94..0590d2f 100644 --- a/ttmath/ttmathtypes.h +++ b/ttmath/ttmathtypes.h @@ -74,7 +74,7 @@ #define TTMATH_MINOR_VER 9 #define TTMATH_REVISION_VER 2 -#define TTMATH_PRERELEASE_VER 1 +#define TTMATH_PRERELEASE_VER 0 @@ -542,26 +542,13 @@ namespace ttmath In the library is used macro TTMATH_REFERENCE_ASSERT which can throw an exception of this type + ** from version 0.9.2 this macro is removed from all methods + in public interface so you don't have to worry about it ** + If you compile with gcc you can get a small benefit from using method Where() (it returns std::string) with the name and the line of a file where the macro TTMATH_REFERENCE_ASSERT was used) - - What is the 'reference' error? - Some kind of methods use a reference as their argument to another object, - and the another object not always can be the same which is calling, e.g. - Big<1,2> foo(10); - foo.Mul(foo); // this is incorrect - above method Mul is making something more with 'this' object and - 'this' cannot be passed as the argument because the result will be undefined - - macro TTMATH_REFERENCE_ASSERT helps us to solve the above problem - - note! some methods can use 'this' object as the argument - for example this code is correct: - UInt<2> foo(10); - foo.Add(foo); - but there are only few methods which can do that */ class ReferenceError : public std::logic_error, public ExceptionInfo {