cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

User: Matthew J. Samuel

Matthew J. Samuel's wiki page.

Matthew J. Samuel has authored 5 sequences.

A191016 Number of projective reflection products on a set with n elements.

Original entry on oeis.org

1, 1, 2, 8, 38, 238, 1558, 10966, 106334, 1050974, 10295324, 114643744, 1426970188, 19128627772, 301484330492, 4785515966492, 75490216911932, 1287754035291964, 23735661951947896, 462001846720538656, 9472366452963142856, 202869898263715663016, 4536294970208910412232, 107194755891965843670088, 2634562640821884269137768
Offset: 1

Author

Matthew J. Samuel, May 24 2011

Keywords

Comments

A projective reflection product is a product (usually nonassociative) satisfying (1) x*x=x, (2) x*(x*y)=y, and (3) x*(y*z)=(x*y)*(x*z) for all x,y,z.

Examples

			For n=1, the a(1)=1 product is simply x*x=x. For n=2, the a(2)=1 product on {x,y} is (x*x=x, y*y=y, x*y=y, y*x=x). For n=3, the a(3)=2 products are (x*y=y for all x,y) and (x*x=x, y*y=y, z*z=z, x*y=y*x=z, x*z=z*x=y, y*z=z*y=x).
		

Crossrefs

The sequence A191015 gives the number of isomorphism classes of such products.

Programs

  • Maple
    #the number of irreducible projective reflection products
    irredprod:=proc(n) local c, v:
        if n=1 then
            RETURN(1):
        elif n=0 or n=2 then
            RETURN(0):
        end:
        c:=0:
    #dihedral
        c:=c+(n!/(2*n)):
        if n=36 then #E6
            c:=c+(n!/((2^7*3^4*5)/2)*2):
        elif n=120 then #E8
            c:=c+(n!/((2^(14)*3^5*5^2*7)/2)):
        elif n=63 then #E7
            c:=c+(n!/(((2^(10)*3^4*5*7)/2))):
        elif n=24 then #F4
            c:=c+(n!/((1152/2)*2)):
        elif n=15 then #H3
            c:=c+(n!/(120/2)):
        elif n=60 then #H4
            c:=c+(n!/(14400/2)):
        elif n=12 then #D4
            c:=c+(n!/((2^(4-1)*4!/2)*6)):
        end:
        if n>4 and type(sqrt(n), 'integer') then #type B
            c:=c+(n!/((2^(sqrt(n))*(sqrt(n)!))/2)):
        elif n>3 and type(1/2+1/2*sqrt(1+8*n), 'integer') then #type A
            c:=c+(n!/(((1/2+(1/2)*sqrt(1+8*n))!/2)*2)):
        elif n>12 and type(1/2+1/2*sqrt(1+4*n), 'integer') then #type D
            v:=1/2+1/2*sqrt(1+4*n):
            c:=c+(n!/((2^(v-1)*v!/2)*2)):
        end:
        c:
    end:
    #convolve the sequences
    convol:=proc(n, k) local i: option remember:
        if k=1 then
            RETURN(irredprod(n)):
        end:
        add(binomial(n, i)*irredprod(i)*convol(n-i, k-1), i=0..n):
    end:
    #add the convolutions
    numprods:=proc(n) local k:
        add(convol(n, k)/k!, k=1..n):
    end:
    seq(numprods(n), n=1..30);

Formula

A projective reflection product on a set S is irreducible if S cannot be written as the disjoint union of two nonempty subsets X and Y such that x*y=y and y*x=x for all x in X and y in Y.
Define i(0)=0 and let i(p) for p>1 be the number of irreducible projective reflection products on a set with p elements. Define c(p,1)=i(p) and recursively define c(p,q)=sum(k=0 to p) of binomial(p,k)*i(k)*c(p-k,q-1). Then a(n)=sum(k=1 to n) of c(n,k)/k!.
This is a sequence of binomial type, also equal to the sum over all partitions of the set of the product of the numbers of irreducible products on the subsets in the partition.

A191015 Number of isomorphism classes of Coxeter systems with n reflections.

Original entry on oeis.org

1, 1, 2, 3, 4, 7, 9, 12, 18, 25, 32, 47, 61, 79, 108, 143, 182, 246, 315, 404, 526, 674, 849, 1102, 1389, 1745, 2215, 2788, 3467, 4384
Offset: 1

Author

Matthew J. Samuel, May 24 2011

Keywords

References

  • Anders Björner, Francesco Brenti, Combinatorics of Coxeter groups, Graduate Texts in Mathematics, 231. Springer, New York, 2005.

A185349 Number of isomorphism classes of partially ordered sets of length n that occur as intervals in weak Bruhat order of some Coxeter group.

Original entry on oeis.org

1, 1, 2, 6, 22, 93
Offset: 0

Author

Matthew J. Samuel, Feb 15 2011

Keywords

