speeding up linear algebra



>>>>> "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