

#include "BUILTIN.h"

#include "Nat.h"

#include "Char.h"

#include "Int.h"
extern OBJ _AOptimAn_2(OBJ);OBJ __AOptimAn_2; /* experimental */
extern OBJ _AOptimAn_3(OBJ);OBJ __AOptimAn_3; /* experimental? */
extern OBJ _AOptimAn_4(OBJ);OBJ __AOptimAn_4; /* value */
OBJ __AOptimAn_5; /* primary */
extern OBJ _AOptimAn_6(OBJ);OBJ __AOptimAn_6; /* primary? */
OBJ __AOptimAn_7; /* unfold */
extern OBJ _AOptimAn_8(OBJ);OBJ __AOptimAn_8; /* unfold? */
extern OBJ _AOptimAn_9(OBJ);OBJ __AOptimAn_9; /* inverse */
extern OBJ _AOptimAn_10(OBJ);OBJ __AOptimAn_10; /* inverse? */
extern OBJ _AOptimAn_11(OBJ);OBJ __AOptimAn_11; /* fun */
extern OBJ _AOptimAn_13(OBJ);OBJ __AOptimAn_13; /* unitAn */
extern OBJ _AOptimAn_14(OBJ);OBJ __AOptimAn_14; /* unitAn? */
extern OBJ _AOptimAn_15(OBJ);OBJ __AOptimAn_15; /* props */
extern OBJ _AOptimAn_16(OBJ);OBJ __AOptimAn_16; /* hiddenAn */
extern OBJ _AOptimAn_17(OBJ);OBJ __AOptimAn_17; /* hiddenAn? */
extern OBJ _AOptimAn_18(OBJ);OBJ __AOptimAn_18; /* rank */
extern OBJ _AOptimAn_19(OBJ,OBJ,OBJ);OBJ __AOptimAn_19; /* bindingAn */
extern OBJ _AOptimAn_20(OBJ);OBJ __AOptimAn_20; /* bindingAn? */
extern OBJ _AOptimAn_21(OBJ);OBJ __AOptimAn_21; /* maxIdeNo */
extern OBJ _AOptimAn_23(OBJ);OBJ __AOptimAn_23; /* complexity */
OBJ __AOptimAn_24; /* none */
extern OBJ _AOptimAn_25(OBJ);OBJ __AOptimAn_25; /* none? */

extern OBJ _AOptimAn_2(OBJ x1) /* experimental */
{OBJ r;
 PRD(1,3,r);FLD(r,1)=x1;
 return r;}

extern OBJ _AOptimAn_3(OBJ x1) /* experimental? */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,3))){
  if(EXPRD(x1,1)){
   FRPRD(FLD(x1,1),1);DSPRDF(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_5;
 }else{
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AOptimAn_4(OBJ x1) /* value */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,3))){
  {OBJ x2=FLD(x1,1);
   if(EXPRD(x1,1)){
    r=x2;
    DSPRDF(x1);
   }else{
    CPPRD(x2,1);
    r=x2;
    FRPRD(x1,1);}}
 }else{
  HLT("OptimAn at <unknown> : undefined selection value\'OptimAn:prop->denotation");}
 return r;}

extern OBJ _AOptimAn_6(OBJ x1) /* primary? */
{OBJ r;
 if(ISPRM(x1)&&(ISTGPRM(x1,2))){
  r=__ABUILTIN_5;
 }else{
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AOptimAn_8(OBJ x1) /* unfold? */
{OBJ r;
 if(ISPRM(x1)&&(ISTGPRM(x1,1))){
  r=__ABUILTIN_5;
 }else{
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AOptimAn_9(OBJ x1) /* inverse */
{OBJ r;
 PRD(1,0,r);FLD(r,1)=x1;
 return r;}

extern OBJ _AOptimAn_10(OBJ x1) /* inverse? */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,0))){
  if(EXPRD(x1,1)){
   FRPRD(FLD(x1,1),1);DSPRDF(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_5;
 }else{
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AOptimAn_11(OBJ x1) /* fun */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,0))){
  {OBJ x2=FLD(x1,1);
   if(EXPRD(x1,1)){
    r=x2;
    DSPRDF(x1);
   }else{
    CPPRD(x2,1);
    r=x2;
    FRPRD(x1,1);}}
 }else{
  HLT("OptimAn at <unknown> : undefined selection fun\'OptimAn:prop->ide");}
 return r;}

extern OBJ _AOptimAn_13(OBJ x1) /* unitAn */
{OBJ r;
 PRD(1,3,r);FLD(r,1)=x1;
 return r;}

extern OBJ _AOptimAn_14(OBJ x1) /* unitAn? */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,3))){
  if(EXPRD(x1,1)){
   FREE(FLD(x1,1),1);DSPRDF(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_5;
 }else{
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AOptimAn_15(OBJ x1) /* props */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,3))){
  {OBJ x2=FLD(x1,1);
   if(EXPRD(x1,1)){
    r=x2;
    DSPRDF(x1);
   }else{
    COPY(x2,1);
    r=x2;
    FRPRD(x1,1);}}
 }else{
  HLT("OptimAn at <unknown> : undefined selection props\'OptimAn:optimAn->ideMap");}
 return r;}

