[comp.os.minix] floating point package

tasayco@phoenix.Princeton.EDU (Maria Tasayco) (11/16/90)

After sending the floating point routines I realized that I was not 
signaling correctly division by zero, so here you have cdiffs for the
original version. I also added code to signal INVALID_OPERATION in
case of comparison with at least one operand NaN (the returned value
in this case is garbage) and put some more info into the exception
structure, so if anybody writes his/her own exception handler will
have enough information to recover.

begin 644 floatdif.sh.Z
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
;FO3I"MVGTA0:BL#8(W48(:S<!CHT'?  SY$.
 
end