Re: [sage-combinat-devel] Re: Left and right cells of Coxeter groups

2014-11-11 Thread Jean Michel
Dear Andrew,
On Mon, Nov 10, 2014 at 02:50:50PM -0800, Andrew wrote:
> This sounds really impressive. Perhaps it is enough to use chevie...in 
> which case we should update the version of chevie that ships with sage (or 
> os gap3 still optional?).

Yes, please update the version. You can take the archive gap3-jm4.tar.gz from
my homepage to do so...
--
Jean MICHEL, Groupes et representations, IMJ-PRG UMR7586 tel.(33)157279144
Bureau 639 Bat. Sophie Germain Case 7012 - 75205 PARIS Cedex 13

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: Left and right cells of Coxeter groups

2014-11-10 Thread Andrew


On Tuesday, 11 November 2014 00:42:58 UTC+11, Jean Michel wrote:
>
> You should look at the latest version of chevie 
>
> http://webusers.imj-prg.fr/~jean.michel/gap3/gap3-jm4.tar.gz 
>
> or 
>
> http://webusers.imj-prg.fr/~jean.michel/gap3/gap3-jm5.tar.gz 
>
> where I implemented the latest stuff of Meinolf Geck and Abbie Hall. 
> I can give the elements of the left cell containing a given element of E8 
> in 
> less than 2 minutes. 
>
> Here is an example in E7: 
>
> gap>W:=CoxeterGroup("E",7);; 
> gap> LeftCell(W,Random(W));time; 
> LeftCell 
> 40 
>
> 40 milliseconds! 
>
> Dear Jean,

This sounds really impressive. Perhaps it is enough to use chevie...in 
which case we should update the version of chevie that ships with sage (or 
os gap3 still optional?).

Andrew 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: Left and right cells of Coxeter groups

2014-11-10 Thread Jean Michel
Dear Andrew,
On Mon, Nov 10, 2014 at 04:24:40AM -0800, Andrew wrote:
> 
> Yes, I agree, using coxeter3 will almost certainly be much more efficient. 
> I had a brief look at this and thought it looked two hard since I have only 
> a fleeting interest in this:)
> 
> In terms of syntax, chevie has a *LeftCells* function that returns all of 
> the cells of the Coxeter group, together with the corresponding 
> mu-coefficients -- this, I think, is equivalent to the information that 
> coxeter3 returns as it sounds like coxeter3 returns the W-graph for the 
> cell representation. 
> 
> In terms of the suggested syntax, I think that this is partly driven by 
> what coxeter3 actually does. I was thinking of something like:
> 
> sage: W=CoxeterGroup("A3"); w=W.an_element()
> sage: W.left_cell( w )  # left cell containing w
> sage: W.left_cells()  # all left cells -- as chevie's LeftCells(W) does now
> 
> 
> In particular, rather the computing the complete decomposition of the 
> Coxeter group into a disjoint union of cells I think that it would be 
> useful to be able to compute only the cell containing a particular element. 

You should look at the latest version of chevie 

http://webusers.imj-prg.fr/~jean.michel/gap3/gap3-jm4.tar.gz

or

http://webusers.imj-prg.fr/~jean.michel/gap3/gap3-jm5.tar.gz

where I implemented the latest stuff of Meinolf Geck and Abbie Hall.
I can give the elements of the left cell containing a given element of E8 in
less than 2 minutes.

Here is an example in E7:

gap>W:=CoxeterGroup("E",7);;
gap> LeftCell(W,Random(W));time;
LeftCell
40

40 milliseconds!

Best regards,
--
Jean MICHEL, Groupes et representations, IMJ-PRG UMR7586 tel.(33)157279144
Bureau 639 Bat. Sophie Germain Case 7012 - 75205 PARIS Cedex 13

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: Left and right cells of Coxeter groups

2014-11-10 Thread Andrew
Hi Nicolas,

Yes, I agree, using coxeter3 will almost certainly be much more efficient. 
I had a brief look at this and thought it looked two hard since I have only 
a fleeting interest in this:)

