

#include "BUILTIN.h"
extern OBJ _AQuadruple_2(OBJ,OBJ,OBJ,OBJ);OBJ __AQuadruple_2; /* & */
extern OBJ _AQuadruple_3(OBJ);OBJ __AQuadruple_3; /* &? */
extern OBJ _AQuadruple_4(OBJ);OBJ __AQuadruple_4; /* 4th */
extern OBJ _AQuadruple_5(OBJ);OBJ __AQuadruple_5; /* 3rd */
extern OBJ _AQuadruple_6(OBJ);OBJ __AQuadruple_6; /* 2nd */
extern OBJ _AQuadruple_7(OBJ);OBJ __AQuadruple_7; /* 1st */
extern TUP4 _AQuadruple_12(OBJ);OBJ __AQuadruple_12; /* unquad */

extern OBJ _AQuadruple_2(OBJ x1,OBJ x2,OBJ x3,OBJ x4) /* & */
{OBJ r;
 PRD1(4,r);FLD1(r,1)=x1;FLD1(r,2)=x2;FLD1(r,3)=x3;FLD1(r,4)=x4;
 return r;}

extern OBJ _AQuadruple_3(OBJ x1) /* &? */
{OBJ r;
 FRPRD(x1,1);
 r=__ABUILTIN_5;
 return r;}

extern OBJ _AQuadruple_4(OBJ x1) /* 4th */
{OBJ r;
 {OBJ x5=FLD1(x1,4);
  if(EXPRD(x1,1)){
   r=x5;
   FLD1(x1,4)=NIL;DSPRD(x1);
  }else{
   COPY(x5,1);
   r=x5;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AQuadruple_5(OBJ x1) /* 3rd */
{OBJ r;
 {OBJ x4=FLD1(x1,3);
  if(EXPRD(x1,1)){
   r=x4;
   FLD1(x1,3)=NIL;DSPRD(x1);
  }else{
   COPY(x4,1);
   r=x4;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AQuadruple_6(OBJ x1) /* 2nd */
{OBJ r;
 {OBJ x3=FLD1(x1,2);
  if(EXPRD(x1,1)){
   r=x3;
   FLD1(x1,2)=NIL;DSPRD(x1);
  }else{
   COPY(x3,1);
   r=x3;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AQuadruple_7(OBJ x1) /* 1st */
{OBJ r;
 {OBJ x2=FLD1(x1,1);
  if(EXPRD(x1,1)){
   r=x2;
   FLD1(x1,1)=NIL;DSPRD(x1);
  }else{
   COPY(x2,1);
   r=x2;
   FRPRD(x1,1);}}
 return r;}

extern TUP4 _AQuadruple_12(OBJ x1) /* unquad */
{TUP4 r;
 {OBJ x22=FLD1(x1,1);OBJ x23=FLD1(x1,2);OBJ x24=FLD1(x1,3);OBJ x25=FLD1(x1,4);
  if(EXPRD(x1,1)){
   r.c1=x22;r.c2=x23;r.c3=x24;r.c4=x25;
   DSPRDF(x1);
  }else{
   COPY(x22,1);COPY(x23,1);COPY(x24,1);COPY(x25,1);
   r.c1=x22;r.c2=x23;r.c3=x24;r.c4=x25;
   FRPRD(x1,1);}}
 return r;}
extern OBJ _AQuadruple_12_c(OBJ x1) /* unquad */
{OBJ r;
 {TUP4 t=_AQuadruple_12(x1);
  PRD1(4,r);
  FLD1(r,1)=t.c1;
  FLD1(r,2)=t.c2;
  FLD1(r,3)=t.c3;
  FLD1(r,4)=t.c4;}
 return r;}

static OBJ _mt_1_0_1(OBJ t,OBJ t1) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ))ENTRY(t))(t1);
 return r;}
static OBJ _mt_1_0_1_l(OBJ t,OBJ t1) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ))ENTRY(t))(t1);
 COPY(r,1);LZYCLS(t,r);
 return r;}

static OBJ _mt_4_0_4(OBJ t,OBJ t1,OBJ t2,OBJ t3,OBJ t4) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ,OBJ,OBJ))ENTRY(t))(t1,t2,t3,t4);
 return r;}

init_AQuadruple()
{
 static int visited=0; if(visited) return; visited=1;
 CLS(1,_AQuadruple_12_c,__AQuadruple_12);
 CLS(1,_AQuadruple_7,__AQuadruple_7);
 CLS(1,_AQuadruple_6,__AQuadruple_6);
 CLS(1,_AQuadruple_5,__AQuadruple_5);
 CLS(1,_AQuadruple_4,__AQuadruple_4);
 CLS(1,_AQuadruple_3,__AQuadruple_3);
 CLS(4,_AQuadruple_2,__AQuadruple_2);
 MTH(1,0,1,_mt_1_0_1);LZYMTH(1,0,1,_mt_1_0_1_l);
 MTH(4,0,4,_mt_4_0_4);LZYMTH(4,0,4,_mt_4_0_4);}

