11 February 2020 11:47:37 AM BVEC_TEST C++ version Test the BVEC library. BVEC_ADD_TEST BVEC_ADD adds binary vectors representing integers; I J I + J BVEC_ADD -57 92 35 35 66 12 78 78 -17 -87 -104 -104 -49 -78 -127 -127 -92 27 -65 -65 -88 -10 -98 -98 -20 51 31 31 60 -100 -40 -40 80 -30 50 50 -81 -98 -179 -179 BVEC_COMPLEMENT2_TEST BVEC_COMPLEMENT2 returns the two's complement of a (signed) binary vector; I = -57 J = 57 1111000111 0000111001 I = 92 J = -92 0001011100 1110100100 I = 66 J = -66 0001000010 1110111110 I = 12 J = -12 0000001100 1111110100 I = -17 J = 17 1111101111 0000010001 BVEC_MUL_TEST BVEC_MUL multiplies binary vectors representing integers; I J I * J BVEC_MUL -57 92 -5244 -5244 66 12 792 792 -17 -87 1479 1479 -49 -78 3822 3822 -92 27 -2484 -2484 -88 -10 880 880 -20 51 -1020 -1020 60 -100 -6000 -6000 80 -30 -2400 -2400 -81 -98 7938 7938 BVEC_NEXT_TEST BVEC_NEXT computes the 'next' BVEC. 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 BVEC_NEXT_GRLEX_TEST BVEC_NEXT_GRLEX computes binary vectors in GRLEX order. 0: 0000 1: 0001 2: 0010 3: 0100 4: 1000 5: 0011 6: 0101 7: 0110 8: 1001 9: 1010 10: 1100 11: 0111 12: 1011 13: 1101 14: 1110 15: 1111 16: 0000 BVEC_PRINT_TEST BVEC_PRINT prints a binary vector. BVEC: 1001011100 BVEC_SUB_TEST BVEC_SUB subtracts binary vectors representing integers; I J I - J BVEC_SUB -57 92 -149 -149 66 12 54 54 -17 -87 70 70 -49 -78 29 29 -92 27 -119 -119 -88 -10 -78 -78 -20 51 -71 -71 60 -100 160 160 80 -30 110 110 -81 -98 17 17 BVEC_TO_I4_TEST BVEC_TO_I4 converts a signed binary vector to an integer; I --> BVEC --> I -3 1111111101 -3 -2 1111111110 -2 -1 1111111111 -1 0 0000000000 0 1 0000000001 1 2 0000000010 2 3 0000000011 3 4 0000000100 4 5 0000000101 5 6 0000000110 6 7 0000000111 7 8 0000001000 8 9 0000001001 9 10 0000001010 10 BVEC_UNIFORM_NEW_TEST BVEC_UNIFORM_NEW computes a binary vector. The initial seed is 123456789 1000111110 1110010111 0011101101 0001001011 0101101100 1010010001 0010111011 1111110001 0010000111 0011000101 I4_BCLR_TEST I4_BCLR sets a given bit to 0. Working on I4 = 101 Pos Digit I4_BCLR 0 0 100 1 0 101 2 0 97 3 0 101 4 0 101 5 0 69 6 0 37 7 0 101 8 0 101 9 0 101 10 0 101 11 0 101 12 0 101 13 0 101 14 0 101 15 0 101 16 0 101 17 0 101 18 0 101 19 0 101 20 0 101 21 0 101 22 0 101 23 0 101 24 0 101 25 1 101 26 1 101 27 0 101 28 0 101 29 1 101 30 0 101 31 1 101 Working on I4 = -31 Pos Digit I4_BCLR 0 1 -32 1 1 -31 2 1 -31 3 1 -31 4 1 -31 5 1 -63 6 1 -95 7 1 -159 8 1 -287 9 1 -543 10 1 -1055 11 1 -2079 12 1 -4127 13 1 -8223 14 1 -16415 15 1 -32799 16 1 -65567 17 1 -131103 18 1 -262175 19 1 -524319 20 1 -1048607 21 1 -2097183 22 1 -4194335 23 1 -8388639 24 1 -16777247 25 1 -33554463 26 1 -67108895 27 0 -134217759 28 0 -268435487 29 0 -536870943 30 0 -1073741855 31 1 2147483617 I4_BSET_TEST I4_BSET sets a given bit to 0. Working on I4 = 101 Pos Digit I4_BSET 0 0 101 1 0 103 2 0 101 3 0 109 4 0 117 5 0 101 6 0 101 7 0 229 8 0 357 9 0 613 10 0 1125 11 0 2149 12 0 4197 13 0 8293 14 0 16485 15 0 32869 16 0 65637 17 0 131173 18 0 262245 19 0 524389 20 0 1048677 21 0 2097253 22 0 4194405 23 0 8388709 24 0 16777317 25 1 33554533 26 1 67108965 27 0 134217829 28 0 268435557 29 1 536871013 30 0 1073741925 31 1 -2147483547 Working on I4 = -31 Pos Digit I4_BSET 0 1 -31 1 1 -29 2 1 -27 3 1 -23 4 1 -15 5 1 -31 6 1 -31 7 1 -31 8 1 -31 9 1 -31 10 1 -31 11 1 -31 12 1 -31 13 1 -31 14 1 -31 15 1 -31 16 1 -31 17 1 -31 18 1 -31 19 1 -31 20 1 -31 21 1 -31 22 1 -31 23 1 -31 24 1 -31 25 1 -31 26 1 -31 27 0 -31 28 0 -31 29 0 -31 30 0 -31 31 1 -31 I4_BTEST_TEST I4_BTEST reports whether a given bit is 0 or 1. Analyze the integer I4 = 101 Pos Digit I4_BTEST 0 0 1 1 0 0 2 0 1 3 0 0 4 0 0 5 0 1 6 0 1 7 0 0 8 0 0 9 0 0 10 0 0 11 0 0 12 0 0 13 0 0 14 0 0 15 0 0 16 0 0 17 0 0 18 0 0 19 0 0 20 0 0 21 0 0 22 0 0 23 0 0 24 0 0 25 1 0 26 1 0 27 0 0 28 0 0 29 1 0 30 0 0 31 1 0 Analyze the integer I4 = -31 Pos Digit I4_BTEST 0 1 1 1 1 0 2 1 0 3 1 0 4 1 0 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 1 1 24 1 1 25 1 1 26 1 1 27 0 1 28 0 1 29 0 1 30 0 1 31 1 1 I4_TO_BVEC_TEST I4_TO_BVEC converts an integer to a signed binary vector; I --> BVEC --> I -3 1111111101 -3 -2 1111111110 -2 -1 1111111111 -1 0 0000000000 0 1 0000000001 1 2 0000000010 2 3 0000000011 3 4 0000000100 4 5 0000000101 5 6 0000000110 6 7 0000000111 7 8 0000001000 8 9 0000001001 9 10 0000001010 10 BVEC_TEST Normal end of execution. 11 February 2020 11:47:37 AM