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.