#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  int L;
  int M;
  int N;
  double X;
  int I;
  int J;
  L = 0xFEDCBA98;
  for (J = 0; J <= 1; J++)
    for (I = 0; I <= 30; I++) {
      N = IEXP((-1), J) * ((unsigned)L >> I);
      X = N - 0.00001;
      M = Intpt(X);
      if (N != M + 1) {
        Write(I, 1);
        Write(N - M, 5);
        Newline();
        _imp_monitor();
        exit(0);
      }
      M = Int(X);
      if (M != N) {
        Write(I, 1);
        Write(N - M, 5);
        Newline();
        _imp_monitor();
        exit(0);
      }
    }
  Printstring(_imp_str_literal("PART 1 OK "));
  {
    static const int Imax = 2147483647;
    static const int Ct = 78;
    int I;
    int J;
    double R;
    static const double Vals[78 /*1:78*/] = {
        % 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; J++) {
      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"));
  exit(0);
  return (1);
}
