Expr FNVAlgo::fnv1a(VC& checker, const Expr& hash, const Expr& prime, const Expr& octet) { const int width = getVWidth(hash); assert(width == getVWidth(prime)); assert(width == getVWidth(octet)); Expr result = hash; result = vc_bvXorExpr(checker, result, octet); result = vc_bvMultExpr(checker, getVWidth(hash), result, prime); return result; }
value caml_vc_bvXorExpr(value vc, value e1, value e2) { CAMLparam3(vc,e1,e2); CAMLreturn(alloc_Expr(vc_bvXorExpr(VC_val(vc),Expr_val(e1),Expr_val(e2)))); }