References

  • Björner, Anders; Brenti, Francesco. Combinatorics of Coxeter groups. Graduate Texts in Mathematics, 231. Springer, New York, 2005.

Crossrefs

a(n) >= A000112(n).

A180607 Number of commutation classes of reduced words for the longest element of a Weyl group of type D_n.

Original entry on oeis.org

1, 1, 8, 182, 13198, 3031856, 2198620478, 5017961787334, 35964266585527318
Offset: 1

Author

Matthew J. Samuel, Jan 21 2011

Keywords

Comments

An implementation of the procedures below in Java with the additional feature of storing old values of classesRecurse(perm,-1,1) computed a(8)=5017961787334 in 63 seconds. The program runs in O((n^2)*(4^n)*n!).

Programs

  • Maple
    # classes: Wrapper for computing number of commutation classes;
    #   pass a permutation of type D as a list
    # Returns number of commutation classes
    # Longest element is of the form [-1, -2, ..., -n] if n is even,
    #   or [1, -2, -3, ..., -n] if n is odd
    classes:=proc(perm) option remember:
        classesRecurse(Array(perm), -1, 1):
    end:
    # classesRecurse: Recursive procedure for computing number of commutation classes
    classesRecurse:=proc(perm, spot, negs) local swaps, i, sums, c, doneany:
        sums:=0:
        doneany:=0:
        for i from spot to ArrayNumElems(perm)-2 do
            if i=-1 and -perm[2]>perm[1] then
                swaps:=perm[1]:
                perm[1]:=-perm[2]:
                perm[2]:=-swaps:
                c:=classes(convert(perm, `list`)):
                sums:=sums+negs*c+classesRecurse(perm, i+1, -negs):
                swaps:=perm[1]:
                perm[1]:=-perm[2]:
                perm[2]:=-swaps:
                doneany:=1:
            elif i>-1 and perm[i+1]>perm[i+2] then
                if not (spot=0 and i=1) then
                    swaps:=perm[i+1]:
                    perm[i+1]:=perm[i+2]:
                    perm[i+2]:=swaps:
                    c:=classes(convert(perm, `list`)):
                    sums:=sums+negs*c+classesRecurse(perm, i+2, -negs):
                    swaps:=perm[i+1]:
                    perm[i+1]:=perm[i+2]:
                    perm[i+2]:=swaps:
                    doneany:=1:
                end:
            end:
        end:
        if spot=-1 and doneany=0 then RETURN(1):
        else RETURN(sums):
        end:
    end: # Matthew J. Samuel, Jan 24 2011, Jan 26 2011

Extensions

a(9)=35964266585527318 computed with a Java program by Matthew J. Samuel, Jan 30 2011

A180605 Number of commutation classes of reduced words for the longest element of a Weyl group of type B_n.

Original entry on oeis.org

1, 2, 14, 330, 25396, 6272842, 4925166862, 12221171869734, 95482373388042562
Offset: 1

Author

Matthew J. Samuel, Jan 21 2011

Keywords

Examples

			For n=2 the a(2)=2 commutation classes of words are 0101 and 1010.
For n=3 the a(3)=14 commutation classes of words are those of 210121010, 121012010, 212012010, 120101210, 101210120, 120120120, 210120101, 201012101, 012101201, 201201201, 012010121, 101201012, 010121012, 012012012.
		

Programs

  • Maple
    #classes: Wrapper for computing number of commutation classes; pass a permutation of type B as a list
    #Returns number of commutation classes
    #Longest element is of the form [-1, -2, ..., -n]
    classes:=proc(perm) option remember:
        RETURN(classesRecurse(Array(perm),-1,1)):
    end:
    #classesRecurse: Recursive procedure for computing number of commutation classes
    classesRecurse:=proc(perm, spot, negs) local swaps, i, sums, c, doneany:
        sums:=0:
        doneany:=0:
        for i from spot to ArrayNumElems(perm)-2 do
            if i=-1 and perm[1]<0 then
                perm[1]:=-perm[1]:
                c:=classes(convert(perm,`list`)):
                sums:=sums+negs*c+classesRecurse(perm,i+2,-negs):
                perm[1]:=-perm[1]:
                doneany:=1:
            elif i>-1 and perm[i+1]>perm[i+2] then
                swaps:=perm[i+1]:
                perm[i+1]:=perm[i+2]:
                perm[i+2]:=swaps:
                c:=classes(convert(perm, `list`)):
                sums:=sums+negs*c+classesRecurse(perm,i+2,-negs):
                swaps:=perm[i+1]:
                perm[i+1]:=perm[i+2]:
                perm[i+2]:=swaps:
                doneany:=1:
            end:
        end:
        if spot=-1 and doneany=0 then RETURN(1):
        else RETURN(sums):
        end:
    end:

Extensions

a(9) computed with a Java program by Matthew J. Samuel, Jan 30 2011