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.
