Home | Develop | Download | Contact
MathMatrix.hpp
1/*
2 * MathMatrix.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
34#ifndef __PDS_MATRIXMATH_HPP__
35#define __PDS_MATRIXMATH_HPP__
36
37
64#include <Pds/Matrix>
65#include <Pds/Vector>
66#include <Pds/RaDefines>
67
68namespace Pds{
69
70
87
98
128
139
151
163
174
185
206
217 Pds::Matrix Pow(const Pds::Matrix &A,double var);
218
230
242
243
271 double XqHb(double p,double q);
272
293 Pds::Matrix XqHb(const Pds::Matrix &A,double q);
294
312 double DXqHb(double p,double q);
313
314
335 Pds::Matrix DXqHb(const Pds::Matrix &A,double q);
336
359 double PLog2P(double p);
360
376
396 double CrossEntropy(double p,double q);
397
418
438 double KLDivergence(double p,double q);
439
477 double Hb(double x);
478
489
499 double HbInv(double h);
500
511
512
513
522 double Logit2(double x);
523
534
542 double Hbn(double x);
543
554
581 double qExp(double x,double q);
582
601 Pds::Matrix qExp(const Pds::Matrix &A,double q);
602
616 double qLog(double x,double q);
617
633 Pds::Matrix qLog(const Pds::Matrix &A,double q);
634
647 double qHbn(double x,double q);
648
663 Pds::Matrix qHbn(const Pds::Matrix &A,double q);
664
677 double qDHbn(double x,double q);
678
693 Pds::Matrix qDHbn(const Pds::Matrix &A,double q);
694
721 double InformationGain(const Pds::Matrix &B, const std::vector<Pds::Matrix> &A,double Umbral=0.5);
722
749 Pds::Vector InformationGainScale(const Pds::Vector &Y,double Umbral=0.5);
750
776 Pds::Vector InformationSumScale(const Pds::Vector &Y,double Umbral=0.5);
777
782namespace CDF{
783
799 double Phi(double x);
800
812 double Phi(double x,double mu,double sigma);
813
827
828
838 double Probit(double p);
839
855}
856
857
858
873 double Var(const Pds::Matrix &A, double *mean);
874
883 double Var(const Pds::Matrix &A);
884
893 double Mean(const Pds::Matrix &A);
894
903 double Sum(const Pds::Matrix &A);
904
914 double R2(const Pds::Matrix &A,const Pds::Matrix &B);
915
932 double Accuracy(const Pds::Matrix &A,const Pds::Matrix &B,double Umbral=0.5);
933
951 const Pds::BatchBlock &B,
952 double Umbral=0.5);
953
965 const Pds::Matrix &B,
966 unsigned int &S,
967 unsigned int &T);
968
980 const Pds::BatchBlock &B,
981 unsigned int &S,
982 unsigned int &T);
983
995 const Pds::BatchBlock &B,
996 double &S);
997
1009 double NAccuracy(const Pds::Matrix &A,const Pds::Matrix &B);
1010
1011
1022 double MeanAbsoluteError(const Pds::Matrix &A,const Pds::Matrix &B);
1041 double ArgMax(const Pds::Matrix &X);
1042
1051 double ArgMin(const Pds::Matrix &X);
1052
1061 double Det(const Pds::Matrix &A);
1062
1071 double RMS(const Pds::Matrix &A);
1072
1082 double MeanAbsolute(const Pds::Matrix &A);
1083
1093 double MeanSquare(const Pds::Matrix &A);
1094
1095
1105 double SumSquare(const Pds::Matrix &A);
1106
1116 double Norm(const Pds::Matrix &A);
1117
1128 double NormDiff(const Pds::Matrix &A,const Pds::Matrix &B);
1129
1160
1180 double SQNL(double x);
1181
1203
1223 double DSQNL(double x);
1224
1235
1244 double Identity(double x);
1245
1256
1265 double DIdentity(double x);
1266
1279
1290 double SoftSign(double x);
1291
1292
1305
1316 double DSoftSign(double x);
1317
1336
1353 double ELU(double x);
1354
1355
1374
1391 double DELU(double x);
1392
1405
1416 double SoftPlus(double x);
1417
1418
1431
1442 double DSoftPlus(double x);
1443
1464
1483 double ReLU(double x);
1484
1485
1505
1523 double DReLU(double x);
1524
1525
1544
1561 double LeakyReLU(double x);
1562
1563
1582
1599 double DLeakyReLU(double x);
1600
1611
1620 double Gaussian(double x);
1621
1632
1641 double DGaussian(double x);
1642
1653
1662 double Tanh(double x);
1663
1674
1683 double DTanh(double x);
1684
1695
1704 double Sigmoid(double x);
1705
1716
1725 double DSigmoid(double x);
1726
1746
1764
1784 unsigned int Factorial(unsigned int n);
1785
1786
1796 unsigned int NchooseK(unsigned int n,unsigned int k);
1797
1807 unsigned int NmultichooseK(unsigned int n,unsigned int k);
1808
1827 double UnitStep(double x);
1828
1840
1850 double UnitRamp(double x);
1851
1863
1864
1874 double SignNZ(double x);
1875
1886 double Sign(double x);
1887
1888
1889
1902
1913
1914
1937 double MuLaw(double x,double Mu);
1938
1950 Pds::Matrix MuLaw(const Pds::Matrix &A,double Mu);
1951
1963 double MuLawInv(double y,double Mu);
1964
1976 Pds::Matrix MuLawInv(const Pds::Matrix &A,double Mu);
1977
2010 Pds::Matrix Conv2DCh( const std::vector<Pds::Matrix> &A,
2011 const std::vector<Pds::Matrix> &Kernel,
2012 const std::vector<unsigned int> &Strides={1,1},
2014
2035 Pds::Vector Conv1DCh( const std::vector<Pds::Vector> &A,
2036 const std::vector<Pds::Vector> &Kernel,
2037 unsigned int Strides=1,
2039
2060 Pds::Matrix Conv1DCh( const std::vector<Pds::Matrix> &A,
2061 const std::vector<Pds::Vector> &Kernel,
2062 unsigned int Strides=1,
2064
2065
2089
2098 double Logit(double x);
2099
2110
2122
2131 double Sinc(double x);
2132
2148namespace Integration{
2149
2176 double Simpson(double (*f)(double), double a,double b,unsigned int n);
2177
2200 double Simpson(double (*f)(double,double),double r, double a,double b,unsigned int n);
2201
2230 double Improper(double (*f)(double), double a,unsigned int n);
2231
2232
2262 double Improper(double (*f)(double,double),double r, double a,unsigned int n);
2267} //namespace Integration
2268
2269} //namespace Pds
2274#endif
2275
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
Definition: Matrix.hpp:96
La clase tipo Pds::Vector . Esta clase genera una matriz de Nlin lineas y 1 columna....
Definition: Vector.hpp:80
Padding
Tipo de dato que especifica el padding en la convolucion.
Definition: RaDefines.hpp:346
double UnitRamp(double x)
Retorna el resultado de evaluar la función UnitRamp().
double Accuracy(const Pds::Matrix &A, const Pds::Matrix &B, double Umbral=0.5)
Calcula el valor de la Accuracy entre los elementos de las matrices A y B. A>Umbral,...
double SignNZ(double x)
Retorna el resultado de evaluar la función Sign Non Zero.
double XqHb(double p, double q)
Retorna el resultado de evaluar la función pseudo entropia $XqHb(p,q)$.
unsigned int NmultichooseK(unsigned int n, unsigned int k)
Retorna el combinatorio (n,k)
Pds::Matrix Erf(const Pds::Matrix &A)
Calcula el valor de la función .
double SumSquare(const Pds::Matrix &A)
Calcula el valor de la suma quadrática de una matriz.
double qLog(double x, double q)
Retorna el resultado de evaluar la función q-logaritmic de Tsallis.
double RMS(const Pds::Matrix &A)
Calcula el valor raiz quadrático medio de una matriz.
Pds::Matrix Conv2DCh(const std::vector< Pds::Matrix > &A, const std::vector< Pds::Matrix > &Kernel, const std::vector< unsigned int > &Strides={1, 1}, Pds::Ra::Padding Padding=Pds::Ra::Valid)
Calcula la convolución de todos los canales entre A y Kernel.
double NAccuracy(const Pds::Matrix &A, const Pds::Matrix &B)
Calcula el valor de la Accuracy entre los elementos de las matrices A y B. round(A),...
Pds::Matrix DSigmoid(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la derivada de la función sigmoid.
double qDHbn(double x, double q)
Retorna el resultado de evaluar la derivada de la función entropia de Tsallis.
bool CountRoundEqualInBatchBlock(const Pds::BatchBlock &A, const Pds::BatchBlock &B, unsigned int &S, unsigned int &T)
Calcula el número de elementos enteros iguales entre los objetos A y B.
Pds::Matrix DSoftSign(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la derivada de la función SoftSign.
double PLog2P(double p)
Retorna el resultado de evaluar la función Pds::PLog2P().
Pds::Matrix DReLU(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la derivada de la función ReLU.
Pds::Matrix Tan(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función tangente.
Pds::Matrix DTanh(const Pds::Matrix &X)
Retorna el resultado de evaluar la derivada de la función tangente hiperbólico.
unsigned int NchooseK(unsigned int n, unsigned int k)
Retorna el combinatorio (n,k)
double Hb(double x)
Retorna el resultado de evaluar la función Entropia binária.
Pds::Matrix Log10(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función logaritmo de base 10.
double AccuracyBatchBlock(const Pds::BatchBlock &A, const Pds::BatchBlock &B, double Umbral=0.5)
Calcula el valor de la Accuracy entre los elementos de las matrices A y B. A>Umbral,...
double NormDiff(const Pds::Matrix &A, const Pds::Matrix &B)
Calcula el valor dela norma (Frobenius) de una matriz.
double R2(const Pds::Matrix &A, const Pds::Matrix &B)
Calcula el coeficiente de determinación o .
double Logit(double x)
Retorna el resultado de evaluar la función logit.
Pds::Matrix Sin(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función seno.
double MeanSquare(const Pds::Matrix &A)
Calcula el valor quadrático medio de una matriz.
double MuLaw(double x, double Mu)
Retorna el resultado de evaluar la (ley mu).
double Logit2(double x)
Retorna el resultado de evaluar la función logit.
double qHbn(double x, double q)
Retorna el resultado de evaluar la función entropia de Tsallis.
Pds::Matrix Identity(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la función linear.
Pds::Vector InformationGainScale(const Pds::Vector &Y, double Umbral=0.5)
Retorna un vector con todos los valores de Information Gain, dependiendo en donde se realice un corte...
Pds::Matrix DSoftPlus(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la derivada de la función SoftPlus.
Pds::Matrix SQNL(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la función SQNL.
double Det(const Pds::Matrix &A)
Calcula el valor de la detrminante de una matriz.
double UnitStep(double x)
Retorna el resultado de evaluar la función UnitStep().
Pds::Matrix Log2(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función logaritmo de base 2.
Pds::Matrix DIdentity(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la derivada de la función linear.
Pds::Matrix DLeakyReLU(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la derivada de la función ReLU.
double ArgMin(const Pds::Matrix &X)
Retorna el identicador (ID) de la posicion del mínimo en la matriz. En caso de existir varios mínimos...
Pds::Matrix Sqrt(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función raiz cuadrada.
Pds::Matrix Abs(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función valor absoluto.
double Mean(const Pds::Matrix &A)
Calcula el valor medio de los elementos de la matriz A.
Pds::Matrix DELU(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la derivada de la función ELU.
double Norm(const Pds::Matrix &A)
Calcula el valor dela norma (Frobenius) de una matriz.
double DXqHb(double p, double q)
Retorna el resultado de evaluar la derivada de la función pseudo entropia $XqHb(p,...
bool CountRoundEqualIn(const Pds::Matrix &A, const Pds::Matrix &B, unsigned int &S, unsigned int &T)
Calcula el número de elementos enteros iguales entre las matrices A y B.
double KLDivergence(double p, double q)
Retorna el resultado de evaluar la Kullback–Leibler divergence.
double Sign(double x)
Retorna el resultado de evaluar la función Sign.
double CrossEntropy(double p, double q)
Retorna el resultado de evaluar la función Entropia binária.
Pds::Matrix DGaussian(const Pds::Matrix &X)
Retorna el resultado de evaluar la función gaussiana.
Pds::Matrix Log(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función logaritmo natural.
unsigned int Factorial(unsigned int n)
Evalúa factorial de n, igual a n!.
double MeanAbsoluteError(const Pds::Matrix &A, const Pds::Matrix &B)
Calcula el valor del error absoluto medio.
Pds::Matrix DSQNL(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la derivada de la función SQNL.
Pds::Matrix ReLU(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la función ReLU.
double HbInv(double h)
Retorna el valor de la función de entropía binaria para un valor de .
Pds::Vector InformationSumScale(const Pds::Vector &Y, double Umbral=0.5)
Retorna un vector con todos los valores de Information Sum, dependiendo en donde se realice un corte ...
Pds::Vector Conv1DCh(const std::vector< Pds::Vector > &A, const std::vector< Pds::Vector > &Kernel, unsigned int Strides=1, Pds::Ra::Padding Padding=Pds::Ra::Valid)
Calcula la convolución de todos los canales entre A y Kernel.
Pds::Matrix Ln(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función logaritmo natural.
Pds::Matrix SoftMax(const Pds::Matrix &X)
Retorna el resultado de evaluar la función SoftMax.
Pds::Matrix Pow(const Pds::Matrix &A, double var)
Retorna el resultado de evaluar elemento a elemento la función pow.
double MuLawInv(double y, double Mu)
Retorna el resultado de evaluar la (ley mu).
double ArgMax(const Pds::Matrix &X)
Retorna el identicador (ID) de la posicion del máximo en la matriz. En caso de existir varios máximos...
Pds::Matrix ELU(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la función ELU.
double MeanAbsolute(const Pds::Matrix &A)
Calcula el valor absoluto medio de una matriz.
double Sinc(double x)
Retorna el resultado de evaluar la función sinc.
Pds::Matrix TwoExp(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función exponente de 2.
double InformationGain(const Pds::Matrix &B, const std::vector< Pds::Matrix > &A, double Umbral=0.5)
Retorna el Information Gain entre si mismo B y {A[0],A[1],...,A[N-1]}. Antes de comprarar las matrice...
Pds::Matrix Gaussian(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la función gaussiana.
Pds::Matrix Exp(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función exponente.
Pds::Matrix Tanh(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la función tangente hiperbólico.
Pds::Matrix LeakyReLU(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la función ReLU.
Pds::Matrix SoftPlus(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la función SoftPlus.
bool SquareErrorInBatchBlock(const Pds::BatchBlock &A, const Pds::BatchBlock &B, double &S)
Calcula el Square Error entre A y B.
double Hbn(double x)
Retorna el resultado de evaluar la función Entropia binária natural.
Pds::Matrix Round(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función round.
Pds::Matrix Sigmoid(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la función sigmoid.
Pds::Matrix Atan2(const Pds::Matrix &A, const Pds::Matrix &B)
Retorna el resultado de evaluar elemento a elemento la función atan2.
double Phi(double x)
Calcula el valor de la función .
Pds::Matrix Cos(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función coseno.
double Sum(const Pds::Matrix &A)
Calcula el valor de la suma de los elementos de la matriz A.
Pds::Matrix HardMax(const Pds::Matrix &X)
Retorna el resultado de evaluar la función HardMax (ArgMax in Machine learning).
double qExp(double x, double q)
Retorna el resultado de evaluar la función q-exponent de Tsallis.
double Var(const Pds::Matrix &A, double *mean)
Calcula el valor de la varianza de la matriz A.
double Probit(double p)
Calcula el valor de la función que es la inversa de Pds::CDF::Phi().
Pds::Matrix SoftSign(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la función SoftSign.
std::vector< std::vector< Pds::Matrix > > BatchBlock
Definición de un tipo de dato Pds::BatchBlock.
Definition: Matrix.hpp:8153
double Improper(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) par...
double Simpson(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,...
Nombre de espacio para Pds (Procesamiento Digital de Senales)
Definition: AbstractRV.hpp:42

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed