def log_prob(
        self, outputs: Array, targets: Array, calibrated: bool = True, **kwargs
    ) -> jnp.ndarray:
        """
        Evaluate the log-probability density function (a.k.a. log-pdf) given the outputs and target data.

        Parameters
        ----------
        outputs : Array
            Calibrated outputs.
        targets : Array
            Target data points.
        calibrated : bool
            Whether the outputs should be calibrated when computing this method. If `calibrated` is set to True, the
            model must have been calibrated beforehand.

        Returns
        -------
        jnp.ndarray
            An evaluation of the log-pdf for each data point.
        """
        if calibrated:
            self._check_calibrated()
            state = self.state.get()
            outputs = self.output_calib_manager.apply(
                params=state.params["output_calibrator"],
                outputs=outputs,
                mutable=state.mutable["output_calibrator"],
            )
        return self.prob_output_layer.log_prob(outputs, targets, **kwargs)

        Evaluate the log-probability density function (a.k.a. log-pdf) given the outputs and target data.

        Parameters
        ----------
        outputs : Array
            Calibrated outputs.
        targets : Array
            Target data points.
        calibrated : bool
            Whether the outputs should be calibrated when computing this method. If `calibrated` is set to True, the
            model must have been calibrated beforehand.

        Returns
        -------
        jnp.ndarray
            An evaluation of the log-pdf for each data point.
        
fortuna/output_calib_model/predictive/base.py