From: Alexey D. <ade...@co...> - 2003-07-11 13:21:07
|
Hello, -------- * (domain-subtypep (specifier-type '(double-float (0d0) *)) 0d0 nil) NIL * (domain-subtypep (specifier-type '(double-float 0d0 *)) 0d0 nil) T -------- Smaller segment is not a subdomain, but a larger is? If I understand correctly, (DOMAIN-SUBTYPEP type low high) checks whether <type> is a subset of a closed segment [low,high]. In this case the code, checking the lower bound is not correct: (and arg-lo (>= arg-lo-val domain-low) (not (and (zerop domain-low) (floatp domain-low) (plusp (float-sign domain-low)) (zerop arg-lo-val) (floatp arg-lo-val) (if (consp arg-lo) (plusp (float-sign arg-lo-val)) (minusp (float-sign arg-lo-val)))))) I think the correct version is (and arg-lo (>= arg-lo-val domain-low) (not (and (zerop domain-low) (floatp domain-low) (plusp (float-sign domain-low)) (zerop arg-lo-val) (floatp arg-lo-val) (not (consp arg-lo)) (minusp (float-sign arg-lo-val))))) What do the FP experts think? -- Regards, Alexey Dejneka "Alas, the spheres of truth are less transparent than those of illusion." -- L.E.J. Brouwer |