oldk1331 wrote:
> 
> https://github.com/oldk1331/fricas/commit/1b4af9795519918465253e5628b3d33c75e92abd
> 
> This is almost a rewrite of List, I make 4-space indentation
> and make code style consistent.
> 
> Some notes:
> 1. QCAR/QCDR is actually slower than CAR/CDR.  I compared them
> in SBCL using 'disassemble'.

I doubt if this comparison is relevant.  Namely, QCAR/QCDR differ
from CAR/CDR by presence of declarations.  sbcl documentation
clearly states that _at default safety setting_ declarations
are checked.  This means that in default setting QCAR/QCDR
_alone_ is indeed slower.  However:

- CAR/CDR gain speed due to weaker checking -- we can gain
  more speed by skipping more checks, that is using 'safety 0'
  At 'safety 0' sbcl blindly trusts declarations, so we get
  more speed from QCAR/QCDR
- even with extra checks on average we gain: we pay cost of checks
  in some places but then sbcl can infer types in other places
  and _safely_ optimize object code

-- 
                              Waldek Hebisch

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to