Hi Nicolas,

I'm assuming the subject line got your attention. :)  I've been working
on a basic implementation of quasisymmetric functions (monomial and
fundamental basis only, no Hopf operations) and I already have something
that seems to work.  Without using sage-combinat.  Hooray!  Three cheers
for categories in sage!

I did find a couple of questions as I went through this exercise,
though.  As you might guess, I looked at ncsf for a model. In the
combinat/ncsf directory of sage-combinat, there is a file called
categories.py.  My questions are about three classes defined in this file:

Category_concrete_representation
ConcreteRepresentations  and
Bases

The first two seem to not be specific to NCSF at all, and I ended up
just copy-pasting them into them into my file.  This isn't so good,
since I would never have figured out to write them without ncsf as a
guide.  Is there a reason they aren't in sage-main?  Can we put them in
somewhere?

The third one, as I understand it, defines the category of bases of a
given instance of NCSF.  I'm interested in the relation between this and
the class 'Basis' in nscf.py, which inherits from
CombinatorialFreeModule. A specific basis (say, Phi) will inherit from
Basis, and be assigned the category Bases(NCSF).  Currently, Bases
contains a section

        class ParentMethods:

which defines an attribute 'basis_indices', as well as the method
'one_basis()' and a few auxiliary methods relating to changing bases.
It took me some time to figure out what was going on here (I'm still not
completely sure I understand how ParentMethods works), and I would have
much preferred to find these functions in the Basis class.  In my
implementation of QSym, I avoided using 'ParentMethods' altogether by
putting all the code in the corresponding Basis class, and everything
seems to work.  Am I missing something?  'ParentMethods' feels like
sneaking code in through the back door, and while I accept that it may
sometimes be necessary, I think I would like to personally avoid it, if
I can.  Can I? :)

Thanks,
Jason


-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To post to this group, send email to sage-combinat-de...@googlegroups.com.
To unsubscribe from this group, send email to 
sage-combinat-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sage-combinat-devel?hl=en.


Reply via email to