pub fn circuit_generic_hash<E: Engine, CS: ConstraintSystem<E>, P: HashParams<E, RATE, WIDTH>, const RATE: usize, const WIDTH: usize, const LENGTH: usize>(
cs: &mut CS,
input: &[Num<E>; LENGTH],
params: &P,
domain_strategy: Option<DomainStrategy>,
) -> Result<[LinearCombination<E>; RATE], SynthesisError>