#12140: Symmetric functions uses lrcalc in symmetrica and bug fix in skew Schur
function indexed by [[], []]
------------------------------------+---------------------------------------
Reporter: zabrocki | Owner: sage-combinat
Type: defect | Status: positive_review
Priority: major | Milestone: sage-5.3
Component: combinatorics | Resolution:
Keywords: sf, days38, sd40 | Work issues:
Report Upstream: N/A | Reviewers: Anne Schilling
Authors: Mike Zabrocki | Merged in:
Dependencies: #11563 | Stopgaps:
------------------------------------+---------------------------------------
Changes (by aschilling):
* status: needs_review => positive_review
Old description:
> This patch switches computations in symmetric functions from symmetric to
> lrcalc which is now standard package in Sage.
>
> The following code causes a segmentation fault:
> {{{
> sage: s = SFASchur(QQ)
> sage: s([[], []])
> }}}
> or
> {{{
> sage: s([]).skew_by(s([]))
> }}}
> which should be s[] but instead causes a segmentation fault.
>
> The calculation of an expansion of a skew Schur function in the Schur
> basis done with the symmetrica package.
>
> The bug comes from the calculation of a skew Schur function indexed
> by two empty partitions. To fix this bug we change the computation from
> the
> symmetrica package to lrcalc which should be faster and more robust.
> lrcalc is a package that was integrated into sage in version 5.2.beta1.
>
> Timing tests for computing expansions of skew Schur functions indicate
> that for large partitions there are significant speed improvements
> by using lrcalc instead of symmetrica.
> example:
> Without this patch applied:
> {{{
> sage: timeit('s([[9,9,8,8,7,7,6,6,5,5,4,3,2,1],[6,5,4,3,2]])')
> 5 loops, best of 3: 5.06 s per loop
> }}}
> With this patch applied:
> {{{
> sage: timeit('s([[9,9,8,8,7,7,6,6,5,5,4,3,2,1],[6,5,4,3,2]])')
> 5 loops, best of 3: 978 ms per loop
> }}}
> - In classical.py the construction of a skew Schur function now calls
> lrcalc.skew instead of symmetrica.part_part_skewschur
>
> - doc tests were added to check base cases in sfa.py and classical.py
New description:
This patch switches computations in symmetric functions from symmetric to
lrcalc which is now standard package in Sage.
The following code causes a segmentation fault:
{{{
sage: s = SFASchur(QQ)
sage: s([[], []])
}}}
or
{{{
sage: s([]).skew_by(s([]))
}}}
which should be s[] but instead causes a segmentation fault.
The calculation of an expansion of a skew Schur function in the Schur
basis done with the symmetrica package.
The bug comes from the calculation of a skew Schur function indexed
by two empty partitions. To fix this bug we change the computation from
the
symmetrica package to lrcalc which should be faster and more robust.
lrcalc is a package that was integrated into sage in version 5.2.beta1.
Timing tests for computing expansions of skew Schur functions indicate
that for large partitions there are significant speed improvements
by using lrcalc instead of symmetrica.
example:
Without this patch applied:
{{{
sage: timeit('s([[9,9,8,8,7,7,6,6,5,5,4,3,2,1],[6,5,4,3,2]])')
5 loops, best of 3: 5.06 s per loop
}}}
With this patch applied:
{{{
sage: timeit('s([[9,9,8,8,7,7,6,6,5,5,4,3,2,1],[6,5,4,3,2]])')
5 loops, best of 3: 978 ms per loop
}}}
- In classical.py the construction of a skew Schur function now calls
lrcalc.skew instead of symmetrica.part_part_skewschur
- doc tests were added to check base cases in sfa.py and classical.py
__Apply__
* [attachment:trac_12140-sf_schur_done_w_lrcalc-mz.patch]
--
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12140#comment:17>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.