pub(crate) fn root_public_values_digest<C, H>(
    builder: &mut Builder<C>,
    public_values: &RecursionPublicValues<Felt<C::F>>,
) -> [Felt<C::F>; DIGEST_SIZE]
where
    C: CircuitConfig,
    H: Posedion2BabyBearHasherVariable<C>,
{
    let input = public_values
        .sp1_vk_digest
        .into_iter()
        .chain(public_values.committed_value_digest.into_iter().flat_map(|word| word.0.into_iter()))
        .collect::<Vec<_>>();
    H::poseidon2_hash(builder, &input)
}
Compute the digest of the root public values.
crates/recursion/circuit/src/machine/public_values.rs