41 int dbdiv_cpu(
const int m,
const int n,
const int k,
const double *A,
double *W,
double *H,
const double beta,
const int uType,
const int nIter);
42 int sbdiv_cpu(
const int m,
const int n,
const int k,
const float *A,
float *W,
float *H,
const float beta,
const int uType,
const int nIter);
46 int dbdivg_cpu(
const int m,
const int n,
const int k,
const double *A,
double *W,
double *H,
const double beta,
const int uType,
const int nIter);
47 int sbdivg_cpu(
const int m,
const int n,
const int k,
const float *A,
float *W,
float *H,
const float beta,
const int uType,
const int nIter);
51 int dbdivone_cpu(
const int m,
const int n,
const int k,
const double *A,
double *W,
double *H,
const int uType,
const int nIter);
52 int sbdivone_cpu(
const int m,
const int n,
const int k,
const float *A,
float *W,
float *H,
const int uType,
const int nIter);
55 void dupdate1H_x86(
const int n,
const double *X,
double *__restrict__ H);
56 void supdate1H_x86(
const int n,
const float *X,
float *__restrict__ H);
58 void dupdate1W_x86(
const int m,
const int n,
const double *X,
double *__restrict__ W);
59 void supdate1W_x86(
const int m,
const int n,
const float *X,
float *__restrict__ W);
61 void dkernelH_x86(
const int m,
const int n,
const double *L,
const double *A,
double *__restrict__ R,
const double expo);
62 void skernelH_x86(
const int m,
const int n,
const float *L,
const float *A,
float *__restrict__ R,
const float expo);
64 void dkernelW_x86(
const int m,
const int n,
const double *L,
const double *A,
double *__restrict__ R,
const double expo);
65 void skernelW_x86(
const int m,
const int n,
const float *L,
const float *A,
float *__restrict__ R,
const float expo);
67 void dupdate2H_x86(
const int m,
const int n,
const double *X,
const double *B,
double *__restrict__ H);
68 void supdate2H_x86(
const int m,
const int n,
const float *X,
const float *B,
float *__restrict__ H);
70 void dupdate2W_x86(
const int m,
const int n,
const double *X,
const double *B,
double *__restrict__ W);
71 void supdate2W_x86(
const int m,
const int n,
const float *X,
const float *B,
float *__restrict__ W);
74 void derrorbd0_x86(
const int n,
const double *x,
double *__restrict__ y);
75 void serrorbd0_x86(
const int n,
const float *x,
float *__restrict__ y);
76 void derrorbd1_x86(
const int n,
const double *x,
double *__restrict__ y);
77 void serrorbd1_x86(
const int n,
const float *x,
float *__restrict__ y);
78 void derrorbdg_x86(
const int n,
const double *x,
double *__restrict__ y,
const double beta);
79 void serrorbdg_x86(
const int n,
const float *x,
float *__restrict__ y,
const float beta);
80 double derrorbd_x86(
const int m,
const int n,
const int k,
const double *A,
const double *W,
const double *H,
const double betadiv);
81 float serrorbd_x86(
const int m,
const int n,
const int k,
const float *A,
const float *W,
const float *H,
const float betadiv);
int sbdivg_cpu(const int m, const int n, const int k, const float *A, float *W, float *H, const float beta, const int uType, const int nIter)
sbdivg_cpu performs NNMF using betadivergence for general case (beta <> 1 and 2) using simple precisi...
void dupdate2W_x86(const int m, const int n, const double *X, const double *B, double *__restrict__ W)
This function performs double precision W(i)=W(i)*(B(i)/y(j))
void supdate2H_x86(const int m, const int n, const float *X, const float *B, float *__restrict__ H)
This function performs the simple H(i)=H(i)*(B(i)/y(j))
void skernelH_x86(const int m, const int n, const float *L, const float *A, float *__restrict__ R, const float expo)
This function computes simple precision R(i)=(L(i)^expo)*A[i] and R(i+m*n)=L[i]*(L(i)^expo) Note "exp...
void supdate1W_x86(const int m, const int n, const float *X, float *__restrict__ W)
This function computes double precision W[i]=W[i]*D[i]/E[i] where matrices D and E are stored in the ...
int sbdiv_cpu(const int m, const int n, const int k, const float *A, float *W, float *H, const float beta, const int uType, const int nIter)
void serrorbd0_x86(const int n, const float *x, float *__restrict__ y)
This function performs auxiliar simple precision operations when error is computed using betadivergen...
void derrorbd0_x86(const int n, const double *x, double *__restrict__ y)
This function performs auxiliar double precision operations when error is computed using betadivergen...
Header file for using utility modules from CPU/MIC source codes.
void dupdate1W_x86(const int m, const int n, const double *X, double *__restrict__ W)
void dupdate2H_x86(const int m, const int n, const double *X, const double *B, double *__restrict__ H)
This function computes double precision H(i)=H(i)*(B(i)/y(j))
double derrorbd_x86(const int m, const int n, const int k, const double *A, const double *W, const double *H, const double betadiv)
This function returns double precision error when error is computed using betadivergence error formul...
void derrorbdg_x86(const int n, const double *x, double *__restrict__ y, const double beta)
This function performs auxiliar double precision operations when error is computed using betadivergen...
void skernelW_x86(const int m, const int n, const float *L, const float *A, float *__restrict__ R, const float expo)
This function computes simple precision R(pos)=L(i)^expo)*A(i) and R(pos+m)=L(i)*(L(i)^expo) Note exp...
void dupdate1H_x86(const int n, const double *X, double *__restrict__ H)
This function computes double precision H(i)=H(i)*B(i)/C(i) where matrices B and C are stored in the ...
void supdate2W_x86(const int m, const int n, const float *X, const float *B, float *__restrict__ W)
This function computes simple precision W(i)=W(i)*(B(i)/y(j))
int dbdivone_cpu(const int m, const int n, const int k, const double *A, double *W, double *H, const int uType, const int nIter)
dbdivone_cpu performs NNMF using beta-divergence when beta=1, using double precision ...
float serrorbd_x86(const int m, const int n, const int k, const float *A, const float *W, const float *H, const float betadiv)
This function returns simple precision error when error is computed using betadivergence error formul...
void serrorbd1_x86(const int n, const float *x, float *__restrict__ y)
This function performs auxiliar simple precision operations when error is computed using betadivergen...
void serrorbdg_x86(const int n, const float *x, float *__restrict__ y, const float beta)
This function performs auxiliar simple precision operations when error is computed using betadivergen...
File with functions to calcule NNMF using the mlsa algorithm for CPUs.
void dkernelW_x86(const int m, const int n, const double *L, const double *A, double *__restrict__ R, const double expo)
This function computes double precision R(pos)=L(i)^expo)*A(i) and R(pos+m)=L(i)*(L(i)^expo) Note exp...
int dbdivg_cpu(const int m, const int n, const int k, const double *A, double *W, double *H, const double beta, const int uType, const int nIter)
dbdivg_cpu performs the NNMF using beta-divergence when beta is != 1 and !=2, using double precision...
void dkernelH_x86(const int m, const int n, const double *L, const double *A, double *__restrict__ R, const double expo)
void supdate1H_x86(const int n, const float *X, float *__restrict__ H)
This function computes simple precision H(i)=H(i)*B(i)/C(i) where matrices B and C are stored in the ...
int dbdiv_cpu(const int m, const int n, const int k, const double *A, double *W, double *H, const double beta, const int uType, const int nIter)
dbdiv_cpu is a wrapper that calls the adequate function to performs NNMF using betadivergence using d...
void derrorbd1_x86(const int n, const double *x, double *__restrict__ y)
This function performs auxiliar double precision operations when error is computed using betadivergen...
int sbdivone_cpu(const int m, const int n, const int k, const float *A, float *W, float *H, const int uType, const int nIter)
sbdivone_cpu performs NNMF using betadivergence when beta=1 using simple precision ...