From ph Fri Oct 22 18:25:55 1982
To: ikonas
Subject: math subroutines
See /usr/ph/ik/math/alu.k for tips on how to do basic arithmetic.
For optimization freaks, see the "tricks" section at the end of that file.
Also, I have a few subroutines which might be useful to the rest of you:
/usr/ph/ik/math/mul32.k multiplies two 32-bit operands, yeilding 64 bits
/usr/ph/ik/math/div32.k divides 32-bit operands, yeilds quotient & rem.
/usr/ph/ik/math/div64.k divide 64-bit num. by 32-bit denom.
/usr/ph/ik/math/sqrt.g square root of a 32-bit integer (11.7 us!)
There are comments at the beginning of these programs which tell you
how to set up the registers before calling.
From ph Wed Nov 3 06:49:17 1982
To: ikonas
Subject: random news
1. I have several new subroutines in /usr/ph/ik/math:
sqrt64: 64-bit square root (34 us average)
mult32: 32-bit multiply using TRW multiplier (20 instructions)
bilin: bilinear interpolation (15 or 18 instructions)
From ph Thu Aug 11 03:18:17 1983
To: ikonas
Subject: floating point routines for Ikonas
I've written BPS microcode subroutines for floating point arithmetic.
They're called fadd, fsub, fmul, fdiv, int_flt, flt_int, and fcmp.
Look at the source file, /usr/ph/ik/math/farith.k, for the calling
conventions, or talk to me. They're roughly twice as fast as the
ones advertised by Biographics in Dallas, 1/6 to 1/2 as fast as a VAX
with floating point accelerator (depending on how you measure it).
IKONAS VAX 780
A table of speeds [usec]: Biographics mine float double
(from assembler, not C)
add/subtract 15 8 1.3 2.4
multiply 20 8 1.7 4.3
divide 22 11 4.9 9.2
If there's demand, I can write floating point sqrt, log, exp, and
trig functions too.