

#include "BUILTIN.h"

#include "Real.h"

#define __AReal_Sp_L111 __AReal_111
#define _AReal_Sp_L111 _AReal_111
#define AReal_111 AReal_Sp_L111
extern OBJ __AReal_Sp_L111;
extern OBJ _AReal_Sp_L111(OBJ);

#define __AReal_Sm_L112 __AReal_112
#define _AReal_Sm_L112 _AReal_112
#define AReal_112 AReal_Sm_L112
extern OBJ __AReal_Sm_L112;
extern OBJ _AReal_Sm_L112(OBJ);

#define __AReal_Asign_L113 __AReal_113
#define _AReal_Asign_L113 _AReal_113
#define AReal_113 AReal_Asign_L113
extern OBJ __AReal_Asign_L113;
extern OBJ _AReal_Asign_L113(OBJ);

#define __AReal_Aarcsin_L114 __AReal_114
#define _AReal_Aarcsin_L114 _AReal_114
#define AReal_114 AReal_Aarcsin_L114
extern OBJ __AReal_Aarcsin_L114;
extern OBJ _AReal_Aarcsin_L114(OBJ);

#define __AReal_Aarccos_L115 __AReal_115
#define _AReal_Aarccos_L115 _AReal_115
#define AReal_115 AReal_Aarccos_L115
extern OBJ __AReal_Aarccos_L115;
extern OBJ _AReal_Aarccos_L115(OBJ);
OBJ __AReal_A0; /* 0 */
OBJ __AReal_A1; /* 1 */
OBJ __AReal_A2; /* 2 */
OBJ __AReal_A3; /* 3 */
OBJ __AReal_A4; /* 4 */
OBJ __AReal_A5; /* 5 */
OBJ __AReal_A6; /* 6 */
OBJ __AReal_A7; /* 7 */
OBJ __AReal_A8; /* 8 */
OBJ __AReal_A9; /* 9 */
OBJ __AReal_A10; /* 10 */
OBJ __AReal_A11; /* 11 */
OBJ __AReal_A12; /* 12 */
OBJ __AReal_A13; /* 13 */
OBJ __AReal_A14; /* 14 */
OBJ __AReal_A15; /* 15 */
OBJ __AReal_A16; /* 16 */
OBJ __AReal_A17; /* 17 */
OBJ __AReal_A18; /* 18 */
OBJ __AReal_A19; /* 19 */
OBJ __AReal_A20; /* 20 */
OBJ __AReal_A21; /* 21 */
OBJ __AReal_A22; /* 22 */
OBJ __AReal_A23; /* 23 */
OBJ __AReal_A24; /* 24 */
OBJ __AReal_A25; /* 25 */
OBJ __AReal_A26; /* 26 */
OBJ __AReal_A27; /* 27 */
OBJ __AReal_A28; /* 28 */
OBJ __AReal_A29; /* 29 */
OBJ __AReal_A30; /* 30 */
OBJ __AReal_A31; /* 31 */
OBJ __AReal_A32; /* 32 */
OBJ __AReal_A64; /* 64 */
OBJ __AReal_A128; /* 128 */
OBJ __AReal_A256; /* 256 */
OBJ __AReal_A512; /* 512 */
OBJ __AReal_A1024; /* 1024 */
OBJ __AReal_A100; /* 100 */
OBJ __AReal_A1000; /* 1000 */
OBJ __AReal_A10000; /* 10000 */
OBJ __AReal_A100000; /* 100000 */
OBJ __AReal_A1000000; /* 1000000 */
OBJ __AReal_Amin; /* min */
OBJ __AReal_Amax; /* max */
OBJ __AReal_Aeps; /* eps */
OBJ __AReal_Api; /* pi */
OBJ __AReal_Ae; /* e */
extern OBJ _AReal_S1(OBJ);OBJ __AReal_S1; /* ! */
extern OBJ _AReal_Sp(OBJ,OBJ);OBJ __AReal_Sp; /* + */
extern OBJ _AReal_Sm(OBJ,OBJ);OBJ __AReal_Sm; /* - */
extern OBJ _AReal_S8(OBJ,OBJ);OBJ __AReal_S8; /* * */
extern OBJ _AReal_Ss(OBJ,OBJ);OBJ __AReal_Ss; /* / */
extern OBJ _AReal_Amin_O1(OBJ,OBJ);OBJ __AReal_Amin_O1; /* min,1 */
extern OBJ _AReal_Amax_O1(OBJ,OBJ);OBJ __AReal_Amax_O1; /* max,1 */
extern OBJ _AReal_Sm_O1(OBJ);OBJ __AReal_Sm_O1; /* -,1 */
extern OBJ _AReal_Aabs(OBJ);OBJ __AReal_Aabs; /* abs */
extern OBJ _AReal_Apow(OBJ,OBJ);OBJ __AReal_Apow; /* pow */
extern OBJ _AReal_S6(OBJ,OBJ);OBJ __AReal_S6; /* ^ */
extern OBJ _AReal_Asqrt(OBJ);OBJ __AReal_Asqrt; /* sqrt */
extern OBJ _AReal_Aexp(OBJ);OBJ __AReal_Aexp; /* exp */
extern OBJ _AReal_Aln(OBJ);OBJ __AReal_Aln; /* ln */
extern OBJ _AReal_Alog(OBJ);OBJ __AReal_Alog; /* log */
extern OBJ _AReal_Aceil(OBJ);OBJ __AReal_Aceil; /* ceil */
extern OBJ _AReal_Afloor(OBJ);OBJ __AReal_Afloor; /* floor */
extern OBJ _AReal_Asign(OBJ);OBJ __AReal_Asign; /* sign */
extern OBJ _AReal_Asin(OBJ);OBJ __AReal_Asin; /* sin */
extern OBJ _AReal_Acos(OBJ);OBJ __AReal_Acos; /* cos */
extern OBJ _AReal_Atan(OBJ);OBJ __AReal_Atan; /* tan */
extern OBJ _AReal_Aarcsin(OBJ);OBJ __AReal_Aarcsin; /* arcsin */
extern OBJ _AReal_Aarccos(OBJ);OBJ __AReal_Aarccos; /* arccos */
extern OBJ _AReal_Aarctan(OBJ);OBJ __AReal_Aarctan; /* arctan */
extern OBJ _AReal_Aarctan2(OBJ,OBJ);OBJ __AReal_Aarctan2; /* arctan2 */
extern OBJ _AReal_Adeg(OBJ);OBJ __AReal_Adeg; /* deg */
extern OBJ _AReal_Arad(OBJ);OBJ __AReal_Arad; /* rad */
extern OBJ _AReal_Asinh(OBJ);OBJ __AReal_Asinh; /* sinh */
extern OBJ _AReal_Acosh(OBJ);OBJ __AReal_Acosh; /* cosh */
extern OBJ _AReal_Atanh(OBJ);OBJ __AReal_Atanh; /* tanh */
extern OBJ _AReal_Apos_(OBJ);OBJ __AReal_Apos_; /* pos? */
extern OBJ _AReal_Aneg_(OBJ);OBJ __AReal_Aneg_; /* neg? */
extern OBJ _AReal_Azero_(OBJ);OBJ __AReal_Azero_; /* zero? */
extern OBJ _AReal_Sle(OBJ,OBJ);OBJ __AReal_Sle; /* <= */
extern OBJ _AReal_Se(OBJ,OBJ);OBJ __AReal_Se; /* = */
extern OBJ _AReal_Sge(OBJ,OBJ);OBJ __AReal_Sge; /* >= */
extern OBJ _AReal_Sl(OBJ,OBJ);OBJ __AReal_Sl; /* < */
extern OBJ _AReal_Sg(OBJ,OBJ);OBJ __AReal_Sg; /* > */
extern OBJ _AReal_SSe(OBJ,OBJ);OBJ __AReal_SSe; /* |= */
extern OBJ _AReal_Aproduct(OBJ,OBJ);OBJ __AReal_Aproduct; /* product */
extern OBJ _AReal_Aproduct_(OBJ);OBJ __AReal_Aproduct_; /* product? */
extern OBJ _AReal_Ab(OBJ);OBJ __AReal_Ab; /* b */
extern OBJ _AReal_Aa(OBJ);OBJ __AReal_Aa; /* a */
extern OBJ _AReal_AuncheckedAdd(OBJ,OBJ);OBJ __AReal_AuncheckedAdd; /* uncheckedAdd */
extern OBJ _AReal_AuncheckedSub(OBJ,OBJ);OBJ __AReal_AuncheckedSub; /* uncheckedSub */
extern OBJ _AReal_AuncheckedMul(OBJ,OBJ);OBJ __AReal_AuncheckedMul; /* uncheckedMul */
extern OBJ _AReal_AuncheckedDiv(OBJ,OBJ);OBJ __AReal_AuncheckedDiv; /* uncheckedDiv */
extern OBJ _AReal_AuncheckedPow(OBJ,OBJ);OBJ __AReal_AuncheckedPow; /* uncheckedPow */
extern OBJ _AReal_AuncheckedSqrt(OBJ);OBJ __AReal_AuncheckedSqrt; /* uncheckedSqrt */
extern OBJ _AReal_AuncheckedLn(OBJ);OBJ __AReal_AuncheckedLn; /* uncheckedLn */
extern OBJ _AReal_AuncheckedLog(OBJ);OBJ __AReal_AuncheckedLog; /* uncheckedLog */
extern OBJ _AReal_AuncheckedArcsin(OBJ);OBJ __AReal_AuncheckedArcsin; /* uncheckedArcsin */
extern OBJ _AReal_AuncheckedArccos(OBJ);OBJ __AReal_AuncheckedArccos; /* uncheckedArccos */
extern OBJ _AReal_Sp_L111(OBJ);OBJ __AReal_Sp_L111; /* +'111 */
extern OBJ _AReal_Sm_L112(OBJ);OBJ __AReal_Sm_L112; /* -'112 */
extern OBJ _AReal_Asign_L113(OBJ);OBJ __AReal_Asign_L113; /* sign'113 */
extern OBJ _AReal_Aarcsin_L114(OBJ);OBJ __AReal_Aarcsin_L114; /* arcsin'114 */
extern OBJ _AReal_Aarccos_L115(OBJ);OBJ __AReal_Aarccos_L115; /* arccos'115 */

