otherwise it would be extraordinarily complex, CPU-intensive
and take up large resources.
- partition: P P P P (4 bits)
- a : .... .... .... .... .... (32 bits)
- b : .... .... .... .... .... (32 bits)
- exp-a : ....P....P....P....P.... (32+4 bits, P=1 if no partition)
- exp-b : ....0....0....0....0.... (32 bits plus 4 zeros)
- exp-o : ....xN...xN...xN...xN... (32+4 bits - x to be discarded)
- o : .... N... N... N... N... (32 bits - x ignored, N is carry-over)
+ partition: P P P (3 bits)
+ a : .... .... .... .... (32 bits)
+ b : .... .... .... .... (32 bits)
+ exp-a : ....P....P....P.... (32+3 bits, P=1 if no partition)
+ exp-b : ....0....0....0.... (32 bits plus 3 zeros)
+ exp-o : ....xN...xN...xN... (32+3 bits - x to be discarded)
+ o : .... N... N... N... (32 bits - x ignored, N is carry-over)
new version:
- partition: p p p p (4 bits)
- carry-in : c c c c c (5 bits)
- C = c & P: C C C C c (5 bits)
- I = P=>c : I I I I c (5 bits)
- a : AAAA AAAA AAAA AAAA AAAA (32 bits)
- b : BBBB BBBB BBBB BBBB BBBB (32 bits)
- exp-a : 0AAAACAAAACAAAACAAAACAAAAc (32+4+2 bits, P=1 if no partition)
- exp-b : 0BBBBIBBBBIBBBBIBBBBIBBBBc (32+2 bits plus 4 zeros)
- exp-o : o....oN...oN...oN...oN...x (32+4+2 bits - x to be discarded)
- o : .... N... N... N... N... (32 bits - x ignored, N is carry-over)
- carry-out: o o o o o (5 bits)
+ partition: p p p (3 bits)
+ carry-in : c c c c (4 bits)
+ C = c & P: C C C c (4 bits)
+ I = P=>c : I I I c (4 bits)
+ a : AAAA AAAA AAAA AAAA (32 bits)
+ b : BBBB BBBB BBBB BBBB (32 bits)
+ exp-a : 0AAAACAAAACAAAACAAAAc (32+3+2 bits, P=1 if no partition)
+ exp-b : 0BBBBIBBBBIBBBBIBBBBc (32+2 bits plus 3 zeros)
+ exp-o : o....oN...oN...oN...x (32+3+2 bits - x to be discarded)
+ o : .... N... N... N... (32 bits - x ignored, N is carry-over)
+ carry-out: o o o o (4 bits)
the new version