webruby 0.1.2 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (518) hide show
  1. checksums.yaml +4 -4
  2. data/driver/driver.c +12 -0
  3. data/lib/webruby/config.rb +3 -3
  4. data/lib/webruby/environment.rb +1 -0
  5. data/lib/webruby/rake/files.rake +22 -22
  6. data/lib/webruby/rake/general.rake +0 -1
  7. data/lib/webruby/utility.rb +2 -0
  8. data/modules/emscripten/AUTHORS +12 -1
  9. data/modules/emscripten/cmake/Platform/Emscripten.cmake +152 -15
  10. data/modules/emscripten/em++ +2 -0
  11. data/modules/emscripten/em++.bat +1 -1
  12. data/modules/emscripten/em-config.bat +1 -1
  13. data/modules/emscripten/emar.bat +1 -1
  14. data/modules/emscripten/emcc +233 -95
  15. data/modules/emscripten/emcc.bat +1 -1
  16. data/modules/emscripten/emconfigure.bat +1 -1
  17. data/modules/emscripten/emmake.bat +1 -1
  18. data/modules/emscripten/emranlib.bat +1 -1
  19. data/modules/emscripten/emscripten.py +221 -217
  20. data/modules/emscripten/package.json +7 -0
  21. data/modules/emscripten/src/analyzer.js +1437 -1385
  22. data/modules/emscripten/src/compiler.js +30 -6
  23. data/modules/emscripten/src/compiler_phase.html +33 -0
  24. data/modules/emscripten/src/fastLong.js +6 -6
  25. data/modules/emscripten/src/headless.js +47 -656
  26. data/modules/emscripten/src/headlessCanvas.js +618 -0
  27. data/modules/emscripten/src/intertyper.js +1038 -899
  28. data/modules/emscripten/src/jsifier.js +818 -714
  29. data/modules/emscripten/src/library.js +1794 -2968
  30. data/modules/emscripten/src/library_browser.js +81 -16
  31. data/modules/emscripten/src/library_egl.js +9 -3
  32. data/modules/emscripten/src/library_fs.js +1585 -0
  33. data/modules/emscripten/src/library_gl.js +445 -202
  34. data/modules/emscripten/src/library_glfw.js +4 -1
  35. data/modules/emscripten/src/library_glut.js +61 -13
  36. data/modules/emscripten/src/library_idbfs.js +216 -0
  37. data/modules/emscripten/src/library_memfs.js +279 -0
  38. data/modules/emscripten/src/library_nodefs.js +234 -0
  39. data/modules/emscripten/src/library_openal.js +131 -150
  40. data/modules/emscripten/src/library_path.js +3 -0
  41. data/modules/emscripten/src/library_sdl.js +499 -229
  42. data/modules/emscripten/src/library_sockfs.js +576 -0
  43. data/modules/emscripten/src/library_tty.js +146 -0
  44. data/modules/emscripten/src/modules.js +30 -35
  45. data/modules/emscripten/src/parseTools.js +356 -161
  46. data/modules/emscripten/src/postamble.js +76 -31
  47. data/modules/emscripten/src/preamble.js +271 -41
  48. data/modules/emscripten/src/proxyClient.js +82 -0
  49. data/modules/emscripten/src/proxyWorker.js +143 -0
  50. data/modules/emscripten/src/relooper/Relooper.cpp +60 -24
  51. data/modules/emscripten/src/relooper/Relooper.h +3 -2
  52. data/modules/emscripten/src/relooper/emscripten/glue.js +20 -10
  53. data/modules/emscripten/src/relooper/fuzzer.py +19 -10
  54. data/modules/emscripten/src/relooper/test.cpp +50 -50
  55. data/modules/emscripten/src/relooper/test.txt +147 -30
  56. data/modules/emscripten/src/relooper/test2.c +13 -13
  57. data/modules/emscripten/src/relooper/test2.txt +17 -3
  58. data/modules/emscripten/src/relooper/test3.c +7 -7
  59. data/modules/emscripten/src/relooper/test3.txt +36 -7
  60. data/modules/emscripten/src/relooper/test4.cpp +7 -7
  61. data/modules/emscripten/src/relooper/test4.txt +28 -7
  62. data/modules/emscripten/src/relooper/test5.cpp +6 -6
  63. data/modules/emscripten/src/relooper/test5.txt +34 -10
  64. data/modules/emscripten/src/relooper/test6.cpp +4 -4
  65. data/modules/emscripten/src/relooper/test6.txt +17 -3
  66. data/modules/emscripten/src/relooper/test_dead.cpp +2 -2
  67. data/modules/emscripten/src/relooper/test_debug.cpp +4 -4
  68. data/modules/emscripten/src/relooper/test_debug.txt +17 -3
  69. data/modules/emscripten/src/relooper/test_fuzz1.cpp +9 -9
  70. data/modules/emscripten/src/relooper/test_fuzz1.txt +45 -5
  71. data/modules/emscripten/src/relooper/test_fuzz2.cpp +4 -4
  72. data/modules/emscripten/src/relooper/test_fuzz2.txt +18 -1
  73. data/modules/emscripten/src/relooper/test_fuzz3.cpp +5 -5
  74. data/modules/emscripten/src/relooper/test_fuzz3.txt +16 -0
  75. data/modules/emscripten/src/relooper/test_fuzz4.cpp +5 -5
  76. data/modules/emscripten/src/relooper/test_fuzz4.txt +25 -3
  77. data/modules/emscripten/src/relooper/test_fuzz5.cpp +10 -10
  78. data/modules/emscripten/src/relooper/test_fuzz5.txt +49 -15
  79. data/modules/emscripten/src/relooper/test_fuzz6.cpp +92 -92
  80. data/modules/emscripten/src/relooper/test_fuzz6.txt +201 -18
  81. data/modules/emscripten/src/relooper/test_inf.cpp +184 -184
  82. data/modules/emscripten/src/relooper/test_inf.txt +1078 -332
  83. data/modules/emscripten/src/runtime.js +69 -45
  84. data/modules/emscripten/src/settings.js +48 -919
  85. data/modules/emscripten/src/shell.html +1 -1
  86. data/modules/emscripten/src/shell.js +14 -8
  87. data/modules/emscripten/src/shell_sharedlib.js +18 -1
  88. data/modules/emscripten/src/simd.js +958 -0
  89. data/modules/emscripten/src/struct_info.json +1045 -0
  90. data/modules/emscripten/src/utility.js +11 -0
  91. data/modules/emscripten/system/bin/sdl-config +13 -0
  92. data/modules/emscripten/system/include/compat/ctype.h +17 -0
  93. data/modules/emscripten/system/include/compat/malloc.h +48 -0
  94. data/modules/emscripten/system/include/compat/math.h +14 -0
  95. data/modules/emscripten/system/include/compat/netdb.h +22 -0
  96. data/modules/emscripten/system/include/compat/stdarg.h +16 -0
  97. data/modules/emscripten/system/include/compat/stdlib.h +16 -0
  98. data/modules/emscripten/system/include/compat/string.h +17 -0
  99. data/modules/emscripten/system/include/compat/sys/socketvar.h +14 -0
  100. data/modules/emscripten/system/include/compat/sys/stat.h +20 -0
  101. data/modules/emscripten/system/include/{libc → compat}/sys/timeb.h +3 -7
  102. data/modules/emscripten/system/include/compat/time.h +18 -0
  103. data/modules/emscripten/system/include/compat/unistd.h +16 -0
  104. data/modules/emscripten/system/include/compat/xlocale.h +19 -0
  105. data/modules/emscripten/system/include/emscripten/emscripten.h +48 -7
  106. data/modules/emscripten/system/include/emscripten/vector.h +6 -0
  107. data/modules/emscripten/system/include/libc/aio.h +69 -0
  108. data/modules/emscripten/system/include/libc/alloca.h +13 -13
  109. data/modules/emscripten/system/include/libc/ar.h +19 -63
  110. data/modules/emscripten/system/include/libc/arpa/ftp.h +35 -0
  111. data/modules/emscripten/system/include/libc/arpa/inet.h +36 -0
  112. data/modules/emscripten/system/include/libc/arpa/nameser.h +467 -0
  113. data/modules/emscripten/system/include/libc/arpa/nameser_compat.h +2 -0
  114. data/modules/emscripten/system/include/libc/arpa/telnet.h +251 -0
  115. data/modules/emscripten/system/include/libc/arpa/tftp.h +31 -0
  116. data/modules/emscripten/system/include/libc/assert.h +9 -36
  117. data/modules/emscripten/system/include/libc/bits/alltypes.h +397 -0
  118. data/modules/emscripten/system/include/libc/bits/endian.h +1 -0
  119. data/modules/emscripten/system/include/libc/bits/errno.h +134 -0
  120. data/modules/emscripten/system/include/libc/bits/fcntl.h +38 -0
  121. data/modules/emscripten/system/include/libc/bits/fenv.h +34 -0
  122. data/modules/emscripten/system/include/libc/bits/float.h +17 -0
  123. data/modules/emscripten/system/include/libc/bits/io.h +0 -0
  124. data/modules/emscripten/system/include/libc/bits/ioctl.h +197 -0
  125. data/modules/emscripten/system/include/libc/bits/ipc.h +14 -0
  126. data/modules/emscripten/system/include/libc/bits/limits.h +8 -0
  127. data/modules/emscripten/system/include/libc/bits/mman.h +62 -0
  128. data/modules/emscripten/system/include/libc/bits/msg.h +16 -0
  129. data/modules/emscripten/system/include/libc/bits/posix.h +2 -0
  130. data/modules/emscripten/system/include/libc/bits/reg.h +19 -0
  131. data/modules/emscripten/system/include/libc/bits/setjmp.h +1 -0
  132. data/modules/emscripten/system/include/libc/bits/shm.h +18 -0
  133. data/modules/emscripten/system/include/libc/bits/signal.h +112 -0
  134. data/modules/emscripten/system/include/libc/bits/socket.h +17 -0
  135. data/modules/emscripten/system/include/libc/bits/stat.h +22 -0
  136. data/modules/emscripten/system/include/libc/bits/statfs.h +7 -0
  137. data/modules/emscripten/system/include/libc/bits/stdarg.h +4 -0
  138. data/modules/emscripten/system/include/libc/bits/stdint.h +20 -0
  139. data/modules/emscripten/system/include/libc/bits/syscall.h +696 -0
  140. data/modules/emscripten/system/include/libc/bits/termios.h +160 -0
  141. data/modules/emscripten/system/include/libc/bits/user.h +48 -0
  142. data/modules/emscripten/system/include/libc/byteswap.h +26 -0
  143. data/modules/emscripten/system/include/libc/complex.h +55 -54
  144. data/modules/emscripten/system/include/libc/cpio.h +29 -0
  145. data/modules/emscripten/system/include/libc/crypt.h +20 -0
  146. data/modules/emscripten/system/include/libc/ctype.h +58 -187
  147. data/modules/emscripten/system/include/libc/dirent.h +69 -6
  148. data/modules/emscripten/system/include/libc/dlfcn.h +42 -0
  149. data/modules/emscripten/system/include/libc/elf.h +2555 -0
  150. data/modules/emscripten/system/include/libc/endian.h +80 -1
  151. data/modules/emscripten/system/include/libc/err.h +25 -0
  152. data/modules/emscripten/system/include/libc/errno.h +23 -7
  153. data/modules/emscripten/system/include/libc/fcntl.h +175 -1
  154. data/modules/emscripten/system/include/libc/features.h +32 -0
  155. data/modules/emscripten/system/include/libc/fenv.h +28 -0
  156. data/modules/emscripten/system/include/libc/float.h +34 -0
  157. data/modules/emscripten/system/include/libc/fnmatch.h +24 -50
  158. data/modules/emscripten/system/include/libc/ftw.h +42 -0
  159. data/modules/emscripten/system/include/libc/getopt.h +22 -187
  160. data/modules/emscripten/system/include/libc/glob.h +42 -83
  161. data/modules/emscripten/system/include/libc/grp.h +37 -79
  162. data/modules/emscripten/system/include/libc/iconv.h +18 -56
  163. data/modules/emscripten/system/include/libc/ifaddrs.h +24 -53
  164. data/modules/emscripten/system/include/libc/inttypes.h +208 -271
  165. data/modules/emscripten/system/include/libc/iso646.h +5 -28
  166. data/modules/emscripten/system/include/libc/langinfo.h +88 -316
  167. data/modules/emscripten/system/include/libc/lastlog.h +1 -0
  168. data/modules/emscripten/system/include/libc/libgen.h +5 -13
  169. data/modules/emscripten/system/include/libc/libintl.h +25 -0
  170. data/modules/emscripten/system/include/libc/limits.h +140 -149
  171. data/modules/emscripten/system/include/libc/link.h +54 -0
  172. data/modules/emscripten/system/include/libc/locale.h +72 -70
  173. data/modules/emscripten/system/include/libc/malloc.h +0 -169
  174. data/modules/emscripten/system/include/libc/math.h +393 -573
  175. data/modules/emscripten/system/include/libc/memory.h +1 -0
  176. data/modules/emscripten/system/include/libc/mntent.h +44 -0
  177. data/modules/emscripten/system/include/libc/monetary.h +23 -0
  178. data/modules/emscripten/system/include/libc/mqueue.h +36 -0
  179. data/modules/emscripten/system/include/libc/net/ethernet.h +55 -0
  180. data/modules/emscripten/system/include/libc/net/if.h +135 -0
  181. data/modules/emscripten/system/include/libc/net/if_arp.h +133 -0
  182. data/modules/emscripten/system/include/libc/net/route.h +124 -0
  183. data/modules/emscripten/system/include/libc/netdb.h +161 -0
  184. data/modules/emscripten/system/include/libc/netinet/ether.h +14 -0
  185. data/modules/emscripten/system/include/libc/netinet/icmp6.h +305 -0
  186. data/modules/emscripten/system/include/libc/netinet/if_ether.h +126 -0
  187. data/modules/emscripten/system/include/libc/netinet/in.h +336 -0
  188. data/modules/emscripten/system/include/libc/netinet/in_systm.h +9 -0
  189. data/modules/emscripten/system/include/libc/netinet/ip.h +186 -0
  190. data/modules/emscripten/system/include/libc/netinet/ip6.h +142 -0
  191. data/modules/emscripten/system/include/libc/netinet/ip_icmp.h +192 -0
  192. data/modules/emscripten/system/include/libc/netinet/tcp.h +71 -0
  193. data/modules/emscripten/system/include/libc/netinet/udp.h +35 -0
  194. data/modules/emscripten/system/include/libc/netpacket/packet.h +44 -0
  195. data/modules/emscripten/system/include/libc/nl_types.h +22 -0
  196. data/modules/emscripten/system/include/libc/paths.h +30 -5
  197. data/modules/emscripten/system/include/libc/poll.h +46 -0
  198. data/modules/emscripten/system/include/libc/pthread.h +191 -331
  199. data/modules/emscripten/system/include/libc/pty.h +18 -0
  200. data/modules/emscripten/system/include/libc/pwd.h +33 -62
  201. data/modules/emscripten/system/include/libc/readme.txt +2 -2
  202. data/modules/emscripten/system/include/libc/regex.h +53 -93
  203. data/modules/emscripten/system/include/libc/resolv.h +144 -0
  204. data/modules/emscripten/system/include/libc/sched.h +124 -89
  205. data/modules/emscripten/system/include/libc/search.h +40 -48
  206. data/modules/emscripten/system/include/libc/semaphore.h +35 -0
  207. data/modules/emscripten/system/include/libc/setjmp.h +35 -13
  208. data/modules/emscripten/system/include/libc/shadow.h +44 -0
  209. data/modules/emscripten/system/include/libc/signal.h +245 -20
  210. data/modules/emscripten/system/include/libc/spawn.h +74 -0
  211. data/modules/emscripten/system/include/libc/stdalign.h +15 -0
  212. data/modules/emscripten/system/include/libc/stdarg.h +18 -43
  213. data/modules/emscripten/system/include/libc/stdbool.h +14 -0
  214. data/modules/emscripten/system/include/libc/stddef.h +12 -58
  215. data/modules/emscripten/system/include/libc/stdint.h +82 -458
  216. data/modules/emscripten/system/include/libc/stdio.h +184 -679
  217. data/modules/emscripten/system/include/libc/stdio_ext.h +34 -0
  218. data/modules/emscripten/system/include/libc/stdlib.h +146 -205
  219. data/modules/emscripten/system/include/libc/stdnoreturn.h +5 -0
  220. data/modules/emscripten/system/include/libc/string.h +86 -89
  221. data/modules/emscripten/system/include/libc/strings.h +27 -27
  222. data/modules/emscripten/system/include/libc/stropts.h +139 -0
  223. data/modules/emscripten/system/include/libc/sys/acct.h +75 -0
  224. data/modules/emscripten/system/include/libc/sys/cachectl.h +22 -0
  225. data/modules/emscripten/system/include/libc/sys/dir.h +0 -8
  226. data/modules/emscripten/system/include/libc/sys/epoll.h +67 -0
  227. data/modules/emscripten/system/include/libc/sys/errno.h +2 -190
  228. data/modules/emscripten/system/include/libc/sys/eventfd.h +26 -0
  229. data/modules/emscripten/system/include/libc/sys/fcntl.h +2 -4
  230. data/modules/emscripten/system/include/libc/sys/file.h +20 -1
  231. data/modules/emscripten/system/include/libc/sys/fsuid.h +20 -0
  232. data/modules/emscripten/system/include/libc/sys/inotify.h +57 -0
  233. data/modules/emscripten/system/include/libc/sys/io.h +17 -0
  234. data/modules/emscripten/system/include/libc/sys/ioctl.h +14 -0
  235. data/modules/emscripten/system/include/libc/sys/ipc.h +42 -0
  236. data/modules/emscripten/system/include/{sys/sysctl.h → libc/sys/klog.h} +4 -4
  237. data/modules/emscripten/system/include/libc/sys/mman.h +55 -0
  238. data/modules/emscripten/system/include/libc/sys/mount.h +72 -0
  239. data/modules/emscripten/system/include/libc/sys/msg.h +52 -0
  240. data/modules/emscripten/system/include/libc/sys/mtio.h +188 -0
  241. data/modules/emscripten/system/include/libc/sys/param.h +29 -19
  242. data/modules/emscripten/system/include/libc/sys/personality.h +46 -0
  243. data/modules/emscripten/system/include/libc/sys/poll.h +2 -0
  244. data/modules/emscripten/system/include/libc/sys/prctl.h +101 -0
  245. data/modules/emscripten/system/include/libc/sys/procfs.h +65 -0
  246. data/modules/emscripten/system/include/libc/sys/ptrace.h +96 -0
  247. data/modules/emscripten/system/include/libc/sys/reboot.h +20 -0
  248. data/modules/emscripten/system/include/libc/sys/reg.h +9 -0
  249. data/modules/emscripten/system/include/libc/sys/resource.h +89 -45
  250. data/modules/emscripten/system/include/libc/sys/select.h +42 -0
  251. data/modules/emscripten/system/include/libc/sys/sem.h +82 -0
  252. data/modules/emscripten/system/include/libc/sys/sendfile.h +22 -0
  253. data/modules/emscripten/system/include/libc/sys/shm.h +61 -0
  254. data/modules/emscripten/system/include/libc/sys/signal.h +1 -315
  255. data/modules/emscripten/system/include/libc/sys/signalfd.h +44 -0
  256. data/modules/emscripten/system/include/libc/sys/socket.h +299 -0
  257. data/modules/emscripten/system/include/libc/sys/stat.h +95 -204
  258. data/modules/emscripten/system/include/libc/sys/statfs.h +32 -0
  259. data/modules/emscripten/system/include/libc/sys/statvfs.h +57 -0
  260. data/modules/emscripten/system/include/libc/sys/stropts.h +1 -0
  261. data/modules/emscripten/system/include/libc/sys/swap.h +21 -0
  262. data/modules/emscripten/system/include/libc/sys/syscall.h +6 -0
  263. data/modules/emscripten/system/include/libc/sys/sysctl.h +17 -0
  264. data/modules/emscripten/system/include/libc/sys/sysinfo.h +36 -0
  265. data/modules/emscripten/system/include/libc/sys/syslog.h +1 -0
  266. data/modules/emscripten/system/include/libc/sys/sysmacros.h +15 -0
  267. data/modules/emscripten/system/include/libc/sys/termios.h +2 -280
  268. data/modules/emscripten/system/include/libc/sys/time.h +40 -68
  269. data/modules/emscripten/system/include/libc/sys/timerfd.h +24 -0
  270. data/modules/emscripten/system/include/libc/sys/times.h +14 -16
  271. data/modules/emscripten/system/include/libc/sys/timex.h +98 -0
  272. data/modules/emscripten/system/include/libc/sys/ttydefaults.h +34 -92
  273. data/modules/emscripten/system/include/libc/sys/types.h +87 -481
  274. data/modules/emscripten/system/include/libc/sys/ucontext.h +1 -0
  275. data/modules/emscripten/system/include/libc/sys/uio.h +48 -0
  276. data/modules/emscripten/system/include/libc/sys/un.h +32 -0
  277. data/modules/emscripten/system/include/libc/sys/user.h +16 -0
  278. data/modules/emscripten/system/include/libc/sys/utsname.h +30 -0
  279. data/modules/emscripten/system/include/libc/sys/vfs.h +1 -0
  280. data/modules/emscripten/system/include/libc/sys/wait.h +41 -26
  281. data/modules/emscripten/system/include/libc/sys/xattr.h +30 -0
  282. data/modules/emscripten/system/include/libc/syscall.h +1 -0
  283. data/modules/emscripten/system/include/libc/sysexits.h +21 -0
  284. data/modules/emscripten/system/include/libc/syslog.h +104 -0
  285. data/modules/emscripten/system/include/libc/tar.h +27 -33
  286. data/modules/emscripten/system/include/libc/termios.h +40 -1
  287. data/modules/emscripten/system/include/libc/tgmath.h +270 -0
  288. data/modules/emscripten/system/include/libc/time.h +96 -237
  289. data/modules/emscripten/system/include/libc/ucontext.h +25 -0
  290. data/modules/emscripten/system/include/libc/ulimit.h +17 -0
  291. data/modules/emscripten/system/include/libc/unistd.h +517 -4
  292. data/modules/emscripten/system/include/libc/utime.h +15 -3
  293. data/modules/emscripten/system/include/libc/utmp.h +40 -1
  294. data/modules/emscripten/system/include/libc/utmpx.h +58 -0
  295. data/modules/emscripten/system/include/libc/values.h +39 -0
  296. data/modules/emscripten/system/include/libc/wchar.h +164 -175
  297. data/modules/emscripten/system/include/libc/wctype.h +67 -37
  298. data/modules/emscripten/system/include/libc/wordexp.h +31 -42
  299. data/modules/emscripten/system/include/libcxx/__locale +6 -6
  300. data/modules/emscripten/system/include/libcxx/locale +1 -1
  301. data/modules/emscripten/system/lib/libc/musl/readme.txt +9 -1
  302. data/modules/emscripten/system/lib/libc/musl/src/internal/locale_impl.h +5 -0
  303. data/modules/emscripten/system/lib/libc/musl/src/internal/stdio_impl.h +92 -0
  304. data/modules/emscripten/system/lib/libc/musl/src/locale/big5.h +1085 -0
  305. data/modules/emscripten/system/lib/libc/musl/src/locale/codepages.h +238 -0
  306. data/modules/emscripten/system/lib/libc/musl/src/locale/gb18030.h +1836 -0
  307. data/modules/emscripten/system/lib/libc/musl/src/locale/hkscs.h +390 -0
  308. data/modules/emscripten/system/lib/libc/musl/src/locale/iconv.c +454 -0
  309. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalnum_l.c +6 -0
  310. data/modules/emscripten/system/lib/libc/musl/src/locale/iswalpha_l.c +6 -0
  311. data/modules/emscripten/system/lib/libc/musl/src/locale/iswblank_l.c +6 -0
  312. data/modules/emscripten/system/lib/libc/musl/src/locale/iswcntrl_l.c +6 -0
  313. data/modules/emscripten/system/lib/libc/musl/src/locale/iswctype_l.c +9 -0
  314. data/modules/emscripten/system/lib/libc/musl/src/locale/iswdigit_l.c +6 -0
  315. data/modules/emscripten/system/lib/libc/musl/src/locale/iswgraph_l.c +6 -0
  316. data/modules/emscripten/system/lib/libc/musl/src/locale/iswlower_l.c +6 -0
  317. data/modules/emscripten/system/lib/libc/musl/src/locale/iswprint_l.c +6 -0
  318. data/modules/emscripten/system/lib/libc/musl/src/locale/iswpunct_l.c +6 -0
  319. data/modules/emscripten/system/lib/libc/musl/src/locale/iswspace_l.c +6 -0
  320. data/modules/emscripten/system/lib/libc/musl/src/locale/iswupper_l.c +6 -0
  321. data/modules/emscripten/system/lib/libc/musl/src/locale/iswxdigit_l.c +6 -0
  322. data/modules/emscripten/system/lib/libc/musl/src/locale/jis0208.h +550 -0
  323. data/modules/emscripten/system/lib/libc/musl/src/locale/ksc.h +640 -0
  324. data/modules/emscripten/system/lib/libc/musl/src/locale/legacychars.h +39 -0
  325. data/modules/emscripten/system/lib/libc/musl/src/locale/strfmon.c +101 -0
  326. data/modules/emscripten/system/lib/libc/musl/src/locale/strxfrm.c +18 -0
  327. data/modules/emscripten/system/lib/libc/musl/src/locale/towctrans_l.c +6 -0
  328. data/modules/emscripten/system/lib/libc/musl/src/locale/towlower_l.c +9 -0
  329. data/modules/emscripten/system/lib/libc/musl/src/locale/towupper_l.c +9 -0
  330. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll.c +16 -0
  331. data/modules/emscripten/system/lib/libc/musl/src/locale/wcscoll_l.c +6 -0
  332. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm.c +21 -0
  333. data/modules/emscripten/system/lib/libc/musl/src/locale/wcsxfrm_l.c +6 -0
  334. data/modules/emscripten/system/lib/libc/musl/src/locale/wctrans_l.c +6 -0
  335. data/modules/emscripten/system/lib/libc/musl/src/locale/wctype_l.c +9 -0
  336. data/modules/emscripten/system/lib/libc/musl/src/stdio/fwprintf.c +13 -0
  337. data/modules/emscripten/system/lib/libc/musl/src/stdio/swprintf.c +14 -0
  338. data/modules/emscripten/system/lib/libc/musl/src/stdio/vfwprintf.c +361 -0
  339. data/modules/emscripten/system/lib/libc/musl/src/stdio/vswprintf.c +53 -0
  340. data/modules/emscripten/system/lib/libc/musl/src/stdio/vwprintf.c +7 -0
  341. data/modules/emscripten/system/lib/libc/musl/src/stdio/wprintf.c +13 -0
  342. data/modules/emscripten/system/lib/libcextra.symbols +44 -0
  343. data/modules/emscripten/system/lib/libcxx/exception.cpp +3 -3
  344. data/modules/emscripten/system/lib/libcxx/locale.cpp +12 -12
  345. data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +1 -1
  346. data/modules/emscripten/tools/asm_module.py +2 -0
  347. data/modules/emscripten/tools/autodebugger.py +3 -1
  348. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +0 -4835
  349. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +0 -6495
  350. data/modules/emscripten/tools/file_packager.py +53 -56
  351. data/modules/emscripten/tools/find_bigfuncs.py +2 -2
  352. data/modules/emscripten/tools/find_bigvars.py +24 -0
  353. data/modules/emscripten/tools/gen_struct_info.py +509 -0
  354. data/modules/emscripten/tools/gen_struct_info.pyc +0 -0
  355. data/modules/emscripten/tools/js-optimizer.js +177 -86
  356. data/modules/emscripten/tools/js_optimizer.py +54 -19
  357. data/modules/emscripten/tools/js_optimizer.pyc +0 -0
  358. data/modules/emscripten/tools/jsrun.py +17 -7
  359. data/modules/emscripten/tools/jsrun.pyc +0 -0
  360. data/modules/emscripten/tools/response_file.py +2 -2
  361. data/modules/emscripten/tools/response_file.pyc +0 -0
  362. data/modules/emscripten/tools/shared.py +257 -123
  363. data/modules/emscripten/tools/shared.pyc +0 -0
  364. data/modules/emscripten/tools/source-maps/sourcemapper.js +37 -6
  365. data/modules/emscripten/tools/tempfiles.py +1 -0
  366. data/modules/emscripten/tools/tempfiles.pyc +0 -0
  367. data/modules/emscripten/tools/test-js-optimizer-asm-minlast-output.js +2 -0
  368. data/modules/emscripten/tools/test-js-optimizer-asm-minlast.js +8 -0
  369. data/modules/emscripten/tools/test-js-optimizer-asm-outline1-output.js +412 -169
  370. data/modules/emscripten/tools/test-js-optimizer-asm-outline1.js +88 -0
  371. data/modules/emscripten/tools/test-js-optimizer-asm-outline2-output.js +311 -265
  372. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +0 -20
  373. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +0 -21
  374. data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +2 -2
  375. data/modules/emscripten/tools/test-js-optimizer-regs-output.js +8 -8
  376. data/modules/emscripten/tools/test-js-optimizer-regs.js +1 -1
  377. data/modules/emscripten/tools/validate_asmjs.py +82 -0
  378. data/modules/mruby/Rakefile +2 -2
  379. data/modules/mruby/include/mruby/class.h +2 -2
  380. data/modules/mruby/include/mruby/compile.h +12 -4
  381. data/modules/mruby/include/mruby/data.h +8 -3
  382. data/modules/mruby/include/mruby/debug.h +65 -0
  383. data/modules/mruby/include/mruby/dump.h +10 -2
  384. data/modules/mruby/include/mruby/irep.h +1 -0
  385. data/modules/mruby/include/mruby/string.h +2 -1
  386. data/modules/mruby/include/mruby/value.h +20 -13
  387. data/modules/mruby/include/mruby/variable.h +1 -0
  388. data/modules/mruby/include/mruby.h +5 -6
  389. data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +6 -4
  390. data/modules/mruby/mrbgems/mruby-math/src/math.c +4 -0
  391. data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +1 -1
  392. data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +1 -1
  393. data/modules/mruby/mrbgems/mruby-random/src/random.c +1 -4
  394. data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +25 -16
  395. data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +4 -0
  396. data/modules/mruby/mrbgems/mruby-struct/src/struct.c +1 -1
  397. data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +51 -0
  398. data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +22 -0
  399. data/modules/mruby/mrbgems/mruby-time/src/time.c +38 -60
  400. data/modules/mruby/mrblib/class.rb +2 -2
  401. data/modules/mruby/src/backtrace.c +96 -23
  402. data/modules/mruby/src/class.c +43 -41
  403. data/modules/mruby/src/codegen.c +52 -46
  404. data/modules/mruby/src/debug.c +214 -0
  405. data/modules/mruby/src/dump.c +245 -17
  406. data/modules/mruby/src/error.c +14 -6
  407. data/modules/mruby/src/etc.c +17 -10
  408. data/modules/mruby/src/gc.c +9 -9
  409. data/modules/mruby/src/kernel.c +1 -1
  410. data/modules/mruby/src/load.c +137 -1
  411. data/modules/mruby/src/object.c +1 -1
  412. data/modules/mruby/src/parse.y +162 -37
  413. data/modules/mruby/src/state.c +2 -0
  414. data/modules/mruby/src/string.c +28 -19
  415. data/modules/mruby/src/symbol.c +0 -1
  416. data/modules/mruby/src/variable.c +12 -15
  417. data/modules/mruby/src/vm.c +38 -22
  418. data/modules/mruby/tasks/mrbgem_spec.rake +6 -4
  419. data/modules/mruby/tasks/mrbgems_test.rake +9 -9
  420. data/modules/mruby/tasks/mruby_build_gem.rake +9 -0
  421. data/modules/mruby/tasks/toolchains/androideabi.rake +2 -0
  422. data/modules/mruby/test/driver.c +3 -3
  423. data/modules/mruby/test/t/array.rb +13 -0
  424. data/modules/mruby/test/t/class.rb +28 -0
  425. data/modules/mruby/test/t/exception.rb +10 -0
  426. data/modules/mruby/test/t/literals.rb +50 -0
  427. data/modules/mruby/test/t/module.rb +22 -0
  428. data/modules/mruby/test/t/proc.rb +37 -0
  429. data/modules/mruby/test/t/string.rb +20 -21
  430. data/modules/mruby/tools/mrbc/mrbc.c +2 -4
  431. data/scripts/gen_post.rb +1 -0
  432. data/scripts/gen_require.rb +107 -0
  433. data/templates/minimal/Rakefile +20 -0
  434. metadata +210 -88
  435. data/driver/main.c +0 -40
  436. data/modules/emscripten/cmake/Platform/Emscripten_unix.cmake +0 -24
  437. data/modules/emscripten/emlibtool +0 -11
  438. data/modules/emscripten/emlibtool.bat +0 -2
  439. data/modules/emscripten/src/framework.js +0 -257
  440. data/modules/emscripten/system/include/bsd/float.h +0 -91
  441. data/modules/emscripten/system/include/bsd/readme.txt +0 -2
  442. data/modules/emscripten/system/include/bsd/sys/mman.h +0 -180
  443. data/modules/emscripten/system/include/bsd/sys/utsname.h +0 -70
  444. data/modules/emscripten/system/include/dlfcn.h +0 -31
  445. data/modules/emscripten/system/include/err.h +0 -95
  446. data/modules/emscripten/system/include/features.h +0 -3
  447. data/modules/emscripten/system/include/libc/_ansi.h +0 -135
  448. data/modules/emscripten/system/include/libc/_syslist.h +0 -40
  449. data/modules/emscripten/system/include/libc/argz.h +0 -33
  450. data/modules/emscripten/system/include/libc/envlock.h +0 -15
  451. data/modules/emscripten/system/include/libc/envz.h +0 -16
  452. data/modules/emscripten/system/include/libc/fastmath.h +0 -13
  453. data/modules/emscripten/system/include/libc/ieeefp.h +0 -256
  454. data/modules/emscripten/system/include/libc/machine/_default_types.h +0 -121
  455. data/modules/emscripten/system/include/libc/machine/_types.h +0 -8
  456. data/modules/emscripten/system/include/libc/machine/ansi.h +0 -1
  457. data/modules/emscripten/system/include/libc/machine/endian.h +0 -31
  458. data/modules/emscripten/system/include/libc/machine/fastmath.h +0 -100
  459. data/modules/emscripten/system/include/libc/machine/ieeefp.h +0 -376
  460. data/modules/emscripten/system/include/libc/machine/malloc.h +0 -8
  461. data/modules/emscripten/system/include/libc/machine/param.h +0 -1
  462. data/modules/emscripten/system/include/libc/machine/setjmp-dj.h +0 -43
  463. data/modules/emscripten/system/include/libc/machine/setjmp.h +0 -361
  464. data/modules/emscripten/system/include/libc/machine/stdlib.h +0 -8
  465. data/modules/emscripten/system/include/libc/machine/termios.h +0 -1
  466. data/modules/emscripten/system/include/libc/machine/time.h +0 -19
  467. data/modules/emscripten/system/include/libc/machine/types.h +0 -30
  468. data/modules/emscripten/system/include/libc/newlib.h +0 -2
  469. data/modules/emscripten/system/include/libc/process.h +0 -44
  470. data/modules/emscripten/system/include/libc/reent.h +0 -183
  471. data/modules/emscripten/system/include/libc/regdef.h +0 -7
  472. data/modules/emscripten/system/include/libc/sys/_default_fcntl.h +0 -223
  473. data/modules/emscripten/system/include/libc/sys/_types.h +0 -93
  474. data/modules/emscripten/system/include/libc/sys/cdefs.h +0 -123
  475. data/modules/emscripten/system/include/libc/sys/config.h +0 -255
  476. data/modules/emscripten/system/include/libc/sys/custom_file.h +0 -2
  477. data/modules/emscripten/system/include/libc/sys/dirent.h +0 -58
  478. data/modules/emscripten/system/include/libc/sys/features.h +0 -212
  479. data/modules/emscripten/system/include/libc/sys/iconvnls.h +0 -77
  480. data/modules/emscripten/system/include/libc/sys/lock.h +0 -24
  481. data/modules/emscripten/system/include/libc/sys/queue.h +0 -471
  482. data/modules/emscripten/system/include/libc/sys/reent.h +0 -843
  483. data/modules/emscripten/system/include/libc/sys/sched.h +0 -67
  484. data/modules/emscripten/system/include/libc/sys/stdio.h +0 -27
  485. data/modules/emscripten/system/include/libc/sys/string.h +0 -2
  486. data/modules/emscripten/system/include/libc/sys/syslimits.h +0 -65
  487. data/modules/emscripten/system/include/libc/sys/unistd.h +0 -514
  488. data/modules/emscripten/system/include/libc/sys/utime.h +0 -26
  489. data/modules/emscripten/system/include/libc/unctrl.h +0 -46
  490. data/modules/emscripten/system/include/memory.h +0 -10
  491. data/modules/emscripten/system/include/mntent.h +0 -23
  492. data/modules/emscripten/system/include/net/arpa/inet.h +0 -32
  493. data/modules/emscripten/system/include/net/arpa/nameser.h +0 -535
  494. data/modules/emscripten/system/include/net/arpa/nameser_compat.h +0 -187
  495. data/modules/emscripten/system/include/net/if.h +0 -106
  496. data/modules/emscripten/system/include/net/netinet/in.h +0 -230
  497. data/modules/emscripten/system/include/net/netinet/tcp.h +0 -246
  498. data/modules/emscripten/system/include/net/resolv.h +0 -389
  499. data/modules/emscripten/system/include/netdb.h +0 -130
  500. data/modules/emscripten/system/include/nl_types.h +0 -19
  501. data/modules/emscripten/system/include/poll.h +0 -3
  502. data/modules/emscripten/system/include/pty.h +0 -6
  503. data/modules/emscripten/system/include/semaphore.h +0 -31
  504. data/modules/emscripten/system/include/spawn.h +0 -105
  505. data/modules/emscripten/system/include/stdbool.h +0 -16
  506. data/modules/emscripten/system/include/sys/bitypes.h +0 -3
  507. data/modules/emscripten/system/include/sys/io.h +0 -14
  508. data/modules/emscripten/system/include/sys/ioctl.h +0 -78
  509. data/modules/emscripten/system/include/sys/poll.h +0 -31
  510. data/modules/emscripten/system/include/sys/select.h +0 -16
  511. data/modules/emscripten/system/include/sys/sendfile.h +0 -16
  512. data/modules/emscripten/system/include/sys/socket.h +0 -247
  513. data/modules/emscripten/system/include/sys/socketvar.h +0 -3
  514. data/modules/emscripten/system/include/sys/statvfs.h +0 -32
  515. data/modules/emscripten/system/include/sys/uio.h +0 -22
  516. data/modules/emscripten/system/include/sys/un.h +0 -66
  517. data/modules/emscripten/system/include/sysexits.h +0 -108
  518. data/modules/emscripten/system/include/xlocale.h +0 -47
