5 #ifndef __ZETH_CIRCUITS_MIMC_MIMC_INPUT_HASHER_HPP__ 
    6 #define __ZETH_CIRCUITS_MIMC_MIMC_INPUT_HASHER_HPP__ 
    8 #include <libsnark/gadgetlib1/gadget.hpp> 
   16 template<
typename FieldT, 
typename compFnT>
 
   21     libsnark::pb_variable<FieldT> _result;
 
   24     std::vector<std::shared_ptr<compFnT>> _compression_functions;
 
   27     libsnark::pb_variable_array<FieldT> _intermediate_values;
 
   31         libsnark::protoboard<FieldT> &pb,
 
   32         const libsnark::pb_linear_combination_array<FieldT> &inputs,
 
   33         const libsnark::pb_variable<FieldT> hash_output,
 
   34         const std::string &annotation_prefix);
 
   40     static FieldT 
compute_hash(
const std::vector<FieldT> &values);
 
   47 #endif // __ZETH_CIRCUITS_MIMC_MIMC_INPUT_HASHER_HPP__