Replace uses of "float" by [@@unboxed] [@@noalloc]

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16456 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
master
Jérémie Dimino 2015-10-06 10:58:24 +00:00
parent 62b89a3a5c
commit 1b219582a0
6 changed files with 115 additions and 67 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -112,31 +112,47 @@ external ( +. ) : float -> float -> float = "%addfloat"
external ( -. ) : float -> float -> float = "%subfloat" external ( -. ) : float -> float -> float = "%subfloat"
external ( *. ) : float -> float -> float = "%mulfloat" external ( *. ) : float -> float -> float = "%mulfloat"
external ( /. ) : float -> float -> float = "%divfloat" external ( /. ) : float -> float -> float = "%divfloat"
external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float" external ( ** ) : float -> float -> float = "caml_power_float" "pow"
external exp : float -> float = "caml_exp_float" "exp" "float" [@@unboxed] [@@noalloc]
external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float" external exp : float -> float = "caml_exp_float" "exp" [@@unboxed] [@@noalloc]
external acos : float -> float = "caml_acos_float" "acos" "float" external expm1 : float -> float = "caml_expm1_float" "caml_expm1"
external asin : float -> float = "caml_asin_float" "asin" "float" [@@unboxed] [@@noalloc]
external atan : float -> float = "caml_atan_float" "atan" "float" external acos : float -> float = "caml_acos_float" "acos"
external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float" [@@unboxed] [@@noalloc]
external asin : float -> float = "caml_asin_float" "asin"
[@@unboxed] [@@noalloc]
external atan : float -> float = "caml_atan_float" "atan"
[@@unboxed] [@@noalloc]
external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
[@@unboxed] [@@noalloc]
external hypot : float -> float -> float external hypot : float -> float -> float
= "caml_hypot_float" "caml_hypot" "float" = "caml_hypot_float" "caml_hypot" [@@unboxed] [@@noalloc]
external cos : float -> float = "caml_cos_float" "cos" "float" external cos : float -> float = "caml_cos_float" "cos" [@@unboxed] [@@noalloc]
external cosh : float -> float = "caml_cosh_float" "cosh" "float" external cosh : float -> float = "caml_cosh_float" "cosh"
external log : float -> float = "caml_log_float" "log" "float" [@@unboxed] [@@noalloc]
external log10 : float -> float = "caml_log10_float" "log10" "float" external log : float -> float = "caml_log_float" "log" [@@unboxed] [@@noalloc]
external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float" external log10 : float -> float = "caml_log10_float" "log10"
external sin : float -> float = "caml_sin_float" "sin" "float" [@@unboxed] [@@noalloc]
external sinh : float -> float = "caml_sinh_float" "sinh" "float" external log1p : float -> float = "caml_log1p_float" "caml_log1p"
external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float" [@@unboxed] [@@noalloc]
external tan : float -> float = "caml_tan_float" "tan" "float" external sin : float -> float = "caml_sin_float" "sin" [@@unboxed] [@@noalloc]
external tanh : float -> float = "caml_tanh_float" "tanh" "float" external sinh : float -> float = "caml_sinh_float" "sinh"
external ceil : float -> float = "caml_ceil_float" "ceil" "float" [@@unboxed] [@@noalloc]
external floor : float -> float = "caml_floor_float" "floor" "float" external sqrt : float -> float = "caml_sqrt_float" "sqrt"
[@@unboxed] [@@noalloc]
external tan : float -> float = "caml_tan_float" "tan" [@@unboxed] [@@noalloc]
external tanh : float -> float = "caml_tanh_float" "tanh"
[@@unboxed] [@@noalloc]
external ceil : float -> float = "caml_ceil_float" "ceil"
[@@unboxed] [@@noalloc]
external floor : float -> float = "caml_floor_float" "floor"
[@@unboxed] [@@noalloc]
external abs_float : float -> float = "%absfloat" external abs_float : float -> float = "%absfloat"
external copysign : float -> float -> float external copysign : float -> float -> float
= "caml_copysign_float" "caml_copysign" "float" = "caml_copysign_float" "caml_copysign"
external mod_float : float -> float -> float = "caml_fmod_float" "fmod" "float" [@@unboxed] [@@noalloc]
external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
[@@unboxed] [@@noalloc]
external frexp : float -> float * int = "caml_frexp_float" external frexp : float -> float * int = "caml_frexp_float"
external ldexp : float -> int -> float = "caml_ldexp_float" external ldexp : float -> int -> float = "caml_ldexp_float"
external modf : float -> float * float = "caml_modf_float" external modf : float -> float * float = "caml_modf_float"

