#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  _imp_enter();
  const int INTPTSEL = 0;
  const int IMPROUNDS = 1;
  auto void PRHEX(int VALUE, int PLACES) {
    _imp_enter();
    const _imp_string HEX[15 - 0 + 1] = {
        _imp_str_literal("0"), _imp_str_literal("1"), _imp_str_literal("2"),
        _imp_str_literal("3"), _imp_str_literal("4"), _imp_str_literal("5"),
        _imp_str_literal("6"), _imp_str_literal("7"), _imp_str_literal("8"),
        _imp_str_literal("9"), _imp_str_literal("A"), _imp_str_literal("B"),
        _imp_str_literal("C"), _imp_str_literal("D"), _imp_str_literal("E"),
        _imp_str_literal("F")};
    int I;
    for (I = (PLACES << 2) - 4; I != 0 + -4; I += -4) {
      /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/;
    }

    _imp_leave();
  }
  auto void ERROR(int VAL) {
    _imp_enter();
    /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/;
    _imp_leave();
  }
  auto float POWRR(float ARGX, float ARGY);
  static int POWERNEG = 23;
  static int POWERZERO = 22;
  static int POWERBIG = 24;
  static int POWERSMALL = 25;
  const int EXPEXCESS = 126;
  const int MAXEXP = 254;
  const int MINEXP = 1;
  const float GREATEST = 3.4028234664 @38;
  const float ONE = 1.0;
  const float SIXTEENTH = 0.0625;
  const float ZERO = 0.0;
  const int IEXP = 0x7F800000;
  const int IMANT = 0x007FFFFF;
  const int EXPEXT23 = 0x3F000000;
  const int EXPADD1 = 0x00800000;
  const int EXPADD3 = 0x02000000;
  auto float POWRR(float ARG1, float ARG2) /* See
                                              https://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/Function-Attributes.html
                                            */
  {
    _imp_enter();
    const float A1[17 - 1 + 1] = {
        0x1.3F800000fp0, 0x1.3F75257Dfp0, 0x1.3F6AC0C7fp0, 0x1.3F60CCDFfp0,
        0x1.3F5744FDfp0, 0x1.3F4E248Cfp0, 0x1.3F45672Afp0, 0x1.3F3D08A4fp0,
        0x1.3F3504F3fp0, 0x1.3F2D583Ffp0, 0x1.3F25FED7fp0, 0x1.3F1EF532fp0,
        0x1.3F1837F0fp0, 0x1.3F11C3D3fp0, 0x1.3F0B95C2fp0, 0x1.3F05AAC3fp0,
        0x1.3F000000fp0};
    const float A2[8 - 1 + 1] = {
        0x1.31A92430fp0, 0x1.B19EAB58fp0, 0x1.31A8FC20fp0, 0x1.B2C14FE6fp0,
        0x1.B1ADEAF0fp0, 0x1.32C12342fp0, 0x1.32E75622fp0, 0x1.32CF9890fp0};
    const float K = 0.44269504088896341;
    const float P1 = 0.83357 541 @-1;
    const float Q1 = 0.69314 675 @0;
    const float Q2 = 0.24018 510 @0;
    const float Q3 = 0.54360 383 @-1;
    const int IW1MAX = 4030;
    const int IW1MIN = -4159;
    int PP;
    int P;
    int N;
    int M;
    int M16;
    int IW1;
    int IY;
    float D;
    float Z;
    float R;
    float V;
    float G;
    float X;
    float Y;
    float U1;
    float U2;
    float W;
    float W1;
    float W2;
    double UU1;
    double UU2;
    double WW;
    X = ARG1;
    Y = ARG2;
    if (X <= ZERO) {
      if (X == ZERO && Y > ZERO) return (ZERO);
      if (INTPTSEL != 0) {
        /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/ IY = MISSING_RHS;
        if (INTPTSEL == 2 && IY < 0) IY = IY + 1;

      } else /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/
        IY = MISSING_RHS;
      if (Y != FLOAT(IY)) ERROR(POWERNEG);

    } /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/
    /*ERROR: name_sym_idx is -1!*/   /*C_NAME*/
    M = ((() & IEXP) >> 23) - EXPEXCESS;
    G = X; /*ERROR: name_sym_idx is -1!*/         /*C_NAME*/
        /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/ /*ERROR: name_sym_idx is -1!*/
        /*C_NAME*/ /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/
    EXPEXT23 | (IMANT & ());
    P = 1;
    if (G <= A1[9]) P = 9;
    if (G <= A1[P + 4]) P = P + 4;
    if (G <= A1[P + 2]) P = P + 2;
    PP = P + 1;
    Z = (G - A1[PP]);
    Z = Z - A2[PP >> 1];
    D = (G + A1[PP]); /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/
        /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/ /*ERROR: name_sym_idx is -1!*/
        /*C_NAME*/ /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/
    () - EXPADD1;
    Z = Z / D;
    V = Z * Z;
    R = P1 * V * Z;
    R = R + K * R;
    U2 = (R + Z * K) + Z;
    if (M > 0)
      M16 = M << 4;
    else
      M16 = -(-M) << 4;
    U1 = FLOAT(M16 - P);
    if (M16 != P) /*ERROR: name_sym_idx is -1!*/  /*C_NAME*/
        /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/ /*ERROR: name_sym_idx is -1!*/
        /*C_NAME*/ /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/
      () - EXPADD3;
    UU1 = U1;
    UU2 = U2;
    WW = Y * (UU1 + UU2);
    W = WW;
    if (IMPROUNDS == 0) {
      WW = WW + (WW - W);
      W = WW;
    }
    if (W != ZERO) {
      /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/ /*ERROR: name_sym_idx is -1!*/
          /*C_NAME*/ /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/
          /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/ () + EXPADD3;
          /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/
      W1 = FLOAT();
      W = W1;
      if (W1 != ZERO) /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/
          /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/  /*ERROR: name_sym_idx is
                                                        -1!*/
          /*C_NAME*/ /*ERROR: name_sym_idx is -1!*/  /*C_NAME*/
        () - EXPADD3;
      W2 = WW - W1;
      if (INTPTSEL == 0) /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/
        IW1 = MISSING_RHS;
      else /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/
        IW1 = MISSING_RHS;
      if (INTPTSEL == 2) {
        if (IW1 < 0) IW1 = IW1 + 1;
      }

    } else {
      W1 = ZERO;
      W2 = ZERO;
      IW1 = 0;
    }
    if (W2 > ZERO) {
      W2 = W2 - SIXTEENTH;
      IW1 = IW1 + 1;
    }
    if (IW1 < 0) {
      P = ((-IW1) >> 4);
      M = -P;
      P = -(P << 4) - IW1 + 1;

    } else {
      M = (IW1 >> 4) + 1;
      P = (M << 4) - IW1 + 1;
    }
    Z = (((Q3 * W2 + Q2) * W2 + Q1) * W2) * A1[P] + A1[P];
    if (Z == ZERO) {
      return (ZERO);

    } else {
      /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/ /*ERROR: name_sym_idx is -1!*/
      /*C_NAME*/ N = ((() & IEXP) >> 23) + M;
      if (N > MAXEXP || N < MINEXP) {
        if (N < MINEXP) {
          return (ZERO);
        }
        ERROR(POWERBIG);
        return (GREATEST);

      } /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/ /*ERROR: name_sym_idx is -1!*/
      /*C_NAME*/ /*ERROR: name_sym_idx is -1!*/   /*C_NAME*/
      /*ERROR: name_sym_idx is -1!*/              /*C_NAME*/
      N << 23 | (IMANT & ());
      return (Z);
    }

    _imp_leave();
  }
  float X;
  float Y;
  float Z;
  X = 2;
  Y = 4;
  Z = POWRR(X, Y); /*ERROR: name_sym_idx is -1!*/   /*C_NAME*/
  if (() < 0.000001) /*ERROR: name_sym_idx is -1!*/ /*C_NAME*/
    ;
  else
    PRINTFL(16 - Z, 9);
  _imp_leave();
  exit(0);
  return (0);
}
