Hi Denis, That is great that it can have a faster implementation. Do you have the code available for us somewhere? Some thing to also note is that VectorPartitions creates a Sage Element instance instead of a simple Pyhton list, which has extra overhead. However, this should not account for most of the difference between the two timings I believe. Dealing with the min should be straight-forward; worst case is we just fallback to the current implementation. We might even be able to get it faster with Cythonizing it.
As Simon said, I would just insert it directly into the Sage source code. Best, Travis On Monday, February 10, 2020 at 9:34:40 PM UTC+10, Denis Sunko wrote: > > I have translated the Haskell code for vector partitions by M. C. Er, The > Computer Journal, Vol. 31, 1988, 283-284, into Python (2 or 3, stand-alone > file with 60 lines total). > > The code works significantly faster than the Sage implementation: > > ┌────────────────────────────────────────────────────────────────────┐ > │ SageMath version 9.0, Release Date: 2020-01-01 │ > │ Using Python 3.7.3. Type "help()" for help. │ > └────────────────────────────────────────────────────────────────────┘ > sage: import vpartitions > sage: %time myvparts=vpartitions.vPartitionso([6,6,6]) > CPU times: user 9.13 s, sys: 89.8 ms, total: 9.22 s > Wall time: 9.22 s > sage: %time sagevparts=list(VectorPartitions([6,6,6])) > CPU times: user 2min 10s, sys: 177 ms, total: 2min 10s > Wall time: 2min 10s > sage: myvparts[::-1]==sagevparts > True > > If someone would take over the job of contributing this code to Sage, I > would be glad to help. There are a few caveats: > > 1) the code is recursive; > 2) there is no "min" option like in the Sage implementation. > > I do not know how difficult (or necessary) it would be to address these > points. > > Of course, anyone can take it up straight from Er's paper instead, I won't > be jealous:) > > Cheers, > > Denis > > -- You received this message because you are subscribed to the Google Groups "sage-combinat-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-combinat-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-combinat-devel/45509e06-9672-47c8-be92-7a1a52d36287%40googlegroups.com.