cx_arith.h File Reference

Complex arithmetic. More...

#include <iostream>
#include <complex>
#include <cmath>
#include <gsl/gsl_math.h>
#include <gsl/gsl_complex.h>
#include <gsl/gsl_complex_math.h>

Go to the source code of this file.


Detailed Description

Note:
One should be careful about including this header file, especially in other header files as it overloads some of the standard mathematical functions, i.e. sqrt(). If you need access to both these functions and the standard functions for double objects, the easiest way is probably to include this file in a source (not header file) and use using namespace std.

This used to be in a separate namespace, called o2scl_arith, but this causes problems with Koenig lookup in template classes for operator*() when defined for vector addition (for example).

Idea for future:
Define operators with assignment for complex + double?

Definition in file cx_arith.h.


Functions

gsl_complex complex_to_gsl (std::complex< double > &d)
 Convert a complex number to GSL form.
std::complex< double > gsl_to_complex (gsl_complex &g)
 Convert a complex number to STL form.
Binary operators for two complex numbers
gsl_complex operator+ (gsl_complex x, gsl_complex y)
 Add two complex numbers.
gsl_complex operator- (gsl_complex x, gsl_complex y)
 Subtract two complex numbers.
gsl_complex operator* (gsl_complex x, gsl_complex y)
 Multiply two complex numbers.
gsl_complex operator/ (gsl_complex x, gsl_complex y)
 Divide two complex numbers.
Binary operators with assignment for two complex numbers
gsl_complex operator+= (gsl_complex &x, gsl_complex y)
 Add a complex number.
gsl_complex operator-= (gsl_complex &x, gsl_complex y)
 Subtract a complex number.
gsl_complex operator*= (gsl_complex &x, gsl_complex y)
 Multiply a complex number.
gsl_complex operator/= (gsl_complex &x, gsl_complex y)
 Divide a complex number.
Binary operators with assignment for a complex and real
gsl_complex operator+ (gsl_complex x, double y)
 Add a complex and real number.
gsl_complex operator+ (double y, gsl_complex x)
 Add a complex and real number.
gsl_complex operator- (gsl_complex x, double y)
 Subtract a complex and real number.
gsl_complex operator- (double y, gsl_complex x)
 Subtract a complex and real number.
gsl_complex operator* (gsl_complex x, double y)
 Multiply a complex and real number.
gsl_complex operator* (double y, gsl_complex x)
 Multiply a complex and real number.
gsl_complex operator/ (gsl_complex x, double y)
 Divide a complex and real number.
Miscellaneous functions
double arg (gsl_complex x)
double abs (gsl_complex x)
double abs2 (gsl_complex z)
gsl_complex conjugate (gsl_complex a)
Square root and exponent functions
gsl_complex sqrt (gsl_complex a)
gsl_complex sqrt_real (double x)
gsl_complex pow (gsl_complex a, gsl_complex b)
gsl_complex pow_real (gsl_complex a, double b)
Logarithmic and exponential functions
double logabs (gsl_complex z)
gsl_complex exp (gsl_complex a)
gsl_complex log (gsl_complex a)
gsl_complex log10 (gsl_complex a)
gsl_complex log_b (gsl_complex a, gsl_complex b)
Trigonometric functions
gsl_complex sin (gsl_complex a)
gsl_complex cos (gsl_complex a)
gsl_complex tan (gsl_complex a)
gsl_complex sec (gsl_complex a)
gsl_complex csc (gsl_complex a)
gsl_complex cot (gsl_complex a)
gsl_complex asin (gsl_complex a)
gsl_complex asin_real (double a)
gsl_complex acos (gsl_complex a)
gsl_complex acos_real (double a)
gsl_complex atan (gsl_complex a)
gsl_complex asec (gsl_complex a)
gsl_complex asec_real (double a)
gsl_complex acsc (gsl_complex a)
gsl_complex acsc_real (double a)
gsl_complex acot (gsl_complex a)
Hyperbolic trigonometric functions
gsl_complex sinh (gsl_complex a)
gsl_complex cosh (gsl_complex a)
gsl_complex tanh (gsl_complex a)
gsl_complex sech (gsl_complex a)
gsl_complex csch (gsl_complex a)
gsl_complex coth (gsl_complex a)
gsl_complex asinh (gsl_complex a)
gsl_complex acosh (gsl_complex a)
gsl_complex acosh_real (double a)
gsl_complex atanh (gsl_complex a)
gsl_complex atanh_real (double a)
gsl_complex asech (gsl_complex a)
gsl_complex acsch (gsl_complex a)
gsl_complex acoth (gsl_complex a)

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page