In terms of syntax, chevie has a *LeftCells* function that returns all of 
the cells of the Coxeter group, together with the corresponding 
mu-coefficients -- this, I think, is equivalent to the information that 
coxeter3 returns as it sounds like coxeter3 returns the W-graph for the 
cell representation. 

In terms of the suggested syntax, I think that this is partly driven by 
what coxeter3 actually does. I was thinking of something like:

sage: W=CoxeterGroup("A3"); w=W.an_element()
sage: W.left_cell( w )  # left cell containing w
sage: W.left_cells()  # all left cells -- as chevie's LeftCells(W) does now


In particular, rather the computing the complete decomposition of the 
Coxeter group into a disjoint union of cells I think that it would be 
useful to be able to compute only the cell containing a particular element. 
With the implementation in chevie this isn't really an option, but it might 
be with coxeter3. The right cells can be obtained from the left cells just 
by taking inverses. It is not clear to me if we need both. 

As coxeter 3 and chevie both seem to return the mu-coefficients as well 
perhaps this information should also be returned -- it seems silly to 
compute it and then discard it. In fact, I was thinking about the KL cells 
only because I thought that I would implement the cell representations of 
the Hecke algebras as anther example of Iwahori-Hecke algebta 
representations. I was planning to do this using the implementation of the 
KL-bases inside sage but if the full W-Graph data was available then this 
would be much more efficient.

Andrew

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: Left and right cells of Coxeter groups

2014-11-10 Thread Nicolas M. Thiery
On Mon, Nov 10, 2014 at 02:28:15AM -0800, Andrew wrote:
>OK, I have figured out how to make left cells but now the question is
>where to put this?

Thanks for investigating! I guess this would be a cell method of
Coxeter groups, possibly only provided by certain
implementations. Would you have an example of input and output to
settle on the specifics?

I just made a quick grep in the sources of Coxeter 3, and there is a
file wgraph.cpp, with functions like OrientedGraph::cells. Cells are
also mentioned quite some in INTRO.tex. So for our Coxeter groups
using Coxeter 3 as backend implementation, it's probably just a matter
of wrapping those functions to make them accessible as well from
Sage. And they are likely to be very efficient given Coxeter 3's
emphasis on computing KL polynomials.

Cheers,
Nicolas
--
Nicolas M. ThiƩry "Isil" 
http://Nicolas.Thiery.name/

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Re: Left and right cells of Coxeter groups

2014-11-10 Thread Andrew
OK, I have figured out how to make left cells but now the question is where 
to put this?

Andrew

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Re: Left and right cells of Coxeter groups

2014-11-10 Thread Andrew
HI Travis,

I found this and I also managed to get a list of cells directly from Chevie 
but I haven't yet worked out how to convert this into something that sage 
recognises. I know that I have done this before, but I've forgotten:) Will 
investigate further.

Andrew

On Monday, 10 November 2014 17:48:56 UTC+11, Travis Scrimshaw wrote:
>
> Hey Andrew,
>It may not be the best name, but if you pass 
> implementation="permutation", then it will go to the chevie implementation. 
> This isn't explicitly mentioned in the doc (and probably should be), but 
> the doctests testing this are marked as optional needing chevie. So I think 
> what you need is already there.
>
> Best,
> Travis
>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Re: Left and right cells of Coxeter groups

2014-11-09 Thread Travis Scrimshaw
Hey Andrew,
   It may not be the best name, but if you pass 
implementation="permutation", then it will go to the chevie implementation. 
This isn't explicitly mentioned in the doc (and probably should be), but 
the doctests testing this are marked as optional needing chevie. So I think 
what you need is already there.

Best,
Travis