@@ -1,602 +1,422 @@
1
- #ifndef _MATH_H_
1
+ #ifndef _MATH_H
2
+ #define _MATH_H
2
3
 
3
- #define _MATH_H_
4
+ #ifdef __cplusplus
5
+ extern "C" {
6
+ #endif
4
7
 
5
- #include <sys/reent.h>
6
- #include <machine/ieeefp.h>
7
- #include "_ansi.h"
8
+ #include <features.h>
8
9
 
9
- _BEGIN_STD_C
10
+ #define __NEED_float_t
11
+ #define __NEED_double_t
12
+ #include <bits/alltypes.h>
10
13
 
11
- /* __dmath, __fmath, and __ldmath are only here for backwards compatibility
12
- * in case any code used them. They are no longer used by Newlib, itself,
13
- * other than legacy. */
14
- union __dmath
15
- {
16
- double d;
17
- __ULong i[2];
18
- };
14
+ #if 100*__GNUC__+__GNUC_MINOR__ >= 303
15
+ #define NAN __builtin_nanf("")
16
+ #define INFINITY __builtin_inff()
17
+ #else
18
+ #define NAN (0.0f/0.0f)
19
+ #define INFINITY 1e40f
20
+ #endif
19
21
 
20
- union __fmath
21
- {
22
- float f;
23
- __ULong i[1];
24
- };
22
+ #define HUGE_VALF INFINITY
23
+ #define HUGE_VAL ((double)INFINITY)
24
+ #define HUGE_VALL ((long double)INFINITY)
25
+
26
+ #define MATH_ERRNO 1
27
+ #define MATH_ERREXCEPT 2
28
+ #define math_errhandling 2
29
+
30
+ #define FP_ILOGBNAN (-1-(int)(((unsigned)-1)>>1))
31
+ #define FP_ILOGB0 FP_ILOGBNAN
32
+
33
+ #define FP_NAN 0
34
+ #define FP_INFINITE 1
35
+ #define FP_ZERO 2
36
+ #define FP_SUBNORMAL 3
37
+ #define FP_NORMAL 4
25
38
 
26
- #if defined(_HAVE_LONG_DOUBLE)
27
- union __ldmath
39
+ int __fpclassify(double);
40
+ int __fpclassifyf(float);
41
+ int __fpclassifyl(long double);
42
+
43
+ static __inline unsigned __FLOAT_BITS(float __f)
28
44
  {
29
- long double ld;
30
- __ULong i[4];
31
- };
32
- #endif
45
+ union {float __f; unsigned __i;} __u = {__f};
46
+ return __u.__i;
47
+ }
48
+ static __inline unsigned long long __DOUBLE_BITS(double __f)
49
+ {
50
+ union {double __f; unsigned long long __i;} __u = {__f};
51
+ return __u.__i;
52
+ }
53
+
54
+ #define fpclassify(x) ( \
55
+ sizeof(x) == sizeof(float) ? __fpclassifyf(x) : \
56
+ sizeof(x) == sizeof(double) ? __fpclassify(x) : \
57
+ __fpclassifyl(x) )
58
+
59
+ #define isinf(x) ( \
60
+ sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) == 0x7f800000 : \
61
+ sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) == 0x7ffULL<<52 : \
62
+ __fpclassifyl(x) == FP_INFINITE)
63
+
64
+ #define isnan(x) ( \
65
+ sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) > 0x7f800000 : \
66
+ sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) > 0x7ffULL<<52 : \
67
+ __fpclassifyl(x) == FP_NAN)
68
+
69
+ #define isnormal(x) ( \
70
+ sizeof(x) == sizeof(float) ? ((__FLOAT_BITS(x)+0x00800000) & 0x7fffffff) >= 0x01000000 : \
71
+ sizeof(x) == sizeof(double) ? ((__DOUBLE_BITS(x)+(1ULL<<52)) & -1ULL>>1) >= 1ULL<<53 : \
72
+ __fpclassifyl(x) == FP_NORMAL)
73
+
74
+ #define isfinite(x) ( \
75
+ sizeof(x) == sizeof(float) ? (__FLOAT_BITS(x) & 0x7fffffff) < 0x7f800000 : \
76
+ sizeof(x) == sizeof(double) ? (__DOUBLE_BITS(x) & -1ULL>>1) < 0x7ffULL<<52 : \
77
+ __fpclassifyl(x) > FP_INFINITE)
78
+
79
+ int __signbit(double);
80
+ int __signbitf(float);
81
+ int __signbitl(long double);
82
+
83
+ #define signbit(x) ( \
84
+ sizeof(x) == sizeof(float) ? (int)(__FLOAT_BITS(x)>>31) : \
85
+ sizeof(x) == sizeof(double) ? (int)(__DOUBLE_BITS(x)>>63) : \
86
+ __signbitl(x) )
87
+
88
+ #define isunordered(x,y) (isnan((x)) ? ((void)(y),1) : isnan((y)))
89
+
90
+ #define __ISREL_DEF(rel, op, type) \
91
+ static __inline int __is##rel(type __x, type __y) \
92
+ { return !isunordered(__x,__y) && __x op __y; }
93
+
94
+ __ISREL_DEF(lessf, <, float)
95
+ __ISREL_DEF(less, <, double)
96
+ __ISREL_DEF(lessl, <, long double)
97
+ __ISREL_DEF(lessequalf, <=, float)
98
+ __ISREL_DEF(lessequal, <=, double)
99
+ __ISREL_DEF(lessequall, <=, long double)
100
+ __ISREL_DEF(lessgreaterf, !=, float)
101
+ __ISREL_DEF(lessgreater, !=, double)
102
+ __ISREL_DEF(lessgreaterl, !=, long double)
103
+ __ISREL_DEF(greaterf, >, float)
104
+ __ISREL_DEF(greater, >, double)
105
+ __ISREL_DEF(greaterl, >, long double)
106
+ __ISREL_DEF(greaterequalf, >=, float)
107
+ __ISREL_DEF(greaterequal, >=, double)
108
+ __ISREL_DEF(greaterequall, >=, long double)
109
+
110
+ #define __tg_pred_2(x, y, p) ( \
111
+ sizeof((x)+(y)) == sizeof(float) ? p##f(x, y) : \
112
+ sizeof((x)+(y)) == sizeof(double) ? p(x, y) : \
113
+ p##l(x, y) )
114
+
115
+ #define isless(x, y) __tg_pred_2(x, y, __isless)
116
+ #define islessequal(x, y) __tg_pred_2(x, y, __islessequal)
117
+ #define islessgreater(x, y) __tg_pred_2(x, y, __islessgreater)
118
+ #define isgreater(x, y) __tg_pred_2(x, y, __isgreater)
119
+ #define isgreaterequal(x, y) __tg_pred_2(x, y, __isgreaterequal)
120
+
121
+ double acos(double);
122
+ float acosf(float);
123
+ long double acosl(long double);
124
+
125
+ double acosh(double);
126
+ float acoshf(float);
127
+ long double acoshl(long double);
128
+
129
+ double asin(double);
130
+ float asinf(float);
131
+ long double asinl(long double);
132
+
133
+ double asinh(double);
134
+ float asinhf(float);
135
+ long double asinhl(long double);
136
+
137
+ double atan(double);
138
+ float atanf(float);
139
+ long double atanl(long double);
140
+
141
+ double atan2(double, double);
142
+ float atan2f(float, float);
143
+ long double atan2l(long double, long double);
144
+
145
+ double atanh(double);
146
+ float atanhf(float);
147
+ long double atanhl(long double);
148
+
149
+ double cbrt(double);
150
+ float cbrtf(float);
151
+ long double cbrtl(long double);
152
+
153
+ double ceil(double);
154
+ float ceilf(float);
155
+ long double ceill(long double);
156
+
157
+ double copysign(double, double);
158
+ float copysignf(float, float);
159
+ long double copysignl(long double, long double);
160
+
161
+ double cos(double);
162
+ float cosf(float);
163
+ long double cosl(long double);
164
+
165
+ double cosh(double);
166
+ float coshf(float);
167
+ long double coshl(long double);
168
+
169
+ double erf(double);
170
+ float erff(float);
171
+ long double erfl(long double);
172
+
173
+ double erfc(double);
174
+ float erfcf(float);
175
+ long double erfcl(long double);
176
+
177
+ double exp(double);
178
+ float expf(float);
179
+ long double expl(long double);
180
+
181
+ double exp2(double);
182
+ float exp2f(float);
183
+ long double exp2l(long double);
184
+
185
+ double expm1(double);
186
+ float expm1f(float);
187
+ long double expm1l(long double);
188
+
189
+ double fabs(double);
190
+ float fabsf(float);
191
+ long double fabsl(long double);
192
+
193
+ double fdim(double, double);
194
+ float fdimf(float, float);
195
+ long double fdiml(long double, long double);
196
+
197
+ double floor(double);
198
+ float floorf(float);
199
+ long double floorl(long double);
200
+
201
+ double fma(double, double, double);
202
+ float fmaf(float, float, float);
203
+ long double fmal(long double, long double, long double);
204
+
205
+ double fmax(double, double);
206
+ float fmaxf(float, float);
207
+ long double fmaxl(long double, long double);
33
208
 