#include "Real.hc.c"

extern OBJ _AReal_S1(OBJ x1) /* ! */
{OBJ r;
 r=inline_opal_real(x1);
 return r;}

extern OBJ _AReal_Sp(OBJ x1,OBJ x2) /* + */
{OBJ r;
 CPPRD(__AReal_A0,1);
 CPPRD(x1,1);
 {OBJ x3;OBJ x7;
  AReal_Sge(x1,__AReal_A0,x3);
  if(ISTGPRM(x3,1)){
   CPPRD(x1,1);
   CPPRD(x2,1);
   CPPRD(__AReal_Amax,1);
   {OBJ x4;
    AReal_AuncheckedSub(__AReal_Amax,x1,x4);
    AReal_Sg(x4,x2,x7);}
  }else{
   CPPRD(x1,1);
   CPPRD(x2,1);
   CPCLS(__AReal_Sp_L111,1);
   {OBJ x5;OBJ x6;
    x5=(*(OBJ(*)(OBJ,OBJ))METHOD(__AReal_Sp_L111,1))(__AReal_Sp_L111,__ABUILTIN_20);
    AReal_AuncheckedSub(x5,x1,x6);
    AReal_Sl(x6,x2,x7);}}
  if(ISTGPRM(x7,1)){
   AReal_AuncheckedAdd(x1,x2,r);
  }else{
   HLT("+\'Real: sum out of range");}}
 return r;}

