oldk1331 wrote:
> 
> There are many Lisp functions in IndexedList, because
> this Domain is not inline optimized, it should.

I would prefer to avoid inline optimization for IndexedList.
Namely, currently we can not correctly handle domain
parameters, so inlining is potentially incorrect for
parametric domain.  We inline a few parametric domains,
but that just happens to work and potentially may break
in the future.  IndexedList is particularly dangerous
because it has non-type parameter (in other cases
parameters are types).  In particular, even if

u is ["IndexedList",:.] => IndexedList(Integer(), Integer())

works now it is type violation (the second parameter is an
integer, not a type) and may fail at any time.

> 
> Some common functions are not implemented in this
> domain, so they are not inline optimized.
> 
> The benchmark in attachment shows:
> 
> new is 2 times faster
> concat/append is 3.5 times faster
> last and tail is 10 times faster
> concat! is the same as NCONC
> 
> This is very surprising, because concat/append is
> widely used.
> 
> https://github.com/oldk1331/fricas/commit/7c3e1315fdfdcdd9e8208a903e9ed06e0511eecc
> 
> (This is a big commit, perhaps I should break it down.)

What really matters is performace of List and AFAICS it was OK.
IndexedList gets only little use in comparison.

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