Home | Develop | Download | Contact
pdsmath.h
1 /*
2  * pdsmath.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 
28 #ifndef __PDSMATH_H__
29 #define __PDSMATH_H__
30 
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
46 #define PDS_PHI 1.618033988749894
47 
48 
55 #define PDS_GOLDEN_RATIO PDS_PHI
56 
63 #define PDS_1_OVER_SQRT_2PI 0.398942280401433
64 
71 #define PDS_2_OVER_SQRT_PI 1.12837916709551
72 
79 #define PDS_LN2 6.93147180559945e-01
80 
88 static const unsigned long int PDS_MPB10[]={0,7,97,997,9973,99991,999983,9999991};
89 
95 static const unsigned long int PDS_LENGTH_MPB10=8;
96 
97 
106 double pds_qfunc(double x);
107 
108 
109 
119 double pds_qfuncinv(double q);
120 
130 double pds_gamma(double x);
131 
132 
141 double pds_erf(double x);
142 
143 
152 double pds_erfc(double x);
153 
154 
167 double pds_sgn(double x);
168 
169 
170 
183 int pds_isgn(int x);
184 
193 double pds_sinc(double x);
194 
195 
204 double pds_sigmoid(double x);
205 
206 
217 double pds_gauss(double x,double U,double Sigma);
218 
219 
230 double pds_gauss2(double x,double U,double Sigma2);
231 
232 
241 double pds_gnorm(double x);
242 
243 
252 double pds_exp22(double x);
253 
254 
263 double pds_exp2(double x);
264 
265 
274 double pds_exp1(double x);
275 
285 double pds_r1exp1(double x,double r);
286 
287 
296 double pds_hb(double x);
297 
308 double pds_hbinv(double h);
309 
319 double pds_nchoosek(unsigned int n,unsigned int k);
320 
321 
333 double pds_binomial(unsigned int n,unsigned int k, double p);
334 
335 
351 double pds_integration(double (*f)(double), double a,double b,unsigned int n);
352 
353 
370 double pds_integration1p(double (*f)(double,double),double r, double a,double b,unsigned int n);
371 
390 double pds_integration_with_eval_funcs(double (*f)(double), double a,double b, double fa,double fb,unsigned int n);
391 
392 
422 double pds_integration_inf(double (*f)(double), double a,unsigned int n);
423 
424 
455 double pds_integration1p_inf(double (*f)(double,double),double r, double a,unsigned int n);
456 
461 #ifdef __cplusplus
462 }
463 #endif
464 
465 
466 #endif /* __PDSMATH_H__ */
double pds_gauss2(double x, double U, double Sigma2)
Evalúa la función gaussiana, o distribución gaussiana f(x)=N(U,Sigma2).
double pds_nchoosek(unsigned int n, unsigned int k)
Retorna el combinatorio (n,k)
double pds_qfunc(double x)
Evalúa la función Q(x)
double pds_sgn(double x)
Evalúa la función signo sgn(x)
double pds_integration_with_eval_funcs(double(*f)(double), double a, double b, double fa, double fb, unsigned int n)
Evalúa la integral de a–>b de la función f(x), aplicando la regla de Simpson con n divisiones...
double pds_hb(double x)
Evalúa la función de entropía binaria Hb(x)=-x*log2(x)-(1-x)*log2(1-x).
double pds_sigmoid(double x)
Evalúa la función sigmoid(x)=1/(1+e^{-x})
double pds_sinc(double x)
Evalúa la función sinc(x)=sin(x)/x.
double pds_erfc(double x)
Evalúa la función erfc(x)
double pds_gnorm(double x)
Evalúa la función gaussiana normalizada, o distribución gaussiana f(x)=N(0,1.0).
static const unsigned long int PDS_MPB10[]
Es un arreglo de variables enteras con números primos de modo que PDS_MPB10[d] contiene el máximo núm...
Definition: pdsmath.h:88
double pds_exp2(double x)
Evalúa la función f(x)=exp(-x^2).
double pds_integration1p(double(*f)(double, double), double r, double a, double b, unsigned int n)
Evalúa la integral de a–>b de la función f(x,r), aplicando la regla de Simpson con n divisiones...
double pds_integration(double(*f)(double), double a, double b, unsigned int n)
Evalúa la integral de a–>b de la función f(x), aplicando la regla de Simpson con n divisiones...
double pds_integration1p_inf(double(*f)(double, double), double r, double a, unsigned int n)
Evalúa la integral de a–>infinito de la función f(x,r) en x, aplicando el cambio de variable u<–1/(...
double pds_exp1(double x)
Evalúa la función f(x)=exp(-x).
static const unsigned long int PDS_LENGTH_MPB10
Es el número de elementos del arreglo PDS_MPB10 .
Definition: pdsmath.h:95
int pds_isgn(int x)
Evalúa la función signo sgn(x)
double pds_gauss(double x, double U, double Sigma)
Evalúa la función gaussiana, o distribución gaussiana f(x)=N(U,Sigma^2).
double pds_qfuncinv(double q)
Evalúa la función Q^{-1}(q) , función Q inversa.
double pds_exp22(double x)
Evalúa la función f(x)=exp(-x^2/2).
double pds_integration_inf(double(*f)(double), double a, unsigned int n)
Evalúa la integral de a–>infinito de la función f(x), aplicando el cambio de variable u<–1/(x+1) pa...
double pds_hbinv(double h)
Retorna el valor x de la función de entropía binaria para un valor de h aproximadamente igual a Hb(x)...
double pds_gamma(double x)
Evalúa la función gamma(x)
double pds_r1exp1(double x, double r)
Evalúa la función f(x)=pow(x,r-1.0)*exp(-x).
double pds_binomial(unsigned int n, unsigned int k, double p)
Retorna la distribucion binomial(n,k,p)
double pds_erf(double x)
Evalúa la función erf(x)

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed