Home | Develop | Download | Contact
example_matrixmath.cpp

Programa para el testeo de las funciones.

Programa para el testeo de las funciones.Para compilar o código example_matrixmath.cpp:

g++ -static -o example_matrixmath example_matrixmath.cpp -lpdsramm

Para executar o programa:

./example_matrixmath

Retornando por consola:

A:
 0.78539816339745 0.78539816339745
 0.78539816339745 0.78539816339745
sin(A):
 0.70710678118655 0.70710678118655
 0.70710678118655 0.70710678118655
cos(A):
 0.70710678118655 0.70710678118655
 0.70710678118655 0.70710678118655
tan(A):
 1 1
 1 1

A:
 1 1
 1 1
exp(A):
 2.718281828459 2.718281828459
 2.718281828459 2.718281828459
TwoExp(A):
 2 2
 2 2
ln(A):
 0 0
 0 0
log2A):
 0 0
 0 0
log10(A):
 0 0
 0 0

A:
 2 2
 2 2
sqrt(A):
 1.4142135623731 1.4142135623731
 1.4142135623731 1.4142135623731

A:
 -2 -1  0  1  2
sqnl(A):
    -1 -0.75     0  0.75     1
gaussian(A):
 0.018315638888734  0.36787944117144                 1  0.36787944117144 0.018315638888734
tanh(A):
 -0.96402758007582 -0.76159415595576                 0  0.76159415595576  0.96402758007582
sigmoid(A):
 0.11920292202212    0.26894142137              0.5    0.73105857863 0.88079707797788
logit(sigmoid(A)):
 -2 -1  0  1  2
sinc(A):
 0.45464871341284  0.8414709848079                1  0.8414709848079 0.45464871341284

A:
 0.84018771676347 0.39438292663544 0.78309922339395 0.79844003310427 0.91164735751227
Hb(A):
  0.6338602873708  0.9675698350791 0.75446789805827 0.72503707875216 0.43094711768241

A:
  0.29243617614415 0.092202507641789  -1.0743635946361 -0.65705834043996  -2.4575761653009
round(A):
  0  0 -1 -1 -2
sign(A):
  1  1 -1 -1 -1

B1:
 0 1 0 1 1 1 1 1 0 1
 1 1 1 0 1 1 0 1 1 1
 1 1 0 1 0 1 0 1 0 1
 1 0 0 1 0 1 1 1 1 0
 1 1 1 1 1 1 0 0 0 1
 1 1 0 1 1 1 1 1 0 0
 0 1 0 1 1 1 1 1 0 0
 1 1 0 1 1 0 1 1 0 1
 0 1 0 1 0 1 1 0 0 1
 0 1 1 1 1 0 1 1 1 1
B2:
 1 0 1 1 0 1 1 1 0 0
 0 0 1 0 1 1 1 0 1 1
 0 1 0 1 0 1 0 1 0 1
 1 0 0 0 0 0 0 1 1 0
 1 1 1 1 0 0 0 1 1 0
 1 0 1 0 1 0 1 1 0 0
 1 1 1 0 0 1 0 0 1 0
 1 0 0 1 0 0 0 0 0 1
 0 0 0 0 0 0 0 0 0 0
 1 1 0 0 1 0 1 0 1 0
B1.IsEqualTo(B2):
 0 0 0 1 0 1 1 1 1 0
 0 0 1 1 1 1 0 0 1 1
 0 1 1 1 1 1 1 1 1 1
 1 1 1 0 1 0 0 1 1 1
 1 1 1 1 0 0 1 0 0 0
 1 0 0 0 1 0 1 1 1 1
 0 1 0 0 0 1 0 0 0 1
 1 0 1 1 0 1 0 0 1 1
 1 0 1 0 1 0 0 1 1 0
 0 1 0 0 1 1 1 0 1 0
              B1.CountRoundEqualIn(B2): 57
                   B1.Accuracy(B2,0.5): 0.57
                  Pds::Accuracy(B1,B2): 0.57
Pds::AccuracyBatchBlock({{B1}},{{B2}}): 0.57
                      B1.NAccuracy(B2): 0.57
                 Pds::NAccuracy(B1,B2): 0.57
Pds::SignNZ(+1)1
Pds::SignNZ( 0)1
Pds::SignNZ(-1)-1

Código example_matrixmath.cpp:

#include <Pds/Ra>
int main(void)
{
A.Print("\nA:\n");
Pds::Sin(A).Print("sin(A):\n");
Pds::Cos(A).Print("cos(A):\n");
Pds::Tan(A).Print("tan(A):\n");
A.Fill(1.0);
A.Print("\nA:\n");
Pds::Exp(A).Print("exp(A):\n");
Pds::TwoExp(A).Print("TwoExp(A):\n");
Pds::Ln(A).Print("ln(A):\n");
Pds::Log2(A).Print("log2A):\n");
Pds::Log10(A).Print("log10(A):\n");
A.Fill(2.0);
A.Print("\nA:\n");
Pds::Sqrt(A).Print("sqrt(A):\n");
A=Pds::LinSpace(-2,2,5).T();
A.Print("\nA:\n");
Pds::SQNL(A).Print("sqnl(A):\n");
Pds::Gaussian(A).Print("gaussian(A):\n");
Pds::Tanh(A).Print("tanh(A):\n");
Pds::Sigmoid(A).Print("sigmoid(A):\n");
Pds::Logit(Pds::Sigmoid(A)).Print("logit(sigmoid(A)):\n");
Pds::Sinc(A).Print("sinc(A):\n");
A.FillRandU();
A.Print("\nA:\n");
Pds::Hb(A).Print("Hb(A):\n");
A.FillRandN();
A.Print("\nA:\n");
Pds::Round(A).Print("round(A):\n");
Pds::Sign(A).Print("sign(A):\n");
Pds::Matrix B1(10,10);
Pds::Matrix B2(10,10);
B1.FillRandC(0.7);
B2.FillRandC(0.5);
std::cout<<std::endl;
B1.Print("B1:\n");
B2.Print("B2:\n");
B1.EqualTo(B2).Print("B1.IsEqualTo(B2):\n");
std::cout<<" B1.CountRoundEqualIn(B2): "<<B1.CountRoundEqualIn(B2)<<std::endl;
std::cout<<" B1.Accuracy(B2,0.5): "<<B1.Accuracy(B2,0.5)<<std::endl;
std::cout<<" Pds::Accuracy(B1,B2): "<<Pds::Accuracy(B1,B2)<<std::endl;
std::cout<<"Pds::AccuracyBatchBlock({{B1}},{{B2}}): "<<Pds::AccuracyBatchBlock({{B1}},{{B2}})<<std::endl;
std::cout<<" B1.NAccuracy(B2): "<<B1.NAccuracy(B2)<<std::endl;
std::cout<<" Pds::NAccuracy(B1,B2): "<<Pds::NAccuracy(B1,B2)<<std::endl;
std::cout<<"Pds::SignNZ(+1)"<<Pds::SignNZ(+1)<<"\n";
std::cout<<"Pds::SignNZ( 0)"<<Pds::SignNZ( 0)<<"\n";
std::cout<<"Pds::SignNZ(-1)"<<Pds::SignNZ(-1)<<"\n";
return 0;
}
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
Definition: Matrix.hpp:96
const double ToRadians
Factor de conversión de grados sexagesimales a radianes.
Definition: RaDefines.hpp:238
Vector LinSpace(double start, double end, unsigned int N)
Retorna un vector con elementos desde start hasta end con N elementos.
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 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 Tan(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función tangente.
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 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.
Pds::Matrix SQNL(const Pds::Matrix &X)
Retorna el resultado de evaluar elemento a elemento la función SQNL.
Pds::Matrix Log2(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función logaritmo de base 2.
Pds::Matrix Sqrt(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función raiz cuadrada.
double Sign(double x)
Retorna el resultado de evaluar la función Sign.
Pds::Matrix Ln(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función logaritmo natural.
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.
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 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 Cos(const Pds::Matrix &A)
Retorna el resultado de evaluar elemento a elemento la función coseno.
Pds::Matrix EqualTo(double b) const
[Elemento a elemento] Calcula con sigo mismo (A), si (A) es identico a un valor b y el resultado es c...
double NAccuracy(const Pds::Matrix &B) const
Calcula el valor de la Accuracy entre los elementos de las matrices A (Self) y B. Antes de comprarar ...
double Accuracy(const Pds::Matrix &B, double Umbral) const
Calcula el valor de la Accuracy entre los elementos de las matrices A (Self) y B. Antes de comprarar ...
long int CountRoundEqualIn(const Pds::Matrix &B) const
Calcula el número de elementos enteros iguales entre las matrices A y B.
bool Fill(Pds::AbstractRV &RV)
Inicializa la matriz con un valor aleatório.
bool FillRandU(void)
Inicializa la matriz con números aleatórios, distribuidos uniformemente, desde 0 a 1....
Pds::Matrix T(void) const
Transpuesta de si mismo (A), el resultado es cargado en B.
bool FillRandC(double p1)
Inicializa la matriz con números aleatórios unos y ceros, la probabilidad de 1 es p1.
bool FillRandN(void)
Inicializa la matriz con números aleatórios, distribuidos usando una distribución Gaussiana normaliza...
void Print(const std::string &str, unsigned int precision) const
Imprime en pantalla el contenido de la matriz después del texto indicado en str.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed