ves_icall_System_Math_Floor (gdouble x)
{
  gdouble D.7672;

  D.7672 = floor (x);
  return D.7672;
}


floor (double __x)
{
  double D.7674;
  register long double __value;
  register int __ignore;
  short unsigned int __cw;
  short unsigned int __cwtmp;

  try
    {
      __asm__ __volatile__("fnstcw %3
	movzwl %3, %1
	andl $0xf3ff, %1
	orl $0x0400, %1
	movw %w1, %2
	fldcw %2
	frndint
	fldcw %3" : "=t" __value, "=&q" __ignore, "=m" __cwtmp, "=m" __cw : "0" __x);
      D.7674 = (double) __value;
      return D.7674;
    }
  finally
    {
      __cw = {CLOBBER};
      __cwtmp = {CLOBBER};
    }
}


ves_icall_System_Math_Round (gdouble x)
{
  double D.7681;
  double D.7682;
  double D.7683;
  double D.7684;
  gdouble D.7685;
  double int_part;
  double dec_part;

  int_part = floor (x);
  dec_part = x - int_part;
  if (dec_part == 5.0e-1) goto <D.7680>; else goto <D.7677>;
  <D.7680>:
  D.7681 = int_part * 5.0e-1;
  D.7681 = int_part * 5.0e-1;
  D.7682 = floor (D.7681);
  D.7683 = D.7681 - D.7682;
  D.7684 = D.7683 * 2.0e+0;
  if (D.7684 != 0.0) goto <D.7678>; else goto <D.7677>;
  <D.7677>:
  if (dec_part > 5.0e-1) goto <D.7678>; else goto <D.7679>;
  <D.7678>:
  int_part = int_part + 1.0e+0;
  <D.7679>:
  D.7685 = int_part;
  return D.7685;
}


ves_icall_System_Math_Round2 (gdouble value, gint32 digits, gboolean away_from_zero)
{
  gdouble D.7689;
  double D.7692;
  double D.7695;
  double D.7696;
  double D.7697;
  double p;

  if (value > 1.79769313486231570814527423731704356798070567525844996599e+308) goto <D.7687>; else goto <D.7688>;
  <D.7687>:
  D.7689 =  Inf;
  return D.7689;
  <D.7688>:
  if (value < -1.79769313486231570814527423731704356798070567525844996599e+308) goto <D.7690>; else goto <D.7691>;
  <D.7690>:
  D.7689 =  -Inf;
  return D.7689;
  <D.7691>:
  D.7692 = (double) digits;
  p = pow (1.0e+1, D.7692);
  if (away_from_zero != 0) goto <D.7693>; else goto <D.7694>;
  <D.7693>:
  D.7695 = value * p;
  D.7696 = round (D.7695);
  D.7689 = D.7696 / p;
  return D.7689;
  <D.7694>:
  D.7695 = value * p;
  D.7697 = rint (D.7695);
  D.7689 = D.7697 / p;
  return D.7689;
}


ves_icall_System_Math_Sin (gdouble x)
{
  gdouble D.7699;

  D.7699 = sin (x);
  return D.7699;
}


ves_icall_System_Math_Cos (gdouble x)
{
  gdouble D.7701;

  D.7701 = cos (x);
  return D.7701;
}


ves_icall_System_Math_Tan (gdouble x)
{
  gdouble D.7703;

  D.7703 = tan (x);
  return D.7703;
}


ves_icall_System_Math_Sinh (gdouble x)
{
  gdouble D.7705;

  D.7705 = sinh (x);
  return D.7705;
}


ves_icall_System_Math_Cosh (gdouble x)
{
  gdouble D.7707;

  D.7707 = cosh (x);
  return D.7707;
}


ves_icall_System_Math_Tanh (gdouble x)
{
  gdouble D.7709;

  D.7709 = tanh (x);
  return D.7709;
}


ves_icall_System_Math_Acos (gdouble x)
{
  gdouble D.7714;

  if (x < -1.0e+0) goto <D.7711>; else goto <D.7713>;
  <D.7713>:
  if (x > 1.0e+0) goto <D.7711>; else goto <D.7712>;
  <D.7711>:
  D.7714 =  Nan;
  return D.7714;
  <D.7712>:
  D.7714 = acos (x);
  return D.7714;
}


ves_icall_System_Math_Asin (gdouble x)
{
  gdouble D.7719;

  if (x < -1.0e+0) goto <D.7716>; else goto <D.7718>;
  <D.7718>:
  if (x > 1.0e+0) goto <D.7716>; else goto <D.7717>;
  <D.7716>:
  D.7719 =  Nan;
  return D.7719;
  <D.7717>:
  D.7719 = asin (x);
  return D.7719;
}


ves_icall_System_Math_Atan (gdouble x)
{
  gdouble D.7721;

  D.7721 = atan (x);
  return D.7721;
}


ves_icall_System_Math_Atan2 (gdouble y, gdouble x)
{
  gdouble D.7731;
  gdouble iftmp.0;
  double result;

  if (y > 1.79769313486231570814527423731704356798070567525844996599e+308) goto <D.7727>; else goto <D.7723>;
  <D.7727>:
  if (x > 1.79769313486231570814527423731704356798070567525844996599e+308) goto <D.7724>; else goto <D.7728>;
  <D.7728>:
  if (x < -1.79769313486231570814527423731704356798070567525844996599e+308) goto <D.7724>; else goto <D.7723>;
  <D.7723>:
  if (y < -1.79769313486231570814527423731704356798070567525844996599e+308) goto <D.7729>; else goto <D.7725>;
  <D.7729>:
  if (x > 1.79769313486231570814527423731704356798070567525844996599e+308) goto <D.7724>; else goto <D.7725>;
  <D.7725>:
  if (y < -1.79769313486231570814527423731704356798070567525844996599e+308) goto <D.7730>; else goto <D.7726>;
  <D.7730>:
  if (x < -1.79769313486231570814527423731704356798070567525844996599e+308) goto <D.7724>; else goto <D.7726>;
  <D.7724>:
  D.7731 =  Nan;
  return D.7731;
  <D.7726>:
  result = atan2 (y, x);
  if (result != 0.0) goto <D.7733>; else goto <D.7734>;
  <D.7733>:
  iftmp.0 = result;
  goto <D.7735>;
  <D.7734>:
  iftmp.0 = 0.0;
  <D.7735>:
  D.7731 = iftmp.0;
  return D.7731;
}


ves_icall_System_Math_Exp (gdouble x)
{
  gdouble D.7737;

  D.7737 = exp (x);
  return D.7737;
}


ves_icall_System_Math_Log (gdouble x)
{
  gdouble D.7741;

  if (x == 0.0) goto <D.7739>; else goto <D.7740>;
  <D.7739>:
  D.7741 =  -Inf;
  return D.7741;
  <D.7740>:
  if (x < 0.0) goto <D.7742>; else goto <D.7743>;
  <D.7742>:
  D.7741 =  Nan;
  return D.7741;
  <D.7743>:
  D.7741 = log (x);
  return D.7741;
}


ves_icall_System_Math_Log10 (gdouble x)
{
  gdouble D.7747;

  if (x == 0.0) goto <D.7745>; else goto <D.7746>;
  <D.7745>:
  D.7747 =  -Inf;
  return D.7747;
  <D.7746>:
  if (x < 0.0) goto <D.7748>; else goto <D.7749>;
  <D.7748>:
  D.7747 =  Nan;
  return D.7747;
  <D.7749>:
  D.7747 = log10 (x);
  return D.7747;
}


ves_icall_System_Math_Pow (gdouble x, gdouble y)
{
  int D.7753;
  int D.7755;
  gdouble D.7756;
  _Bool D.7759;
  _Bool D.7760;
  _Bool D.7761;
  int D.7773;
  gdouble iftmp.1;
  double result;

  D.7753 = __isnan (x);
  if (D.7753 != 0) goto <D.7751>; else goto <D.7754>;
  <D.7754>:
  D.7755 = __isnan (y);
  if (D.7755 != 0) goto <D.7751>; else goto <D.7752>;
  <D.7751>:
  D.7756 =  Nan;
  return D.7756;
  <D.7752>:
  D.7759 = x == 1.0e+0;
  D.7760 = x == -1.0e+0;
  D.7761 = D.7759 | D.7760;
  if (D.7761 != 0) goto <D.7762>; else goto <D.7763>;
  <D.7762>:
  if (y > 1.79769313486231570814527423731704356798070567525844996599e+308) goto <D.7757>; else goto <D.7764>;
  <D.7764>:
  if (y < -1.79769313486231570814527423731704356798070567525844996599e+308) goto <D.7757>; else goto <D.7758>;
  <D.7757>:
  D.7756 =  Nan;
  return D.7756;
  <D.7758>:
  <D.7763>:
  if (x < -9.007199254740991e+15) goto <D.7765>; else goto <D.7766>;
  <D.7765>:
  if (y > 9.007199254740991e+15) goto <D.7767>; else goto <D.7768>;
  <D.7767>:
  D.7756 =  Inf;
  return D.7756;
  <D.7768>:
  if (y < -9.007199254740991e+15) goto <D.7769>; else goto <D.7770>;
  <D.7769>:
  D.7756 = 0.0;
  return D.7756;
  <D.7770>:
  <D.7766>:
  result = pow (x, y);
  D.7773 = __isnan (result);
  if (D.7773 != 0) goto <D.7774>; else goto <D.7775>;
  <D.7774>:
  if (x == -1.0e+0) goto <D.7776>; else goto <D.7777>;
  <D.7776>:
  if (y > 9.007199254740991e+15) goto <D.7771>; else goto <D.7778>;
  <D.7778>:
  if (y < -9.007199254740991e+15) goto <D.7771>; else goto <D.7772>;
  <D.7771>:
  D.7756 = 1.0e+0;
  return D.7756;
  <D.7772>:
  <D.7777>:
  <D.7775>:
  if (result != 0.0) goto <D.7780>; else goto <D.7781>;
  <D.7780>:
  iftmp.1 = result;
  goto <D.7782>;
  <D.7781>:
  iftmp.1 = 0.0;
  <D.7782>:
  D.7756 = iftmp.1;
  return D.7756;
}


ves_icall_System_Math_Sqrt (gdouble x)
{
  gdouble D.7786;

  if (x < 0.0) goto <D.7784>; else goto <D.7785>;
  <D.7784>:
  D.7786 =  Nan;
  return D.7786;
  <D.7785>:
  D.7786 = sqrt (x);
  return D.7786;
}