extern OBJ _AReal_Sm(OBJ x1,OBJ x2) /* - */
{OBJ r;
 CPPRD(__AReal_A0,1);
 CPPRD(x1,1);
 {OBJ x3;OBJ x10;
  AReal_Sg(x1,__AReal_A0,x3);
  if(ISTGPRM(x3,1)){
   CPPRD(x1,1);
   CPPRD(x2,1);
   CPPRD(__AReal_Amax,1);
   {OBJ x4;OBJ x5;
    AReal_AuncheckedSub(__AReal_Amax,x1,x4);
    AReal_Sm_O1(x2,x5);
    AReal_Sg(x4,x5,x10);}
  }else{
   CPPRD(x1,1);
   CPPRD(__AReal_A0,1);
   {OBJ x6;
    AReal_Sl(x1,__AReal_A0,x6);
    if(ISTGPRM(x6,1)){
     CPPRD(x1,1);
     CPPRD(x2,1);
     CPCLS(__AReal_Sm_L112,1);
     {OBJ x7;OBJ x8;OBJ x9;
      AReal_Sm_O1(x2,x7);
      x8=(*(OBJ(*)(OBJ,OBJ))METHOD(__AReal_Sm_L112,1))(__AReal_Sm_L112,__ABUILTIN_20);
      AReal_AuncheckedSub(x8,x1,x9);
      AReal_Sl(x9,x7,x10);}
    }else{
     CPPRD(x2,1);
     CPPRD(__AReal_Amax,1);
     AReal_SSe(x2,__AReal_Amax,x10);}}}
  if(ISTGPRM(x10,1)){
   AReal_AuncheckedSub(x1,x2,r);
  }else{
   HLT("-\'Real: difference out of range");}}
 return r;}

extern OBJ _AReal_S8(OBJ x1,OBJ x2) /* * */
{OBJ r;
 CPPRD(__AReal_A1,1);
 CPPRD(x1,1);
 {OBJ x3;OBJ x4;OBJ x7;
  AReal_Aabs(x1,x3);
  CPPRD(x3,1);
  AReal_Sl(x3,__AReal_A1,x4);
  if(ISTGPRM(x4,1)){
   FRPRD(x3,1);
   x7=__ABUILTIN_5;
  }else{
   CPPRD(x2,1);
   CPPRD(__AReal_Amax,1);
   {OBJ x5;OBJ x6;
    AReal_Aabs(x2,x5);
    AReal_AuncheckedDiv(__AReal_Amax,x3,x6);
    AReal_Sge(x6,x5,x7);}}
  if(ISTGPRM(x7,1)){
   AReal_AuncheckedMul(x1,x2,r);
  }else{
   HLT("*\'Real: product out of range");}}
 return r;}

extern OBJ _AReal_Ss(OBJ x1,OBJ x2) /* / */
{OBJ r;
 CPPRD(__AReal_A0,1);
 CPPRD(x2,1);
 {OBJ x3;
  AReal_Se(x2,__AReal_A0,x3);
  if(ISTGPRM(x3,0)){
   CPPRD(x2,1);
   CPPRD(__AReal_A1,1);
   {OBJ x4;OBJ x5;OBJ x8;
    AReal_Aabs(x2,x4);
    CPPRD(x4,1);
    AReal_Sl(x4,__AReal_A1,x5);
    if(ISTGPRM(x5,1)){
     CPPRD(x1,1);
     CPPRD(__AReal_Amax,1);
     {OBJ x6;OBJ x7;
      AReal_Aabs(x1,x6);
      AReal_AuncheckedMul(__AReal_Amax,x4,x7);
      AReal_Sg(x6,x7,x8);}
    }else{
     FRPRD(x4,1);
     x8=__ABUILTIN_3;}
    if(ISTGPRM(x8,0)){
     AReal_AuncheckedDiv(x1,x2,r);
    }else{
     HLT("/\'Real: quotient out of range");}}
  }else{
   HLT("/\'Real: divisor zero");}}
 return r;}

extern OBJ _AReal_Amin_O1(OBJ x1,OBJ x2) /* min,1 */
{OBJ r;
 CPPRD(x1,1);
 CPPRD(x2,1);
 {OBJ x3;
  AReal_Sl(x1,x2,x3);
  if(ISTGPRM(x3,1)){
   FRPRD(x2,1);
   r=x1;
  }else{
   FRPRD(x1,1);
   r=x2;}}
 return r;}

extern OBJ _AReal_Amax_O1(OBJ x1,OBJ x2) /* max,1 */
{OBJ r;
 CPPRD(x1,1);
 CPPRD(x2,1);
 {OBJ x3;
  AReal_Sg(x1,x2,x3);
  if(ISTGPRM(x3,1)){
   FRPRD(x2,1);
   r=x1;
  }else{
   FRPRD(x1,1);
   r=x2;}}
 return r;}

extern OBJ _AReal_Apow(OBJ x1,OBJ x2) /* pow */
{OBJ r;
 CPPRD(__AReal_A0,1);
 CPPRD(x1,1);
 {OBJ x3;
  AReal_Sg(x1,__AReal_A0,x3);
  if(ISTGPRM(x3,1)){
   AReal_AuncheckedPow(x1,x2,r);
  }else{
   CPPRD(x1,1);
   CPPRD(__AReal_A0,1);
   {OBJ x4;
    AReal_Se(x1,__AReal_A0,x4);
    if(ISTGPRM(x4,1)){
     CPPRD(x2,1);
     CPPRD(__AReal_A0,1);
     {OBJ x5;
      AReal_Sg(x2,__AReal_A0,x5);
      if(ISTGPRM(x5,1)){
       AReal_AuncheckedPow(x1,x2,r);
      }else{
       HLT("pow\'Real: cannot raise zero to a negative power");}}
    }else{
     CPPRD(x1,1);
     CPPRD(__AReal_A0,1);
     {OBJ x6;
      AReal_Sl(x1,__AReal_A0,x6);
      if(ISTGPRM(x6,1)){
       CPPRD(x2,2);
       {OBJ x7;OBJ x8;
	AReal_Aceil(x2,x7);
	AReal_Se(x2,x7,x8);
	if(ISTGPRM(x8,1)){
	 AReal_AuncheckedPow(x1,x2,r);
	}else{
	 HLT("pow\'Real: cannot raise negative number to a non-integer power");}}
      }else{
       HLT("Real at <58,19-63,102> : missing else in pow\'Real:real**real->real");}}}}}}
 return r;}

extern OBJ _AReal_S6(OBJ x1,OBJ x2) /* ^ */
{OBJ r;
 AReal_Apow(x1,x2,r);
 return r;}

extern OBJ _AReal_Asqrt(OBJ x1) /* sqrt */
{OBJ r;
 CPPRD(__AReal_A0,1);
 CPPRD(x1,1);
 {OBJ x2;
  AReal_Sge(x1,__AReal_A0,x2);
  if(ISTGPRM(x2,1)){
   AReal_AuncheckedSqrt(x1,r);
  }else{
   HLT("sqrt\'Real: square root not defined for negative numbers");}}
 return r;}

extern OBJ _AReal_Aln(OBJ x1) /* ln */
{OBJ r;
 CPPRD(__AReal_A0,1);
 CPPRD(x1,1);
 {OBJ x2;
  AReal_Sg(x1,__AReal_A0,x2);
  if(ISTGPRM(x2,1)){
   AReal_AuncheckedLn(x1,r);
  }else{
   HLT("ln\'Real: logarithm only for positive numbers");}}
 return r;}

extern OBJ _AReal_Alog(OBJ x1) /* log */
{OBJ r;
 CPPRD(__AReal_A0,1);
 CPPRD(x1,1);
 {OBJ x2;
  AReal_Sg(x1,__AReal_A0,x2);
  if(ISTGPRM(x2,1)){
   AReal_AuncheckedLog(x1,r);
  }else{
   HLT("log\'Real: logarithm only for positive numbers");}}
 return r;}

extern OBJ _AReal_Asign(OBJ x1) /* sign */
{OBJ r;
 CPPRD(__AReal_A0,1);
 CPPRD(x1,1);
 {OBJ x2;
  AReal_Sg(x1,__AReal_A0,x2);
  if(ISTGPRM(x2,1)){
   FRPRD(x1,1);
   CPPRD(__AReal_A1,1);
   r=__AReal_A1;
  }else{
   CPPRD(x1,1);
   CPPRD(__AReal_A0,1);
   {OBJ x3;
    AReal_Sl(x1,__AReal_A0,x3);
    if(ISTGPRM(x3,1)){
     FRPRD(x1,1);
     CPCLS(__AReal_Asign_L113,1);
     r=(*(OBJ(*)(OBJ,OBJ))METHOD(__AReal_Asign_L113,1))(__AReal_Asign_L113,__ABUILTIN_20);
    }else{
     CPPRD(__AReal_A0,1);
     {OBJ x4;
      AReal_Se(x1,__AReal_A0,x4);
      if(ISTGPRM(x4,1)){
       CPPRD(__AReal_A0,1);
       r=__AReal_A0;
      }else{
       HLT("Real at <93,19-95,31> : missing else in sign\'Real:real->real");}}}}}}
 return r;}

