Version 0.8.1 (2007.04.17): * fixed: Big::PowFrac(..) didn't return a correct error code (when 'this' was negative) * added: Root(x; index) (and to the parser as well) * added: macro: TTMATH_PRERELEASE_VER (can be either zero or one) * added: UInt::MulInt(int, UInt::&) * added: Big::MulUInt(uint) * changed: Big::MulInt(sint) * added: Big::ToUInt(uint &) * changed: Big::ToInt(sint&) * changed: Factorial() it uses Big::MulUInt() at the beginning (faster now especially more on a 32bit platform) * added: doxygen.cfg for generating a documentation from the doxygen * changed: UInt::Rcl(uint c=0) and UInt::Rcr(uint c=0) into UInt::Rcl2(uint bits, uint c) and UInt::Rcr2(uint bits, uint c) now they can move more than one bit and they are only private * fixed: UInt::Rcl(uint bits, uint c) and UInt::Rcr(uint bits, uint c) didn't correctly return a carry if the 'bits' were equal to 'value_size*TTMATH_BITS_PER_UINT' * changed: UInt::Rcl(uint bits, uint c) and UInt::Rcr(uint bits, uint c) into UInt::Rcl(uint bits, uint c=0) and UInt::Rcr(uint bits, uint c=0) they are faster now when the bits is greater than a half of the TTMATH_BITS_PER_UINT * changed: UInt::CompensationToLeft() it's faster now * changed: more small changes where there were UInt::Rcl(uint c=0) and UInt::Rcr(uint c=0) used * changed: as the Big type uses UInt::Rcl() and UInt::Rcr() a lot then it is much faster now (about 5-25%) * added: ASinh(), ACosh(), ATanh() /ATgh()/, ACoth() /ACtgh()/ and to the parser as well * added: UInt::BitAnd(), UInt::BitOr(), UInt::BitXor(), UInt::BitNot(), Big::BitAnd(), Big::BitOr(), Big::BitXor() * added: to the parser: bitand(), bitor(), bitxor() /band(), bor(), bxor()/ * changed: the way of parsing operators in the mathematical parser (the parser is not too much greedy now) Version 0.8.0 (2007.03.28): * added: into the parser: SetFactorialMax() * added: DegToDeg(deg, min, sec), DegToRad(deg), DegToRad(deg, min, sec), RadToDeg(rad), Ceil(x), Floor(x), Sqrt(x), Sinh(x), Cosh(x), Tanh(x) /Tgh(x)/, Coth(x) /Ctgh(x)/ * changed: class Objects in ttmathobjects.h has been completely rewritten, we can change the names of user-defined variables or functions, and the names are case-sensitive now * added: class History which is used in functions which take a lot of time during calculating e.g. Factorial(x) * added: Tg(x) a wrapper for Tan(x) * changed: CTan(x) is Cot(x) now * added: Ctg(x) a wrapper for Cot(x) * added: ATg(x) a wrapper for ATan(x) * changed: ACTan(x) is ACot(x) now * added: ACtg(x) a wrapper for ACot(x) * added: UInt::PrintTable() (for debugging etc.) * changed: the methods Big::SetPi() Big::SetE() and Big::SetLn2() have been rewritten, now they have 128 32bit words (it's about 1232 valid decimal digits) * fixed: previous values from Big::SetPi() Big::SetE() and Big::SetLn2() were not too much accurate (last 2-3 words were wrong) * added: Big::SetLn10() (128 32bit words as well) * added: macro: TTMATH_BUILTIN_VARIABLES_SIZE which is equal 128u on 32bit platforms and 64ul on 64bit platforms (128/2=64) * added: macros: TTMATH_PLATFORM32 and TTMATH_PLATFORM64 * changed: a small optimisation in UInt::Mul2Big() * added: at the end of ttmath.h: #include "ttmathparser.h" this is for convenience for a programmer, he can only use #include with ttmath.h even if he uses the parser * added: to samples: big.cpp, parser.cpp * added/changes/fixed: in copy-constructors and operators= in Int, Uint and Big (more info in the commit log) * renamed Big::SetDotOne() into Big::Set05() * changes: a few small optimisations in Big * deleted: the word 'virtual' from destructors: UInt, Int, Big (types in this library are not projected to be base-classes for another ones derived from them) * and more small changes (look at the commit log) Version 0.7.2 (2007.03.09): * added: Big::Mod - the remainder from a division * added: Big::Sgn - the 'sign' from the value (-1,0,1) * added: global functions Mod and Sgn too * added: checking whether a user gives a correct value of a variable or function (user-defined variables/functions in the mathematical parser) * added: into the parser: logical operators: > < >= <= == != && || * added: into the parser: logical functions: and() or() not() if() * added: ErrorCode::err_unknown_operator when the parser couldn't read an operator Version 0.7.1 (2007.02.27): * fixed the error 'overflow during printing' which was caused by Big::FromInt(Int value) (the sign has to be set at the end) * fixed many small errors * added ATan (arctan), ACTan (arc ctan) functions Version 0.7.0 (2007.02.24): * finished support for 64bit platforms * added ASin (arcsin), ACos (arccos) functions Version 0.6.4 (2007.01.29): * fixed the problem with a sign in the mathematical parser /-(1) was 1/ * added UInt::AddInt and UInt::SubInt * changed UInt::AddOne and UInt::SubOne (much faster now) * added UInt::SetBitInWord * changed UInt::SetBit (much faster now) * UInt::AddTwoUints renamed to UInt::AddTwoInts * UInt::FindLeadingBit32 renamed to UInt::FindLeadingBitInWord * added UInt::SetBitInWord * UInt::Mul64 renamed to UInt::MulTwoWords * UInt::Div64 renamed to UInt::DivTwoWords * and more small changes in UInt type * start adding support for Amd64 (not finished yet) (added ttmathuint64.h) Version 0.6.3 (2007.01.22): * position of arguments (x and base) in logarithm functions are swapped * it's possible to use any multiplication algorithms in the same time (macros UINT_MUL_VERSION_'X' have gone) * added ExceptionInfo, ReferenceError and RuntimeError classes * the mess in macros has been cleaned up * added TTMATH_RELEASE macro Version 0.6.2 (2007.01.10): * New division algorithm (radix b) where b is 2^32