(root)/
glibc-2.38/
math/
s_ldexp_template.c
       1  /* @(#)s_ldexp.c 5.1 93/09/24 */
       2  /*
       3   * ====================================================
       4   * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
       5   *
       6   * Developed at SunPro, a Sun Microsystems, Inc. business.
       7   * Permission to use, copy, modify, and distribute this
       8   * software is freely granted, provided that this notice
       9   * is preserved.
      10   * ====================================================
      11   */
      12  
      13  #if defined(LIBM_SCCS) && !defined(lint)
      14  static char rcsid[] = "$NetBSD: s_ldexp.c,v 1.6 1995/05/10 20:47:40 jtc Exp $";
      15  #endif
      16  
      17  #include <math.h>
      18  #include <errno.h>
      19  
      20  FLOAT
      21  M_SUF (__ldexp) (FLOAT value, int exp)
      22  {
      23  	if(!isfinite(value)||value==0) return value + value;
      24  	value = M_SCALBN(value,exp);
      25  	if(!isfinite(value)||value==0) __set_errno (ERANGE);
      26  	return value;
      27  }
      28  
      29  declare_mgen_alias (__ldexp, ldexp)
      30  strong_alias (M_SUF (__ldexp), M_SUF (__wrap_scalbn))
      31  declare_mgen_alias (__wrap_scalbn, scalbn)
      32  
      33  /* Note, versioning issues are punted to ldbl-opt in this case.  */