| 71 | */ |
| 72 | template<uint value_size> |
| 73 | class UInt |
| 74 | { |
| 75 | public: |
| 76 | |
| 77 | /*! |
| 78 | buffer for the integer value |
| 79 | table[0] - the lowest word of the value |
| 80 | */ |
| 81 | uint table[value_size]; |
| 82 | |
| 83 | |
| 84 | |
| 85 | /*! |
| 86 | some methods used for debugging purposes |
| 87 | */ |
| 88 | |
| 89 | |
| 90 | /*! |
| 91 | this method is used when macro TTMATH_DEBUG_LOG is defined |
| 92 | */ |
| 93 | template<class char_type, class ostream_type> |
| 94 | static void PrintVectorLog(const char_type * msg, ostream_type & output, const uint * vector, uint vector_len) |
| 95 | { |
| 96 | output << msg << std::endl; |
| 97 | |
| 98 | for(uint i=0 ; i<vector_len ; ++i) |
| 99 | output << " table[" << i << "]: " << vector[i] << std::endl; |
| 100 | } |
| 101 | |
| 102 | |
| 103 | /*! |
| 104 | this method is used when macro TTMATH_DEBUG_LOG is defined |
| 105 | */ |
| 106 | template<class char_type, class ostream_type> |
| 107 | static void PrintVectorLog(const char_type * msg, uint carry, ostream_type & output, const uint * vector, uint vector_len) |
| 108 | { |
| 109 | PrintVectorLog(msg, output, vector, vector_len); |
| 110 | output << " carry: " << carry << std::endl; |
| 111 | } |
| 112 | |
| 113 | |
| 114 | /*! |
| 115 | this method is used when macro TTMATH_DEBUG_LOG is defined |
| 116 | */ |
| 117 | template<class char_type, class ostream_type> |
| 118 | void PrintLog(const char_type * msg, ostream_type & output) const |
| 119 | { |
| 120 | PrintVectorLog(msg, output, table, value_size); |
| 121 | } |
| 122 | |
| 123 | |
| 124 | /*! |
| 125 | this method is used when macro TTMATH_DEBUG_LOG is defined |
| 126 | */ |
| 127 | template<class char_type, class ostream_type> |
| 128 | void PrintLog(const char_type * msg, uint carry, ostream_type & output) const |
| 129 | { |
| 130 | PrintVectorLog(msg, output, table, value_size); |
nothing calls this directly
no test coverage detected