extern OBJ _AReal_Aarcsin(OBJ x1) /* arcsin */
{OBJ r;
 CPCLS(__AReal_Aarcsin_L114,1);
 CPPRD(x1,1);
 {OBJ x2;OBJ x3;OBJ x4;
  x2=(*(OBJ(*)(OBJ,OBJ))METHOD(__AReal_Aarcsin_L114,1))(__AReal_Aarcsin_L114,__ABUILTIN_20);
  AReal_Sge(x1,x2,x3);
  if(ISTGPRM(x3,1)){
   CPPRD(x1,1);
   CPPRD(__AReal_A1,1);
   AReal_Sle(x1,__AReal_A1,x4);
  }else{
   x4=__ABUILTIN_3;}
  if(ISTGPRM(x4,1)){
   AReal_AuncheckedArcsin(x1,r);
  }else{
   HLT("arcsin\'Real: argument must be in [-1,1]");}}
 return r;}

extern OBJ _AReal_Aarccos(OBJ x1) /* arccos */
{OBJ r;
 CPCLS(__AReal_Aarccos_L115,1);
 CPPRD(x1,1);
 {OBJ x2;OBJ x3;OBJ x4;
  x2=(*(OBJ(*)(OBJ,OBJ))METHOD(__AReal_Aarccos_L115,1))(__AReal_Aarccos_L115,__ABUILTIN_20);
  AReal_Sge(x1,x2,x3);
  if(ISTGPRM(x3,1)){
   CPPRD(x1,1);
   CPPRD(__AReal_A1,1);
   AReal_Sle(x1,__AReal_A1,x4);
  }else{
   x4=__ABUILTIN_3;}
  if(ISTGPRM(x4,1)){
   AReal_AuncheckedArccos(x1,r);
  }else{
   HLT("arccos\'Real: argument must be in [-1,1]");}}
 return r;}

extern OBJ _AReal_Adeg(OBJ x1) /* deg */
{OBJ r;
 CPPRD(__AReal_Api,1);
 {OBJ x2;OBJ x3;
  x2=inline_c_real((double)(180));
  AReal_S8(x1,x2,x3);
  AReal_Ss(x3,__AReal_Api,r);}
 return r;}

extern OBJ _AReal_Arad(OBJ x1) /* rad */
{OBJ r;
 CPPRD(__AReal_Api,1);
 {OBJ x2;OBJ x3;
  AReal_S8(x1,__AReal_Api,x2);
  x3=inline_c_real((double)(180));
  AReal_Ss(x2,x3,r);}
 return r;}

extern OBJ _AReal_Apos_(OBJ x1) /* pos? */
{OBJ r;
 CPPRD(__AReal_A0,1);
 AReal_Sg(x1,__AReal_A0,r);
 return r;}

extern OBJ _AReal_Aneg_(OBJ x1) /* neg? */
{OBJ r;
 CPPRD(__AReal_A0,1);
 AReal_Sl(x1,__AReal_A0,r);
 return r;}

extern OBJ _AReal_Azero_(OBJ x1) /* zero? */
{OBJ r;
 CPPRD(__AReal_A0,1);
 AReal_Se(x1,__AReal_A0,r);
 return r;}

extern OBJ _AReal_Aproduct(OBJ x1,OBJ x2) /* product */
{OBJ r;
 PRD1F(2,r);FLD1(r,1)=x1;FLD1(r,2)=x2;
 return r;}

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

