Home | Develop | Download | Contact
CVector.hpp
1 /*
2  * CVector.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 
35 #ifndef __PDS_CVECTOR_HPP__
36 #define __PDS_CVECTOR_HPP__
37 
38 
64 #include <Pds/Ra>
65 #include <Pds/CMatrix>
66 #include <Pds/Complex>
67 #include <Pds/Size>
68 
69 #include <sstream> // std::ostringstream
70 
71 namespace Pds{
72 
80 class CVector: public CMatrix
81 {
82 
83 public:
84 
93  CVector(void);
94 
99  CVector(unsigned int N);
100 
101 
102 
103 
109  CVector(unsigned int N,double val);
110 
111 
117  CVector(unsigned int N,const Pds::Complex &val);
118 
119 
143  CVector(const Pds::Size &S);
144 
145 
167 
188  CVector(const Pds::Matrix &B);
189 
211  CVector(const Pds::CMatrix &B,unsigned int col);
212 
213 
215 
234  bool Reshape(unsigned int Nlin,unsigned int Ncol);
235 
242  bool Reshape(unsigned int Nel);
243 
244 
261  Pds::Complex operator[](const unsigned int &id) const
262  {
263  return Pds::Complex(this->Real.GetRaw(id,0),this->Imag.GetRaw(id,0));
264  }
265 
273  Pds::Complex GetRaw(unsigned int lin) const
274  {
275  return Pds::Complex(this->Real.GetRaw(lin,0),this->Imag.GetRaw(lin,0));
276  }
277 
285  void SetRaw(unsigned int lin,const Pds::Complex &val)
286  {
287  this->Real.SetRaw(lin,0,val.Real);
288  this->Imag.SetRaw(lin,0,val.Imag);
289  }
290 
298  void SetRaw(unsigned int lin,double val)
299  {
300  this->Real.SetRaw(lin,0,val);
301  this->Imag.SetRaw(lin,0,0.0);
302  }
303 
321  bool Copy(const Pds::CMatrix &A);
322 
330  bool Vectorize(const Pds::CMatrix &A)
331  {
332  return this->Copy(A);
333  }
334 
335 
342  bool Copy(const Pds::Matrix &A);
343 
351  bool Vectorize(const Pds::Matrix &A)
352  {
353  return this->Copy(A);
354  }
355 
373  bool CopyFromRow(unsigned int lin, const Pds::CMatrix &B);
374 
379 }; // Class CVector
380 
381 } // namespace Pds
382 
383 
388 #endif
389 
La clase tipo Pds::CMatrix . Esta clase genera un objeto con dos parametros Nlin y Ncol....
Definition: CMatrix.hpp:63
Pds::Matrix Imag
Definition: CMatrix.hpp:69
Pds::Matrix Real
Definition: CMatrix.hpp:67
La clase tipo Pds::CVector . Esta clase genera una matriz de Nlin lineas y 1 columna....
Definition: CVector.hpp:81
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
unsigned int Nel(void) const
Retorna el número de elementos de si mismo (A).
unsigned int Ncol(void) const
Retorna el número de columnas de si mismo (A).
unsigned int Nlin(void) const
Retorna el número de lineas si mismo (A).
CVector(const Pds::CMatrix &B, unsigned int col)
Crea un objeto de tipo Pds::CVector copiando datos desde una columna de una matriz.
bool CopyFromRow(unsigned int lin, const Pds::CMatrix &B)
Copia en si mismo (A), una linea de la matriz B. El tamaño de A debe ser el mismo que las columnas de...
CVector(const Pds::Matrix &B)
Crea un objeto de tipo Pds::CVector copiando datos desde una matriz. Toda la matriz es vectorizada le...
bool Copy(const Pds::CMatrix &A)
Copia los datos de la matriz vectorizandola.
Pds::Complex GetRaw(unsigned int lin) const
Retorna una variable Datum en la posición (lin,0) de vector.
Definition: CVector.hpp:273
void SetRaw(unsigned int lin, const Pds::Complex &val)
Establece una variable Datum en la posición (lin,0) del vector.
Definition: CVector.hpp:285
bool Vectorize(const Pds::CMatrix &A)
Copia los datos de la matriz vectorizandola. Es equivalente a Copy().
Definition: CVector.hpp:330
CVector(const Pds::Size &S)
Crea un objeto de tipo Pds::CVector con elementos inicializados con cero.
bool Copy(const Pds::Matrix &A)
Copia los datos de la matriz vectorizandola.
bool Reshape(unsigned int Nlin, unsigned int Ncol)
Remodela los datos internos de la array y la convierte en una array de tamaño diferente,...
void SetRaw(unsigned int lin, double val)
Establece una variable Datum en la posición (lin,0) del vector.
Definition: CVector.hpp:298
CVector(unsigned int N, const Pds::Complex &val)
Crea un objeto de tipo Pds::CVector.
CVector(unsigned int N)
Crea un objeto de tipo Pds::CVector.
CVector(void)
Crea un objeto de tipo Pds::CVector.
CVector(const Pds::CMatrix &B)
Crea un objeto de tipo Pds::CVector copiando datos desde una matriz. Toda la matriz es vectorizada le...
bool Vectorize(const Pds::Matrix &A)
Copia los datos de la matriz vectorizandola. Es equivalente a Copy().
Definition: CVector.hpp:351
CVector(unsigned int N, double val)
Crea un objeto de tipo Pds::CVector.
Pds::Complex operator[](const unsigned int &id) const
Retorna el valor en cada posicion del vector (solo lectura).
Definition: CVector.hpp:261
bool Reshape(unsigned int Nel)
Remodela los datos internos de la array y la convierte en una array de tamaño diferente,...
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