#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  _imp_enter();
  int L;
  int M;
  int N;
  double X;
  int I;
  int J;
  L = 0xFEDCBA98;
  for (J = 0; J != 1 + 1; J += 1) {
    for (I = 0; I != 30 + 1; I += 1) {
      N = IEXP((-1), J) * (L >> I);
      X = N - 0.00001;
      M = INTPT(X);
      if (N != M + 1) {
        WRITE(I, 1);
        WRITE(N - M, 5);
        NEWLINE();
        _imp_monitor(0);
        exit(0);
      }
      M = INT(X);
      if (M != N) {
        WRITE(I, 1);
        WRITE(N - M, 5);
        NEWLINE();
        _imp_monitor(0);
        exit(0);
      }
    }
  }
  PRINTSTRING(_imp_str_literal("PART 1 OK "));
  {
    const int IMAX = 2147483647;
    const int CT = 78;
    int I;
    int J;
    double R;
    const double VALS[CT - 1 + 1] = {
        % c 0.0,       0.5,           -0.5,          -4.5,
        4.5,           -4.2,          2147483646.0,  -2147483646.0,
        -2147483645.0, 2147483645.0,  2147483646.3,  -2147483646.3,
        -2147483645.3, 2147483645.3,  2147483646.5,  -2147483646.5,
        -2147483645.5, 2147483645.5,  2147483646.7,  -2147483646.7,
        -2147483645.7, 2147483645.7,  2147483647.0,  -2147483647.0,
        -2147483648.0, 2147483648.0,  -2147483649.0, 2147483649.0,
        2147483647.3,  -2147483647.3, -2147483648.3, 2147483648.3,
        -2147483649.3, 2147483649.3,  2147483647.5,  -2147483647.5,
        -2147483648.5, 2147483648.5,  -2147483649.5, 2147483649.5,
        2147483647.7,  -2147483647.7, -2147483648.7, 2147483648.7,
        -2147483649.7, 2147483649.7,  2147483662.0,  2147483663.0,
        2147483664.0,  2147483665.0,  2147483662.3,  2147483663.3,
        2147483664.3,  2147483665.3,  2147483662.5,  2147483663.5,
        2147483664.5,  2147483665.5,  2147483662.7,  2147483663.7,
        2147483664.7,  2147483665.7,  -2147483662.0, -2147483663.0,
        -2147483664.0, -2147483665.0, -2147483662.3, -2147483663.3,
        -2147483664.3, -2147483665.3, -2147483662.5, -2147483663.5,
        -2147483664.5, -2147483665.5, -2147483662.7, -2147483663.7,
        -2147483664.7, -2147483665.7};
    for (J = 1; J != CT + 1; J += 1) {
      {
        if (_imp_on_event(1, 2)) {
          PRINTSTRING(_imp_str_literal("Overflow Trapped"));
          exit(0);
          goto END;
        }
        R = VALS[J];
        I = INT(R);
        if (MOD(R - I) > 0.5) {
          PRINT(R, 6, 2);
          WRITE(I, 12);
          PRINTSTRING(_imp_str_literal("  fail"));
          NEWLINE();
          exit(0);
        }
      END:;
      }
    }
  }
  PRINTSTRING(_imp_str_literal("TEST OK"));
  _imp_leave();
  exit(0);
  return (0);
}
