Home | Develop | Download | Contact
Quaternion.hpp
1 /*
2  * Quaternion.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_QUATERNION_HPP__
33 #define __PDS_QUATERNION_HPP__
34 
35 #include <string>
36 
46 namespace Pds{
47 
48 
59 {
60 
61 public:
62  // Parte real de un quaternio
63  double W;
64  // Parte imaginaria i de un quaternio
65  double X;
66  // Parte imaginaria j de un quaternio
67  double Y;
68  // Parte imaginaria k de un quaternio
69  double Z;
70 
71 public:
72 
85  Quaternion(void);
86 
97  Quaternion(double w,double x,double y,double z);
98 
106  Quaternion(double w);
107 
116 
117 
119 
124 public:
140  void Rect(double w,double x,double y,double z);
141 
156  void Polar(double A,double Alpha,double Beta,double Theta);
157 
162 public:
163 
177 
185  Pds::Quaternion Plus (void) const;
186 
195 
203  Pds::Quaternion Minus (void) const;
208 public:
223 
232  Pds::Quaternion operator + (double b) const;
233 
243 
252  Pds::Quaternion Add(double b) const;
253 
263 
273 
282  Pds::Quaternion operator - (double b) const;
283 
292  Pds::Quaternion Sub(double b) const;
293 
303 
313 
322  Pds::Quaternion operator * (double b) const;
323 
332  Pds::Quaternion Mul(double b) const;
333 
343 
353 
362  Pds::Quaternion operator / (double b) const;
363 
372  Pds::Quaternion Div(double b) const;
373 
374 
386  Pds::Quaternion Pow(double b) const;
392 public:
406  Pds::Quaternion Conj(void) const;
407 
415  Pds::Quaternion Unit(void) const;
416 
424  double Module(void) const;
425 
426 
431 public:
443  void Print(std::string str="") const;
444 
450  void PrintStylized(std::string str="") const;
454 }; // Class Quaternion
455 
456 } // namespace Pds
457 
458 
469 
470 
481 
492 
504 
509 #endif
510 
La clase tipo Pds::Quaternion . Esta clase genera un objeto con dos parametros Nlin y Ncol....
Definition: Quaternion.hpp:59
Pds::Quaternion Sub(double b) const
Resta con sigo mismo (A) un número real b.
Pds::Quaternion Add(double b) const
Suma con sigo mismo (A) un número real b.
void PrintStylized(std::string str="") const
Muestra en pantalla el contenido de Pds::Quaternion, en el formato (Nli,Ncol).
Pds::Quaternion Mul(double b) const
Multiplica con sigo mismo (A) un número real b.
void Print(std::string str="") const
Muestra en pantalla el contenido de Pds::Quaternion, elementos separados por tabulador.
Pds::Quaternion operator-(double a, const Pds::Quaternion &B)
Resta con a un quaternio B.
Pds::Quaternion Mul(const Pds::Quaternion &B) const
Multiplica con sigo mismo (A) un quaternio B.
void Polar(double A, double Alpha, double Beta, double Theta)
Carga el quaternio indicando el módulo y el ángulo.
Pds::Quaternion Plus(void) const
Retorna un quaternio igual a si mismo (A).
Pds::Quaternion Add(const Pds::Quaternion &B) const
Suma con sigo mismo (A) un quaternio B.
Quaternion(const Pds::Quaternion &B)
Crea un objeto de tipo Pds::Quaternion copiando datos desde otro.
Quaternion(double w)
Crea un objeto de tipo Pds::Quaternion.
Pds::Quaternion operator*(double a, const Pds::Quaternion &B)
Multiplica con a un quaternio B.
Pds::Quaternion operator+(double a, const Pds::Quaternion &B)
Suma con a un quaternio B.
Pds::Quaternion Unit(void) const
Retorna un quaternio unitario de si mismo (A).
Quaternion(double w, double x, double y, double z)
Crea un objeto de tipo Pds::Quaternion.
Pds::Quaternion Div(const Pds::Quaternion &B) const
Divide con sigo mismo (A) un quaternio B.
Pds::Quaternion Div(double b) const
Divide con sigo mismo (A) un número real b.
Pds::Quaternion operator/(const Pds::Quaternion &B) const
Divide con sigo mismo (A) un quaternio B.
Pds::Quaternion operator+(void) const
Retorna un quaternio igual a si mismo (A).
double Module(void) const
Retorna el modulo de si mismo (A).
Pds::Quaternion Minus(void) const
Retorna un quaternio igual al negativo de si mismo (A).
Quaternion(void)
Crea un objeto de tipo Pds::Quaternion con parte real e imaginaria iguales a cero.
Pds::Quaternion Sub(const Pds::Quaternion &B) const
Resta con sigo mismo (A) un quaternio B.
Pds::Quaternion Pow(double b) const
Eleva con sigo mismo (A) un exponente real b.
Pds::Quaternion Conj(void) const
Retorna el conjugado de si mismo (A).
Pds::Quaternion operator/(double a, const Pds::Quaternion &B)
Divide con a un quaternio B.
void Rect(double w, double x, double y, double z)
Carga el quaternio indicando la parte real e imaginaria.
Pds::Quaternion operator*(const Pds::Quaternion &B) const
Multiplica con sigo mismo (A) un quaternio B.
Pds::Quaternion operator-(void) const
Retorna un quaternio igual al negativo 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