Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> read_cov_L(const Eigen::Array<T, Eigen::Dynamic, 1>& CPCs, const Eigen::Array<T, Eigen::Dynamic, 1>& sds, T& log_prob) { size_t K = sds.rows(); // adjust due to transformation from correlations to covariances log_prob += (sds.log().sum() + LOG_2) * K; return sds.matrix().asDiagonal() * read_corr_L(CPCs, K, log_prob); }
Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> operator() ( const Eigen::Array<Scalar, Rows, Cols>& a, const Eigen::Array<Scalar, Rows, Cols>& b) { return a.matrix() * b.matrix().transpose(); }