- double* b = (double*)malloc(k*sizeof(double));
- double* Phi = (double*)malloc(p*m*k*sizeof(double));
- double* Rho = (double*)malloc(m*m*k*sizeof(double));
- double* Pi = (double*)malloc(k*sizeof(double));
- double* gam2 = (double*)malloc(k*sizeof(double));
- double* pi2 = (double*)malloc(k*sizeof(double));
- double* Gram2 = (double*)malloc(p*p*k*sizeof(double));
- double* ps = (double*)malloc(m*k*sizeof(double));
- double* nY2 = (double*)malloc(m*k*sizeof(double));
- double* ps1 = (double*)malloc(n*m*k*sizeof(double));
- double* ps2 = (double*)malloc(p*m*k*sizeof(double));
- double* nY21 = (double*)malloc(n*m*k*sizeof(double));
- double* Gam = (double*)malloc(n*k*sizeof(double));
- double* X2 = (double*)malloc(n*p*k*sizeof(double));
- double* Y2 = (double*)malloc(n*m*k*sizeof(double));
+ Real* b = (Real*)malloc(k*sizeof(Real));
+ Real* Phi = (Real*)malloc(p*m*k*sizeof(Real));
+ Real* Rho = (Real*)malloc(m*m*k*sizeof(Real));
+ Real* Pi = (Real*)malloc(k*sizeof(Real));
+ Real* gam2 = (Real*)malloc(k*sizeof(Real));
+ Real* pi2 = (Real*)malloc(k*sizeof(Real));
+ Real* Gram2 = (Real*)malloc(p*p*k*sizeof(Real));
+ Real* ps = (Real*)malloc(m*k*sizeof(Real));
+ Real* nY2 = (Real*)malloc(m*k*sizeof(Real));
+ Real* ps1 = (Real*)malloc(n*m*k*sizeof(Real));
+ Real* ps2 = (Real*)malloc(p*m*k*sizeof(Real));
+ Real* nY21 = (Real*)malloc(n*m*k*sizeof(Real));
+ Real* Gam = (Real*)malloc(n*k*sizeof(Real));
+ Real* X2 = (Real*)malloc(n*p*k*sizeof(Real));
+ Real* Y2 = (Real*)malloc(n*m*k*sizeof(Real));
+ Real* sqNorm2 = (Real*)malloc(k*sizeof(Real));