Hi Volker, On 2012-11-22, Volker Braun <vbraun.n...@gmail.com> wrote: > Using C++ template trickery one could compile multi-int exponents for a > range of statically known exponents so that the loop over the exponent > machine ints can be unrolled.
Can you give me a pointer for that trickery? I am not so good in C++. And actually my plan was to implement it in Cython. > You could even use variable bit sizes for the different nodes, that is, let > n = n(node) depend on the node where you are starting from. Which would involve a big overhead when translating it into a list of arrows. The question is whether that's critical. See below. > Division just amounts to checking that the bit pattern begins or ends with > a particular bit pattern, thats an easy shift/comparison operation. No. This would only work for testing whether there is some monomial a such that m=n*a: You would test whether the starting points of m and n coincide, and whether the bit pattern of m starts with the bit pattern of n. Often that's exactly what I need. But half of the time I want to know whether there are monomials a and b such that m=a*n*b. It is *not* enough to know that the bit pattern of n is a sub-pattern of the bit pattern of m, with shift s: You additionally need to test whether the starting point of n coincides with vertex number s in the path corresponding to m. Hence, you need to iterate over the initial part of m, which has some overhead - in particular if you use variable bit sizes. > This fits nicely with monomials orderings that are first by total degree. > Are there any important monomial orderings for path algebras that don't > start with total degree? I don't know what monomial orderings are important to other people (lexicographic?). I just can speek for myself: In my main application, I need a degree ordering, and it has to be a *local* ordering. I wouldn't care whether it is negdeglex or negdegrevlex or something else. Cheers, Simon -- 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-devel@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.