def _matrix_monomial_to_dual_immaculate(self, n): r""" This function caches the change of basis matrix from the quasisymmetric monomial basis to the dual immaculate basis. INPUT: - ``J`` -- a composition OUTPUT: - A list. Each entry in the list is a row in the change of basis matrix. EXAMPLES:: sage: dI = QuasiSymmetricFunctions(QQ).dI() sage: dI._matrix_monomial_to_dual_immaculate(3) [[1, -1, -1, 1], [0, 1, -1, 0], [0, 0, 1, -1], [0, 0, 0, 1]] sage: dI._matrix_monomial_to_dual_immaculate(0) [[1]] """ N = NonCommutativeSymmetricFunctions(self.base_ring()) I = N.I() S = N.S() mat = [] C = Compositions() for alp in Compositions(n): row = [] expansion = S(I(C(alp))) for bet in Compositions(n): row.append(expansion.coefficient(C(bet))) mat.append(row) return mat
def to_nsym(self, p): """ Return `B_p` as an element in `NSym`, the non-commutative symmetric functions. This maps `B_p` to `S_p` where `S` denotes the Complete basis of `NSym`. EXAMPLES:: sage: B = DescentAlgebra(QQ, 4).B() sage: S = NonCommutativeSymmetricFunctions(QQ).Complete() sage: for b in B.basis(): S(b) # indirect doctest S[1, 1, 1, 1] S[1, 1, 2] S[1, 2, 1] S[1, 3] S[2, 1, 1] S[2, 2] S[3, 1] S[4] """ S = NonCommutativeSymmetricFunctions(self.base_ring()).Complete() return S.monomial(p)
def to_nsym(self, p): """ Return `B_p` as an element in `NSym`, the non-commutative symmetric functions. This maps `B_p` to `S_p` where `S` denotes the Complete basis of `NSym`. EXAMPLES:: sage: B = DescentAlgebra(QQ, 4).B() sage: S = NonCommutativeSymmetricFunctions(QQ).Complete() sage: map(S, B.basis()) # indirect doctest [S[1, 1, 1, 1], S[1, 1, 2], S[1, 2, 1], S[1, 3], S[2, 1, 1], S[2, 2], S[3, 1], S[4]] """ S = NonCommutativeSymmetricFunctions(self.base_ring()).Complete() return S.monomial(p)
def dual(self): r""" Returns the dual Hopf algebra of the quasi-symmetric functions, which is the non-commutative symmetric functions. OUTPUT: - The non-commutative symmetric functions. EXAMPLES:: sage: QSym = QuasiSymmetricFunctions(QQ) sage: QSym.dual() Non-Commutative Symmetric Functions over the Rational Field """ from sage.combinat.ncsf_qsym.ncsf import NonCommutativeSymmetricFunctions return NonCommutativeSymmetricFunctions(self.base_ring())
def __init__(self, alg, prefix="B"): r""" Initialize ``self``. EXAMPLES:: sage: TestSuite(DescentAlgebra(QQ, 4).B()).run() """ self._prefix = prefix self._basis_name = "subset" CombinatorialFreeModule.__init__(self, alg.base_ring(), Compositions(alg._n), category=DescentAlgebraBases(alg), bracket="", prefix=prefix) S = NonCommutativeSymmetricFunctions(alg.base_ring()).Complete() self.module_morphism(self.to_nsym, codomain=S, category=Algebras(alg.base_ring()) ).register_as_coercion()