#341 Some problems with featurep/complex

open
nobody
5
2006-07-07
2003-07-07
Stavros Macrakis
No

declare(rrr,real)
declare(zzz,complex)

featurep(x,real) => false (!!)
With domain=real, should be true.

featurep(%i,imaginary) => false (!!)
Should be true.

featurep(cabs(zzz),real) unnecessarily asks whether
SQRT(REALPART(zzz)^2+IMAGPART(zzz)^2) is positive
or zero; similarly for sqrt(abs(x)+abs(y)).

Though featurep(sqrt(x),real) asks x pos/neg/z and
gives correct results, featurep(sqrt(x),imaginary) doesn't
ask the questions and returns false.

---------------

Note that (as best I understand its semantics), featurep
*correctly* gives featurep(rrr,complex)=>true, etc. I
believe that featurep is supposed to report whether the
range of values of an expression is a subset of the set
defined. Since rrr is real, and the reals are a subset of
the complexes, 3 is also complex.

Discussion

  • Robert Dodier
    Robert Dodier
    2006-07-07

    • labels: --> Lisp Core - Assume