3 September 2021 7:40:41.355 PM bvec_test(): FORTRAN90 version Test bvec(). bvec_add_test(): bvec_add() adds binary vectors representing integers; I J I + J BVEC_ADD 71 -74 -3 -3 -48 5 -43 -43 4 31 35 35 -44 -99 -143 -143 50 -26 24 24 -18 -78 -96 -96 -100 35 -65 -65 -65 -57 -122 -122 -81 -13 -94 -94 56 -26 30 30 bvec_complement2_test(): bvec_complement2() returns the two's complement of a (signed) binary vector; I = 77 J = -77 0001001101 1110110011 I = 19 J = -19 0000010011 1111101101 I = 21 J = -21 0000010101 1111101011 I = 55 J = -55 0000110111 1111001001 I = 49 J = -49 0000110001 1111001111 bvec_mul_test() bvec_mul() multiplies binary vectors representing integers; I J I * J BVEC_MUL -17 97 -1649 -1649 -97 -13 1261 1261 -74 -19 1406 1406 66 -86 -5676 -5676 46 81 3726 3726 5 -24 -120 -120 -61 14 -854 -854 79 14 1106 1106 -39 -50 1950 1950 -86 -40 3440 3440 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 8 -49 57 57 -97 -35 -62 -62 -46 -34 -12 -12 54 -46 100 100 62 -29 91 91 -92 9 -101 -101 -54 29 -83 -83 -79 -4 -75 -75 -15 40 -55 -55 -89 85 -174 -174 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_test(): bvec_uniform() computes a binary vector. 0000011001 1101100100 0011110100 1000100010 0111111110 0101001010 1110101111 0110100000 0011100000 1110001101 i4_bclr_test(): i4_bclr() sets a given bit to 0. ibclr() is a FORTRAN90 function which does the same. Working on I4 = 101 Pos Digit I4_BCLR IBCLR 0 0 100 100 1 0 101 101 2 0 97 97 3 0 101 101 4 0 101 101 5 0 69 69 6 0 37 37 7 0 101 101 8 0 101 101 9 0 101 101 10 0 101 101 11 0 101 101 12 0 101 101 13 0 101 101 14 0 101 101 15 0 101 101 16 0 101 101 17 0 101 101 18 0 101 101 19 0 101 101 20 0 101 101 21 0 101 101 22 0 101 101 23 0 101 101 24 0 101 101 25 1 101 101 26 1 101 101 27 0 101 101 28 0 101 101 29 1 101 101 30 0 101 101 31 1 101 101 Working on I4 = -31 Pos Digit I4_BCLR IBCLR 0 1 -32 -32 1 1 -31 -31 2 1 -31 -31 3 1 -31 -31 4 1 -31 -31 5 1 -63 -63 6 1 -95 -95 7 1 -159 -159 8 1 -287 -287 9 1 -543 -543 10 1 -1055 -1055 11 1 -2079 -2079 12 1 -4127 -4127 13 1 -8223 -8223 14 1 -16415 -16415 15 1 -32799 -32799 16 1 -65567 -65567 17 1 -131103 -131103 18 1 -262175 -262175 19 1 -524319 -524319 20 1 -1048607 -1048607 21 1 -2097183 -2097183 22 1 -4194335 -4194335 23 1 -8388639 -8388639 24 1 -16777247 -16777247 25 1 -33554463 -33554463 26 1 -67108895 -67108895 27 0 -134217759 -134217759 28 0 -268435487 -268435487 29 0 -536870943 -536870943 30 0 -1073741855 -1073741855 31 1 2147483617 2147483617 i4_bset_test(): i4_bset() sets a given bit to 0. ibset() is a FORTRAN90 function which does the same. Working on I4 = 101 Pos Digit I4_BSET IBSET 0 0 101 101 1 0 103 103 2 0 101 101 3 0 109 109 4 0 117 117 5 0 101 101 6 0 101 101 7 0 229 229 8 0 357 357 9 0 613 613 10 0 1125 1125 11 0 2149 2149 12 0 4197 4197 13 0 8293 8293 14 0 16485 16485 15 0 32869 32869 16 0 65637 65637 17 0 131173 131173 18 0 262245 262245 19 0 524389 524389 20 0 1048677 1048677 21 0 2097253 2097253 22 0 4194405 4194405 23 0 8388709 8388709 24 0 16777317 16777317 25 1 33554533 33554533 26 1 67108965 67108965 27 0 134217829 134217829 28 0 268435557 268435557 29 1 536871013 536871013 30 0 1073741925 1073741925 31 1 -2147483547 -2147483547 Working on I4 = -31 Pos Digit I4_BSET IBSET 0 1 -31 -31 1 1 -29 -29 2 1 -27 -27 3 1 -23 -23 4 1 -15 -15 5 1 -31 -31 6 1 -31 -31 7 1 -31 -31 8 1 -31 -31 9 1 -31 -31 10 1 -31 -31 11 1 -31 -31 12 1 -31 -31 13 1 -31 -31 14 1 -31 -31 15 1 -31 -31 16 1 -31 -31 17 1 -31 -31 18 1 -31 -31 19 1 -31 -31 20 1 -31 -31 21 1 -31 -31 22 1 -31 -31 23 1 -31 -31 24 1 -31 -31 25 1 -31 -31 26 1 -31 -31 27 0 -31 -31 28 0 -31 -31 29 0 -31 -31 30 0 -31 -31 31 1 -31 -31 i4_btest_test(): i4_btest() reports whether a given bit is 0 or 1. btest() is a FORTRAN90 function which does the same. Analyze the integer I4 = 101 Pos Digit I4_BTEST BTEST 0 0 T T 1 0 F F 2 0 T T 3 0 F F 4 0 F F 5 0 T T 6 0 T T 7 0 F F 8 0 F F 9 0 F F 10 0 F F 11 0 F F 12 0 F F 13 0 F F 14 0 F F 15 0 F F 16 0 F F 17 0 F F 18 0 F F 19 0 F F 20 0 F F 21 0 F F 22 0 F F 23 0 F F 24 0 F F 25 1 F F 26 1 F F 27 0 F F 28 0 F F 29 1 F F 30 0 F F 31 1 F F Analyze the integer I4 = -31 Pos Digit I4_BTEST BTEST 0 1 T T 1 1 F F 2 1 F F 3 1 F F 4 1 F F 5 1 T T 6 1 T T 7 1 T T 8 1 T T 9 1 T T 10 1 T T 11 1 T T 12 1 T T 13 1 T T 14 1 T T 15 1 T T 16 1 T T 17 1 T T 18 1 T T 19 1 T T 20 1 T T 21 1 T T 22 1 T T 23 1 T T 24 1 T T 25 1 T T 26 1 T T 27 0 T T 28 0 T T 29 0 T T 30 0 T T 31 1 T T 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. 3 September 2021 7:40:41.356 PM