diff --git a/src/lib/crypto/kimchi_backend/common/field.ml b/src/lib/crypto/kimchi_backend/common/field.ml index 91d76aa71ff..77af0a352b1 100644 --- a/src/lib/crypto/kimchi_backend/common/field.ml +++ b/src/lib/crypto/kimchi_backend/common/field.ml @@ -37,6 +37,8 @@ module type Input_intf = sig val is_square : t -> bool + val compare : t -> t -> int + val equal : t -> t -> bool val print : t -> unit @@ -194,7 +196,7 @@ module Make (F : Input_intf) : let hash = Hash.of_fold hash_fold_t - let compare t1 t2 = Bigint.compare (to_bigint t1) (to_bigint t2) + let compare = compare let equal = equal diff --git a/src/lib/crypto/kimchi_backend/kimchi_backend.mli b/src/lib/crypto/kimchi_backend/kimchi_backend.mli index b2fb42a082b..eb9baab3a9d 100644 --- a/src/lib/crypto/kimchi_backend/kimchi_backend.mli +++ b/src/lib/crypto/kimchi_backend/kimchi_backend.mli @@ -11,8 +11,6 @@ module Kimchi_backend_common : sig val sexp_of_t : t -> Sexplib0.Sexp.t - val compare : t -> t -> int - val bin_size_t : t Bin_prot.Size.sizer val bin_write_t : t Bin_prot.Write.writer @@ -56,6 +54,8 @@ module Kimchi_backend_common : sig val is_square : t -> bool + val compare : t -> t -> int + val equal : t -> t -> bool val print : t -> unit diff --git a/src/lib/crypto/kimchi_bindings/stubs/src/arkworks/pasta_fp.rs b/src/lib/crypto/kimchi_bindings/stubs/src/arkworks/pasta_fp.rs index 3d9144f1303..08264921088 100644 --- a/src/lib/crypto/kimchi_bindings/stubs/src/arkworks/pasta_fp.rs +++ b/src/lib/crypto/kimchi_bindings/stubs/src/arkworks/pasta_fp.rs @@ -31,7 +31,7 @@ impl CamlFp { unsafe extern "C" fn ocaml_compare(x: ocaml::Raw, y: ocaml::Raw) -> i32 { let x = x.as_pointer::(); let y = y.as_pointer::(); - match x.as_ref().0.cmp(&y.as_ref().0) { + match x.as_ref().0.into_repr().cmp(&y.as_ref().0.into_repr()) { core::cmp::Ordering::Less => -1, core::cmp::Ordering::Equal => 0, core::cmp::Ordering::Greater => 1, @@ -240,7 +240,7 @@ pub fn caml_pasta_fp_mut_square(mut x: ocaml::Pointer) { #[ocaml_gen::func] #[ocaml::func] pub fn caml_pasta_fp_compare(x: ocaml::Pointer, y: ocaml::Pointer) -> ocaml::Int { - match x.as_ref().0.cmp(&y.as_ref().0) { + match x.as_ref().0.into_repr().cmp(&y.as_ref().0.into_repr()) { Less => -1, Equal => 0, Greater => 1, diff --git a/src/lib/crypto/kimchi_bindings/stubs/src/arkworks/pasta_fq.rs b/src/lib/crypto/kimchi_bindings/stubs/src/arkworks/pasta_fq.rs index 8fbca9da595..bc81f5962a6 100644 --- a/src/lib/crypto/kimchi_bindings/stubs/src/arkworks/pasta_fq.rs +++ b/src/lib/crypto/kimchi_bindings/stubs/src/arkworks/pasta_fq.rs @@ -36,7 +36,7 @@ impl CamlFq { unsafe extern "C" fn ocaml_compare(x: ocaml::Raw, y: ocaml::Raw) -> i32 { let x = x.as_pointer::(); let y = y.as_pointer::(); - match x.as_ref().0.cmp(&y.as_ref().0) { + match x.as_ref().0.into_repr().cmp(&y.as_ref().0.into_repr()) { core::cmp::Ordering::Less => -1, core::cmp::Ordering::Equal => 0, core::cmp::Ordering::Greater => 1, @@ -241,7 +241,7 @@ pub fn caml_pasta_fq_mut_square(mut x: ocaml::Pointer) { #[ocaml_gen::func] #[ocaml::func] pub fn caml_pasta_fq_compare(x: ocaml::Pointer, y: ocaml::Pointer) -> ocaml::Int { - match x.as_ref().0.cmp(&y.as_ref().0) { + match x.as_ref().0.into_repr().cmp(&y.as_ref().0.into_repr()) { Less => -1, Equal => 0, Greater => 1,