extern OBJ _AOptimAn_16(OBJ x1) /* hiddenAn */
{OBJ r;
 PRDF(1,2,r);FLD(r,1)=x1;
 return r;}

extern OBJ _AOptimAn_17(OBJ x1) /* hiddenAn? */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,2))){
  if(EXPRD(x1,1)){
   DSPRDF(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_5;
 }else{
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AOptimAn_18(OBJ x1) /* rank */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,1))){
  {OBJ x3=FLD(x1,2);
   if(EXPRD(x1,1)){
    r=x3;
    DSPRDF(x1);
   }else{
    r=x3;
    FRPRD(x1,1);}}
 }else{
  if(ISPRD(x1)&&(ISTGPRD(x1,2))){
   {OBJ x5=FLD(x1,1);
    if(EXPRD(x1,1)){
     r=x5;
     DSPRDF(x1);
    }else{
     r=x5;
     FRPRD(x1,1);}}
  }else{
   HLT("OptimAn at <unknown> : undefined selection rank\'OptimAn:optimAn->nat");}}
 return r;}

extern OBJ _AOptimAn_19(OBJ x1,OBJ x2,OBJ x3) /* bindingAn */
{OBJ r;
 PRDF(3,1,r);FLD(r,1)=x1;FLD(r,2)=x2;FLD(r,3)=x3;
 return r;}

extern OBJ _AOptimAn_20(OBJ x1) /* bindingAn? */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,1))){
  if(EXPRD(x1,1)){
   DSPRDF(x1);
  }else{
   DCPRD(x1,1);}
  r=__ABUILTIN_5;
 }else{
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}

extern OBJ _AOptimAn_21(OBJ x1) /* maxIdeNo */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,1))){
  {OBJ x4=FLD(x1,3);
   if(EXPRD(x1,1)){
    r=x4;
    DSPRDF(x1);
   }else{
    r=x4;
    FRPRD(x1,1);}}
 }else{
  HLT("OptimAn at <unknown> : undefined selection maxIdeNo\'OptimAn:optimAn->nat");}
 return r;}

extern OBJ _AOptimAn_23(OBJ x1) /* complexity */
{OBJ r;
 if(ISPRD(x1)&&(ISTGPRD(x1,1))){
  {OBJ x2=FLD(x1,1);
   if(EXPRD(x1,1)){
    r=x2;
    DSPRDF(x1);
   }else{
    r=x2;
    FRPRD(x1,1);}}
 }else{
  HLT("OptimAn at <unknown> : undefined selection complexity\'OptimAn:optimAn->nat");}
 return r;}

extern OBJ _AOptimAn_25(OBJ x1) /* none? */
{OBJ r;
 if(ISPRM(x1)){
  r=__ABUILTIN_5;
 }else{
  FREE(x1,1);
  r=__ABUILTIN_3;}
 return r;}




init_AOptimAn()
{
 static int visited=0; if(visited) return; visited=1;
 init_ANat();
 init_AIde();
 init_ASeq();
 init_AIdeMap();
 init_APair();
 init_AOption();
 init_AFormat();
 init_AString();
 init_ACom();
 init_AStream();
 init_AVoid();
 init_AFmt();
 init_AChar();
 init_AFile();
 init_AInt();
 init_AMap();
 init_AMapConv();
 init_ASetByBST();
 init_ABSTree();
 init_ATree();
 CLS(1,_AOptimAn_25,__AOptimAn_25);
 CLS(1,_AOptimAn_23,__AOptimAn_23);
 CLS(1,_AOptimAn_21,__AOptimAn_21);
 CLS(1,_AOptimAn_20,__AOptimAn_20);
 CLS(3,_AOptimAn_19,__AOptimAn_19);
 CLS(1,_AOptimAn_18,__AOptimAn_18);
 CLS(1,_AOptimAn_17,__AOptimAn_17);
 CLS(1,_AOptimAn_16,__AOptimAn_16);
 CLS(1,_AOptimAn_15,__AOptimAn_15);
 CLS(1,_AOptimAn_14,__AOptimAn_14);
 CLS(1,_AOptimAn_13,__AOptimAn_13);
 CLS(1,_AOptimAn_11,__AOptimAn_11);
 CLS(1,_AOptimAn_10,__AOptimAn_10);
 CLS(1,_AOptimAn_9,__AOptimAn_9);
 CLS(1,_AOptimAn_8,__AOptimAn_8);
 CLS(1,_AOptimAn_6,__AOptimAn_6);
 CLS(1,_AOptimAn_4,__AOptimAn_4);
 CLS(1,_AOptimAn_3,__AOptimAn_3);
 CLS(1,_AOptimAn_2,__AOptimAn_2);
 PRM(2,__AOptimAn_5);
 PRM(1,__AOptimAn_7);
 PRM1(__AOptimAn_24);}

