/* automatically generated by clay-bindgen */

alias __builtin_va_list = Pointer[CChar];

alias size_t = UInt;

alias __u_char = CUChar;

alias __u_short = UShort;

alias __u_int = UInt;

alias __u_long = CULong;

alias __int8_t = CChar;

alias __uint8_t = CUChar;

alias __int16_t = Short;

alias __uint16_t = UShort;

alias __int32_t = Int;

alias __uint32_t = UInt;

alias __int64_t = Int64;

alias __uint64_t = UInt64;

alias __quad_t = Int64;

alias __u_quad_t = UInt64;

alias __dev_t = __u_quad_t;

alias __uid_t = UInt;

alias __gid_t = UInt;

alias __ino_t = CULong;

alias __ino64_t = __u_quad_t;

alias __mode_t = UInt;

alias __nlink_t = UInt;

alias __off_t = CLong;

alias __off64_t = __quad_t;

alias __pid_t = Int;

record Struct_Unnamed1 (
    __val : Array[Int, 2],
);

alias __fsid_t = Struct_Unnamed1;

alias __clock_t = CLong;

alias __rlim_t = CULong;

alias __rlim64_t = __u_quad_t;

alias __id_t = UInt;

alias __time_t = CLong;

alias __useconds_t = UInt;

alias __suseconds_t = CLong;

alias __daddr_t = Int;

alias __swblk_t = CLong;

alias __key_t = Int;

alias __clockid_t = Int;

alias __timer_t = OpaquePointer;

alias __blksize_t = CLong;

alias __blkcnt_t = CLong;

alias __blkcnt64_t = __quad_t;

alias __fsblkcnt_t = CULong;

alias __fsblkcnt64_t = __u_quad_t;

alias __fsfilcnt_t = CULong;

alias __fsfilcnt64_t = __u_quad_t;

alias __ssize_t = Int;

alias __loff_t = __off64_t;

alias __qaddr_t = Pointer[__quad_t];

alias __caddr_t = Pointer[CChar];

alias __intptr_t = Int;

alias __socklen_t = UInt;

alias FILE = Struct__IO_FILE;

alias __FILE = Struct__IO_FILE;

record Struct_Unnamed2 (
    __count : Int,
    __value : Union_Unnamed3,
);

alias __mbstate_t = Struct_Unnamed2;

record Struct_Unnamed4 (
    __pos : __off_t,
    __state : __mbstate_t,
);

alias _G_fpos_t = Struct_Unnamed4;

record Struct_Unnamed5 (
    __pos : __off64_t,
    __state : __mbstate_t,
);

alias _G_fpos64_t = Struct_Unnamed5;

alias _G_int16_t = Short;

alias _G_int32_t = Int;

alias _G_uint16_t = UShort;

alias _G_uint32_t = UInt;

alias __gnuc_va_list = __builtin_va_list;

alias Struct__IO_jump_t = Opaque;

alias _IO_lock_t = /* unknown kind Void */ Opaque;

record Struct__IO_marker (
    _next : Pointer[Struct__IO_marker],
    _sbuf : Pointer[Struct__IO_FILE],
    _pos : Int,
);

alias Enum___codecvt_result = UInt;
alias __codecvt_ok = 0;
alias __codecvt_partial = 1;
alias __codecvt_error = 2;
alias __codecvt_noconv = 3;

record Struct__IO_FILE (
    _flags : Int,
    _IO_read_ptr : Pointer[CChar],
    _IO_read_end : Pointer[CChar],
    _IO_read_base : Pointer[CChar],
    _IO_write_base : Pointer[CChar],
    _IO_write_ptr : Pointer[CChar],
    _IO_write_end : Pointer[CChar],
    _IO_buf_base : Pointer[CChar],
    _IO_buf_end : Pointer[CChar],
    _IO_save_base : Pointer[CChar],
    _IO_backup_base : Pointer[CChar],
    _IO_save_end : Pointer[CChar],
    _markers : Pointer[Struct__IO_marker],
    _chain : Pointer[Struct__IO_FILE],
    _fileno : Int,
    _flags2 : Int,
    _old_offset : __off_t,
    _cur_column : UShort,
    _vtable_offset : CChar,
    _shortbuf : Array[CChar, 1],
    _lock : Pointer[_IO_lock_t],
    _offset : __off64_t,
    __pad1 : OpaquePointer,
    __pad2 : OpaquePointer,
    __pad3 : OpaquePointer,
    __pad4 : OpaquePointer,
    __pad5 : size_t,
    _mode : Int,
    _unused2 : Array[CChar, 40],
);

alias _IO_FILE = Struct__IO_FILE;

alias Struct__IO_FILE_plus = Opaque;

external _IO_2_1_stdin_ : Struct__IO_FILE_plus;

external _IO_2_1_stdout_ : Struct__IO_FILE_plus;

external _IO_2_1_stderr_ : Struct__IO_FILE_plus;

alias __io_read_fn = /* unknown kind FunctionProto */ Opaque;

alias __io_write_fn = /* unknown kind FunctionProto */ Opaque;

alias __io_seek_fn = /* unknown kind FunctionProto */ Opaque;

alias __io_close_fn = /* unknown kind FunctionProto */ Opaque;

external (cdecl) __underflow(arg0:Pointer[_IO_FILE]) : Int;

external (cdecl) __uflow(arg0:Pointer[_IO_FILE]) : Int;

external (cdecl) __overflow(arg0:Pointer[_IO_FILE], arg1:Int) : Int;

external (cdecl) _IO_getc(arg0:Pointer[_IO_FILE]) : Int;

external (cdecl) _IO_putc(arg0:Int, arg1:Pointer[_IO_FILE]) : Int;

external (cdecl) _IO_feof(arg0:Pointer[_IO_FILE]) : Int;

external (cdecl) _IO_ferror(arg0:Pointer[_IO_FILE]) : Int;

external (cdecl) _IO_peekc_locked(arg0:Pointer[_IO_FILE]) : Int;

external (cdecl) _IO_flockfile(arg0:Pointer[_IO_FILE]) : ;

external (cdecl) _IO_funlockfile(arg0:Pointer[_IO_FILE]) : ;

external (cdecl) _IO_ftrylockfile(arg0:Pointer[_IO_FILE]) : Int;

external (cdecl) _IO_vfscanf(arg0:Pointer[_IO_FILE], arg1:Pointer[CChar], arg2:__gnuc_va_list, arg3:Pointer[Int]) : Int;

external (cdecl) _IO_vfprintf(arg0:Pointer[_IO_FILE], arg1:Pointer[CChar], arg2:__gnuc_va_list) : Int;

external (cdecl) _IO_padn(arg0:Pointer[_IO_FILE], arg1:Int, arg2:__ssize_t) : __ssize_t;

external (cdecl) _IO_sgetn(arg0:Pointer[_IO_FILE], arg1:OpaquePointer, arg2:size_t) : size_t;

external (cdecl) _IO_seekoff(arg0:Pointer[_IO_FILE], arg1:__off64_t, arg2:Int, arg3:Int) : __off64_t;

external (cdecl) _IO_seekpos(arg0:Pointer[_IO_FILE], arg1:__off64_t, arg2:Int) : __off64_t;

external (cdecl) _IO_free_backup_area(arg0:Pointer[_IO_FILE]) : ;

alias va_list = __gnuc_va_list;

alias off_t = __off64_t;

alias ssize_t = __ssize_t;

alias fpos_t = _G_fpos64_t;

external stdin : Pointer[Struct__IO_FILE];

external stdout : Pointer[Struct__IO_FILE];

external stderr : Pointer[Struct__IO_FILE];

external (cdecl) remove(arg0:Pointer[CChar]) : Int;

external (cdecl) rename(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) renameat(arg0:Int, arg1:Pointer[CChar], arg2:Int, arg3:Pointer[CChar]) : Int;

external (cdecl, "tmpfile64") tmpfile() : Pointer[FILE];

external (cdecl) tmpnam(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) tmpnam_r(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) tempnam(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) fclose(arg0:Pointer[FILE]) : Int;

external (cdecl) fflush(arg0:Pointer[FILE]) : Int;

external (cdecl) fflush_unlocked(arg0:Pointer[FILE]) : Int;

external (cdecl, "fopen64") fopen(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[FILE];

external (cdecl, "freopen64") freopen(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[FILE]) : Pointer[FILE];

external (cdecl) fdopen(arg0:Int, arg1:Pointer[CChar]) : Pointer[FILE];

external (cdecl) fmemopen(arg0:OpaquePointer, arg1:size_t, arg2:Pointer[CChar]) : Pointer[FILE];

external (cdecl) open_memstream(arg0:Pointer[Pointer[CChar]], arg1:Pointer[size_t]) : Pointer[FILE];

external (cdecl) setbuf(arg0:Pointer[FILE], arg1:Pointer[CChar]) : ;

external (cdecl) setvbuf(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:Int, arg3:size_t) : Int;

external (cdecl) setbuffer(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:size_t) : ;

external (cdecl) setlinebuf(arg0:Pointer[FILE]) : ;

external (cdecl) fprintf(arg0:Pointer[FILE], arg1:Pointer[CChar], ..) : Int;

external (cdecl) printf(arg0:Pointer[CChar], ..) : Int;

external (cdecl) sprintf(arg0:Pointer[CChar], arg1:Pointer[CChar], ..) : Int;

external (cdecl) vfprintf(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:__gnuc_va_list) : Int;

external (cdecl) vprintf(arg0:Pointer[CChar], arg1:__gnuc_va_list) : Int;

external (cdecl) vsprintf(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:__gnuc_va_list) : Int;

external (cdecl) snprintf(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], ..) : Int;

