| 128 | } |
| 129 | |
| 130 | void test_comparison() |
| 131 | { |
| 132 | VERIFY(half(1.0f) > half(0.5f)); |
| 133 | VERIFY(half(0.5f) < half(1.0f)); |
| 134 | VERIFY(!(half(1.0f) < half(0.5f))); |
| 135 | VERIFY(!(half(0.5f) > half(1.0f))); |
| 136 | |
| 137 | VERIFY(!(half(4.0f) > half(4.0f))); |
| 138 | VERIFY(!(half(4.0f) < half(4.0f))); |
| 139 | |
| 140 | VERIFY(!(half(0.0f) < half(-0.0f))); |
| 141 | VERIFY(!(half(-0.0f) < half(0.0f))); |
| 142 | VERIFY(!(half(0.0f) > half(-0.0f))); |
| 143 | VERIFY(!(half(-0.0f) > half(0.0f))); |
| 144 | |
| 145 | VERIFY(half(0.2f) > half(-1.0f)); |
| 146 | VERIFY(half(-1.0f) < half(0.2f)); |
| 147 | VERIFY(half(-16.0f) < half(-15.0f)); |
| 148 | |
| 149 | VERIFY(half(1.0f) == half(1.0f)); |
| 150 | VERIFY(half(1.0f) != half(2.0f)); |
| 151 | |
| 152 | // Comparisons with NaNs and infinities. |
| 153 | #if !EIGEN_COMP_MSVC |
| 154 | // Visual Studio errors out on divisions by 0 |
| 155 | VERIFY(!(half(0.0 / 0.0) == half(0.0 / 0.0))); |
| 156 | VERIFY(half(0.0 / 0.0) != half(0.0 / 0.0)); |
| 157 | |
| 158 | VERIFY(!(half(1.0) == half(0.0 / 0.0))); |
| 159 | VERIFY(!(half(1.0) < half(0.0 / 0.0))); |
| 160 | VERIFY(!(half(1.0) > half(0.0 / 0.0))); |
| 161 | VERIFY(half(1.0) != half(0.0 / 0.0)); |
| 162 | |
| 163 | VERIFY(half(1.0) < half(1.0 / 0.0)); |
| 164 | VERIFY(half(1.0) > half(-1.0 / 0.0)); |
| 165 | #endif |
| 166 | } |
| 167 | |
| 168 | void test_basic_functions() |
| 169 | { |