Home | Develop | Download | Contact
pdsvector.h
1 /*
2  * pdsvector.h
3  *
4  * Copyright 2011 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 
33 #ifndef __PDSVECTOR_H__
34 #define __PDSVECTOR_H__
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
40 #include <stdio.h>
41 #include <stdlib.h>
42 #include <pds/pdsraglobal.h>
43 
44 
55 #ifndef PDS_OK
56 
60  #define PDS_OK 1
61 #endif
62 
63 #ifndef PDS_WRONG
64 
68  #define PDS_WRONG 0
69 #endif
70 
71 
80 typedef struct
81 {
86 }PdsVector;
87 
100 
101 
119 
120 
138 
139 
148 
149 
160 PdsVector *pds_vector_new_load_data(const char* datafile);
161 
162 
176 PdsVector *pds_vector_new_load_data_line(const char* datafile,PdsRaNatural line);
177 
178 
192 PdsVector *pds_vector_new_load_data_col(const char* datafile,PdsRaNatural col);
193 
194 
196 
216 
217 
244 
246 
261 
262 
272 
273 
284 
286 
287 
301 int pds_vector_init_value(PdsVector *Vector,PdsRaReal Val);
302 
303 
313 int pds_vector_init_vector(PdsVector *Vector,const PdsVector *VecSrc);
314 
315 
317 
318 
334 int pds_vector_add_vector(PdsVector *Vector,const PdsVector *VecSrc);
335 
336 
347 int pds_vector_add_factor_vector(PdsVector *Vector,PdsRaReal Alpha,const PdsVector *VecSrc);
348 
349 
357 int pds_vector_add_value(PdsVector *Vector,PdsRaReal Val);
358 
359 
369 int pds_vector_sub_vector(PdsVector *Vector,const PdsVector *VecSrc);
370 
371 
382 int pds_vector_mul_vector_elements(PdsVector *Vector,const PdsVector *VecSrc);
383 
384 
392 int pds_vector_mul_value(PdsVector *Vector,PdsRaReal Val);
393 
394 
403 int pds_vector_div_value(PdsVector *Vector,PdsRaReal Val);
404 
405 
416 int pds_vector_dot_vector(const PdsVector *Vector1,const PdsVector *Vector2,PdsRaReal *Val);
417 
418 
420 
433 int pds_vector_printf(const PdsVector *Vector);
434 
435 
451 int pds_vector_fprintf(const PdsVector *Vector,FILE *fd);
452 
453 
471 int pds_vector_fscanf(PdsVector *Vector, FILE *fd);
472 
473 
488 int pds_vector_fwrite(PdsVector *Vector, FILE *fd);
489 
490 
508 int pds_vector_fread(PdsVector *Vector, FILE *fd);
509 
510 
512 
513 
527 int pds_vector_norm_vector(const PdsVector *Vector, PdsRaReal *m);
528 
529 
537 int pds_vector_norm2_vector(const PdsVector *Vector, PdsRaReal *m);
538 
539 
547 int pds_vector_rms_vector(const PdsVector *Vector, PdsRaReal *m);
548 
549 
558 int pds_vector_rms_vectors(const PdsVector *VectorA, const PdsVector *VectorB, PdsRaReal *m);
559 
560 
576 int pds_vector_rms_factor_vectors(const PdsVector *VectorA, const PdsVector *VectorB, PdsRaReal *m);
577 
587 int pds_vector_mean_vector(const PdsVector *Vector, PdsRaReal *m);
588 
589 
600 int pds_vector_var_vector(const PdsVector *Vector, PdsRaReal *v);
601 
602 
613 int pds_vector_std_vector(const PdsVector *Vector, PdsRaReal *v);
614 
615 
632 int pds_vector_cov_vector (const PdsVector *VectorX,const PdsVector *VectorY, PdsRaReal *c);
633 
634 
651 int pds_vector_cor_vector (const PdsVector *VectorX,const PdsVector *VectorY, PdsRaReal *c);
652 
653 
666 PdsVector* pds_vector_new_conv(const PdsVector *Vector1,const PdsVector *Vector2);
667 
668 
678 
679 
686 int pds_vector_asc_order(PdsVector *Vector);
687 
688 
695 int pds_vector_desc_order(PdsVector *Vector);
696 
697 
706 int pds_vector_cmp(const PdsVector *Vector1,const PdsVector *Vector2,PdsRaNatural *n);
707 
708 
709 
711 
728 int pds_vector_get_value(const PdsVector *Vector, PdsRaNatural x, PdsRaReal *m);
729 
730 
738 int pds_vector_get_nelements(const PdsVector *Vector,PdsRaReal *Nelements);
739 
740 
749 int pds_vector_get_min_value(const PdsVector *Vector, PdsRaReal *m);
750 
751 
760 int pds_vector_get_max_value(const PdsVector *Vector, PdsRaReal *m);
761 
762 
764 
775 #define PDS_VSET(Vector,id,Val) pds_vector_set_value(Vector,id,Val)
776 
788 
789 
800 
801 
812 
813 
815 
839 int pds_vector_octave_plot(const PdsVector *X,const PdsVector *Y,const char *labelx,const char *labely,const char *octfile,const char *imgfile);
840 
841 
859 int pds_vector_octave_semilogx(const PdsVector *X,const PdsVector *Y,const char *labelx,const char *labely,const char *octfile,const char *imgfile);
860 
861 
879 int pds_vector_octave_semilogy(const PdsVector *X,const PdsVector *Y,const char *labelx,const char *labely,const char *octfile,const char *imgfile);
880 
881 
883 
896 void pds_vector_free(PdsVector *Vector);
897 
898 
916 void pds_vector_destroy(PdsVector **Vector);
917 
919 
924 #ifdef __cplusplus
925 }
926 #endif
927 
928 #endif
929 
930 
unsigned int PdsRaNatural
Definition: pdsraglobal.h:59
int pds_vector_octave_semilogy(const PdsVector *X, const PdsVector *Y, const char *labelx, const char *labely, const char *octfile, const char *imgfile)
Imprime un vector Y vs X en un archivo de imagen usando como intermedio un archivo *...
int pds_vector_swap_elements(PdsVector *Vector, PdsRaNatural X, PdsRaNatural Y)
Intercambia los elementos de la posición X e Y del vector.
int pds_vector_init_value(PdsVector *Vector, PdsRaReal Val)
Inicia el vector Vector de tipo PdsVector *. Vector{:}=Val.
PdsVector * pds_vector_new_conv(const PdsVector *Vector1, const PdsVector *Vector2)
Devuelve un nuevo vector con la convolución de Vector1 y Vector2 de longitudes N1 y N2 respectivament...
int pds_vector_cov_vector(const PdsVector *VectorX, const PdsVector *VectorY, PdsRaReal *c)
Devuelve el valor de la covarianza muestral de los vectores VectorX y VectorY.
PdsVector * pds_vector_new_rectangular(PdsRaNatural N)
Crea un vector de tipo PdsVector e inicia sus valores con una ventana rectangular W...
int pds_vector_mul_value(PdsVector *Vector, PdsRaReal Val)
Multiplica al vector Vector por un escalar. Vector=Val*Vector.
int pds_vector_printf(const PdsVector *Vector)
Imprime en pantalla un vector de tipo puntero PdsVector.
int pds_vector_add_factor_vector(PdsVector *Vector, PdsRaReal Alpha, const PdsVector *VecSrc)
Suma al vector Vector el vector Alpha*VecSrc, el resultado es copiado a Vector. Si los tamaños son di...
int pds_vector_init_vector(PdsVector *Vector, const PdsVector *VecSrc)
Se copia el contenido del vector VecSrc a el vector Vector. Si los tamaños son diferentes se intersec...
PdsVector * pds_vector_new_load_data(const char *datafile)
Crea un nuevo vector e inicia los datos con los elementos del archivo datafile. Usa TAB o un salto de...
int pds_vector_dot_vector(const PdsVector *Vector1, const PdsVector *Vector2, PdsRaReal *Val)
Ejecuta el producto punto entre el Vector1 y el Vector2. El resultado es cargado en Val...
int pds_vector_desc_order(PdsVector *Vector)
Ordena descendentemente todos los elementos del vector.
PdsRaReal * V
Definition: pdsvector.h:83
int pds_vector_fwrite(PdsVector *Vector, FILE *fd)
Escribe los datos de un vector en el archivo binario apuntado por fd. Para usar:
int pds_vector_set_value(PdsVector *Vector, PdsRaNatural x, PdsRaReal m)
Escribe el valor m en la posición (x) del vector Vector. (x) inicia con (0).
int pds_vector_fscanf(PdsVector *Vector, FILE *fd)
Inicializa un vector Vector con los datos del archivo de texto apuntado por fd. Si la cantidad de ele...
int pds_vector_var_vector(const PdsVector *Vector, PdsRaReal *v)
Devuelve el valor de la varianza muestral del vector Vector (X).
int pds_vector_cor_vector(const PdsVector *VectorX, const PdsVector *VectorY, PdsRaReal *c)
Devuelve el valor del coeficiente de correlación de los vectores VectorX y VectorY.
void pds_vector_destroy(PdsVector **Vector)
Teniendo un vector Vector de tipo PdsVector *Vector, entonces.
PdsVector * pds_vector_new_load_data_col(const char *datafile, PdsRaNatural col)
Crea un nuevo vector e inicia los datos con los elementos de la columna col del archivo datafile...
int pds_vector_get_min_value(const PdsVector *Vector, PdsRaReal *m)
Devuelve el valor mínimo de todos los elementos del vector.
int pds_vector_set_gray(PdsVector *Vector, PdsRaNatural n, PdsRaNatural b0, PdsRaNatural b1)
Escribe en formato Gray el numero n en el vector Vector.
PdsVector * pds_vector_new_linspace(PdsRaReal xi, PdsRaReal xf, PdsRaNatural N)
Crea un vector de tipo PdsVector e inicia sus valores con N elementos equidistantemente espaciados en...
int pds_vector_fprintf(const PdsVector *Vector, FILE *fd)
Imprime en el archivo al que apunta fd el contenido de un vector Vector. fd es un manejador de archiv...
Estructura de tipo PdsVector .
Definition: pdsvector.h:80
int pds_vector_octave_plot(const PdsVector *X, const PdsVector *Y, const char *labelx, const char *labely, const char *octfile, const char *imgfile)
Imprime un vector Y vs X en un archivo de imagen usando como intermedio un archivo *...
float PdsRaReal
Definition: pdsraglobal.h:49
int pds_vector_norm2_vector(const PdsVector *Vector, PdsRaReal *m)
Devuelve la norma^2 del vector Vector.
int pds_vector_mean_vector(const PdsVector *Vector, PdsRaReal *m)
Devuelve el valor medio del vector (X) Vector.
int pds_vector_rms_vectors(const PdsVector *VectorA, const PdsVector *VectorB, PdsRaReal *m)
Devuelve el valor raíz cuadrático medio de la diferencia de los vectores.
PdsVector * pds_vector_new_logspace(PdsRaReal xi, PdsRaReal xf, PdsRaNatural N)
Crea un vector de tipo PdsVector e inicia sus valores con N elementos logaritmicamente espaciados ent...
int pds_vector_rms_vector(const PdsVector *Vector, PdsRaReal *m)
Devuelve el valor raíz cuadrático medio del vector Vector.
PdsVector * pds_vector_new_args(PdsRaNatural N,...)
Crea un vector de tipo PdsVector e inicia sus valores con los valores del segundo parametro de entrad...
PdsVector * pds_vector_new(PdsRaNatural Nel)
Crea un vector de tipo PdsVector e inicia con cero todos los elementos.
int pds_vector_set_bcd(PdsVector *Vector, PdsRaNatural n, PdsRaNatural b0, PdsRaNatural b1)
Escribe en formato BCD el numero n en el vector Vector.
int pds_vector_get_nelements(const PdsVector *Vector, PdsRaReal *Nelements)
Devuelve el número de elementos del vector Vector.
int pds_vector_norm_vector(const PdsVector *Vector, PdsRaReal *m)
Devuelve la norma del vector Vector.
int pds_vector_add_vector(PdsVector *Vector, const PdsVector *VecSrc)
Suma al vector Vector el vector VecSrc, el resultado es copiado a Vector. Si los tamaños son diferent...
int pds_vector_std_vector(const PdsVector *Vector, PdsRaReal *v)
int pds_vector_sub_vector(PdsVector *Vector, const PdsVector *VecSrc)
Resta al vector de tipo puntero PdsVector con otro vector y lo copia en Vector. Si los tamaños son di...
PdsVector * pds_vector_new_hamming(PdsRaNatural N)
Crea un vector de tipo PdsVector e inicia sus valores con una ventana de Hamming W. .
int pds_vector_get_max_value(const PdsVector *Vector, PdsRaReal *m)
Devuelve el valor máximo de todos los elementos del vector.
PdsRaNatural Nel
Definition: pdsvector.h:85
int pds_vector_asc_order(PdsVector *Vector)
Ordena ascendentemente todos los elementos del vector.
int pds_vector_fread(PdsVector *Vector, FILE *fd)
Inicializa un vector Vector con los datos del archivo binario apuntado por fd. Si la cantidad de dato...
int pds_vector_div_value(PdsVector *Vector, PdsRaReal Val)
Divide al vector Vector por un escalar. Carga el resultado en el propio vector. Vector=Vector/Val.
int pds_vector_cmp(const PdsVector *Vector1, const PdsVector *Vector2, PdsRaNatural *n)
Compara los vectores Vector1 y Vector2, retorna en n la cantidad de elementos distintos.
PdsVector * pds_vector_new_vector(const PdsVector *VecSrc)
Crea un vector de tipo PdsVector e inicia sus valores con el contenido de el vector VecSrc...
PdsVector * pds_vector_new_blackman(PdsRaNatural N, PdsRaReal Alpha)
Crea un vector de tipo PdsVector e inicia sus valores con una ventana de Blackman. .
PdsVector * pds_vector_new_load_data_line(const char *datafile, PdsRaNatural line)
Crea un nuevo vector e inicia los datos con los elementos de la linea line del archivo datafile...
void pds_vector_free(PdsVector *Vector)
Libera la memoria de un vector de tipo puntero PdsVector.
int pds_vector_octave_semilogx(const PdsVector *X, const PdsVector *Y, const char *labelx, const char *labely, const char *octfile, const char *imgfile)
Imprime un vector Y vs X en un archivo de imagen usando como intermedio un archivo *...
int pds_vector_rms_factor_vectors(const PdsVector *VectorA, const PdsVector *VectorB, PdsRaReal *m)
Devuelve el valor raíz cuadrático medio de la diferencia de los vectores entre el valor raíz cuadráti...
int pds_vector_mul_vector_elements(PdsVector *Vector, const PdsVector *VecSrc)
Multiplica elemento a elemento el vector Vector con el vector VecSrc, el resultado es cargado a Vecto...
int pds_vector_get_value(const PdsVector *Vector, PdsRaNatural x, PdsRaReal *m)
Devuelve el valor en la posición (x) del vector Vector. (x) inicia con (0).
int pds_vector_add_value(PdsVector *Vector, PdsRaReal Val)
Suma al vector Vector el valor Val y lo carga en Vector. Vector{:}=Vector{:}+Val.
PdsVector * pds_vector_new_array1d(const PdsRaReal *Array1D, PdsRaNatural N)
Crea un vector de tipo PdsVector e inicia sus valores con el contenido del arreglo de valores reales ...

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed