/* Compiler: ECL 26.3.27                                                      */
/* Source: /build/ecl/src/ecl-26.3.27/src/cmp/cmparray.lsp                    */
#include <ecl/ecl-cmp.h>
#include "cmp/cmparray.eclh"
/* function definition for GUESS-ARRAY-ELEMENT-TYPE                           */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L4090guess_array_element_type(cl_object v1element_type)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 v1element_type = (cl_env_copy->function=ecl_fdefinition(VV[1]))->cfun.entry(1, v1element_type) /*  EXTRACT-CONSTANT-VALUE */;
 if (Null(v1element_type)){
  goto L2;
 }
 if (Null((cl_env_copy->function=ecl_fdefinition(VV[2]))->cfun.entry(1, v1element_type) /*  KNOWN-TYPE-P */)){
  goto L2;
 }
 value0 = cl_upgraded_array_element_type(2, v1element_type, ecl_cmp_symbol_value(cl_env_copy,VV[3]));
 return value0;
L2:;
 value0 = ECL_SYM("*",20);
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object L4090guess_array_element_type_va(cl_narg narg, cl_object v2element_type, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[0]);
 {
  return L4090guess_array_element_type(v2element_type);
 }
}
/* function definition for GUESS-ARRAY-DIMENSIONS-TYPE                        */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L4092guess_array_dimensions_type(cl_object v1orig_dimensions)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 if (!(ECL_CONSP(v1orig_dimensions))){
  goto L4;
 }
 T0 = ecl_car(ECL_NIL);
 if (!((T0)==(ECL_SYM("LIST",483)))){
  goto L4;
 }
 {
  cl_object v2l;
  v2l = cl_list_length(v1orig_dimensions);
  if (Null(v2l)){
   goto L2;
  }
  if (Null(cl_L(3, ecl_make_int8_t(-1), v2l, ecl_cmp_symbol_value(cl_env_copy,ECL_SYM("ARRAY-RANK-LIMIT",107))))){
   goto L2;
  }
  T0 = ecl_one_minus(v2l);
  value0 = cl_make_list(3, T0, ECL_SYM("INITIAL-ELEMENT",1286), ECL_SYM("*",20));
  return value0;
 }
L4:;
 goto L2;
L2:;
 {
  cl_object v2dimensions;
  v2dimensions = (cl_env_copy->function=ecl_fdefinition(VV[1]))->cfun.entry(2, v1orig_dimensions, VV[6]) /*  EXTRACT-CONSTANT-VALUE */;
  if (!((v2dimensions)==(VV[6]))){
   goto L11;
  }
  value0 = ECL_SYM("*",20);
  cl_env_copy->nvalues = 1;
  return value0;
L11:;
  {
   cl_fixnum v3;
   v3 = (cl_fixnum)(0);
   if (!(ECL_FIXNUMP(v2dimensions))){
    goto L13;
   }
   v3 = ecl_fixnum(v2dimensions);
   if (!((v3)<=(2305843009213693950))){
    goto L13;
   }
   if (!((v3)>=((cl_fixnum)(0)))){
    goto L13;
   }
  }
  value0 = ecl_list1(v2dimensions);
  cl_env_copy->nvalues = 1;
  return value0;
L13:;
  if (!(ECL_LISTP(v2dimensions))){
   goto L20;
  }
  {
   cl_object v3rank;
   v3rank = cl_list_length(v2dimensions);
   if (!(ecl_numberp(v3rank))){
    goto L20;
   }
   if (Null(cl_L(3, ecl_make_int8_t(-1), v3rank, ecl_cmp_symbol_value(cl_env_copy,ECL_SYM("ARRAY-RANK-LIMIT",107))))){
    goto L20;
   }
   {
    cl_object v4;
    v4 = ecl_make_cfun_va((cl_objectfn)LC4091__lambda8_va,ECL_NIL,Cblock,1);
    T0 = v4;
   }
   if (Null(cl_every(2, T0, v2dimensions))){
    goto L20;
   }
   T0 = cl_apply(2, ECL_SYM("*",20), v2dimensions);
   if (!(ecl_lower(T0,ecl_cmp_symbol_value(cl_env_copy,ECL_SYM("ARRAY-TOTAL-SIZE-LIMIT",110))))){
    goto L20;
   }
  }
  value0 = v2dimensions;
  cl_env_copy->nvalues = 1;
  return value0;
L20:;
  (cl_env_copy->function=ecl_fdefinition(VV[8]))->cfun.entry(2, VV[9], v1orig_dimensions) /*  CMPWARN */;
  value0 = ECL_SYM("*",20);
  cl_env_copy->nvalues = 1;
  return value0;
 }
}
static cl_object L4092guess_array_dimensions_type_va(cl_narg narg, cl_object v3orig_dimensions, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[5]);
 {
  return L4092guess_array_dimensions_type(v3orig_dimensions);
 }
}
/* local function LAMBDA126                                                   */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4093__lambda126(cl_object v1, cl_object v2)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  cl_object v4dimensions;
  T0 = ecl_car(v1);
  if (!((T0)==(ECL_SYM("FUNCALL",396)))){
   goto L3;
  }
  T0 = ecl_caadr(v1);
  if (!((T0)==(ECL_SYM("FUNCTION",398)))){
   goto L3;
  }
  v3 = ecl_cddr(v1);
  goto L2;
L3:;
  v3 = ecl_cdr(v1);
L2:;
  if (!(v3==ECL_NIL)){
   goto L7;
  }
  si_dm_too_few_arguments(v1);
