/*
 * wrapper log2(X)
 */

#include <math.h>
#include "math_private.h"

float
__log2f (float x)	/* wrapper log2f */
{
#ifdef _IEEE_LIBM
  return __ieee754_log2f (x);
#else
  float z;
  z = __ieee754_log2f (x);
  if (_LIB_VERSION == _IEEE_ || __isnanf (x)) return z;
  if (x <= 0.0f)
    {
      if (x == 0.0f)
	/* log2f (0) */
	return __kernel_standard ((double) x, (double) x, 148);
      else
	/* log2f (x < 0) */
	return __kernel_standard ((double) x, (double) x, 149);
    }
  else
    return z;
#endif
}
weak_alias (__log2f, log2f)
