| | | Compiling...
cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
cl : Command line warning D9002 : ignoring unknown option '/arch:SSE2'
testSize.cpp
testLimits.cpp
testFunction.cpp
testError.cpp
..\..\..\..\HalfTest\testError.cpp(39) : warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
..\..\..\..\HalfTest\testError.cpp(109) : warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
..\..\..\..\HalfTest\testError.cpp(123) : warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
..\..\..\..\HalfTest\testError.cpp(158) : warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
testClassification.cpp
..\..\..\..\HalfTest\testClassification.cpp(129) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testClassification.cpp(137) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testClassification.cpp(138) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testClassification.cpp(139) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testClassification.cpp(146) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testClassification.cpp(154) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testClassification.cpp(155) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testClassification.cpp(156) : warning C4305: 'argument' : truncation from 'double' to 'float'
testBitPatterns.cpp
..\..\..\..\HalfTest\testBitPatterns.cpp(150) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(153) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(156) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(159) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(162) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(165) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(168) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(171) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(174) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(177) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(180) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(183) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(200) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(203) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(212) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(215) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(232) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(235) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(244) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(247) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(264) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(267) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(270) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(284) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(287) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(290) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(321) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(324) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(327) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(330) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(333) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(336) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(339) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(342) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(345) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(348) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(351) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(354) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(371) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(374) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(383) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(386) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(403) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(406) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(415) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(418) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(435) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(438) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(441) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(455) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(458) : warning C4305: 'argument' : truncation from 'double' to 'float'
..\..\..\..\HalfTest\testBitPatterns.cpp(461) : warning C4305: 'argument' : truncation from 'double' to 'float'
testArithmetic.cpp
main.cpp
Generating Code...
Linking...
Embedding manifest...
Running HalfTest unit tests...
testing type half:
size and alignment
sizeof (half) = 2
alignof (half) = 2
ok
basic arithmetic operations:
f1 = 1, f2 = 2, h1 = 3, h2 = 4
h1 = f1 + f2: 3
h2 += f1: 5
h2 = h1 + h2: 8
h2 += h1: 11
h1 = h2: 11
h2 = -h1: -11
ok
float-to-half conversion error for normalized half numbers
max error = 0.000487566
max expected error = 0.00048828
ok
float-to-half conversion error for denormalized half numbers
max error = 2.98023e-008
max expected error = 2.98023e-008
ok
rounding normalized numbers to 10-bit precision
max error = 0
max expected error = 0
ok
rounding denormalized numbers to 10-bit precision
max error = 0
max expected error = 0
ok
rounding normalized numbers to 9-bit precision
max error = 0.000975609
max expected error = 0.00097656
ok
rounding denormalized numbers to 9-bit precision
max error = 5.96046e-008
max expected error = 5.96046e-008
ok
rounding normalized numbers to 1-bit precision
max error = 0.249634
max expected error = 0.249999
ok
rounding denormalized numbers to 1-bit precision
max error = 1.52588e-005
max expected error = 1.52588e-005
ok
rounding normalized numbers to 0-bit precision
max error = 0.499756
max expected error = 0.499999
ok
rounding denormalized numbers to 0-bit precision
max error = 3.05176e-005
max expected error = 3.05176e-005
ok
specific bit patterns
1 0 01111111 00000000000000000000000 0 01111 0000000000
1 0 01111111 00000000000000000000000
1.0009766 0 01111111 00000000010000000000000 0 01111 0000000001
1.0009766 0 01111111 00000000010000000000000
1.0004883 0 01111111 00000000001000000000000 0 01111 0000000000
1 0 01111111 00000000000000000000000
1.0004882 0 01111111 00000000000111111111111 0 01111 0000000000
1 0 01111111 00000000000000000000000
1.0004884 0 01111111 00000000001000000000001 0 01111 0000000001
1.0009766 0 01111111 00000000010000000000000
1.0019531 0 01111111 00000000100000000000000 0 01111 0000000010
1.0019531 0 01111111 00000000100000000000000
1.0014648 0 01111111 00000000011000000000000 0 01111 0000000010
1.0019531 0 01111111 00000000100000000000000
1.0014647 0 01111111 00000000010111111111111 0 01111 0000000001
1.0009766 0 01111111 00000000010000000000000
1.001465 0 01111111 00000000011000000000001 0 01111 0000000010
1.0019531 0 01111111 00000000100000000000000
0.99951172 0 01111110 11111111110000000000000 0 01110 1111111111
0.99951172 0 01111110 11111111110000000000000
0.99975586 0 01111110 11111111111000000000000 0 01111 0000000000
1 0 01111111 00000000000000000000000
0.99975592 0 01111110 11111111111000000000001 0 01111 0000000000
1 0 01111111 00000000000000000000000
0.9997558 0 01111110 11111111110111111111111 0 01110 1111111111
0.99951172 0 01111110 11111111110000000000000
5.9604645e-008 0 01100111 00000000000000000000000 0 00000 0000000001
5.9604645e-008 0 01100111 00000000000000000000000
1.1920929e-007 0 01101000 00000000000000000000000 0 00000 0000000010
1.1920929e-007 0 01101000 00000000000000000000000
8.9406967e-008 0 01100111 10000000000000000000000 0 00000 0000000010
1.1920929e-007 0 01101000 00000000000000000000000
8.9401006e-008 0 01100111 01111111111110010111001 0 00000 0000000001
5.9604645e-008 0 01100111 00000000000000000000000
8.9412929e-008 0 01100111 10000000000001101000111 0 00000 0000000010
1.1920929e-007 0 01101000 00000000000000000000000
0 0 00000000 00000000000000000000000 0 00000 0000000000
0 0 00000000 00000000000000000000000
2.9802322e-008 0 01100110 00000000000000000000000 0 00000 0000000000
0 0 00000000 00000000000000000000000
2.9808284e-008 0 01100110 00000000000011010001110 0 00000 0000000001
5.9604645e-008 0 01100111 00000000000000000000000
2.9796363e-008 0 01100101 11111111111001011100101 0 00000 0000000000
0 0 00000000 00000000000000000000000
6.1035156e-005 0 01110001 00000000000000000000000 0 00001 0000000000
6.1035156e-005 0 01110001 00000000000000000000000
6.1094761e-005 0 01110001 00000000010000000000000 0 00001 0000000001
6.1094761e-005 0 01110001 00000000010000000000000
6.1064959e-005 0 01110001 00000000001000000000000 0 00001 0000000000
6.1035156e-005 0 01110001 00000000000000000000000
6.1064951e-005 0 01110001 00000000000111111111111 0 00001 0000000000
6.1035156e-005 0 01110001 00000000000000000000000
6.1064966e-005 0 01110001 00000000001000000000001 0 00001 0000000001
6.1094761e-005 0 01110001 00000000010000000000000
6.0975552e-005 0 01110000 11111111100000000000000 0 00000 1111111111
6.0975552e-005 0 01110000 11111111100000000000000
6.1005354e-005 0 01110000 11111111110000000000000 0 00001 0000000000
6.1035156e-005 0 01110001 00000000000000000000000
6.1005358e-005 0 01110000 11111111110000000000001 0 00001 0000000000
6.1035156e-005 0 01110001 00000000000000000000000
6.100535e-005 0 01110000 11111111101111111111111 0 00000 1111111111
6.0975552e-005 0 01110000 11111111100000000000000
2 0 10000000 00000000000000000000000 0 10000 0000000000
2 0 10000000 00000000000000000000000
3 0 10000000 10000000000000000000000 0 10000 1000000000
3 0 10000000 10000000000000000000000
10 0 10000010 01000000000000000000000 0 10010 0100000000
10 0 10000010 01000000000000000000000
0.1 0 01111011 10011001100110011001101 0 01011 1001100110
0.099975586 0 01111011 10011001100000000000000
0.2 0 01111100 10011001100110011001101 0 01100 1001100110
0.19995117 0 01111100 10011001100000000000000
0.30000001 0 01111101 00110011001100110011010 0 01101 0011001101
0.30004883 0 01111101 00110011010000000000000
65504 0 10001110 11111111110000000000000 0 11110 1111111111
65504 0 10001110 11111111110000000000000
65536 0 10001111 00000000000000000000000 0 11111 0000000000
1.#INF 0 11111111 00000000000000000000000
65520 0 10001110 11111111111000000000000 0 11111 0000000000
1.#INF 0 11111111 00000000000000000000000
65519.996 0 10001110 11111111110111111111111 0 11110 1111111111
65504 0 10001110 11111111110000000000000
65520.004 0 10001110 11111111111000000000001 0 11111 0000000000
1.#INF 0 11111111 00000000000000000000000
4.290774e+009 0 10011110 11111111100000000000100 0 11111 0000000000
1.#INF 0 11111111 00000000000000000000000
3.4028235e+038 0 11111110 11111111111111111111111 0 11111 0000000000
1.#INF 0 11111111 00000000000000000000000
1.#INF 0 11111111 00000000000000000000000 0 11111 0000000000
1.#INF 0 11111111 00000000000000000000000
1.#QNAN 0 11111111 11111111111111111111111 0 11111 1111111111
1.#QNAN 0 11111111 11111111110000000000000
1.#QNAN 0 11111111 10101010101010101010101 0 11111 1010101010
1.#QNAN 0 11111111 10101010100000000000000
-1 1 01111111 00000000000000000000000 1 01111 0000000000
-1 1 01111111 00000000000000000000000
-1.0009766 1 01111111 00000000010000000000000 1 01111 0000000001
-1.0009766 1 01111111 00000000010000000000000
-1.0004883 1 01111111 00000000001000000000000 1 01111 0000000000
-1 1 01111111 00000000000000000000000
-1.0004882 1 01111111 00000000000111111111111 1 01111 0000000000
-1 1 01111111 00000000000000000000000
-1.0004884 1 01111111 00000000001000000000001 1 01111 0000000001
-1.0009766 1 01111111 00000000010000000000000
-1.0019531 1 01111111 00000000100000000000000 1 01111 0000000010
-1.0019531 1 01111111 00000000100000000000000
-1.0014648 1 01111111 00000000011000000000000 1 01111 0000000010
-1.0019531 1 01111111 00000000100000000000000
-1.0014647 1 01111111 00000000010111111111111 1 01111 0000000001
-1.0009766 1 01111111 00000000010000000000000
-1.001465 1 01111111 00000000011000000000001 1 01111 0000000010
-1.0019531 1 01111111 00000000100000000000000
-0.99951172 1 01111110 11111111110000000000000 1 01110 1111111111
-0.99951172 1 01111110 11111111110000000000000
-0.99975586 1 01111110 11111111111000000000000 1 01111 0000000000
-1 1 01111111 00000000000000000000000
-0.99975592 1 01111110 11111111111000000000001 1 01111 0000000000
-1 1 01111111 00000000000000000000000
-0.9997558 1 01111110 11111111110111111111111 1 01110 1111111111
-0.99951172 1 01111110 11111111110000000000000
-5.9604645e-008 1 01100111 00000000000000000000000 1 00000 0000000001
-5.9604645e-008 1 01100111 00000000000000000000000
-1.1920929e-007 1 01101000 00000000000000000000000 1 00000 0000000010
-1.1920929e-007 1 01101000 00000000000000000000000
-8.9406967e-008 1 01100111 10000000000000000000000 1 00000 0000000010
-1.1920929e-007 1 01101000 00000000000000000000000
-8.9401006e-008 1 01100111 01111111111110010111001 1 00000 0000000001
-5.9604645e-008 1 01100111 00000000000000000000000
-8.9412929e-008 1 01100111 10000000000001101000111 1 00000 0000000010
-1.1920929e-007 1 01101000 00000000000000000000000
-0 1 00000000 00000000000000000000000 1 00000 0000000000
-0 1 00000000 00000000000000000000000
-2.9802322e-008 1 01100110 00000000000000000000000 1 00000 0000000000
-0 1 00000000 00000000000000000000000
-2.9808284e-008 1 01100110 00000000000011010001110 1 00000 0000000001
-5.9604645e-008 1 01100111 00000000000000000000000
-2.9796363e-008 1 01100101 11111111111001011100101 1 00000 0000000000
-0 1 00000000 00000000000000000000000
-6.1035156e-005 1 01110001 00000000000000000000000 1 00001 0000000000
-6.1035156e-005 1 01110001 00000000000000000000000
-6.1094761e-005 1 01110001 00000000010000000000000 1 00001 0000000001
-6.1094761e-005 1 01110001 00000000010000000000000
-6.1064959e-005 1 01110001 00000000001000000000000 1 00001 0000000000
-6.1035156e-005 1 01110001 00000000000000000000000
-6.1064951e-005 1 01110001 00000000000111111111111 1 00001 0000000000
-6.1035156e-005 1 01110001 00000000000000000000000
-6.1064966e-005 1 01110001 00000000001000000000001 1 00001 0000000001
-6.1094761e-005 1 01110001 00000000010000000000000
-6.0975552e-005 1 01110000 11111111100000000000000 1 00000 1111111111
-6.0975552e-005 1 01110000 11111111100000000000000
-6.1005354e-005 1 01110000 11111111110000000000000 1 00001 0000000000
-6.1035156e-005 1 01110001 00000000000000000000000
-6.1005358e-005 1 01110000 11111111110000000000001 1 00001 0000000000
-6.1035156e-005 1 01110001 00000000000000000000000
-6.100535e-005 1 01110000 11111111101111111111111 1 00000 1111111111
-6.0975552e-005 1 01110000 11111111100000000000000
-2 1 10000000 00000000000000000000000 1 10000 0000000000
-2 1 10000000 00000000000000000000000
-3 1 10000000 10000000000000000000000 1 10000 1000000000
-3 1 10000000 10000000000000000000000
-10 1 10000010 01000000000000000000000 1 10010 0100000000
-10 1 10000010 01000000000000000000000
-0.1 1 01111011 10011001100110011001101 1 01011 1001100110
-0.099975586 1 01111011 10011001100000000000000
-0.2 1 01111100 10011001100110011001101 1 01100 1001100110
-0.19995117 1 01111100 10011001100000000000000
-0.30000001 1 01111101 00110011001100110011010 1 01101 0011001101
-0.30004883 1 01111101 00110011010000000000000
-65504 1 10001110 11111111110000000000000 1 11110 1111111111
-65504 1 10001110 11111111110000000000000
-65536 1 10001111 00000000000000000000000 1 11111 0000000000
-1.#INF 1 11111111 00000000000000000000000
-65520 1 10001110 11111111111000000000000 1 11111 0000000000
-1.#INF 1 11111111 00000000000000000000000
-65519.996 1 10001110 11111111110111111111111 1 11110 1111111111
-65504 1 10001110 11111111110000000000000
-65520.004 1 10001110 11111111111000000000001 1 11111 0000000000
-1.#INF 1 11111111 00000000000000000000000
-4.290774e+009 1 10011110 11111111100000000000100 1 11111 0000000000
-1.#INF 1 11111111 00000000000000000000000
-3.4028235e+038 1 11111110 11111111111111111111111 1 11111 0000000000
-1.#INF 1 11111111 00000000000000000000000
-1.#INF 1 11111111 00000000000000000000000 1 11111 0000000000
-1.#INF 1 11111111 00000000000000000000000
-1.#QNAN 1 11111111 11111111111111111111111 1 11111 1111111111
-1.#QNAN 1 11111111 11111111110000000000000
-1.#QNAN 1 11111111 10101010101010101010101 1 11111 1010101010
-1.#QNAN 1 11111111 10101010100000000000000
ok
classification of bit patterns
0 0 00000 0000000000 finite zero
1 0 01111 0000000000 finite normalized
1.0009766 0 01111 0000000001 finite normalized
5.9604645e-008 0 00000 0000000001 finite denormalized
1.1920929e-007 0 00000 0000000010 finite denormalized
6.1035156e-005 0 00001 0000000000 finite normalized
6.1094761e-005 0 00001 0000000001 finite normalized
6.0975552e-005 0 00000 1111111111 finite denormalized
2 0 10000 0000000000 finite normalized
3 0 10000 1000000000 finite normalized
0.099975586 0 01011 1001100110 finite normalized
0.19995117 0 01100 1001100110 finite normalized
0.30004883 0 01101 0011001101 finite normalized
65504 0 11110 1111111111 finite normalized
1.#INF 0 11111 0000000000 infinity
1.#QNAN 0 11111 1111111111 nan
1.#QNAN 0 11111 1010101010 nan
-1 1 01111 0000000000 finite normalized negative
-1.0009766 1 01111 0000000001 finite normalized negative
-5.9604645e-008 1 00000 0000000001 finite denormalized negative
-1.1920929e-007 1 00000 0000000010 finite denormalized negative
-6.1035156e-005 1 00001 0000000000 finite normalized negative
-6.1094761e-005 1 00001 0000000001 finite normalized negative
-6.0975552e-005 1 00000 1111111111 finite denormalized negative
-2 1 10000 0000000000 finite normalized negative
-3 1 10000 1000000000 finite normalized negative
-0.099975586 1 01011 1001100110 finite normalized negative
-0.19995117 1 01100 1001100110 finite normalized negative
-0.30004883 1 01101 0011001101 finite normalized negative
-65504 1 11110 1111111111 finite normalized negative
-1.#INF 1 11111 0000000000 infinity negative
-1.#QNAN 1 11111 1111111111 nan negative
-1.#QNAN 1 11111 1010101010 nan negative
1.#INF 0 11111 0000000000 infinity
-1.#INF 1 11111 0000000000 infinity negative
1.#QNAN 0 11111 1111111111 nan
1.#QNAN 0 11111 0111111111 nan
ok
values in std::numeric_limits
min_exponent
max_exponent
min_exponent10
max_exponent10
ok
halfFunction
ok
|