wct@po.CWRU.Edu (William C. Thompson) (04/22/91)
For those of you that grabbed my "cool" math unit, a bug was found in the pow function. It has since been corrected and fixed. Here is the correct function: function pow(a,b: real):real; { Computes a^b } begin if a=0 then if b=0 then pow:=1 { 0^0 = 1 } else if b<0 then pow:=exp(b*ln(a)) { force error } else pow:=0 { 0^x = 0 } else if a<0 then if abs(b)<1e-10 then pow:=1 else if relerror(b,round(b))<1e-8 then pow:=(1-2*ord(odd(round(b))))*exp(b*ln(abs(a))) else if (relerror(1/b,round(1/b))<1e-8) and odd(round(1/b)) then pow:=-exp(b*ln(abs(a))) else pow:=exp(b*ln(a)) { force error } else pow:=exp(b*ln(a)) end; Oops! -- Ticking away, the moments that make up a dull day. | William C. Thompson You fritter and waste the hours in an offhand way. | Michelson 620D (wct) Kicking around on a piece of ground in your hometown,| a.k.a. Master of Time, waiting for someone or something to show you the way.| Space, and Dimension