L7:;
  {
   cl_object v5;
   v5 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v4dimensions = v5;
  }
  {
   cl_object v5;
   cl_object v6;
   cl_object v7form;
   cl_object v8_dimensions;
   cl_object v9_element_type;
   cl_object v10element_type;
   cl_object v11;
   cl_object v12_initial_element;
   cl_object v13initial_element;
   cl_object v14initial_element_supplied_p;
   cl_object v15_initial_contents;
   cl_object v16initial_contents;
   cl_object v17initial_contents_supplied_p;
   cl_object v18_adjustable;
   cl_object v19adjustable;
   cl_object v20;
   cl_object v21_fill_pointer;
   cl_object v22fill_pointer;
   cl_object v23;
   cl_object v24_displaced_to;
   cl_object v25displaced_to;
   cl_object v26;
   cl_object v27_displaced_index_offset;
   cl_object v28displaced_index_offset;
   cl_object v29;
   v5 = ECL_NIL;
   v6 = ECL_NIL;
   v7form = v1;
   v8_dimensions = cl_gensym(0);
   v9_element_type = cl_gensym(0);
   v10element_type = ECL_T;
   v11 = ECL_NIL;
   v12_initial_element = cl_gensym(0);
   v13initial_element = ECL_NIL;
   v14initial_element_supplied_p = ECL_NIL;
   v15_initial_contents = cl_gensym(0);
   v16initial_contents = ECL_NIL;
   v17initial_contents_supplied_p = ECL_NIL;
   v18_adjustable = cl_gensym(0);
   v19adjustable = ECL_NIL;
   v20 = ECL_NIL;
   v21_fill_pointer = cl_gensym(0);
   v22fill_pointer = ECL_NIL;
   v23 = ECL_NIL;
   v24_displaced_to = cl_gensym(0);
   v25displaced_to = ECL_NIL;
   v26 = ECL_NIL;
   v27_displaced_index_offset = cl_gensym(0);
   v28displaced_index_offset = ecl_make_int8_t(0);
   v29 = ECL_NIL;
   {
    cl_fixnum v30;
    v30 = ecl_length(v3);
    {
     cl_fixnum v31;
     v31 = (v30>=0&&(cl_fixnum)(2)>0?(v30)%((cl_fixnum)(2)):ecl_imod(v30,(cl_fixnum)(2)));
     if ((v31)==0) {
      goto L38;
     }
    }
   }
   value0 = v1;
   cl_env_copy->nvalues = 1;
   return value0;
L38:;
   {
    cl_object v30;
    cl_object v31;
    cl_object v32;
    {
     cl_object v33;
     v33 = v3;
     if (ecl_unlikely(!ECL_LISTP(v33))) FEtype_error_list(v33);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v30 = v33;
    }
    v31 = ECL_NIL;
    v32 = v30;
    {
     cl_object v33;
     cl_object v34;
     cl_object v35;
     {
      cl_object v36;
      v36 = ecl_cdr(v3);
      if (ecl_unlikely(!ECL_LISTP(v36))) FEtype_error_list(v36);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v33 = v36;
     }
     v34 = ECL_NIL;
     v35 = v33;
     {
      cl_object v36;
      v36 = ECL_NIL;
L51:;
      if (!(ecl_endp(v32))){
       goto L53;
      }
      goto L52;
L53:;
      v31 = ECL_CONS_CAR(v32);
      {
       cl_object v37;
       v37 = ecl_cddr(v32);
       if (ecl_unlikely(!ECL_LISTP(v37))) FEtype_error_list(v37);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v32 = v37;
      }
      if (!(ecl_endp(v35))){
       goto L61;
      }
      goto L52;
L61:;
      v34 = ECL_CONS_CAR(v35);
      {
       cl_object v37;
       v37 = ecl_cddr(v35);
       if (ecl_unlikely(!ECL_LISTP(v37))) FEtype_error_list(v37);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v35 = v37;
      }
      v36 = ECL_NIL;
      if (Null(cl_keywordp(v31))){
       goto L74;
      }
      if (!((v31)==(ECL_SYM("ALLOW-OTHER-KEYS",1227)))){
       goto L72;
      }
      goto L73;
L74:;
L73:;
      value0 = v1;
      cl_env_copy->nvalues = 1;
      return value0;
L72:;
      if (!((v31)==(ECL_SYM("DISPLACED-INDEX-OFFSET",1251)))){
       goto L76;
      }
      if (v29!=ECL_NIL) {
       goto L76;
      }
      v36 = ECL_T;
      v28displaced_index_offset = v34;
      v29 = ECL_T;
      v6 = CONS(ECL_SYM("DISPLACED-INDEX-OFFSET",1251),v6);
L76:;
      if (!((v31)==(ECL_SYM("DISPLACED-TO",1252)))){
       goto L86;
      }
      if (v26!=ECL_NIL) {
       goto L86;
      }
      v36 = ECL_T;
      v25displaced_to = v34;
      v26 = ECL_T;
      v6 = CONS(ECL_SYM("DISPLACED-TO",1252),v6);
L86:;
      if (!((v31)==(ECL_SYM("FILL-POINTER",1270)))){
       goto L96;
      }
      if (v23!=ECL_NIL) {
       goto L96;
      }
      v36 = ECL_T;
      v22fill_pointer = v34;
      v23 = ECL_T;
      v6 = CONS(ECL_SYM("FILL-POINTER",1270),v6);
L96:;
      if (!((v31)==(ECL_SYM("ADJUSTABLE",1224)))){
       goto L106;
      }
      if (v20!=ECL_NIL) {
       goto L106;
      }
      v36 = ECL_T;
      v19adjustable = v34;
      v20 = ECL_T;
      v6 = CONS(ECL_SYM("ADJUSTABLE",1224),v6);
L106:;
      if (!((v31)==(ECL_SYM("INITIAL-CONTENTS",1287)))){
       goto L116;
      }
      if (v17initial_contents_supplied_p!=ECL_NIL) {
       goto L116;
      }
      v36 = ECL_T;
      v16initial_contents = v34;
      v17initial_contents_supplied_p = ECL_T;
      v6 = CONS(ECL_SYM("INITIAL-CONTENTS",1287),v6);
L116:;
      if (!((v31)==(ECL_SYM("INITIAL-ELEMENT",1286)))){
       goto L126;
      }
      if (v14initial_element_supplied_p!=ECL_NIL) {
       goto L126;
      }
      v36 = ECL_T;
      v13initial_element = v34;
      v14initial_element_supplied_p = ECL_T;
      v6 = CONS(ECL_SYM("INITIAL-ELEMENT",1286),v6);
L126:;
      if (!((v31)==(ECL_SYM("ELEMENT-TYPE",1255)))){
       goto L136;
      }
      if (v11!=ECL_NIL) {
       goto L136;
      }
      v36 = ECL_T;
      v10element_type = v34;
      v11 = ECL_T;
      v6 = CONS(ECL_SYM("ELEMENT-TYPE",1255),v6);
L136:;
      if (v36!=ECL_NIL) {
       goto L71;
      }
      value0 = v1;
      cl_env_copy->nvalues = 1;
      return value0;
L71:;
      goto L51;
L52:;
     }
    }
   }
   {
    cl_object v30;
    {
     cl_object v31dimensions_type;
     cl_object v32guessed_element_type;
     v31dimensions_type = L4092guess_array_dimensions_type(v4dimensions);
     v32guessed_element_type = L4090guess_array_element_type(v10element_type);
     if (v17initial_contents_supplied_p!=ECL_NIL) {
      goto L149;
     }
     if ((v32guessed_element_type)==(ECL_SYM("*",20))) {
      goto L153;
     }
     v10element_type = cl_list(2, ECL_SYM("QUOTE",682), v32guessed_element_type);
L153:;
     {
      cl_object v33function;
      v33function = ECL_SYM("MAKE-PURE-ARRAY",1115);
      if (!(ECL_LISTP(v31dimensions_type))){
       goto L158;
      }
      T0 = ecl_cdr(v31dimensions_type);
      if (!(T0==ECL_NIL)){
       goto L158;
      }
      T0 = ecl_car(v31dimensions_type);
      if (!(ECL_FIXNUMP(T0)||ECL_BIGNUMP(T0))){
       goto L158;
      }
      v33function = ECL_SYM("MAKE-VECTOR",1118);
      v4dimensions = ecl_car(v31dimensions_type);
L158:;
      v7form = cl_list(7, v33function, v9_element_type, v8_dimensions, v18_adjustable, v21_fill_pointer, v24_displaced_to, v27_displaced_index_offset);
     }
     if (Null(v14initial_element_supplied_p)){
      goto L166;
     }
     v7form = cl_listX(4, ECL_SYM("FILL-ARRAY-WITH-ELT",1781), v7form, v12_initial_element, VV[15]);
L166:;
     T0 = cl_list(3, ECL_SYM("ARRAY",98), v32guessed_element_type, v31dimensions_type);
     v7form = cl_list(3, ECL_SYM("TRULY-THE",2081), T0, v7form);
    }
L149:;
    v30 = v7form;
    if (!((v30)==(v1))){
     goto L170;
    }
    value0 = v1;
    cl_env_copy->nvalues = 1;
    return value0;
L170:;
    T0 = cl_list(2, v8_dimensions, v4dimensions);
    v5 = CONS(T0,v5);
    {
     cl_object v31;
     cl_object v32;
     cl_object v33;
     {
      cl_object v34;
      v34 = cl_nreverse(v6);
      if (ecl_unlikely(!ECL_LISTP(v34))) FEtype_error_list(v34);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v31 = v34;
     }
     v32 = ECL_NIL;
     v33 = v31;
L180:;
     if (!(ecl_endp(v33))){
      goto L182;
     }
     goto L181;
L182:;
     v32 = ECL_CONS_CAR(v33);
     {
      cl_object v34;
      v34 = ECL_CONS_CDR(v33);
      if (ecl_unlikely(!ECL_LISTP(v34))) FEtype_error_list(v34);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v33 = v34;
     }
     if (!((v32)==(ECL_SYM("DISPLACED-INDEX-OFFSET",1251)))){
      goto L191;
     }
     T0 = cl_list(2, v27_displaced_index_offset, v28displaced_index_offset);
     v5 = CONS(T0,v5);
L191:;
     if (!((v32)==(ECL_SYM("DISPLACED-TO",1252)))){
      goto L194;
     }
     T0 = cl_list(2, v24_displaced_to, v25displaced_to);
     v5 = CONS(T0,v5);
L194:;
     if (!((v32)==(ECL_SYM("FILL-POINTER",1270)))){
      goto L197;
     }
     T0 = cl_list(2, v21_fill_pointer, v22fill_pointer);
     v5 = CONS(T0,v5);
L197:;
     if (!((v32)==(ECL_SYM("ADJUSTABLE",1224)))){
      goto L200;
     }
     T0 = cl_list(2, v18_adjustable, v19adjustable);
     v5 = CONS(T0,v5);
L200:;
     if (!((v32)==(ECL_SYM("INITIAL-CONTENTS",1287)))){
      goto L203;
     }
     T0 = cl_list(2, v15_initial_contents, v16initial_contents);
     v5 = CONS(T0,v5);
L203:;
     if (!((v32)==(ECL_SYM("INITIAL-ELEMENT",1286)))){
      goto L206;
     }
     T0 = cl_list(2, v12_initial_element, v13initial_element);
     v5 = CONS(T0,v5);
L206:;
     if (!((v32)==(ECL_SYM("ELEMENT-TYPE",1255)))){
      goto L190;
     }
     T0 = cl_list(2, v9_element_type, v10element_type);
     v5 = CONS(T0,v5);
L190:;
     goto L180;
L181:;
    }
    if (v11!=ECL_NIL) {
     goto L212;
    }
    T0 = cl_list(2, v9_element_type, v10element_type);
    v5 = CONS(T0,v5);
L212:;
    if (v14initial_element_supplied_p!=ECL_NIL) {
     goto L215;
    }
    T0 = cl_list(2, v12_initial_element, v13initial_element);
    v5 = CONS(T0,v5);
L215:;
    if (v17initial_contents_supplied_p!=ECL_NIL) {
     goto L218;
    }
    T0 = cl_list(2, v15_initial_contents, v16initial_contents);
    v5 = CONS(T0,v5);
L218:;
    if (v20!=ECL_NIL) {
     goto L221;
    }
    T0 = cl_list(2, v18_adjustable, v19adjustable);
    v5 = CONS(T0,v5);
L221:;
    if (v23!=ECL_NIL) {
     goto L224;
    }
    T0 = cl_list(2, v21_fill_pointer, v22fill_pointer);
    v5 = CONS(T0,v5);
L224:;
    if (v26!=ECL_NIL) {
     goto L227;
    }
    T0 = cl_list(2, v24_displaced_to, v25displaced_to);
    v5 = CONS(T0,v5);
L227:;
    if (v29!=ECL_NIL) {
     goto L230;
    }
    T0 = cl_list(2, v27_displaced_index_offset, v28displaced_index_offset);
    v5 = CONS(T0,v5);
L230:;
    T0 = cl_nreverse(v5);
    value0 = cl_list(3, ECL_SYM("LET",479), T0, v30);
    return value0;
   }
  }
 }
}
static cl_object LC4093__lambda126_va(cl_narg narg, cl_object v31, cl_object v32, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[12]);
 {
  return LC4093__lambda126(v31, v32);
 }
}
/* function definition for EXPAND-VECTOR-PUSH                                 */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L4094expand_vector_push(cl_object v1whole, cl_object v2env, cl_object v3extend)
{
 cl_object T0, T1, T2, T3, T4, T5, T6, T7, T8;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v4args;
  v4args = ecl_cdr(v1whole);
  T0 = ecl_car(v4args);
  if ((T0)==(VV[17])) {
   goto L5;
  }
  if ((cl_env_copy->function=ecl_fdefinition(VV[18]))->cfun.entry(0) /*  POLICY-OPEN-CODE-AREF/ASET */!=ECL_NIL) {
   goto L3;
  }
  goto L4;
L5:;
L4:;
  value0 = v1whole;
  cl_env_copy->nvalues = 1;
  return value0;
L3:;
  {
   cl_fixnum v5;
   v5 = ecl_length(v4args);
   if (Null(v3extend)){
    goto L10;
   }
   T0 = ecl_make_int8_t(3);
   goto L9;
L10:;
   T0 = ecl_make_int8_t(2);
L9:;
   if ((((cl_fixnum)(2))<=(v5) && (v5)<=(ecl_fixnum(T0)))) {
    goto L7;
   }
  }
  T0 = ecl_car(v1whole);
  (cl_env_copy->function=ecl_fdefinition(VV[8]))->cfun.entry(3, VV[19], T0, v1whole) /*  CMPWARN */;
  T0 = ecl_car(v1whole);
  T1 = cl_list(2, ECL_SYM("QUOTE",682), T0);
  T2 = cl_list(2, ECL_SYM("QUOTE",682), v1whole);
  value0 = cl_list(4, ECL_SYM("SIMPLE-PROGRAM-ERROR",1167), VV[19], T1, T2);
  return value0;
L7:;
  T0 = ecl_car(v4args);
  T1 = cl_list(2, VV[17], T0);
  T2 = ecl_cadr(v4args);
  T3 = cl_list(2, VV[20], T2);
  T4 = cl_list(2, T1, T3);
  if (Null(v3extend)){
   goto L14;
  }
  T6 = ecl_cddr(v4args);
  T5 = cl_listX(4, ECL_SYM("VECTOR-PUSH-EXTEND",905), VV[17], VV[20], T6);
  goto L13;
L14:;
  T5 = ECL_NIL;
L13:;
  T6 = cl_list(2, ECL_T, T5);
  T7 = cl_list(3, ECL_SYM("COND",249), VV[25], T6);
  T8 = cl_list(4, ECL_SYM("LET",479), VV[23], VV[24], T7);
  value0 = cl_list(5, ECL_SYM("LET*",480), T4, VV[21], VV[22], T8);
  return value0;
 }
}
/* local function LAMBDA190                                                   */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4095__lambda190(cl_object v1, cl_object v2env)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  T0 = ecl_car(v1);
  if (!((T0)==(ECL_SYM("FUNCALL",396)))){
   goto L3;
  }
  T0 = ecl_caadr(v1);
  if (!((T0)==(ECL_SYM("FUNCTION",398)))){
   goto L3;
  }
  v3 = ecl_cddr(v1);
  goto L2;
L3:;
  v3 = ecl_cdr(v1);
L2:;
  value0 = L4094expand_vector_push(v1, v2env, ECL_NIL);
  return value0;
 }
}
static cl_object LC4095__lambda190_va(cl_narg narg, cl_object v4, cl_object v5env, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[26]);
 {
  return LC4095__lambda190(v4, v5env);
 }
}
/* local function LAMBDA194                                                   */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4096__lambda194(cl_object v1, cl_object v2env)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  T0 = ecl_car(v1);
  if (!((T0)==(ECL_SYM("FUNCALL",396)))){
   goto L3;
  }
  T0 = ecl_caadr(v1);
  if (!((T0)==(ECL_SYM("FUNCTION",398)))){
   goto L3;
  }
  v3 = ecl_cddr(v1);
  goto L2;
L3:;
  v3 = ecl_cdr(v1);
L2:;
  value0 = L4094expand_vector_push(v1, v2env, ECL_T);
  return value0;
 }
}
static cl_object LC4096__lambda194_va(cl_narg narg, cl_object v4, cl_object v5env, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[27]);
 {
  return LC4096__lambda194(v4, v5env);
 }
}
/* local function LAMBDA198                                                   */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4097__lambda198(cl_object v1, cl_object v2env)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  cl_object v4array;
  T0 = ecl_car(v1);
  if (!((T0)==(ECL_SYM("FUNCALL",396)))){
   goto L3;
  }
  T0 = ecl_caadr(v1);
  if (!((T0)==(ECL_SYM("FUNCTION",398)))){
   goto L3;
  }
  v3 = ecl_cddr(v1);
  goto L2;
L3:;
  v3 = ecl_cdr(v1);
L2:;
  if (!(v3==ECL_NIL)){
   goto L7;
  }
  si_dm_too_few_arguments(v1);
L7:;
  {
   cl_object v5;
   v5 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v4array = v5;
  }
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[18]))->cfun.entry(1, v2env) /*  POLICY-OPEN-CODE-AREF/ASET */)){
   goto L12;
  }
  value0 = L4098expand_aref(v4array, v3, v2env);
  return value0;
L12:;
  value0 = v1;
  cl_env_copy->nvalues = 1;
  return value0;
 }
}
static cl_object LC4097__lambda198_va(cl_narg narg, cl_object v5, cl_object v6env, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[28]);
 {
  return LC4097__lambda198(v5, v6env);
 }
}
/* function definition for EXPAND-AREF                                        */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L4098expand_aref(cl_object v1array, cl_object v2indices, cl_object v3env)
{
 cl_object T0, T1, T2, T3;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 T0 = cl_list(2, VV[30], v1array);
 T1 = ecl_list1(T0);
 T2 = L4105expand_row_major_index(VV[30], v2indices, v3env);
 T3 = cl_list(3, ECL_SYM("ROW-MAJOR-AREF",734), VV[30], T2);
 value0 = cl_list(4, ECL_SYM("LET",479), T1, VV[31], T3);
 return value0;
}
static cl_object L4098expand_aref_va(cl_narg narg, cl_object v4array, cl_object v5indices, cl_object v6env, ...)
{
 if (ecl_unlikely(narg!=3)) FEwrong_num_arguments(VV[29]);
 {
  return L4098expand_aref(v4array, v5indices, v6env);
 }
}
/* local function LAMBDA204                                                   */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4099__lambda204(cl_object v1, cl_object v2env)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  cl_object v4array;
  T0 = ecl_car(v1);
  if (!((T0)==(ECL_SYM("FUNCALL",396)))){
   goto L3;
  }
  T0 = ecl_caadr(v1);
  if (!((T0)==(ECL_SYM("FUNCTION",398)))){
   goto L3;
  }
  v3 = ecl_cddr(v1);
  goto L2;
L3:;
  v3 = ecl_cdr(v1);
L2:;
  if (!(v3==ECL_NIL)){
   goto L7;
  }
  si_dm_too_few_arguments(v1);
L7:;
  {
   cl_object v5;
   v5 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v4array = v5;
  }
  if (!(v3==ECL_NIL)){
   goto L12;
  }
  (cl_env_copy->function=ecl_fdefinition(VV[8]))->cfun.entry(2, VV[35], v1) /*  CMPWARN */;
  value0 = v1;
  cl_env_copy->nvalues = 1;
  return value0;
L12:;
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[18]))->cfun.entry(1, v2env) /*  POLICY-OPEN-CODE-AREF/ASET */)){
   goto L15;
  }
  {
   cl_object v5indices;
   cl_object v6value;
   v5indices = ecl_butlast(v3,1);
   T0 = ecl_last(v3,1);
   v6value = ecl_car(T0);
   value0 = L4100expand_aset(v4array, v5indices, v6value, v2env);
   return value0;
  }
L15:;
  value0 = v1;
  cl_env_copy->nvalues = 1;
  return value0;
 }
}
static cl_object LC4099__lambda204_va(cl_narg narg, cl_object v7, cl_object v8env, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[34]);
 {
  return LC4099__lambda204(v7, v8env);
 }
}
/* function definition for EXPAND-ASET                                        */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L4100expand_aset(cl_object v1array, cl_object v2indices, cl_object v3value, cl_object v4env)
{
 cl_object T0, T1, T2, T3, T4, T5;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v5_array;
  v5_array = cl_gensym(1, _ecl_static_0);
  T0 = cl_list(2, v5_array, v1array);
  T1 = ecl_list1(T0);
  T2 = cl_list(2, VV[37], v5_array);
  T3 = cl_list(3, ECL_SYM("DECLARE",276), T2, VV[38]);
  T4 = L4105expand_row_major_index(v5_array, v2indices, v4env);
  T5 = cl_list(4, ECL_SYM("ROW-MAJOR-ASET",1156), v5_array, T4, v3value);
  value0 = cl_list(4, ECL_SYM("LET*",480), T1, T3, T5);
  return value0;
 }
}
static cl_object L4100expand_aset_va(cl_narg narg, cl_object v6array, cl_object v7indices, cl_object v8value, cl_object v9env, ...)
{
 if (ecl_unlikely(narg!=4)) FEwrong_num_arguments(VV[36]);
 {
  return L4100expand_aset(v6array, v7indices, v8value, v9env);
 }
}
/* local function LAMBDA210                                                   */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4101__lambda210(cl_object v1, cl_object v2env)
{
 cl_object T0, T1, T2;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  cl_object v4array;
  T0 = ecl_car(v1);
  if (!((T0)==(ECL_SYM("FUNCALL",396)))){
   goto L3;
  }
  T0 = ecl_caadr(v1);
  if (!((T0)==(ECL_SYM("FUNCTION",398)))){
   goto L3;
  }
  v3 = ecl_cddr(v1);
  goto L2;
L3:;
  v3 = ecl_cdr(v1);
L2:;
  if (!(v3==ECL_NIL)){
   goto L7;
  }
  si_dm_too_few_arguments(v1);
L7:;
  {
   cl_object v5;
   v5 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v4array = v5;
  }
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[18]))->cfun.entry(1, v2env) /*  POLICY-OPEN-CODE-AREF/ASET */)){
   goto L12;
  }
  T0 = cl_list(2, VV[41], v4array);
  T1 = ecl_list1(T0);
  T2 = L4105expand_row_major_index(VV[41], v3, v2env);
  value0 = cl_list(4, ECL_SYM("LET",479), T1, VV[42], T2);
  return value0;
L12:;
  value0 = v1;
  cl_env_copy->nvalues = 1;
  return value0;
 }
}
static cl_object LC4101__lambda210_va(cl_narg narg, cl_object v5, cl_object v6env, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[40]);
 {
  return LC4101__lambda210(v5, v6env);
 }
}
/* function definition for EXPAND-ZERO-DIM-INDEX-CHECK                        */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L4102expand_zero_dim_index_check(cl_object v1a, cl_object v2env)
{
 cl_object T0, T1;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 if (Null((cl_env_copy->function=ecl_fdefinition(VV[44]))->cfun.entry(1, v2env) /*  POLICY-TYPE-ASSERTIONS */)){
  goto L2;
 }
 T0 = cl_list(3, VV[45], v1a, ECL_SYM("ARRAY",98));
 T1 = cl_list(3, VV[46], v1a, ecl_make_int8_t(0));
 value0 = cl_list(4, ECL_SYM("PROGN",674), T0, T1, ecl_make_int8_t(0));
 return value0;
L2:;
 value0 = ecl_make_int8_t(0);
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object L4102expand_zero_dim_index_check_va(cl_narg narg, cl_object v3a, cl_object v4env, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[43]);
 {
  return L4102expand_zero_dim_index_check(v3a, v4env);
 }
}
/* function definition for EXPAND-VECTOR-INDEX-CHECK                          */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L4104expand_vector_index_check(cl_object v1a, cl_object v2index, cl_object v3env)
{
 cl_object T0, T1, T2;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 if (Null((cl_env_copy->function=ecl_fdefinition(VV[44]))->cfun.entry(1, v3env) /*  POLICY-TYPE-ASSERTIONS */)){
  goto L2;
 }
 T0 = cl_list(2, VV[51], v2index);
 T1 = ecl_list1(T0);
 T2 = LC4103expansion(v1a, VV[51]);
 value0 = cl_list(4, ECL_SYM("LET",479), T1, VV[52], T2);
 return value0;
L2:;
 value0 = v2index;
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object L4104expand_vector_index_check_va(cl_narg narg, cl_object v4a, cl_object v5index, cl_object v6env, ...)
{
 if (ecl_unlikely(narg!=3)) FEwrong_num_arguments(VV[48]);
 {
  return L4104expand_vector_index_check(v4a, v5index, v6env);
 }
}
/* function definition for EXPAND-ROW-MAJOR-INDEX                             */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L4105expand_row_major_index(cl_object v1a, cl_object v2indices, cl_object v3env)
{
 cl_object T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 if (!(v2indices==ECL_NIL)){
  goto L2;
 }
 value0 = L4102expand_zero_dim_index_check(v1a, v3env);
 return value0;
L2:;
 T0 = ecl_cdr(v2indices);
 if (!(T0==ECL_NIL)){
  goto L4;
 }
 T0 = ecl_car(v2indices);
 value0 = L4104expand_vector_index_check(v1a, T0, v3env);
 return value0;
L4:;
 {
  cl_object v4expected_rank;
  cl_object v5check;
  cl_object v6dims;
  cl_object v7dim_names;
  v4expected_rank = ecl_make_fixnum(ecl_length(v2indices));
  v5check = (cl_env_copy->function=ecl_fdefinition(VV[54]))->cfun.entry(1, v3env) /*  POLICY-ARRAY-BOUNDS-CHECK */;
  {
   cl_object v8i;
   v8i = ecl_make_int8_t(0);
   {
    cl_object v9;
    cl_object v10index;
    cl_object v11;
    {
     cl_object v12;
     v12 = v2indices;
     if (ecl_unlikely(!ECL_LISTP(v12))) FEtype_error_list(v12);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v9 = v12;
    }
    v10index = ECL_NIL;
    v11 = v9;
    {
     cl_object v12;
     cl_object v13;
     v12 = ecl_list1(ECL_NIL);
     v13 = v12;
L17:;
     if (!(ecl_endp(v11))){
      goto L19;
     }
     goto L18;
L19:;
     v10index = ECL_CONS_CAR(v11);
     {
      cl_object v14;
      v14 = ECL_CONS_CDR(v11);
      if (ecl_unlikely(!ECL_LISTP(v14))) FEtype_error_list(v14);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v11 = v14;
     }
     {
      cl_object v14;
      v14 = v13;
      if (ecl_unlikely(ECL_ATOM(v14))) FEtype_error_cons(v14);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      T0 = v14;
     }
     T1 = cl_gentemp(1, VV[57]);
     T2 = cl_list(3, VV[58], v1a, v8i);
     T3 = cl_list(2, T1, T2);
     v13 = ecl_list1(T3);
     (ECL_CONS_CDR(T0)=v13,T0);
     v8i = ecl_one_plus(v8i);
     goto L17;
L18:;
     v6dims = ecl_cdr(v12);
     goto L8;
    }
   }
  }
L8:;
  {
   cl_object v8;
   v8 = (ECL_SYM("FIRST",373)->symbol.gfdef);
   {
    cl_object v9;
    cl_object v10;
    cl_object v11;
    {
     cl_object v12;
     v12 = v6dims;
     if (ecl_unlikely(!ECL_LISTP(v12))) FEtype_error_list(v12);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v9 = v12;
    }
    v10 = ECL_NIL;
    v11 = v9;
    {
     cl_object v12;
     cl_object v13;
     v12 = ecl_list1(ECL_NIL);
     v13 = v12;
L45:;
     if (!(ecl_endp(v11))){
      goto L47;
     }
     goto L46;
L47:;
     v10 = ECL_CONS_CAR(v11);
     {
      cl_object v14;
      v14 = ECL_CONS_CDR(v11);
      if (ecl_unlikely(!ECL_LISTP(v14))) FEtype_error_list(v14);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v11 = v14;
     }
     {
      cl_object v14;
      v14 = v13;
      if (ecl_unlikely(ECL_ATOM(v14))) FEtype_error_cons(v14);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      T0 = v14;
     }
     T1 = ecl_function_dispatch(cl_env_copy,v8)(1, v10);
     v13 = ecl_list1(T1);
     (ECL_CONS_CDR(T0)=v13,T0);
     goto L45;
L46:;
     v7dim_names = ecl_cdr(v12);
     goto L36;
    }
   }
  }
L36:;
  T0 = ecl_append(v6dims,VV[61]);
  T1 = cl_listX(4, ECL_SYM("TYPE",872), ECL_SYM("ARRAY-INDEX",1877), VV[62], v7dim_names);
  T2 = CONS(ECL_SYM("IGNORABLE",429),v7dim_names);
  T3 = cl_list(3, ECL_SYM("DECLARE",276), T1, T2);
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[44]))->cfun.entry(1, v3env) /*  POLICY-TYPE-ASSERTIONS */)){
   goto L64;
  }
  T5 = cl_list(3, VV[45], v1a, ECL_SYM("ARRAY",98));
  T6 = cl_list(3, VV[46], v1a, v4expected_rank);
  T4 = cl_list(2, T5, T6);
  goto L63;
L64:;
  T4 = ECL_NIL;
L63:;
  {
   cl_object v8i;
   v8i = ecl_make_int8_t(0);
   {
    cl_object v9;
    cl_object v10l;
    cl_object v11;
    {
     cl_object v12;
     v12 = v2indices;
     if (ecl_unlikely(!ECL_LISTP(v12))) FEtype_error_list(v12);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v9 = v12;
    }
    v10l = ECL_NIL;
    v11 = v9;
    {
     cl_object v12;
     cl_object v13index;
     cl_object v14;
     {
      cl_object v15;
      v15 = v2indices;
      if (ecl_unlikely(!ECL_LISTP(v15))) FEtype_error_list(v15);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v12 = v15;
     }
     v13index = ECL_NIL;
     v14 = v12;
     {
      cl_object v15;
      cl_object v16dim_var;
      cl_object v17;
      {
       cl_object v18;
       v18 = v7dim_names;
       if (ecl_unlikely(!ECL_LISTP(v18))) FEtype_error_list(v18);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v15 = v18;
      }
      v16dim_var = ECL_NIL;
      v17 = v15;
      {
       cl_object v18;
       cl_object v19;
       v18 = ecl_list1(ECL_NIL);
       v19 = v18;
L85:;
       if (!(ecl_endp(v11))){
        goto L87;
       }
       goto L86;
L87:;
       v10l = ECL_CONS_CAR(v11);
       {
        cl_object v20;
        v20 = ECL_CONS_CDR(v11);
        if (ecl_unlikely(!ECL_LISTP(v20))) FEtype_error_list(v20);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
        v11 = v20;
       }
       if (!(ecl_endp(v14))){
        goto L95;
       }
       goto L86;
L95:;
       v13index = ECL_CONS_CAR(v14);
       {
        cl_object v20;
        v20 = ECL_CONS_CDR(v14);
        if (ecl_unlikely(!ECL_LISTP(v20))) FEtype_error_list(v20);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
        v14 = v20;
       }
       if (!(ecl_endp(v17))){
        goto L103;
       }
       goto L86;
L103:;
       v16dim_var = ECL_CONS_CAR(v17);
       {
        cl_object v20;
        v20 = ECL_CONS_CDR(v17);
        if (ecl_unlikely(!ECL_LISTP(v20))) FEtype_error_list(v20);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
        v17 = v20;
       }
       if (!(ecl_plusp(v8i))){
        goto L111;
       }
       {
        cl_object v20;
        v20 = v19;
        if (ecl_unlikely(ECL_ATOM(v20))) FEtype_error_cons(v20);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
        T6 = v20;
       }
       T7 = cl_list(3, ECL_SYM("*",20), VV[62], v16dim_var);
       T8 = cl_list(3, ECL_SYM("TRULY-THE",2081), ECL_SYM("ARRAY-INDEX",1877), T7);
       T9 = cl_list(3, ECL_SYM("SETF",753), VV[62], T8);
       v19 = ecl_list1(T9);
       (ECL_CONS_CDR(T6)=v19,T6);
L111:;
       {
        cl_object v20;
        v20 = v19;
        if (ecl_unlikely(ECL_ATOM(v20))) FEtype_error_cons(v20);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
        T6 = v20;
       }
       T7 = cl_list(2, VV[63], v13index);
       T8 = ecl_list1(T7);
       if (Null(v5check)){
        goto L124;
       }
       T9 = cl_list(4, VV[65], v1a, VV[63], v16dim_var);
       goto L122;
L124:;
       T9 = ECL_NIL;
       goto L122;
L122:;
       T10 = cl_list(5, ECL_SYM("LET",479), T8, VV[64], T9, VV[66]);
       v19 = ecl_list1(T10);
       (ECL_CONS_CDR(T6)=v19,T6);
       v8i = ecl_one_plus(v8i);
       goto L85;
L86:;
       T5 = ecl_cdr(v18);
       goto L66;
      }
     }
    }
   }
  }
