ndigit -= (int) FLOOR (LOG10 (FABS (value))); if (ndigit < 0) ndigit = 0; } else {  FLOAT_TYPE d; for (d = value < 0.0 ? - value : value; ndigit > 0 && d >= 10.0; d *= 0.1) --ndigit;
FLOAT_TYPE (*log10_function) (FLOAT_TYPE) = &LOG10;  if (log10_function) {  FLOAT_TYPE dexponent; dexponent = FLOOR (LOG10 (FABS (value))); value *= EXP (dexponent * -M_LN10); exponent = (int) dexponent; } else {  FLOAT_TYPE d; if (value < 0.0) d = -value; else d = value; if (d < 1.0) { do { d *= 10.0; exponent--; } while (d < 1.0); } else if (d >= 10.0) { do { d *= 0.1; exponent++; } while (d >= 10.0); } if (value < 0.0) value = -d; else value = d; }
weak_extern2 (FLOOR) weak_extern2 (LOG10) weak_extern2 (FABS)intAPPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign, buf, len)     FLOAT_TYPE value;     int ndigit, *decpt, *sign;     char *buf;     size_t len;{  FLOAT_TYPE (*log10_function) (FLOAT_TYPE) = &LOG10;  if (log10_function)    {      /* Use the reasonable code if -lm is included.  */      ndigit -= (int) FLOOR (LOG10 (FABS (value)));      if (ndigit < 0)	ndigit = 0;    }  else    {      /* Slow code that doesn't require -lm functions.  */      FLOAT_TYPE d;      for (d = value < 0.0 ? - value : value;	   ndigit > 0 && d >= 10.0;	   d *= 0.1)	--ndigit;    }  return APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, buf, len);}