On Sunday, November 9, 2014 9:11:48 PM UTC-8, Andrew wrote:
>
> Hi Travis,
>
> Thanks for the ultra quick reply. I'm impressed that so much work being 
> done on this as I assumed that it was all in the too hard basket. I'll have 
> a  quick look at calls and see how hard it is to wrap something around 
> chevie's implementation.
>
> Andrew
>
> On Monday, 10 November 2014 15:43:30 UTC+11, Travis Scrimshaw wrote:
>>
>> Hey Andrew,
>>
>> Am I right in thinking that sage does not (yet) know about the left, 
>>> right and two-sided Kazhdan-Lusztig cells of Coxeter groups? As sage can 
>>> compute Kazhdan-Lusztig polynomials I assumed that it knew about cells as 
>>> well, but it doesn't seem to. Please tell me if I am missing something.
>>>
>>
>> AFAIK, there's no code in Sage or ticket about cells. +1 to adding them.
>>
>>>
>>> Incidentally, I also noticed that we have some identity issues -- that I 
>>> am sure are well known:
>>>
>>> sage: WeylGroup("A5")
>>> Weyl Group of type ['A', 5] (as a matrix group acting on the ambient 
>>> space)
>>> sage: CoxeterGroup("A5")
>>> Coxeter group over Universal Cyclotomic Field with Coxeter matrix:
>>> [1 3 2 2 2]
>>> [3 1 3 2 2]
>>> [2 3 1 3 2]
>>> [2 2 3 1 3]
>>> [2 2 2 3 1]
>>>
>>> I am guessing that one of these is just wrapping code from chevie, but I 
>>> haven't checked. Is there any reason not to amalgamate these two classes? 
>>> Currently the CoxeterGroup code seems marginally faster but perhaps the 
>>> WeylGroup classes have more functionality:
>>>
>>
>>I implemented the current CoxeterGroup and it uses Sage's (hence 
>> gap's) matrix group code. However the WeylGroup does have more information 
>> (features) since it is considered acting on the root/weight lattice, such 
>> as reflection_to_root on elements. Combining these classes might be taken 
>> care of by http://trac.sagemath.org/ticket/15703.
>>
>>>
>>> sage: WeylGroup("A5").cardinality()
>>> 720
>>> sage: CoxeterGroup("A5").cardinality()
>>>
>>> ---
>>> NotImplementedError   Traceback (most recent call 
>>> last)
>>>  in ()
>>> > 1 CoxeterGroup("A5").cardinality()
>>>
>>> /usr/local/src/sage/local/lib/python2.7/site-packages/sage/categories/
>>> sets_cat.pyc in cardinality(self)
>>>1370 NotImplementedError: unknown cardinality
>>>1371 """
>>> -> 1372 raise NotImplementedError("unknown cardinality")
>>>1373
>>>1374 # Functorial constructions
>>>
>>> NotImplementedError: unknown cardinality
>>>
>>> There's currently http://trac.sagemath.org/ticket/16630 which should 
>> fix some (all?) of these issues (and I will get to that after next week).
>>
>> Best,
>> Travis
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Re: Left and right cells of Coxeter groups

2014-11-09 Thread Andrew
Hi Travis,

Thanks for the ultra quick reply. I'm impressed that so much work being 
done on this as I assumed that it was all in the too hard basket. I'll have 
a  quick look at calls and see how hard it is to wrap something around 
chevie's implementation.

Andrew

On Monday, 10 November 2014 15:43:30 UTC+11, Travis Scrimshaw wrote:
>
> Hey Andrew,
>
> Am I right in thinking that sage does not (yet) know about the left, right 
>> and two-sided Kazhdan-Lusztig cells of Coxeter groups? As sage can compute 
>> Kazhdan-Lusztig polynomials I assumed that it knew about cells as well, but 
>> it doesn't seem to. Please tell me if I am missing something.
>>
>
> AFAIK, there's no code in Sage or ticket about cells. +1 to adding them.
>
>>
>> Incidentally, I also noticed that we have some identity issues -- that I 
>> am sure are well known:
>>
>> sage: WeylGroup("A5")
>> Weyl Group of type ['A', 5] (as a matrix group acting on the ambient 
>> space)
>> sage: CoxeterGroup("A5")
>> Coxeter group over Universal Cyclotomic Field with Coxeter matrix:
>> [1 3 2 2 2]
>> [3 1 3 2 2]
>> [2 3 1 3 2]
>> [2 2 3 1 3]
>> [2 2 2 3 1]
>>
>> I am guessing that one of these is just wrapping code from chevie, but I 
>> haven't checked. Is there any reason not to amalgamate these two classes? 
>> Currently the CoxeterGroup code seems marginally faster but perhaps the 
>> WeylGroup classes have more functionality:
>>
>
>I implemented the current CoxeterGroup and it uses Sage's (hence gap's) 
> matrix group code. However the WeylGroup does have more information 
> (features) since it is considered acting on the root/weight lattice, such 
> as reflection_to_root on elements. Combining these classes might be taken 
> care of by http://trac.sagemath.org/ticket/15703.
>
>>
>> sage: WeylGroup("A5").cardinality()
>> 720
>> sage: CoxeterGroup("A5").cardinality()
>>
>> ---
>> NotImplementedError   Traceback (most recent call 
>> last)
>>  in ()
>> > 1 CoxeterGroup("A5").cardinality()
>>
>> /usr/local/src/sage/local/lib/python2.7/site-packages/sage/categories/
>> sets_cat.pyc in cardinality(self)
>>1370 NotImplementedError: unknown cardinality
>>1371 """
>> -> 1372 raise NotImplementedError("unknown cardinality")
>>1373
>>1374 # Functorial constructions
>>
>> NotImplementedError: unknown cardinality
>>
>> There's currently http://trac.sagemath.org/ticket/16630 which should fix 
> some (all?) of these issues (and I will get to that after next week).
>
> Best,
> Travis
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Re: Left and right cells of Coxeter groups

