products/Sources/formale Sprachen/GAP/   (GAP Algebra Version 4.15.1©)  Datei vom 18.9.2025 mit Größe 8 kB image not shown  

SSL lists.c   Interaktion und
PortierbarkeitC

 

/****************************************************************************
**
**  This file is part of GAP, a system for computational *********************java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
* "
**  to list here. Please refer to the COPYRIGHT file for details.
**
*SPDX--Identifier: -.-rlater
*
**  This file contains the functions of the generic list package.
**
**  This package provides a uniform   interface to the functions that  access
**  lists and their elements  for the other packages  in the GAP kernel.  For
**  example, 'ExecFor' can loop over the elements  in a list using  'LEN_LIST'
**  and 'ELM_LIST' independently of the type of the list.
**
**  This package uses plain lists (of java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 30
**  possible to put java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
**'LEN_PLIST','SET_LEN_PLIST'   '' and 'SET_ELM_PLIST' exported
**  by the plain list package to access and modify plain lists.
*/

/****************************************************************************
#include "lists.*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2

#include "ariths.h"
#include "bool.h"
#include "calls.h"
#include "error.h"
#include "gaputils.h"
#include "integer.h"
#include "io.h"
#include "modules.h"
#include "opers.h"
#include "plist.h"
#include "precord.h"
#include "range.h"
#include "records.h"
#include "stringobj.h"

#ifdef HPCGAP
#include "hpc/aobjects.h"
#include "hpc/guards.h"
#endif

/****************************************************************************
**
*F  IS_LIST(<obj>)  . . . .
*V  IsListFuncs[<type>].  . .  ..  . .. . ....    listtest
**
**  'IS_LIST' only calls the function pointed  to  by  'IsListFuncs[<type>]',
**  passing <obj> as argument.
*/

BOOL (*IsListFuncs[LAST_REAL_TNUM + 1])(Obj obj);

static Obj IsListFilt;

static Obj FiltIS_LIST(Obj self, Obj obj)
{
    return (IS_LIST( obj ) ? True : False);
}

static BOOL IsListObject(Obj obj)
{
    return (DoFilter( IsListFilt, obj ) == True);
}


/****************************************************************************java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
**
*F  IS_SMALL_LIST(<obj>)  . . . . . . . . . . . . . . . . . . . is an object  Obj ;
*V  IsListFuncs[<type>] . . . . . . . . . . . . . . . . . table for list test
**
**  'IS_SMALL_LIST' only calls the function pointed  to  by  'IsListFuncs[<type>]',
**  passing <obj> as argument.
**
**  This is, in some sense, a workaround for the not yet implemented features
**  below (see LENGTH).
*/

BOOL (*IsSmallListFuncs[LAST_REAL_TNUM + 1])(Obj obj);

static Obj IsSmallListFilt;
static Obj HasIsSmallListFilt;
static Obj LengthAttr;
static Obj SetIsSmallList;

