mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-04 05:50:31 -05: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).
							 | 
						||
| 
								 | 
							
								]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 |