>>>> "Jerome" == Jerome H Fine
<jhfinexgs2 at compsys.to> writes:
Jerome> If the code could be written in FORTRAN, it would be fairly
Jerome> simple. Then common source code could be used. But, even if
Jerome> possible, FORTRAN is simply not structured to easily allow
Jerome> multiple operations on succeeding values which are required
Jerome> when adding carry bits between even two words, let alone 8 *
Jerome> 16 bit words needed for 128 bit arithmetic. Which means
Jerome> coding in assembler!
Actually, carry is easy. There's a simple trick I learned on the
Alpha, but it applies anywhere.
Given UNSIGNED variables:
c = a + b;
if (c < a)
{ /* you got a carry */ }
Tweak as needed for signed.
Jerome> Since I do NOT find that to be a problem, I am not very
Jerome> concerned. But in case there was already a library around, I
Jerome> thought I would ask.
Jerome> By the way, are there any standard algorithms for the 4 basic
Jerome> operations (add, subtract, multiply and divide) for 128 bit
Jerome> numbers which are composed of 8 * 16 bit words? As per your
Jerome> suggestion, I would probably use: CHARACTER * 16 ARRAY ( nnn
Jerome> )
Knuth vol. 1 may help. Reading GNU MP may also help, though that is
likely to be optimized for much bigger integers (1024 bits or more).
paul