34
- /* Natural log of 2 */
35
- #define _M_LN2 0.693147180559945309417
36
-
37
- #if defined(__GNUC__) && \
38
- ( (__GNUC__ >= 4) || \
39
- ( (__GNUC__ >= 3) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ >= 3) ) )
40
-
41
- /* gcc >= 3.3 implicitly defines builtins for HUGE_VALx values. */
42
-
43
- # ifndef HUGE_VAL
44
- # define HUGE_VAL (__builtin_huge_val())
45
- # endif
46
-
47
- # ifndef HUGE_VALF
48
- # define HUGE_VALF (__builtin_huge_valf())
49
- # endif
50
-
51
- # ifndef HUGE_VALL
52
- # define HUGE_VALL (__builtin_huge_vall())
53
- # endif
54
-
55
- # ifndef INFINITY
56
- # define INFINITY (__builtin_inff())
57
- # endif
58
-
59
- # ifndef NAN
60
- # define NAN (__builtin_nanf(""))
61
- # endif
62
-
63
- #else /* !gcc >= 3.3 */
64
-
65
- /* No builtins. Use fixed defines instead. (All 3 HUGE plus the INFINITY
66
- * and NAN macros are required to be constant expressions. Using a variable--
67
- * even a static const--does not meet this requirement, as it cannot be
68
- * evaluated at translation time.)
69
- * The infinities are done using numbers that are far in excess of
70
- * something that would be expected to be encountered in a floating-point
71
- * implementation. (A more certain way uses values from float.h, but that is
72
- * avoided because system includes are not supposed to include each other.)
73
- * This method might produce warnings from some compilers. (It does in
74
- * newer GCCs, but not for ones that would hit this #else.) If this happens,
75
- * please report details to the Newlib mailing list. */
76
-
77
- #ifndef HUGE_VAL
78
- #define HUGE_VAL (1.0e999999999)
79
- #endif
80
-
81
- #ifndef HUGE_VALF
82
- #define HUGE_VALF (1.0e999999999F)
83
- #endif
84
-
85
- #if !defined(HUGE_VALL) && defined(_HAVE_LONG_DOUBLE)
86
- #define HUGE_VALL (1.0e999999999L)
87
- #endif
88
-
89
- #if !defined(INFINITY)
90
- #define INFINITY (HUGE_VALF)
91
- #endif
92
-
93
- #if !defined(NAN)
94
- #if defined(__GNUC__) && defined(__cplusplus)
95
- /* Exception: older g++ versions warn about the divide by 0 used in the
96
- * normal case (even though older gccs do not). This trick suppresses the
97
- * warning, but causes errors for plain gcc, so is only used in the one
98
- * special case. */
99
- static const union { __ULong __i[1]; float __d; } __Nanf = {0x7FC00000};
100
- #define NAN (__Nanf.__d)
101
- #else
102
- #define NAN (0.0F/0.0F)
103
- #endif
104
- #endif
105
-
106
- #endif /* !gcc >= 3.3 */
107
-
108
- /* Reentrant ANSI C functions. */
109
-
110
- #ifndef __math_68881
111
- extern double atan _PARAMS((double));
112
- extern double cos _PARAMS((double));
113
- extern double sin _PARAMS((double));
114
- extern double tan _PARAMS((double));
115
- extern double tanh _PARAMS((double));
116
- extern double frexp _PARAMS((double, int *));
117
- extern double modf _PARAMS((double, double *));
118
- extern double ceil _PARAMS((double));
119
- extern double fabs _PARAMS((double));
120
- extern double floor _PARAMS((double));
121
- #endif /* ! defined (__math_68881) */
122
-
123
- /* Non reentrant ANSI C functions. */
124
-
125
- #ifndef _REENT_ONLY
126
- #ifndef __math_68881
127
- extern double acos _PARAMS((double));
128
- extern double asin _PARAMS((double));
129
- extern double atan2 _PARAMS((double, double));
130
- extern double cosh _PARAMS((double));
131
- extern double sinh _PARAMS((double));
132
- extern double exp _PARAMS((double));
133
- extern double ldexp _PARAMS((double, int));
134
- extern double log _PARAMS((double));
135
- extern double log10 _PARAMS((double));
136
- extern double pow _PARAMS((double, double));
137
- extern double sqrt _PARAMS((double));
138
- extern double fmod _PARAMS((double, double));
139
- #endif /* ! defined (__math_68881) */
140
- #endif /* ! defined (_REENT_ONLY) */
141
-
142
- #if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L
143
-
144
- /* ISO C99 types and macros. */
145
-
146
- #ifndef FLT_EVAL_METHOD
147
- #define FLT_EVAL_METHOD 0
148
- #endif /* FLT_EVAL_METHOD */
149
- /* XXX EMSCRIPTEN: moved these out of previous if */
150
- typedef float float_t;
151
- typedef double double_t;
152
-
153
- #define FP_NAN 0
154
- #define FP_INFINITE 1
155
- #define FP_ZERO 2
156
- #define FP_SUBNORMAL 3
157
- #define FP_NORMAL 4
158
-
159
- #ifndef FP_ILOGB0
160
- # define FP_ILOGB0 (-INT_MAX)
161
- #endif
162
- #ifndef FP_ILOGBNAN
163
- # define FP_ILOGBNAN INT_MAX
164
- #endif
209
+ double fmin(double, double);
210
+ float fminf(float, float);
211
+ long double fminl(long double, long double);
165
212
 
166
- #ifndef MATH_ERRNO
167
- # define MATH_ERRNO 1
168
- #endif
169
- #ifndef MATH_ERREXCEPT
170
- # define MATH_ERREXCEPT 2
171
- #endif
172
- #ifndef math_errhandling
173
- # define math_errhandling MATH_ERRNO
174
- #endif
213
+ double fmod(double, double);
214
+ float fmodf(float, float);
215
+ long double fmodl(long double, long double);
175
216
 
176
- extern int __isinff (float x);
177
- extern int __isinfd (double x);
178
- extern int __isnanf (float x);
179
- extern int __isnand (double x);
180
- extern int __fpclassifyf (float x);
181
- extern int __fpclassifyd (double x);
182
- extern int __signbitf (float x);
183
- extern int __signbitd (double x);
184
-
185
- #define fpclassify(__x) \
186
- ((sizeof(__x) == sizeof(float)) ? __fpclassifyf(__x) : \
187
- __fpclassifyd(__x))
188
-
189
- #ifndef isfinite
190
- #define isfinite(__y) \
191
- (__extension__ ({int __cy = fpclassify(__y); \
192
- __cy != FP_INFINITE && __cy != FP_NAN;}))
193
- #endif
217
+ double frexp(double, int *);
218
+ float frexpf(float, int *);
219
+ long double frexpl(long double, int *);
194
220
 
