Back to Eqiora docs Skip to main content

discrete_trajectory_adjoint

Function discrete_trajectory_adjoint 

pub fn discrete_trajectory_adjoint<R>(
    steps: &[&R],
    checkpoints: &[DiscreteAdjointCheckpoint],
    terminal_state_cotangent: &[f64],
    direct_parameter_cotangent: &[f64],
    residual_tolerance: f64,
    properties: LinearOperatorProperties,
    solver: LinearSolveRequest<'_>,
) -> Result<DiscreteTrajectoryAdjoint, Diagnostic>
Description

Compose reverse-mode cotangents over accepted discrete step relations.

Every step must use the direct-sum Parameter layout [previous_state, common model Parameters]. State/Parameter identity, accepted boundary values, time continuity, checkpoint boundaries, and all primal residuals are validated before the first transposed solve.

terminal_state_cotangent is J_y_final^T; direct_parameter_cotangent is the trajectory objective’s direct J_p. The returned gradient never differentiates nonlinear iterations, adaptive controllers, or checkpoint serialization.

§Errors

Returns EQ0704 for an empty/discontinuous trajectory, incompatible layouts, invalid checkpoint boundary, unaccepted primal step, or objective shape/value mismatch; solver diagnostics remain unchanged.