File: complex-tr1.qbk

package info (click to toggle)
boost1.74 1.74.0-9
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 464,084 kB
  • sloc: cpp: 3,338,324; xml: 131,293; python: 33,088; ansic: 14,336; asm: 4,034; sh: 3,351; makefile: 1,193; perl: 1,036; yacc: 478; php: 212; ruby: 102; lisp: 24; sql: 13; csh: 6
file content (149 lines) | stat: -rw-r--r-- 3,778 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
[def __effects [*Effects: ]]
[def __formula [*Formula: ]]
[def __exm1 '''<code>e<superscript>x</superscript> - 1</code>''']
[def __ex '''<code>e<superscript>x</superscript></code>''']
[def __te '''2&#x03B5;''']

[mathpart inverse_complex..Complex Number Functions]

The following complex number algorithms are the inverses of trigonometric functions currently
present in the C++ standard.  Equivalents to these functions are part of the C99 standard, and
are part of the [tr1].

[section:complex_implementation Implementation and Accuracy]

Although there are deceptively simple formulae available for all of these functions, a naive
implementation that used these formulae would fail catastrophically for some input
values.  The Boost versions of these functions have been implemented using the methodology
described in "Implementing the Complex Arcsine and Arccosine Functions Using Exception Handling"
by T. E. Hull Thomas F. Fairgrieve and Ping Tak Peter Tang, ACM Transactions on Mathematical Software,
Vol. 23, No. 3, September 1997.  This means that the functions are well defined over the entire
complex number range, and produce accurate values even at the extremes of that range, where as a naive
formula would cause overflow or underflow to occur during the calculation, even though the result is
actually a representable value.  The maximum theoretical relative error for all of these functions
is less than 9.5[epsilon] for every machine-representable point in the complex plane.  Please refer to
comments in the header files themselves and to the above mentioned paper for more information
on the implementation methodology.

[endsect]

[section:asin asin]

[h4 Header:]

   #include <boost/math/complex/asin.hpp>

[h4 Synopsis:]

   template<class T>
   std::complex<T> asin(const std::complex<T>& z);

__effects returns the inverse sine of the complex number z.

__formula [$../images/asin.png]

[endsect]

[section:acos acos]

[h4 Header:]

   #include <boost/math/complex/acos.hpp>

[h4 Synopsis:]

   template<class T>
   std::complex<T> acos(const std::complex<T>& z);

__effects returns the inverse cosine of the complex number z.

__formula [$../images/acos.png]

[endsect]

[section:atan atan]

[h4 Header:]

   #include <boost/math/complex/atan.hpp>

[h4 Synopsis:]

   template<class T>
   std::complex<T> atan(const std::complex<T>& z);

__effects returns the inverse tangent of the complex number z.

__formula [$../images/atan.png]

[endsect]

[section:asinh asinh]

[h4 Header:]

   #include <boost/math/complex/asinh.hpp>

[h4 Synopsis:]

   template<class T>
   std::complex<T> asinh(const std::complex<T>& z);

__effects returns the inverse hyperbolic sine of the complex number z.

__formula [$../images/asinh.png]

[endsect]

[section:acosh acosh]

[h4 Header:]

   #include <boost/math/complex/acosh.hpp>

[h4 Synopsis:]

   template<class T>
   std::complex<T> acosh(const std::complex<T>& z);

__effects returns the inverse hyperbolic cosine of the complex number z.

__formula [$../images/acosh.png]

[endsect]

[section:atanh atanh]

[h4 Header:]

   #include <boost/math/complex/atanh.hpp>

[h4 Synopsis:]

   template<class T>
   std::complex<T> atanh(const std::complex<T>& z);

__effects returns the inverse hyperbolic tangent of the complex number z.

__formula [$../images/atanh.png]

[endsect]

[section:complex_history History]

* 2005/12/17: Added support for platforms with no meaningful numeric_limits<>::infinity().
* 2005/12/01: Initial version, added as part of the TR1 library.


[endsect]

[endmathpart]

[/
  Copyright 2008, 2009 John Maddock and Paul A. Bristow.
  Distributed under the Boost Software License, Version 1.0.
  (See accompanying file LICENSE_1_0.txt or copy at
  http://www.boost.org/LICENSE_1_0.txt).
]