external (cdecl) vsnprintf(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:__gnuc_va_list) : Int;

external (cdecl) vdprintf(arg0:Int, arg1:Pointer[CChar], arg2:__gnuc_va_list) : Int;

external (cdecl) dprintf(arg0:Int, arg1:Pointer[CChar], ..) : Int;

external (cdecl) fscanf(arg0:Pointer[FILE], arg1:Pointer[CChar], ..) : Int;

external (cdecl) scanf(arg0:Pointer[CChar], ..) : Int;

external (cdecl) sscanf(arg0:Pointer[CChar], arg1:Pointer[CChar], ..) : Int;

external (cdecl) vfscanf(arg0:Pointer[FILE], arg1:Pointer[CChar], arg2:__gnuc_va_list) : Int;

external (cdecl) vscanf(arg0:Pointer[CChar], arg1:__gnuc_va_list) : Int;

external (cdecl) vsscanf(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:__gnuc_va_list) : Int;

external (cdecl) fgetc(arg0:Pointer[FILE]) : Int;

external (cdecl) getc(arg0:Pointer[FILE]) : Int;

external (cdecl) getchar() : Int;

external (cdecl) getc_unlocked(arg0:Pointer[FILE]) : Int;

external (cdecl) getchar_unlocked() : Int;

external (cdecl) fgetc_unlocked(arg0:Pointer[FILE]) : Int;

external (cdecl) fputc(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) putc(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) putchar(arg0:Int) : Int;

external (cdecl) fputc_unlocked(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) putc_unlocked(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) putchar_unlocked(arg0:Int) : Int;

external (cdecl) getw(arg0:Pointer[FILE]) : Int;

external (cdecl) putw(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) fgets(arg0:Pointer[CChar], arg1:Int, arg2:Pointer[FILE]) : Pointer[CChar];

external (cdecl) gets(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) __getdelim(arg0:Pointer[Pointer[CChar]], arg1:Pointer[size_t], arg2:Int, arg3:Pointer[FILE]) : __ssize_t;

external (cdecl) getdelim(arg0:Pointer[Pointer[CChar]], arg1:Pointer[size_t], arg2:Int, arg3:Pointer[FILE]) : __ssize_t;

external (cdecl) getline(arg0:Pointer[Pointer[CChar]], arg1:Pointer[size_t], arg2:Pointer[FILE]) : __ssize_t;

external (cdecl) fputs(arg0:Pointer[CChar], arg1:Pointer[FILE]) : Int;

external (cdecl) puts(arg0:Pointer[CChar]) : Int;

external (cdecl) ungetc(arg0:Int, arg1:Pointer[FILE]) : Int;

external (cdecl) fread(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:Pointer[FILE]) : size_t;

external (cdecl) fwrite(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:Pointer[FILE]) : size_t;

external (cdecl) fread_unlocked(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:Pointer[FILE]) : size_t;

external (cdecl) fwrite_unlocked(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:Pointer[FILE]) : size_t;

external (cdecl) fseek(arg0:Pointer[FILE], arg1:CLong, arg2:Int) : Int;

external (cdecl) ftell(arg0:Pointer[FILE]) : CLong;

external (cdecl) rewind(arg0:Pointer[FILE]) : ;

external (cdecl, "fseeko64") fseeko(arg0:Pointer[FILE], arg1:__off64_t, arg2:Int) : Int;

external (cdecl, "ftello64") ftello(arg0:Pointer[FILE]) : __off64_t;

external (cdecl, "fgetpos64") fgetpos(arg0:Pointer[FILE], arg1:Pointer[fpos_t]) : Int;

external (cdecl, "fsetpos64") fsetpos(arg0:Pointer[FILE], arg1:Pointer[fpos_t]) : Int;

external (cdecl) clearerr(arg0:Pointer[FILE]) : ;

external (cdecl) feof(arg0:Pointer[FILE]) : Int;

external (cdecl) ferror(arg0:Pointer[FILE]) : Int;

external (cdecl) clearerr_unlocked(arg0:Pointer[FILE]) : ;

external (cdecl) feof_unlocked(arg0:Pointer[FILE]) : Int;

external (cdecl) ferror_unlocked(arg0:Pointer[FILE]) : Int;

external (cdecl) perror(arg0:Pointer[CChar]) : ;

external sys_nerr : Int;

external sys_errlist : Opaque /* unknown NoDeclFound  */;

external (cdecl) fileno(arg0:Pointer[FILE]) : Int;

external (cdecl) fileno_unlocked(arg0:Pointer[FILE]) : Int;

external (cdecl) popen(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[FILE];

external (cdecl) pclose(arg0:Pointer[FILE]) : Int;

external (cdecl) ctermid(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) flockfile(arg0:Pointer[FILE]) : ;

external (cdecl) ftrylockfile(arg0:Pointer[FILE]) : Int;

external (cdecl) funlockfile(arg0:Pointer[FILE]) : ;

alias wchar_t = Int;

alias Union_wait = Union[
    /* w_status */ Int,
    /* __wait_terminated */ Struct_Unnamed6,
    /* __wait_stopped */ Struct_Unnamed7,
];

alias Union_Unnamed8 = Union[
    /* __uptr */ Pointer[Union_wait],
    /* __iptr */ Pointer[Int],
];

alias __WAIT_STATUS = Union_Unnamed8;

record Struct_Unnamed9 (
    quot : Int,
    rem : Int,
);

alias div_t = Struct_Unnamed9;

record Struct_Unnamed10 (
    quot : CLong,
    rem : CLong,
);

alias ldiv_t = Struct_Unnamed10;

record Struct_Unnamed11 (
    quot : Int64,
    rem : Int64,
);

alias lldiv_t = Struct_Unnamed11;

external (cdecl) __ctype_get_mb_cur_max() : size_t;

external (cdecl) atof(arg0:Pointer[CChar]) : Double;

external (cdecl) atoi(arg0:Pointer[CChar]) : Int;

external (cdecl) atol(arg0:Pointer[CChar]) : CLong;

external (cdecl) atoll(arg0:Pointer[CChar]) : Int64;

external (cdecl) strtod(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]]) : Double;

external (cdecl) strtof(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]]) : Float;

external (cdecl) strtold(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]]) : LongDouble;

