diff --git a/compiler/knownfun.lisp b/compiler/knownfun.lisp index df58457a6cea4373e225ad63c190f9e59c5cbb1e..3fdcbd63f59101c8b3c76a255f521b2cd06df7c8 100644 --- a/compiler/knownfun.lisp +++ b/compiler/knownfun.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/knownfun.lisp,v 1.12 1991/10/08 15:49:28 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/knownfun.lisp,v 1.13 1991/11/12 16:11:22 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -225,6 +225,19 @@ (when cont (continuation-type cont)))) +;;; RESULT-TYPE-FLOAT-CONTAGION -- Interface +;;; +;;; Derive the result type according to the float contagion rules, but +;;; always return a float. This is used for irrational functions that preserve +;;; realness of their arguments. +;;; +(defun result-type-float-contagion (call) + (declare (type combination call)) + (reduce #'numeric-contagion (combination-args call) + :key #'continuation-type + :initial-value (specifier-type 'single-float))) + + ;;; SEQUENCE-RESULT-NTH-ARG -- Internal ;;; ;;; Return a closure usable as a derive-type method for accessing the N'th