View File

@ -108,31 +108,47 @@ external ( +. ) : float -> float -> float = "%addfloat"
external ( -. ) : float -> float -> float = "%subfloat" external ( -. ) : float -> float -> float = "%subfloat"
external ( *. ) : float -> float -> float = "%mulfloat" external ( *. ) : float -> float -> float = "%mulfloat"
external ( /. ) : float -> float -> float = "%divfloat" external ( /. ) : float -> float -> float = "%divfloat"
external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float" external ( ** ) : float -> float -> float = "caml_power_float" "pow"
external exp : float -> float = "caml_exp_float" "exp" "float" [@@unboxed] [@@noalloc]
external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float" external exp : float -> float = "caml_exp_float" "exp" [@@unboxed] [@@noalloc]
external acos : float -> float = "caml_acos_float" "acos" "float" external expm1 : float -> float = "caml_expm1_float" "caml_expm1"
external asin : float -> float = "caml_asin_float" "asin" "float" [@@unboxed] [@@noalloc]
external atan : float -> float = "caml_atan_float" "atan" "float" external acos : float -> float = "caml_acos_float" "acos"
external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float" [@@unboxed] [@@noalloc]
external asin : float -> float = "caml_asin_float" "asin"
[@@unboxed] [@@noalloc]
external atan : float -> float = "caml_atan_float" "atan"
[@@unboxed] [@@noalloc]
external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
[@@unboxed] [@@noalloc]
external hypot : float -> float -> float external hypot : float -> float -> float
= "caml_hypot_float" "caml_hypot" "float" = "caml_hypot_float" "caml_hypot" [@@unboxed] [@@noalloc]
external cos : float -> float = "caml_cos_float" "cos" "float" external cos : float -> float = "caml_cos_float" "cos" [@@unboxed] [@@noalloc]
external cosh : float -> float = "caml_cosh_float" "cosh" "float" external cosh : float -> float = "caml_cosh_float" "cosh"
external log : float -> float = "caml_log_float" "log" "float" [@@unboxed] [@@noalloc]
external log10 : float -> float = "caml_log10_float" "log10" "float" external log : float -> float = "caml_log_float" "log" [@@unboxed] [@@noalloc]
external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float" external log10 : float -> float = "caml_log10_float" "log10"
external sin : float -> float = "caml_sin_float" "sin" "float" [@@unboxed] [@@noalloc]
external sinh : float -> float = "caml_sinh_float" "sinh" "float" external log1p : float -> float = "caml_log1p_float" "caml_log1p"
external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float" [@@unboxed] [@@noalloc]
external tan : float -> float = "caml_tan_float" "tan" "float" external sin : float -> float = "caml_sin_float" "sin" [@@unboxed] [@@noalloc]
external tanh : float -> float = "caml_tanh_float" "tanh" "float" external sinh : float -> float = "caml_sinh_float" "sinh"
external ceil : float -> float = "caml_ceil_float" "ceil" "float" [@@unboxed] [@@noalloc]
external floor : float -> float = "caml_floor_float" "floor" "float" external sqrt : float -> float = "caml_sqrt_float" "sqrt"
[@@unboxed] [@@noalloc]
external tan : float -> float = "caml_tan_float" "tan" [@@unboxed] [@@noalloc]
external tanh : float -> float = "caml_tanh_float" "tanh"
[@@unboxed] [@@noalloc]
external ceil : float -> float = "caml_ceil_float" "ceil"
[@@unboxed] [@@noalloc]
external floor : float -> float = "caml_floor_float" "floor"
[@@unboxed] [@@noalloc]
external abs_float : float -> float = "%absfloat" external abs_float : float -> float = "%absfloat"
external copysign : float -> float -> float external copysign : float -> float -> float
= "caml_copysign_float" "caml_copysign" "float" = "caml_copysign_float" "caml_copysign"
external mod_float : float -> float -> float = "caml_fmod_float" "fmod" "float" [@@unboxed] [@@noalloc]
external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
[@@unboxed] [@@noalloc]
external frexp : float -> float * int = "caml_frexp_float" external frexp : float -> float * int = "caml_frexp_float"
external ldexp : float -> int -> float = "caml_ldexp_float" external ldexp : float -> int -> float = "caml_ldexp_float"
external modf : float -> float * float = "caml_modf_float" external modf : float -> float * float = "caml_modf_float"