external (cdecl) strtol(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : CLong;

external (cdecl) strtoul(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : CULong;

external (cdecl) strtoq(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : Int64;

external (cdecl) strtouq(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : UInt64;

external (cdecl) strtoll(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : Int64;

external (cdecl) strtoull(arg0:Pointer[CChar], arg1:Pointer[Pointer[CChar]], arg2:Int) : UInt64;

external (cdecl) l64a(arg0:CLong) : Pointer[CChar];

external (cdecl) a64l(arg0:Pointer[CChar]) : CLong;

alias u_char = __u_char;

alias u_short = __u_short;

alias u_int = __u_int;

alias u_long = __u_long;

alias quad_t = __quad_t;

alias u_quad_t = __u_quad_t;

alias fsid_t = __fsid_t;

alias loff_t = __loff_t;

alias ino_t = __ino64_t;

alias dev_t = __dev_t;

alias gid_t = __gid_t;

alias mode_t = __mode_t;

alias nlink_t = __nlink_t;

alias uid_t = __uid_t;

alias pid_t = __pid_t;

alias id_t = __id_t;

alias daddr_t = __daddr_t;

alias caddr_t = __caddr_t;

alias key_t = __key_t;

alias clock_t = __clock_t;

alias time_t = __time_t;

alias clockid_t = __clockid_t;

alias timer_t = __timer_t;

alias ulong = CULong;

alias ushort = UShort;

alias uint = UInt;

alias int8_t = CChar;

alias int16_t = Short;

alias int32_t = Int;

alias int64_t = Int64;

alias u_int8_t = CUChar;

alias u_int16_t = UShort;

alias u_int32_t = UInt;

alias u_int64_t = UInt64;

alias register_t = Int;

alias __sig_atomic_t = Int;

record Struct_Unnamed12 (
    __val : Array[CULong, 32],
);

alias __sigset_t = Struct_Unnamed12;

alias sigset_t = __sigset_t;

record Struct_timespec (
    tv_sec : __time_t,
    tv_nsec : CLong,
);

record Struct_timeval (
    tv_sec : __time_t,
    tv_usec : __suseconds_t,
);

alias suseconds_t = __suseconds_t;

alias __fd_mask = CLong;

record Struct_Unnamed13 (
    __fds_bits : Array[__fd_mask, 32],
);

alias fd_set = Struct_Unnamed13;

alias fd_mask = __fd_mask;

external (cdecl) select(arg0:Int, arg1:Pointer[fd_set], arg2:Pointer[fd_set], arg3:Pointer[fd_set], arg4:Pointer[Struct_timeval]) : Int;

external (cdecl) pselect(arg0:Int, arg1:Pointer[fd_set], arg2:Pointer[fd_set], arg3:Pointer[fd_set], arg4:Pointer[Struct_timespec], arg5:Pointer[__sigset_t]) : Int;

external (cdecl) gnu_dev_major(arg0:UInt64) : UInt;

external (cdecl) gnu_dev_minor(arg0:UInt64) : UInt;

external (cdecl) gnu_dev_makedev(arg0:UInt, arg1:UInt) : UInt64;

alias blksize_t = __blksize_t;

alias blkcnt_t = __blkcnt64_t;

alias fsblkcnt_t = __fsblkcnt64_t;

alias fsfilcnt_t = __fsfilcnt64_t;

alias pthread_t = CULong;

alias Union_Unnamed14 = Union[
    /* __size */ Array[CChar, 36],
    /* __align */ CLong,
];

alias pthread_attr_t = Union_Unnamed14;

record Struct___pthread_internal_slist (
    __next : Pointer[Struct___pthread_internal_slist],
);

alias __pthread_slist_t = Struct___pthread_internal_slist;

alias Union_Unnamed15 = Union[
    /* __data */ Struct___pthread_mutex_s,
    /* __size */ Array[CChar, 24],
    /* __align */ CLong,
];

alias pthread_mutex_t = Union_Unnamed15;

alias Union_Unnamed16 = Union[
    /* __size */ Array[CChar, 4],
    /* __align */ Int,
];

alias pthread_mutexattr_t = Union_Unnamed16;

alias Union_Unnamed17 = Union[
    /* __data */ Struct_Unnamed18,
    /* __size */ Array[CChar, 48],
    /* __align */ Int64,
];

alias pthread_cond_t = Union_Unnamed17;

alias Union_Unnamed19 = Union[
    /* __size */ Array[CChar, 4],
    /* __align */ Int,
];

alias pthread_condattr_t = Union_Unnamed19;

alias pthread_key_t = UInt;

alias pthread_once_t = Int;

alias Union_Unnamed20 = Union[
    /* __data */ Struct_Unnamed21,
    /* __size */ Array[CChar, 32],
    /* __align */ CLong,
];

alias pthread_rwlock_t = Union_Unnamed20;

alias Union_Unnamed22 = Union[
    /* __size */ Array[CChar, 8],
    /* __align */ CLong,
];

alias pthread_rwlockattr_t = Union_Unnamed22;

alias pthread_spinlock_t = Int;

alias Union_Unnamed23 = Union[
    /* __size */ Array[CChar, 20],
    /* __align */ CLong,
];

alias pthread_barrier_t = Union_Unnamed23;

alias Union_Unnamed24 = Union[
    /* __size */ Array[CChar, 4],
    /* __align */ Int,
];

alias pthread_barrierattr_t = Union_Unnamed24;

external (cdecl) random() : CLong;

external (cdecl) srandom(arg0:UInt) : ;

external (cdecl) initstate(arg0:UInt, arg1:Pointer[CChar], arg2:size_t) : Pointer[CChar];

external (cdecl) setstate(arg0:Pointer[CChar]) : Pointer[CChar];

record Struct_random_data (
    fptr : Pointer[int32_t],
    rptr : Pointer[int32_t],
    state : Pointer[int32_t],
    rand_type : Int,
    rand_deg : Int,
    rand_sep : Int,
    end_ptr : Pointer[int32_t],
);

external (cdecl) random_r(arg0:Pointer[Struct_random_data], arg1:Pointer[int32_t]) : Int;

external (cdecl) srandom_r(arg0:UInt, arg1:Pointer[Struct_random_data]) : Int;

external (cdecl) initstate_r(arg0:UInt, arg1:Pointer[CChar], arg2:size_t, arg3:Pointer[Struct_random_data]) : Int;

external (cdecl) setstate_r(arg0:Pointer[CChar], arg1:Pointer[Struct_random_data]) : Int;

external (cdecl) rand() : Int;

external (cdecl) srand(arg0:UInt) : ;

external (cdecl) rand_r(arg0:Pointer[UInt]) : Int;

external (cdecl) drand48() : Double;

external (cdecl) erand48(arg0:Pointer[UShort]) : Double;

external (cdecl) lrand48() : CLong;

external (cdecl) nrand48(arg0:Pointer[UShort]) : CLong;

external (cdecl) mrand48() : CLong;

external (cdecl) jrand48(arg0:Pointer[UShort]) : CLong;

external (cdecl) srand48(arg0:CLong) : ;

external (cdecl) seed48(arg0:Pointer[UShort]) : Pointer[UShort];

external (cdecl) lcong48(arg0:Pointer[UShort]) : ;

record Struct_drand48_data (
    __x : Array[UShort, 3],
    __old_x : Array[UShort, 3],
    __c : UShort,
    __init : UShort,
    __a : UInt64,
);

external (cdecl) drand48_r(arg0:Pointer[Struct_drand48_data], arg1:Pointer[Double]) : Int;

external (cdecl) erand48_r(arg0:Pointer[UShort], arg1:Pointer[Struct_drand48_data], arg2:Pointer[Double]) : Int;

external (cdecl) lrand48_r(arg0:Pointer[Struct_drand48_data], arg1:Pointer[CLong]) : Int;

external (cdecl) nrand48_r(arg0:Pointer[UShort], arg1:Pointer[Struct_drand48_data], arg2:Pointer[CLong]) : Int;

external (cdecl) mrand48_r(arg0:Pointer[Struct_drand48_data], arg1:Pointer[CLong]) : Int;

external (cdecl) jrand48_r(arg0:Pointer[UShort], arg1:Pointer[Struct_drand48_data], arg2:Pointer[CLong]) : Int;

external (cdecl) srand48_r(arg0:CLong, arg1:Pointer[Struct_drand48_data]) : Int;

external (cdecl) seed48_r(arg0:Pointer[UShort], arg1:Pointer[Struct_drand48_data]) : Int;

external (cdecl) lcong48_r(arg0:Pointer[UShort], arg1:Pointer[Struct_drand48_data]) : Int;

external (cdecl) malloc(arg0:size_t) : OpaquePointer;

external (cdecl) calloc(arg0:size_t, arg1:size_t) : OpaquePointer;

external (cdecl) realloc(arg0:OpaquePointer, arg1:size_t) : OpaquePointer;

external (cdecl) free(arg0:OpaquePointer) : ;

external (cdecl) cfree(arg0:OpaquePointer) : ;

external (cdecl) alloca(arg0:size_t) : OpaquePointer;

external (cdecl) valloc(arg0:size_t) : OpaquePointer;

external (cdecl) posix_memalign(arg0:Pointer[OpaquePointer], arg1:size_t, arg2:size_t) : Int;

external (cdecl) abort() : ;

external (cdecl) atexit(arg0:CCodePointer[[],[]]) : Int;

external (cdecl) on_exit(arg0:CCodePointer[[Int, OpaquePointer],[]], arg1:OpaquePointer) : Int;

external (cdecl) exit(arg0:Int) : ;

external (cdecl) _Exit(arg0:Int) : ;

external (cdecl) getenv(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) __secure_getenv(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) putenv(arg0:Pointer[CChar]) : Int;

external (cdecl) setenv(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Int) : Int;

external (cdecl) unsetenv(arg0:Pointer[CChar]) : Int;

external (cdecl) clearenv() : Int;

external (cdecl) mktemp(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl, "mkstemp64") mkstemp(arg0:Pointer[CChar]) : Int;

external (cdecl, "mkstemps64") mkstemps(arg0:Pointer[CChar], arg1:Int) : Int;

external (cdecl) mkdtemp(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) system(arg0:Pointer[CChar]) : Int;

external (cdecl) realpath(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

alias __compar_fn_t = CCodePointer[[OpaquePointer, OpaquePointer],[Int]];

external (cdecl) bsearch(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t, arg3:size_t, arg4:__compar_fn_t) : OpaquePointer;

external (cdecl) qsort(arg0:OpaquePointer, arg1:size_t, arg2:size_t, arg3:__compar_fn_t) : ;

external (cdecl) abs(arg0:Int) : Int;

external (cdecl) labs(arg0:CLong) : CLong;

external (cdecl) llabs(arg0:Int64) : Int64;

external (cdecl) div(arg0:Int, arg1:Int) : div_t;

external (cdecl) ldiv(arg0:CLong, arg1:CLong) : ldiv_t;

external (cdecl) lldiv(arg0:Int64, arg1:Int64) : lldiv_t;

external (cdecl) ecvt(arg0:Double, arg1:Int, arg2:Pointer[Int], arg3:Pointer[Int]) : Pointer[CChar];

external (cdecl) fcvt(arg0:Double, arg1:Int, arg2:Pointer[Int], arg3:Pointer[Int]) : Pointer[CChar];

external (cdecl) gcvt(arg0:Double, arg1:Int, arg2:Pointer[CChar]) : Pointer[CChar];

external (cdecl) qecvt(arg0:LongDouble, arg1:Int, arg2:Pointer[Int], arg3:Pointer[Int]) : Pointer[CChar];

external (cdecl) qfcvt(arg0:LongDouble, arg1:Int, arg2:Pointer[Int], arg3:Pointer[Int]) : Pointer[CChar];

external (cdecl) qgcvt(arg0:LongDouble, arg1:Int, arg2:Pointer[CChar]) : Pointer[CChar];

external (cdecl) ecvt_r(arg0:Double, arg1:Int, arg2:Pointer[Int], arg3:Pointer[Int], arg4:Pointer[CChar], arg5:size_t) : Int;

external (cdecl) fcvt_r(arg0:Double, arg1:Int, arg2:Pointer[Int], arg3:Pointer[Int], arg4:Pointer[CChar], arg5:size_t) : Int;

external (cdecl) qecvt_r(arg0:LongDouble, arg1:Int, arg2:Pointer[Int], arg3:Pointer[Int], arg4:Pointer[CChar], arg5:size_t) : Int;

external (cdecl) qfcvt_r(arg0:LongDouble, arg1:Int, arg2:Pointer[Int], arg3:Pointer[Int], arg4:Pointer[CChar], arg5:size_t) : Int;

external (cdecl) mblen(arg0:Pointer[CChar], arg1:size_t) : Int;

external (cdecl) mbtowc(arg0:Pointer[wchar_t], arg1:Pointer[CChar], arg2:size_t) : Int;

external (cdecl) wctomb(arg0:Pointer[CChar], arg1:wchar_t) : Int;

external (cdecl) mbstowcs(arg0:Pointer[wchar_t], arg1:Pointer[CChar], arg2:size_t) : size_t;

external (cdecl) wcstombs(arg0:Pointer[CChar], arg1:Pointer[wchar_t], arg2:size_t) : size_t;

external (cdecl) rpmatch(arg0:Pointer[CChar]) : Int;

external (cdecl) getsubopt(arg0:Pointer[Pointer[CChar]], arg1:Pointer[Pointer[CChar]], arg2:Pointer[Pointer[CChar]]) : Int;

external (cdecl) getloadavg(arg0:Pointer[Double], arg1:Int) : Int;

external (cdecl) memcpy(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : OpaquePointer;

external (cdecl) memmove(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : OpaquePointer;

external (cdecl) memccpy(arg0:OpaquePointer, arg1:OpaquePointer, arg2:Int, arg3:size_t) : OpaquePointer;

external (cdecl) memset(arg0:OpaquePointer, arg1:Int, arg2:size_t) : OpaquePointer;

external (cdecl) memcmp(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : Int;

external (cdecl) memchr(arg0:OpaquePointer, arg1:Int, arg2:size_t) : OpaquePointer;

external (cdecl) strcpy(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strncpy(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Pointer[CChar];

external (cdecl) strcat(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strncat(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Pointer[CChar];

external (cdecl) strcmp(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) strncmp(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Int;

external (cdecl) strcoll(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) strxfrm(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : size_t;

record Struct___locale_struct (
    __locales : Array[Pointer[Struct___locale_data], 13],
    __ctype_b : Pointer[UShort],
    __ctype_tolower : Pointer[Int],
    __ctype_toupper : Pointer[Int],
    __names : Array[Pointer[CChar], 13],
);

alias __locale_t = Pointer[Struct___locale_struct];

alias locale_t = __locale_t;

external (cdecl) strcoll_l(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:__locale_t) : Int;

external (cdecl) strxfrm_l(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t, arg3:__locale_t) : size_t;

external (cdecl) strdup(arg0:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strndup(arg0:Pointer[CChar], arg1:size_t) : Pointer[CChar];

external (cdecl) strchr(arg0:Pointer[CChar], arg1:Int) : Pointer[CChar];

external (cdecl) strrchr(arg0:Pointer[CChar], arg1:Int) : Pointer[CChar];

external (cdecl) strcspn(arg0:Pointer[CChar], arg1:Pointer[CChar]) : size_t;

external (cdecl) strspn(arg0:Pointer[CChar], arg1:Pointer[CChar]) : size_t;

external (cdecl) strpbrk(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strstr(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strtok(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) __strtok_r(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[Pointer[CChar]]) : Pointer[CChar];

external (cdecl) strtok_r(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:Pointer[Pointer[CChar]]) : Pointer[CChar];

external (cdecl) strlen(arg0:Pointer[CChar]) : size_t;

external (cdecl) strnlen(arg0:Pointer[CChar], arg1:size_t) : size_t;

external (cdecl) strerror(arg0:Int) : Pointer[CChar];

external (cdecl, "__xpg_strerror_r") strerror_r(arg0:Int, arg1:Pointer[CChar], arg2:size_t) : Int;

external (cdecl) strerror_l(arg0:Int, arg1:__locale_t) : Pointer[CChar];

external (cdecl) __bzero(arg0:OpaquePointer, arg1:size_t) : ;

external (cdecl) bcopy(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : ;

external (cdecl) bzero(arg0:OpaquePointer, arg1:size_t) : ;

external (cdecl) bcmp(arg0:OpaquePointer, arg1:OpaquePointer, arg2:size_t) : Int;

external (cdecl) index(arg0:Pointer[CChar], arg1:Int) : Pointer[CChar];

external (cdecl) rindex(arg0:Pointer[CChar], arg1:Int) : Pointer[CChar];

external (cdecl) ffs(arg0:Int) : Int;

external (cdecl) strcasecmp(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Int;

external (cdecl) strncasecmp(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Int;

external (cdecl) strsep(arg0:Pointer[Pointer[CChar]], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) strsignal(arg0:Int) : Pointer[CChar];

external (cdecl) __stpcpy(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) stpcpy(arg0:Pointer[CChar], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) __stpncpy(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Pointer[CChar];

external (cdecl) stpncpy(arg0:Pointer[CChar], arg1:Pointer[CChar], arg2:size_t) : Pointer[CChar];

external (cdecl) cacos(arg0:Complex64) : Complex64;

external (cdecl) __cacos(arg0:Complex64) : Complex64;

external (cdecl) casin(arg0:Complex64) : Complex64;

external (cdecl) __casin(arg0:Complex64) : Complex64;

external (cdecl) catan(arg0:Complex64) : Complex64;

external (cdecl) __catan(arg0:Complex64) : Complex64;

external (cdecl) ccos(arg0:Complex64) : Complex64;

external (cdecl) __ccos(arg0:Complex64) : Complex64;

external (cdecl) csin(arg0:Complex64) : Complex64;

external (cdecl) __csin(arg0:Complex64) : Complex64;

external (cdecl) ctan(arg0:Complex64) : Complex64;

external (cdecl) __ctan(arg0:Complex64) : Complex64;

external (cdecl) cacosh(arg0:Complex64) : Complex64;

external (cdecl) __cacosh(arg0:Complex64) : Complex64;

external (cdecl) casinh(arg0:Complex64) : Complex64;

external (cdecl) __casinh(arg0:Complex64) : Complex64;

external (cdecl) catanh(arg0:Complex64) : Complex64;

external (cdecl) __catanh(arg0:Complex64) : Complex64;

external (cdecl) ccosh(arg0:Complex64) : Complex64;

external (cdecl) __ccosh(arg0:Complex64) : Complex64;

external (cdecl) csinh(arg0:Complex64) : Complex64;

external (cdecl) __csinh(arg0:Complex64) : Complex64;

external (cdecl) ctanh(arg0:Complex64) : Complex64;

external (cdecl) __ctanh(arg0:Complex64) : Complex64;

external (cdecl) cexp(arg0:Complex64) : Complex64;

external (cdecl) __cexp(arg0:Complex64) : Complex64;

external (cdecl) clog(arg0:Complex64) : Complex64;

external (cdecl) __clog(arg0:Complex64) : Complex64;

external (cdecl) cpow(arg0:Complex64, arg1:Complex64) : Complex64;

external (cdecl) __cpow(arg0:Complex64, arg1:Complex64) : Complex64;

external (cdecl) csqrt(arg0:Complex64) : Complex64;

external (cdecl) __csqrt(arg0:Complex64) : Complex64;

external (cdecl) cabs(arg0:Complex64) : Double;

external (cdecl) __cabs(arg0:Complex64) : Double;

external (cdecl) carg(arg0:Complex64) : Double;

external (cdecl) __carg(arg0:Complex64) : Double;

external (cdecl) conj(arg0:Complex64) : Complex64;

external (cdecl) __conj(arg0:Complex64) : Complex64;

external (cdecl) cproj(arg0:Complex64) : Complex64;

external (cdecl) __cproj(arg0:Complex64) : Complex64;

external (cdecl) cimag(arg0:Complex64) : Double;

external (cdecl) __cimag(arg0:Complex64) : Double;

external (cdecl) creal(arg0:Complex64) : Double;

external (cdecl) __creal(arg0:Complex64) : Double;

external (cdecl) cacosf(arg0:Complex32) : Complex32;

external (cdecl) __cacosf(arg0:Complex32) : Complex32;

external (cdecl) casinf(arg0:Complex32) : Complex32;

external (cdecl) __casinf(arg0:Complex32) : Complex32;

external (cdecl) catanf(arg0:Complex32) : Complex32;

external (cdecl) __catanf(arg0:Complex32) : Complex32;

external (cdecl) ccosf(arg0:Complex32) : Complex32;

external (cdecl) __ccosf(arg0:Complex32) : Complex32;

external (cdecl) csinf(arg0:Complex32) : Complex32;

external (cdecl) __csinf(arg0:Complex32) : Complex32;

external (cdecl) ctanf(arg0:Complex32) : Complex32;

external (cdecl) __ctanf(arg0:Complex32) : Complex32;

external (cdecl) cacoshf(arg0:Complex32) : Complex32;

external (cdecl) __cacoshf(arg0:Complex32) : Complex32;

external (cdecl) casinhf(arg0:Complex32) : Complex32;

external (cdecl) __casinhf(arg0:Complex32) : Complex32;

external (cdecl) catanhf(arg0:Complex32) : Complex32;

external (cdecl) __catanhf(arg0:Complex32) : Complex32;

external (cdecl) ccoshf(arg0:Complex32) : Complex32;

external (cdecl) __ccoshf(arg0:Complex32) : Complex32;

external (cdecl) csinhf(arg0:Complex32) : Complex32;

external (cdecl) __csinhf(arg0:Complex32) : Complex32;

external (cdecl) ctanhf(arg0:Complex32) : Complex32;

external (cdecl) __ctanhf(arg0:Complex32) : Complex32;

external (cdecl) cexpf(arg0:Complex32) : Complex32;

external (cdecl) __cexpf(arg0:Complex32) : Complex32;

external (cdecl) clogf(arg0:Complex32) : Complex32;

external (cdecl) __clogf(arg0:Complex32) : Complex32;

external (cdecl) cpowf(arg0:Complex32, arg1:Complex32) : Complex32;

external (cdecl) __cpowf(arg0:Complex32, arg1:Complex32) : Complex32;

external (cdecl) csqrtf(arg0:Complex32) : Complex32;

external (cdecl) __csqrtf(arg0:Complex32) : Complex32;

external (cdecl) cabsf(arg0:Complex32) : Float;

external (cdecl) __cabsf(arg0:Complex32) : Float;

external (cdecl) cargf(arg0:Complex32) : Float;

external (cdecl) __cargf(arg0:Complex32) : Float;

external (cdecl) conjf(arg0:Complex32) : Complex32;

external (cdecl) __conjf(arg0:Complex32) : Complex32;

external (cdecl) cprojf(arg0:Complex32) : Complex32;

external (cdecl) __cprojf(arg0:Complex32) : Complex32;

external (cdecl) cimagf(arg0:Complex32) : Float;

external (cdecl) __cimagf(arg0:Complex32) : Float;

external (cdecl) crealf(arg0:Complex32) : Float;

external (cdecl) __crealf(arg0:Complex32) : Float;

external (cdecl) cacosl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __cacosl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) casinl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __casinl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) catanl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __catanl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) ccosl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __ccosl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) csinl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __csinl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) ctanl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __ctanl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) cacoshl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __cacoshl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) casinhl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __casinhl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) catanhl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __catanhl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) ccoshl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __ccoshl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) csinhl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __csinhl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) ctanhl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __ctanhl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) cexpl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __cexpl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) clogl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __clogl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) cpowl(arg0:ComplexLongDouble, arg1:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __cpowl(arg0:ComplexLongDouble, arg1:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) csqrtl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __csqrtl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) cabsl(arg0:ComplexLongDouble) : LongDouble;

external (cdecl) __cabsl(arg0:ComplexLongDouble) : LongDouble;

external (cdecl) cargl(arg0:ComplexLongDouble) : LongDouble;

external (cdecl) __cargl(arg0:ComplexLongDouble) : LongDouble;

external (cdecl) conjl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __conjl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) cprojl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) __cprojl(arg0:ComplexLongDouble) : ComplexLongDouble;

external (cdecl) cimagl(arg0:ComplexLongDouble) : LongDouble;

external (cdecl) __cimagl(arg0:ComplexLongDouble) : LongDouble;

external (cdecl) creall(arg0:ComplexLongDouble) : LongDouble;

external (cdecl) __creall(arg0:ComplexLongDouble) : LongDouble;

alias float_t = Float;

alias double_t = Double;

external (cdecl) acos(arg0:Double) : Double;

external (cdecl) __acos(arg0:Double) : Double;

external (cdecl) asin(arg0:Double) : Double;

external (cdecl) __asin(arg0:Double) : Double;

external (cdecl) atan(arg0:Double) : Double;

external (cdecl) __atan(arg0:Double) : Double;

external (cdecl) atan2(arg0:Double, arg1:Double) : Double;

external (cdecl) __atan2(arg0:Double, arg1:Double) : Double;

external (cdecl) cos(arg0:Double) : Double;

external (cdecl) __cos(arg0:Double) : Double;

external (cdecl) sin(arg0:Double) : Double;

external (cdecl) __sin(arg0:Double) : Double;

external (cdecl) tan(arg0:Double) : Double;

external (cdecl) __tan(arg0:Double) : Double;

external (cdecl) cosh(arg0:Double) : Double;

external (cdecl) __cosh(arg0:Double) : Double;

external (cdecl) sinh(arg0:Double) : Double;

external (cdecl) __sinh(arg0:Double) : Double;

external (cdecl) tanh(arg0:Double) : Double;

external (cdecl) __tanh(arg0:Double) : Double;

external (cdecl) acosh(arg0:Double) : Double;

external (cdecl) __acosh(arg0:Double) : Double;

external (cdecl) asinh(arg0:Double) : Double;

external (cdecl) __asinh(arg0:Double) : Double;

external (cdecl) atanh(arg0:Double) : Double;

external (cdecl) __atanh(arg0:Double) : Double;

external (cdecl) exp(arg0:Double) : Double;

external (cdecl) __exp(arg0:Double) : Double;

external (cdecl) frexp(arg0:Double, arg1:Pointer[Int]) : Double;

external (cdecl) __frexp(arg0:Double, arg1:Pointer[Int]) : Double;

external (cdecl) ldexp(arg0:Double, arg1:Int) : Double;

external (cdecl) __ldexp(arg0:Double, arg1:Int) : Double;

external (cdecl) log(arg0:Double) : Double;

external (cdecl) __log(arg0:Double) : Double;

external (cdecl) log10(arg0:Double) : Double;

external (cdecl) __log10(arg0:Double) : Double;

external (cdecl) modf(arg0:Double, arg1:Pointer[Double]) : Double;

external (cdecl) __modf(arg0:Double, arg1:Pointer[Double]) : Double;

external (cdecl) expm1(arg0:Double) : Double;

external (cdecl) __expm1(arg0:Double) : Double;

external (cdecl) log1p(arg0:Double) : Double;

external (cdecl) __log1p(arg0:Double) : Double;

external (cdecl) logb(arg0:Double) : Double;

external (cdecl) __logb(arg0:Double) : Double;

external (cdecl) exp2(arg0:Double) : Double;

external (cdecl) __exp2(arg0:Double) : Double;

external (cdecl) log2(arg0:Double) : Double;

external (cdecl) __log2(arg0:Double) : Double;

external (cdecl) pow(arg0:Double, arg1:Double) : Double;

external (cdecl) __pow(arg0:Double, arg1:Double) : Double;

external (cdecl) sqrt(arg0:Double) : Double;

external (cdecl) __sqrt(arg0:Double) : Double;

external (cdecl) hypot(arg0:Double, arg1:Double) : Double;

external (cdecl) __hypot(arg0:Double, arg1:Double) : Double;

external (cdecl) cbrt(arg0:Double) : Double;

external (cdecl) __cbrt(arg0:Double) : Double;

external (cdecl) ceil(arg0:Double) : Double;

external (cdecl) __ceil(arg0:Double) : Double;

external (cdecl) fabs(arg0:Double) : Double;

external (cdecl) __fabs(arg0:Double) : Double;

external (cdecl) floor(arg0:Double) : Double;

external (cdecl) __floor(arg0:Double) : Double;

external (cdecl) fmod(arg0:Double, arg1:Double) : Double;

external (cdecl) __fmod(arg0:Double, arg1:Double) : Double;

external (cdecl) __isinf(arg0:Double) : Int;

external (cdecl) __finite(arg0:Double) : Int;

external (cdecl) isinf(arg0:Double) : Int;

external (cdecl) finite(arg0:Double) : Int;

external (cdecl) drem(arg0:Double, arg1:Double) : Double;

external (cdecl) __drem(arg0:Double, arg1:Double) : Double;

external (cdecl) significand(arg0:Double) : Double;

external (cdecl) __significand(arg0:Double) : Double;

external (cdecl) copysign(arg0:Double, arg1:Double) : Double;

external (cdecl) __copysign(arg0:Double, arg1:Double) : Double;

external (cdecl) nan(arg0:Pointer[CChar]) : Double;

external (cdecl) __nan(arg0:Pointer[CChar]) : Double;

external (cdecl) __isnan(arg0:Double) : Int;

external (cdecl) isnan(arg0:Double) : Int;

external (cdecl) j0(arg0:Double) : Double;

external (cdecl) __j0(arg0:Double) : Double;

external (cdecl) j1(arg0:Double) : Double;

external (cdecl) __j1(arg0:Double) : Double;

external (cdecl) jn(arg0:Int, arg1:Double) : Double;

external (cdecl) __jn(arg0:Int, arg1:Double) : Double;

external (cdecl) y0(arg0:Double) : Double;

external (cdecl) __y0(arg0:Double) : Double;

external (cdecl) y1(arg0:Double) : Double;

external (cdecl) __y1(arg0:Double) : Double;

external (cdecl) yn(arg0:Int, arg1:Double) : Double;

external (cdecl) __yn(arg0:Int, arg1:Double) : Double;

external (cdecl) erf(arg0:Double) : Double;

external (cdecl) __erf(arg0:Double) : Double;

external (cdecl) erfc(arg0:Double) : Double;

external (cdecl) __erfc(arg0:Double) : Double;

external (cdecl) lgamma(arg0:Double) : Double;

external (cdecl) __lgamma(arg0:Double) : Double;

external (cdecl) tgamma(arg0:Double) : Double;

external (cdecl) __tgamma(arg0:Double) : Double;

external (cdecl) gamma(arg0:Double) : Double;

external (cdecl) __gamma(arg0:Double) : Double;

external (cdecl) lgamma_r(arg0:Double, arg1:Pointer[Int]) : Double;

external (cdecl) __lgamma_r(arg0:Double, arg1:Pointer[Int]) : Double;

external (cdecl) rint(arg0:Double) : Double;

external (cdecl) __rint(arg0:Double) : Double;

external (cdecl) nextafter(arg0:Double, arg1:Double) : Double;

external (cdecl) __nextafter(arg0:Double, arg1:Double) : Double;

external (cdecl) nexttoward(arg0:Double, arg1:LongDouble) : Double;

external (cdecl) __nexttoward(arg0:Double, arg1:LongDouble) : Double;

external (cdecl) remainder(arg0:Double, arg1:Double) : Double;

external (cdecl) __remainder(arg0:Double, arg1:Double) : Double;

external (cdecl) scalbn(arg0:Double, arg1:Int) : Double;

external (cdecl) __scalbn(arg0:Double, arg1:Int) : Double;

external (cdecl) ilogb(arg0:Double) : Int;

external (cdecl) __ilogb(arg0:Double) : Int;

external (cdecl) scalbln(arg0:Double, arg1:CLong) : Double;

external (cdecl) __scalbln(arg0:Double, arg1:CLong) : Double;

external (cdecl) nearbyint(arg0:Double) : Double;

external (cdecl) __nearbyint(arg0:Double) : Double;

external (cdecl) round(arg0:Double) : Double;

external (cdecl) __round(arg0:Double) : Double;

external (cdecl) trunc(arg0:Double) : Double;

external (cdecl) __trunc(arg0:Double) : Double;

external (cdecl) remquo(arg0:Double, arg1:Double, arg2:Pointer[Int]) : Double;

external (cdecl) __remquo(arg0:Double, arg1:Double, arg2:Pointer[Int]) : Double;

external (cdecl) lrint(arg0:Double) : CLong;

external (cdecl) __lrint(arg0:Double) : CLong;

external (cdecl) llrint(arg0:Double) : Int64;

external (cdecl) __llrint(arg0:Double) : Int64;

external (cdecl) lround(arg0:Double) : CLong;

external (cdecl) __lround(arg0:Double) : CLong;

external (cdecl) llround(arg0:Double) : Int64;

external (cdecl) __llround(arg0:Double) : Int64;

external (cdecl) fdim(arg0:Double, arg1:Double) : Double;

external (cdecl) __fdim(arg0:Double, arg1:Double) : Double;

external (cdecl) fmax(arg0:Double, arg1:Double) : Double;

external (cdecl) __fmax(arg0:Double, arg1:Double) : Double;

external (cdecl) fmin(arg0:Double, arg1:Double) : Double;

external (cdecl) __fmin(arg0:Double, arg1:Double) : Double;

external (cdecl) __fpclassify(arg0:Double) : Int;

external (cdecl) __signbit(arg0:Double) : Int;

external (cdecl) fma(arg0:Double, arg1:Double, arg2:Double) : Double;

external (cdecl) __fma(arg0:Double, arg1:Double, arg2:Double) : Double;

external (cdecl) scalb(arg0:Double, arg1:Double) : Double;

external (cdecl) __scalb(arg0:Double, arg1:Double) : Double;

external (cdecl) acosf(arg0:Float) : Float;

external (cdecl) __acosf(arg0:Float) : Float;

external (cdecl) asinf(arg0:Float) : Float;

external (cdecl) __asinf(arg0:Float) : Float;

external (cdecl) atanf(arg0:Float) : Float;

external (cdecl) __atanf(arg0:Float) : Float;

external (cdecl) atan2f(arg0:Float, arg1:Float) : Float;

external (cdecl) __atan2f(arg0:Float, arg1:Float) : Float;

external (cdecl) cosf(arg0:Float) : Float;

external (cdecl) __cosf(arg0:Float) : Float;

external (cdecl) sinf(arg0:Float) : Float;

external (cdecl) __sinf(arg0:Float) : Float;

external (cdecl) tanf(arg0:Float) : Float;

external (cdecl) __tanf(arg0:Float) : Float;

external (cdecl) coshf(arg0:Float) : Float;

external (cdecl) __coshf(arg0:Float) : Float;

external (cdecl) sinhf(arg0:Float) : Float;

external (cdecl) __sinhf(arg0:Float) : Float;

external (cdecl) tanhf(arg0:Float) : Float;

external (cdecl) __tanhf(arg0:Float) : Float;

external (cdecl) acoshf(arg0:Float) : Float;

external (cdecl) __acoshf(arg0:Float) : Float;

external (cdecl) asinhf(arg0:Float) : Float;

external (cdecl) __asinhf(arg0:Float) : Float;

external (cdecl) atanhf(arg0:Float) : Float;

external (cdecl) __atanhf(arg0:Float) : Float;

external (cdecl) expf(arg0:Float) : Float;

external (cdecl) __expf(arg0:Float) : Float;

external (cdecl) frexpf(arg0:Float, arg1:Pointer[Int]) : Float;

external (cdecl) __frexpf(arg0:Float, arg1:Pointer[Int]) : Float;

external (cdecl) ldexpf(arg0:Float, arg1:Int) : Float;

external (cdecl) __ldexpf(arg0:Float, arg1:Int) : Float;

external (cdecl) logf(arg0:Float) : Float;

external (cdecl) __logf(arg0:Float) : Float;

external (cdecl) log10f(arg0:Float) : Float;

external (cdecl) __log10f(arg0:Float) : Float;

external (cdecl) modff(arg0:Float, arg1:Pointer[Float]) : Float;

external (cdecl) __modff(arg0:Float, arg1:Pointer[Float]) : Float;

external (cdecl) expm1f(arg0:Float) : Float;

external (cdecl) __expm1f(arg0:Float) : Float;

external (cdecl) log1pf(arg0:Float) : Float;

external (cdecl) __log1pf(arg0:Float) : Float;

external (cdecl) logbf(arg0:Float) : Float;

external (cdecl) __logbf(arg0:Float) : Float;

external (cdecl) exp2f(arg0:Float) : Float;

external (cdecl) __exp2f(arg0:Float) : Float;

external (cdecl) log2f(arg0:Float) : Float;

external (cdecl) __log2f(arg0:Float) : Float;

external (cdecl) powf(arg0:Float, arg1:Float) : Float;

external (cdecl) __powf(arg0:Float, arg1:Float) : Float;

external (cdecl) sqrtf(arg0:Float) : Float;

external (cdecl) __sqrtf(arg0:Float) : Float;

external (cdecl) hypotf(arg0:Float, arg1:Float) : Float;

external (cdecl) __hypotf(arg0:Float, arg1:Float) : Float;

external (cdecl) cbrtf(arg0:Float) : Float;

external (cdecl) __cbrtf(arg0:Float) : Float;

external (cdecl) ceilf(arg0:Float) : Float;

external (cdecl) __ceilf(arg0:Float) : Float;

external (cdecl) fabsf(arg0:Float) : Float;

external (cdecl) __fabsf(arg0:Float) : Float;

external (cdecl) floorf(arg0:Float) : Float;

external (cdecl) __floorf(arg0:Float) : Float;

external (cdecl) fmodf(arg0:Float, arg1:Float) : Float;

external (cdecl) __fmodf(arg0:Float, arg1:Float) : Float;

external (cdecl) __isinff(arg0:Float) : Int;

external (cdecl) __finitef(arg0:Float) : Int;

external (cdecl) isinff(arg0:Float) : Int;

external (cdecl) finitef(arg0:Float) : Int;

external (cdecl) dremf(arg0:Float, arg1:Float) : Float;

external (cdecl) __dremf(arg0:Float, arg1:Float) : Float;

external (cdecl) significandf(arg0:Float) : Float;

external (cdecl) __significandf(arg0:Float) : Float;

external (cdecl) copysignf(arg0:Float, arg1:Float) : Float;

external (cdecl) __copysignf(arg0:Float, arg1:Float) : Float;

external (cdecl) nanf(arg0:Pointer[CChar]) : Float;

external (cdecl) __nanf(arg0:Pointer[CChar]) : Float;

external (cdecl) __isnanf(arg0:Float) : Int;

external (cdecl) isnanf(arg0:Float) : Int;

external (cdecl) j0f(arg0:Float) : Float;

external (cdecl) __j0f(arg0:Float) : Float;

external (cdecl) j1f(arg0:Float) : Float;

external (cdecl) __j1f(arg0:Float) : Float;

external (cdecl) jnf(arg0:Int, arg1:Float) : Float;

external (cdecl) __jnf(arg0:Int, arg1:Float) : Float;

external (cdecl) y0f(arg0:Float) : Float;

external (cdecl) __y0f(arg0:Float) : Float;

external (cdecl) y1f(arg0:Float) : Float;

external (cdecl) __y1f(arg0:Float) : Float;

external (cdecl) ynf(arg0:Int, arg1:Float) : Float;

external (cdecl) __ynf(arg0:Int, arg1:Float) : Float;

external (cdecl) erff(arg0:Float) : Float;

external (cdecl) __erff(arg0:Float) : Float;

external (cdecl) erfcf(arg0:Float) : Float;

external (cdecl) __erfcf(arg0:Float) : Float;

external (cdecl) lgammaf(arg0:Float) : Float;

external (cdecl) __lgammaf(arg0:Float) : Float;

external (cdecl) tgammaf(arg0:Float) : Float;

external (cdecl) __tgammaf(arg0:Float) : Float;

external (cdecl) gammaf(arg0:Float) : Float;

external (cdecl) __gammaf(arg0:Float) : Float;

external (cdecl) lgammaf_r(arg0:Float, arg1:Pointer[Int]) : Float;

external (cdecl) __lgammaf_r(arg0:Float, arg1:Pointer[Int]) : Float;

external (cdecl) rintf(arg0:Float) : Float;

external (cdecl) __rintf(arg0:Float) : Float;

external (cdecl) nextafterf(arg0:Float, arg1:Float) : Float;

external (cdecl) __nextafterf(arg0:Float, arg1:Float) : Float;

external (cdecl) nexttowardf(arg0:Float, arg1:LongDouble) : Float;

external (cdecl) __nexttowardf(arg0:Float, arg1:LongDouble) : Float;

external (cdecl) remainderf(arg0:Float, arg1:Float) : Float;

external (cdecl) __remainderf(arg0:Float, arg1:Float) : Float;

external (cdecl) scalbnf(arg0:Float, arg1:Int) : Float;

external (cdecl) __scalbnf(arg0:Float, arg1:Int) : Float;

external (cdecl) ilogbf(arg0:Float) : Int;

external (cdecl) __ilogbf(arg0:Float) : Int;

external (cdecl) scalblnf(arg0:Float, arg1:CLong) : Float;

external (cdecl) __scalblnf(arg0:Float, arg1:CLong) : Float;

external (cdecl) nearbyintf(arg0:Float) : Float;

external (cdecl) __nearbyintf(arg0:Float) : Float;

external (cdecl) roundf(arg0:Float) : Float;

external (cdecl) __roundf(arg0:Float) : Float;

external (cdecl) truncf(arg0:Float) : Float;

external (cdecl) __truncf(arg0:Float) : Float;

external (cdecl) remquof(arg0:Float, arg1:Float, arg2:Pointer[Int]) : Float;

external (cdecl) __remquof(arg0:Float, arg1:Float, arg2:Pointer[Int]) : Float;

external (cdecl) lrintf(arg0:Float) : CLong;

external (cdecl) __lrintf(arg0:Float) : CLong;

external (cdecl) llrintf(arg0:Float) : Int64;

external (cdecl) __llrintf(arg0:Float) : Int64;

external (cdecl) lroundf(arg0:Float) : CLong;

external (cdecl) __lroundf(arg0:Float) : CLong;

external (cdecl) llroundf(arg0:Float) : Int64;

external (cdecl) __llroundf(arg0:Float) : Int64;

external (cdecl) fdimf(arg0:Float, arg1:Float) : Float;

external (cdecl) __fdimf(arg0:Float, arg1:Float) : Float;

external (cdecl) fmaxf(arg0:Float, arg1:Float) : Float;

external (cdecl) __fmaxf(arg0:Float, arg1:Float) : Float;

external (cdecl) fminf(arg0:Float, arg1:Float) : Float;

external (cdecl) __fminf(arg0:Float, arg1:Float) : Float;

external (cdecl) __fpclassifyf(arg0:Float) : Int;

external (cdecl) __signbitf(arg0:Float) : Int;

external (cdecl) fmaf(arg0:Float, arg1:Float, arg2:Float) : Float;

external (cdecl) __fmaf(arg0:Float, arg1:Float, arg2:Float) : Float;

external (cdecl) scalbf(arg0:Float, arg1:Float) : Float;

external (cdecl) __scalbf(arg0:Float, arg1:Float) : Float;

external (cdecl) acosl(arg0:LongDouble) : LongDouble;

external (cdecl) __acosl(arg0:LongDouble) : LongDouble;

external (cdecl) asinl(arg0:LongDouble) : LongDouble;

external (cdecl) __asinl(arg0:LongDouble) : LongDouble;

external (cdecl) atanl(arg0:LongDouble) : LongDouble;

external (cdecl) __atanl(arg0:LongDouble) : LongDouble;

external (cdecl) atan2l(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __atan2l(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) cosl(arg0:LongDouble) : LongDouble;

external (cdecl) __cosl(arg0:LongDouble) : LongDouble;

external (cdecl) sinl(arg0:LongDouble) : LongDouble;

external (cdecl) __sinl(arg0:LongDouble) : LongDouble;

external (cdecl) tanl(arg0:LongDouble) : LongDouble;

external (cdecl) __tanl(arg0:LongDouble) : LongDouble;

external (cdecl) coshl(arg0:LongDouble) : LongDouble;

external (cdecl) __coshl(arg0:LongDouble) : LongDouble;

external (cdecl) sinhl(arg0:LongDouble) : LongDouble;

external (cdecl) __sinhl(arg0:LongDouble) : LongDouble;

external (cdecl) tanhl(arg0:LongDouble) : LongDouble;

external (cdecl) __tanhl(arg0:LongDouble) : LongDouble;

external (cdecl) acoshl(arg0:LongDouble) : LongDouble;

external (cdecl) __acoshl(arg0:LongDouble) : LongDouble;

external (cdecl) asinhl(arg0:LongDouble) : LongDouble;

external (cdecl) __asinhl(arg0:LongDouble) : LongDouble;

external (cdecl) atanhl(arg0:LongDouble) : LongDouble;

external (cdecl) __atanhl(arg0:LongDouble) : LongDouble;

external (cdecl) expl(arg0:LongDouble) : LongDouble;

external (cdecl) __expl(arg0:LongDouble) : LongDouble;

external (cdecl) frexpl(arg0:LongDouble, arg1:Pointer[Int]) : LongDouble;

external (cdecl) __frexpl(arg0:LongDouble, arg1:Pointer[Int]) : LongDouble;

external (cdecl) ldexpl(arg0:LongDouble, arg1:Int) : LongDouble;

external (cdecl) __ldexpl(arg0:LongDouble, arg1:Int) : LongDouble;

external (cdecl) logl(arg0:LongDouble) : LongDouble;

external (cdecl) __logl(arg0:LongDouble) : LongDouble;

external (cdecl) log10l(arg0:LongDouble) : LongDouble;

external (cdecl) __log10l(arg0:LongDouble) : LongDouble;

external (cdecl) modfl(arg0:LongDouble, arg1:Pointer[LongDouble]) : LongDouble;

external (cdecl) __modfl(arg0:LongDouble, arg1:Pointer[LongDouble]) : LongDouble;

external (cdecl) expm1l(arg0:LongDouble) : LongDouble;

external (cdecl) __expm1l(arg0:LongDouble) : LongDouble;

external (cdecl) log1pl(arg0:LongDouble) : LongDouble;

external (cdecl) __log1pl(arg0:LongDouble) : LongDouble;

external (cdecl) logbl(arg0:LongDouble) : LongDouble;

external (cdecl) __logbl(arg0:LongDouble) : LongDouble;

external (cdecl) exp2l(arg0:LongDouble) : LongDouble;

external (cdecl) __exp2l(arg0:LongDouble) : LongDouble;

external (cdecl) log2l(arg0:LongDouble) : LongDouble;

external (cdecl) __log2l(arg0:LongDouble) : LongDouble;

external (cdecl) powl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __powl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) sqrtl(arg0:LongDouble) : LongDouble;

external (cdecl) __sqrtl(arg0:LongDouble) : LongDouble;

external (cdecl) hypotl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __hypotl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) cbrtl(arg0:LongDouble) : LongDouble;

external (cdecl) __cbrtl(arg0:LongDouble) : LongDouble;

external (cdecl) ceill(arg0:LongDouble) : LongDouble;

external (cdecl) __ceill(arg0:LongDouble) : LongDouble;

external (cdecl) fabsl(arg0:LongDouble) : LongDouble;

external (cdecl) __fabsl(arg0:LongDouble) : LongDouble;

external (cdecl) floorl(arg0:LongDouble) : LongDouble;

external (cdecl) __floorl(arg0:LongDouble) : LongDouble;

external (cdecl) fmodl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __fmodl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __isinfl(arg0:LongDouble) : Int;

external (cdecl) __finitel(arg0:LongDouble) : Int;

external (cdecl) isinfl(arg0:LongDouble) : Int;

external (cdecl) finitel(arg0:LongDouble) : Int;

external (cdecl) dreml(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __dreml(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) significandl(arg0:LongDouble) : LongDouble;

external (cdecl) __significandl(arg0:LongDouble) : LongDouble;

external (cdecl) copysignl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __copysignl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) nanl(arg0:Pointer[CChar]) : LongDouble;

external (cdecl) __nanl(arg0:Pointer[CChar]) : LongDouble;

external (cdecl) __isnanl(arg0:LongDouble) : Int;

external (cdecl) isnanl(arg0:LongDouble) : Int;

external (cdecl) j0l(arg0:LongDouble) : LongDouble;

external (cdecl) __j0l(arg0:LongDouble) : LongDouble;

external (cdecl) j1l(arg0:LongDouble) : LongDouble;

external (cdecl) __j1l(arg0:LongDouble) : LongDouble;

external (cdecl) jnl(arg0:Int, arg1:LongDouble) : LongDouble;

external (cdecl) __jnl(arg0:Int, arg1:LongDouble) : LongDouble;

external (cdecl) y0l(arg0:LongDouble) : LongDouble;

external (cdecl) __y0l(arg0:LongDouble) : LongDouble;

external (cdecl) y1l(arg0:LongDouble) : LongDouble;

external (cdecl) __y1l(arg0:LongDouble) : LongDouble;

external (cdecl) ynl(arg0:Int, arg1:LongDouble) : LongDouble;

external (cdecl) __ynl(arg0:Int, arg1:LongDouble) : LongDouble;

external (cdecl) erfl(arg0:LongDouble) : LongDouble;

external (cdecl) __erfl(arg0:LongDouble) : LongDouble;

external (cdecl) erfcl(arg0:LongDouble) : LongDouble;

external (cdecl) __erfcl(arg0:LongDouble) : LongDouble;

external (cdecl) lgammal(arg0:LongDouble) : LongDouble;

external (cdecl) __lgammal(arg0:LongDouble) : LongDouble;

external (cdecl) tgammal(arg0:LongDouble) : LongDouble;

external (cdecl) __tgammal(arg0:LongDouble) : LongDouble;

external (cdecl) gammal(arg0:LongDouble) : LongDouble;

external (cdecl) __gammal(arg0:LongDouble) : LongDouble;

external (cdecl) lgammal_r(arg0:LongDouble, arg1:Pointer[Int]) : LongDouble;

external (cdecl) __lgammal_r(arg0:LongDouble, arg1:Pointer[Int]) : LongDouble;

external (cdecl) rintl(arg0:LongDouble) : LongDouble;

external (cdecl) __rintl(arg0:LongDouble) : LongDouble;

external (cdecl) nextafterl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __nextafterl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) nexttowardl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __nexttowardl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) remainderl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __remainderl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) scalbnl(arg0:LongDouble, arg1:Int) : LongDouble;

external (cdecl) __scalbnl(arg0:LongDouble, arg1:Int) : LongDouble;

external (cdecl) ilogbl(arg0:LongDouble) : Int;

external (cdecl) __ilogbl(arg0:LongDouble) : Int;

external (cdecl) scalblnl(arg0:LongDouble, arg1:CLong) : LongDouble;

external (cdecl) __scalblnl(arg0:LongDouble, arg1:CLong) : LongDouble;

external (cdecl) nearbyintl(arg0:LongDouble) : LongDouble;

external (cdecl) __nearbyintl(arg0:LongDouble) : LongDouble;

external (cdecl) roundl(arg0:LongDouble) : LongDouble;

external (cdecl) __roundl(arg0:LongDouble) : LongDouble;

external (cdecl) truncl(arg0:LongDouble) : LongDouble;

external (cdecl) __truncl(arg0:LongDouble) : LongDouble;

external (cdecl) remquol(arg0:LongDouble, arg1:LongDouble, arg2:Pointer[Int]) : LongDouble;

external (cdecl) __remquol(arg0:LongDouble, arg1:LongDouble, arg2:Pointer[Int]) : LongDouble;

external (cdecl) lrintl(arg0:LongDouble) : CLong;

external (cdecl) __lrintl(arg0:LongDouble) : CLong;

external (cdecl) llrintl(arg0:LongDouble) : Int64;

external (cdecl) __llrintl(arg0:LongDouble) : Int64;

external (cdecl) lroundl(arg0:LongDouble) : CLong;

external (cdecl) __lroundl(arg0:LongDouble) : CLong;

external (cdecl) llroundl(arg0:LongDouble) : Int64;

external (cdecl) __llroundl(arg0:LongDouble) : Int64;

external (cdecl) fdiml(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __fdiml(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) fmaxl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __fmaxl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) fminl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __fminl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __fpclassifyl(arg0:LongDouble) : Int;

external (cdecl) __signbitl(arg0:LongDouble) : Int;

external (cdecl) fmal(arg0:LongDouble, arg1:LongDouble, arg2:LongDouble) : LongDouble;

external (cdecl) __fmal(arg0:LongDouble, arg1:LongDouble, arg2:LongDouble) : LongDouble;

external (cdecl) scalbl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external (cdecl) __scalbl(arg0:LongDouble, arg1:LongDouble) : LongDouble;

external signgam : Int;

alias Enum_Unnamed25 = UInt;
alias FP_NAN = 0;
alias FP_INFINITE = 1;
alias FP_ZERO = 2;
alias FP_SUBNORMAL = 3;
alias FP_NORMAL = 4;

alias Enum_Unnamed26 = Int;
alias _IEEE_ = -1;
alias _SVID_ = 0;
alias _XOPEN_ = 1;
alias _POSIX_ = 2;
alias _ISOC_ = 3;

alias _LIB_VERSION_TYPE = Opaque /* unknown EnumDecl  */;

external _LIB_VERSION : _LIB_VERSION_TYPE;

record Struct_exception (
    type : Int,
    name : Pointer[CChar],
    arg1 : Double,
    arg2 : Double,
    retval : Double,
);

external (cdecl) matherr(arg0:Pointer[Struct_exception]) : Int;

alias __jmp_buf = Array[Int, 6];

record Struct___jmp_buf_tag (
    __jmpbuf : __jmp_buf,
    __mask_was_saved : Int,
    __saved_mask : __sigset_t,
);

alias jmp_buf = Array[Struct___jmp_buf_tag, 1];

external (cdecl) setjmp(arg0:Pointer[Struct___jmp_buf_tag]) : Int;

external (cdecl) __sigsetjmp(arg0:Pointer[Struct___jmp_buf_tag], arg1:Int) : Int;

external (cdecl) _setjmp(arg0:Pointer[Struct___jmp_buf_tag]) : Int;

external (cdecl) longjmp(arg0:Pointer[Struct___jmp_buf_tag], arg1:Int) : ;

external (cdecl) _longjmp(arg0:Pointer[Struct___jmp_buf_tag], arg1:Int) : ;

alias sigjmp_buf = Array[Struct___jmp_buf_tag, 1];

external (cdecl) siglongjmp(arg0:Pointer[Struct___jmp_buf_tag], arg1:Int) : ;

record Struct_tm (
    tm_sec : Int,
    tm_min : Int,
    tm_hour : Int,
    tm_mday : Int,
    tm_mon : Int,
    tm_year : Int,
    tm_wday : Int,
    tm_yday : Int,
    tm_isdst : Int,
    tm_gmtoff : CLong,
    tm_zone : Pointer[CChar],
);

record Struct_itimerspec (
    it_interval : Struct_timespec,
    it_value : Struct_timespec,
);

alias Struct_sigevent = Opaque;

external (cdecl) clock() : clock_t;

external (cdecl) time(arg0:Pointer[time_t]) : time_t;

external (cdecl) difftime(arg0:time_t, arg1:time_t) : Double;

external (cdecl) mktime(arg0:Pointer[Struct_tm]) : time_t;

external (cdecl) strftime(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:Pointer[Struct_tm]) : size_t;

external (cdecl) strftime_l(arg0:Pointer[CChar], arg1:size_t, arg2:Pointer[CChar], arg3:Pointer[Struct_tm], arg4:__locale_t) : size_t;

external (cdecl) gmtime(arg0:Pointer[time_t]) : Pointer[Struct_tm];

external (cdecl) localtime(arg0:Pointer[time_t]) : Pointer[Struct_tm];

external (cdecl) gmtime_r(arg0:Pointer[time_t], arg1:Pointer[Struct_tm]) : Pointer[Struct_tm];

external (cdecl) localtime_r(arg0:Pointer[time_t], arg1:Pointer[Struct_tm]) : Pointer[Struct_tm];

external (cdecl) asctime(arg0:Pointer[Struct_tm]) : Pointer[CChar];

external (cdecl) ctime(arg0:Pointer[time_t]) : Pointer[CChar];

external (cdecl) asctime_r(arg0:Pointer[Struct_tm], arg1:Pointer[CChar]) : Pointer[CChar];

external (cdecl) ctime_r(arg0:Pointer[time_t], arg1:Pointer[CChar]) : Pointer[CChar];

external __tzname : Array[Pointer[CChar], 2];

external __daylight : Int;

external __timezone : CLong;

external tzname : Array[Pointer[CChar], 2];

external (cdecl) tzset() : ;

external daylight : Int;

external timezone : CLong;

external (cdecl) stime(arg0:Pointer[time_t]) : Int;

external (cdecl) timegm(arg0:Pointer[Struct_tm]) : time_t;

external (cdecl) timelocal(arg0:Pointer[Struct_tm]) : time_t;

external (cdecl) dysize(arg0:Int) : Int;

external (cdecl) nanosleep(arg0:Pointer[Struct_timespec], arg1:Pointer[Struct_timespec]) : Int;

external (cdecl) clock_getres(arg0:clockid_t, arg1:Pointer[Struct_timespec]) : Int;

external (cdecl) clock_gettime(arg0:clockid_t, arg1:Pointer[Struct_timespec]) : Int;

external (cdecl) clock_settime(arg0:clockid_t, arg1:Pointer[Struct_timespec]) : Int;

external (cdecl) clock_nanosleep(arg0:clockid_t, arg1:Int, arg2:Pointer[Struct_timespec], arg3:Pointer[Struct_timespec]) : Int;

external (cdecl) clock_getcpuclockid(arg0:pid_t, arg1:Pointer[clockid_t]) : Int;

external (cdecl) timer_create(arg0:clockid_t, arg1:Pointer[Struct_sigevent], arg2:Pointer[timer_t]) : Int;

external (cdecl) timer_delete(arg0:timer_t) : Int;

external (cdecl) timer_settime(arg0:timer_t, arg1:Int, arg2:Pointer[Struct_itimerspec], arg3:Pointer[Struct_itimerspec]) : Int;

external (cdecl) timer_gettime(arg0:timer_t, arg1:Pointer[Struct_itimerspec]) : Int;

external (cdecl) timer_getoverrun(arg0:timer_t) : Int;

