Module L.Num

type scalar = scalar
type 'a repr = 'a repr
type 'a t = 'a t
val constant : Csir.Scalar.t -> scalar repr t
val zero : scalar repr t
val one : scalar repr t
val range_check : nb_bits:int -> scalar repr -> unit repr t
val custom : ?qc:Csir.Scalar.t -> ?ql:Csir.Scalar.t -> ?qr:Csir.Scalar.t -> ?qo:Csir.Scalar.t -> ?qm:Csir.Scalar.t -> ?qx2b:Csir.Scalar.t -> ?qx5a:Csir.Scalar.t -> scalar repr -> scalar repr -> scalar repr t
val assert_custom : ?qc:Csir.Scalar.t -> ?ql:Csir.Scalar.t -> ?qr:Csir.Scalar.t -> ?qo:Csir.Scalar.t -> ?qm:Csir.Scalar.t -> scalar repr -> scalar repr -> scalar repr -> unit repr t
val add_constant : ?ql:Csir.Scalar.t -> Csir.Scalar.t -> scalar repr -> scalar repr t
val mul : ?qm:Csir.Scalar.t -> scalar repr -> scalar repr -> scalar repr t
val div : ?den_coeff:Csir.Scalar.t -> scalar repr -> scalar repr -> scalar repr t
val pow5 : scalar repr -> scalar repr t
val is_zero : scalar repr -> bool repr t
val is_not_zero : scalar repr -> bool repr t
val assert_nonzero : scalar repr -> unit repr t
val assert_bool : scalar repr -> unit repr t
val square : scalar repr -> scalar repr t
val pow : scalar repr -> bool repr list -> scalar repr t
val add_list : ?qc:Csir.Scalar.t -> ?coeffs:Csir.Scalar.t list -> scalar list repr -> scalar repr t
val mul_list : scalar list repr -> scalar repr t
val mul_by_constant : Csir.Scalar.t -> scalar repr -> scalar repr t
val scalar_of_bytes : bool list repr -> scalar repr t
val is_eq_const : scalar repr -> Csir.Scalar.t -> bool repr t
val assert_eq_const : scalar repr -> Csir.Scalar.t -> unit repr t
val is_upper_bounded : bound:Z.t -> scalar repr -> bool repr t
val is_upper_bounded_unsafe : ?nb_bits:int -> bound:Z.t -> scalar repr -> bool repr t
val geq : (scalar repr * Z.t) -> (scalar repr * Z.t) -> bool repr t