21 using namespace shogun;
34 return "LocalityPreservingProjections";
50 D_diag_vector[i] += W_matrix[i*N+j];
59 W_matrix[i*N+i] += D_diag_vector[i];
66 cblas_dgemm(CblasColMajor,CblasNoTrans,CblasNoTrans,dim,N,N,1.0,feature_matrix.
matrix,dim,W_matrix.
matrix,N,0.0,XTM,dim);
67 cblas_dgemm(CblasColMajor,CblasNoTrans,CblasTrans,dim,dim,N,1.0,XTM,dim,feature_matrix.
matrix,dim,0.0,lhs_M,dim);
70 cblas_dscal(dim,D_diag_vector[i],feature_matrix.
matrix+i*dim,1);
72 cblas_dgemm(CblasColMajor,CblasNoTrans,CblasTrans,dim,dim,N,1.0,feature_matrix.
matrix,dim,feature_matrix.
matrix,dim,0.0,rhs_M,dim);
75 cblas_dscal(dim,1.0/D_diag_vector[i],feature_matrix.
matrix+i*dim,1);
81 arpack_dsxupd(lhs_M,rhs_M,
false,dim,
m_target_dim,
"LA",
false,3,
true,
false,-1e-9,0.0,
84 wrap_dsygvx(1,
'V',
'U',dim,lhs_M,dim,rhs_M,dim,dim-
m_target_dim+1,dim,evals,evectors,&info);
89 if (info!=0)
SG_ERROR(
"Failed to solve eigenproblem (%d)\n",info);
91 cblas_dgemm(CblasColMajor,CblasTrans,CblasNoTrans,N,
m_target_dim,dim,1.0,feature_matrix.
matrix,dim,evectors,dim,0.0,XTM,N);
98 new_features[j*m_target_dim+i] = XTM[i*N+j];