transitive_closure (unsigned int * R, int n)
{
  int D.3964;
  int D.3965;
  long unsigned int D.3966;
  long unsigned int D.3967;
  unsigned int D.3968;
  int i.0;
  int D.3970;
  unsigned int D.3971;
  unsigned int D.3972;
  long unsigned int D.3975;
  long unsigned int D.3976;
  unsigned int * rp.1;
  unsigned int D.3978;
  unsigned int * rowj.2;
  unsigned int * rowj.3;
  unsigned int D.3981;
  unsigned int D.3982;
  register int rowsize;
  register unsigned int i;
  register unsigned int * rowj;
  register unsigned int * rp;
  register unsigned int * rend;
  register unsigned int * ccol;
  register unsigned int * relend;
  register unsigned int * cword;
  register unsigned int * rowi;

  D.3964 = n + 31;
  rowsize = D.3964 / 32;
  D.3965 = n * rowsize;
  D.3966 = (long unsigned int) D.3965;
  D.3967 = D.3966 * 4;
  relend = R + D.3967;
  cword = R;
  i = 0;
  rowi = R;
  goto <D.3950>;
  <D.3949>:
  ccol = cword;
  rowj = R;
  goto <D.3947>;
  <D.3946>:
  D.3968 = *ccol;
  i.0 = (int) i;
  D.3970 = 1 << i.0;
  D.3971 = (unsigned int) D.3970;
  D.3972 = D.3968 & D.3971;
  if (D.3972 != 0) goto <D.3973>; else goto <D.3974>;
  <D.3973>:
  rp = rowi;
  D.3975 = (long unsigned int) rowsize;
  D.3976 = D.3975 * 4;
  rend = rowj + D.3976;
  goto <D.3944>;
  <D.3943>:
  rp.1 = rp;
  rp = rp.1 + 4;
  D.3978 = *rp.1;
  rowj.2 = rowj;
  rowj = rowj.2 + 4;
  rowj.3 = rowj.2;
  D.3981 = *rowj.3;
  D.3982 = D.3981 | D.3978;
  *rowj.3 = D.3982;
  <D.3944>:
  if (rowj < rend) goto <D.3943>; else goto <D.3945>;
  <D.3945>:
  goto <D.3983>;
  <D.3974>:
  D.3975 = (long unsigned int) rowsize;
  D.3976 = D.3975 * 4;
  rowj = rowj + D.3976;
  <D.3983>:
  D.3975 = (long unsigned int) rowsize;
  D.3976 = D.3975 * 4;
  ccol = ccol + D.3976;
  <D.3947>:
  if (rowj < relend) goto <D.3946>; else goto <D.3948>;
  <D.3948>:
  i = i + 1;
  if (i > 31) goto <D.3984>; else goto <D.3985>;
  <D.3984>:
  i = 0;
  cword = cword + 4;
  <D.3985>:
  D.3975 = (long unsigned int) rowsize;
  D.3976 = D.3975 * 4;
  rowi = rowi + D.3976;
  <D.3950>:
  if (rowi < relend) goto <D.3949>; else goto <D.3951>;
  <D.3951>:
}


reflexive_transitive_closure (unsigned int * R, int n)
{
  int D.3986;
  int D.3987;
  long unsigned int D.3988;
  long unsigned int D.3989;
  unsigned int D.3990;
  int i.4;
  int D.3992;
  unsigned int D.3993;
  unsigned int D.3994;
  long unsigned int D.3997;
  long unsigned int D.3998;
  register int rowsize;
  register unsigned int i;
  register unsigned int * rp;
  register unsigned int * relend;

  transitive_closure (R, n);
  D.3986 = n + 31;
  rowsize = D.3986 / 32;
  D.3987 = n * rowsize;
  D.3988 = (long unsigned int) D.3987;
  D.3989 = D.3988 * 4;
  relend = R + D.3989;
  i = 0;
  rp = R;
  goto <D.3961>;
  <D.3960>:
  D.3990 = *rp;
  i.4 = (int) i;
  D.3992 = 1 << i.4;
  D.3993 = (unsigned int) D.3992;
  D.3994 = D.3990 | D.3993;
  *rp = D.3994;
  i = i + 1;
  if (i > 31) goto <D.3995>; else goto <D.3996>;
  <D.3995>:
  i = 0;
  rp = rp + 4;
  <D.3996>:
  D.3997 = (long unsigned int) rowsize;
  D.3998 = D.3997 * 4;
  rp = rp + D.3998;
  <D.3961>:
  if (rp < relend) goto <D.3960>; else goto <D.3962>;
  <D.3962>:
}


