06 October 2025 6:52:15.352 PM ubvec_test(): Fortran90 version Test ubvec(). MORSE_THUE_TEST MORSE_THUE computes the Morse-Thue numbers. 0110100110 0101101001 0110011010 0110010110 0110100101 1010011001 0110100101 1001101001 0110100110 0101100110 1 NIM_SUM_TEST NIM_SUM computes the Nim sum of two integers. I J Nim(I+J) I1, I2, I3 in decimal: 987 157 838 I1, I2, I3 in binary: 00000000000000000000001111011011 00000000000000000000000010011101 00000000000000000000001101000110 I1, I2, I3 in decimal: 29 907 918 I1, I2, I3 in binary: 00000000000000000000000000011101 00000000000000000000001110001011 00000000000000000000001110010110 I1, I2, I3 in decimal: 508 676 856 I1, I2, I3 in binary: 00000000000000000000000111111100 00000000000000000000001010100100 00000000000000000000001101011000 I1, I2, I3 in decimal: 470 671 841 I1, I2, I3 in binary: 00000000000000000000000111010110 00000000000000000000001010011111 00000000000000000000001101001001 I1, I2, I3 in decimal: 80 942 1022 I1, I2, I3 in binary: 00000000000000000000000001010000 00000000000000000000001110101110 00000000000000000000001111111110 UBVEC_ADD_TEST UBVEC_ADD adds unsigned binary vectors representing unsigned integers; I J K = I + J K = I + J Directly UBVEC_ADD 38 88 126 126 74 41 115 115 60 22 82 82 52 83 135 135 42 4 46 46 99 68 167 167 31 23 54 54 80 81 161 161 46 49 95 95 28 69 97 97 UBVEC_AND_TEST UBVEC_AND computes the AND of two unsigned binary vectors representing unsigned integers; I J K = I AND J 84 2 0 47 15 15 38 45 36 99 76 64 89 66 64 27 46 10 4 50 0 69 18 0 82 63 18 31 46 14 UBVEC_COMPLEMENT1_TEST UBVEC_COMPLEMENT1 returns the 1's complement of an unsigned binary vector. UBVEC Comp1 10001 01110 11110 00001 11100 00011 10111 01000 00111 11000 UBVEC_ENUM_TEST UBVEC_ENUM enumerates unsigned binary vectors of N digits N Number 0 1 1 2 2 4 3 8 4 16 5 32 6 64 7 128 8 256 9 512 10 1024 UBVEC_NEXT_TEST UBVEC_NEXT computes the "next" unsigned binary vector. 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 UBVEC_NEXT_GRAY_TEST UBVEC_NEXT_GRAY returns the next UBVEC in the Gray code. K UBVEC 0 0 0 0 0 1 0 0 0 1 2 0 0 1 1 3 0 0 1 0 4 0 1 1 0 5 0 1 1 1 6 0 1 0 1 7 0 1 0 0 8 1 1 0 0 9 1 1 0 1 10 1 1 1 1 11 1 1 1 0 12 1 0 1 0 13 1 0 1 1 14 1 0 0 1 15 1 0 0 0 UBVEC_NEXT_GRLEX_TEST UBVEC_NEXT_GRLEX computes unsigned 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 UBVEC_OR_TEST UBVEC_OR computes the OR of two unsigned binary vectors representing unsigned integers; I J K = I OR J 71 61 127 65 59 123 14 18 30 95 41 127 44 94 126 26 60 62 42 7 47 92 20 92 68 56 124 51 33 51 UBVEC_PRINT_TEST UBVEC_PRINT prints an unsigned binary vector. UBVEC: 1001011100 UBVEC_RANDOM_TEST UBVEC_RANDOM randomizes an unsigned binary vector. 10001 11110 11100 10111 00111 UBVEC_RANK_GRAY_TEST UBVEC_RANK_GRAY ranks a UBVEC in the Gray ordering. UBVEC Rank 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 3 0 0 0 1 1 2 0 0 1 0 0 7 0 0 1 0 1 6 0 0 1 1 0 4 0 0 1 1 1 5 0 1 0 0 0 15 0 1 0 0 1 14 0 1 0 1 0 12 0 1 0 1 1 13 0 1 1 0 0 8 0 1 1 0 1 9 0 1 1 1 0 11 0 1 1 1 1 10 1 0 0 0 0 31 1 0 0 0 1 30 1 0 0 1 0 28 1 0 0 1 1 29 1 0 1 0 0 24 1 0 1 0 1 25 1 0 1 1 0 27 1 0 1 1 1 26 1 1 0 0 0 16 1 1 0 0 1 17 1 1 0 1 0 19 1 1 0 1 1 18 1 1 1 0 0 23 1 1 1 0 1 22 1 1 1 1 0 20 1 1 1 1 1 21 UBVEC_REVERSE_TEST UBVEC_REVERSE reverses an unsigned binary vector. UBVEC Reversed 10001 10001 11110 01111 11100 00111 10111 11101 00111 11100 UBVEC_TO_UI4_TEST UBVEC_TO_UI4 converts an unsigned binary vector to an unsigned integer; UBVEC --> I 0000000000 0 0000000001 1 0000000010 2 0000000011 3 0000000100 4 0000000101 5 0000000110 6 0000000111 7 0000001000 8 0000001001 9 0000001010 10 UBVEC_UNRANK_GRAY_TEST UBVEC_UNRANK_GRAY unranks a UBVEC. Rank UBVEC 0 0 0 0 0 0 1 0 0 0 0 1 2 0 0 0 1 1 3 0 0 0 1 0 4 0 0 1 1 0 5 0 0 1 1 1 6 0 0 1 0 1 7 0 0 1 0 0 8 0 1 1 0 0 9 0 1 1 0 1 10 0 1 1 1 1 11 0 1 1 1 0 12 0 1 0 1 0 13 0 1 0 1 1 14 0 1 0 0 1 15 0 1 0 0 0 16 1 1 0 0 0 17 1 1 0 0 1 18 1 1 0 1 1 19 1 1 0 1 0 20 1 1 1 1 0 21 1 1 1 1 1 22 1 1 1 0 1 23 1 1 1 0 0 24 1 0 1 0 0 25 1 0 1 0 1 26 1 0 1 1 1 27 1 0 1 1 0 28 1 0 0 1 0 29 1 0 0 1 1 30 1 0 0 0 1 31 1 0 0 0 0 UBVEC_UNRANK_GRLEX_TEST UBVEC_UNRANK_GRLEX returns the UBVEC of given rank in the graded lexicographical ordering. -- -------- 0 0 0 0 0 -- -------- 1 0 0 0 1 2 0 0 1 0 3 0 1 0 0 4 1 0 0 0 -- -------- 5 0 0 1 1 6 0 1 0 1 7 0 1 1 0 8 1 0 0 1 9 1 0 1 0 10 1 1 0 0 -- -------- 11 0 1 1 1 12 1 0 1 1 13 1 1 0 1 14 1 1 1 0 -- -------- 15 1 1 1 1 UBVEC_XOR_TEST UBVEC_XOR computes the exclusive OR of two unsigned binary vectors representing unsigned integers; I J K = I XOR J 46 76 98 53 29 40 58 68 126 9 88 81 28 79 83 86 41 127 93 62 99 22 19 5 66 82 16 24 60 36 UI4_RANK_GRAY_TEST UI4_RANK_GRAY ranks an unsigned I4 in the Gray ordering. UI4 Rank (binary) 0 0 0 0 0 0 0 1 1 0 0 0 0 1 2 3 0 0 0 1 0 3 2 0 0 0 1 1 4 7 0 0 1 0 0 5 6 0 0 1 0 1 6 4 0 0 1 1 0 7 5 0 0 1 1 1 8 15 0 1 0 0 0 9 14 0 1 0 0 1 10 12 0 1 0 1 0 11 13 0 1 0 1 1 12 8 0 1 1 0 0 13 9 0 1 1 0 1 14 11 0 1 1 1 0 15 10 0 1 1 1 1 16 31 1 0 0 0 0 17 30 1 0 0 0 1 18 28 1 0 0 1 0 19 29 1 0 0 1 1 20 24 1 0 1 0 0 21 25 1 0 1 0 1 22 27 1 0 1 1 0 23 26 1 0 1 1 1 24 16 1 1 0 0 0 25 17 1 1 0 0 1 26 19 1 1 0 1 0 27 18 1 1 0 1 1 28 23 1 1 1 0 0 29 22 1 1 1 0 1 30 20 1 1 1 1 0 31 21 1 1 1 1 1 UI4_TO_UBVEC_TEST UI4_TO_UBVEC converts an unsigned integer to an unsigned binary vector; I --> UBVEC 0 0000000000 1 0000000001 2 0000000010 3 0000000011 4 0000000100 5 0000000101 6 0000000110 7 0000000111 8 0000001000 9 0000001001 10 0000001010 UI4_UNRANK_GRAY_TEST UI4_UNRANK_GRAY unranks a Gray code. Rank I (binary) 0 0 0 0 0 0 0 1 1 0 0 0 0 1 2 3 0 0 0 1 1 3 2 0 0 0 1 0 4 6 0 0 1 1 0 5 7 0 0 1 1 1 6 5 0 0 1 0 1 7 4 0 0 1 0 0 8 12 0 1 1 0 0 9 13 0 1 1 0 1 10 15 0 1 1 1 1 11 14 0 1 1 1 0 12 10 0 1 0 1 0 13 11 0 1 0 1 1 14 9 0 1 0 0 1 15 8 0 1 0 0 0 16 24 1 1 0 0 0 17 25 1 1 0 0 1 18 27 1 1 0 1 1 19 26 1 1 0 1 0 20 30 1 1 1 1 0 21 31 1 1 1 1 1 22 29 1 1 1 0 1 23 28 1 1 1 0 0 24 20 1 0 1 0 0 25 21 1 0 1 0 1 26 23 1 0 1 1 1 27 22 1 0 1 1 0 28 18 1 0 0 1 0 29 19 1 0 0 1 1 30 17 1 0 0 0 1 31 16 1 0 0 0 0 ubvec_test(): Normal end of execution. 06 October 2025 6:52:15.352 PM