Ocaml_simd_avx.Float64x2include module type of struct include Ocaml_simd_sse.Float64x2 endval box : t -> float64x2 @@ portableval unbox : float64x2 @ local -> t @@ portableval zero : unit -> t @@ portableEquivalent to const1 #0.0.
val one : unit -> t @@ portableEquivalent to const1 #1.0.
val set1 : float -> t @@ portable_mm_set1_pd Compiles to shufpd.
val set : float -> float -> t @@ portable_mm_set_pd Compiles to unpckl.
val const1 : float -> t @@ portableArgument must be a literal or an unboxing function applied to a literal. Compiles to a static vector literal. Exposed as an external so user code can compile without cross-library inlining.
val const : float -> float -> t @@ portableArguments must be literals or unboxing functions applied to literals. Compiles to a static vector literal. Exposed as an external so user code can compile without cross-library inlining.
module String = Ocaml_simd_sse.Float64x2.Stringmodule Bytes = Ocaml_simd_sse.Float64x2.Bytesmodule Bigstring = Ocaml_simd_sse.Float64x2.Bigstringmodule Float_array = Ocaml_simd_sse.Float64x2.Float_arraymodule Float_iarray = Ocaml_simd_sse.Float64x2.Float_iarraymodule Floatarray = Ocaml_simd_sse.Float64x2.Floatarraymodule Float_u_array = Ocaml_simd_sse.Float64x2.Float_u_arrayval movemask : mask -> int64 @@ portable_mm_movemask_pd
val bitmask : mask -> int64x2 @@ portableIdentity.
_mm_blendv_pd Only reads the sign bit of each mask lane. Selects the element from pass if the sign bit is 1, otherwise fail.
idx must be in 0,1. Compiles to shufpd,branch,blendpd.
val extract : idx:int64 -> t -> float @@ portableidx must be in 0,1. Compiles to branch,shufpd.
val extract0 : t -> float @@ portableProjection. Has no runtime cost.
val splat : t -> #(float * float) @@ portableSlow, intended for debugging / printing / etc.
val blend : Ocaml_simd.Blend2.t -> t -> t -> t @@ portable_mm_blend_pd Specify blend with ppx_simd: %blend N, N, where each N is in 0,1. Exposed as an external so user code can compile without cross-library inlining.
val shuffle : Ocaml_simd.Shuffle2.t -> t -> t -> t @@ portable_mm_shuffle_pd Specify shuffle with ppx_simd: %shuffle N, N, where each N is in 0,1. Exposed as an external so user code can compile without cross-library inlining.
_mm_min_pd Equivalent to pointwise (x < y ? x : y). If either lane is NaN, the second lane is returned.
_mm_max_pd Equivalent to pointwise (x > y ? x : y). If either lane is NaN, the second lane is returned.
val iround_current : t -> int32x4 @@ portable_mm_cvtpd_epi32
val unsafe_of_float : float -> t @@ portableIdentity; leaves upper 64 bits unspecified.
val of_float16x8_bits : float16x8 -> t @@ portableIdentity in the bit representation. Different numeric interpretation.
val of_float32x4_bits : float32x4 -> t @@ portableIdentity in the bit representation. Different numeric interpretation.
val of_int8x16_bits : int8x16 -> t @@ portableIdentity in the bit representation. Different numeric interpretation.
val of_int16x8_bits : int16x8 -> t @@ portableIdentity in the bit representation. Different numeric interpretation.
val of_int32x4_bits : int32x4 -> t @@ portableIdentity in the bit representation. Different numeric interpretation.
val of_int64x2_bits : int64x2 -> t @@ portableIdentity in the bit representation. Different numeric interpretation.
val of_int32x4 : int32x4 -> t @@ portable_mm_cvtepi32_pd
val of_float32x4 : float32x4 -> t @@ portable_mm_cvtps_pd
val to_string : t -> string @@ portableCompiles to splat, sprintf.
val of_string : string -> t @@ portableCompiles to sscanf, set. Expects a string in the output format of to_string.
module Raw : sig ... endval permute : Ocaml_simd.Permute2.t -> t -> t @@ portable_mm_permute_pd Specify permute with ppx_simd: %permute N, N, where each N is in 0,1. Permutes elements within the vector.
Example: %permute 1, 0 swaps the two elements. Exposed as an external so user code can compile without cross-library inlining.
_mm_permutevar_pd Variable permute using runtime indices. Each index value controls which element to select (only low bit used: 0 or 1).
Example: if idx = [1, 0] and input is [a, b], result is [b, a].
_mm_fmadd_pd. Computes x * y + z without intermediate rounding.
_mm_fmsub_pd. Computes x * y - z without intermediate rounding.
_mm_fnmadd_pd. Computes -(x * y) + z without intermediate rounding.
_mm_fnmsub_pd. Computes -(x * y) - z without intermediate rounding.
_mm_fmaddsub_pd. Computes the following expression without intermediate rounding.
mul_add_sub x y z = ((x.(0) * y.(0)) - z.(0), (x.(1) * y.(1)) + z.(1))_mm_fmsubadd_pd. Computes the following expression without intermediate rounding.
mul_sub_add x y z = ((x.(0) * y.(0)) + z.(0), (x.(1) * y.(1)) - z.(1))val of_float64x4 : float64x4 -> t @@ portableIdentity. Extracts the low 128 bits from a 256-bit float64x4 vector.
Example: if input is [a, b, c, d], result is [a, b].