123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412(**************************************************************************)(* *)(* OCaml *)(* *)(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)(* Nicolas Ojeda Bar, LexiFi *)(* *)(* Copyright 2018 Institut National de Recherche en Informatique et *)(* en Automatique. *)(* *)(* All rights reserved. This file is distributed under the terms of *)(* the GNU Lesser General Public License version 2.1, with the *)(* special exception on linking described in the file LICENSE. *)(* *)(**************************************************************************)[@@@ocaml.flambda_o3]typet=float32externalfloat32_of_bits:int32->t@@portable="caml_float32_of_bits_bytecode""caml_float32_of_bits"[@@unboxed][@@noalloc]externalneg:(t[@local_opt])->(t[@local_opt])@@portable="%negfloat32"externaladd:(t[@local_opt])->(t[@local_opt])->(t[@local_opt])@@portable="%addfloat32"externalsub:(t[@local_opt])->(t[@local_opt])->(t[@local_opt])@@portable="%subfloat32"externalmul:(t[@local_opt])->(t[@local_opt])->(t[@local_opt])@@portable="%mulfloat32"externaldiv:(t[@local_opt])->(t[@local_opt])->(t[@local_opt])@@portable="%divfloat32"externalpow:t->t->t@@portable="caml_power_float32_bytecode""powf"[@@unboxed][@@noalloc]moduleOperators=structexternal(~-.):(t[@local_opt])->(t[@local_opt])@@portable="%negfloat32"external(+.):(t[@local_opt])->(t[@local_opt])->(t[@local_opt])@@portable="%addfloat32"external(-.):(t[@local_opt])->(t[@local_opt])->(t[@local_opt])@@portable="%subfloat32"external(*.):(t[@local_opt])->(t[@local_opt])->(t[@local_opt])@@portable="%mulfloat32"external(/.):(t[@local_opt])->(t[@local_opt])->(t[@local_opt])@@portable="%divfloat32"external(**):t->t->t@@portable="caml_power_float32_bytecode""powf"[@@unboxed][@@noalloc]endexternalfma:t->t->t->t@@portable="caml_fma_float32_bytecode""fmaf"[@@unboxed][@@noalloc]externalrem:t->t->t@@portable="caml_fmod_float32_bytecode""fmodf"[@@unboxed][@@noalloc]externalabs:(t[@local_opt])->(t[@local_opt])@@portable="%absfloat32"letzero=0.sletone=1.sletminus_one=-1.sletinfinity=float32_of_bits0x7f800000lletneg_infinity=float32_of_bits0xff800000lletquiet_nan=float32_of_bits0x7fc00001lletsignaling_nan=float32_of_bits0x7f800001lletnan=quiet_nanletis_finite(x:t)=subxx=0.sletis_infinite(x:t)=div1.sx=0.sletis_nan(x:t)=x<>xletpi=0x1.921fb6p+1sletmax_float=float32_of_bits0x7f7ffffflletmin_float=float32_of_bits0x00800000lletepsilon=float32_of_bits0x34000000lexternalof_int:int->t@@portable="%float32ofint"externalto_int:(t[@local_opt])->int@@portable="%intoffloat32"externalof_float:(float[@local_opt])->t@@portable="%float32offloat"externalto_float:(t[@local_opt])->float@@portable="%floatoffloat32"externalof_int64:(int64[@local_opt])->t@@portable="caml_float32_of_int64_bytecode""caml_float32_of_int64"[@@unboxed][@@noalloc][@@builtin]externalto_int64:(t[@local_opt])->int64@@portable="caml_float32_to_int64_bytecode""caml_float32_to_int64"[@@unboxed][@@noalloc][@@builtin]externalof_bits:(int32[@local_opt])->t@@portable="caml_float32_of_bits_bytecode""caml_float32_of_bits"[@@unboxed][@@noalloc][@@builtin]externalto_bits:(t[@local_opt])->int32@@portable="caml_float32_to_bits_bytecode""caml_float32_to_bits"[@@unboxed][@@noalloc][@@builtin]externalof_string:string->t@@portable="caml_float32_of_string"letof_string_opts=trySome(of_strings)withFailure_->Noneexternalformat:string->t->string@@portable="caml_format_float32"letto_stringf=Stdlib.valid_float_lexem(format"%.9g"f)typefpclass=Stdlib.fpclass=|FP_normal|FP_subnormal|FP_zero|FP_infinite|FP_nanexternalclassify_float:(t[@unboxed])->fpclass@@portable="caml_classify_float32_bytecode""caml_classify_float32"[@@noalloc]externalsqrt:t->t@@portable="caml_sqrt_float32_bytecode""sqrtf"[@@unboxed][@@noalloc][@@builtin]externalcbrt:t->t@@portable="caml_cbrt_float32_bytecode""cbrtf"[@@unboxed][@@noalloc]externalexp:t->t@@portable="caml_exp_float32_bytecode""expf"[@@unboxed][@@noalloc]externalexp2:t->t@@portable="caml_exp2_float32_bytecode""exp2f"[@@unboxed][@@noalloc]externallog:t->t@@portable="caml_log_float32_bytecode""logf"[@@unboxed][@@noalloc]externallog10:t->t@@portable="caml_log10_float32_bytecode""log10f"[@@unboxed][@@noalloc]externallog2:t->t@@portable="caml_log2_float32_bytecode""log2f"[@@unboxed][@@noalloc]externalexpm1:t->t@@portable="caml_expm1_float32_bytecode""expm1f"[@@unboxed][@@noalloc]externallog1p:t->t@@portable="caml_log1p_float32_bytecode""log1pf"[@@unboxed][@@noalloc]externalcos:t->t@@portable="caml_cos_float32_bytecode""cosf"[@@unboxed][@@noalloc]externalsin:t->t@@portable="caml_sin_float32_bytecode""sinf"[@@unboxed][@@noalloc]externaltan:t->t@@portable="caml_tan_float32_bytecode""tanf"[@@unboxed][@@noalloc]externalacos:t->t@@portable="caml_acos_float32_bytecode""acosf"[@@unboxed][@@noalloc]externalasin:t->t@@portable="caml_asin_float32_bytecode""asinf"[@@unboxed][@@noalloc]externalatan:t->t@@portable="caml_atan_float32_bytecode""atanf"[@@unboxed][@@noalloc]externalatan2:t->t->t@@portable="caml_atan2_float32_bytecode""atan2f"[@@unboxed][@@noalloc]externalhypot:t->t->t@@portable="caml_hypot_float32_bytecode""hypotf"[@@unboxed][@@noalloc]externalcosh:t->t@@portable="caml_cosh_float32_bytecode""coshf"[@@unboxed][@@noalloc]externalsinh:t->t@@portable="caml_sinh_float32_bytecode""sinhf"[@@unboxed][@@noalloc]externaltanh:t->t@@portable="caml_tanh_float32_bytecode""tanhf"[@@unboxed][@@noalloc]externalacosh:t->t@@portable="caml_acosh_float32_bytecode""acoshf"[@@unboxed][@@noalloc]externalasinh:t->t@@portable="caml_asinh_float32_bytecode""asinhf"[@@unboxed][@@noalloc]externalatanh:t->t@@portable="caml_atanh_float32_bytecode""atanhf"[@@unboxed][@@noalloc]externalerf:t->t@@portable="caml_erf_float32_bytecode""erff"[@@unboxed][@@noalloc]externalerfc:t->t@@portable="caml_erfc_float32_bytecode""erfcf"[@@unboxed][@@noalloc]externaltrunc:t->t@@portable="caml_trunc_float32_bytecode""truncf"[@@unboxed][@@noalloc]externalround:t->t@@portable="caml_round_float32_bytecode""roundf"[@@unboxed][@@noalloc]externalceil:t->t@@portable="caml_ceil_float32_bytecode""ceilf"[@@unboxed][@@noalloc]externalfloor:t->t@@portable="caml_floor_float32_bytecode""floorf"[@@unboxed][@@noalloc]letis_integerx=x=truncx&&is_finitexexternalnext_after:t->t->t@@portable="caml_nextafter_float32_bytecode""nextafterf"[@@unboxed][@@noalloc]letsuccx=next_afterxinfinityletpredx=next_afterxneg_infinityexternalcopy_sign:t->t->t@@portable="caml_copysign_float32_bytecode""copysignf"[@@unboxed][@@noalloc]externalsign_bit:(t[@unboxed])->bool@@portable="caml_signbit_float32_bytecode""caml_signbit_float32"[@@noalloc]externalfrexp:t->t*int@@portable="caml_frexp_float32"externalldexp:(t[@unboxed])->(int[@untagged])->(t[@unboxed])@@portable="caml_ldexp_float32_bytecode""caml_ldexp_float32"[@@noalloc]externalmodf:t->t*t@@portable="caml_modf_float32"externalcompare:t->t->int@@portable="%compare"letequalxy=comparexy=0let[@inline]min(x:t)(y:t)=ify>x||((not(sign_bity))&&sign_bitx)thenifis_nanythenyelsexelseifis_nanxthenxelseylet[@inline]max(x:t)(y:t)=ify>x||((not(sign_bity))&&sign_bitx)thenifis_nanxthenxelseyelseifis_nanythenyelsexmoduleWith_weird_nan_behavior=structexternalmin:t->t->t@@portable="caml_simd_float32_min_bytecode""caml_simd_float32_min"[@@noalloc][@@unboxed][@@builtin]externalmax:t->t->t@@portable="caml_simd_float32_max_bytecode""caml_simd_float32_max"[@@noalloc][@@unboxed][@@builtin]endlet[@inline]min_max(x:t)(y:t)=ifis_nanx||is_nanythen(nan,nan)elseify>x||((not(sign_bity))&&sign_bitx)then(x,y)else(y,x)let[@inline]min_num(x:t)(y:t)=ify>x||((not(sign_bity))&&sign_bitx)thenifis_nanxthenyelsexelseifis_nanythenxelseylet[@inline]max_num(x:t)(y:t)=ify>x||((not(sign_bity))&&sign_bitx)thenifis_nanythenxelseyelseifis_nanxthenyelsexlet[@inline]min_max_num(x:t)(y:t)=ifis_nanxthen(y,y)elseifis_nanythen(x,x)elseify>x||((not(sign_bity))&&sign_bitx)then(x,y)else(y,x)externaliround_current:t->int64@@portable="caml_simd_cast_float32_int64_bytecode""caml_simd_cast_float32_int64"[@@noalloc][@@unboxed][@@builtin]externalround_current:(t[@unboxed])->(t[@unboxed])@@portable="caml_simd_float32_round_current_bytecode""caml_simd_float32_round_current"[@@noalloc][@@builtin]externalround_down:(t[@unboxed])->(t[@unboxed])@@portable="caml_simd_float32_round_neg_inf_bytecode""caml_simd_float32_round_neg_inf"[@@noalloc][@@builtin]externalround_up:(t[@unboxed])->(t[@unboxed])@@portable="caml_simd_float32_round_pos_inf_bytecode""caml_simd_float32_round_pos_inf"[@@noalloc][@@builtin]externalround_towards_zero:(t[@unboxed])->(t[@unboxed])@@portable="caml_simd_float32_round_towards_zero_bytecode""caml_simd_float32_round_towards_zero"[@@noalloc][@@builtin]externalseeded_hash_param:int->int->int->'a->int@@portable="caml_hash_exn"[@@noalloc]letseeded_hashseedx=seeded_hash_param10100seedxlethashx=seeded_hash_param101000xmoduleBytes=structexternalget:bytes->pos:int->float32@@portable="%caml_bytes_getf32"externalunsafe_get:bytes->pos:int->float32@@portable="%caml_bytes_getf32u"externalset:bytes->pos:int->float32->unit@@portable="%caml_bytes_setf32"externalunsafe_set:bytes->pos:int->float32->unit@@portable="%caml_bytes_setf32u"endmoduleString=structexternalget:string->pos:int->float32@@portable="%caml_string_getf32"externalunsafe_get:string->pos:int->float32@@portable="%caml_string_getf32u"endmoduleBigstring=structopenBigarraytypet=(char,int8_unsigned_elt,c_layout)Array1.texternalget:t->pos:int->float32@@portable="%caml_bigstring_getf32"externalunsafe_get:t->pos:int->float32@@portable="%caml_bigstring_getf32u"externalset:t->pos:int->float32->unit@@portable="%caml_bigstring_setf32"externalunsafe_set:t->pos:int->float32->unit@@portable="%caml_bigstring_setf32u"endmoduleBigarray=structopenBigarraymoduleArray1=structexternalget:('a,float32_elt,'c)Array1.t->int->float32@@portable="%caml_ba_float32_ref_1"externalset:('a,float32_elt,'c)Array1.t->int->float32->unit@@portable="%caml_ba_float32_set_1"externalunsafe_get:('a,float32_elt,'c)Array1.t->int->float32@@portable="%caml_ba_float32_unsafe_ref_1"externalunsafe_set:('a,float32_elt,'c)Array1.t->int->float32->unit@@portable="%caml_ba_float32_unsafe_set_1"endmoduleArray2=structexternalget:('a,float32_elt,'c)Array2.t->int->int->float32@@portable="%caml_ba_float32_ref_2"externalset:('a,float32_elt,'c)Array2.t->int->int->float32->unit@@portable="%caml_ba_float32_set_2"externalunsafe_get:('a,float32_elt,'c)Array2.t->int->int->float32@@portable="%caml_ba_float32_unsafe_ref_2"externalunsafe_set:('a,float32_elt,'c)Array2.t->int->int->float32->unit@@portable="%caml_ba_float32_unsafe_set_2"endmoduleArray3=structexternalget:('a,float32_elt,'c)Array3.t->int->int->int->float32@@portable="%caml_ba_float32_ref_3"externalset:('a,float32_elt,'c)Array3.t->int->int->int->float32->unit@@portable="%caml_ba_float32_set_3"externalunsafe_get:('a,float32_elt,'c)Array3.t->int->int->int->float32@@portable="%caml_ba_float32_unsafe_ref_3"externalunsafe_set:('a,float32_elt,'c)Array3.t->int->int->int->float32->unit@@portable="%caml_ba_float32_unsafe_set_3"endend