L66:;
  T6 = cl_append(3, T4, T5, VV[67]);
  value0 = cl_listX(4, ECL_SYM("LET*",480), T0, T3, T6);
  return value0;
 }
}
static cl_object L4105expand_row_major_index_va(cl_narg narg, cl_object v8a, cl_object v9indices, cl_object v10env, ...)
{
 if (ecl_unlikely(narg!=3)) FEwrong_num_arguments(VV[32]);
 {
  return L4105expand_row_major_index(v8a, v9indices, v10env);
 }
}
/* local function CHECK-EXPECTED-RANK                                         */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4106check_expected_rank(cl_object v1, cl_object v2)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  cl_object v4a;
  cl_object v5expected_rank;
  v3 = ecl_cdr(v1);
  if (!(v3==ECL_NIL)){
   goto L4;
  }
  si_dm_too_few_arguments(v1);
L4:;
  {
   cl_object v6;
   v6 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v4a = v6;
  }
  if (!(v3==ECL_NIL)){
   goto L10;
  }
  si_dm_too_few_arguments(v1);
L10:;
  {
   cl_object v6;
   v6 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v5expected_rank = v6;
  }
  if (Null(v3)){
   goto L15;
  }
  si_dm_too_many_arguments(v1);
L15:;
  T0 = cl_list(2, v4a, v5expected_rank);
  value0 = cl_listX(3, ECL_SYM("C-INLINE",2106), T0, VV[70]);
  return value0;
 }
}
static cl_object LC4106check_expected_rank_va(cl_narg narg, cl_object v6, cl_object v7, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[46]);
 {
  return LC4106check_expected_rank(v6, v7);
 }
}
/* local function CHECK-INDEX-IN-BOUNDS                                       */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4107check_index_in_bounds(cl_object v1, cl_object v2)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  cl_object v4array;
  cl_object v5index;
  cl_object v6limit;
  v3 = ecl_cdr(v1);
  if (!(v3==ECL_NIL)){
   goto L4;
  }
  si_dm_too_few_arguments(v1);
L4:;
  {
   cl_object v7;
   v7 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v4array = v7;
  }
  if (!(v3==ECL_NIL)){
   goto L10;
  }
  si_dm_too_few_arguments(v1);
L10:;
  {
   cl_object v7;
   v7 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v5index = v7;
  }
  if (!(v3==ECL_NIL)){
   goto L16;
  }
  si_dm_too_few_arguments(v1);
L16:;
  {
   cl_object v7;
   v7 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v6limit = v7;
  }
  if (Null(v3)){
   goto L21;
  }
  si_dm_too_many_arguments(v1);
L21:;
  T0 = cl_list(3, v4array, v5index, v6limit);
  value0 = cl_listX(3, ECL_SYM("C-INLINE",2106), T0, VV[72]);
  return value0;
 }
}
static cl_object LC4107check_index_in_bounds_va(cl_narg narg, cl_object v7, cl_object v8, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[65]);
 {
  return LC4107check_index_in_bounds(v7, v8);
 }
}
/* local function CHECK-VECTOR-IN-BOUNDS                                      */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4108check_vector_in_bounds(cl_object v1, cl_object v2)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  cl_object v4vector;
  cl_object v5index;
  v3 = ecl_cdr(v1);
  if (!(v3==ECL_NIL)){
   goto L4;
  }
  si_dm_too_few_arguments(v1);
L4:;
  {
   cl_object v6;
   v6 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v4vector = v6;
  }
  if (!(v3==ECL_NIL)){
   goto L10;
  }
  si_dm_too_few_arguments(v1);
L10:;
  {
   cl_object v6;
   v6 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v5index = v6;
  }
  if (Null(v3)){
   goto L15;
  }
  si_dm_too_many_arguments(v1);
L15:;
  T0 = cl_list(2, v4vector, v5index);
  value0 = cl_listX(3, ECL_SYM("C-INLINE",2106), T0, VV[74]);
  return value0;
 }
}
static cl_object LC4108check_vector_in_bounds_va(cl_narg narg, cl_object v6, cl_object v7, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[50]);
 {
  return LC4108check_vector_in_bounds(v6, v7);
 }
}
/* function definition for ARRAY-DIMENSION-ACCESSOR                           */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L4109array_dimension_accessor(cl_object v1array, cl_object v2n)
{
 cl_object T0, T1, T2, T3;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 T0 = ecl_list1(v1array);
 {
  cl_object v3;
  v3 = VV[78];
  T2 = v3;
  {
   cl_object v4;
   v4 = v2n;
   if (ecl_unlikely((ecl_fixnum(v4))>=(v3)->vector.dim))
           FEwrong_index(ECL_NIL,v3,-1,ecl_make_fixnum(ecl_fixnum(v4)),(v3)->vector.dim);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   T3 = v4;
  }
  T1 = ecl_aref_unsafe(T2,ecl_fixnum(T3));
 }
 value0 = cl_listX(3, ECL_SYM("C-INLINE",2106), T0, T1);
 return value0;
}
static cl_object L4109array_dimension_accessor_va(cl_narg narg, cl_object v3array, cl_object v4n, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[77]);
 {
  return L4109array_dimension_accessor(v3array, v4n);
 }
}
/* local function ARRAY-DIMENSION-FAST                                        */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4110array_dimension_fast(cl_object v1, cl_object v2)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  cl_object v4array;
  cl_object v5n;
  v3 = ecl_cdr(v1);
  if (!(v3==ECL_NIL)){
   goto L4;
  }
  si_dm_too_few_arguments(v1);
L4:;
  {
   cl_object v6;
   v6 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v4array = v6;
  }
  if (!(v3==ECL_NIL)){
   goto L10;
  }
  si_dm_too_few_arguments(v1);
L10:;
  {
   cl_object v6;
   v6 = ecl_car(v3);
   v3 = ecl_cdr(v3);
   v5n = v6;
  }
  if (Null(v3)){
   goto L15;
  }
  si_dm_too_many_arguments(v1);
L15:;
  {
   cl_fixnum v6;
   v6 = (cl_fixnum)(0);
   if (!(ECL_FIXNUMP(v5n))){
    goto L17;
   }
   v6 = ecl_fixnum(v5n);
   if (!((v6)<=((cl_fixnum)(63)))){
    goto L17;
   }
   if (!((v6)>=((cl_fixnum)(0)))){
    goto L17;
   }
  }
  value0 = L4109array_dimension_accessor(v4array, v5n);
  return value0;
