*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> standard/exp (3)              
Title
Content
Arch
Section
 

Contents


EXP(3M)								       EXP(3M)


NAME    [Toc]    [Back]

     exp, expm1, log, log10, log1p, pow, fexp, expf, fexpm1, expm1f, flog,
     logf, flog10, log10f, flog1p, log1pf, fpow, powf, expl, expm1l, logl,
     log10l, log1pl, powl - exponential, logarithm, power

SYNOPSIS    [Toc]    [Back]

     #include <math.h>

     double exp(double x);
     float fexp(float x);
     float expf(float x);
     long double expl(long double x);
     long double expm1l(long double x);

     double expm1(double x);
     float fexpm1(float	x);
     float expm1f(float	x);

     double log(double x);
     float flog(float x);
     float logf(float x);
     long double logl(long double x);

     double log10(double x);
     float flog10(float	x);
     float log10f(float	x);
     long double log10l(long double x);

     double log1p(double x);
     float flog1p(float	x);
     float log1pf(float	x);
     long double log1pl(long double x);

     double pow(double x, double y);
     float powf(float x, float y);
     long double powl(long double x, \
	   long	double y);

DESCRIPTION    [Toc]    [Back]

     The long double and single-precision routines listed above	are only
     available in the standard math library, -lm, and in -lmx.

     The exp family return the exponential function of x, e**x.

     The expm1 family return exp(x)-1 accurately even for tiny x.

     The log functions return the natural logarithm of x.

     The log10 functions return	the base 10 logarithm of x.






									Page 1






EXP(3M)								       EXP(3M)



     The log1p family return log(1+x) accurately even for tiny x.

     pow(x,y), its single-precision counterpart	powf(x,y), and its long	double
     counterpart powl(x,y), return x**y.

ERROR (due to Roundoff etc.)    [Toc]    [Back]

     exp(x), log(x), expm1(x) and log1p(x) are accurate	to within an ulp, and
     log10(x) and pow(x,y) to within about 2 ulps; an ulp is one Unit in the
     Last Place.  Moderate values of pow are accurate enough that
     pow(integer,integer) is exact until it is bigger than 2**53 for double.

DIAGNOSTICS    [Toc]    [Back]

     In	the diagnostics	below, functions in the	standard math library libm.a,
     are referred to as	-lm versions, those in math library libmx.a are
     referred to as -lmx versions, and those in	the the	BSD math library
     libm43.a are referred to as -lm43 versions.
     When NaN is used as an argument, a	NaN is returned.  The -lm and -lmx
     versions always return the	default	Quiet NaN and set errno	to EDOM.  The
     -lm43 versions never set errno.
     The value of HUGE_VAL is IEEE Infinity.

     The exp functions return HUGE_VAL when the	correct	value would overflow,
     and return	zero if	the correct value would	underflow. The -lm and -lmx
     versions set the value of errno to	ERANGE for both	underflow and
     overflow.

     The log functions return NaN when x is less than zero, indicating an
     invalid operation.	The -lm	and -lmx versions also set errno to EDOM.
     When x is zero, the log functions return -HUGE_VAL.  The -lm and -lmx
     versions set errno	to ERANGE.

     The pow functions return NaN indicating an	invalid	operation, if x	is
     negative and y is not an integer. The -lm and -lmx	versions also set
     errno to EDOM.
     When x is zero and	y is negative, the -lm and -lmx	versions return
     HUGE_VAL and set errno to EDOM.  The -lm43	versions return	HUGE_VAL.
     When both arguments are zero, the pow functions return one.
     When the correct value for	pow would overflow or underflow	the pow
     functions return +/-HUGE_VAL or zero, respectively.  The -lm and -lmx
     versions set errno	to ERANGE.

     See matherr(3M) for a description of error	handling for -lmx functions.

