Florian Lengyel on Fri, 12 Mar 1999 17:34:45 -0500

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: (no subject)


Concerning the list:
The GP/PARI calculator instructions state that to join list <...>
one ought to send "empty" email to <...>@list.cr.yp.to.

Ordinarily (say with a MAJORDOMO list server) one would send a message
with Subscribe
in the subject line, and would include some commands such as the name of
the list and an email addressl. This one doesn't even want to reply to
help requests sent to pari-help. Adding "subscribe" to the subject field
appears to confound this list server. It appears that I will have to fly
overseas to correct these problems.

The bug report I would like to post to the list:

The bug I would like to post to the pari-dev list concerns the
GP/PARI calculator version 2.0.12 (alpha), running on a Pentium MMX
with emx (ix86 kernel). The operating system I am using is Windows 98,
but I am running PARI in a DOS emulation window.

My problem concerns a portion of a simple script (attached) that runs
under two versions of UNIX (on a Sun Workstation Sparc 5) and under
DEC-OSF 3.2D on an (oldish) Alpha 1000. There is no problem with the
script under UNIX. Under DOS, however, the appears not to be converting
vectors to strings correctly.

I'm relatively new to PARI so perhaps I have overlooked something.
Thanks for your attention,

Florian Lengyel

Igor Schein wrote:

> On Fri, Mar 12, 1999 at 04:58:29PM -0500, Florian Lengyel wrote:
> > OK, I'll try again. I have been attempting to follow instructions to
> > join the
> > pari-dev list so that I can report a DOS bug.
> If you're having troubles with joining the list, I can post the bug
> for you.
> Igor
Author: Florian Lengyel
Date:   Sun, 07 Mar 1999 20:41:17 -0500 (EST)

Generate subgroups of index 2 in Z2(+) ... (+) Z2
Associate a prime with each summand...

/*  Create empty set of index 2 subgroups of Z2(+) ... (+) Z2
	that do not contain the vector [1,1,1,1].

   Step 1: special subgroup enumeration.
   Enumerate subgroups by enumerating triples v1,v2,v3 of bit vectors modulo 2.
   Create the matrix m = (v1,v2.v3,[1,1,1,1]) and verify that rank(m) = 4.
   If so, compute the group G generated over Z2 by {v1,v2,v3}. G is represented
   in PARI as a set of stringified bit vectors, which are sorted in ascending
   lexicographic order by default. Once G is created, G itself is stringified 
   and added the union of the set of stringified subgroups of the direct sum.
   The set union operation ensures that exactly one copy of G is enumerated in
   the set of subgroups, even if G is generated by several Z2-bases.

SetOfSubgroups = Set();

for ( i = 1,14, \
   for ( j = i+1, 14, \
      for (k = j+1, 14,\
         m = Mod(matid(4),2); \
         m[1, ] = Mod(vecextract(binary(16+i),"2..5"), 2); \
         m[2, ] = Mod(vecextract(binary(16+j),"2..5"), 2); \
         m[3, ] = Mod(vecextract(binary(16+k),"2..5"), 2); \
         m[4, ] = Mod(Vec([1,1,1,1]), 2); \
         if (matrank(m) == 4, \
            SubGroup = Set(); \
            for (a = 1,7,               \
                v = 0 * m[1, ]; \
                for (b = 0, 2, \
                   if (bittest(a, b) == 1, \
                       v += m[b+1,]; \
                   ); \
                ); \
                SubGroup = setunion(SubGroup, Set(Str(v))); \
            ); \
            SetOfSubgroups = setunion(SetOfSubgroups, Set(Str(SubGroup))); \

/* The debugging output lines are for the pari-dev list.
   Note the difference between SetOfSubgroups under DOS, where it
   evaluates to the strange set ["["] and SetOfSubgroups under UNIX,
   where SetOfSubgroups contains 8 groups, each one a set containing
   a quoted set of quoted mod 2 bitvectors.

nGroups = length(SetOfSubgroups);
print1("Number of subgroups: "); print1(nGroups);

   Step 2: genus sum computation. (Supressed)

   This is where we need to unquote (more precisely, evaluate)
   a subgroup encoded as a stringified vector of stringified
   mod 2 bitvectors. Two levels of unquoting are required, the
   first to recover the subgroup as a list of quoted bit vectors,
   the second to recover an individual bitvector.