The FAAP (Final Address Assembling Parameter) is a stencil table of 16 values from 16 bits (in our demo) used for selecting different bits from the four BRV (Basic Randomness Values) in four consecutive rounds to determine four Final Addresses. In order to break off any possible, maybe unknown, arithmetical regularity (survived or recreated) from the intermediate data in the BRV, we take different bits from four BRVs to assemble the final address for selecting the bit to add to the random number in construction.

An important rule is to use every bit from a BRV, but only once. Sixteen FAAP parameters are therefore needed to create 4 bits. As we need 16 bits to address a specific bit in an 8KB Bit-Fishing-Table, a total of 64 bits has to be selected with the help of these stencils. We have named the 16 elements of the FAAP-table by two different subgroup names: First the groups named 1, 2, 3 and 4, used to assemble one FA. The second group identifier is a, b, c and d. The subgroup "a" is responsible for using all bits of the first BRV, "b" for the second, "c" for the third and "d" for the fourth. Every subgroup must add to 1111111111111111 in total to fulfill the requirement that every bit from the BRVs has to be used, but only once.

In the demo the first line in the FAAP- table is "a1: XX XXXX XX XXX X". We use X and " " (space) to show the function of picking different bits in a binary operation. In programming this is done normally by a bitwise add-operation with the stencil. Every bit-position with a "1" bit in the stencil will copy the original bit to the same bit-position in the result. To show this fact in the demo we use X for blocking ("0") and a space ("1") for letting fall the selected bits into the stencil. In a second step we copy the selected bits from the stencil into the Final Address.

The question of how many different FAAP we can define is related to the question how we define the criteria. We may want to take four bits from every BRV, maybe one bit from the first group of 4 bits, then one from the next four, one from the third and one from the last group. This is the most limiting criteria. We can proceed as follow: Per bit-position we define 24 possible variants to fulfill the basic requirement. We then have one "1" in 1 to 4 and in "a" to "d". The first variant is a one in a1, b2, c3 and d4. From this variant we can create with permutations, (4!) 24 variants. These 24 variants can now be used to create 288 variants in groups of 4 values with the requested specification. If we select now randomly 4 subgroups from the 288 possible, we have 288 x 287 x 286 x 285 = 6.737.290.560 cases. We may then use again the possibility to permute the four groups of 4 bits and get a total of over 161 billion possible FAAPs with the most demanding criteria. Every single FAAP, even if only different on one bit-position, will help to create a completely different stream of random numbers, due to the effect of the feedback included in the calculation of the FBMs (FeedBack Modifiers).

If we accept to lower the criteria, by allowing maybe 3 or 5 bits per element, or discarding the criterion to have 1 bit every subgroup of 4 bits, this number will increase continuously. The maximum possible is to take any combination, even with 16 bits in a row, not picking bits from the four BRVs or allowing more than one of the 24 basic variants. The absolute maximum is therefore 16^24 (7.922816...*10exp 28), but a lot of these variants are not acceptable. If we want only cases without sucessive bitpositons we get 1.128443...*10exp13 different FAAPs. From these cases we may select those having 3,4 or 5 bits from every BRV. Without empirical tests on lower criteria we propose to stay with the more conservative and take four bits from every BRV in every cycle.

Up to now we have used only one FAAP for all our tests, defined in the header file. But we may store as well a different FAAP with every BFT in the pool.

vers. 1.1 (with changes in the calculations)