A method of generating a set of fixed-point numbers containing a first addend, a second addend, and a sum, wherein the first addend is compatible with a first addend mask, the second addend is compatible with a second addend mask, the sum is compatible with a sum mask, and wherein the addition of the first addend and the second addend results in a carry sequence of carry bits, wherein each carry bit has a unique index in the carry sequence, wherein the carry sequence is compatible with a carry sequence mask and wherein each carry bit has a value in the group consisting of 0, 1, and 2, and wherein there exists a boundary index in the carry sequence corresponding to the lowest index of a carry bit having the value 2;
- the method comprising the steps of:
- (a) constructing a list of possible boundary indices;
- (b) testing whether said list is empty;
- (c) outputting, if said list is empty, that no solution exists;
- (d) randomly choosing, if said list is not empty, a boundary index from said list as a selection;
- (e) searching for a carry sequence based on said selection, which is compatible with the carry sequence mask;
- (f) erasing, if said searching was not successful, said selection from said list;
- (g) constructing, if said searching was successful, a first addend compatible with the first addend mask, a second addend compatible with the second addend mask, and a sum compatible with the sum mask;
- (h) outputting said first addend, said second addend, said sum, and said carry sequence;
- and
- (i) repeating step (a) through step (h) until outputting occurs.