NOTES    [Toc]    [Back]

     Long double operations on this system are only supported in round to
     nearest rounding mode (the	default).  The system must be in round to
     nearest rounding mode when	calling	any of the long	double functions, or
     incorrect answers will result.

     Users concerned with portability to other computer	systems	should note
     that the long double and float versions of	these functions	are optional
     according to the ANSI C Programming Language Specification	ISO/IEC	9899 :



									Page 2






EXP(3M)								       EXP(3M)



     1990 (E).

     Long double functions have	been renamed to	be compliant with the ANSI-C
     standard, however to be backward compatible, they may still be called
     with the double precision function	name prefixed with a q.

     Pow(x,0) returns x**0 = 1 for all x including x = 0 and Infinity.
     Previous implementations of pow defined NaN**0 to be 1 as well, but this
     behavior has been changed to conform to the IEEE standard.	 Here are
     reasons for returning x**0	= 1 in all other cases:

     (1) Any program that already tests	whether	x is zero (or infinite)	before
	 computing x**0	cannot care whether 0**0 = 1 or	not. Any program that
	 depends upon 0**0 to be invalid is dubious anyway since that
	 expression's meaning and, if invalid, its consequences	vary from one
	 computer system to another.

     (2) Some Algebra texts (e.g. Sigler's) define x**0	= 1 for	all x,
	 including x = 0.  This	is compatible with the convention that accepts
	 a[0] as the value of polynomial
	       p(x) = a[0]*x**0	+ a[1]*x**1 + a[2]*x**2	+...+ a[n]*x**n

	 at x =	0 rather than reject a[0]*0**0 as invalid.

     (3) Analysts will accept 0**0 = 1 despite that x**y can approach anything
	 or nothing as x and y approach	0 independently.  The reason for
	 setting 0**0 =	1 anyway is this:

	 If x(z) and y(z) are any functions analytic (expandable in power
	 series) in z around z = 0, and	if there x(0) =	y(0) = 0, then
	 x(z)**y(z) -> 1 as z -> 0.

     (4) If 0**0 = 1, then infinity**0 = 1/0**0	= 1 too; and because x**0 = 1
	 for all finite	and infinite non-NaN x.

SEE ALSO    [Toc]    [Back]

      
      
     math(3M), matherr(3M)


















									Page 3






CPLXEXP(3C++)							 CPLXEXP(3C++)


NAME    [Toc]    [Back]

     exp, log, pow, sqrt - exponential,	logarithm, power, square root
     functions for the C++ complex library

SYNOPSIS    [Toc]    [Back]

     #include <complex.h>

     class complex {

     public:
	       friend complex exp(complex);
	       friend complex log(complex);
	       friend complex pow(double, complex);
	       friend complex pow(complex, int);
	       friend complex pow(complex, double);
	       friend complex pow(complex, complex);
	       friend complex sqrt(complex);
     };

DESCRIPTION    [Toc]    [Back]

     The following math	functions are overloaded by the	complex	library,
     where:
      -	x, y, and z are	of type	complex.

     z <b>= exp(x<b>)	    Returns ex.

     z <b>= log(x<b>)	    Returns the	natural	logarithm of x.

     z <b>= pow(x<b>,	y<b>)  Returns xy.

     z <b>= sqrt(x<b>)    Returns the	square root of x, contained in the first or
		    fourth quadrants of	the complex plane.

SEE ALSO    [Toc]    [Back]

      
      
     complex(3C++), cartpol(3C++), cplxerr(3C++), cplxops(3C++), and
     cplxtrig(3C++).

DIAGNOSTICS    [Toc]    [Back]

     exp returns (0, 0)	when the real part of x	is so small, or	the imaginary
     part is so	large, as to cause overflow.  When the real part is large
     enough to cause overflow, exp returns (HUGE, HUGE)	if the cosine and sine
     of	the imaginary part of x	are positive, (HUGE, -HUGE) if the cosine is
     positive and the sine is not, (-HUGE, HUGE) if the	sine is	positive and
     the cosine	is not,	and (-HUGE, -HUGE) if neither sine nor cosine is
     positive.	In all these cases, errno is set to ERANGE.

     log returns (-HUGE, 0) and	sets errno to EDOM when	x is (0, 0).  A
     message indicating	SING error is printed on the standard error output.

     These error-handling procedures may be changed with the function
     complex_error (cplxerr(3C++)).




									Page 1






EXP(3F)								       EXP(3F)


NAME    [Toc]    [Back]

     exp, dexp,	qexp, cexp, zexp - FORTRAN exponential intrinsic function

SYNOPSIS    [Toc]    [Back]

     real r1, r2
     double precision dp1, dp2
     real*16 qp1, qp2
     complex cx1, cx2
     complex*16	cd1, cd2

     r2	= exp(r1)

     dp2 = dexp(dp1)
     dp2 = exp(dp1)

     qp2 = qexp(qp1)
     qp2 = exp(qp1)

     cx2 = cexp(cx1)
     cx2 = exp(cx1)

     cd2 = zexp(cd1)
     cd2 = exp(cd1)

DESCRIPTION    [Toc]    [Back]

     exp returns the real exponential function ex of its real argument.	 dexp
     returns the double-precision exponential function of its double-precision
     argument.	qexp returns the real*16 exponential function of its real*16
     argument.	cexp returns the complex exponential function of its complex
     argument.	zexp returns the complex*16 exponential	function of its
     complex*16	argument.  The generic function	exp becomes a call to dexp,
     qexp, cexp, or zexp as required, depending	on the type of its argument.

SEE ALSO    [Toc]    [Back]

      
      
     exp(3M).




















									Page 1



EXP(3M)						       Last changed: 1-6-98

NAME    [Toc]    [Back]

     EXP, DEXP,	CEXP, CDEXP - Computes exponential function

SYNOPSIS    [Toc]    [Back]

     UNICOS and	UNICOS/mk systems:

     EXP ([X=]x)
     DEXP ([X=]x)
     CEXP ([X=]x)

     UNICOS and	IRIX systems:
     CDEXP ([X=]x)

IMPLEMENTATION    [Toc]    [Back]

     UNICOS, UNICOS/mk,	and IRIX systems

STANDARDS    [Toc]    [Back]

     Fortran 90
     CDEXP is a	compiler extension to Fortran 90.

DESCRIPTION    [Toc]    [Back]

     EXP is the	generic	function name.	EXP, DEXP, and CEXP are	elemental
     functions for the CF90 compiler.

     The entry point CDEXP is provided for support in other languages.	It
     is	not recognized as an intrinsic function; therefore, you	must use
     the CDIR$ VFUNCTION directive to allow vectorization.

     A vector version of this intrinsic	exists on UNICOS and UNICOS/mk
     systems.  On UNICOS/mk systems, the vector	version	of this	intrinsic
     is	used when -h vector3 (C) or -O vector3 (Fortran) has been specified
     on	the compiler command line.
				   x
     These functions evaluate y	= e .

   CF90    [Toc]    [Back]
     CDEXP is called implicitly	by the Fortran 90 compiler as a	result of a
     generic EXP call with a complex double-precision argument.

   CAL Register	Usage (Cray Research Systems Only)
     Scalar EXP:  EXP% (call-by-register)
	  on entry   (S1) = argument
	  on exit    (S1) = result

     Vector EXP:  %EXP%	(call-by-register)
	  on entry   (V1) = argument vector
	  on exit    (V1) = result vector

     Scalar DEXP:  DEXP% (call-by-register)
	  on entry   (S1) and (S2) = argument
	  on exit    (S1) and (S2) = result

     Vector DEXP:  %DEXP% (call-by-register)
	  on entry   (V1) and (V2) = argument vector
	  on exit    (V1) and (V2) = result vector

     Scalar CEXP:  CEXP% (call-by-register)
	  on entry   (S1) and (S2) = argument
	  on exit    (S1) and (S2) = result
     Vector CEXP:  %CEXP% (call-by-register)
	  on entry   (V1) and (V2) = argument vector
	  on exit    (V1) and (V2) = result vector

     Scalar CDEXP:  %CEDXP% (call-by-register)
	  on entry   (S1), (S2), (S3), and (V4)	= argument
	  on exit    (S1), (S2), (S3), and (S4)	= result

     Vector CDEXP:  %CEDXP% (call-by-register)
	  on entry   (V1), (V2), (V3), and (V4)	= argument vector
	  on exit    (V1), (V2), (V3), and (V4)	= result vector

   Argument Range    [Toc]    [Back]
     EXP, DEXP:
		 13
	  |x| <	2   * ln 2

	  On UNICOS/mk systems and on CRAY T90 systems that support IEEE
	  arithmetic:

	       x > -708.3964 and x < 709.7827

     CEXP:
		 13		       13
	  |x| <	2   * ln 2 and |x | < 2	  * ln 2
				 r
     On	UNICOS/mk systems and on CRAY T90 systems that support IEEE
     arithmetic:

	  -708.3964 < x	 < 709.7827
		       r
		  25
	  |x | < 2
	    i
     CDEXP:
		  13		     45
	  |x | < 2   * ln 2, |x	| < 2
	    r		       i

NOTES    [Toc]    [Back]

     CDEXP is an outmoded routine for the CF90 compiler.  Refer	to the
     Fortran Language Reference	Manual,	Volume 3, publication SR-3905, for
     information about outmoded	features and their preferred standard
     alternatives.

     The name of the EXP, DEXP,	and CEXP intrinsic can be passed as an
     argument.	The name of the	CDEXP intrinsic	cannot be passed as an
     argument.

RETURN VALUES					x
     EXP returns the real exponential function e  of its real argument.
							     x
     DEXP returns the double-precision exponential function e  of its
     double-precision argument.
						    x
     CEXP returns the complex exponential function e  of its complex
     argument.
							    x
     CDEXP returns the complex double exponential function e  of its
     complex double-precision argument.

     On	CRAY T90 systems that support IEEE arithmetic, the following return
     values occur:

	  EXP(x) = 0 if	x < -708.4

	  EXP(x) = infinity if x > 709.78

	  EXP(NaN) = NaN

SEE ALSO    [Toc]    [Back]

      
      
     Intrinsic Procedures Reference Manual, publication	SR-2138, for the
     printed version of	this man page.

EXP(3M)						       Last changed: 1-6-98

NAME    [Toc]    [Back]

     EXP, DEXP,	CEXP, CDEXP - Computes exponential function

SYNOPSIS    [Toc]    [Back]

     UNICOS and	UNICOS/mk systems:

     EXP ([X=]x)
     DEXP ([X=]x)
     CEXP ([X=]x)

     UNICOS and	IRIX systems:
     CDEXP ([X=]x)

IMPLEMENTATION    [Toc]    [Back]

     UNICOS, UNICOS/mk,	and IRIX systems

STANDARDS    [Toc]    [Back]

     Fortran 90
     CDEXP is a	compiler extension to Fortran 90.

DESCRIPTION    [Toc]    [Back]

     EXP is the	generic	function name.	EXP, DEXP, and CEXP are	elemental
     functions for the CF90 compiler.

     The entry point CDEXP is provided for support in other languages.	It
     is	not recognized as an intrinsic function; therefore, you	must use
     the CDIR$ VFUNCTION directive to allow vectorization.

     A vector version of this intrinsic	exists on UNICOS and UNICOS/mk
     systems.  On UNICOS/mk systems, the vector	version	of this	intrinsic
     is	used when -h vector3 (C) or -O vector3 (Fortran) has been specified
     on	the compiler command line.
				   x
     These functions evaluate y	= e .

   CF90    [Toc]    [Back]
     CDEXP is called implicitly	by the Fortran 90 compiler as a	result of a
     generic EXP call with a complex double-precision argument.

   CAL Register	Usage (Cray Research Systems Only)
     Scalar EXP:  EXP% (call-by-register)
	  on entry   (S1) = argument
	  on exit    (S1) = result

     Vector EXP:  %EXP%	(call-by-register)
	  on entry   (V1) = argument vector
	  on exit    (V1) = result vector

     Scalar DEXP:  DEXP% (call-by-register)
	  on entry   (S1) and (S2) = argument
	  on exit    (S1) and (S2) = result

     Vector DEXP:  %DEXP% (call-by-register)
	  on entry   (V1) and (V2) = argument vector
	  on exit    (V1) and (V2) = result vector

     Scalar CEXP:  CEXP% (call-by-register)
	  on entry   (S1) and (S2) = argument
	  on exit    (S1) and (S2) = result
     Vector CEXP:  %CEXP% (call-by-register)
	  on entry   (V1) and (V2) = argument vector
	  on exit    (V1) and (V2) = result vector

     Scalar CDEXP:  %CEDXP% (call-by-register)
	  on entry   (S1), (S2), (S3), and (V4)	= argument
	  on exit    (S1), (S2), (S3), and (S4)	= result

     Vector CDEXP:  %CEDXP% (call-by-register)
	  on entry   (V1), (V2), (V3), and (V4)	= argument vector
	  on exit    (V1), (V2), (V3), and (V4)	= result vector

   Argument Range    [Toc]    [Back]
     EXP, DEXP:
		 13
	  |x| <	2   * ln 2

	  On UNICOS/mk systems and on CRAY T90 systems that support IEEE
	  arithmetic:

	       x > -708.3964 and x < 709.7827

     CEXP:
		 13		       13
	  |x| <	2   * ln 2 and |x | < 2	  * ln 2
				 r
     On	UNICOS/mk systems and on CRAY T90 systems that support IEEE
     arithmetic:

	  -708.3964 < x	 < 709.7827
		       r
		  25
	  |x | < 2
	    i
     CDEXP:
		  13		     45
	  |x | < 2   * ln 2, |x	| < 2
	    r		       i

NOTES    [Toc]    [Back]

     CDEXP is an outmoded routine for the CF90 compiler.  Refer	to the
     Fortran Language Reference	Manual,	Volume 3, publication SR-3905, for
     information about outmoded	features and their preferred standard
     alternatives.

     The name of the EXP, DEXP,	and CEXP intrinsic can be passed as an
     argument.	The name of the	CDEXP intrinsic	cannot be passed as an
     argument.

RETURN VALUES					x
     EXP returns the real exponential function e  of its real argument.
							     x
     DEXP returns the double-precision exponential function e  of its
     double-precision argument.
						    x
     CEXP returns the complex exponential function e  of its complex
     argument.
							    x
     CDEXP returns the complex double exponential function e  of its
     complex double-precision argument.

     On	CRAY T90 systems that support IEEE arithmetic, the following return
     values occur:

	  EXP(x) = 0 if	x < -708.4

	  EXP(x) = infinity if x > 709.78

	  EXP(NaN) = NaN

SEE ALSO    [Toc]    [Back]

      
      
     Intrinsic Procedures Reference Manual, publication	SR-2138, for the
     printed version of	this man page.

[ Back ]
 Similar pages
Name OS Title
pow NetBSD exponential, logarithm, power functions
log1pf NetBSD exponential, logarithm, power functions
exp OpenBSD exponential, logarithm, power functions
log1p NetBSD exponential, logarithm, power functions
log10f NetBSD exponential, logarithm, power functions
log10 NetBSD exponential, logarithm, power functions
logf NetBSD exponential, logarithm, power functions
log NetBSD exponential, logarithm, power functions
powf NetBSD exponential, logarithm, power functions
log1p OpenBSD exponential, logarithm, power functions
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service