📄 blitz_3.html
字号:
<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD></TR></TABLE><H2> 3.8 Single-argument math functions </H2><!--docid::SEC86::--><P>All of the functions described in this section are <EM>element-wise</EM>. Forexample, this code--</P><P><TABLE><tr><td> </td><td class=example><pre>Array<float,2> A, B; //A = sin(B);</pre></td></tr></table></P><P>results in <CODE>A(i,j) = sin(B(i,j))</CODE> for all (i,j).</P><P><HR SIZE="6"><A NAME="SEC87"></A><TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0><TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_3.html#SEC86"> < </A>]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_3.html#SEC88"> > </A>]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[ << ]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top"> Up </A>]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD></TR></TABLE><H3> ANSI C++ math functions </H3><!--docid::SEC87::--><P>These math functions are available on all platforms:</P><P><A NAME="IDX191"></A><A NAME="IDX192"></A></P><P><DL COMPACT><DT><CODE>abs()</CODE><DD><A NAME="IDX193"></A>Absolute value <P><DT><CODE>acos()</CODE><DD><A NAME="IDX194"></A>Inverse cosine. For real arguments, the return value is in the range <EM>[0, \pi]</EM>. <P><DT><CODE>arg()</CODE><DD><A NAME="IDX195"></A>Argument of a complex number (<CODE>atan2(Im,Re)</CODE>). <P><DT><CODE>asin()</CODE><DD><A NAME="IDX196"></A>Inverse sine. For real arguments, the return value is in the range <EM>[-\pi/2, \pi/2]</EM>. <P><DT><CODE>atan()</CODE><DD><A NAME="IDX197"></A>Inverse tangent. For real arguments, the return value is in the range<EM>[-\pi/2, \pi/2]</EM>. See also <CODE>atan2()</CODE> in section<A HREF="blitz_3.html#SEC89">3.9 Two-argument math functions</A>. <P><DT><CODE>ceil()</CODE><DD><A NAME="IDX198"></A>Ceiling function: smallest floating-point integer value not less than theargument. <P><DT><CODE>cexp()</CODE><DD><A NAME="IDX199"></A>Complex exponential; same as <CODE>exp()</CODE>. <P><DT><CODE>conj()</CODE><DD><A NAME="IDX200"></A>Conjugate of a complex number. <P><DT><CODE>cos()</CODE><DD><A NAME="IDX201"></A>Cosine. Works for <CODE>complex<T></CODE>. <P><DT><CODE>cosh()</CODE><DD><A NAME="IDX202"></A>Hyperbolic cosine. Works for <CODE>complex<T></CODE>. <P><DT><CODE>csqrt()</CODE><DD><A NAME="IDX203"></A>Complex square root; same as <CODE>sqrt()</CODE>. <P><DT><CODE>exp()</CODE><DD><A NAME="IDX204"></A>Exponential. Works for <CODE>complex<T></CODE>. <P><DT><CODE>fabs()</CODE><DD><A NAME="IDX205"></A>Same as <CODE>abs()</CODE>. <P><DT><CODE>floor()</CODE><DD><A NAME="IDX206"></A>Floor function: largest floating-point integer value not greater than theargument. <P><DT><CODE>log()</CODE><DD><A NAME="IDX207"></A>Natural logarithm. Works for <CODE>complex<T></CODE>. <P><DT><CODE>log10()</CODE><DD><A NAME="IDX208"></A>Base 10 logarithm. Works for <CODE>complex<T></CODE>. <P><DT><CODE>pow2(), pow3(), pow4(), pow5(), pow6(), pow7(), pow8()</CODE><DD><A NAME="IDX209"></A><A NAME="IDX210"></A><A NAME="IDX211"></A>These functions compute an integer power. They expand to a series ofmultiplications, so they can be used on any type for which multiplication iswell-defined.<P><DT><CODE>sin()</CODE><DD><A NAME="IDX212"></A>Sine. Works for <CODE>complex<T></CODE>. <P><DT><CODE>sinh()</CODE><DD><A NAME="IDX213"></A>Hyperbolic sine. Works for <CODE>complex<T></CODE>. <P><DT><CODE>sqr()</CODE><DD><A NAME="IDX214"></A>Same as <CODE>pow2()</CODE>. Computes <CODE>x*x</CODE>. Works for <CODE>complex<T></CODE>. <P><DT><CODE>sqrt()</CODE><DD><A NAME="IDX215"></A>Square root. Works for <CODE>complex<T></CODE>. <P><DT><CODE>tan()</CODE><DD><A NAME="IDX216"></A>Tangent. Works for <CODE>complex<T></CODE>. <P><DT><CODE>tanh()</CODE><DD><A NAME="IDX217"></A>Hyperbolic tangent. Works for <CODE>complex<T></CODE>. </DL><P><HR SIZE="6"><A NAME="SEC88"></A><TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0><TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_3.html#SEC87"> < </A>]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_3.html#SEC89"> > </A>]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[ << ]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top"> Up </A>]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz.html#SEC_Top">Top</A>]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_toc.html#SEC_Contents">Contents</A>]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="blitz_abt.html#SEC_About"> ? </A>]</TD></TR></TABLE><H3> IEEE/System V math functions </H3><!--docid::SEC88::--><P><A NAME="IDX218"></A><A NAME="IDX219"></A><A NAME="IDX220"></A><A NAME="IDX221"></A></P><P>These functions are only available on platforms which provide the IEEE Mathlibrary (libm.a) and/or System V Math Library (libmsaa.a). Apparently notall platforms provide all of these functions, so what you can use on yourplatform may be a subset of these. If you choose to use one of thesefunctions, be aware that you may be limiting the portability of your code.</P><P><A NAME="IDX222"></A><A NAME="IDX223"></A></P><P>On some platforms, the preprocessor symbols <CODE>_XOPEN_SOURCE</CODE> and/or<CODE>_XOPEN_SOURCE_EXTENDED</CODE> need to be defined to use these functions.These symbols can be enabled by compiling with<CODE>-DBZ_ENABLE_XOPEN_SOURCE</CODE>. (In previous version of Blitz++,<CODE>_XOPEN_SOURCE</CODE> and <CODE>_XOPEN_SOURCE_EXTENDED</CODE> were declared bydefault. This was found to cause too many problems, so users must manuallyenable them with <CODE>-DBZ_ENABLE_XOPEN_SOURCE</CODE>.).</P><P>In the current version, Blitz++ divides these functions into two groups:IEEE and System V. This distinction is probably artificial. If one of thefunctions in a group is missing, Blitz++ won't allow you to use any of them.You can see the division of these functions in the files<TT>`Blitz++/compiler/ieeemath.cpp'</TT> and<TT>`Blitz++/compiler/sysvmath.cpp'</TT>. This arrangement is unsatisfactoryand will probably change in a future version.</P><P>You may have to link with <CODE>-lm</CODE> and/or <CODE>-lmsaa</CODE> to use thesefunctions.</P><P>None of these functions are available for <CODE>complex<T></CODE>.</P><P><DL COMPACT><DT><CODE>acosh()</CODE><DD><A NAME="IDX224"></A>Inverse hyperbolic cosine <P><DT><CODE>asinh()</CODE><DD><A NAME="IDX225"></A>Inverse hyperbolic sine <P><DT><CODE>atanh()</CODE><DD><A NAME="IDX226"></A>Inverse hyperbolic tangent <P><DT><CODE>_class()</CODE><DD><A NAME="IDX227"></A>Classification of floating point values. The return type is integer andwill be one of: <P><DL COMPACT><DT><CODE>FP_PLUS_NORM</CODE><DD><A NAME="IDX228"></A> Positive normalized, nonzero <P><DT><CODE>FP_MINUS_NORM</CODE><DD><A NAME="IDX229"></A> Negative normalized, nonzero <P><DT><CODE>FP_PLUS_DENORM</CODE><DD><A NAME="IDX230"></A> Positive denormalized, nonzero <P><DT><CODE>FP_MINUS_DENORM</CODE><DD><A NAME="IDX231"></A> Negative denormalized, nonzero <P><DT><CODE>FP_PLUS_ZERO</CODE><DD><A NAME="IDX232"></A> +0.0 <P><DT><CODE>FP_MINUS_ZERO</CODE><DD><A NAME="IDX233"></A> -0.0 <P><DT><CODE>FP_PLUS_INF</CODE><DD><A NAME="IDX234"></A> Positive infinity <P><DT><CODE>FP_MINUS_INF</CODE><DD><A NAME="IDX235"></A> Negative infinity <P><DT><CODE>FP_NANS</CODE><DD><A NAME="IDX236"></A> Signalling Not a Number (NaNS) <P><DT><CODE>FP_NANQ</CODE><DD><A NAME="IDX237"></A> Quiet Not a Number (NaNQ) </DL><P><DT><CODE>cbrt()</CODE><DD><A NAME="IDX238"></A>Cubic root <P><DT><CODE>expm1()</CODE><DD><A NAME="IDX239"></A>Computes exp(x)-1 <P><DT><CODE>erf()</CODE><DD><A NAME="IDX240"></A>Computes the error function: @erf(x) = 2/sqrt(Pi) * integral(exp(-t^2), t=0..x)<P>Note that for large values of the parameter, calculating can result inextreme loss of accuracy. Instead, use <CODE>erfc()</CODE>.</P><P><DT><CODE>erfc()</CODE><DD><A NAME="IDX241"></A>Computes the complementary error function <EM>erfc(x) = 1 - erf(x)</EM>.<P><DT><CODE>finite()</CODE><DD><A NAME="IDX242"></A>Returns a nonzero integer if the parameter is a finite number (i.e. not+INF, -INF, NaNQ or NaNS).<P><DT><CODE>ilogb()</CODE><DD><A NAME="IDX243"></A>Returns an integer which is equal to the unbiased exponent ofthe parameter. <P><DT><CODE>blitz_isnan()</CODE><DD><A NAME="IDX244"></A><A NAME="IDX245"></A>Returns a nonzero integer if the parameter is NaNQ orNaNS (quiet or signalling Not a Number). <P><DT><CODE>itrunc()</CODE><DD><A NAME="IDX246"></A>Round a floating-point number to a signed integer. Returnsthe nearest signed integer to the parameter in the direction of 0.<P><DT><CODE>j0()</CODE><DD><A NAME="IDX247"></A><A NAME="IDX248"></A>Bessel function of the first kind, order 0. <P><DT><CODE>j1()</CODE><DD><A NAME="IDX249"></A>Bessel function of the first kind, order 1. <P><DT><CODE>lgamma()</CODE><DD><A NAME="IDX250"></A><A NAME="IDX251"></A>Natural logarithm of the gamma function. The gamma functionis defined as:Gamma(x) = integral(e^(-t) * t^(x-1), t=0..infinity)) <DT><CODE>logb()</CODE><DD><A NAME="IDX252"></A>Returns a floating-point double that is equal to the unbiasedexponent of the parameter.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -