sig
type t
exception Invalid_conversion of SIunits.Value.t * SIunits.Unit.d
exception Invalid_units of SIunits.Value.t * SIunits.Value.t * string
val value : float -> SIunits.Unit.t -> SIunits.Value.t
val ( %< ) : float -> SIunits.Unit.t -> SIunits.Value.t
val units_of : SIunits.Value.t -> SIunits.Unit.t
val ( =. ) : float -> float -> bool
val ( =!. ) : float -> float -> bool
val float_eq : ?rel:float -> ?abs:float -> unit -> float -> float -> bool
val eq : SIunits.Value.t -> SIunits.Value.t -> bool
val ( =: ) : SIunits.Value.t -> SIunits.Value.t -> bool
val eq_units : SIunits.Value.t -> SIunits.Value.t -> bool
val ( =?: ) : SIunits.Value.t -> SIunits.Value.t -> bool
val assign : SIunits.Value.t Pervasives.ref -> SIunits.Value.t -> unit
val ( <-: ) : SIunits.Value.t Pervasives.ref -> SIunits.Value.t -> unit
val get : SIunits.Value.t Pervasives.ref -> float
val ( !: ) : SIunits.Value.t Pervasives.ref -> float
val scale_to : SIunits.Value.t -> SIunits.Unit.t -> float
val ( %> ) : SIunits.Value.t -> SIunits.Unit.t -> float
val convert :
value:float -> from:SIunits.Unit.t -> into:SIunits.Unit.t -> float
val ( +: ) : SIunits.Value.t -> SIunits.Value.t -> SIunits.Value.t
val ( -: ) : SIunits.Value.t -> SIunits.Value.t -> SIunits.Value.t
val ( *: ) : SIunits.Value.t -> SIunits.Value.t -> SIunits.Value.t
val ( /: ) : SIunits.Value.t -> SIunits.Value.t -> SIunits.Value.t
val ( *:. ) : SIunits.Value.t -> float -> SIunits.Value.t
val ( /:. ) : SIunits.Value.t -> float -> SIunits.Value.t
val ( /.: ) : float -> SIunits.Value.t -> SIunits.Value.t
end