24 using namespace shogun;
25 using namespace Eigen;
61 "Exact inference method can only use Gaussian likelihood function\n")
63 "Labels must be type of CRegressionLabels\n")
105 float64_t result=(eigen_y-eigen_m).dot(eigen_alpha)/2.0+
106 eigen_L.diagonal().array().log().sum()+
m_L.
num_rows*
183 a=L.triangularView<Upper>().adjoint().solve(eigen_y-eigen_m);
184 a=L.triangularView<Upper>().solve(a);
200 Map<VectorXd> eigen_mu(m_mu.
vector, m_mu.
vlen);
218 MatrixXd eigen_V=eigen_L.triangularView<Upper>().adjoint().solve(
240 eigen_Q=eigen_L.triangularView<Upper>().adjoint().solve(
242 eigen_Q=eigen_L.triangularView<Upper>().solve(eigen_Q);
248 eigen_Q-=eigen_alpha*eigen_alpha.transpose();
254 REQUIRE(!strcmp(param->
m_name,
"scale"),
"Can't compute derivative of "
255 "the nagative log marginal likelihood wrt %s.%s parameter\n",
264 result[0]=(eigen_Q.cwiseProduct(eigen_K)*
m_scale*2.0).
sum()/2.0;
272 REQUIRE(!strcmp(param->
m_name,
"sigma"),
"Can't compute derivative of "
273 "the nagative log marginal likelihood wrt %s.%s parameter\n",
288 result[0]=
CMath::sq(sigma)*eigen_Q.trace();
305 "Length of the parameter %s should not be NULL\n", param->
m_name)
343 "Length of the parameter %s should not be NULL\n", param->
m_name)
361 Map<VectorXd> eigen_dmu(dmu.
vector, dmu.
vlen);
364 result[i]=-eigen_dmu.
dot(eigen_alpha);