void GenericMatrixCovarianceFunction<P_V,P_M,Q_V,Q_M>::covMatrix(const P_V& positionVector1, const P_V& positionVector2, Q_M& imageMatrix) const { if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 54)) { *m_env.subDisplayFile() << "Entering GenericMatrixCovarianceFunction<P_V,P_M,Q_V,Q_M>::covMatrix()" << std::endl; } unsigned int matrixOrder = m_imageSet.vectorSpace().dimLocal(); queso_require_equal_to_msg(imageMatrix.numRowsLocal(), matrixOrder, "imageMatrix has invalid number of rows"); queso_require_equal_to_msg(imageMatrix.numCols(), matrixOrder, "imageMatrix has invalid number of columns"); queso_require_msg(m_covRoutinePtr, "m_covRoutinePtr = NULL"); m_covRoutinePtr(positionVector1, positionVector2, m_routineDataPtr, imageMatrix); if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 54)) { *m_env.subDisplayFile() << "Leaving GenericMatrixCovarianceFunction<P_V,P_M,Q_V,Q_M>::covMatrix()" << std::endl; } return; }
void ExponentialMatrixCovarianceFunction<P_V,P_M,Q_V,Q_M>::covMatrix(const P_V& domainVector1, const P_V& domainVector2, Q_M& imageMatrix) const { if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 54)) { *m_env.subDisplayFile() << "Entering ExponentialMatrixCovarianceFunction<P_V,P_M,Q_V,Q_M>::covMatrix()" << std::endl; } unsigned int matrixOrder = m_imageSet.vectorSpace().dimLocal(); queso_require_equal_to_msg(imageMatrix.numRowsLocal(), matrixOrder, "imageMatrix has invalid number of rows"); queso_require_equal_to_msg(imageMatrix.numCols(), matrixOrder, "imageMatrix has invalid number of columns"); double tmpSq = -(domainVector1 - domainVector2).norm2Sq(); for (unsigned int i = 0; i < matrixOrder; ++i) { for (unsigned int j = 0; j < matrixOrder; ++j) { double tmp = tmpSq/( (*m_sigmas)(i,j) * (*m_sigmas)(i,j) ); imageMatrix(i,j) = (*m_as)(i,j) * std::exp(tmp); } } if ((m_env.subDisplayFile()) && (m_env.displayVerbosity() >= 54)) { *m_env.subDisplayFile() << "Leaving ExponentialMatrixCovarianceFunction<P_V,P_M,Q_V,Q_M>::covMatrix()" << std::endl; } return; }