def __init__(self, param_info, size, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self._param_info = param_info
        self.type = param_info.spec.descriptor.name
        self.defaultValue = param_info.value
        
        hLayout = QtGui.QHBoxLayout(self)
        hLayout.setMargin(0)
        hLayout.setSpacing(0)
        self.setLayout(hLayout)

        descriptor = param_info.spec.descriptor

        self.stackedEditors = QtGui.QStackedWidget()
        self.stackedEditors.setSizePolicy(QtGui.QSizePolicy.Expanding,
                                          QtGui.QSizePolicy.Maximum)
        self._exploration_widgets = []

        def add_exploration_widget(wd):
            self._exploration_widgets.append(wd)
            self.stackedEditors.addWidget(wd)

        for widget_class in get_param_explore_widget_list(descriptor):
            new_widget = widget_class(param_info, size)
            add_exploration_widget(new_widget)

        add_exploration_widget(QListInterpolationEditor(param_info, size))
        add_exploration_widget(QUserFunctionEditor(param_info, size))

        hLayout.addWidget(self.stackedEditors)

        self.selector = QParameterEditorSelector(param_info, self._exploration_widgets)
        self.connect(self.selector.actionGroup,
                     QtCore.SIGNAL('triggered(QAction*)'),
                     self.changeInterpolator)
        hLayout.addWidget(self.selector)
        self.selector.initAction()
Computes log(p(y,f))=log(p(y|f)+log(p(f)), only possible do if K is psd
dataset/ETHPy150Open VisTrails/VisTrails/vistrails/gui/modules/paramexplore.py/QParameterEditor.__init__--crossover with--dataset/ETHPy150Open karlnapf/kameleon-mcmc/kameleon_mcmc/gp/GaussianProcess.py/GaussianProcess.log_posterior_unnormalised