39 #ifndef headerfilettmathtypes 40 #define headerfilettmathtypes 73 #define TTMATH_MAJOR_VER 0 82 #define TTMATH_MINOR_VER 9 91 #define TTMATH_REVISION_VER 4 102 #define TTMATH_PRERELEASE_VER 1 110 #if !defined TTMATH_PLATFORM32 && !defined TTMATH_PLATFORM64 112 #if !defined _M_X64 && !defined __x86_64__ 120 #define TTMATH_PLATFORM32 125 #define TTMATH_PLATFORM64 140 #ifndef TTMATH_FORCEASM 142 #if !defined __i386__ && !defined _X86_ && !defined _M_IX86 && !defined __x86_64__ && !defined _M_X64 160 #if !defined _MSC_VER && !defined __GNUC__ 175 #ifdef TTMATH_PLATFORM32 180 typedef unsigned int uint;
181 typedef signed int sint;
189 typedef unsigned long long int ulint;
190 typedef signed long long int slint;
194 typedef uint64_t ulint;
195 typedef int64_t slint;
201 #define TTMATH_BITS_PER_UINT 32u 206 #define TTMATH_UINT_HIGHEST_BIT 2147483648u 212 #define TTMATH_UINT_MAX_VALUE 4294967295u 219 #define TTMATH_BUILTIN_VARIABLES_SIZE 256u 226 #define TTMATH_BITS(min_bits) ((min_bits-1)/32 + 1) 232 typedef unsigned __int64
uint;
233 typedef signed __int64
sint;
253 #define TTMATH_BITS_PER_UINT 64ul 258 #define TTMATH_UINT_HIGHEST_BIT 9223372036854775808ul 264 #define TTMATH_UINT_MAX_VALUE 18446744073709551615ul 271 #define TTMATH_BUILTIN_VARIABLES_SIZE 128ul 278 #define TTMATH_BITS(min_bits) ((min_bits-1)/64 + 1) 284 #if defined(TTMATH_MULTITHREADS) && !defined(TTMATH_MULTITHREADS_NOSYNC) 285 #if !defined(TTMATH_POSIX_THREADS) && !defined(TTMATH_WIN32_THREADS) 288 #define TTMATH_WIN32_THREADS 289 #elif defined(unix) || defined(__unix__) || defined(__unix) 290 #define TTMATH_POSIX_THREADS 310 #define TTMATH_ARITHMETIC_MAX_LOOP 10000 319 #ifdef TTMATH_DEBUG_LOG 321 #define TTMATH_USE_KARATSUBA_MULTIPLICATION_FROM_SIZE 3 324 #define TTMATH_USE_KARATSUBA_MULTIPLICATION_FROM_SIZE 3 326 #define TTMATH_USE_KARATSUBA_MULTIPLICATION_FROM_SIZE 5 338 #define TTMATH_GAMMA_BOUNDARY 2000 373 err_nothing_has_read,
374 err_unknown_character,
375 err_unexpected_final_bracket,
377 err_unknown_variable,
378 err_division_by_zero,
381 err_unknown_function,
382 err_unknown_operator,
383 err_unexpected_semicolon_operator,
384 err_improper_amount_of_arguments,
385 err_improper_argument,
393 err_must_be_only_one_value,
396 err_still_calculating,
397 err_in_short_form_used_function,
545 virtual bool WasStopSignal()
const volatile {
return false; }
565 std::string Where()
const 570 std::ostringstream result;
571 result << file <<
":" << line;
605 std::string Where()
const 607 return ExceptionInfo::Where();
637 std::string Where()
const 639 return ExceptionInfo::Where();
656 #if defined DEBUG || defined _DEBUG 663 #if defined(__FILE__) && defined(__LINE__) 665 #define TTMATH_REFERENCE_ASSERT(expression) \ 666 if( &(expression) == this ) throw ttmath::ReferenceError(__FILE__, __LINE__); 668 #define TTMATH_ASSERT(expression) \ 669 if( !(expression) ) throw ttmath::RuntimeError(__FILE__, __LINE__); 673 #define TTMATH_REFERENCE_ASSERT(expression) \ 674 if( &(expression) == this ) throw ReferenceError(); 676 #define TTMATH_ASSERT(expression) \ 677 if( !(expression) ) throw RuntimeError(); 681 #define TTMATH_REFERENCE_ASSERT(expression) 682 #define TTMATH_ASSERT(expression) 687 #ifdef TTMATH_DEBUG_LOG 688 #define TTMATH_LOG(msg) PrintLog(msg, std::cout); 689 #define TTMATH_LOGC(msg, carry) PrintLog(msg, carry, std::cout); 690 #define TTMATH_VECTOR_LOG(msg, vector, len) PrintVectorLog(msg, std::cout, vector, len); 691 #define TTMATH_VECTOR_LOGC(msg, carry, vector, len) PrintVectorLog(msg, carry, std::cout, vector, len); 693 #define TTMATH_LOG(msg) 694 #define TTMATH_LOGC(msg, carry) 695 #define TTMATH_VECTOR_LOG(msg, vector, len) 696 #define TTMATH_VECTOR_LOGC(msg, carry, vector, len)
a namespace for the TTMath library