195
- /* Note: isinf and isnan were once functions in newlib that took double
196
- * arguments. C99 specifies that these names are reserved for macros
197
- * supporting multiple floating point types. Thus, they are
198
- * now defined as macros. Implementations of the old functions
199
- * taking double arguments still exist for compatibility purposes
200
- * (prototypes for them are in <ieeefp.h>). */
201
- #ifndef isinf
202
- #define isinf(y) (fpclassify(y) == FP_INFINITE)
203
- #endif
221
+ double hypot(double, double);
222
+ float hypotf(float, float);
223
+ long double hypotl(long double, long double);
204
224
 
205
- #ifndef isinff
206
- #define isinff isinf
207
- #endif
225
+ int ilogb(double);
226
+ int ilogbf(float);
227
+ int ilogbl(long double);
208
228
 
209
- #ifndef isnan
210
- #define isnan(y) (fpclassify(y) == FP_NAN)
211
- #endif
229
+ double ldexp(double, int);
230
+ float ldexpf(float, int);
231
+ long double ldexpl(long double, int);
212
232
 
213
- #ifndef isnanf
214
- #define isnanf isnan
215
- #endif
233
+ double lgamma(double);
234
+ float lgammaf(float);
235
+ long double lgammal(long double);
216
236
 
217
- #define isnormal(y) (fpclassify(y) == FP_NORMAL)
218
- #define signbit(__x) \
219
- ((sizeof(__x) == sizeof(float)) ? __signbitf(__x) : \
220
- __signbitd(__x))
221
-
222
- /* XXX: EMSCRIPTEN: We alter the names of __typeof__ declarations to
223
- reduce the chance of them conflicting when expanded */
224
-
225
- #define isgreater(x,y) \
226
- (__extension__ ({__typeof__(x) __isg_x = (x); __typeof__(y) __isg_y = (y); \
227
- !isunordered(__isg_x,__isg_y) && (__isg_x > __isg_y);}))
228
- #define isgreaterequal(x,y) \
229
- (__extension__ ({__typeof__(x) __isge_x = (x); __typeof__(y) __isge_y = (y); \
230
- !isunordered(__isge_x,__isge_y) && (__isge_x >= __isge_y);}))
231
- #define isless(x,y) \
232
- (__extension__ ({__typeof__(x) __isl_x = (x); __typeof__(y) __isl_y = (y); \
233
- !isunordered(__isl_x,__isl_y) && (__isl_x < __isl_y);}))
234
- #define islessequal(x,y) \
235
- (__extension__ ({__typeof__(x) __isle_x = (x); __typeof__(y) __isle_y = (y); \
236
- !isunordered(__isle_x,__isle_y) && (__isle_x <= __isle_y);}))
237
- #define islessgreater(x,y) \
238
- (__extension__ ({__typeof__(x) __islg_x = (x); __typeof__(y) __islg_y = (y); \
239
- !isunordered(__islg_x,__islg_y) && (__islg_x < __islg_y || __islg_x > __islg_y);}))
240
-
241
- #define isunordered(a,b) \
242
- (__extension__ ({__typeof__(a) __isu_a = (a); __typeof__(b) __isu_b = (b); \
243
- fpclassify(__isu_a) == FP_NAN || fpclassify(__isu_b) == FP_NAN;}))
244
-
245
- /* Non ANSI double precision functions. */
246
-
247
- /* XXX Emscripten extern double infinity _PARAMS((void)); */
248
- extern double nan _PARAMS((const char *));
249
- extern int finite _PARAMS((double));
250
- extern double copysign _PARAMS((double, double));
251
- extern double logb _PARAMS((double));
252
- extern int ilogb _PARAMS((double));
253
-
254
- extern double asinh _PARAMS((double));
255
- extern double cbrt _PARAMS((double));
256
- extern double nextafter _PARAMS((double, double));
257
- extern double rint _PARAMS((double));
258
- extern double scalbn _PARAMS((double, int));
259
-
260
- extern double exp2 _PARAMS((double));
261
- extern double scalbln _PARAMS((double, long int));
262
- extern double tgamma _PARAMS((double));
263
- extern double nearbyint _PARAMS((double));
264
- extern long int lrint _PARAMS((double));
265
- extern _LONG_LONG_TYPE int llrint _PARAMS((double));
266
- extern double round _PARAMS((double));
267
- extern long int lround _PARAMS((double));
268
- extern long long int llround _PARAMS((double));
269
- extern double trunc _PARAMS((double));
270
- extern double remquo _PARAMS((double, double, int *));
271
- extern double fdim _PARAMS((double, double));
272
- extern double fmax _PARAMS((double, double));
273
- extern double fmin _PARAMS((double, double));
274
- extern double fma _PARAMS((double, double, double));
275
-
276
- #ifndef __math_68881
277
- extern double log1p _PARAMS((double));
278
- extern double expm1 _PARAMS((double));
279
- #endif /* ! defined (__math_68881) */
280
-
281
- #ifndef _REENT_ONLY
282
- extern double acosh _PARAMS((double));
283
- extern double atanh _PARAMS((double));
284
- extern double remainder _PARAMS((double, double));
285
- extern double gamma _PARAMS((double));
286
- extern double lgamma _PARAMS((double));
287
- extern double erf _PARAMS((double));
288
- extern double erfc _PARAMS((double));
289
- extern double log2 _PARAMS((double));
290
- #if !defined(__cplusplus)
291
- #define log2(x) (log (x) / _M_LN2)
292
- #endif
237
+ long long llrint(double);
238
+ long long llrintf(float);
239
+ long long llrintl(long double);
293
240
 
294
- #ifndef __math_68881
295
- extern double hypot _PARAMS((double, double));
296
- #endif
241
+ long long llround(double);
242
+ long long llroundf(float);
243
+ long long llroundl(long double);
297
244
 
298
- #endif /* ! defined (_REENT_ONLY) */
299
-
300
- /* Single precision versions of ANSI functions. */
301
-
302
- extern float atanf _PARAMS((float));
303
- extern float cosf _PARAMS((float));
304
- extern float sinf _PARAMS((float));
305
- extern float tanf _PARAMS((float));
306
- extern float tanhf _PARAMS((float));
307
- extern float frexpf _PARAMS((float, int *));
308
- extern float modff _PARAMS((float, float *));
309
- extern float ceilf _PARAMS((float));
310
- extern float fabsf _PARAMS((float));
311
- extern float floorf _PARAMS((float));
312
-
313
- #ifndef _REENT_ONLY
314
- extern float acosf _PARAMS((float));
315
- extern float asinf _PARAMS((float));
316
- extern float atan2f _PARAMS((float, float));
317
- extern float coshf _PARAMS((float));
318
- extern float sinhf _PARAMS((float));
319
- extern float expf _PARAMS((float));
320
- extern float ldexpf _PARAMS((float, int));
321
- extern float logf _PARAMS((float));
322
- extern float log10f _PARAMS((float));
323
- extern float powf _PARAMS((float, float));
324
- extern float sqrtf _PARAMS((float));
325
- extern float fmodf _PARAMS((float, float));
326
- #endif /* ! defined (_REENT_ONLY) */
327
-
328
- /* Other single precision functions. */
329
-
330
- extern float exp2f _PARAMS((float));
331
- extern float scalblnf _PARAMS((float, long int));
332
- extern float tgammaf _PARAMS((float));
333
- extern float nearbyintf _PARAMS((float));
334
- extern long int lrintf _PARAMS((float));
335
- extern _LONG_LONG_TYPE llrintf _PARAMS((float));
336
- extern float roundf _PARAMS((float));
337
- extern long int lroundf _PARAMS((float));
338
- extern long long int llroundf _PARAMS((float));
339
- extern float truncf _PARAMS((float));
340
- extern float remquof _PARAMS((float, float, int *));
341
- extern float fdimf _PARAMS((float, float));
342
- extern float fmaxf _PARAMS((float, float));
343
- extern float fminf _PARAMS((float, float));
344
- extern float fmaf _PARAMS((float, float, float));
345
-
346
- extern float infinityf _PARAMS((void));
347
- extern float nanf _PARAMS((const char *));
348
- extern int finitef _PARAMS((float));
349
- extern float copysignf _PARAMS((float, float));
350
- extern float logbf _PARAMS((float));
351
- extern int ilogbf _PARAMS((float));
352
-
353
- extern float asinhf _PARAMS((float));
354
- extern float cbrtf _PARAMS((float));
355
- extern float nextafterf _PARAMS((float, float));
356
- extern float rintf _PARAMS((float));
357
- extern float scalbnf _PARAMS((float, int));
358
- extern float log1pf _PARAMS((float));
359
- extern float expm1f _PARAMS((float));
360
-
361
- #ifndef _REENT_ONLY
362
- extern float acoshf _PARAMS((float));
363
- extern float atanhf _PARAMS((float));
364
- extern float remainderf _PARAMS((float, float));
365
- extern float gammaf _PARAMS((float));
366
- extern float lgammaf _PARAMS((float));
367
- extern float erff _PARAMS((float));
368
- extern float erfcf _PARAMS((float));
369
- extern float log2f _PARAMS((float));
370
- #if !defined(__cplusplus)
371
- #define log2f(x) (logf (x) / (float_t) _M_LN2)
372
- #endif
373
- extern float hypotf _PARAMS((float, float));
374
- #endif /* ! defined (_REENT_ONLY) */
375
-
376
- /* On platforms where long double equals double. */
377
- #if defined(_LDBL_EQ_DBL) || defined(EMSCRIPTEN)
378
- /* Reentrant ANSI C functions. */
379
- #ifndef __math_68881
380
- extern long double atanl _PARAMS((long double));
381
- extern long double cosl _PARAMS((long double));
382
- extern long double sinl _PARAMS((long double));
383
- extern long double tanl _PARAMS((long double));
384
- extern long double tanhl _PARAMS((long double));
385
- extern long double frexpl _PARAMS((long double value, int *));
386
- extern long double modfl _PARAMS((long double, long double *));
387
- extern long double ceill _PARAMS((long double));
388
- extern long double fabsl _PARAMS((long double));
389
- extern long double floorl _PARAMS((long double));
390
- extern long double log1pl _PARAMS((long double));
391
- extern long double expm1l _PARAMS((long double));
392
- #endif /* ! defined (__math_68881) */
393
- /* Non reentrant ANSI C functions. */
394
-
395
- #ifndef _REENT_ONLY
396
- #ifndef __math_68881
397
-
398
- extern long double acosl _PARAMS((long double));
399
- extern long double asinl _PARAMS((long double));
400
- extern long double atan2l _PARAMS((long double, long double));
401
- extern long double coshl _PARAMS((long double));
402
- extern long double sinhl _PARAMS((long double));
403
- extern long double expl _PARAMS((long double));
404
- extern long double ldexpl _PARAMS((long double, int));
405
- extern long double logl _PARAMS((long double));
406
- extern long double log10l _PARAMS((long double));
407
- extern long double powl _PARAMS((long double, long double));
408
- extern long double sqrtl _PARAMS((long double));
409
- extern long double fmodl _PARAMS((long double, long double));
410
- extern long double hypotl _PARAMS((long double, long double));
411
- #endif /* ! defined (__math_68881) */
412
- #endif /* ! defined (_REENT_ONLY) */
413
- extern long double copysignl _PARAMS((long double, long double));
414
- extern long double nanl _PARAMS((const char *));
415
- extern int ilogbl _PARAMS((long double));
416
- extern long double asinhl _PARAMS((long double));
417
- extern long double cbrtl _PARAMS((long double));
418
- extern long double nextafterl _PARAMS((long double, long double));
419
- extern long double rintl _PARAMS((long double));
420
- extern long double scalbnl _PARAMS((long double, int));
421
- extern long double exp2l _PARAMS((long double));
422
- extern long double scalblnl _PARAMS((long double, long));
423
- extern long double tgammal _PARAMS((long double));
424
- extern long double nearbyintl _PARAMS((long double));
425
- extern long int lrintl _PARAMS((long double));
426
- extern long long int llrintl _PARAMS((long double));
427
- extern long double roundl _PARAMS((long double));
428
- extern long lroundl _PARAMS((long double));
429
- extern _LONG_LONG_TYPE int llroundl _PARAMS((long double));
430
- extern long double truncl _PARAMS((long double));
431
- extern long double remquol _PARAMS((long double, long double, int *));
432
- extern long double fdiml _PARAMS((long double, long double));
433
- extern long double fmaxl _PARAMS((long double, long double));
434
- extern long double fminl _PARAMS((long double, long double));
435
- extern long double fmal _PARAMS((long double, long double, long double));
436
- #ifndef _REENT_ONLY
437
- extern long double acoshl _PARAMS((long double));
438
- extern long double atanhl _PARAMS((long double));
439
- extern long double remainderl _PARAMS((long double, long double));
440
- extern long double lgammal _PARAMS((long double));
441
- extern long double erfl _PARAMS((long double));
442
- extern long double erfcl _PARAMS((long double));
443
-
444
- /* XXX Emscripten: 5 more */
445
- extern long double log2l _PARAMS((long double));
446
- extern long double logbl _PARAMS((long double));
447
- double nexttoward(double x, long double y);
448
- float nexttowardf(float x, long double y);
449
- long double nexttowardl(long double x, long double y);
450
-
451
- #endif /* ! defined (_REENT_ONLY) */
452
- #else /* !_LDBL_EQ_DBL */
453
- #ifdef __i386__
454
- /* Other long double precision functions. */
455
- extern _LONG_DOUBLE rintl _PARAMS((_LONG_DOUBLE));
456
- extern long int lrintl _PARAMS((_LONG_DOUBLE));
457
- extern _LONG_LONG_TYPE llrintl _PARAMS((_LONG_DOUBLE));
458
- #endif /* __i386__ */
459
- #endif /* !_LDBL_EQ_DBL */
460
-
461
- #endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L */
462
-
463
- #if !defined (__STRICT_ANSI__) || defined(__cplusplus)
464
-
465
- extern double drem _PARAMS((double, double));
466
- extern void sincos _PARAMS((double, double *, double *));
467
- extern double gamma_r _PARAMS((double, int *));
468
- extern double lgamma_r _PARAMS((double, int *));
469
-
470
- extern double y0 _PARAMS((double));
471
- extern double y1 _PARAMS((double));
472
- extern double yn _PARAMS((int, double));
473
- extern double j0 _PARAMS((double));
474
- extern double j1 _PARAMS((double));
475
- extern double jn _PARAMS((int, double));
476
-
477
- extern float dremf _PARAMS((float, float));
478
- extern void sincosf _PARAMS((float, float *, float *));
479
- extern float gammaf_r _PARAMS((float, int *));
480
- extern float lgammaf_r _PARAMS((float, int *));
481
-
482
- extern float y0f _PARAMS((float));
483
- extern float y1f _PARAMS((float));
484
- extern float ynf _PARAMS((int, float));
485
- extern float j0f _PARAMS((float));
486
- extern float j1f _PARAMS((float));
487
- extern float jnf _PARAMS((int, float));
488
-
489
- /* GNU extensions */
490
- # ifndef exp10
491
- extern double exp10 _PARAMS((double));
492
- # endif
493
- # ifndef pow10
494
- extern double pow10 _PARAMS((double));
495
- # endif
496
- # ifndef exp10f
497
- extern float exp10f _PARAMS((float));
498
- # endif
499
- # ifndef pow10f
500
- extern float pow10f _PARAMS((float));
501
- # endif
502
-
503
- #endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) */
504
-
505
- #ifndef __STRICT_ANSI__
506
-
507
- /* The gamma functions use a global variable, signgam. */
508
- #ifndef _REENT_ONLY
509
- #define signgam (*__signgam())
510
- extern int *__signgam _PARAMS((void));
511
- #endif /* ! defined (_REENT_ONLY) */
512
-
513
- #define __signgam_r(ptr) _REENT_SIGNGAM(ptr)
514
-
515
- /* The exception structure passed to the matherr routine. */
516
- /* We have a problem when using C++ since `exception' is a reserved
517
- name in C++. */
518
- #ifdef __cplusplus
519
- struct __exception
520
- #else
521
- struct exception
245
+ double log(double);
246
+ float logf(float);
247
+ long double logl(long double);
248
+
249
+ double log10(double);
250
+ float log10f(float);
251
+ long double log10l(long double);
252
+
253
+ double log1p(double);
254
+ float log1pf(float);
255
+ long double log1pl(long double);
256
+
257
+ double log2(double);
258
+ float log2f(float);
259
+ long double log2l(long double);
260
+
261
+ double logb(double);
262
+ float logbf(float);
263
+ long double logbl(long double);
264
+
265
+ long lrint(double);
266
+ long lrintf(float);
267
+ long lrintl(long double);
268
+
269
+ long lround(double);
270
+ long lroundf(float);
271
+ long lroundl(long double);
272
+
273
+ double modf(double, double *);
274
+ float modff(float, float *);
275
+ long double modfl(long double, long double *);
276
+
277
+ double nan(const char *);
278
+ float nanf(const char *);
279
+ long double nanl(const char *);
280
+
281
+ double nearbyint(double);
282
+ float nearbyintf(float);
283
+ long double nearbyintl(long double);
284
+
285
+ double nextafter(double, double);
286
+ float nextafterf(float, float);
287
+ long double nextafterl(long double, long double);
288
+
289
+ double nexttoward(double, long double);
290
+ float nexttowardf(float, long double);
291
+ long double nexttowardl(long double, long double);
292
+
293
+ double pow(double, double);
294
+ float powf(float, float);
295
+ long double powl(long double, long double);
296
+
297
+ double remainder(double, double);
298
+ float remainderf(float, float);
299
+ long double remainderl(long double, long double);
300
+
301
+ double remquo(double, double, int *);
302
+ float remquof(float, float, int *);
303
+ long double remquol(long double, long double, int *);
304
+
305
+ double rint(double);
306
+ float rintf(float);
307
+ long double rintl(long double);
308
+
309
+ double round(double);
310
+ float roundf(float);
311
+ long double roundl(long double);
312
+
313
+ double scalbln(double, long);
314
+ float scalblnf(float, long);
315
+ long double scalblnl(long double, long);
316
+
317
+ double scalbn(double, int);
318
+ float scalbnf(float, int);
319
+ long double scalbnl(long double, int);
320
+
321
+ double sin(double);
322
+ float sinf(float);
323
+ long double sinl(long double);
324
+
325
+ double sinh(double);
326
+ float sinhf(float);
327
+ long double sinhl(long double);
328
+
329
+ double sqrt(double);
330
+ float sqrtf(float);
331
+ long double sqrtl(long double);
332
+
333
+ double tan(double);
334
+ float tanf(float);
335
+ long double tanl(long double);
336
+
337
+ double tanh(double);
338
+ float tanhf(float);
339
+ long double tanhl(long double);
340
+
341
+ double tgamma(double);
342
+ float tgammaf(float);
343
+ long double tgammal(long double);
344
+
345
+ double trunc(double);
346
+ float truncf(float);
347
+ long double truncl(long double);
348
+
349
+
350
+ #if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE)
351
+ #undef MAXFLOAT
352
+ #define MAXFLOAT 3.40282347e+38F
522
353
  #endif
