For some reason, CCL defines the (internal) ieee-{single,double}-float-bias constants as one less than the standard values of 127 and 1023.
|
(defconstant IEEE-single-float-bias 126) |
|
(defconstant IEEE-single-float-exponent-offset 23) |
|
(defconstant IEEE-single-float-exponent-width 8) |
|
(defconstant IEEE-single-float-mantissa-offset 0) |
|
(defconstant IEEE-single-float-mantissa-width 23) |
|
(defconstant IEEE-single-float-hidden-bit 23) |
|
(defconstant IEEE-single-float-signalling-NAN-bit 22) |
|
(defconstant IEEE-single-float-normal-exponent-min 1) |
|
(defconstant IEEE-single-float-normal-exponent-max 254) |
|
(defconstant IEEE-single-float-digits (1+ IEEE-single-float-mantissa-width)) |
|
|
|
;;; Double-floats are IEEE DOUBLE-FLOATs in both MCL implementations. |
|
|
|
(defconstant IEEE-double-float-bias 1022) |
|
(defconstant IEEE-double-float-exponent-offset 52) |
|
(defconstant IEEE-double-float-exponent-width 11) |
|
(defconstant IEEE-double-float-mantissa-offset 0) |
|
(defconstant IEEE-double-float-mantissa-width 52) |
|
(defconstant IEEE-double-float-hidden-bit 52) |
|
(defconstant IEEE-double-float-signalling-NAN-bit 51) |
|
(defconstant IEEE-double-float-normal-exponent-min 1) |
|
(defconstant IEEE-double-float-normal-exponent-max 2046) |
|
(defconstant IEEE-double-float-digits (1+ IEEE-double-float-mantissa-width)) |
This tripped me up when I was using those constants and expecting them to have their standard values.
It seems like it would be better for these constants to have their standard values, or else get renamed.
For some reason, CCL defines the (internal) ieee-{single,double}-float-bias constants as one less than the standard values of 127 and 1023.
ccl/library/lispequ.lisp
Lines 814 to 836 in 3c7de4f
This tripped me up when I was using those constants and expecting them to have their standard values.
It seems like it would be better for these constants to have their standard values, or else get renamed.