Hi Michael, On Sep 8, 3:33 pm, Michael Brickenstein <brickenst...@mfo.de> wrote: > Am 08.09.2009 um 15:25 schrieb Oleksandr: > > On Sep 7, 3:17 pm, Michael Brickenstein <brickenst...@mfo.de> wrote: > >> Am 07.09.2009 um 14:34 schrieb Oleksandr: > >>> What about Sage implementation for > > >>> 1. weighting vector(s) "a(w1, w2...wn)", > >>> 2. free module orderings (e.g. c/C) mixed somewhere in between? Does > >>> Sage have such a concept? > > >> I suppose, that the answer is no. > >>> In Sage i'd imagine something like: > >>> {{{ > >>> TermOrder = WeightVector(2,5) + ModuleOrder('c') + WeightVector > >>> (-1,-2) > >>> + MatrixOrder(1,1,0,-1) > >>> }}} > >> I suppose, the best thing is to separate that into a ModuleOrder, > >> which builds on a TermOrder. > > > I am not sure what do you mean by that? > > Note that one can mixin a ModuleOrder somewhere in between TermOrder- > > s. > > I am referring to the fact, that it is sensible to assume, that for each > component the ordering on the component is > the same as on the polynomial ring. > > SchreyerOrdering(exponents=[(list of integers)], term_order=TermOrder(..))
I'd add that in general one starts with a ModuleOrder (instead of TermOrder) here. > ComponentFirst(term_order=..., ascending=True)# (c, dp) > ComponentLast(...) I would not want to restrict us to "(c/C, >)" and "(>, c/C)" from the very beginning... How do you propose to mix in "c" in between? e.g. as in 'a(1,2), M(3), c, dp'? Please let me suggest the following "additive _block_ structure": (e.g. WeightVector(1,2) + MatrixOrder(3) + ComponentOrder (ascending=True) + SingularOrder('dp') for the above example) . There should be at least ModuleOrder, WeightVector and TermOrder (3 different classes) (ModuleOrder and WeightVector are _not_ TermOrder-s) . TermOrder + WeightVector, WeightVector + TermOrder, TermOrder + TermOrder give TermOrder-s . TermOrder + ModuleOrder and ModuleOrder + TermOrder give ModuleOrder- s . ModuleOrder + ModuleOrder is _not_ defined . MatrixOrder is a TermOrder . ComponentOrder, SyzygyOrder, SchreyerOrder are ModuleOrder-s Besided, i would suggest to have an option to supply an arbitrary string to Singular (e.g. SingularOrder('a(1,2), M(3), c, dp') ) There may be a compatibility problem: some Orders may not be compatible with each other or with the ring (due to the number of variables). Therefore one might need an optional _length_ attribute. e.g. WeightVector(1,2) has the length 2, MatrixOrder(1) - 1 and thus they don't sum up together. > I agree with you, that Schreyer orderings should be exposed to the surface. That would be nice! Additionally one might need (at least i do) to add more reference module-terms in run-time without changing the ring: e.g. in Schreyer or LaScala resolution. I guess it's a way toooo CAS specific. AFAIK M2 can somehow endowe _just_ a matrix with a Schreyer ordering... Cheers, Oleksandr --~--~---------~--~----~------------~-------~--~----~ To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---