transcendental functions and compilation



Why do I get the following behaviour?


This is fine:

(%i1) Coshe(x):=block(mode_declare(x,float),(exp(x)+exp(-x))/2)$
(%i2) compile(Coshe)$
(%i3) Coshe(1.0);
(%o3) 1.543080634815244
(%i4) cosh(1.0);
(%o4) 1.543080634815244



But this is mysterious:

(%i5) Cosh(x):=block(mode_declare(x,float),cosh(x))$
(%i6) compile(Cosh)$
;
; caught STYLE-WARNING:
;   undefined function: COSH
;
; compilation unit finished
;   Undefined function:
;     COSH
;   caught 1 STYLE-WARNING condition

Ok, ignore the warning and:

(%i7) Cosh(1.0);

Maxima encountered a Lisp error:

 The function MAXIMA::COSH is undefined.

Automatically continuing.

I would have expected that Maxima would compile Cosh down to the CL
cosh function, but it does not.


(%i8) build_info();

(%o8) ?%build_info("5.31.1_dirty","2013-09-26 17:09:41","i686-pc-linux-gnu",
                   "SBCL","1.1.11.debian")

Leo