# Source code for GPy.inference.latent_function_inference.grid_posterior

# Copyright (c) 2012-2014, GPy authors (see AUTHORS.txt).

# Kurt Cutajar

import numpy as np

[docs]class GridPosterior(object):
"""
Specially intended for the Grid Regression case
An object to represent a Gaussian posterior over latent function values, p(f|D).

The purpose of this class is to serve as an interface between the inference
schemes and the model classes.

"""
def __init__(self, alpha_kron=None, QTs=None, Qs=None, V_kron=None):
"""
alpha_kron :
QTs : transpose of eigen vectors resulting from decomposition of single dimension covariance matrices
Qs : eigen vectors resulting from decomposition of single dimension covariance matrices
V_kron : kronecker product of eigenvalues reulting decomposition of single dimension covariance matrices
"""

if ((alpha_kron is not None) and (QTs is not None)
and (Qs is not None) and (V_kron is not None)):
pass # we have sufficient to compute the posterior
else:
raise ValueError("insufficient information for predictions")

self._alpha_kron = alpha_kron
self._qTs = QTs
self._qs = Qs
self._v_kron = V_kron

@property
def alpha(self):
"""
"""
return self._alpha_kron

@property
def QTs(self):
"""
array of transposed eigenvectors resulting for single dimension covariance
"""
return self._qTs

@property
def Qs(self):
"""
array of eigenvectors resulting for single dimension covariance
"""
return self._qs

@property
def V_kron(self):
"""
kronecker product of eigenvalues s
"""
return self._v_kron