>>>>> "Richard" == Richard Fateman <fateman at cs.berkeley.edu> writes:
Richard> Not really. All other types would not be sped up by special code; the
Richard> compiler can only do a good job for a subset of the built-in numeric
Richard> types. So it might pay to do
Richard> single-float
Richard> double-float
Richard> and complex versions of that. Total of 4 versions here
As far as I know, only CMUCL and SBCL have non-consing complex
single-float's and complex double-float's. So there would be an
advantage there for CMUCL and SBCL to have special code, but probably
less so for the others.
Richard> I do not know how much benefit you get from compiling with
Richard> declarations in GCL or CLISP. I assume that SBCL makes
Richard> good use of declarations, as does Allegro CL, which is
Richard> what I tested.
CMUCL and SBCL make good use of declarations. I think Clisp basically
ignores declarations (except for special, of course). I think gcl
supports declarations, but does not have the type-derivation machinery
of CMUCL/SBCL, so you may need more declarations than CMUCL/SBCL would
need.
One way of writing less code, would be to create a macro that
generates the desired code. Then you only have to maintain the
macro. I think this is similar to C++'s template stuff.
Ray