523
- {
524
- int type;
525
- char *name;
526
- double arg1;
527
- double arg2;
528
- double retval;
529
- int err;
530
- };
531
354
 
532
- #ifdef __cplusplus
533
- extern int matherr _PARAMS((struct __exception *e));
534
- #else
535
- extern int matherr _PARAMS((struct exception *e));
355
+ #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
356
+ #define M_E 2.7182818284590452354 /* e */
357
+ #define M_LOG2E 1.4426950408889634074 /* log_2 e */
358
+ #define M_LOG10E 0.43429448190325182765 /* log_10 e */
359
+ #define M_LN2 0.69314718055994530942 /* log_e 2 */
360
+ #define M_LN10 2.30258509299404568402 /* log_e 10 */
361
+ #define M_PI 3.14159265358979323846 /* pi */
362
+ #define M_PI_2 1.57079632679489661923 /* pi/2 */
363
+ #define M_PI_4 0.78539816339744830962 /* pi/4 */
364
+ #define M_1_PI 0.31830988618379067154 /* 1/pi */
365
+ #define M_2_PI 0.63661977236758134308 /* 2/pi */
366
+ #define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
367
+ #define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
368
+ #define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
369
+
370
+ extern int signgam;
371
+
372
+ double j0(double);
373
+ double j1(double);
374
+ double jn(int, double);
375
+
376
+ double y0(double);
377
+ double y1(double);
378
+ double yn(int, double);
536
379
  #endif
