use super::*;
use super::joint_hyper::ExternalJointHyperEvaluator;
impl<'a> ExternalJointHyperEvaluator<'a> {
pub fn debug_full_h(
&mut self,
x: &DesignMatrix,
s_list: &[BlockwisePenalty],
nullspace_dims: &[usize],
linear_constraints: Option<crate::pirls::LinearInequalityConstraints>,
theta: &Array1<f64>,
rho_dim: usize,
context: &str,
) -> Result<Array2<f64>, EstimationError> {
if rho_dim > theta.len() {
crate::bail_invalid_estim!(
"rho_dim {} exceeds theta dimension {}",
rho_dim,
theta.len()
);
}
self.prepare_eval_state_cost_only(
x,
s_list,
nullspace_dims,
linear_constraints,
theta,
rho_dim,
None,
context,
None,
)?;
let rho = theta.slice(s![..rho_dim]).to_owned();
self.reml_state.compute_cost(&rho)?;
self.reml_state.objective_innerhessian(&rho)
}
}