Ejemplo n.º 1
0
long double _Q_ulltoq(const unsigned long long a)
{
  FP_DECL_Q(C);
  long double c;
  unsigned long long b = a;

  FP_FROM_INT_Q(C, b, 64, unsigned long long);
  FP_PACK_RAW_Q(c, C);
  return c;
}
Ejemplo n.º 2
0
TFtype
__floatunditf (UDItype i)
{
  FP_DECL_Q (A);
  TFtype a;

  FP_FROM_INT_Q (A, i, DI_BITS, UDItype);
  FP_PACK_RAW_Q (a, A);

  return a;
}
Ejemplo n.º 3
0
TFtype
__floatsitf (SItype i)
{
  FP_DECL_Q (A);
  TFtype a;

  FP_FROM_INT_Q (A, i, SI_BITS, USItype);
  FP_PACK_RAW_Q (a, A);

  return a;
}
Ejemplo n.º 4
0
TFtype __floatditf(DItype i)
{
  FP_DECL_EX;
  FP_DECL_Q(A);
  TFtype a;

  FP_FROM_INT_Q(A, i, DI_BITS, UDItype);
  FP_PACK_RAW_Q(a, A);
  FP_HANDLE_EXCEPTIONS;

  return a;
}
Ejemplo n.º 5
0
void
_OtsCvtQUX (unsigned long a)
{
  FP_DECL_EX;
  FP_DECL_Q(C);
  FP_DECL_RETURN(c);

  FP_FROM_INT_Q(C, a, 64, unsigned long);
  FP_PACK_RAW_Q(c, C);

  FP_RETURN(c);
}
long double _q_itoq(const int a)
{
  FP_DECL_EX;
  FP_DECL_Q(C);
  int b = a;
  long double c;

  FP_FROM_INT_Q(C, b, 32, unsigned int);
  FP_PACK_RAW_Q(c, C);
  FP_CLEAR_EXCEPTIONS;
  FP_HANDLE_EXCEPTIONS;
  return c;
}
Ejemplo n.º 7
0
TFtype
__negtf2 (TFtype a)
{
  FP_DECL_Q (A);
  FP_DECL_Q (R);
  TFtype r;

  FP_UNPACK_RAW_Q (A, a);
  FP_NEG_Q (R, A);
  FP_PACK_RAW_Q (r, R);

  return r;
}
Ejemplo n.º 8
0
long double _Q_lltoq(const long long a)
{
  FP_DECL_EX;
  FP_DECL_Q(C);
  long double c;
  long long b = a;

  FP_FROM_INT_Q(C, b, 64, unsigned long long);
  FP_PACK_RAW_Q(c, C);
  FP_CLEAR_EXCEPTIONS;
  FP_HANDLE_EXCEPTIONS;
  return c;
}
Ejemplo n.º 9
0
TFtype
__floatuntikf (UTItype i)
{
  FP_DECL_EX;
  FP_DECL_Q (A);
  TFtype a;

  FP_INIT_ROUNDMODE;
  FP_FROM_INT_Q (A, i, TI_BITS, UTItype);
  FP_PACK_RAW_Q (a, A);
  FP_HANDLE_EXCEPTIONS;

  return a;
}
Ejemplo n.º 10
0
long double _Q_stoq(const float a)
{
  FP_DECL_EX;
  FP_DECL_S(A);
  FP_DECL_Q(C);
  long double c;

  FP_UNPACK_RAW_S(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
  FP_EXTEND(Q,S,4,1,C,A);
#else
  FP_EXTEND(Q,S,2,1,C,A);
#endif
  FP_PACK_RAW_Q(c, C);
  FP_HANDLE_EXCEPTIONS;
  return c;
}
long double _q_dtoq(const double a)
{
  FP_DECL_EX;
  FP_DECL_D(A);
  FP_DECL_Q(C);
  long double c;

  FP_INIT_ROUNDMODE;
  FP_UNPACK_RAW_D(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
  FP_EXTEND(Q,D,4,2,C,A);
#else
  FP_EXTEND(Q,D,2,1,C,A);
#endif
  FP_PACK_RAW_Q(c, C);
  FP_HANDLE_EXCEPTIONS;
  return c;
}
Ejemplo n.º 12
0
TFtype __extenddftf2(DFtype a)
{
FP_DECL_EX;
FP_DECL_D(A);
FP_DECL_Q(R);
TFtype r;

FP_INIT_ROUNDMODE;
FP_UNPACK_RAW_D(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
FP_EXTEND(Q,D,4,2,R,A);
#else
FP_EXTEND(Q,D,2,1,R,A);
#endif
FP_PACK_RAW_Q(r, R);
FP_HANDLE_EXCEPTIONS;

return r;
}
Ejemplo n.º 13
0
long double _Q_neg(const long double a)
{
  long double c = a;

#if (__BYTE_ORDER == __BIG_ENDIAN)
  ((UWtype *)&c)[0] ^= (((UWtype)1) << (W_TYPE_SIZE - 1));
#elif (__BYTE_ORDER == __LITTLE_ENDIAN) && (W_TYPE_SIZE == 64)
  ((UWtype *)&c)[1] ^= (((UWtype)1) << (W_TYPE_SIZE - 1));
#elif (__BYTE_ORDER == __LITTLE_ENDIAN) && (W_TYPE_SIZE == 32)
  ((UWtype *)&c)[3] ^= (((UWtype)1) << (W_TYPE_SIZE - 1));
#else
  FP_DECL_Q(A); FP_DECL_Q(C);

  FP_UNPACK_RAW_Q(A, a);
  FP_NEG_Q(C, A);
  FP_PACK_RAW_Q(c, C);
#endif
  return c;
}
Ejemplo n.º 14
0
TFtype
__extendhftf2 (HFtype a)
{
  FP_DECL_EX;
  FP_DECL_H (A);
  FP_DECL_Q (R);
  TFtype r;

  FP_INIT_EXCEPTIONS;
  FP_UNPACK_RAW_H (A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
  FP_EXTEND (Q, H, 4, 1, R, A);
#else
  FP_EXTEND (Q, H, 2, 1, R, A);
#endif
  FP_PACK_RAW_Q (r, R);
  FP_HANDLE_EXCEPTIONS;

  return r;
}
Ejemplo n.º 15
0
TFtype
__extenddftf2 (DFtype a)
{
  FP_DECL_EX;
  FP_DECL_D (A);
  FP_DECL_Q (R);
  TFtype r;

  FP_INIT_EXCEPTIONS;
  FP_UNPACK_RAW_D (A, a);
#if _FP_W_TYPE_SIZE < 64
  FP_EXTEND (Q, D, 4, 2, R, A);
#else
  FP_EXTEND (Q, D, 2, 1, R, A);
#endif
  FP_PACK_RAW_Q (r, R);
  FP_HANDLE_EXCEPTIONS;

  return r;
}
Ejemplo n.º 16
0
TFtype
__extendxftf2 (XFtype a)
{
  FP_DECL_EX;
  FP_DECL_E (A);
  FP_DECL_Q (R);
  TFtype r;

  FP_INIT_TRAPPING_EXCEPTIONS;
  FP_UNPACK_RAW_E (A, a);
#if _FP_W_TYPE_SIZE < 64
  FP_EXTEND (Q, E, 4, 4, R, A);
#else
  FP_EXTEND (Q, E, 2, 2, R, A);
#endif
  FP_PACK_RAW_Q (r, R);
  FP_HANDLE_EXCEPTIONS;

  return r;
}