537
380
 
538
- /* Values for the type field of struct exception. */
539
-
540
- #define DOMAIN 1
541
- #define SING 2
542
- #define OVERFLOW 3
543
- #define UNDERFLOW 4
544
- #define TLOSS 5
545
- #define PLOSS 6
546
-
547
- /* Useful constants. */
548
-
549
- #define MAXFLOAT 3.40282347e+38F
550
-
551
- #define M_E 2.7182818284590452354
552
- #define M_LOG2E 1.4426950408889634074
553
- #define M_LOG10E 0.43429448190325182765
554
- #define M_LN2 _M_LN2
555
- #define M_LN10 2.30258509299404568402
556
- #define M_PI 3.14159265358979323846
557
- #define M_TWOPI (M_PI * 2.0)
558
- #define M_PI_2 1.57079632679489661923
559
- #define M_PI_4 0.78539816339744830962
560
- #define M_3PI_4 2.3561944901923448370E0
561
- #define M_SQRTPI 1.77245385090551602792981
562
- #define M_1_PI 0.31830988618379067154
563
- #define M_2_PI 0.63661977236758134308
564
- #define M_2_SQRTPI 1.12837916709551257390
565
- #define M_SQRT2 1.41421356237309504880
566
- #define M_SQRT1_2 0.70710678118654752440
567
- #define M_LN2LO 1.9082149292705877000E-10
568
- #define M_LN2HI 6.9314718036912381649E-1
569
- #define M_SQRT3 1.73205080756887719000
570
- #define M_IVLN10 0.43429448190325182765 /* 1 / log(10) */
571
- #define M_LOG2_E _M_LN2
572
- #define M_INVLN2 1.4426950408889633870E0 /* 1 / log(2) */
573
-
574
- /* Global control over fdlibm error handling. */
575
-
576
- enum __fdlibm_version
577
- {
578
- __fdlibm_ieee = -1,
579
- __fdlibm_svid,
580
- __fdlibm_xopen,
581
- __fdlibm_posix
582
- };
381
+ #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
382
+ #define HUGE 3.40282347e+38F
583
383
 
584
- #define _LIB_VERSION_TYPE enum __fdlibm_version
585
- #define _LIB_VERSION __fdlib_version
384
+ double scalb(double, double);
385
+ float scalbf(float, float);
586
386
 
587
- extern __IMPORT _LIB_VERSION_TYPE _LIB_VERSION;
387
+ double significand(double);
388
+ float significandf(float);
588
389
 
589
- #define _IEEE_ __fdlibm_ieee
590
- #define _SVID_ __fdlibm_svid
591
- #define _XOPEN_ __fdlibm_xopen
592
- #define _POSIX_ __fdlibm_posix
390
+ double lgamma_r(double, int*);
391
+ float lgammaf_r(float, int*);
593
392
 
594
- #endif /* ! defined (__STRICT_ANSI__) */
393
+ float j0f(float);
394
+ float j1f(float);
395
+ float jnf(int, float);
595
396
 
596
- _END_STD_C
397
+ float y0f(float);
398
+ float y1f(float);
399
+ float ynf(int, float);
400
+ #endif
401
+
402
+ #ifdef _GNU_SOURCE
403
+ long double lgammal_r(long double, int*);
404
+
405
+ void sincos(double, double*, double*);
406
+ void sincosf(float, float*, float*);
407
+ void sincosl(long double, long double*, long double*);
408
+
409
+ double exp10(double);
410
+ float exp10f(float);
411
+ long double exp10l(long double);
597
412
 
598
- #ifdef __FAST_MATH__
599
- #include <machine/fastmath.h>
413
+ double pow10(double);
414
+ float pow10f(float);
415
+ long double pow10l(long double);
600
416
  #endif
601
417
 
602
- #endif /* _MATH_H_ */
418
+ #ifdef __cplusplus
419
+ }
420
+ #endif
421
+
422
+ #endif