示例#1
0
DFtype __divdf3(DFtype a, DFtype b)
{
  FP_DECL_EX;
  FP_DECL_D(A); FP_DECL_D(B); FP_DECL_D(R);
  DFtype r;

  FP_INIT_ROUNDMODE;
  FP_UNPACK_D(A, a);
  FP_UNPACK_D(B, b);
  FP_DIV_D(R, A, B);
  FP_PACK_D(r, R);
  FP_HANDLE_EXCEPTIONS;

  return r;
}
示例#2
0
double
__fma (double a, double b, double c)
{
  FP_DECL_EX;
  FP_DECL_D (A);
  FP_DECL_D (B);
  FP_DECL_D (C);
  FP_DECL_D (R);
  double r;

  FP_INIT_ROUNDMODE;
  FP_UNPACK_D (A, a);
  FP_UNPACK_D (B, b);
  FP_UNPACK_D (C, c);
  FP_FMA_D (R, A, B, C);
  FP_PACK_D (r, R);
  FP_HANDLE_EXCEPTIONS;

  return r;
}
示例#3
0
DItype __fixdfdi(double a)
{
  FP_DECL_EX;
  FP_DECL_D(A);
  DItype r;

  FP_UNPACK_D(A, a);
  FP_TO_INT_D(r, A, 64, 1);
  FP_HANDLE_EXCEPTIONS;

  return r;
}
示例#4
0
double __sqrtdf2(double a)
{
  FP_DECL_EX;
  FP_DECL_D(A); FP_DECL_D(R);
  double r;

  FP_INIT_ROUNDMODE;
  FP_UNPACK_D(A, a);
  FP_SQRT_D(R, A);
  FP_PACK_D(r, R);
  FP_HANDLE_EXCEPTIONS;

  return r;
}
示例#5
0
DFtype __negdf2(DFtype a)
{
  FP_DECL_EX;
  FP_DECL_D(A); FP_DECL_D(R);
  DFtype r;

  FP_UNPACK_D(A, a);
  FP_NEG_D(R, A);
  FP_PACK_D(r, R);
  FP_CLEAR_EXCEPTIONS;
  FP_HANDLE_EXCEPTIONS;

  return r;
}
示例#6
0
float __truncdfsf2(double a)
{
  FP_DECL_EX;
  FP_DECL_D(A);
  FP_DECL_S(R);
  float r;

  FP_INIT_ROUNDMODE;
  FP_UNPACK_D(A, a);
#if _FP_W_TYPE_SIZE < _FP_FRACBITS_D
  FP_CONV(S,D,1,2,R,A);
#else
  FP_CONV(S,D,1,1,R,A);
#endif
  FP_PACK_S(r, R);
  FP_HANDLE_EXCEPTIONS;

  return r;
}