2014-11-09 Thread Travis Scrimshaw
Hey Andrew,

Am I right in thinking that sage does not (yet) know about the left, right 
> and two-sided Kazhdan-Lusztig cells of Coxeter groups? As sage can compute 
> Kazhdan-Lusztig polynomials I assumed that it knew about cells as well, but 
> it doesn't seem to. Please tell me if I am missing something.
>

AFAIK, there's no code in Sage or ticket about cells. +1 to adding them.

>
> Incidentally, I also noticed that we have some identity issues -- that I 
> am sure are well known:
>
> sage: WeylGroup("A5")
> Weyl Group of type ['A', 5] (as a matrix group acting on the ambient space
> )
> sage: CoxeterGroup("A5")
> Coxeter group over Universal Cyclotomic Field with Coxeter matrix:
> [1 3 2 2 2]
> [3 1 3 2 2]
> [2 3 1 3 2]
> [2 2 3 1 3]
> [2 2 2 3 1]
>
> I am guessing that one of these is just wrapping code from chevie, but I 
> haven't checked. Is there any reason not to amalgamate these two classes? 
> Currently the CoxeterGroup code seems marginally faster but perhaps the 
> WeylGroup classes have more functionality:
>

   I implemented the current CoxeterGroup and it uses Sage's (hence gap's) 
matrix group code. However the WeylGroup does have more information 
(features) since it is considered acting on the root/weight lattice, such 
as reflection_to_root on elements. Combining these classes might be taken 
care of by http://trac.sagemath.org/ticket/15703.

>
> sage: WeylGroup("A5").cardinality()
> 720
> sage: CoxeterGroup("A5").cardinality()
> ---
> NotImplementedError   Traceback (most recent call last
> )
>  in ()
> > 1 CoxeterGroup("A5").cardinality()
>
> /usr/local/src/sage/local/lib/python2.7/site-packages/sage/categories/
> sets_cat.pyc in cardinality(self)
>1370 NotImplementedError: unknown cardinality
>1371 """
> -> 1372 raise NotImplementedError("unknown cardinality")
>1373
>1374 # Functorial constructions
>
> NotImplementedError: unknown cardinality
>
> There's currently http://trac.sagemath.org/ticket/16630 which should fix 
some (all?) of these issues (and I will get to that after next week).

Best,
Travis

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.