extern OBJ _AReal_Ab(OBJ x1) /* b */
{OBJ r;
 {OBJ x3=FLD1(x1,2);
  if(EXPRD(x1,1)){
   r=x3;
   DSPRDF(x1);
  }else{
   r=x3;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AReal_Aa(OBJ x1) /* a */
{OBJ r;
 {OBJ x2=FLD1(x1,1);
  if(EXPRD(x1,1)){
   r=x2;
   DSPRDF(x1);
  }else{
   r=x2;
   FRPRD(x1,1);}}
 return r;}

extern OBJ _AReal_Sp_L111(OBJ x1) /* +'111 */
{OBJ r;
 CPPRD(__AReal_Amax,1);
 AReal_Sm_O1(__AReal_Amax,r);
 return r;}

extern OBJ _AReal_Sm_L112(OBJ x1) /* -'112 */
{OBJ r;
 CPPRD(__AReal_Amax,1);
 AReal_Sm_O1(__AReal_Amax,r);
 return r;}

extern OBJ _AReal_Asign_L113(OBJ x1) /* sign'113 */
{OBJ r;
 CPPRD(__AReal_A1,1);
 AReal_Sm_O1(__AReal_A1,r);
 return r;}

extern OBJ _AReal_Aarcsin_L114(OBJ x1) /* arcsin'114 */
{OBJ r;
 CPPRD(__AReal_A1,1);
 AReal_Sm_O1(__AReal_A1,r);
 return r;}

extern OBJ _AReal_Aarccos_L115(OBJ x1) /* arccos'115 */
{OBJ r;
 CPPRD(__AReal_A1,1);
 AReal_Sm_O1(__AReal_A1,r);
 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_2_0_2(OBJ t,OBJ t1,OBJ t2) 
{OBJ r;
 DCCLS(t,1);
 r=(*(OBJ(*)(OBJ,OBJ))ENTRY(t))(t1,t2);
 return r;}

init_AReal()
{
 static int visited=0; if(visited) return; visited=1;
 CLS(2,_AReal_95,__AReal_95);
 CLS(2,_AReal_63,__AReal_63);
 CLS(2,_AReal_94,__AReal_94);
 CLS(2,_AReal_62,__AReal_62);
 CLS(2,_AReal_93,__AReal_93);
 CLS(2,_AReal_61,__AReal_61);
 CLS(2,_AReal_92,__AReal_92);
 CLS(2,_AReal_60,__AReal_60);
 CLS(2,_AReal_91,__AReal_91);
 CLS(2,_AReal_59,__AReal_59);
 CLS(1,_AReal_90,__AReal_90);
 CLS(1,_AReal_58,__AReal_58);
 CLS(1,_AReal_89,__AReal_89);
 CLS(1,_AReal_88,__AReal_88);
 CLS(1,_AReal_87,__AReal_87);
 CLS(1,_AReal_86,__AReal_86);
 CLS(1,_AReal_85,__AReal_85);
 CLS(1,_AReal_84,__AReal_84);
 LCLS(1,_AReal_115,__AReal_115);
 CLS(1,_AReal_83,__AReal_83);
 LCLS(1,_AReal_114,__AReal_114);
 CLS(2,_AReal_82,__AReal_82);
 LCLS(1,_AReal_113,__AReal_113);
 CLS(1,_AReal_81,__AReal_81);
 LCLS(1,_AReal_112,__AReal_112);
 CLS(1,_AReal_80,__AReal_80);
 LCLS(1,_AReal_111,__AReal_111);
 CLS(1,_AReal_79,__AReal_79);
 CLS(1,_AReal_110,__AReal_110);
 CLS(1,_AReal_78,__AReal_78);
 CLS(1,_AReal_109,__AReal_109);
 CLS(1,_AReal_77,__AReal_77);
 CLS(1,_AReal_108,__AReal_108);
 CLS(1,_AReal_76,__AReal_76);
 CLS(1,_AReal_107,__AReal_107);
 CLS(1,_AReal_75,__AReal_75);
 CLS(1,_AReal_106,__AReal_106);
 CLS(1,_AReal_74,__AReal_74);
 CLS(2,_AReal_105,__AReal_105);
 CLS(1,_AReal_73,__AReal_73);
 CLS(2,_AReal_104,__AReal_104);
 CLS(1,_AReal_72,__AReal_72);
 CLS(2,_AReal_103,__AReal_103);
 CLS(1,_AReal_71,__AReal_71);
 CLS(2,_AReal_102,__AReal_102);
 CLS(1,_AReal_70,__AReal_70);
 CLS(2,_AReal_101,__AReal_101);
 CLS(1,_AReal_69,__AReal_69);
 CLS(1,_AReal_100,__AReal_100);
 CLS(2,_AReal_68,__AReal_68);
 CLS(1,_AReal_99,__AReal_99);
 CLS(2,_AReal_67,__AReal_67);
 CLS(1,_AReal_98,__AReal_98);
 CLS(1,_AReal_66,__AReal_66);
 CLS(2,_AReal_97,__AReal_97);
 CLS(1,_AReal_65,__AReal_65);
 CLS(2,_AReal_96,__AReal_96);
 CLS(2,_AReal_64,__AReal_64);
 MTH(1,0,1,_mt_1_0_1);LZYMTH(1,0,1,_mt_1_0_1_l);
 MTH(2,0,2,_mt_2_0_2);LZYMTH(2,0,2,_mt_2_0_2);
 init_const_AReal();
 /* __AReal_A1 */
 __AReal_A1=inline_c_real((double)(1));
 /* __AReal_A2 */
 __AReal_A2=inline_c_real((double)(2));
 /* __AReal_A3 */
 __AReal_A3=inline_c_real((double)(3));
 /* __AReal_A4 */
 __AReal_A4=inline_c_real((double)(4));
 /* __AReal_A5 */
 __AReal_A5=inline_c_real((double)(5));
 /* __AReal_A6 */
 __AReal_A6=inline_c_real((double)(6));
 /* __AReal_A7 */
 __AReal_A7=inline_c_real((double)(7));
 /* __AReal_A8 */
 __AReal_A8=inline_c_real((double)(8));
 /* __AReal_A9 */
 __AReal_A9=inline_c_real((double)(9));
 /* __AReal_A10 */
 __AReal_A10=inline_c_real((double)(10));
 /* __AReal_A11 */
 __AReal_A11=inline_c_real((double)(11));
 /* __AReal_A12 */
 __AReal_A12=inline_c_real((double)(12));
 /* __AReal_A13 */
 __AReal_A13=inline_c_real((double)(13));
 /* __AReal_A14 */
 __AReal_A14=inline_c_real((double)(14));
 /* __AReal_A15 */
 __AReal_A15=inline_c_real((double)(15));
 /* __AReal_A16 */
 __AReal_A16=inline_c_real((double)(16));
 /* __AReal_A17 */
 __AReal_A17=inline_c_real((double)(17));
 /* __AReal_A18 */
 __AReal_A18=inline_c_real((double)(18));
 /* __AReal_A19 */
 __AReal_A19=inline_c_real((double)(19));
 /* __AReal_A20 */
 __AReal_A20=inline_c_real((double)(20));
 /* __AReal_A21 */
 __AReal_A21=inline_c_real((double)(21));
 /* __AReal_A22 */
 __AReal_A22=inline_c_real((double)(22));
 /* __AReal_A23 */
 __AReal_A23=inline_c_real((double)(23));
 /* __AReal_A24 */
 __AReal_A24=inline_c_real((double)(24));
 /* __AReal_A25 */
 __AReal_A25=inline_c_real((double)(25));
 /* __AReal_A26 */
 __AReal_A26=inline_c_real((double)(26));
 /* __AReal_A27 */
 __AReal_A27=inline_c_real((double)(27));
 /* __AReal_A28 */
 __AReal_A28=inline_c_real((double)(28));
 /* __AReal_A29 */
 __AReal_A29=inline_c_real((double)(29));
 /* __AReal_A30 */
 __AReal_A30=inline_c_real((double)(30));
 /* __AReal_A31 */
 __AReal_A31=inline_c_real((double)(31));
 /* __AReal_A32 */
 __AReal_A32=inline_c_real((double)(32));
 /* __AReal_A64 */
 __AReal_A64=inline_c_real((double)(64));
 /* __AReal_A128 */
 __AReal_A128=inline_c_real((double)(128));
 /* __AReal_A256 */
 __AReal_A256=inline_c_real((double)(256));
 /* __AReal_A512 */
 __AReal_A512=inline_c_real((double)(512));
 /* __AReal_A1024 */
 __AReal_A1024=inline_c_real((double)(1024));
 /* __AReal_A100 */
 __AReal_A100=inline_c_real((double)(100));
 /* __AReal_A1000 */
 __AReal_A1000=inline_c_real((double)(1000));
 /* __AReal_A10000 */
 __AReal_A10000=inline_c_real((double)(10000));
 /* __AReal_A100000 */
 __AReal_A100000=inline_c_real((double)(100000));
 /* __AReal_A1000000 */
 __AReal_A1000000=inline_c_real((double)(1000000));}

