#15536: Implement symplectic and orthogonal bases of Sym
-------------------------------------+-------------------------------------
Reporter: tscrim | Owner: sage-combinat
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-6.10
Component: combinatorics | Resolution:
Keywords: days54, sym | Merged in:
Authors: Travis Scrimshaw | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
public/combinat/sf/sp_orth | 57f92dd1a206bb5af2ed00e4135ded0c586e99db
Dependencies: #17096 | Stopgaps:
-------------------------------------+-------------------------------------
Comment (by zabrocki):
I'm sorry, but I can't compile anything new right now so I am afraid to
push anything. I can write functions on a working version of sage and I
am pretty sure the following is right (following the model of
`_s_to_o_on_basis`):
{{{
def _o_to_s_on_basis(self, lam):
import sage.libs.lrcalc.lrcalc as lrcalc
from sage.combinat.partition import Partitions
R = self.base_ring()
return self._from_dict({ mu: R.sum(
(-1)**j*lrcalc.lrcoef_unsafe(lam, mu, nu)
for nu in Partitions(2*j)
if all(nu.arm_length(i,i)==nu.leg_length(i,i)+1
for i in range(nu.frobenius_rank())) )
for j in range(sum(lam)//2+1)
for mu in Partitions(sum(lam)-2*j) })
}}}
Moreover, if you switch `arm` and `leg` then that is the
`_sp_to_s_on_basis`.
Your `_s_to_o_on_basis` has lots of extra looping going on that is not
necessary. Because `|lam|==|mu|+|nu|` you can remove one sum. Because
`nu` has to be an even partition, you don't need to run over `j` odd.
Here is a suggested modification:
{{{
def _s_to_o_on_basis(self, lam):
import sage.libs.lrcalc.lrcalc as lrcalc
from sage.combinat.partition import Partitions
R = self.base_ring()
return self._from_dict({ mu: R.sum( lrcalc.lrcoef_unsafe(lam, mu, nu)
for nu in Partitions(2*j)
if all(x % 2 == 0 for x in nu))
for j in range(sum(lam)//2+1)
for mu in Partitions(sum(lam)-2*j) })
}}}
--
Ticket URL: <http://trac.sagemath.org/ticket/15536#comment:24>
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 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 http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.