View File

@ -334,82 +334,96 @@ external ( *. ) : float -> float -> float = "%mulfloat"
external ( /. ) : float -> float -> float = "%divfloat" external ( /. ) : float -> float -> float = "%divfloat"
(** Floating-point division. *) (** Floating-point division. *)
external ( ** ) : float -> float -> float = "caml_power_float" "pow" "float" external ( ** ) : float -> float -> float = "caml_power_float" "pow"
[@@unboxed] [@@noalloc]
(** Exponentiation. *) (** Exponentiation. *)
external sqrt : float -> float = "caml_sqrt_float" "sqrt" "float" external sqrt : float -> float = "caml_sqrt_float" "sqrt"
[@@unboxed] [@@noalloc]
(** Square root. *) (** Square root. *)
external exp : float -> float = "caml_exp_float" "exp" "float" external exp : float -> float = "caml_exp_float" "exp" [@@unboxed] [@@noalloc]
(** Exponential. *) (** Exponential. *)
external log : float -> float = "caml_log_float" "log" "float" external log : float -> float = "caml_log_float" "log" [@@unboxed] [@@noalloc]
(** Natural logarithm. *) (** Natural logarithm. *)
external log10 : float -> float = "caml_log10_float" "log10" "float" external log10 : float -> float = "caml_log10_float" "log10"
[@@unboxed] [@@noalloc]
(** Base 10 logarithm. *) (** Base 10 logarithm. *)
external expm1 : float -> float = "caml_expm1_float" "caml_expm1" "float" external expm1 : float -> float = "caml_expm1_float" "caml_expm1"
[@@unboxed] [@@noalloc]
(** [expm1 x] computes [exp x -. 1.0], giving numerically-accurate results (** [expm1 x] computes [exp x -. 1.0], giving numerically-accurate results
even if [x] is close to [0.0]. even if [x] is close to [0.0].
@since 3.12.0 @since 3.12.0
*) *)
external log1p : float -> float = "caml_log1p_float" "caml_log1p" "float" external log1p : float -> float = "caml_log1p_float" "caml_log1p"
[@@unboxed] [@@noalloc]
(** [log1p x] computes [log(1.0 +. x)] (natural logarithm), (** [log1p x] computes [log(1.0 +. x)] (natural logarithm),
giving numerically-accurate results even if [x] is close to [0.0]. giving numerically-accurate results even if [x] is close to [0.0].
@since 3.12.0 @since 3.12.0
*) *)
external cos : float -> float = "caml_cos_float" "cos" "float" external cos : float -> float = "caml_cos_float" "cos" [@@unboxed] [@@noalloc]
(** Cosine. Argument is in radians. *) (** Cosine. Argument is in radians. *)
external sin : float -> float = "caml_sin_float" "sin" "float" external sin : float -> float = "caml_sin_float" "sin" [@@unboxed] [@@noalloc]
(** Sine. Argument is in radians. *) (** Sine. Argument is in radians. *)
external tan : float -> float = "caml_tan_float" "tan" "float" external tan : float -> float = "caml_tan_float" "tan" [@@unboxed] [@@noalloc]
(** Tangent. Argument is in radians. *) (** Tangent. Argument is in radians. *)
external acos : float -> float = "caml_acos_float" "acos" "float" external acos : float -> float = "caml_acos_float" "acos"
[@@unboxed] [@@noalloc]
(** Arc cosine. The argument must fall within the range [[-1.0, 1.0]]. (** Arc cosine. The argument must fall within the range [[-1.0, 1.0]].
Result is in radians and is between [0.0] and [pi]. *) Result is in radians and is between [0.0] and [pi]. *)
external asin : float -> float = "caml_asin_float" "asin" "float" external asin : float -> float = "caml_asin_float" "asin"
[@@unboxed] [@@noalloc]
(** Arc sine. The argument must fall within the range [[-1.0, 1.0]]. (** Arc sine. The argument must fall within the range [[-1.0, 1.0]].
Result is in radians and is between [-pi/2] and [pi/2]. *) Result is in radians and is between [-pi/2] and [pi/2]. *)
external atan : float -> float = "caml_atan_float" "atan" "float" external atan : float -> float = "caml_atan_float" "atan"
[@@unboxed] [@@noalloc]
(** Arc tangent. (** Arc tangent.
Result is in radians and is between [-pi/2] and [pi/2]. *) Result is in radians and is between [-pi/2] and [pi/2]. *)
external atan2 : float -> float -> float = "caml_atan2_float" "atan2" "float" external atan2 : float -> float -> float = "caml_atan2_float" "atan2"
[@@unboxed] [@@noalloc]
(** [atan2 y x] returns the arc tangent of [y /. x]. The signs of [x] (** [atan2 y x] returns the arc tangent of [y /. x]. The signs of [x]
and [y] are used to determine the quadrant of the result. and [y] are used to determine the quadrant of the result.
Result is in radians and is between [-pi] and [pi]. *) Result is in radians and is between [-pi] and [pi]. *)
external hypot : float -> float -> float external hypot : float -> float -> float = "caml_hypot_float" "caml_hypot"
= "caml_hypot_float" "caml_hypot" "float" [@@unboxed] [@@noalloc]
(** [hypot x y] returns [sqrt(x *. x + y *. y)], that is, the length (** [hypot x y] returns [sqrt(x *. x + y *. y)], that is, the length
of the hypotenuse of a right-angled triangle with sides of length of the hypotenuse of a right-angled triangle with sides of length
[x] and [y], or, equivalently, the distance of the point [(x,y)] [x] and [y], or, equivalently, the distance of the point [(x,y)]
to origin. to origin.
@since 4.00.0 *) @since 4.00.0 *)
external cosh : float -> float = "caml_cosh_float" "cosh" "float" external cosh : float -> float = "caml_cosh_float" "cosh"
[@@unboxed] [@@noalloc]
(** Hyperbolic cosine. Argument is in radians. *) (** Hyperbolic cosine. Argument is in radians. *)
external sinh : float -> float = "caml_sinh_float" "sinh" "float" external sinh : float -> float = "caml_sinh_float" "sinh"
[@@unboxed] [@@noalloc]
(** Hyperbolic sine. Argument is in radians. *) (** Hyperbolic sine. Argument is in radians. *)
external tanh : float -> float = "caml_tanh_float" "tanh" "float" external tanh : float -> float = "caml_tanh_float" "tanh"
[@@unboxed] [@@noalloc]
(** Hyperbolic tangent. Argument is in radians. *) (** Hyperbolic tangent. Argument is in radians. *)
external ceil : float -> float = "caml_ceil_float" "ceil" "float" external ceil : float -> float = "caml_ceil_float" "ceil"
[@@unboxed] [@@noalloc]
(** Round above to an integer value. (** Round above to an integer value.
[ceil f] returns the least integer value greater than or equal to [f]. [ceil f] returns the least integer value greater than or equal to [f].
The result is returned as a float. *) The result is returned as a float. *)
external floor : float -> float = "caml_floor_float" "floor" "float" external floor : float -> float = "caml_floor_float" "floor"
[@@unboxed] [@@noalloc]
(** Round below to an integer value. (** Round below to an integer value.
[floor f] returns the greatest integer value less than or [floor f] returns the greatest integer value less than or
equal to [f]. equal to [f].
@ -419,14 +433,16 @@ external abs_float : float -> float = "%absfloat"
(** [abs_float f] returns the absolute value of [f]. *) (** [abs_float f] returns the absolute value of [f]. *)
external copysign : float -> float -> float external copysign : float -> float -> float
= "caml_copysign_float" "caml_copysign" "float" = "caml_copysign_float" "caml_copysign"
[@@unboxed] [@@noalloc]
(** [copysign x y] returns a float whose absolute value is that of [x] (** [copysign x y] returns a float whose absolute value is that of [x]
and whose sign is that of [y]. If [x] is [nan], returns [nan]. and whose sign is that of [y]. If [x] is [nan], returns [nan].
If [y] is [nan], returns either [x] or [-. x], but it is not If [y] is [nan], returns either [x] or [-. x], but it is not
specified which. specified which.
@since 4.00.0 *) @since 4.00.0 *)
external mod_float : float -> float -> float = "caml_fmod_float" "fmod" "float" external mod_float : float -> float -> float = "caml_fmod_float" "fmod"
[@@unboxed] [@@noalloc]
(** [mod_float a b] returns the remainder of [a] with respect to (** [mod_float a b] returns the remainder of [a] with respect to
[b]. The returned value is [a -. n *. b], where [n] [b]. The returned value is [a -. n *. b], where [n]
is the quotient [a /. b] rounded towards zero to an integer. *) is the quotient [a /. b] rounded towards zero to an integer. *)