L17:;
  value0 = cl_error(2, VV[80], v5n);
  return value0;
 }
}
static cl_object LC4110array_dimension_fast_va(cl_narg narg, cl_object v6, cl_object v7, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[58]);
 {
  return LC4110array_dimension_fast(v6, v7);
 }
}
/* local function LAMBDA8                                                     */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4091__lambda8(cl_object v1x)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_fixnum v2;
  v2 = (cl_fixnum)(0);
  if (!(ECL_FIXNUMP(v1x))){
   goto L4;
  }
  v2 = ecl_fixnum(v1x);
  if (!((v2)<=(2305843009213693950))){
   goto L9;
  }
  value0 = ecl_make_bool((v2)>=((cl_fixnum)(0)));
  cl_env_copy->nvalues = 1;
  return value0;
L9:;
  value0 = ECL_NIL;
  cl_env_copy->nvalues = 1;
  return value0;
L4:;
  value0 = ECL_NIL;
  cl_env_copy->nvalues = 1;
  return value0;
 }
}
static cl_object LC4091__lambda8_va(cl_narg narg, cl_object v3x, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[7]);
 {
  return LC4091__lambda8(v3x);
 }
}
/* local function EXPANSION                                                   */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC4103expansion(cl_object v1a, cl_object v2index)
{
 cl_object T0, T1;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 T0 = cl_list(3, VV[45], v1a, ECL_SYM("VECTOR",902));
 T1 = cl_list(3, VV[50], v1a, v2index);
 value0 = cl_list(4, ECL_SYM("PROGN",674), T0, T1, v2index);
 return value0;
}
static cl_object LC4103expansion_va(cl_narg narg, cl_object v3a, cl_object v4index, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[49]);
 {
  return LC4103expansion(v3a, v4index);
 }
}
#include "cmp/cmparray.data"
#ifdef __cplusplus
extern "C"
#endif

ECL_DLLEXPORT void _eclyAYbFZVhwSOm9_Xeg0M881(cl_object flag)
{
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 cl_object *VVtemp;
 if (flag != OBJNULL){
 Cblock = flag;
 #ifndef ECL_DYNAMIC_VV
 flag->cblock.data = VV;
 #endif
 flag->cblock.data_size = VM;
 flag->cblock.temp_data_size = VMtemp;
 flag->cblock.data_text = compiler_data_text;
 flag->cblock.cfuns_size = compiler_cfuns_size;
 flag->cblock.cfuns = compiler_cfuns;
 flag->cblock.source = ecl_make_constant_base_string("SRC:CMP;CMPARRAY.LSP.NEWEST",-1);
 return;}
 #ifdef ECL_DYNAMIC_VV
 VV = Cblock->cblock.data;
 #endif
 Cblock->cblock.data_text = (const cl_object *)"@EcLtAg:_eclyAYbFZVhwSOm9_Xeg0M881@";
 VVtemp = Cblock->cblock.temp_data;
 ECL_DEFINE_SETF_FUNCTIONS
 {
  cl_object T0;
  cl_object volatile env0 = ECL_NIL;
/* MAKE-LOAD-FORMs                                                            */
/* TOP-LEVEL-FORMs                                                            */
  si_select_package(VVtemp[0]);
  ecl_cmp_defun(VV[82]);                          /*  GUESS-ARRAY-ELEMENT-TYPE */
  ecl_cmp_defun(VV[83]);                          /*  GUESS-ARRAY-DIMENSIONS-TYPE */
  {
   cl_object volatile v1;
   v1 = ecl_make_cfun_va((cl_objectfn)LC4093__lambda126_va,ECL_NIL,Cblock,2);
   T0 = v1;
  }
  si_put_sysprop(ECL_SYM("MAKE-ARRAY",524), ECL_SYM("COMPILER-MACRO",240), T0);
  (void)0; /* No entry created for EXPAND-VECTOR-PUSH */
  {
   cl_object volatile v1;
   v1 = ecl_make_cfun_va((cl_objectfn)LC4095__lambda190_va,ECL_NIL,Cblock,2);
   T0 = v1;
  }
  si_put_sysprop(ECL_SYM("VECTOR-PUSH",904), ECL_SYM("COMPILER-MACRO",240), T0);
  {
   cl_object volatile v1;
   v1 = ecl_make_cfun_va((cl_objectfn)LC4096__lambda194_va,ECL_NIL,Cblock,2);
   T0 = v1;
  }
  si_put_sysprop(ECL_SYM("VECTOR-PUSH-EXTEND",905), ECL_SYM("COMPILER-MACRO",240), T0);
  {
   cl_object volatile v1;
   v1 = ecl_make_cfun_va((cl_objectfn)LC4097__lambda198_va,ECL_NIL,Cblock,2);
   T0 = v1;
  }
  si_put_sysprop(ECL_SYM("AREF",94), ECL_SYM("COMPILER-MACRO",240), T0);
  ecl_cmp_defun(VV[84]);                          /*  EXPAND-AREF             */
  {
   cl_object volatile v1;
   v1 = ecl_make_cfun_va((cl_objectfn)LC4099__lambda204_va,ECL_NIL,Cblock,2);
   T0 = v1;
  }
  si_put_sysprop(ECL_SYM("ASET",1045), ECL_SYM("COMPILER-MACRO",240), T0);
  ecl_cmp_defun(VV[85]);                          /*  EXPAND-ASET             */
  {
   cl_object volatile v1;
   v1 = ecl_make_cfun_va((cl_objectfn)LC4101__lambda210_va,ECL_NIL,Cblock,2);
   T0 = v1;
  }
  si_put_sysprop(ECL_SYM("ARRAY-ROW-MAJOR-INDEX",108), ECL_SYM("COMPILER-MACRO",240), T0);
  ecl_cmp_defun(VV[86]);                          /*  EXPAND-ZERO-DIM-INDEX-CHECK */
  ecl_cmp_defun(VV[87]);                          /*  EXPAND-VECTOR-INDEX-CHECK */
  ecl_cmp_defun(VV[88]);                          /*  EXPAND-ROW-MAJOR-INDEX  */
  ecl_cmp_defmacro(VV[89]);                       /*  CHECK-EXPECTED-RANK     */
  ecl_cmp_defmacro(VV[90]);                       /*  CHECK-INDEX-IN-BOUNDS   */
  ecl_cmp_defmacro(VV[91]);                       /*  CHECK-VECTOR-IN-BOUNDS  */
  si_Xmake_constant(VV[76], VVtemp[1]);
  ecl_cmp_defun(VV[92]);                          /*  ARRAY-DIMENSION-ACCESSOR */
  ecl_cmp_defmacro(VV[93]);                       /*  ARRAY-DIMENSION-FAST    */
 }
}
