123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186moduletypeS=sigvalexp:float->floatvalexpm1:float->floatvallog:float->floatvallog1p:float->floatvalcos:float->floatvalsin:float->floatvaltan:float->floatvalcospi:float->floatvalsinpi:float->floatvaltanpi:float->floatvalasin:float->floatvalacos:float->floatvalatan:float->floatvalasinpi:float->floatvalacospi:float->floatvalatanpi:float->floatvalcosh:float->floatvalsinh:float->floatvallog2:float->floatvallog10:float->floatendexternalcrlibm_init:unit->unit="caml_crlibm_init"[@@noalloc]externalcrlibm_exit:unit->unit="caml_crlibm_exit"[@@noalloc]let()=crlibm_init();at_exitcrlibm_exit(* Order of the definitions is the same as in crlibm/crlibm.h *)externalexp:float->float="exp_rn_bc""exp_rn"[@@unboxed][@@noalloc]externallog:float->float="log_rn_bc""log_rn"[@@unboxed][@@noalloc]externalcos:float->float="cos_rn_bc""cos_rn"[@@unboxed][@@noalloc]externalsin:float->float="sin_rn_bc""sin_rn"[@@unboxed][@@noalloc]externaltan:float->float="tan_rn_bc""tan_rn"[@@unboxed][@@noalloc]externalcospi:float->float="cospi_rn_bc""cospi_rn"[@@unboxed][@@noalloc]externalsinpi:float->float="sinpi_rn_bc""sinpi_rn"[@@unboxed][@@noalloc]externaltanpi:float->float="tanpi_rn_bc""tanpi_rn"[@@unboxed][@@noalloc]externalatan:float->float="atan_rn_bc""atan_rn"[@@unboxed][@@noalloc]externalatanpi:float->float="atanpi_rn_bc""atanpi_rn"[@@unboxed][@@noalloc]externalcosh:float->float="cosh_rn_bc""cosh_rn"[@@unboxed][@@noalloc]externalsinh:float->float="sinh_rn_bc""sinh_rn"[@@unboxed][@@noalloc]externallog2:float->float="log2_rn_bc""log2_rn"[@@unboxed][@@noalloc]externallog10:float->float="log10_rn_bc""log10_rn"[@@unboxed][@@noalloc]externalasin:float->float="asin_rn_bc""asin_rn"[@@unboxed][@@noalloc]externalacos:float->float="acos_rn_bc""acos_rn"[@@unboxed][@@noalloc]externalasinpi:float->float="asinpi_rn_bc""asinpi_rn"[@@unboxed][@@noalloc]externalacospi:float->float="acospi_rn_bc""acospi_rn"[@@unboxed][@@noalloc]externalexpm1:float->float="expm1_rn_bc""expm1_rn"[@@unboxed][@@noalloc]externallog1p:float->float="log1p_rn_bc""log1p_rn"[@@unboxed][@@noalloc]externalpow:float->float->float="pow_rn_bc""pow_rn"[@@unboxed][@@noalloc]moduleRoundDown=structexternalexp:float->float="exp_rd_bc""exp_rd"[@@unboxed][@@noalloc]externallog:float->float="log_rd_bc""log_rd"[@@unboxed][@@noalloc]externalcos:float->float="cos_rd_bc""cos_rd"[@@unboxed][@@noalloc]externalsin:float->float="sin_rd_bc""sin_rd"[@@unboxed][@@noalloc]externaltan:float->float="tan_rd_bc""tan_rd"[@@unboxed][@@noalloc]externalcospi:float->float="cospi_rd_bc""cospi_rd"[@@unboxed][@@noalloc]externalsinpi:float->float="sinpi_rd_bc""sinpi_rd"[@@unboxed][@@noalloc]externaltanpi:float->float="tanpi_rd_bc""tanpi_rd"[@@unboxed][@@noalloc]externalatan:float->float="atan_rd_bc""atan_rd"[@@unboxed][@@noalloc]externalatanpi:float->float="atanpi_rd_bc""atanpi_rd"[@@unboxed][@@noalloc]externalcosh:float->float="cosh_rd_bc""cosh_rd"[@@unboxed][@@noalloc]externalsinh:float->float="sinh_rd_bc""sinh_rd"[@@unboxed][@@noalloc]externallog2:float->float="log2_rd_bc""log2_rd"[@@unboxed][@@noalloc]externallog10:float->float="log10_rd_bc""log10_rd"[@@unboxed][@@noalloc]externalasin:float->float="asin_rd_bc""asin_rd"[@@unboxed][@@noalloc]externalacos:float->float="acos_rd_bc""acos_rd"[@@unboxed][@@noalloc]externalasinpi:float->float="asinpi_rd_bc""asinpi_rd"[@@unboxed][@@noalloc]externalacospi:float->float="acospi_rd_bc""acospi_rd"[@@unboxed][@@noalloc]externalexpm1:float->float="expm1_rd_bc""expm1_rd"[@@unboxed][@@noalloc]externallog1p:float->float="log1p_rd_bc""log1p_rd"[@@unboxed][@@noalloc]endmoduleLow=RoundDownmoduleRoundUp=structexternalexp:float->float="exp_ru_bc""exp_ru"[@@unboxed][@@noalloc]externallog:float->float="log_ru_bc""log_ru"[@@unboxed][@@noalloc]externalcos:float->float="cos_ru_bc""cos_ru"[@@unboxed][@@noalloc]externalsin:float->float="sin_ru_bc""sin_ru"[@@unboxed][@@noalloc]externaltan:float->float="tan_ru_bc""tan_ru"[@@unboxed][@@noalloc]externalcospi:float->float="cospi_ru_bc""cospi_ru"[@@unboxed][@@noalloc]externalsinpi:float->float="sinpi_ru_bc""sinpi_ru"[@@unboxed][@@noalloc]externaltanpi:float->float="tanpi_ru_bc""tanpi_ru"[@@unboxed][@@noalloc]externalatan:float->float="atan_ru_bc""atan_ru"[@@unboxed][@@noalloc]externalatanpi:float->float="atanpi_ru_bc""atanpi_ru"[@@unboxed][@@noalloc]externalcosh:float->float="cosh_ru_bc""cosh_ru"[@@unboxed][@@noalloc]externalsinh:float->float="sinh_ru_bc""sinh_ru"[@@unboxed][@@noalloc]externallog2:float->float="log2_ru_bc""log2_ru"[@@unboxed][@@noalloc]externallog10:float->float="log10_ru_bc""log10_ru"[@@unboxed][@@noalloc]externalasin:float->float="asin_ru_bc""asin_ru"[@@unboxed][@@noalloc]externalacos:float->float="acos_ru_bc""acos_ru"[@@unboxed][@@noalloc]externalasinpi:float->float="asinpi_ru_bc""asinpi_ru"[@@unboxed][@@noalloc]externalacospi:float->float="acospi_ru_bc""acospi_ru"[@@unboxed][@@noalloc]externalexpm1:float->float="expm1_ru_bc""expm1_ru"[@@unboxed][@@noalloc]externallog1p:float->float="log1p_ru_bc""log1p_ru"[@@unboxed][@@noalloc]endmoduleHigh=RoundUpmoduleRoundToZero=structexternalexp:float->float="exp_rd_bc""exp_rd"[@@unboxed][@@noalloc]externallog:float->float="log_rz_bc""log_rz"[@@unboxed][@@noalloc]externalcos:float->float="cos_rz_bc""cos_rz"[@@unboxed][@@noalloc]externalsin:float->float="sin_rz_bc""sin_rz"[@@unboxed][@@noalloc]externaltan:float->float="tan_rz_bc""tan_rz"[@@unboxed][@@noalloc]externalcospi:float->float="cospi_rz_bc""cospi_rz"[@@unboxed][@@noalloc]externalsinpi:float->float="sinpi_rz_bc""sinpi_rz"[@@unboxed][@@noalloc]externaltanpi:float->float="tanpi_rz_bc""tanpi_rz"[@@unboxed][@@noalloc]externalatan:float->float="atan_rz_bc""atan_rz"[@@unboxed][@@noalloc]externalatanpi:float->float="atanpi_rz_bc""atanpi_rz"[@@unboxed][@@noalloc]externalcosh:float->float="cosh_rz_bc""cosh_rz"[@@unboxed][@@noalloc]externalsinh:float->float="sinh_rz_bc""sinh_rz"[@@unboxed][@@noalloc]externallog2:float->float="log2_rz_bc""log2_rz"[@@unboxed][@@noalloc]externallog10:float->float="log10_rz_bc""log10_rz"[@@unboxed][@@noalloc]externalasin:float->float="asin_rz_bc""asin_rz"[@@unboxed][@@noalloc]externalacos:float->float="acos_rd_bc""acos_rd"[@@unboxed][@@noalloc]externalasinpi:float->float="asinpi_rz_bc""asinpi_rz"[@@unboxed][@@noalloc]externalacospi:float->float="acospi_rd_bc""acospi_rd"[@@unboxed][@@noalloc]externalexpm1:float->float="expm1_rz_bc""expm1_rz"[@@unboxed][@@noalloc]externallog1p:float->float="log1p_rz_bc""log1p_rz"[@@unboxed][@@noalloc]endmoduleZero=RoundToZero