Home | Develop | Download | Contact
Complex.hpp
1 /*
2  * Complex.hpp
3  *
4  * Copyright 2018 Fernando Pujaico Rivera <fernando.pujaico.rivera@gmail.com>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19  * MA 02110-1301, USA.
20  *
21  */
22 
32 #ifndef __PDS_COMPLEX_HPP__
33 #define __PDS_COMPLEX_HPP__
34 
35 #include <string>
36 
46 namespace Pds{
47 
48 
58 class Complex
59 {
60 
61 public:
62  // Parte real de un número complejo
63  double Real;
64  // Parte imaginaria de un número complejo
65  double Imag;
66 
67 public:
68 
80  Complex(void);
81 
89  Complex(double real,double imag);
90 
97  Complex(double real);
98 
105  //Complex(const Pds::Complex &B);
106 
107 
109 
114 public:
127  void Rect(double Real,double Imag);
128 
136  void Polar(double Module,double Angle);
137 
142 public:
143 
156 
163  Pds::Complex Plus (void) const;
164 
172 
179  Pds::Complex Minus (void) const;
184 public:
198 
206  Pds::Complex operator + (double b) const;
207 
215  Pds::Complex Add(const Pds::Complex &B) const;
216 
224  Pds::Complex Add(double b) const;
225 
234 
242  Pds::Complex Sub(const Pds::Complex &B) const;
243 
251  Pds::Complex operator - (double b) const;
252 
260  Pds::Complex Sub(double b) const;
261 
270 
278  Pds::Complex Mul(const Pds::Complex &B) const;
279 
287  Pds::Complex operator * (double b) const;
288 
296  Pds::Complex Mul(double b) const;
297 
306 
314  Pds::Complex Div(const Pds::Complex &B) const;
315 
323  Pds::Complex operator / (double b) const;
324 
332  Pds::Complex Div(double b) const;
333 
334 
335 
343  Pds::Complex Pow(const Pds::Complex &B) const;
344 
352  Pds::Complex Pow(double b) const;
358 public:
370  Pds::Complex Conj(void) const;
371 
378  double Module(void) const;
379 
386  double Module2(void) const;
387 
397  double Angle(void) const;
398 
399 
404 public:
405 
418  bool HasNan(void) const;
424 public:
425 
438  static Pds::Complex Nan(void);
439 
446  static Pds::Complex I(void);
447 
452 public:
463  void Print(std::string str="") const;
464 
469  void PrintStylized(std::string str="") const;
473 }; // Class Complex
474 
475 } // namespace Pds
476 
477 
487 
488 
498 
508 
518 
529 std::ostream& operator<<(std::ostream &out,const Pds::Complex &B);
530 
535 #endif
536 
La clase tipo Pds::Complex . Esta clase genera un objeto con dos parametros Nlin y Ncol....
Definition: Complex.hpp:59
double Real
Definition: Complex.hpp:63
double Imag
Definition: Complex.hpp:65
std::ostream & operator<<(std::ostream &out, const Pds::Complex &B)
Retorna el contenido del número complejo B por la salida estándar.
Pds::Complex operator*(const Pds::Complex &B) const
Multiplica con sigo mismo (A) un número complejo B.
void PrintStylized(std::string str="") const
Muestra en pantalla el contenido de Pds::Complex, en el formato (Nli,Ncol).
Pds::Complex Sub(double b) const
Resta con sigo mismo (A) un número real b.
Complex(double real)
Crea un objeto de tipo Pds::Complex.
Pds::Complex operator-(double a, const Pds::Complex &B)
Resta con a un número complejo B.
Pds::Complex Add(const Pds::Complex &B) const
Suma con sigo mismo (A) un número complejo B.
Pds::Complex Sub(const Pds::Complex &B) const
Resta con sigo mismo (A) un número complejo B.
Pds::Complex operator/(double a, const Pds::Complex &B)
Divide con a un número complejo B.
Complex(void)
Crea un objeto de tipo Pds::Complex con parte real e imaginaria iguales a cero.
void Print(std::string str="") const
Muestra en pantalla el contenido de Pds::Complex, elementos separados por tabulador.
Pds::Complex operator-(void) const
Retorna un numero complejo igual al negativo de si mismo (A).
Pds::Complex operator/(const Pds::Complex &B) const
Divide con sigo mismo (A) un número complejo B.
Pds::Complex Mul(double b) const
Multiplica con sigo mismo (A) un número real b.
Pds::Complex Minus(void) const
Retorna un numero complejo igual al negativo de si mismo (A).
static Pds::Complex I(void)
Retorna un número complejo unitario con solo parte imaginaria.
void Polar(double Module, double Angle)
Carga el número complejo indicando el módulo y el ángulo.
bool HasNan(void) const
Verifica si el número complexo tiene algun valor NAN (Not A Number).
Pds::Complex Div(double b) const
Divide con sigo mismo (A) un número real b.
Pds::Complex Add(double b) const
Suma con sigo mismo (A) un número real b.
Pds::Complex operator*(double a, const Pds::Complex &B)
Multiplica con a un número complejo B.
Complex(double real, double imag)
Crea un objeto de tipo Pds::Complex.
void Rect(double Real, double Imag)
Carga el número complejo indicando la parte real e imaginaria.
Pds::Complex Plus(void) const
Retorna un numero complejo igual a si mismo (A).
Pds::Complex Pow(double b) const
Eleva con sigo mismo (A) un exponente real b.
double Module(void) const
Retorna el modulo de si mismo (A).
static Pds::Complex Nan(void)
Retorna un número complejo con valores NAN (Not A Number).
~Complex()
Crea un objeto de tipo Pds::Complex copiando datos desde otra.
Pds::Complex Conj(void) const
Retorna el conjugado de si mismo (A).
Pds::Complex operator+(void) const
Retorna un numero complejo igual a si mismo (A).
Pds::Complex operator+(double a, const Pds::Complex &B)
Suma con a un número complejo B.
double Angle(void) const
Retorna el ángulo (fase o argumento) de si mismo (A).
Pds::Complex Pow(const Pds::Complex &B) const
Eleva con sigo mismo (A) un exponente número complejo B.
Pds::Complex Mul(const Pds::Complex &B) const
Multiplica con sigo mismo (A) un número complejo B.
Pds::Complex Div(const Pds::Complex &B) const
Divide con sigo mismo (A) un número complejo B.
double Module2(void) const
Retorna el modulo ao cuadrado de si mismo (A).
Nombre de espacion para PDS (Procesamiento Digital de Senales)
Definition: Fft.hpp:49

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed