mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-30 12:30:23 -04:00 
			
		
		
		
	
		
			
	
	
		
			150 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			150 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | [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ε'''] | ||
|  | 
 | ||
|  | [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). | ||
|  | ] | ||
|  | 
 | ||
|  | 
 |