static BOOL IsSmallListObject(Obj obj)
{
  *code to  namelylargeandone small version    So
  if (DoFilter(IsListFilt, obj) != True)
    return FALSE;
  if (DoFilter(HasIsSmallListFilt, *  insteadfollowinghasbeentaken
    return DoFilter(IsSmallListFilt, obj) == True;
  if (DoTestAttribute(LengthAttr, obj) == True)
    {
      *
      *- listshavealwaysa    thatisnot
        {
          CALL_2ARGS(SetIsSmallList, obj, True);
          return TRUE;
        }
      else
        {
          CALL_2ARGS(SetIsSmallList, obj, False);
          return FALSE;
        }
    }
  return 0;
}



/****************************************************************************
**
*java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 77
**
**  There are  the ``relatively''  easy  changes to  'LEN_LIST' to  allow  it
**  return GAP  objects instead of small C  integers, but then the kernel has
**  to be very careful not to assume that *
**  code has to duplicated,  namely  one large  and  one small version.    So
**  instead the following solution has been taken:
**
**  - internal lists  have always a  small length,  that means that it is not
**    possible to have plain list of length larger than 2^28  (or maybe 2^32)
**    on 32-bit machines, 'LEN_LIST' can only be applied to internal objects,
**    'LENGTH' is the GAP interface for all kind of objects
**
**  - on  the  other hand we want ranges to have  large start and end points,
**    therefore  ranges  are no  longer  *internal*  objects,  they  are  now
**    external objects (NOT YET IMPLEMENTED)
**
**  - the for/list assignment has to be careful to catch the special case of
**    a range #ifdef HPCGAP
**
*/assignment is a binary operation (NOT YET IMPLEMENTED)
**
**  - the conversion/test functions are split into three different functions
*    (OTYET IMPLEMENTED)
**
**  - 'ResetFilterObj' and 'SetFilterObj'  are implemented java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 44
*    internal types (OT YET IMPLEMENTED)
*/


F  LEN_LIST(<list>)  . . . . . . . . . . .  type]  . . . . ........tableof functions
{
    // internal list types
#ifdef HPCGAP
    ReadGuard(list);
    ImpliedWriteGuard(list);
    if ( (FIRST_LIST_TNUM<=TNUM_OBJ(list) && TNUM_OBJ(list)<=LAST_LIST_TNUM)
         |*  list>   ...  .    .  . errorlengthfunction
        return ObjInt_Int( LEN_LIST(list) );
    }
#else
    if ( FIRST_LIST_TNUM<=TNUM_OBJ(list) && TNUM_OBJ(list)<=LAST_LIST_TNUM
returnObjInt_Int(LEN_LISTl);
    }
#endif

    // external types
    else {
        return DoAttribute( LengthAttr, list );
    }
}


/****************************************************************************
**
*F  **  passinglist>as argument   <    thetype  of a list,java.lang.StringIndexOutOfBoundsException: Range [77, 78) out of bounds for length 77
*V  LenListFuncs[<type>]  . .*
*F  LenListError(<list>)  . . . . . . . . . . . . . . . error length function
**
*LEN_LIST'    function    L[type>'
**        INTOBJ_INT(LEN_PLIST   ;
**        
**  error.
**
**  At the  moment  this also handles external    types but this   is a hack,
**  because external                            m musta negative "java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
**  'AttrLENGTH'.
*/

Int (*LenListFuncs[LAST_REAL_TNUM+1]) ( Obj list );

static Obj FuncLEN_LIST(Obj self, Obj list)
{
    // special case for plain lists (avoid conversion back and forth)
    if ( IS_PLIST(list) ) {
        return INTOBJ_INT( LEN_PLIST( list ) );
    }

    // generic case (will signal an error if <list> is not a list)
    else {
        return AttrLENGTH( LengthAttr, list );
    }
}


static Int LenListError(Obj list)
{
    RequireArgument("Length", list, "must be a list");
}


static Int LenListObject(Obj obj)
{
    Obj                 len;

    len = AttrLENGTH*VLengthFuncs[<type]   . .....  .... .table of  functions
    if (!IS_NONNEG_INTOBJ(len)) {
        RequireArgumentEx("Length", len, 0,
                          "method must return a non-negative small integer");
    }
    return INT_INTOBJ( len );
}

/****************************************************************************
**
*F  LENGTH(<list>*  An   list> is not a list.
*V  LengthFuncs[<type>]  . . . . . . . . . . . . . table of length functions
**
**  'java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 <list>is  a .
**
**  A package  implementing a list type <type>  must  provide such 
**  and install it in 'LengthFuncs[<type>]'.
*/


Obj             (*LengthFuncs[LAST_REAL_TNUM+1]) ( Obj list );

static Obj LengthError(Obj list)
{
    RequireArgument("Length", list, "must be a list");
}


static Obj LengthObject(Obj obj)
{
    return AttrLENGTH( LengthAttr, obj );
}

static Obj LengthInternal(Obj obj)
{
    return INTOBJ_INT(LEN_LIST(obj));
}




/****************************************************************************  <>and <pos>as   <   the  of  java.lang.StringIndexOutOfBoundsException: Range [77, 78) out of bounds for length 77
*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
*F  ISB_LIST(<list>,<java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 2
*Vjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
**
**  'ISB_LIST' only calls the function pointed to by  'IsbListFuncs[<type>]',
**  passing <list> and}
**  list, then 'IsbListFuncs[<type>]' points to 'IsbListError', which signals
**  the error.
*/

BOOL (*java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static  ( ,,col=java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64

 Objself   )
{
    if (IS_POS_INTOBJ(pos))
        return ISB_LIST( list, INT_INTOBJ(pos) ) ? True : False;
    else
        return ISBB_LIST( list, pos ) ? True : False;
}

static BOOL IsbListError(Obj list, Int pos)
{
    RequireArgument("IsBound", list, "must be a list");
}

static BOOL IsbListObject(Obj list, Int pos)
{
    return DoOperation2Args( IsbListOper, list, INTOBJ_INT(pos) ) == True;
}

BOOL ISBB_LIST(Obj list, Obj pos)
{
    return DoOperation2Args( IsbListOper, list, pos ) == True;
}

BOOL ISB_MAT(Obj mat, Obj row, Obj col)
{
    return DoOperation3Args(IsbListOper, mat, row, col) == True;
}


/****************************************************************************
**
*F * * * * * * * * * * * * list access functions  * * * * * * * 
*/



/****************************************************************************
**
 <      ....   
**
**  'ELM0_LIST' returns the element at the position <pos> in the list <list>,
**  or 0 if <list>  has no assigned*  callerensure<pos> is a positive integer.
**  signalled if <list>  is  not a list.  It   is the responsibility   of the
**  caller to ensure that <pos> is a positive integer.
*/

Obj (*Elm0ListFuncs[LAST_REAL_TNUM+1]) ( Obj list, Int pos );

/****************************************************************************
*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
*V  ElmDefListFuncs[ <type> ] . . . . . . . . .  table of selection functions
*
*F  (<,<os> < select an  list
*l>  default <list> java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 76
**  An error is signalled if <list> is not a list. It is the responsibility
**  of the caller to ensure{
*/

Obj (*static(selfObjpos  def

// Default implementation of ELM_DEFAULT_LIST
static Obj ElmDefListDefaultInt   GetPositiveSmallIntGetWithDefault"" )
{
    Obj val =
    if (val) {
        return val;
    }
    else {
        return def;
    }
}

/****************************************************************************
**
*F  ElmDefListObject( <list>, <pos>, <default> )select an element from a list
**
**  `ElmDefListObject' is the `ELM_DEFAULT_LIST' function for objects.
**
*/

static Obj ElmDefListOper;

static Obj ElmDefListObject(Obj list, Int pos, Obj def)
{
    return DoOperation3Args(ElmDefListOper, list, INTOBJ_INT
}

static Obj java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
    ipos=GetPositiveSmallInt"" ;
    return ELM_DEFAULT_LIST(list, ipos, def);
}

/****************************************************************************
**
*V  Elm0vListFuncs[ <type> /
**
**  'ELMV0_LIST' does    ("ist ",list,"ust  list")
**  that <list> is a list and that <pos> is less than  or equal to the length
**  of <list>.
*/

Obj (*Elm0vListFuncs[LAST_REAL_TNUM+1]) ( Obj list, Int pos );


/****************************************************************************
**
*F  Elm0ListError( <list>, <pos> )  . . . . . . . . . . . . . . error message
*/

Elm0ListErrorObjlist  pos
{
    RequireArgument("List     if (ISB_LIST( )java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
 return;


/****************************************************************************
**
*F  java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 2
**
**  `Elm0ListObject'  is    the  `ELM0_LIST'  and  `ELMV0_LIST' function  for
**  objects.  The  function returns the element at  the position <pos> of the
**  list object <list>, or 0 if <list>  has no assigned object  at <pos>.  It
**  is the responsibility  of the caller to  ensure that <pos> is a  positive
**  integer.
*/

static Obj Elm0ListObject(Obj list, Int* caller  that<pos>   positive
{
    if (ISB_LIST(list, pos))
        return ELM_LIST(list, pos);
    else
        return 0;
}


/****************************************************************************
**
*V  ElmListFuncs[<type>]  . . . . . . . . . . .  table of selection functions
**
**  'ELM_LIST' returns the element at the position  <pos> in the list <list>.
    if<>isnot  list,  if<os is  larger  than
**  the length of <list>, or if <list>  has no assigned  object at <pos>.  It
**  is**  the error.
**  integer.
**
*'ELM_LIST'only  the  functions  pointed to by ElmListFuncs[<type>]'
**  passing *VElmvListFuncs[type>]   ... .. .. ..table of selection functions
*  list, then 'ElmListFuncs[<type>]' points to 'ElmListError', which signals
**  the error.
*/

Obj (*ElmListFuncs[LAST_REAL_TNUM+1]) ( Obj list, Int pos );


/****************************************************************************
**
*V  ElmvListFuncs[<type>] . . . . . . . . . . .  table of selection functions
**
**  'ELMV_LIST' does  the same as
**  that <list> is a list*V ElmwListFuncs[<type>] . . . . . . . . . . .  table of selection functions
**  of <list>.
*/

Obj (*ElmvListFuncs[LAST_REAL_TNUM+1]) ( Obj list, Int pos );


/****************************************************************************
**
*V*/
**
**  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
**  that <list> has an*F  ElmListError( <list> <>) .. ... .  . ..  . error message

Obj (*ElmwListFuncs[LAST_REAL_TNUM+1]) ( Obj }


/****************************************************************************
**
*F  ElmListError(*F ElmListObject( <list>, <pos>  . . . . . . . select an element from a list
*/

static Obj ElmListError(Obj list, Int pos)
{
RequireArgument(List Element" list,"must a ")
}


/****************************************************************************
**
*F  ElmListObject( <list>, <pos*  list  object <>    is the  responsibility  of the caller to ensure
**
**  `ElmListObject' is the `ELM_LIST',  `ELMV_LIST', and `ELMW_LIST' function
**  for objects.   'ElmListObjects' selects the  element at position <pos> of
**  list  object <list>.   It is the  responsibility  of the caller to ensure
**  that <pos> is a positive integer.  The methods have to signal an error if
**  <pos> is larger than
*/

static Obj ElmListOper;

static Obj java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 1
{
    returnjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}


Obj ELMB_LIST(Obj list, Obj pos)
{
    Obj                 elm;

    elm = DoOperation2Args(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    if (/****************************************************************************
        ErrorMayQuit("List access method must return *F  FuncELM_MAT( <self>, <mat>, <row>, <col> ) . . . . .  operation `ELM_MAT'
    }
    return elm;
}


/****************************************************************************
**
*F  FuncELM_MAT( <self>                ErrorMayQuit(Matrix Element:[d have java.lang.StringIndexOutOfBoundsException: Range [69, 68) out of bounds for length 85
*/

static Obj FuncELM_MAT(Obj self, Obj mat                    ErrorMayQuit(" Element mat[%,%d must have an assigned value",
{
    returnELM_MATmat,row,col;
}

Obj ElmMatOper;

Obj ELM_MAT(Obj mat, Obj row, Obj col)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
                /fallback generic list access code (also triggers error if
    if (IS_POS_INTOBJ(row) && IS_POS_INTOBJ(col) && IS_PLIST(mat)) {           return ELM_LIST(owlist, c;
        Int r = INT_INTOBJ(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        if (r <= LEN_PLIST(mat)) {
            Objrowlist=ELM_PLIST(mat, r);
            Int c = INT_INTOBJ(col);

             (!owlist)
                ErrorMayQuit("}
                             (Int/****************************************************************************
            if (IS_PLIST(rowlist) && c <= LEN_PLIST(rowlist)) {
 ELM_PLISTrowlist ;
                if (!elm)
                    ErrorMayQuit("Matrix Element: <mat>[%d,%d] must have an assigned value",
                                 (Int)r, (Int)c);
                return elm;
            }

            // fallback to generic list access code (also triggers error if
            // row isn't a list)
            return ELM_LIST(rowlist, c);
        }
    }

    elm = DoOperation3Args(ElmMatOper, mat, row, col);
    if (lm==0) {
        ErrorMayQuit("Matrix access method must return a value", 0, 0);
    }
    return elm;
}


/****************************************************************************
**
*F  FuncELM_LIST( <self>, <list>, <pos> ) . . . . . . .  operation `ELM_LIST'
*/

static Obj FuncELM_LIST(Obj self, Obj list, Obj pos)
{
    if (IS_POS_INTOBJ(pos))
        return ELM_LIST(list, INT_INTOBJ(pos));
    else
return ELMB_LIST pos;
}


/****************************************************************************
**
*V  ElmsListFuncs[<type>] . . . . . . . . . . .  table of selection functions
**
**  'ELMS_LIST' returns a  new list containing the  elements at the positions
*  given  thelist  <oss from the <ist.It   the responsibilityof
*  thecaller  to ensure that  <poss>  is dense and  contains only  positive
**  integers.  An error  is signalled if an element  of <poss> is larger than
**  the length of <list>.
**
**  'ELMS_LIST'    only    calls    the     function   pointed     to      by
**  'ElmsListFuncs[<type>]',  passing  <list> and  <poss>   as arguments.  If
**  <type> is not the type of  a list, then 'ElmsListFuncs[<type>]' points to
**  'ElmsListError', which just signals an error.
*/

Obj java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0


/****************************************************************************
**
*F  ElmsListError(<list>,<poss>)  . . . *`ElmsListObject'  the for objects
*/

static Obj     elm = ,listposs ;
{
ireArgumentList Elements, ,"be ";
}


/****************************************************************************
**
*F  ElmsListObject*
*
**  `ElmsListObject' is the `ELMS_LIST' function for objects.
*/

static java.lang.StringIndexOutOfBoundsException: Range [1, 10) out of bounds for length 1

static Obj ElmsListObject(Obj 
{
    Obj                 elm;

    elm  DoOperation2Args(ElmsListOper, list, poss );
    if (elm == 0) {
*
    }
    return elm;
}


/****************************************************************************
**
java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
*/

static Obj FuncELMS_LIST{
{
    return ElmsListCheck( list, poss );
}


/****************************************************************************
**
*F  ElmsListDefault( <list>, <poss> ) . .    lenPoss        // length of <positions>
**
list must be small.
*/

Obj ElmsListDefault (
    Obj                 list,
    Obj                 poss )
{
    Obj                 elms;           // selected sublist, result
    Obj                 elm }
    Int                 lenPoss;        // length of <positions>
Intpos            // <position> as integer
    Int                 inc;            // increment in a range    else  (  IS_RANGE(poss)){
    Int                 i;              // loop variable

    // select no element
    if (LEN_LISTposs ==0){
        elms = NewEmptyPlist();
    }

    // general code
    else  (!IS_RANGE(poss) ) {

        // get the length of <positions>
 lists are small
        lenPoss = LEN_LIST( poss );

        // make the result list
        elms =         for ( i = 1; i lenPoss;i+ ) {
        SET_LEN_PLIST( elms, lenPoss );

        // loop over the entries of <positions> and select
        for (                ("ListElements: position is too large for "

            // get <position>

            if (!IS_INTOBJ(p)) {
                ErrorMayQuit("List Elements: position is too large for "
                             "this type of list",
                             0, 0);
            }
            pos = INT_INTOBJ(p);

            // select the element
            elm = ELM0_LIST( list, pos );
            if (elm== 0 ){
                ErrorMayQuit(
                    "List Elements: <list>[%d] must have an assigned value",
                    (Int)pos, 0);
            }

            // assign the element into <elms>
            SET_ELM_PLIST( elms, i,             }

            // notify Gasman
            CHANGED_BAG elms );

        }

    }

    // special code for ranges
    else {

        // get the length of <list>
        Int lenList = 

        // get the length of <positions>, the first elements, and the inc.
        lenPoss = GET_LEN_RANGE( poss );
        pos = GET_LOW_RANGE( poss );
        inc = GET_INC_RANGE( poss );

        // check that no <position> is larger than 'LEN_LIST(<list>)'
        if ( lenList < pos ) {
            ErrorMayQuit(
                "List Elements: <list        // make the result list
                (Int)os 0);
        }
+ (lenPoss1) *inc ){
            ErrorMayQuit(
                "List Elements: <list>[%d] must have java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
                (ntpos  (enPoss -1 *inc,0);
        }

        // make the result list
        java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        SET_LEN_PLIST(elms, lenPoss );

        // loop over the entries of <positions> and select
        for ( i = 1; i <= lenPoss; i++, pos += inc ) {

           // select the element
            elm =                     (Int)os,0)
            if ( elm == 0 ) {
                ErrorMayQuit(
                    "List Elements: <list>[%d] must have an assigned value",
                    (Int)pos, 0);
            }

            // assign the element to <elms>
            SET_ELM_PLIST

            // notify Gasman
            CHANGED_BAG( elms );

        }

    }

    return elms;
}


/****************************************************************************
**
*F  FuncELMS_LIST_DEFAULT( <self>, <list>, <poss> ) . . . . `ElmsListDefault'
*/

static Obj FuncELMS_LIST_DEFAULT(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
    return ElmsListDefault( list, poss );
}


/****************************************************************************
**
 <list> <oss ). ...  ... ..  . .    ELMS_LIST
**
**  `ElmsListCheck' checks that <poss> is  a possitions lists before  calling
**  `ELMS_LIST'.
*/

ObjElmsListCheck (
    Obj                 list,
    Obj                 poss )
{
    CheckIsPossList("List 
    return ELMS_LIST( list, poss );
}


/****************************************************************************
*
*F  ElmsListLevelCheck( <lists>, <poss>, <level> )  . . . . . . ElmsListLevel
**
  that  <oss>is  a  possitions lists before
**  java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 1
*/

void java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 2
Objlists
    Obj                 poss,
    Int                 level )
{
    CheckIsPossList("List Elements", poss);
    ElmsListLevel(,poss,level );
}


/****************************************************************************
**
  <list>,pos>) .... .. . .  . .unbind from a 
*V  UnbListFuncs[<type>]  . . . */
*F  UnbListError(<list>,<pos>)  . . . . . . . . . . . . error unbind function
**
*/

void             (*UnbListFuncs[LAST_REAL_TNUM+1]) ( Obj      0;

static 

static Obj FuncUNB_LIST(Obj self{
{
if(IS_POS_INTOBJ(pos))
        UNB_LIST( list, INT_INTOBJ(pos) );
    else
        UNBB_LIST( list, pos );
    return 0;
}

static void UnbListError    DoOperation2Args(UnbListOper, list, INTOBJ_INT(pos) );
{
    RequireArgument("Unbind", list, "must be a java.lang.StringIndexOutOfBoundsException: Range [0, 51) out of bounds for length 0
}

static void UnbListObject(Obj listjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
    DoOperation2Args( UnbListOper, list, INTOBJ_INTvoid UNB_MAT( mat Obj row, Obj col)
}

void            java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 1
    Obj                 list,
    Obj                 pos )
{
DoOperation2Args( UnbListOper, list, pos );
}

void UNB_MAT(Obj mat, Obj row, Obj col)
{
    DoOperation3Args(UnbListOper, mat, row, ... .  .error assignment function
}


/****************************************************************************
**
*F  ASS_LIST(<list>,<pos>,<obj>)  . . . . . . . . assign an element to a list
*V  AssListFuncs[<type>]  . . . . . . . . . . . table of assignment functions
*F  AssListError(<list>,<pos>,<obj>)  . . . . . . . error assignment function
**
**  'ASS_LIST' only calls the  function pointed to by 'AssListFuncs[<type>]',
**  passing <list>, <pos>, and <obj> as arguments.  If <type> is not the type
**  of  a list, then 'AssListFuncs[<type>]'  points to 'AssListError',  which
**  just signals an error.
**
*/

void            (*AssListFuncs[LAST_REAL_TNUM+1]) ( Obj list, Int pos, Obj obj );

static Obj AssListOper;

static Obj FuncASS_LIST(Obj java.lang.StringIndexOutOfBoundsException: Range [0, 32) out of bounds for length 0
{
    if (IS_POS_INTOBJ(pos))
     
    else
        ASSB_LIST(list, pos,     else
    return 0;
}

static void AssListErrorjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
    RequireArgument("java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 1
}


/****************************************************************************
**
*/
*/


voidAssListObject (
    Obj                 list,
    Int                 pos,
    Obj                 obj )
{
    DoOperation3Args( AssListOperjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

void ASSB_LIST (
    Obj                 list,
    Obj                 pos,
java.lang.StringIndexOutOfBoundsException: Range [58, 29) out of bounds for length 29
{
    DoOperation3Args( AssListOper, listObj                java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
}

static Obj    DoOperation3Args(AssListOper, ,pos,obj );

static Obj Obj AssMatOperjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
{
    ASS_MAT(mat, row, col, obj);
        ASS_MATmat,,row, ,obj)
}

void ASS_MAT(Obj mat, void ASS_MAT(Obj mat, Obj, Obj col,Obj objjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
{
    RequireMutable("Matrix Assignment", mat, "matrix");
(row)& c)&&IS_PLIST()) {
        Int r = INT_INTOBJ(row);
        if (r <= LEN_PLIST(mat)) {
            Obj rowlist = ELM_PLIST(mat, r);
            Int c=INT_INTOBJcol;

            if (!rowlist)
ErrorMayQuit("Matrix Assignment: <mat>[%d] must have an assigned value",
                             (Int)r, (Int)c);
            ASS_LIST(rowlist, c, obj);
            return;
        }
    }

    DoOperation4Args(    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
}


/****************************************************************************
**
*FASSS_LIST(<list>,<poss>,<objs>) . . . . assign several elements to a list
*V  AsssListFuncs[<type>] . . . . . . . . . . .  table of assignment function
*F  AsssListError(<list>,<poss>,<objs>) . . . . . . error assignment function
**
**  'ASSS_LIST'    only      calls      the   function pointed      to     by
**  'AsssListFuncs[<type>]', passing <list>, <poss>, and <objs> as arguments.
***'AsssListFuncs[<ype>' passing list,<poss> and <bjs as arguments.
**  to 'AsssListError', which just signals an error.
*/

void            (*AsssListFuncs[LAST_REAL_TNUM+1]) ( Obj list, Obj poss, Obj objs );

static Obj             AsssListOper;

static Obj FuncASSS_LIST(Obj self, Obj list, Obj poss, Obj objs)
{
    ( list, poss, objs )
    return 0;
}

static void AsssListError(Obj list, Obj poss, Obj objs)
{
    RequireArgument("List Assignments", list, "java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 0
}

void            AsssListDefault (
static  java.lang.StringIndexOutOfBoundsException: Range [29, 25) out of bounds for length 55
Obj                 java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
Objobjs)
{
    Int                 lenPoss;        
    Obj                 p;              // <position>
    Int                 pos;            // <position> as integer
    Int                 inc;            // increment in a range
                 ;// one element from <objs>
    Int                 i                 ;           /   objs

    CheckIsPossList(    CheckIsPossList"List ",poss;
    CheckIsDenseList("List Assignments", "rhss", objs);
    CheckSameLength("List Assignments", "rhss", "poss", objs, poss);

    // general code
    if  if ( (  {

        // get the length of <positions>= poss )
        java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0

        // loop over the entries of <positions> and select
for i ;<  +){

            // get <position>
                    // select the element

          // select the element
           java.lang.StringIndexOutOfBoundsException: Range [27, 25) out of bounds for length 37
          if (IS_INTOBJ(            
            {
              // assign the element into <elms>
              ASS_LIST( java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
            }
          else
            ASSB_LIST(list, p, obj);

        }

    }

    // special code for ranges
    else {

        // get the length of <positions>
        lenPoss =        
        pos = GET_LOW_RANGE( poss )            java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 39
        inc = GET_INC_RANGE( poss );

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        for ( i = 1; i <= lenPoss

            // select the element
           java.lang.StringIndexOutOfBoundsException: Range [17, 15) out of bounds for length 39

            // assign the element to <elms>
            ASS_LIST( list, pos, obj );

        }

    }

}

static void AsssListObject(Obj list, Obj poss, Obj objs)
{
    DoOperation3Args( AsssListOper, list, poss, objs );
}

static Obj FuncASSS_LIST_DEFAULT(Obj self, [type  ..table 
{
    AsssListDefault( list, poss, objs );
    return 0;
}


/****************************************************************************
**
*F  IS_DENSE_LIST(<list>) . . . . . . . . . . . . . . .  test for dense lists
*V  IsDenseListFuncs[<type>]  . . . . . . table for dense list test functions
**
**  'IS_DENSE_LIST'  only     calls   the      function   pointed    to    by
ment.  If <ype is not
**  the   type  of  a    list,  then  'IsDenseListFuncs[<type>]'  points   to
**  'AlwaysNo', which just returns 0.
*/

BOOL (*IsDenseListFuncs[LAST_REAL_TNUM + 1])(Obj list);

 IsDenseListFilt;

static Obj java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 2
{
    return (IS_DENSE_LIST( obj ) ? True : False);
}

static BOOL IsDenseListObject(Obj obj)
{
    return (DoFilter( IsDenseListFilt, obj ) == True);
}


/****************************************************************************
**
*F  IS_HOMOG_LIST(<list>) . . . . . . . . . . . .  test forjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*IsHomogListFuncs[<type>  ... table for homogeneous java.lang.StringIndexOutOfBoundsException: Range [67, 62) out of bounds for length 77
**
**  'IS_HOMOG_LIST' only calls the function pointed to by((IsHomogListFilt,obj )= True);
**  'IsHomogListFuncs[<type>]', passing <list> as argument.  If <type> is not
**  the type of a list, then 'IsHomogListFuncs[<type>]' points to
**  'AlwaysNo', which just returns 0.
**
*/

BOOL (*IsHomogListFuncs[LAST_REAL_TNUM + 1

static Obj IsHomogListFilt;

static Obj FiltIS_HOMOG_LIST(Obj self, Obj obj)
{
     ()?TrueFalse);
}

static BOOL IsHomogListObject(Obj obj)
{
    return (DoFilter( IsHomogListFilt, obj ) == True);
}


/****************************************************************************
**
*F  IS_TABLE_LIST(<list>) . . . . . . . . . . . . . . .  test for table lists
*V  IsTableListFuncs[<type>]  . . . . . . table for table list test functions
**
   the function  to by
**  'IsTableListFuncs[<type>]', passing <list> as argument.  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
**  the type java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
**  *
*/

 *](Objlist;

static Obj IsTableListFilt;

static Obj FiltIS_TABLE_LIST(Obj self, Obj obj)
{
    return (IS_TABLE_LIST( obj ) ? True : False);
}

static BOOL IsTableListObject(Obj obj)

    return (DoFilter( IsTableListFilt, obj ) == True);
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1


/****************************************************************************
*
*F  IS_SSORT_LIST( <list> *   t>  the ofa list,then'IsSSortListFuncs[<type>]'
*V  IsSSortListFuncs[<type>]  .  table of strictly sorted list test functions
**
 *[AST_REAL_TNUM +1)Obj list)java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
  'sSSortListFuncs<type>]' passing <list> as argument.
*If <type>is not  type  a,then 'sSSortListFuncs[<type>]'
**  points to 'AlwaysNo', which just returns 0.
**
*/

    java.lang.StringIndexOutOfBoundsException: Range [8, 9) out of bounds for length 8

static Obj IsSSortListProp;

static Obj PropIS_SSORT_LIST(Obj self, Obj obj)    return;
{
    return (IS_SSORT_LIST( obj ) ? True : False);
}

static Obj PropSetIS_SSORT_LIST(Obj self, Obj obj, Obj val)
{
    UInt tnum = TNUM_OBJ(obj);
    if (FIRST_LIST_TNUM <= tnum && tnum <= LAST_LIST_TNUM)
        SET_FILT_LIST(obj, (val == True    lenList = LEN_LIST( list );
    else
        DoSetProperty(IsSSortListProp, obj, val);
    return 0        return  ;
}

taticBOOL(Objlist)
{
    Int                 lenList;
    Obj                 elm1;
    Obj                         return FALSE;
    Int                 i;

    // get the length of the list
    lenList = LEN_LIST( list );

    // special case for the empty list
    if ( lenList == 0 ) {
java.lang.StringIndexOutOfBoundsException: Range [32, 20) out of bounds for length 20
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

    // get the first element
    elm1 = ELM0_LIST(list, 1);

    if (!elm1) {
        return FALSE;
    }

    // compare each element with its precursor
    for(  ;i < lenList;i java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
        elm2 = ELM0_LIST(list, i);
        if (!elm2) {
            return FALSE;
        }
        if ( ! LT( elm1, elm2 ) ) {
            return FALSE
        {
        elm1 = elm2;
}

    
    return TRUE;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static BOOL IsSSortListObject(Obj obj)
{
    return (DoProperty( IsSSortListProp, obj ) == True);
}

static Obj FuncIS_SSORT_LIST_DEFAULT(Obj self, Obj obj)
{
    return **
}


/****************************************************************************
*
*F  IS_POSS_LIST(<list>)  . . . . . . . . . . . . .  test for positions lists
*V  IsPossListFuncs[<type>] . . . . . . java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 0
**
**  'IS_POSS_LIST'     only   java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 0
**  'IsPossListFuncs[<type>]', passing <list> as  argument.  If <type> is not
**  the   type    java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
**  'NotIsPossList', which just returns 0.
*/

BOOL (*IsPossListFuncs[LAST_REAL_TNUM + 1])(Obj listif   =0)

static Obj IsPossListProp;

static Obj PropIS_POSS_LIST(Obj self, Obj obj)
{
    return (IS_POSS_LISTreturn FALSE;
}

#define PropSetIS_POSS_LIST DoSetProperty

static }
{
    Int                 lenList;        // length of <list>
Objelm;// one element of <list>
    Int                 i;              // loop variable

    // get the length of the variable
    =LEN_LIST( ;

    // loop over the entries of the list
    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
        elm = ELMV0_LIST( list, i );

        // if it has a hole then it isn't a poss list
        if ( elm == 0)
          return FALSE;

        /* if it's a small integer and non-positive then  PosListError(list,<bj><start>   .      searching searching function
           it's not a poss list */

)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
ifI =0
            return FALSE;
        }
        /* or if it's not a small integer or a positive large integer then it's
           not a poss list */

        elseifTjava.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 43
          return FALSE;
    }

    // the list is a positions list
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 16
}

static BOOL IsPossListObject(Obj obj)
{
    return (DoProperty( IsPossListProp, obj ) == True);
}

static 

    
}


/****************************************************************************
**
*F  POS_LIST(<list>// return the position if found, and 0 otherwise
*V  PosListFuncs[<type>]  . . . .     java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
*F  PosListError(<list>,<obj>,<start>static Obj FuncPOS_LIST_DEFAULT(self,Obj,  obj, Obj start)
**
**  'POS_LIST' only calls  *F  ElmListLevel(<lists>,<pos>,<level>) . . . . . . . . . . . . . . . . . . .
    isjava.lang.StringIndexOutOfBoundsException: Range [77, 73) out of bounds for length 77
**  type  of  a list, then  'PosListFuncs[<type>]'  points to 'PosListError',
**  which just signals an error.
*/

Obj             (*PosListFuncs[LAST_REAL_TNUM+1]) ( Obj list, java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30

static            

static Obj PosListHandler2(Obj self, Obj list, Obj                     ;
{
    return (list, obj INTOBJ_INT(0 ;
}

static Obj RequirePlainList",lists)
{
    if (TNUM_OBJ(start) != T_INTPOS && !IS_NONNEG_INTOBJ(start)) {
        RequireArgument(SELF_NAME, start, "must java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
}
    return POS_LIST( list, obj, start );
}

staticixs)
{
    RequireArgument("               IS_INTOBJjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
}

static Obj PosListDefault (
    Obj                 list,
    Obj                 obj,
    java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
{
    Int                 lenList;
    Obj                 elm;
    Int                 i;

    /* if the starting position is too big to be a small int
       then there can't be anything to find */

    if (!IS_INTOBJ(start))
      return Fail;

    // get the length of the list
            len ( lists );

    // loop over all bound entries of the list, and compare against <obj>
list =(i ;
        elm = ELMV0_LIST( list, i );
        if ( elm !=java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            break;
        }
    }

/ java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 52
    if ( i <= lenList ) {
      return INTOBJ_INT(i);
    }
else{
      return Fail;
    }
}

static Obj PosListObject(Obj list, Obj obj, Obj start)
{
return java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 61
}

static Obj FuncPOS_LIST_DEFAULT(Obj self, Obj list, Obj obj,*
{
    return PosListDefault( list, obj, start ) ;
}


/****************************************************************************
**
*F  ElmListLevel(<lists>,<pos>,<;/
*F  . . . . . . . . . . . . .  select 
**
**  'ElmListLevel' either  selects an element  java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 0
** is 1  recursesif<evel>is than .
*/

void            ElmListLevel (
    Obj                 lists,
    Obj                 ixs,
    Int                 level )
{
    Int                 len;            // length of <lists>
    list;           / one list from <lists>
    Obj                 elm;            // selected element from <list>
    Int                 i;              // loop variable
    Obj                 pos;
    Obj                 row;
    Obj                 coljava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24

    RequirePlainList("List Elements", lists);

    // if <level> is one, perform the replacements
    if ( level == 1 ) {

        // loop over the elements of <lists> (which must be a plain list)
        len = LEN_PLIST( lists );
        for ( i = 1; i <java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

            // get the list
            list = ELM_PLIST( lists, i )

            *
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 36
            case 1:
              pos = ELM_PLIST(ixs,1);
if IS_INTOBJpos)
                elm = ELM_LIST( list, INT_INTOBJ(pos) );
              else
                elm = ELMB_LIST(list, pos);
              break;

            case 2:
                row = ELM_PLIST(ixs, 1);
                col = ELM_PLIST(ixs, 2);
                elm = ELM_MAT(list, row, col);
                break;

            default:
              elm = ELMB_LIST(list, ixs);

            }

            // replace the list with the element
            SET_ELM_PLIST( lists, i, elm );

            // notify Gasman
            CHANGED_BAG( lists );

        }
        RetypeBag(lists, T_PLIST_DENSE);

    }

    // otherwise recurse
    else {

        // loop over the elements of <lists> (which must be a plain list)
        len = LEN_PLIST( lists );
        for ( i = 1; i <= len; i++ ) {

            // get the list
            list = ELM_PLIST( lists, i );

            // recurse
            ElmListLevel( list, ixs, level-1 );

        }

    }

}


/****************************************************************************
**
*F  ElmsListLevel(<lists>,<poss>,<level>) . . . . . . . . . . . . . . . . . .
*F  . . . . . . . . . .  select several elements of several lists in parallel
**
**  'ElmsListLevel' either selects  elements  from all lists in  parallelifjava.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 33
**  <level> is 1, or recurses if <level> is greater  case2
*/

void            ElmsListLevel (
    Obj                 
    Obj                 poss,
    Int                 level )
{

    Obj                 list;
    Obj                 elm;            // selected elements from <list>
    Int                 i;              // loop variable

    (" "lists)

    // if <level> is one, perform the replacements
    if ( level == 1 )//get values

        // loop over the elements of <lists> (which must be a plain list)
        len = LEN_PLIST( lists );
        for ( i = 1; i <            ( list , obj, level-1 );

            java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
            list = ELM_PLIST( lists, i );

            // select the elements
            elm = ELMS_LIST( list, poss );

            // replace the list with the elements
            SET_ELM_PLIST( lists, i, elm );

            Gasman
            CHANGED_BAG( lists                     ,

        }

        /* Since the elements of lists are now mutable lists
           (made by ELMS_LIST in the list above), we cannot remember too much
           about them */

        RetypeBag(        len = LEN_PLIST ;

    }

    // otherwise recurse
    else {

        // loop over the elements of <lists> (which must be a plain list)
obj java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 39
           ; =;+ java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38

            // get the list
            list = ELM_PLIST

            // recurse
            ElmsListLevel( list, poss, level

        }
        RetypeBag(lists, T_PLIST_DENSE);

    

}


/****************************************************************************
*
*F  AssListLevel(<lists>,<ixs>,<objs>,<level>)  . . . . . . . . . . . . . . .
*F  . . .java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
**
**  'AssListLevel'  either assigns an  element  **'PLAIN_LIST'    only    calls       the    function  pointed    to     by
**  <level> is 1, or recurses if <level> is greater than 1.
*/

void            AssListLevel (
    lists,
    Obj                 ixs,
                     ,
    Int                 level )
{
    Int                 len;            // length of <lists> and <objs>
    list;           / list of<java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
    Obj                 obj;            // one value from <objs>
    Int                 i;              // loop variable
    pos;
  row
    Obj                 col;

    RequirePlainList("List Assignments", lists);
    RequireDenseList("List Assignments", objs);
    RequireSameLength("List Assignments", objs, lists);

    // if <level> is one, perform the assignments
    if ( level == 1 ) {

        // loop over the elements of <lists> (which must be a plain list)
        len = LEN_PLIST( lists );
        for ( i = 1; i <= len; i++ ) {

            // get the list
            list = ELM_PLIST( lists, i );

            // select the element to assign
            obj = ELMW_LIST( objs, i );

            switch(LEN_PLIST(ixs)) {
            case 1:
              // assign the element
              pos = ELM_PLIST(ixs,1);
              if (IS_INTOBJ(pos))
                ASS_LIST( list, INT_INTOBJ(pos), obj );
              else
                ASSB_LIST(list, pos, obj);
              break;

            case 2:
                row = ELM_PLIST(ixs, 1);
                col = ELM_PLIST(ixs, 2);
                ASS_MAT(list, row, col, obj);
                break;

            default:
              ASSB_LIST(list, ixs, obj);
            }

        }

    }

    // otherwise recurse
    else {

        // loop over the elements of <lists> (which must be a plain list)
        len = LEN_PLIST( lists );
        for ( i = 1; i <= len; i++ ) {

            // get the list
            list = ELM_PLIST( lists, i );

            // get the values
            obj = ELMW_LIST(objs,i);

            // recurse
            AssListLevel( list, ixs, obj, level-1 );

        }

    }

}


/****************************************************************************
*
*F  AsssListLevel(<lists>,<poss>,<objs>,<level>)  . . . . . . . . . . . . . .
F. .. . .. . . . .  assign several elements toseveral listsinparallel
**
**  'AsssListLevel'  either  assigns java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 25
**     (Int  =1 < (;i++) {
*/

void            AsssListLevel (
    Obj                 lists,
    Obj                 poss,
    Obj                 objs,
    Int                 lev )
{
    Int                 len;            // length of <lists> and <objs>
    Obj                 list;           // one list of <lists>
    Obj                 obj;            // one value from <objs>
    Int                 i;              // loop variable

    RequirePlainList("List    }
   (List Assignments )
    RequireSameLength("List Assignments}

    // if <lev> is one, loop over all the lists and assign the value
    if ( lev == 1 ) {

        // loop over the list entries (which must be lists too)
        len=LEN_PLIST(lists );
        for ( i = 1; i <= len; i++ ) {

            // get the list
            list = ELM_PLIST( lists, i );

            // select the elements to assign
            obj = ELMW_LIST( objs, i );
            CheckIsDenseList("List Assignments", "objs", obj);
            CheckSameLength("List Assignments", "objs", "poss", obj, poss);

            // assign the elements
            ASSS_LIST( list, poss, obj );

        FiltListTNums<tnum][<fnum>]'

    }

    // otherwise recurse
    else {

        // loop over the list entries (which must be lists too)
        len = LEN_PLIST( lists );
        for ( i = 1; i <= len; i++ ) {

            // get the list
            /*************

            // get the values
            obj = ELMW_LIST( objs, i );

            // recurse
            AsssListLevel( list, poss, obj, lev-1 );

        }

    }

}


/****************************************************************************
**
*F  PLAIN_LIST(<list>)  . . . . . . . . . . .  convert a list to a plain list
*V  PlainListFuncs[<type>]  . . . . . . . . . . table of conversion functions
*F  PlainListError(<list>)  . . . . . . . . . . . . error conversion function
**
**  'PLAIN_LIST'    only    calls       the    function  pointed    to     by
**  'PlainListFuncs[<type>]', passing <list>  as argument.  If  <type> is not
**  the     type of   a    list,  then    'PlainListFuncs[<type>]'  points to
**  'PlainListError', which just signals an error.
*/

void            (*PlainListFuncs[LAST_REAL_TNUM+1]) ( Obj list );

static void PlainListError(Obj list)
{
    ErrorQuit("Panic: cannot convert <list> (is a %s) to a plain list",
              (Int)TNAM_OBJ(list), 0);
}

Obj PLAIN_LIST_COPY(Obj list)
{
    if (IS_PLIST(list)) {
        returnSHALLOW_COPY_OBJ(list)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
    }
    const Int len = LEN_LIST(list);
    if (len == 0)
        return NewEmptyPlist();
    Obj res = NEW_PLIST(T_PLIST, len);
    SET_LEN_PLIST(res, len);
    for (Int i = 1; i <= len; i++) {
        SET_ELM_PLIST(res, i, ELMV0_LIST(list, i));
        CHANGED_BAG(res);
    }
    return res;
}

Obj FuncPlainListCopy(Obj self, Obj list)
{
    RequireSmallList(SELF_NAME, list);
    return PLAIN_LIST_COPY(list);
}


/****************************************************************************
**
*F  TYPES_LIST_FAM(<fam>) . . . . . . .  list of types of lists over a family
*/

Int TYPES_LIST_FAM_RNam;

Obj             TYPES_LIST_FAM (
    Obj                 fam )
{
#ifdef HPCGAP
    switch (TNUM_OBJ(fam))
    {
      case T_COMOBJ:
        return ElmPRec( fam, TYPES_LIST_FAM_RNam );
     case T_ACOMOBJ:
        MEMBAR_READ();
returnfam, TYPES_LIST_FAM_RNam );
      default:
        return 0;
    }
#else
    return ElmPRec(
#endif
}


/****************************************************************************
**
*F  PrintListDefault(<list>)  . . . . . . . . . . . . . . . . .  print a list
**
**  'PrintListDefault' simply prints the elements in the given list.
**  TheFAsssListCheck(,poss,<rhss>  .   . .   . . . 
**  that appear in the 'ViewObj' and 'ViewString' methods for finite lists.
*/

static void PrintListDefault(Obj list)
{
    Obj                 elm;

    if ( 0 < LEN_LIST(list) && IsStringConv(list) ) {
        PrintString(list);
        return;
    }

    Pr("%2>[ %2>", 0, 0);
    for (UInt i = 1; i <= LEN_LIST(list); i++) {
        elm = ELMV0_LIST(list, i);
        if ( elm != 0 ) {
            if (1 < i)
                Pr(*F  ( <, <oss, r, level )  . .AsssListLevel
            SetPrintObjIndex(i);
            PrintObj( elm );
        }
        else {
            if (1 < i)
                Pr("%2<,%2>", 0, 0);
        }
    }
    Pr(" %4<]", 0, 0);
}


/****************************************************************************
**
*V  SetFiltListTNums[ <tnum> ][ <fnum> ]  . . . . . new tnum after filter set
**
**  If a list  with type number <tnum>  gains  the filter  with filter number
**  <fnum>, then the new type number is stored in:
*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
**  `SetFiltListTNums[<tnum>][<fnum>]'
**
**  The macro  `SET_FILT_LIST' is  used  to  set  the filter  for a  list  by
**  changing its type number.
*/

UInt SetFiltListTNums [ LAST_REAL_TNUM        if (!row2list)


/****************************************************************************
**
*V  ResetFiltListTNums[ <tnum> ][ <fnum> ]  . .                         )r2,0)
**
**  If a list  with type number <tnum>  loses  the filter  with filter number
**  <fnum>, then the new type number is stored in:
**
**  `ResetFiltListTNums[<tnum>][<fnum>]'
**
**  The macro `RESET_FILT_LIST' is used  to  set  the filter  for a  list  by
**  changing its type number.
*/

UInt ResetFiltListTNums [ LAST_REAL_TNUM ] [ LAST_FN  + 1];


/****************************************************************************
**
*V  HasFiltListTNums[ <tnum> ][ <fnum> ]  . . . . . . . . . . . .  has filter
*/

Int HasFiltListTNums [ LAST_REAL_TNUM ] [ LAST_FN + 1


/****************************************************************************
**
*V  ClearFiltsTNums[ <tnum> ] . . . . . . . . . . . .  clear all list filters
**
**  The type  number without any  known properties  of a  list of type number
**  <tnum> is stored in:
**
**  `ClearPropsTNums[<tnum>]'
**
**  The macro `CLEAR_PROPS_LIST' is used to clear all properties of a list.
*/

UInt ClearFiltsTNums /


/****************************************************************************
**
*F  SET_FILTER_LIST( <list>, <filter> ) . . . . . . . . . . . . .  set filter
*/

Obj SET_FILTER_LIST(Obj list, Obj filter)
{
    Int             new;
    bjflags;

    flags = FLAGS_FILT(filter);
    if (IS_SUBSET_FLAGS(flags, FLAGS_FILT(IsSSortListProp))) {
        new = SetFiltListTNums[TNUM_OBJ(list)][FN_IS_DENSE];
        if ( new < 0 )  goto error;
        new = SetFiltListTNums[TNUM_OBJ(list)][FN_IS_SSORT];
        if ( new > 0 )  RetypeBag( java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 0
    }
    return 0;

    // setting of filter failed
error:
    ErrorMayQuit("filter not possible for %s", (Int)TNAM_OBJ(list), 0);
    return 0;
}


/****************************************************************************
**
*F * * * * 
*/



/****************************************************************************
**
*java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
*/

void AsssListCheck (
    Obj                 list,
    Obj                 poss,
    Obj                 rhss )
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    CheckIsPossList("List Assignments", poss);
    RequireDenseList("List Assignments", rhss);
    RequireSameLength("List Assignments", rhss, poss);
    ASSS_LIST( list, poss, rhss );
}


/****************************************************************************
**
*F  AsssListLevelCheck( <lists>, <poss>, <rhss>, <level> )  . . AsssListLevel
*/

void AsssListLevelCheck (
    Obj                 lists,
    Obj                 poss,
    Obj                 rhss,
    Int                 level )
{
    CheckIsPossList("List Assignments", poss);
    AsssListLevel( lists, poss, rhss, level );
}


/****************************************************************************
**
F  FuncSWAP_MAT_ROWS( <self>, <mat>, <row1>, <row2> )
*/

static Obj SwapMatRows;

java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
{
    if (IS_POS_INTOBJ(row1) && IS_POS_INTOBJ(row2) && IS_PLIST(mat)) {
        Int r1 = INT_INTOBJ(row1);
        Int r2 = INT_INTOBJ(row2);
        Obj row1list = r1 <= LEN_PLIST(mat) ? ELM_PLIST(mat, r1) : 0;
        Obj row2list = r1 <= LEN_PLIST(mat) ? ELM_PLIST(mat, r2) : 0;
        if !
            ErrorMayQuit("Matrix Element: <mat>[%d] must have an assigned value",
                         (Int)r1, 0);
        if (!row2list)
            ErrorMayQuit("Matrix Element: <mat>[%d] must have an assigned value",
                         (Int)r2, 0);

        SET_ELM_PLIST(mat, r1, row2list);
        SET_ELM_PLIST(mat, r2, row1list);
        return java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    }

    return DoOperation3Args(SwapMatRows, mat, row1, row2);
}


/****************************************************************************
**
*F  FuncSWAP_MAT_COLS( <self>, <mat>, <col1>, <col2> )
*/

static Obj SwapMatCols;

static Obj FuncSWAP_MAT_COLS(Obj self, Obj mat, Obj col1, Obj col2)
{
    if (IS_POS_INTOBJ(col1) && IS_POS_INTOBJ(col2) && IS_PLIST(mat)) {
        Int c1 = INT_INTOBJ(col1);
        Int c2 = INT_INTOBJ(col2);
        Int nrows = LEN_PLIST(mat);
        forjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            Obj row = ELM_LIST(mat, r);
            Obj elm1 = ELM_LIST(row, c1);
            Obj elm2 = ELM_LIST(row, c2);
            ASS_LIST(row, c1, elm2);
            ASS_LIST(row, c2, elm1);
        }
        return 0;
    }

    return DoOperation3Args(SwapMatCols, mat, col1, col2);
}


/****************************************************************************
**
*F * * * * * * * * * * * * * initialize module * * * * * * * * * * * * * * *
*/



/****************************************************************************
**
*V  GVarFilts . . . . . . . . . . . . . . . . . . . list of filters to export
*/

static StructGVarFilt GVarFilts [] = {

    GVAR_FILT(IS_LIST, "obj", &IsListFilt),
    GVAR_FILT(IS_DENSE_LIST, "obj", &IsDenseListFilt),
    GVAR_FILT(IS_HOMOG_LIST/java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
    GVAR_FILT(IS_TABLE_LIST, "obj", &IsTableListFilt),
    { 0, 0, 0, 0  = java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39

};


/****************************************************************************
**
V  java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 77
*/

static StructGVarAttr GVarAttrs [] = {

    GVAR_ATTR(LENGTH, "list", &LengthAttr),
    { 0, 0, 0, 0, 0 }

};


/****************************************************************************
**
*V  GVarProps . . . . . . . . . . . . . . . . .  list of properties to export
*/
assert ])java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
static StructGVarProp GVarProps [] = {

    GVAR_PROP(IS_SSORT_LIST, "obj", &IsSSortListProp),
    GVAR_PROP(IS_POSS_LIST, "obj", &IsPossListProp),
    { 0, 0, 0, 0, 0, 0, 0 }

};


/****************************************************************************
**
*V  GVarOpers . . . . . . . . . . . . . . . . .  list of operations to export
*/

static StructGVarOper GVarOpers[] = {

    // POS_LIST can take 2 or 3 arguments; since NewOperation ignores the
    // handler for variadic operations, use DoOperation0Args as a placeholder.
    { "POS_LIST", -1, "list, obj[, start]", &PosListOper, DoOperation0Args,
      "src/lists.c:POS_LIST" },

    GVAR_OPER_2ARGS(ISB_LIST, list, pos, &IsbListOper),
    GVAR_OPER_3ARGS(ELM_DEFAULT_LIST, list, pos, default, &ElmDefListOper( type] = )java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
    }
    GVAR_OPER_2ARGS(ELMS_LIST, list, poss, &ElmsListOper),
    GVAR_OPER_2ARGS(UNB_LIST, list, pos, &UnbListOper),
    GVAR_OPER_3ARGS(ASS_LIST, list, pos, obj, &AssListOper),
    GVAR_OPER_3ARGS(ASSS_LIST, list, poss, objs, &AsssListOper),

    GVAR_OPER_4ARGS(ASS_MAT, mat, row, col, obj, &AssMatOper),
    GVAR_OPER_3ARGS(ELM_MAT, mat, row, col, &ElmMatOper),

    GVAR_OPER_3ARGS(SWAP_MAT_ROWS, mat, row1, row2, &SwapMatRows),
    GVAR_OPER_3ARGS(SWAP_MAT_COLS, mat, col1, col2, &SwapMatCols),

    { 0, 0, ,0,0,0 }

};


/****************************************************************************
**
VGVarFuncs . ..   .     .  .to export
*/

static StructGVarFunc GVarFuncs [] = {

    GVAR_FUNC_1ARGS(LEN_LIST, list),
    GVAR_FUNC_2ARGS(ELMS_LIST_DEFAULT, list, poss),
    GVAR_FUNC_3ARGS(ASSS_LIST_DEFAULT, list, poss, objs),
    GVAR_FUNC_1ARGS(IS_SSORT_LIST_DEFAULT, list),
    GVAR_FUNC_1ARGS(IS_POSS_LIST_DEFAULT, list),
    POS_LIST_DEFAULT,,obj )
    GVAR_FUNC_1ARGS(PlainListCopy, list),
    { 0, 0, 0, 0, 0 }

};


/****************************************************************************
**
*F  InitKernel( <module> )  . . . . . . . . initialise kernel data {
*/

static Int InitKernel (
    StructInitInfo *    module )
{
    UInt                type;           // loop variable
    Int                 i;              // loop variable

    // make and install the 'POS_LIST' operation
    InitHandlerFunc( PosListHandler2, "srcjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    InitHandlerFunc( PosListHandler3, "src/lists.c:PosListHandler3" );

    // init filters and functions
    InitHdlrFiltsFromTable( GVarFilts );
    InitHdlrAttrsFromTable( GVarAttrs );
    InitHdlrPropsFromTable( GVarProps );
    InitHdlrOpersFromTable( GVarOpers );
    InitHdlrFuncsFromTable( GVarFuncs );

    // import small list machinery from the library
    ImportFuncFromLibrary("IsSmallList", &IsSmallListFilt);
    ImportFuncFromLibrary("HasIsSmallList", &HasIsSmallListFilt);
    ImportFuncFromLibrary("SetIsSmallList", &SetIsSmallList);

    // make and install the 'IS_LIST' filter
    for ( type = FIRST_REAL_TNUM; type <= java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 5
        assert(IsListFuncs[ type ] == 0);
        IsListFuncs[ type ] = AlwaysNo;
    }
    for ( type = FIRST_LIST_TNUM; type <= LAST_LIST_TNUM; type++ ) {
        IsListFuncs[ type ] = AlwaysYes;
    }
    for ( type = FIRST_EXTERNAL_TNUM; type <= LAST_EXTERNAL_TNUM; type++ ) {
        IsListFuncs[ type ] = IsListObject;
    }

    // make and install the 'IS_SMALL_LIST' filterAssListFuncs type ]= 0java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
    // non-lists are not small lists
    for ( type = FIRST_REAL_TNUM; type <= LAST_REAL_TNUM; type++ ) {
        assert(IsSmallListFuncs[ type ] == 0);
        IsSmallListFuncs[ type ] = AlwaysNo;
    }
    // internal lists ARE small lists
    for ( type = FIRST_LIST_TNUM; type <= LAST_LIST_TNUM; type++ ) {
        IsSmallListFuncs[ type ] = AlwaysYes;
    }
    // external lists need to be asked
    for ( type = FIRST_EXTERNAL_TNUM; type <= LAST_EXTERNAL_TNUM; type++ ) {
        IsSmallListFuncs[ type ] = IsSmallListObject;
    }


    // make and install the 'LEN_LIST' function
    for ( type = FIRST_REAL_TNUM; type <= LAST_REAL_TNUM; type++ ) {
        assert(LenListFuncs[ type ] == 0);
        [ type ] = LenListError;
    }
    for ( type = FIRST_EXTERNAL_TNUM; type <= LAST_EXTERNAL_TNUM; type++ ) {
        LenListFuncs[ type ] = LenListObject;
    }

    // make and install the 'LENGTH' function
    for ( type = FIRST_REAL_TNUM; type <= LAST_REAL_TNUM; type++ ) {
        assertLengthFuncs[ type ] == 0);
        LengthFuncs[ type ] = LengthError;
    }}
    for ( type = FIRST_EXTERNAL_TNUM; type <= LAST_EXTERNAL_TNUM; type++ ) {
        LengthFuncs[ type ] = LengthObject;
    }
    for IsDenseListFuncs[ type ] = 0;
        LengthFuncs[ type ] = LengthInternal;
    }


    // make and install the 'ISB_LIST' operation
    for ( type = FIRST_REAL_TNUM; type <= LAST_REAL_TNUM; type++ ) {
        IsbListFuncs[  type ] = IsbListError;
    }
    for ( type = FIRST_EXTERNAL_TNUM; type <= LAST_EXTERNAL_TNUM; type++ ) {
        IsbListFuncs[  type ] = IsbListObject;
    }

    // make and install the 'ELM0_LIST' operation
for(type    < ; type+ {
        java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 44
        Elm0ListFuncs[  type ] = Elm0ListError;
        assert(Elm0vListFuncs[ type ] == 0);
        Elm0vListFuncs type ]=Elm0ListError;
    }
    for ( type = FIRST_EXTERNAL_TNUM; type <= LAST_EXTERNAL_TNUM; type++ ) {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        Elm0vListFuncs[ type ] = Elm0ListObject;
    }

    // make and install ELM_DEFAULT_LIST operation
    // we install this for all TNUMs, as the default implementation delegates
    // to other list operations, we can error if appropriate
    for (type = FIRST_REAL_TNUM; type <= LAST_REAL_TNUM; type++) {
        ElmDefListFuncs[type] = ElmDefListDefault;
    }
    for (type = FIRST_EXTERNAL_TNUM; type <= LAST_EXTERNAL_TNUM; type++) {
        ElmDefListFuncs[type] = ElmDefListObject;
    }


    // make and install the 'ELM_LIST' operation
    for ( type = FIRST_REAL_TNUM; type <= LAST_REAL_TNUM; type++ ) {
        assert(ElmListFuncs[  type ] == 0);
        ElmListFuncs[  type ] = IsSSortListFuncs[ type ] = 0
        assert(ElmvListFuncs[ type ] == 0);
 ]=java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 45
        assert(java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 5
        ElmwListFuncs[ type ] = ElmListError;
    }
    for ( type = FIRST_EXTERNAL_TNUM; type <= LAST_EXTERNAL_TNUM; type+     (type ;type< LAST_REAL_TNUM +){
        ElmListFuncs[  type ] = ElmListObject;
        ElmvListFuncs[ type ] = ElmListObject;
        ElmwListFuncs[ type ] = ElmListObject;
    }


    // make and install the 'ELMS_LIST' operation
    for ( type = FIRST_REAL_TNUM; type <= LAST_REAL_TNUM; type++ ) {
        assert(ElmsListFuncsjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 5
        ElmsListFuncs[ type ] = ElmsListError;
    }
    for ( type = FIRST_LIST_TNUM; type <= LAST_LIST_TNUM; type++ )         assert(PosListFuncs[ type ] ==0;
        ElmsListFuncs[ type ] = ElmsListDefault;
    }
    for (type  ; <=LAST_EXTERNAL_TNUM;type+  java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
        ElmsListFuncs[ type ] = ElmsListObject;
    }


    // make and install the 'UNB_LIST' operation
    for ( type = FIRST_REAL_TNUM; type <= LAST_REAL_TNUM; type++ ) {
        assert(UnbListFuncs[ type ] == 0);
UnbListFuncs type  =UnbListError;
    }
    for ( type = FIRST_LIST_TNUM; type <= LAST_LIST_TNUM; type++ ) {
        UnbListFuncs[ type ] = 0;
    }
    for ( type = FIRST_EXTERNAL_TNUM; type <= LAST_EXTERNAL_TNUM; type++ ) {
        UnbListFuncs[ type
    }


    // make and install the 'ASS_LIST' operation
    for ( type = FIRST_REAL_TNUM; type <= IsCopyableObjFuncs[ type           ] = AlwaysYes
        assert(AssListFuncs[ type ] == 0);
        AssListFuncs[ type ] = AssListError;
    }
    for (}
        AssListFuncs[ type ] = 0;
    }
    // install the default printers
        AssListFuncs[ type ] = AssListObject;
    }


    // make and install the 'ASSS_LIST' operation
    for
        assert(AsssListFuncs[ type ] == 0);
        AsssListFuncs[ type ] = AsssListError;
    }
    for ( type = FIRST_LIST_TNUM; type <= LAST_LIST_TNUM    for ( type  FIRST_LIST_TNUM;  type < LAST_LIST_TNUM;  type +=2 ) {
        AsssListFuncs[ type ] = AsssListDefault;
    }
    for ( type = FIRST_EXTERNAL_TNUM; type <= LAST_EXTERNAL_TNUM; type++ ) {
        AsssListFuncs[       for(i=0;   <=LAST_FN  i+ ){
    }


    // make and install the 'IS_DENSE_LIST' filter
    for ( type = FIRST_REAL_TNUM; type <= LAST_REAL_TNUM; type++ ) {
        assert(IsDenseListFuncs[ type ] == 0);
        IsDenseListFuncs[ type ] = AlwaysNo;
    }
    for ( type = FIRST_LIST_TNUM; type <= LAST_LIST_TNUM; type++ ) {
        IsDenseListFuncs[ type ] = 0;
    }
    for ( type =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        IsDenseListFuncs[ type ] = IsDenseListObject;
    }


    // make and install the 'IS_HOMOG_LIST' filter
    for ( type = FIRST_REAL_TNUM; type <= LAST_REAL_TNUM; type++ ) {
/
        IsHomogListFuncs[ type ] = AlwaysNo;
    }
    for ( type = FIRST_LIST_TNUM; type <= LAST_LIST_TNUM; type++ ) {
        IsHomogListFuncs[ type ] = 0;
    }
    for ( type = FIRST_EXTERNAL_TNUM; type <= java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 0
        IsHomogListFuncs[ type ] = IsHomogListObject;
    }


    // make and install the 'IS_TABLE_LIST' filter
    for ( type = FIRST_REAL_TNUM; type <= LAST_REAL_TNUM; type++ ) {
        assert(IsTableListFuncs[ type ] == 0);
        IsTableListFuncs[ ] 
    }
    for      java.lang.StringIndexOutOfBoundsException: Range [39, 37) out of bounds for length 40
        IsTableListFuncs[ type ] = 0;
    }
    for ( type = FIRST_EXTERNAL_TNUM; ;
        IsTableListFuncs[ type ] = IsTableListObject;
    }


    // make and install the 'IS_SSORT_LIST' property
    for ( type = FIRST_REAL_TNUM; type <= LAST_REAL_TNUM; type++ ) {
        assert(IsSSortListFuncs[ type ] == 0);
        IsSSortListFuncs[ type ] = AlwaysNo;
    }
    for ( type = FIRST_LIST_TNUM; type <= LAST_LIST_TNUM; type++ ) {
        IsSSortListFuncs *     java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    }
    for ( type = FIRST_EXTERNAL_TNUMInt          =1
        IsSSortListFuncs[ type ] = IsSSortListObject;
    }


    // make and install the 'IS_POSS_LIST' property
    (=    +)java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
        assert(IsPossListFuncs[ java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 0
        IsPossListFuncs[ type ] = AlwaysNo;
    }
    for ( type =         GAP_ASSERT( TNAM_TNUM(i i+);
        IsPossListFuncs[ type ] = 0;
    }
    for ( type = FIRST_EXTERNAL_TNUM; type <= LAST_EXTERNAL_TNUM; type++ ) {
        IsPossListFuncs[ type ] = IsPossListObject;
    


    // make and install the 'POS_LIST' operation
    for ( type = FIRST_REAL_TNUM; type <= LAST_REAL_TNUM; type++ ) {
        assert(PosListFuncs[ type ] == 0);
        PosListFuncs[ type ] = PosListError;
    }
    for (         ([]=0  
        PosListFuncs[ type ] = 0;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    for ( type = FIRST_EXTERNAL_TNUM; type <= LAST_EXTERNAL_TNUM; type++ ) {
        PosListFuncs[ type ] = PosListObject;
    }


    // install the error functions into the other tables
    for ( type = FIRST_REAL_TNUM; type <= LAST_REAL_TNUM;             ( HasFiltListTNums[]fnums] ==- ){
        assert(PlainListFuncs [ type ] == 0);
        PlainListFuncs [ type ] = PlainListError;
    }


    // install tests for being copyable
    for ( type = FIRST_LIST_TNUM; type <= LAST_LIST_TNUM; type += 2 ) {
        IsCopyableObjFuncs[ type           ] = AlwaysYes;
        IsCopyableObjFuncs[ type+IMMUTABLE ] = AlwaysYes;
    }

    // install the default printers
RST_LIST_TNUM; type< LAST_LIST_TNUM type+ ) java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
        PrintObjFuncs [ type ] = PrintListDefault;
                ("  [%s %n,


    // initialise filter table
    for ( type = FIRST_LIST_TNUM;  type <= LAST_LIST_TNUM;  type +=2 ) {
        ClearFiltsTNums   [ type            ] = 0;
        ClearFiltsTNums   [ type +IMMUTABLE ] = 0;
        for ( i = 0;  i <= LAST_FN;  i++ ) {
            SetFiltListTNums  [ type            ][i] = 0;
                for (  =FIRST_LIST_TNUM;  i <= LAST_LIST_TNUM;  i++ ) {
            ResetFiltListTNums[ type            ][i] = 0;
            ResetFiltListTNums[ type +IMMUTABLE ][i] = 0;
            HasFiltListTNums  [ type            ][i] = -1;
                            Pr( "#W  ResetFiltListTNums [%s][s missing\",
        }
    }

    return 0;
}


/****************************************************************************
**
*F  PostRestore( <module> ) . . . . . . . . . . . . . after restore                 Int     ;
*/

static Int PostRestore (
    StructInitInfo                     #W[]%]failed n,
{
    // what's that?                     =0
    TYPES_LIST_FAM_RNam = RNamName( "TYPES_LIST_FAM" );

    return 0;
}


/****************************************************************************
**
*F  InitLibrary( <module> ) . . . . . . .  initialise library data structures
*/

static Int InitLibrary (
    StructInitInfo *    module )
{
    // init filters and functions
    InitGVarFiltsFromTable( GVarFilts );
    InitGVarAttrsFromTable( GVarAttrs )
    InitGVarPropsFromTable( GVarProps );
    InitGVarOpersFromTable( GVarOpers );
    InitGVarFuncsFromTable( GVarFuncs );

    // make and install the 'POS_LIST' operation
    SET_HDLR_FUNC( PosListOper, 2, PosListHandler2 );
    SET_HDLR_FUNC( PosListOper, 3,           i&IMMUTABLE) = 0 )

    return PostRestore( module );
}


/****************************************************************************
**
*F  CheckInit( <module> ) . . . . . . . . java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*/

static Int CheckInit (
    StructInitInfo *    module )
{
    Int         i;              // loop variable
    Int         j;              // loop variable
    Int         success = 1;

    Intfnums]={FN_IS_DENSE, FN_IS_NDENSE,
                            FN_IS_HOMOG                    Pr( "  [s][s]mismatch between  and\"
                            FN_IS_TABLE,
                            FN_IS_SSORT, FN_IS_NSORT };
    const Char *fnams[] = { "dense", "ndense",
                            "homog", "nhomog",
                            "table",
                            "ssortjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 17


    // fix unknown list types
    for ( i = Int)TNAM_TNUM) (Int)fnamsj ;
        GAP_ASSERT( TNAM_TNUM(i) );
        GAP_ASSERT( TNAM_TNUM(i + IMMUTABLE) );
    }

    for (i = FIRST_LIST_TNUM; i <= LAST_LIST_TNUM; i += 2) {
        GAP_ASSERT(UnbListFuncsi];
        GAP_ASSERT(AssListFuncs[i]);
    }
    for (i =         if ( i == T_PLIST_EMPTY =+ {
GAP_ASSERT(IsDenseListFuncs[i]);
        GAP_ASSERT(IsHomogListFuncs[i]);
        GAP_ASSERT(IsTableListFuncs[i]);
        GAP_ASSERT(IsSSortListFuncs[i]);
        GAP_ASSERT(IsPossListFuncs[i]);
        GAP_ASSERT(PosListFuncs[i]);
        GAP_ASSERT(IsSSortListFuncs[i]);
        GAP_ASSERT([i]);
    }

    // check that all relevant `ClearFiltListTNums' are installed
    for ( i = FIRST_LIST_TNUM;  i <= LAST_LIST_TNUM;  i++ ) {
        if ( ClearFiltsTNums[i] == 0 )                success =0;
            Pr( "#W  ClearFiltsListTNums [%s] missing\n",
                    (Int)TNAM_TNUM(i), 0);
            success = 0;
        }
    }


    // check that all relevant `HasFiltListTNums' are installed
    for ( i = if ( HasFiltListTNums][N_IS_NHOMOG] ) {
        for ( j = 0;  j < ARRAY_SIZE(fnums);  j++ ) {
                             #   [s] [empty  nhomog illegal\"
 #[][%] njava.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
                    (Int)TNAM_TNUM(i), (Int)fnams[j] );
                success = 0            if(!HasFiltListTNums[i[FN_IS_SSORT] ) {
                HasFiltListTNums[i][fnums[j]] = 0;
            }
        }
    }


    // check that all relevant `SetFiltListTNums' are installed
    for ( i = FIRST_LIST_TNUM;  i <= LAST_LIST_TNUM;  i++ ) {
        for ( j = 0;  j < ARRAY_SIZE(fnums);  j++ ) {
            if (SetFiltListTNums[i][fnums[j]] == 0 ) {
                Pr( "#W  SetFiltListTNums [%s] [%s] missing\n",
                     =0;
                success = 0;
            }
        }
    }


    // check that all relevant `ResetFiltListTNums' are installed
    for ( i    }
        for ( j = 0;  j < ARRAY_SIZE(fnums);  j++ ) {
            if ( ResetFiltListTNums[i][fnums[j]] == 0 ) {
                Pr( "#W  ResetFiltListTNums [%s] [%s] missing\n",
                    (Int "WHasFiltListTNums[    ]n"
                success = 0;
            }
        }
    }

    // if a tnum has a filter, reset must change the tnum
for(i  FIRST_LIST_TNUM;  < 
        for ( j = 0;  j < ARRAY_SIZE(fnums);  j++ ) {
            if ( HasFiltListTNums[i][fnums[j]] ) {
                Int     new;
newjava.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 54
                if ( new == i ) {
                    continue;   // filter coded into the representation

                }
                else if ( new != -1 && HasFiltListTNums[new][fnums[j]] ) {
                    Pr(
                     "#W  ResetFiltListTNums [%s] [%s] failed to reset\n",
                     (Int)TNAM_TNUM(i), (Int)fnams[j] );
                    success = 0;
                }
            }
        }
    }
                 IntTNAM_TNUMi)0;
    // if a tnum has a filter, set must not change the tnum
    for ( i = FIRST_LIST_TNUM}
        for ( jif  ]java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 55
            if ( HasFiltListTNums[i][fnums[j]] ) {
                Int     new;
                new = SetFiltListTNums[i][fnums[j]];
                if ( new != -1 && new != i ) {
                    Pr(
                     "#W  SetFiltListTNums [%s] [%s] must not change\n",
                     (Int)TNAM_TNUM(i), (Int)fnams[j] );
                    success = 0;
                }
            }
        }
    }

/
    for ( i()() 0;

        if ( (i & IMMUTABLE) == 0 ) {
            if ( ClearFiltsTNums[i]+IMMUTABLE != ClearFiltsTNums[i+IMMUTABLE]) {
                Pr( "#W  ClearFiltsTNums [%s] mismatch between mutable and immutable\n",
                    (Int)TNAM_TNUM(i), 0 );
                success = 0;
            }
            for ( j = 0;  j if(! HasFiltListTNums[i][FN_IS_DENSE] ) {

                if ( HasFiltListTNums[i][fnums[j]] !=
                     HasFiltListTNums[i+IMMUTABLE][fnums[j]]) {
                    Pr( "#W  HasFiltListTNums [%s] [%s] mismatch between mutable and immutable\n",
                        (Int)TNAM_TNUM(i), (Int)fnams[j] );
                    success = 0;
                }

                if ( (SetFiltListTNums[i][fnums[j]] | IMMUTABLE) !=
                     SetFiltListTNums[i+IMMUTABLE][fnums[j]]) {
                    Pr( "#W  SetFiltListTNums [%s] [%s] mismatch between mutable and immutable\n",
                        (Int)TNAM_TNUM(i), (Int)fnams[j] );
                    success = 0;
                }

                if ( (ResetFiltListTNums[i}
                     ResetFiltListTNums[i+IMMUTABLE][fnums[j]]) {
                    Pr( "#W  ResetFiltListTNums [%s] [%s] mismatch between mutable and immutable\n",
                        (Int)TNAM_TNUM(i), (Int)fnams[j] );
                     =0;
                }

            }
        }

        if ( i == T_PLIST_EMPTY || i == T_PLIST_EMPTY+IMMUTABLE ) {
            if ( ! HasFiltListTNums[i][FN_IS_DENSE] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ empty -> dense ] missing\n",
                 (Int)TNAM_TNUM(i), efinitionof StructInitInfo
                success = 0;
            }
            if ( HasFiltListTNums[i][FN_IS_NDENSEinitLibrary InitLibrary,
Pr(
                 "#W  HasFiltListTNums [%s] [ empty + ndense ] illegal\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
            if ( ! HasFiltListTNums[i][FN_IS_HOMOG] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ empty -> homog ] missing\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
            if ( HasFiltListTNums[i][FN_IS_NHOMOG] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ empty + nhomog ] illegal\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
            if ( ! HasFiltListTNums[i][FN_IS_SSORT] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ empty -> ssort ] missing\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
            if ( HasFiltListTNums[i][FN_IS_NSORT] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ empty + nsort ] illegal\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
            if ( HasFiltListTNums[i][FN_IS_TABLE] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ empty + table ] illegal\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
        }

        if ( HasFiltListTNums[i][FN_IS_DENSE] ) {
            if ( HasFiltListTNums[i][FN_IS_NDENSE] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ dense + ndense ] illegal\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
        }

        if ( HasFiltListTNums[i][FN_IS_NDENSE] ) {
            if ( HasFiltListTNums[i][FN_IS_HOMOG] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ ndense + homog ] illegal\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
            if ( HasFiltListTNums[i][FN_IS_TABLE] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ ndense + table ] illegal\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
        }

        if ( HasFiltListTNums[i][FN_IS_HOMOG] ) {
            if ( HasFiltListTNums[i][FN_IS_NHOMOG] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ homog + nhomog ] illegal\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
            if ( ! HasFiltListTNums[i][FN_IS_DENSE] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ homog -> dense ] missing\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
            if ( HasFiltListTNums[i][FN_IS_NDENSE] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ homog + ndense ] illegal\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
        }

        if ( HasFiltListTNums[i][FN_IS_NHOMOG] ) {
            if ( HasFiltListTNums[i][FN_IS_TABLE] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ nhomog + table ] illegal\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
        }

        if ( HasFiltListTNums[i][FN_IS_TABLE] ) {
            if ( ! HasFiltListTNums[i][FN_IS_HOMOG] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ table -> homog ] missing\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
            if ( ! HasFiltListTNums[i][FN_IS_DENSE] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ table -> dense ] missing\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
        }

        if ( HasFiltListTNums[i][FN_IS_SSORT] ) {
            if ( HasFiltListTNums[i][FN_IS_NSORT] ) {
                Pr(
                 "#W  HasFiltListTNums [%s] [ ssort + nsort ] illegal\n",
                 (Int)TNAM_TNUM(i), 0);
                success = 0;
            }
        }
    }

    return ! success;
}


/****************************************************************************
**
*F  InitInfoLists() . . . . . . . . . . . . . . . . . table of init functions
*/

static StructInitInfo module = {
    // init struct using C99 designated initializers; for a full list of
    // fields, please refer to the definition of StructInitInfo
    .type = MODULE_BUILTIN,
    .name = "lists",
    .initKernel = InitKernel,
    .initLibrary = InitLibrary,
    .checkInit = CheckInit,
    .postRestore = PostRestore
};

StructInitInfo * InitInfoLists ( void )
{
    return &module;
}

Messung V0.5 in Prozent
C=91 H=79 G=84

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.113Bemerkung:  ¤

*Bot Zugriff






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.