webruby 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1364) hide show
  1. checksums.yaml +7 -0
  2. data/bin/webruby +36 -0
  3. data/driver/driver.c +50 -0
  4. data/driver/main.c +40 -0
  5. data/lib/webruby/app.rb +13 -0
  6. data/lib/webruby/config.rb +61 -0
  7. data/lib/webruby/environment.rb +32 -0
  8. data/lib/webruby/rake/files.rake +66 -0
  9. data/lib/webruby/rake/general.rake +22 -0
  10. data/lib/webruby/rake/mruby.rake +44 -0
  11. data/lib/webruby/utility.rb +132 -0
  12. data/lib/webruby.rb +10 -0
  13. data/modules/emscripten/AUTHORS +89 -0
  14. data/modules/emscripten/LICENSE +68 -0
  15. data/modules/emscripten/README.markdown +14 -0
  16. data/modules/emscripten/cmake/Platform/Emscripten.cmake +61 -0
  17. data/modules/emscripten/cmake/Platform/Emscripten_unix.cmake +24 -0
  18. data/modules/emscripten/em++ +12 -0
  19. data/modules/emscripten/em++.bat +2 -0
  20. data/modules/emscripten/em-config +24 -0
  21. data/modules/emscripten/em-config.bat +2 -0
  22. data/modules/emscripten/emar +24 -0
  23. data/modules/emscripten/emar.bat +2 -0
  24. data/modules/emscripten/emcc +1744 -0
  25. data/modules/emscripten/emcc.bat +2 -0
  26. data/modules/emscripten/emcc.py +5 -0
  27. data/modules/emscripten/emconfigure +27 -0
  28. data/modules/emscripten/emconfigure.bat +2 -0
  29. data/modules/emscripten/emlibtool +11 -0
  30. data/modules/emscripten/emlibtool.bat +2 -0
  31. data/modules/emscripten/emlink.py +293 -0
  32. data/modules/emscripten/emmake +29 -0
  33. data/modules/emscripten/emmake.bat +2 -0
  34. data/modules/emscripten/emranlib +9 -0
  35. data/modules/emscripten/emranlib.bat +2 -0
  36. data/modules/emscripten/emscons +20 -0
  37. data/modules/emscripten/emscripten.py +835 -0
  38. data/modules/emscripten/patches/README +4 -0
  39. data/modules/emscripten/patches/series +2 -0
  40. data/modules/emscripten/scons-tools/closure.py +28 -0
  41. data/modules/emscripten/scons-tools/emscripten.py +359 -0
  42. data/modules/emscripten/scons-tools/llvm.py +33 -0
  43. data/modules/emscripten/src/analyzer.js +1695 -0
  44. data/modules/emscripten/src/compiler.html +48 -0
  45. data/modules/emscripten/src/compiler.js +298 -0
  46. data/modules/emscripten/src/corruptionCheck.js +98 -0
  47. data/modules/emscripten/src/determinstic.js +20 -0
  48. data/modules/emscripten/src/embind/embind.js +1677 -0
  49. data/modules/emscripten/src/embind/emval.js +283 -0
  50. data/modules/emscripten/src/experimental/allow_loopvars_from_memsetcpy_inasm.diff +97 -0
  51. data/modules/emscripten/src/experimental/batching.diff +44 -0
  52. data/modules/emscripten/src/experimental/functypeopt.diff +113 -0
  53. data/modules/emscripten/src/experimental/multiple_heaps.diff +175 -0
  54. data/modules/emscripten/src/experimental/noncallgraphprofiling.diff +197 -0
  55. data/modules/emscripten/src/experimental/optimize_memcpy_for_ta1.diff +124 -0
  56. data/modules/emscripten/src/experimental/remove__label__s.diff +140 -0
  57. data/modules/emscripten/src/experimental/renderer_cache_hash.diff +99 -0
  58. data/modules/emscripten/src/experimental/sdl_key_forwarding.diff +57 -0
  59. data/modules/emscripten/src/experimental/simplifyGeneratedFunctionsDetection.diff +336 -0
  60. data/modules/emscripten/src/experimental/stringCache.diff +147 -0
  61. data/modules/emscripten/src/fastLong.js +299 -0
  62. data/modules/emscripten/src/framework.js +257 -0
  63. data/modules/emscripten/src/gl-matrix.js +1952 -0
  64. data/modules/emscripten/src/headless.js +904 -0
  65. data/modules/emscripten/src/intertyper.js +1050 -0
  66. data/modules/emscripten/src/jsifier.js +1827 -0
  67. data/modules/emscripten/src/library.js +8270 -0
  68. data/modules/emscripten/src/library_browser.js +911 -0
  69. data/modules/emscripten/src/library_egl.js +491 -0
  70. data/modules/emscripten/src/library_gc.js +236 -0
  71. data/modules/emscripten/src/library_gl.js +4452 -0
  72. data/modules/emscripten/src/library_glfw.js +576 -0
  73. data/modules/emscripten/src/library_glut.js +449 -0
  74. data/modules/emscripten/src/library_jansson.js +320 -0
  75. data/modules/emscripten/src/library_openal.js +602 -0
  76. data/modules/emscripten/src/library_sdl.js +2024 -0
  77. data/modules/emscripten/src/library_strtok_r.c +97 -0
  78. data/modules/emscripten/src/library_xlib.js +23 -0
  79. data/modules/emscripten/src/long.js +1609 -0
  80. data/modules/emscripten/src/modules.js +491 -0
  81. data/modules/emscripten/src/parseTools.js +2474 -0
  82. data/modules/emscripten/src/postamble.js +170 -0
  83. data/modules/emscripten/src/postamble_sharedlib.js +16 -0
  84. data/modules/emscripten/src/preamble.js +914 -0
  85. data/modules/emscripten/src/preamble_sharedlib.js +25 -0
  86. data/modules/emscripten/src/relooper/README.markdown +14 -0
  87. data/modules/emscripten/src/relooper/Relooper.cpp +1236 -0
  88. data/modules/emscripten/src/relooper/Relooper.h +250 -0
  89. data/modules/emscripten/src/relooper/doit.sh +70 -0
  90. data/modules/emscripten/src/relooper/emscripten/glue.js +57 -0
  91. data/modules/emscripten/src/relooper/emscripten/test.js +44 -0
  92. data/modules/emscripten/src/relooper/fuzzer.py +116 -0
  93. data/modules/emscripten/src/relooper/ministring.h +35 -0
  94. data/modules/emscripten/src/relooper/paper.pdf +0 -0
  95. data/modules/emscripten/src/relooper/test.cpp +262 -0
  96. data/modules/emscripten/src/relooper/test.txt +155 -0
  97. data/modules/emscripten/src/relooper/test2.c +44 -0
  98. data/modules/emscripten/src/relooper/test2.txt +12 -0
  99. data/modules/emscripten/src/relooper/test3.c +42 -0
  100. data/modules/emscripten/src/relooper/test3.txt +27 -0
  101. data/modules/emscripten/src/relooper/test4.cpp +40 -0
  102. data/modules/emscripten/src/relooper/test4.txt +23 -0
  103. data/modules/emscripten/src/relooper/test5.cpp +40 -0
  104. data/modules/emscripten/src/relooper/test5.txt +32 -0
  105. data/modules/emscripten/src/relooper/test6.cpp +31 -0
  106. data/modules/emscripten/src/relooper/test6.txt +12 -0
  107. data/modules/emscripten/src/relooper/test_dead.cpp +28 -0
  108. data/modules/emscripten/src/relooper/test_dead.txt +9 -0
  109. data/modules/emscripten/src/relooper/test_debug.cpp +30 -0
  110. data/modules/emscripten/src/relooper/test_debug.txt +128 -0
  111. data/modules/emscripten/src/relooper/test_fuzz1.cpp +52 -0
  112. data/modules/emscripten/src/relooper/test_fuzz1.txt +32 -0
  113. data/modules/emscripten/src/relooper/test_fuzz2.cpp +34 -0
  114. data/modules/emscripten/src/relooper/test_fuzz2.txt +13 -0
  115. data/modules/emscripten/src/relooper/test_fuzz3.cpp +36 -0
  116. data/modules/emscripten/src/relooper/test_fuzz3.txt +9 -0
  117. data/modules/emscripten/src/relooper/test_fuzz4.cpp +38 -0
  118. data/modules/emscripten/src/relooper/test_fuzz4.txt +19 -0
  119. data/modules/emscripten/src/relooper/test_fuzz5.cpp +57 -0
  120. data/modules/emscripten/src/relooper/test_fuzz5.txt +52 -0
  121. data/modules/emscripten/src/relooper/test_fuzz6.cpp +322 -0
  122. data/modules/emscripten/src/relooper/test_fuzz6.txt +108 -0
  123. data/modules/emscripten/src/relooper/test_inf.cpp +813 -0
  124. data/modules/emscripten/src/relooper/test_inf.txt +385 -0
  125. data/modules/emscripten/src/relooper/testit.sh +62 -0
  126. data/modules/emscripten/src/relooper/updateit.sh +17 -0
  127. data/modules/emscripten/src/relooper.js +11516 -0
  128. data/modules/emscripten/src/relooper.js.raw.js +11511 -0
  129. data/modules/emscripten/src/runtime.js +546 -0
  130. data/modules/emscripten/src/settings.js +1284 -0
  131. data/modules/emscripten/src/shell.html +92 -0
  132. data/modules/emscripten/src/shell.js +153 -0
  133. data/modules/emscripten/src/shell_sharedlib.js +12 -0
  134. data/modules/emscripten/src/socket.io.js +3870 -0
  135. data/modules/emscripten/src/utility.js +379 -0
  136. data/modules/emscripten/src/wrtcp.js +821 -0
  137. data/modules/emscripten/system/include/AL/al.h +172 -0
  138. data/modules/emscripten/system/include/AL/alc.h +84 -0
  139. data/modules/emscripten/system/include/EGL/egl.h +329 -0
  140. data/modules/emscripten/system/include/EGL/eglext.h +398 -0
  141. data/modules/emscripten/system/include/EGL/eglplatform.h +141 -0
  142. data/modules/emscripten/system/include/GL/freeglut_std.h +628 -0
  143. data/modules/emscripten/system/include/GL/gl.h +2241 -0
  144. data/modules/emscripten/system/include/GL/glew.h +6 -0
  145. data/modules/emscripten/system/include/GL/glext.h +11127 -0
  146. data/modules/emscripten/system/include/GL/glfw.h +518 -0
  147. data/modules/emscripten/system/include/GL/glu.h +353 -0
  148. data/modules/emscripten/system/include/GL/glut.h +21 -0
  149. data/modules/emscripten/system/include/GLES/gl.h +770 -0
  150. data/modules/emscripten/system/include/GLES/glext.h +1278 -0
  151. data/modules/emscripten/system/include/GLES/glplatform.h +30 -0
  152. data/modules/emscripten/system/include/GLES2/gl2.h +621 -0
  153. data/modules/emscripten/system/include/GLES2/gl2ext.h +803 -0
  154. data/modules/emscripten/system/include/GLES2/gl2platform.h +30 -0
  155. data/modules/emscripten/system/include/KHR/khrplatform.h +277 -0
  156. data/modules/emscripten/system/include/SDL/COPYING +19 -0
  157. data/modules/emscripten/system/include/SDL/SDL.h +162 -0
  158. data/modules/emscripten/system/include/SDL/SDL_assert.h +241 -0
  159. data/modules/emscripten/system/include/SDL/SDL_atomic.h +318 -0
  160. data/modules/emscripten/system/include/SDL/SDL_audio.h +509 -0
  161. data/modules/emscripten/system/include/SDL/SDL_blendmode.h +60 -0
  162. data/modules/emscripten/system/include/SDL/SDL_clipboard.h +75 -0
  163. data/modules/emscripten/system/include/SDL/SDL_compat.h +365 -0
  164. data/modules/emscripten/system/include/SDL/SDL_config.h +48 -0
  165. data/modules/emscripten/system/include/SDL/SDL_config.h.in +297 -0
  166. data/modules/emscripten/system/include/SDL/SDL_config_android.h +133 -0
  167. data/modules/emscripten/system/include/SDL/SDL_config_iphoneos.h +148 -0
  168. data/modules/emscripten/system/include/SDL/SDL_config_macosx.h +172 -0
  169. data/modules/emscripten/system/include/SDL/SDL_config_minimal.h +74 -0
  170. data/modules/emscripten/system/include/SDL/SDL_config_nintendods.h +129 -0
  171. data/modules/emscripten/system/include/SDL/SDL_config_pandora.h +125 -0
  172. data/modules/emscripten/system/include/SDL/SDL_config_windows.h +207 -0
  173. data/modules/emscripten/system/include/SDL/SDL_config_wiz.h +119 -0
  174. data/modules/emscripten/system/include/SDL/SDL_copying.h +20 -0
  175. data/modules/emscripten/system/include/SDL/SDL_cpuinfo.h +150 -0
  176. data/modules/emscripten/system/include/SDL/SDL_endian.h +248 -0
  177. data/modules/emscripten/system/include/SDL/SDL_error.h +77 -0
  178. data/modules/emscripten/system/include/SDL/SDL_events.h +639 -0
  179. data/modules/emscripten/system/include/SDL/SDL_gesture.h +91 -0
  180. data/modules/emscripten/system/include/SDL/SDL_gfxPrimitives.h +246 -0
  181. data/modules/emscripten/system/include/SDL/SDL_haptic.h +1200 -0
  182. data/modules/emscripten/system/include/SDL/SDL_hints.h +206 -0
  183. data/modules/emscripten/system/include/SDL/SDL_image.h +138 -0
  184. data/modules/emscripten/system/include/SDL/SDL_input.h +87 -0
  185. data/modules/emscripten/system/include/SDL/SDL_joystick.h +208 -0
  186. data/modules/emscripten/system/include/SDL/SDL_keyboard.h +169 -0
  187. data/modules/emscripten/system/include/SDL/SDL_keycode.h +344 -0
  188. data/modules/emscripten/system/include/SDL/SDL_loadso.h +85 -0
  189. data/modules/emscripten/system/include/SDL/SDL_log.h +211 -0
  190. data/modules/emscripten/system/include/SDL/SDL_main.h +98 -0
  191. data/modules/emscripten/system/include/SDL/SDL_mixer.h +634 -0
  192. data/modules/emscripten/system/include/SDL/SDL_mouse.h +213 -0
  193. data/modules/emscripten/system/include/SDL/SDL_mutex.h +248 -0
  194. data/modules/emscripten/system/include/SDL/SDL_name.h +11 -0
  195. data/modules/emscripten/system/include/SDL/SDL_opengl.h +11116 -0
  196. data/modules/emscripten/system/include/SDL/SDL_opengles.h +38 -0
  197. data/modules/emscripten/system/include/SDL/SDL_opengles2.h +38 -0
  198. data/modules/emscripten/system/include/SDL/SDL_pixels.h +423 -0
  199. data/modules/emscripten/system/include/SDL/SDL_platform.h +160 -0
  200. data/modules/emscripten/system/include/SDL/SDL_power.h +79 -0
  201. data/modules/emscripten/system/include/SDL/SDL_quit.h +58 -0
  202. data/modules/emscripten/system/include/SDL/SDL_rect.h +136 -0
  203. data/modules/emscripten/system/include/SDL/SDL_render.h +615 -0
  204. data/modules/emscripten/system/include/SDL/SDL_revision.h +2 -0
  205. data/modules/emscripten/system/include/SDL/SDL_revision.h.orig +2 -0
  206. data/modules/emscripten/system/include/SDL/SDL_rotozoom.h +123 -0
  207. data/modules/emscripten/system/include/SDL/SDL_rwops.h +220 -0
  208. data/modules/emscripten/system/include/SDL/SDL_scancode.h +398 -0
  209. data/modules/emscripten/system/include/SDL/SDL_shape.h +147 -0
  210. data/modules/emscripten/system/include/SDL/SDL_stdinc.h +764 -0
  211. data/modules/emscripten/system/include/SDL/SDL_surface.h +499 -0
  212. data/modules/emscripten/system/include/SDL/SDL_syswm.h +241 -0
  213. data/modules/emscripten/system/include/SDL/SDL_thread.h +182 -0
  214. data/modules/emscripten/system/include/SDL/SDL_timer.h +108 -0
  215. data/modules/emscripten/system/include/SDL/SDL_touch.h +124 -0
  216. data/modules/emscripten/system/include/SDL/SDL_ttf.h +249 -0
  217. data/modules/emscripten/system/include/SDL/SDL_types.h +29 -0
  218. data/modules/emscripten/system/include/SDL/SDL_version.h +166 -0
  219. data/modules/emscripten/system/include/SDL/SDL_video.h +820 -0
  220. data/modules/emscripten/system/include/SDL/begin_code.h +135 -0
  221. data/modules/emscripten/system/include/SDL/close_code.h +37 -0
  222. data/modules/emscripten/system/include/X11/X.h +717 -0
  223. data/modules/emscripten/system/include/X11/Xatom.h +79 -0
  224. data/modules/emscripten/system/include/X11/Xfuncproto.h +127 -0
  225. data/modules/emscripten/system/include/X11/Xlib.h +4023 -0
  226. data/modules/emscripten/system/include/X11/Xosdefs.h +116 -0
  227. data/modules/emscripten/system/include/X11/Xutil.h +826 -0
  228. data/modules/emscripten/system/include/X11/keysym.h +73 -0
  229. data/modules/emscripten/system/include/X11/keysymdef.h +2389 -0
  230. data/modules/emscripten/system/include/bsd/float.h +91 -0
  231. data/modules/emscripten/system/include/bsd/readme.txt +2 -0
  232. data/modules/emscripten/system/include/bsd/sys/mman.h +180 -0
  233. data/modules/emscripten/system/include/bsd/sys/utsname.h +70 -0
  234. data/modules/emscripten/system/include/dlfcn.h +31 -0
  235. data/modules/emscripten/system/include/emscripten/bind.h +1210 -0
  236. data/modules/emscripten/system/include/emscripten/emscripten.h +388 -0
  237. data/modules/emscripten/system/include/emscripten/val.h +311 -0
  238. data/modules/emscripten/system/include/emscripten/wire.h +393 -0
  239. data/modules/emscripten/system/include/err.h +95 -0
  240. data/modules/emscripten/system/include/execinfo.h +44 -0
  241. data/modules/emscripten/system/include/features.h +3 -0
  242. data/modules/emscripten/system/include/gc.h +70 -0
  243. data/modules/emscripten/system/include/gfx/png.h +3798 -0
  244. data/modules/emscripten/system/include/gfx/pngconf.h +1665 -0
  245. data/modules/emscripten/system/include/gfx/tiff.h +654 -0
  246. data/modules/emscripten/system/include/gfx/tiffconf.h +104 -0
  247. data/modules/emscripten/system/include/gfx/tiffio.h +526 -0
  248. data/modules/emscripten/system/include/gfx/tiffvers.h +9 -0
  249. data/modules/emscripten/system/include/jansson.h +323 -0
  250. data/modules/emscripten/system/include/jansson_config.h +54 -0
  251. data/modules/emscripten/system/include/libc/_ansi.h +135 -0
  252. data/modules/emscripten/system/include/libc/_syslist.h +40 -0
  253. data/modules/emscripten/system/include/libc/alloca.h +21 -0
  254. data/modules/emscripten/system/include/libc/ar.h +69 -0
  255. data/modules/emscripten/system/include/libc/argz.h +33 -0
  256. data/modules/emscripten/system/include/libc/assert.h +46 -0
  257. data/modules/emscripten/system/include/libc/complex.h +124 -0
  258. data/modules/emscripten/system/include/libc/ctype.h +196 -0
  259. data/modules/emscripten/system/include/libc/dirent.h +16 -0
  260. data/modules/emscripten/system/include/libc/endian.h +3 -0
  261. data/modules/emscripten/system/include/libc/envlock.h +15 -0
  262. data/modules/emscripten/system/include/libc/envz.h +16 -0
  263. data/modules/emscripten/system/include/libc/errno.h +11 -0
  264. data/modules/emscripten/system/include/libc/fastmath.h +13 -0
  265. data/modules/emscripten/system/include/libc/fcntl.h +1 -0
  266. data/modules/emscripten/system/include/libc/fnmatch.h +55 -0
  267. data/modules/emscripten/system/include/libc/getopt.h +196 -0
  268. data/modules/emscripten/system/include/libc/glob.h +89 -0
  269. data/modules/emscripten/system/include/libc/grp.h +94 -0
  270. data/modules/emscripten/system/include/libc/iconv.h +62 -0
  271. data/modules/emscripten/system/include/libc/ieeefp.h +256 -0
  272. data/modules/emscripten/system/include/libc/ifaddrs.h +64 -0
  273. data/modules/emscripten/system/include/libc/inttypes.h +290 -0
  274. data/modules/emscripten/system/include/libc/iso646.h +43 -0
  275. data/modules/emscripten/system/include/libc/langinfo.h +316 -0
  276. data/modules/emscripten/system/include/libc/libgen.h +23 -0
  277. data/modules/emscripten/system/include/libc/limits.h +155 -0
  278. data/modules/emscripten/system/include/libc/locale.h +80 -0
  279. data/modules/emscripten/system/include/libc/machine/_default_types.h +121 -0
  280. data/modules/emscripten/system/include/libc/machine/_types.h +8 -0
  281. data/modules/emscripten/system/include/libc/machine/ansi.h +1 -0
  282. data/modules/emscripten/system/include/libc/machine/endian.h +31 -0
  283. data/modules/emscripten/system/include/libc/machine/fastmath.h +100 -0
  284. data/modules/emscripten/system/include/libc/machine/ieeefp.h +376 -0
  285. data/modules/emscripten/system/include/libc/machine/malloc.h +8 -0
  286. data/modules/emscripten/system/include/libc/machine/param.h +1 -0
  287. data/modules/emscripten/system/include/libc/machine/setjmp-dj.h +43 -0
  288. data/modules/emscripten/system/include/libc/machine/setjmp.h +361 -0
  289. data/modules/emscripten/system/include/libc/machine/stdlib.h +8 -0
  290. data/modules/emscripten/system/include/libc/machine/termios.h +1 -0
  291. data/modules/emscripten/system/include/libc/machine/time.h +19 -0
  292. data/modules/emscripten/system/include/libc/machine/types.h +30 -0
  293. data/modules/emscripten/system/include/libc/malloc.h +169 -0
  294. data/modules/emscripten/system/include/libc/math.h +594 -0
  295. data/modules/emscripten/system/include/libc/newlib.h +2 -0
  296. data/modules/emscripten/system/include/libc/paths.h +7 -0
  297. data/modules/emscripten/system/include/libc/process.h +44 -0
  298. data/modules/emscripten/system/include/libc/pthread.h +362 -0
  299. data/modules/emscripten/system/include/libc/pwd.h +78 -0
  300. data/modules/emscripten/system/include/libc/readme.txt +3 -0
  301. data/modules/emscripten/system/include/libc/reent.h +183 -0
  302. data/modules/emscripten/system/include/libc/regdef.h +7 -0
  303. data/modules/emscripten/system/include/libc/regex.h +102 -0
  304. data/modules/emscripten/system/include/libc/sched.h +97 -0
  305. data/modules/emscripten/system/include/libc/search.h +59 -0
  306. data/modules/emscripten/system/include/libc/setjmp.h +20 -0
  307. data/modules/emscripten/system/include/libc/signal.h +30 -0
  308. data/modules/emscripten/system/include/libc/stdarg.h +50 -0
  309. data/modules/emscripten/system/include/libc/stddef.h +64 -0
  310. data/modules/emscripten/system/include/libc/stdint.h +493 -0
  311. data/modules/emscripten/system/include/libc/stdio.h +694 -0
  312. data/modules/emscripten/system/include/libc/stdlib.h +230 -0
  313. data/modules/emscripten/system/include/libc/string.h +105 -0
  314. data/modules/emscripten/system/include/libc/strings.h +35 -0
  315. data/modules/emscripten/system/include/libc/sys/_default_fcntl.h +223 -0
  316. data/modules/emscripten/system/include/libc/sys/_types.h +93 -0
  317. data/modules/emscripten/system/include/libc/sys/cdefs.h +123 -0
  318. data/modules/emscripten/system/include/libc/sys/config.h +255 -0
  319. data/modules/emscripten/system/include/libc/sys/custom_file.h +2 -0
  320. data/modules/emscripten/system/include/libc/sys/dir.h +10 -0
  321. data/modules/emscripten/system/include/libc/sys/dirent.h +58 -0
  322. data/modules/emscripten/system/include/libc/sys/errno.h +190 -0
  323. data/modules/emscripten/system/include/libc/sys/fcntl.h +4 -0
  324. data/modules/emscripten/system/include/libc/sys/features.h +212 -0
  325. data/modules/emscripten/system/include/libc/sys/file.h +2 -0
  326. data/modules/emscripten/system/include/libc/sys/iconvnls.h +77 -0
  327. data/modules/emscripten/system/include/libc/sys/lock.h +24 -0
  328. data/modules/emscripten/system/include/libc/sys/param.h +25 -0
  329. data/modules/emscripten/system/include/libc/sys/queue.h +471 -0
  330. data/modules/emscripten/system/include/libc/sys/reent.h +843 -0
  331. data/modules/emscripten/system/include/libc/sys/resource.h +59 -0
  332. data/modules/emscripten/system/include/libc/sys/sched.h +67 -0
  333. data/modules/emscripten/system/include/libc/sys/signal.h +314 -0
  334. data/modules/emscripten/system/include/libc/sys/stat.h +222 -0
  335. data/modules/emscripten/system/include/libc/sys/stdio.h +27 -0
  336. data/modules/emscripten/system/include/libc/sys/string.h +2 -0
  337. data/modules/emscripten/system/include/libc/sys/syslimits.h +65 -0
  338. data/modules/emscripten/system/include/libc/sys/termios.h +280 -0
  339. data/modules/emscripten/system/include/libc/sys/time.h +85 -0
  340. data/modules/emscripten/system/include/libc/sys/timeb.h +39 -0
  341. data/modules/emscripten/system/include/libc/sys/times.h +28 -0
  342. data/modules/emscripten/system/include/libc/sys/ttydefaults.h +97 -0
  343. data/modules/emscripten/system/include/libc/sys/types.h +481 -0
  344. data/modules/emscripten/system/include/libc/sys/unistd.h +514 -0
  345. data/modules/emscripten/system/include/libc/sys/utime.h +26 -0
  346. data/modules/emscripten/system/include/libc/sys/wait.h +40 -0
  347. data/modules/emscripten/system/include/libc/tar.h +39 -0
  348. data/modules/emscripten/system/include/libc/termios.h +7 -0
  349. data/modules/emscripten/system/include/libc/time.h +273 -0
  350. data/modules/emscripten/system/include/libc/unctrl.h +46 -0
  351. data/modules/emscripten/system/include/libc/unistd.h +6 -0
  352. data/modules/emscripten/system/include/libc/utime.h +12 -0
  353. data/modules/emscripten/system/include/libc/utmp.h +8 -0
  354. data/modules/emscripten/system/include/libc/wchar.h +194 -0
  355. data/modules/emscripten/system/include/libc/wctype.h +47 -0
  356. data/modules/emscripten/system/include/libc/wordexp.h +53 -0
  357. data/modules/emscripten/system/include/libcxx/CREDITS.TXT +91 -0
  358. data/modules/emscripten/system/include/libcxx/LICENSE.txt +76 -0
  359. data/modules/emscripten/system/include/libcxx/__bit_reference +1268 -0
  360. data/modules/emscripten/system/include/libcxx/__config +485 -0
  361. data/modules/emscripten/system/include/libcxx/__debug +193 -0
  362. data/modules/emscripten/system/include/libcxx/__functional_03 +2130 -0
  363. data/modules/emscripten/system/include/libcxx/__functional_base +437 -0
  364. data/modules/emscripten/system/include/libcxx/__functional_base_03 +1087 -0
  365. data/modules/emscripten/system/include/libcxx/__hash_table +1945 -0
  366. data/modules/emscripten/system/include/libcxx/__locale +1435 -0
  367. data/modules/emscripten/system/include/libcxx/__mutex_base +438 -0
  368. data/modules/emscripten/system/include/libcxx/__split_buffer +654 -0
  369. data/modules/emscripten/system/include/libcxx/__sso_allocator +77 -0
  370. data/modules/emscripten/system/include/libcxx/__std_stream +317 -0
  371. data/modules/emscripten/system/include/libcxx/__tree +2293 -0
  372. data/modules/emscripten/system/include/libcxx/__tuple +305 -0
  373. data/modules/emscripten/system/include/libcxx/__tuple_03 +27 -0
  374. data/modules/emscripten/system/include/libcxx/__undef_min_max +19 -0
  375. data/modules/emscripten/system/include/libcxx/algorithm +5458 -0
  376. data/modules/emscripten/system/include/libcxx/array +341 -0
  377. data/modules/emscripten/system/include/libcxx/atomic +1521 -0
  378. data/modules/emscripten/system/include/libcxx/bitset +1081 -0
  379. data/modules/emscripten/system/include/libcxx/cassert +25 -0
  380. data/modules/emscripten/system/include/libcxx/ccomplex +29 -0
  381. data/modules/emscripten/system/include/libcxx/cctype +164 -0
  382. data/modules/emscripten/system/include/libcxx/cerrno +393 -0
  383. data/modules/emscripten/system/include/libcxx/cfenv +82 -0
  384. data/modules/emscripten/system/include/libcxx/cfloat +78 -0
  385. data/modules/emscripten/system/include/libcxx/chrono +898 -0
  386. data/modules/emscripten/system/include/libcxx/cinttypes +259 -0
  387. data/modules/emscripten/system/include/libcxx/ciso646 +25 -0
  388. data/modules/emscripten/system/include/libcxx/climits +48 -0
  389. data/modules/emscripten/system/include/libcxx/clocale +53 -0
  390. data/modules/emscripten/system/include/libcxx/cmath +1683 -0
  391. data/modules/emscripten/system/include/libcxx/codecvt +547 -0
  392. data/modules/emscripten/system/include/libcxx/complex +1526 -0
  393. data/modules/emscripten/system/include/libcxx/complex.h +35 -0
  394. data/modules/emscripten/system/include/libcxx/condition_variable +256 -0
  395. data/modules/emscripten/system/include/libcxx/csetjmp +52 -0
  396. data/modules/emscripten/system/include/libcxx/csignal +58 -0
  397. data/modules/emscripten/system/include/libcxx/cstdarg +48 -0
  398. data/modules/emscripten/system/include/libcxx/cstdbool +32 -0
  399. data/modules/emscripten/system/include/libcxx/cstddef +103 -0
  400. data/modules/emscripten/system/include/libcxx/cstdint +191 -0
  401. data/modules/emscripten/system/include/libcxx/cstdio +175 -0
  402. data/modules/emscripten/system/include/libcxx/cstdlib +172 -0
  403. data/modules/emscripten/system/include/libcxx/cstring +112 -0
  404. data/modules/emscripten/system/include/libcxx/ctgmath +29 -0
  405. data/modules/emscripten/system/include/libcxx/ctime +72 -0
  406. data/modules/emscripten/system/include/libcxx/cwchar +208 -0
  407. data/modules/emscripten/system/include/libcxx/cwctype +213 -0
  408. data/modules/emscripten/system/include/libcxx/deque +2846 -0
  409. data/modules/emscripten/system/include/libcxx/exception +250 -0
  410. data/modules/emscripten/system/include/libcxx/ext/__hash +46 -0
  411. data/modules/emscripten/system/include/libcxx/ext/hash_map +1003 -0
  412. data/modules/emscripten/system/include/libcxx/ext/hash_set +657 -0
  413. data/modules/emscripten/system/include/libcxx/forward_list +1636 -0
  414. data/modules/emscripten/system/include/libcxx/fstream +1415 -0
  415. data/modules/emscripten/system/include/libcxx/functional +2063 -0
  416. data/modules/emscripten/system/include/libcxx/future +2505 -0
  417. data/modules/emscripten/system/include/libcxx/initializer_list +105 -0
  418. data/modules/emscripten/system/include/libcxx/iomanip +504 -0
  419. data/modules/emscripten/system/include/libcxx/ios +988 -0
  420. data/modules/emscripten/system/include/libcxx/iosfwd +194 -0
  421. data/modules/emscripten/system/include/libcxx/iostream +60 -0
  422. data/modules/emscripten/system/include/libcxx/istream +1713 -0
  423. data/modules/emscripten/system/include/libcxx/iterator +1869 -0
  424. data/modules/emscripten/system/include/libcxx/limits +809 -0
  425. data/modules/emscripten/system/include/libcxx/list +2275 -0
  426. data/modules/emscripten/system/include/libcxx/locale +4591 -0
  427. data/modules/emscripten/system/include/libcxx/map +1924 -0
  428. data/modules/emscripten/system/include/libcxx/memory +5437 -0
  429. data/modules/emscripten/system/include/libcxx/mutex +566 -0
  430. data/modules/emscripten/system/include/libcxx/new +117 -0
  431. data/modules/emscripten/system/include/libcxx/numeric +197 -0
  432. data/modules/emscripten/system/include/libcxx/ostream +1286 -0
  433. data/modules/emscripten/system/include/libcxx/queue +717 -0
  434. data/modules/emscripten/system/include/libcxx/random +6750 -0
  435. data/modules/emscripten/system/include/libcxx/ratio +487 -0
  436. data/modules/emscripten/system/include/libcxx/readme.txt +1 -0
  437. data/modules/emscripten/system/include/libcxx/regex +6439 -0
  438. data/modules/emscripten/system/include/libcxx/scoped_allocator +578 -0
  439. data/modules/emscripten/system/include/libcxx/set +1025 -0
  440. data/modules/emscripten/system/include/libcxx/sstream +888 -0
  441. data/modules/emscripten/system/include/libcxx/stack +292 -0
  442. data/modules/emscripten/system/include/libcxx/stdexcept +162 -0
  443. data/modules/emscripten/system/include/libcxx/streambuf +564 -0
  444. data/modules/emscripten/system/include/libcxx/string +3987 -0
  445. data/modules/emscripten/system/include/libcxx/strstream +400 -0
  446. data/modules/emscripten/system/include/libcxx/support/solaris/floatingpoint.h +5 -0
  447. data/modules/emscripten/system/include/libcxx/support/solaris/wchar.h +38 -0
  448. data/modules/emscripten/system/include/libcxx/support/solaris/xlocale.h +146 -0
  449. data/modules/emscripten/system/include/libcxx/support/win32/limits_win32.h +79 -0
  450. data/modules/emscripten/system/include/libcxx/support/win32/locale_win32.h +116 -0
  451. data/modules/emscripten/system/include/libcxx/support/win32/math_win32.h +113 -0
  452. data/modules/emscripten/system/include/libcxx/support/win32/support.h +115 -0
  453. data/modules/emscripten/system/include/libcxx/system_error +636 -0
  454. data/modules/emscripten/system/include/libcxx/tgmath.h +29 -0
  455. data/modules/emscripten/system/include/libcxx/thread +459 -0
  456. data/modules/emscripten/system/include/libcxx/tuple +1092 -0
  457. data/modules/emscripten/system/include/libcxx/type_traits +3040 -0
  458. data/modules/emscripten/system/include/libcxx/typeindex +103 -0
  459. data/modules/emscripten/system/include/libcxx/typeinfo +124 -0
  460. data/modules/emscripten/system/include/libcxx/unordered_map +1864 -0
  461. data/modules/emscripten/system/include/libcxx/unordered_set +1144 -0
  462. data/modules/emscripten/system/include/libcxx/utility +583 -0
  463. data/modules/emscripten/system/include/libcxx/valarray +4779 -0
  464. data/modules/emscripten/system/include/libcxx/vector +3228 -0
  465. data/modules/emscripten/system/include/memory.h +10 -0
  466. data/modules/emscripten/system/include/mntent.h +23 -0
  467. data/modules/emscripten/system/include/net/arpa/inet.h +32 -0
  468. data/modules/emscripten/system/include/net/arpa/nameser.h +535 -0
  469. data/modules/emscripten/system/include/net/arpa/nameser_compat.h +187 -0
  470. data/modules/emscripten/system/include/net/if.h +87 -0
  471. data/modules/emscripten/system/include/net/netinet/in.h +166 -0
  472. data/modules/emscripten/system/include/net/netinet/tcp.h +246 -0
  473. data/modules/emscripten/system/include/net/resolv.h +389 -0
  474. data/modules/emscripten/system/include/netdb.h +94 -0
  475. data/modules/emscripten/system/include/nl_types.h +19 -0
  476. data/modules/emscripten/system/include/poll.h +3 -0
  477. data/modules/emscripten/system/include/pty.h +6 -0
  478. data/modules/emscripten/system/include/semaphore.h +31 -0
  479. data/modules/emscripten/system/include/spawn.h +105 -0
  480. data/modules/emscripten/system/include/stdbool.h +16 -0
  481. data/modules/emscripten/system/include/sys/bitypes.h +3 -0
  482. data/modules/emscripten/system/include/sys/io.h +14 -0
  483. data/modules/emscripten/system/include/sys/ioctl.h +26 -0
  484. data/modules/emscripten/system/include/sys/poll.h +31 -0
  485. data/modules/emscripten/system/include/sys/select.h +14 -0
  486. data/modules/emscripten/system/include/sys/socket.h +101 -0
  487. data/modules/emscripten/system/include/sys/socketvar.h +3 -0
  488. data/modules/emscripten/system/include/sys/statvfs.h +32 -0
  489. data/modules/emscripten/system/include/sys/sysctl.h +14 -0
  490. data/modules/emscripten/system/include/sys/uio.h +22 -0
  491. data/modules/emscripten/system/include/sys/un.h +66 -0
  492. data/modules/emscripten/system/include/sysexits.h +108 -0
  493. data/modules/emscripten/system/include/unwind.h +154 -0
  494. data/modules/emscripten/system/include/xlocale.h +47 -0
  495. data/modules/emscripten/system/include/zconf.h +428 -0
  496. data/modules/emscripten/system/include/zlib.h +1613 -0
  497. data/modules/emscripten/system/lib/compiler-rt/LICENSE.TXT +97 -0
  498. data/modules/emscripten/system/lib/compiler-rt/divdi3.c +47 -0
  499. data/modules/emscripten/system/lib/compiler-rt/int_endianness.h +116 -0
  500. data/modules/emscripten/system/lib/compiler-rt/int_lib.h +46 -0
  501. data/modules/emscripten/system/lib/compiler-rt/int_math.h +67 -0
  502. data/modules/emscripten/system/lib/compiler-rt/int_types.h +140 -0
  503. data/modules/emscripten/system/lib/compiler-rt/int_util.h +29 -0
  504. data/modules/emscripten/system/lib/compiler-rt/muldi3.c +56 -0
  505. data/modules/emscripten/system/lib/compiler-rt/readme.txt +20 -0
  506. data/modules/emscripten/system/lib/compiler-rt/udivdi3.c +36 -0
  507. data/modules/emscripten/system/lib/compiler-rt/udivmoddi4.c +251 -0
  508. data/modules/emscripten/system/lib/debugging.cpp +24 -0
  509. data/modules/emscripten/system/lib/dlmalloc.c +6299 -0
  510. data/modules/emscripten/system/lib/embind/bind.cpp +63 -0
  511. data/modules/emscripten/system/lib/libc/gen/err.c +49 -0
  512. data/modules/emscripten/system/lib/libc/gen/errx.c +49 -0
  513. data/modules/emscripten/system/lib/libc/gen/verr.c +58 -0
  514. data/modules/emscripten/system/lib/libc/gen/verrx.c +51 -0
  515. data/modules/emscripten/system/lib/libc/gen/vwarn.c +55 -0
  516. data/modules/emscripten/system/lib/libc/gen/vwarnx.c +48 -0
  517. data/modules/emscripten/system/lib/libc/gen/warn.c +49 -0
  518. data/modules/emscripten/system/lib/libc/gen/warnx.c +49 -0
  519. data/modules/emscripten/system/lib/libc/musl/COPYRIGHT +92 -0
  520. data/modules/emscripten/system/lib/libc/musl/readme.txt +1 -0
  521. data/modules/emscripten/system/lib/libc/musl/src/ctype/alpha.h +125 -0
  522. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalnum.c +7 -0
  523. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswalpha.c +14 -0
  524. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswblank.c +8 -0
  525. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswcntrl.c +10 -0
  526. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswctype.c +63 -0
  527. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswdigit.c +9 -0
  528. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswgraph.c +7 -0
  529. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswlower.c +6 -0
  530. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswprint.c +19 -0
  531. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswpunct.c +12 -0
  532. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswspace.c +19 -0
  533. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswupper.c +6 -0
  534. data/modules/emscripten/system/lib/libc/musl/src/ctype/iswxdigit.c +7 -0
  535. data/modules/emscripten/system/lib/libc/musl/src/ctype/nonspacing.h +62 -0
  536. data/modules/emscripten/system/lib/libc/musl/src/ctype/punct.h +109 -0
  537. data/modules/emscripten/system/lib/libc/musl/src/ctype/towctrans.c +268 -0
  538. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcswidth.c +8 -0
  539. data/modules/emscripten/system/lib/libc/musl/src/ctype/wctrans.c +16 -0
  540. data/modules/emscripten/system/lib/libc/musl/src/ctype/wcwidth.c +29 -0
  541. data/modules/emscripten/system/lib/libc/musl/src/ctype/wide.h +42 -0
  542. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.c +22 -0
  543. data/modules/emscripten/system/lib/libc/musl/src/internal/libc.h +71 -0
  544. data/modules/emscripten/system/lib/libc/musl/src/multibyte/btowc.c +7 -0
  545. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.c +38 -0
  546. data/modules/emscripten/system/lib/libc/musl/src/multibyte/internal.h +22 -0
  547. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mblen.c +17 -0
  548. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrlen.c +18 -0
  549. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbrtowc.c +57 -0
  550. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsinit.c +17 -0
  551. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsnrtowcs.c +65 -0
  552. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbsrtowcs.c +100 -0
  553. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbstowcs.c +7 -0
  554. data/modules/emscripten/system/lib/libc/musl/src/multibyte/mbtowc.c +53 -0
  555. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcrtomb.c +38 -0
  556. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsnrtombs.c +52 -0
  557. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcsrtombs.c +58 -0
  558. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wcstombs.c +7 -0
  559. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctob.c +8 -0
  560. data/modules/emscripten/system/lib/libc/musl/src/multibyte/wctomb.c +18 -0
  561. data/modules/emscripten/system/lib/libc/musl/src/string/wcpcpy.c +6 -0
  562. data/modules/emscripten/system/lib/libc/musl/src/string/wcpncpy.c +6 -0
  563. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp.c +7 -0
  564. data/modules/emscripten/system/lib/libc/musl/src/string/wcscasecmp_l.c +6 -0
  565. data/modules/emscripten/system/lib/libc/musl/src/string/wcscat.c +7 -0
  566. data/modules/emscripten/system/lib/libc/musl/src/string/wcschr.c +8 -0
  567. data/modules/emscripten/system/lib/libc/musl/src/string/wcscmp.c +7 -0
  568. data/modules/emscripten/system/lib/libc/musl/src/string/wcscpy.c +8 -0
  569. data/modules/emscripten/system/lib/libc/musl/src/string/wcscspn.c +10 -0
  570. data/modules/emscripten/system/lib/libc/musl/src/string/wcsdup.c +11 -0
  571. data/modules/emscripten/system/lib/libc/musl/src/string/wcslen.c +8 -0
  572. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp.c +9 -0
  573. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncasecmp_l.c +6 -0
  574. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncat.c +10 -0
  575. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncmp.c +7 -0
  576. data/modules/emscripten/system/lib/libc/musl/src/string/wcsncpy.c +9 -0
  577. data/modules/emscripten/system/lib/libc/musl/src/string/wcsnlen.c +8 -0
  578. data/modules/emscripten/system/lib/libc/musl/src/string/wcspbrk.c +7 -0
  579. data/modules/emscripten/system/lib/libc/musl/src/string/wcsrchr.c +8 -0
  580. data/modules/emscripten/system/lib/libc/musl/src/string/wcsspn.c +8 -0
  581. data/modules/emscripten/system/lib/libc/musl/src/string/wcsstr.c +108 -0
  582. data/modules/emscripten/system/lib/libc/musl/src/string/wcstok.c +12 -0
  583. data/modules/emscripten/system/lib/libc/musl/src/string/wcswcs.c +6 -0
  584. data/modules/emscripten/system/lib/libc/musl/src/string/wmemchr.c +8 -0
  585. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcmp.c +8 -0
  586. data/modules/emscripten/system/lib/libc/musl/src/string/wmemcpy.c +9 -0
  587. data/modules/emscripten/system/lib/libc/musl/src/string/wmemmove.c +12 -0
  588. data/modules/emscripten/system/lib/libc/musl/src/string/wmemset.c +9 -0
  589. data/modules/emscripten/system/lib/libc/stdlib/getopt_long.c +511 -0
  590. data/modules/emscripten/system/lib/libc/stdlib/strtod.c +305 -0
  591. data/modules/emscripten/system/lib/libc.symbols +81 -0
  592. data/modules/emscripten/system/lib/libcextra.symbols +61 -0
  593. data/modules/emscripten/system/lib/libcxx/CREDITS.TXT +91 -0
  594. data/modules/emscripten/system/lib/libcxx/LICENSE.txt +76 -0
  595. data/modules/emscripten/system/lib/libcxx/algorithm.cpp +83 -0
  596. data/modules/emscripten/system/lib/libcxx/bind.cpp +30 -0
  597. data/modules/emscripten/system/lib/libcxx/chrono.cpp +132 -0
  598. data/modules/emscripten/system/lib/libcxx/condition_variable.cpp +81 -0
  599. data/modules/emscripten/system/lib/libcxx/debug.cpp +504 -0
  600. data/modules/emscripten/system/lib/libcxx/exception.cpp +226 -0
  601. data/modules/emscripten/system/lib/libcxx/future.cpp +285 -0
  602. data/modules/emscripten/system/lib/libcxx/hash.cpp +564 -0
  603. data/modules/emscripten/system/lib/libcxx/ios.cpp +455 -0
  604. data/modules/emscripten/system/lib/libcxx/iostream.cpp +68 -0
  605. data/modules/emscripten/system/lib/libcxx/locale.cpp +6093 -0
  606. data/modules/emscripten/system/lib/libcxx/memory.cpp +223 -0
  607. data/modules/emscripten/system/lib/libcxx/mutex.cpp +250 -0
  608. data/modules/emscripten/system/lib/libcxx/new.cpp +205 -0
  609. data/modules/emscripten/system/lib/libcxx/random.cpp +48 -0
  610. data/modules/emscripten/system/lib/libcxx/readme.txt +1 -0
  611. data/modules/emscripten/system/lib/libcxx/regex.cpp +325 -0
  612. data/modules/emscripten/system/lib/libcxx/stdexcept.cpp +196 -0
  613. data/modules/emscripten/system/lib/libcxx/string.cpp +687 -0
  614. data/modules/emscripten/system/lib/libcxx/strstream.cpp +329 -0
  615. data/modules/emscripten/system/lib/libcxx/support/solaris/README +4 -0
  616. data/modules/emscripten/system/lib/libcxx/support/solaris/mbsnrtowcs.inc +76 -0
  617. data/modules/emscripten/system/lib/libcxx/support/solaris/wcsnrtombs.inc +93 -0
  618. data/modules/emscripten/system/lib/libcxx/support/solaris/xlocale.c +245 -0
  619. data/modules/emscripten/system/lib/libcxx/support/win32/locale_win32.cpp +94 -0
  620. data/modules/emscripten/system/lib/libcxx/support/win32/support.cpp +70 -0
  621. data/modules/emscripten/system/lib/libcxx/symbols +2927 -0
  622. data/modules/emscripten/system/lib/libcxx/system_error.cpp +201 -0
  623. data/modules/emscripten/system/lib/libcxx/thread.cpp +208 -0
  624. data/modules/emscripten/system/lib/libcxx/typeinfo.cpp +60 -0
  625. data/modules/emscripten/system/lib/libcxx/utility.cpp +17 -0
  626. data/modules/emscripten/system/lib/libcxx/valarray.cpp +54 -0
  627. data/modules/emscripten/system/lib/libcxxabi/CREDITS.TXT +38 -0
  628. data/modules/emscripten/system/lib/libcxxabi/LICENSE.TXT +76 -0
  629. data/modules/emscripten/system/lib/libcxxabi/include/cxa_demangle.h +167 -0
  630. data/modules/emscripten/system/lib/libcxxabi/include/cxxabi.h +175 -0
  631. data/modules/emscripten/system/lib/libcxxabi/lib/buildit +99 -0
  632. data/modules/emscripten/system/lib/libcxxabi/readme.txt +1 -0
  633. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.cpp +50 -0
  634. data/modules/emscripten/system/lib/libcxxabi/src/abort_message.h +33 -0
  635. data/modules/emscripten/system/lib/libcxxabi/src/cxa_aux_runtime.cpp +34 -0
  636. data/modules/emscripten/system/lib/libcxxabi/src/cxa_demangle.cpp +11036 -0
  637. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.cpp +622 -0
  638. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception.hpp +123 -0
  639. data/modules/emscripten/system/lib/libcxxabi/src/cxa_exception_storage.cpp +91 -0
  640. data/modules/emscripten/system/lib/libcxxabi/src/cxa_guard.cpp +231 -0
  641. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.cpp +125 -0
  642. data/modules/emscripten/system/lib/libcxxabi/src/cxa_handlers.hpp +54 -0
  643. data/modules/emscripten/system/lib/libcxxabi/src/cxa_new_delete.cpp +242 -0
  644. data/modules/emscripten/system/lib/libcxxabi/src/cxa_personality.cpp +1055 -0
  645. data/modules/emscripten/system/lib/libcxxabi/src/cxa_unexpected.cpp +27 -0
  646. data/modules/emscripten/system/lib/libcxxabi/src/cxa_vector.cpp +367 -0
  647. data/modules/emscripten/system/lib/libcxxabi/src/cxa_virtual.cpp +31 -0
  648. data/modules/emscripten/system/lib/libcxxabi/src/exception.cpp +41 -0
  649. data/modules/emscripten/system/lib/libcxxabi/src/fallback_malloc.ipp +174 -0
  650. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.cpp +1146 -0
  651. data/modules/emscripten/system/lib/libcxxabi/src/private_typeinfo.h +248 -0
  652. data/modules/emscripten/system/lib/libcxxabi/src/stdexcept.cpp +169 -0
  653. data/modules/emscripten/system/lib/libcxxabi/src/typeinfo.cpp +53 -0
  654. data/modules/emscripten/system/lib/libcxxabi/symbols +236 -0
  655. data/modules/emscripten/system/lib/sdl.cpp +13 -0
  656. data/modules/emscripten/system/lib/sdl.symbols +1 -0
  657. data/modules/emscripten/tests/hello_world.js +92 -0
  658. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/CppHeaderParser.py +2347 -0
  659. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/__init__.py +4 -0
  660. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/doc/CppHeaderParser.html +657 -0
  661. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/SampleClass.h +147 -0
  662. data/modules/emscripten/third_party/CppHeaderParser/CppHeaderParser/examples/readSampleClass.py +74 -0
  663. data/modules/emscripten/third_party/CppHeaderParser/PKG-INFO +249 -0
  664. data/modules/emscripten/third_party/CppHeaderParser/README.html +544 -0
  665. data/modules/emscripten/third_party/CppHeaderParser/README.txt +226 -0
  666. data/modules/emscripten/third_party/CppHeaderParser/setup.py +43 -0
  667. data/modules/emscripten/third_party/ansidecl.h +371 -0
  668. data/modules/emscripten/third_party/closure-compiler/COPYING +202 -0
  669. data/modules/emscripten/third_party/closure-compiler/README +292 -0
  670. data/modules/emscripten/third_party/closure-compiler/compiler.jar +0 -0
  671. data/modules/emscripten/third_party/closure-compiler/readme.txt +3 -0
  672. data/modules/emscripten/third_party/cp-demangle.h +161 -0
  673. data/modules/emscripten/third_party/demangle.h +549 -0
  674. data/modules/emscripten/third_party/demangler.py +49 -0
  675. data/modules/emscripten/third_party/gcc_demangler.c +4226 -0
  676. data/modules/emscripten/third_party/gcc_demangler.js +21282 -0
  677. data/modules/emscripten/third_party/jni/emjvm.cpp +133 -0
  678. data/modules/emscripten/third_party/jni/emjvm.h +8 -0
  679. data/modules/emscripten/third_party/jni/emjvm.js +185 -0
  680. data/modules/emscripten/third_party/jni/jni.h +1154 -0
  681. data/modules/emscripten/third_party/libiberty.h +634 -0
  682. data/modules/emscripten/third_party/lzma.js/README.markdown +37 -0
  683. data/modules/emscripten/third_party/lzma.js/doit.sh +37 -0
  684. data/modules/emscripten/third_party/lzma.js/lzip/AUTHORS +7 -0
  685. data/modules/emscripten/third_party/lzma.js/lzip/COPYING +676 -0
  686. data/modules/emscripten/third_party/lzma.js/lzip/ChangeLog +201 -0
  687. data/modules/emscripten/third_party/lzma.js/lzip/INSTALL +56 -0
  688. data/modules/emscripten/third_party/lzma.js/lzip/Makefile +160 -0
  689. data/modules/emscripten/third_party/lzma.js/lzip/Makefile.in +138 -0
  690. data/modules/emscripten/third_party/lzma.js/lzip/NEWS +22 -0
  691. data/modules/emscripten/third_party/lzma.js/lzip/README +77 -0
  692. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.cc +204 -0
  693. data/modules/emscripten/third_party/lzma.js/lzip/arg_parser.h +106 -0
  694. data/modules/emscripten/third_party/lzma.js/lzip/configure +192 -0
  695. data/modules/emscripten/third_party/lzma.js/lzip/decoder.cc +252 -0
  696. data/modules/emscripten/third_party/lzma.js/lzip/decoder.h +268 -0
  697. data/modules/emscripten/third_party/lzma.js/lzip/encoder.cc +643 -0
  698. data/modules/emscripten/third_party/lzma.js/lzip/encoder.h +582 -0
  699. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.cc +378 -0
  700. data/modules/emscripten/third_party/lzma.js/lzip/fast_encoder.h +171 -0
  701. data/modules/emscripten/third_party/lzma.js/lzip/lzip.h +264 -0
  702. data/modules/emscripten/third_party/lzma.js/lzip/main.cc +545 -0
  703. data/modules/emscripten/third_party/lzma.js/lzma-decoder.js +27 -0
  704. data/modules/emscripten/third_party/lzma.js/lzma-full.js +27 -0
  705. data/modules/emscripten/third_party/lzma.js/native_test.sh +5 -0
  706. data/modules/emscripten/third_party/lzma.js/post.js +13 -0
  707. data/modules/emscripten/third_party/lzma.js/pre.js +13 -0
  708. data/modules/emscripten/third_party/lzma.js/test-decoder.js +39 -0
  709. data/modules/emscripten/third_party/lzma.js/test-full.html +9 -0
  710. data/modules/emscripten/third_party/lzma.js/test-full.js +78 -0
  711. data/modules/emscripten/third_party/ply/ANNOUNCE +40 -0
  712. data/modules/emscripten/third_party/ply/CHANGES +1093 -0
  713. data/modules/emscripten/third_party/ply/PKG-INFO +22 -0
  714. data/modules/emscripten/third_party/ply/README +271 -0
  715. data/modules/emscripten/third_party/ply/TODO +16 -0
  716. data/modules/emscripten/third_party/ply/doc/internal.html +874 -0
  717. data/modules/emscripten/third_party/ply/doc/makedoc.py +194 -0
  718. data/modules/emscripten/third_party/ply/doc/ply.html +3262 -0
  719. data/modules/emscripten/third_party/ply/example/BASIC/README +79 -0
  720. data/modules/emscripten/third_party/ply/example/BASIC/basic.py +71 -0
  721. data/modules/emscripten/third_party/ply/example/BASIC/basiclex.py +74 -0
  722. data/modules/emscripten/third_party/ply/example/BASIC/basiclog.py +79 -0
  723. data/modules/emscripten/third_party/ply/example/BASIC/basinterp.py +441 -0
  724. data/modules/emscripten/third_party/ply/example/BASIC/basparse.py +424 -0
  725. data/modules/emscripten/third_party/ply/example/BASIC/dim.bas +14 -0
  726. data/modules/emscripten/third_party/ply/example/BASIC/func.bas +5 -0
  727. data/modules/emscripten/third_party/ply/example/BASIC/gcd.bas +22 -0
  728. data/modules/emscripten/third_party/ply/example/BASIC/gosub.bas +13 -0
  729. data/modules/emscripten/third_party/ply/example/BASIC/hello.bas +4 -0
  730. data/modules/emscripten/third_party/ply/example/BASIC/linear.bas +17 -0
  731. data/modules/emscripten/third_party/ply/example/BASIC/maxsin.bas +12 -0
  732. data/modules/emscripten/third_party/ply/example/BASIC/powers.bas +13 -0
  733. data/modules/emscripten/third_party/ply/example/BASIC/rand.bas +4 -0
  734. data/modules/emscripten/third_party/ply/example/BASIC/sales.bas +20 -0
  735. data/modules/emscripten/third_party/ply/example/BASIC/sears.bas +18 -0
  736. data/modules/emscripten/third_party/ply/example/BASIC/sqrt1.bas +5 -0
  737. data/modules/emscripten/third_party/ply/example/BASIC/sqrt2.bas +4 -0
  738. data/modules/emscripten/third_party/ply/example/GardenSnake/GardenSnake.py +709 -0
  739. data/modules/emscripten/third_party/ply/example/GardenSnake/README +5 -0
  740. data/modules/emscripten/third_party/ply/example/README +10 -0
  741. data/modules/emscripten/third_party/ply/example/ansic/README +2 -0
  742. data/modules/emscripten/third_party/ply/example/ansic/clex.py +164 -0
  743. data/modules/emscripten/third_party/ply/example/ansic/cparse.py +863 -0
  744. data/modules/emscripten/third_party/ply/example/calc/calc.py +107 -0
  745. data/modules/emscripten/third_party/ply/example/calcdebug/calc.py +113 -0
  746. data/modules/emscripten/third_party/ply/example/classcalc/calc.py +157 -0
  747. data/modules/emscripten/third_party/ply/example/cleanup.sh +2 -0
  748. data/modules/emscripten/third_party/ply/example/closurecalc/calc.py +130 -0
  749. data/modules/emscripten/third_party/ply/example/hedit/hedit.py +48 -0
  750. data/modules/emscripten/third_party/ply/example/newclasscalc/calc.py +160 -0
  751. data/modules/emscripten/third_party/ply/example/optcalc/README +9 -0
  752. data/modules/emscripten/third_party/ply/example/optcalc/calc.py +119 -0
  753. data/modules/emscripten/third_party/ply/example/unicalc/calc.py +117 -0
  754. data/modules/emscripten/third_party/ply/example/yply/README +41 -0
  755. data/modules/emscripten/third_party/ply/example/yply/ylex.py +112 -0
  756. data/modules/emscripten/third_party/ply/example/yply/yparse.py +217 -0
  757. data/modules/emscripten/third_party/ply/example/yply/yply.py +53 -0
  758. data/modules/emscripten/third_party/ply/ply/__init__.py +4 -0
  759. data/modules/emscripten/third_party/ply/ply/cpp.py +898 -0
  760. data/modules/emscripten/third_party/ply/ply/ctokens.py +133 -0
  761. data/modules/emscripten/third_party/ply/ply/lex.py +1058 -0
  762. data/modules/emscripten/third_party/ply/ply/yacc.py +3276 -0
  763. data/modules/emscripten/third_party/ply/setup.py +31 -0
  764. data/modules/emscripten/third_party/ply/test/README +7 -0
  765. data/modules/emscripten/third_party/ply/test/calclex.py +49 -0
  766. data/modules/emscripten/third_party/ply/test/cleanup.sh +4 -0
  767. data/modules/emscripten/third_party/ply/test/lex_closure.py +54 -0
  768. data/modules/emscripten/third_party/ply/test/lex_doc1.py +26 -0
  769. data/modules/emscripten/third_party/ply/test/lex_dup1.py +29 -0
  770. data/modules/emscripten/third_party/ply/test/lex_dup2.py +33 -0
  771. data/modules/emscripten/third_party/ply/test/lex_dup3.py +31 -0
  772. data/modules/emscripten/third_party/ply/test/lex_empty.py +20 -0
  773. data/modules/emscripten/third_party/ply/test/lex_error1.py +24 -0
  774. data/modules/emscripten/third_party/ply/test/lex_error2.py +26 -0
  775. data/modules/emscripten/third_party/ply/test/lex_error3.py +27 -0
  776. data/modules/emscripten/third_party/ply/test/lex_error4.py +27 -0
  777. data/modules/emscripten/third_party/ply/test/lex_hedit.py +47 -0
  778. data/modules/emscripten/third_party/ply/test/lex_ignore.py +31 -0
  779. data/modules/emscripten/third_party/ply/test/lex_ignore2.py +29 -0
  780. data/modules/emscripten/third_party/ply/test/lex_literal1.py +25 -0
  781. data/modules/emscripten/third_party/ply/test/lex_literal2.py +25 -0
  782. data/modules/emscripten/third_party/ply/test/lex_many_tokens.py +27 -0
  783. data/modules/emscripten/third_party/ply/test/lex_module.py +10 -0
  784. data/modules/emscripten/third_party/ply/test/lex_module_import.py +42 -0
  785. data/modules/emscripten/third_party/ply/test/lex_object.py +55 -0
  786. data/modules/emscripten/third_party/ply/test/lex_opt_alias.py +54 -0
  787. data/modules/emscripten/third_party/ply/test/lex_optimize.py +50 -0
  788. data/modules/emscripten/third_party/ply/test/lex_optimize2.py +50 -0
  789. data/modules/emscripten/third_party/ply/test/lex_optimize3.py +52 -0
  790. data/modules/emscripten/third_party/ply/test/lex_re1.py +27 -0
  791. data/modules/emscripten/third_party/ply/test/lex_re2.py +27 -0
  792. data/modules/emscripten/third_party/ply/test/lex_re3.py +29 -0
  793. data/modules/emscripten/third_party/ply/test/lex_rule1.py +27 -0
  794. data/modules/emscripten/third_party/ply/test/lex_rule2.py +29 -0
  795. data/modules/emscripten/third_party/ply/test/lex_rule3.py +27 -0
  796. data/modules/emscripten/third_party/ply/test/lex_state1.py +40 -0
  797. data/modules/emscripten/third_party/ply/test/lex_state2.py +40 -0
  798. data/modules/emscripten/third_party/ply/test/lex_state3.py +42 -0
  799. data/modules/emscripten/third_party/ply/test/lex_state4.py +41 -0
  800. data/modules/emscripten/third_party/ply/test/lex_state5.py +40 -0
  801. data/modules/emscripten/third_party/ply/test/lex_state_noerror.py +39 -0
  802. data/modules/emscripten/third_party/ply/test/lex_state_norule.py +40 -0
  803. data/modules/emscripten/third_party/ply/test/lex_state_try.py +45 -0
  804. data/modules/emscripten/third_party/ply/test/lex_token1.py +19 -0
  805. data/modules/emscripten/third_party/ply/test/lex_token2.py +22 -0
  806. data/modules/emscripten/third_party/ply/test/lex_token3.py +24 -0
  807. data/modules/emscripten/third_party/ply/test/lex_token4.py +26 -0
  808. data/modules/emscripten/third_party/ply/test/lex_token5.py +31 -0
  809. data/modules/emscripten/third_party/ply/test/lex_token_dup.py +29 -0
  810. data/modules/emscripten/third_party/ply/test/testlex.py +606 -0
  811. data/modules/emscripten/third_party/ply/test/testyacc.py +347 -0
  812. data/modules/emscripten/third_party/ply/test/yacc_badargs.py +68 -0
  813. data/modules/emscripten/third_party/ply/test/yacc_badid.py +77 -0
  814. data/modules/emscripten/third_party/ply/test/yacc_badprec.py +64 -0
  815. data/modules/emscripten/third_party/ply/test/yacc_badprec2.py +68 -0
  816. data/modules/emscripten/third_party/ply/test/yacc_badprec3.py +68 -0
  817. data/modules/emscripten/third_party/ply/test/yacc_badrule.py +68 -0
  818. data/modules/emscripten/third_party/ply/test/yacc_badtok.py +68 -0
  819. data/modules/emscripten/third_party/ply/test/yacc_dup.py +68 -0
  820. data/modules/emscripten/third_party/ply/test/yacc_error1.py +68 -0
  821. data/modules/emscripten/third_party/ply/test/yacc_error2.py +68 -0
  822. data/modules/emscripten/third_party/ply/test/yacc_error3.py +67 -0
  823. data/modules/emscripten/third_party/ply/test/yacc_error4.py +72 -0
  824. data/modules/emscripten/third_party/ply/test/yacc_inf.py +56 -0
  825. data/modules/emscripten/third_party/ply/test/yacc_literal.py +69 -0
  826. data/modules/emscripten/third_party/ply/test/yacc_misplaced.py +68 -0
  827. data/modules/emscripten/third_party/ply/test/yacc_missing1.py +68 -0
  828. data/modules/emscripten/third_party/ply/test/yacc_nested.py +33 -0
  829. data/modules/emscripten/third_party/ply/test/yacc_nodoc.py +67 -0
  830. data/modules/emscripten/third_party/ply/test/yacc_noerror.py +66 -0
  831. data/modules/emscripten/third_party/ply/test/yacc_nop.py +68 -0
  832. data/modules/emscripten/third_party/ply/test/yacc_notfunc.py +66 -0
  833. data/modules/emscripten/third_party/ply/test/yacc_notok.py +67 -0
  834. data/modules/emscripten/third_party/ply/test/yacc_prec1.py +68 -0
  835. data/modules/emscripten/third_party/ply/test/yacc_rr.py +72 -0
  836. data/modules/emscripten/third_party/ply/test/yacc_rr_unused.py +30 -0
  837. data/modules/emscripten/third_party/ply/test/yacc_simple.py +68 -0
  838. data/modules/emscripten/third_party/ply/test/yacc_sr.py +63 -0
  839. data/modules/emscripten/third_party/ply/test/yacc_term1.py +68 -0
  840. data/modules/emscripten/third_party/ply/test/yacc_unused.py +77 -0
  841. data/modules/emscripten/third_party/ply/test/yacc_unused_rule.py +72 -0
  842. data/modules/emscripten/third_party/ply/test/yacc_uprec.py +63 -0
  843. data/modules/emscripten/third_party/ply/test/yacc_uprec2.py +63 -0
  844. data/modules/emscripten/third_party/readme.txt +7 -0
  845. data/modules/emscripten/third_party/websockify/CHANGES.txt +23 -0
  846. data/modules/emscripten/third_party/websockify/LICENSE.txt +16 -0
  847. data/modules/emscripten/third_party/websockify/MANIFEST.in +1 -0
  848. data/modules/emscripten/third_party/websockify/Makefile +11 -0
  849. data/modules/emscripten/third_party/websockify/README.md +168 -0
  850. data/modules/emscripten/third_party/websockify/Windows/Windows Service Readme.txt +39 -0
  851. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Program.cs +24 -0
  852. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.Designer.cs +61 -0
  853. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.cs +19 -0
  854. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/ProjectInstaller.resx +129 -0
  855. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Properties/AssemblyInfo.cs +36 -0
  856. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.Designer.cs +37 -0
  857. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/Service1.cs +41 -0
  858. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.csproj +75 -0
  859. data/modules/emscripten/third_party/websockify/Windows/noVNC Websocket Service Project/noVNC Websocket.sln +20 -0
  860. data/modules/emscripten/third_party/websockify/docs/LICENSE.GPL-3 +621 -0
  861. data/modules/emscripten/third_party/websockify/docs/LICENSE.LGPL-3 +165 -0
  862. data/modules/emscripten/third_party/websockify/docs/LICENSE.MPL-2.0 +373 -0
  863. data/modules/emscripten/third_party/websockify/docs/TODO +9 -0
  864. data/modules/emscripten/third_party/websockify/docs/flash_policy.txt +4 -0
  865. data/modules/emscripten/third_party/websockify/docs/latency_results.txt +114 -0
  866. data/modules/emscripten/third_party/websockify/docs/notes +17 -0
  867. data/modules/emscripten/third_party/websockify/docs/release.txt +9 -0
  868. data/modules/emscripten/third_party/websockify/docs/websockify.1 +110 -0
  869. data/modules/emscripten/third_party/websockify/include/VT100.js +919 -0
  870. data/modules/emscripten/third_party/websockify/include/base64.js +114 -0
  871. data/modules/emscripten/third_party/websockify/include/keysym.js +99 -0
  872. data/modules/emscripten/third_party/websockify/include/util.js +359 -0
  873. data/modules/emscripten/third_party/websockify/include/web-socket-js/README.txt +109 -0
  874. data/modules/emscripten/third_party/websockify/include/web-socket-js/WebSocketMain.swf +0 -0
  875. data/modules/emscripten/third_party/websockify/include/web-socket-js/swfobject.js +4 -0
  876. data/modules/emscripten/third_party/websockify/include/web-socket-js/web_socket.js +391 -0
  877. data/modules/emscripten/third_party/websockify/include/websock.js +422 -0
  878. data/modules/emscripten/third_party/websockify/include/webutil.js +216 -0
  879. data/modules/emscripten/third_party/websockify/include/wsirc.js +235 -0
  880. data/modules/emscripten/third_party/websockify/include/wstelnet.js +335 -0
  881. data/modules/emscripten/third_party/websockify/other/Makefile +14 -0
  882. data/modules/emscripten/third_party/websockify/other/README.md +51 -0
  883. data/modules/emscripten/third_party/websockify/other/launch.sh +108 -0
  884. data/modules/emscripten/third_party/websockify/other/project.clj +13 -0
  885. data/modules/emscripten/third_party/websockify/other/websocket.c +802 -0
  886. data/modules/emscripten/third_party/websockify/other/websocket.h +84 -0
  887. data/modules/emscripten/third_party/websockify/other/websocket.rb +456 -0
  888. data/modules/emscripten/third_party/websockify/other/websockify.c +385 -0
  889. data/modules/emscripten/third_party/websockify/other/websockify.clj +233 -0
  890. data/modules/emscripten/third_party/websockify/other/websockify.js +196 -0
  891. data/modules/emscripten/third_party/websockify/other/websockify.rb +171 -0
  892. data/modules/emscripten/third_party/websockify/other/wswrap +22 -0
  893. data/modules/emscripten/third_party/websockify/rebind +18 -0
  894. data/modules/emscripten/third_party/websockify/rebind.c +94 -0
  895. data/modules/emscripten/third_party/websockify/run +5 -0
  896. data/modules/emscripten/third_party/websockify/setup.py +30 -0
  897. data/modules/emscripten/third_party/websockify/tests/b64_vs_utf8.py +29 -0
  898. data/modules/emscripten/third_party/websockify/tests/base64.html +91 -0
  899. data/modules/emscripten/third_party/websockify/tests/base64.js +12 -0
  900. data/modules/emscripten/third_party/websockify/tests/echo.html +148 -0
  901. data/modules/emscripten/third_party/websockify/tests/echo.py +75 -0
  902. data/modules/emscripten/third_party/websockify/tests/echo.rb +62 -0
  903. data/modules/emscripten/third_party/websockify/tests/latency.html +290 -0
  904. data/modules/emscripten/third_party/websockify/tests/latency.py +75 -0
  905. data/modules/emscripten/third_party/websockify/tests/load.html +250 -0
  906. data/modules/emscripten/third_party/websockify/tests/load.py +167 -0
  907. data/modules/emscripten/third_party/websockify/tests/plain_echo.html +168 -0
  908. data/modules/emscripten/third_party/websockify/tests/simple.html +68 -0
  909. data/modules/emscripten/third_party/websockify/tests/utf8-list.py +22 -0
  910. data/modules/emscripten/third_party/websockify/websockify/__init__.py +2 -0
  911. data/modules/emscripten/third_party/websockify/websockify/websocket.py +982 -0
  912. data/modules/emscripten/third_party/websockify/websockify/websocketproxy.py +393 -0
  913. data/modules/emscripten/third_party/websockify/websockify.py +5 -0
  914. data/modules/emscripten/third_party/websockify/wsirc.html +99 -0
  915. data/modules/emscripten/third_party/websockify/wstelnet.html +74 -0
  916. data/modules/emscripten/tools/__init__.py +0 -0
  917. data/modules/emscripten/tools/__init__.pyc +0 -0
  918. data/modules/emscripten/tools/autodebugger.py +289 -0
  919. data/modules/emscripten/tools/autodebugger_c.py +37 -0
  920. data/modules/emscripten/tools/autodebugger_indenter.py +18 -0
  921. data/modules/emscripten/tools/autodebugger_js.py +47 -0
  922. data/modules/emscripten/tools/autodediffer.py +60 -0
  923. data/modules/emscripten/tools/bindings_generator.py +832 -0
  924. data/modules/emscripten/tools/bisect_pair.py +88 -0
  925. data/modules/emscripten/tools/cache.py +198 -0
  926. data/modules/emscripten/tools/cache.pyc +0 -0
  927. data/modules/emscripten/tools/clean_webconsole.py +34 -0
  928. data/modules/emscripten/tools/crunch-worker.js +124 -0
  929. data/modules/emscripten/tools/diff_autodebugger.py +15 -0
  930. data/modules/emscripten/tools/eliminator/asm-eliminator-test-output.js +5129 -0
  931. data/modules/emscripten/tools/eliminator/asm-eliminator-test.js +6861 -0
  932. data/modules/emscripten/tools/eliminator/eliminator-test-output.js +6122 -0
  933. data/modules/emscripten/tools/eliminator/eliminator-test.js +8856 -0
  934. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.html +888 -0
  935. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/README.org +463 -0
  936. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/bin/uglifyjs +317 -0
  937. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/docstyle.css +75 -0
  938. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/object-ast.js +75 -0
  939. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/parse-js.js +1363 -0
  940. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/process.js +2005 -0
  941. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/lib/squeeze-more.js +51 -0
  942. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/package.json +22 -0
  943. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/beautify.js +28 -0
  944. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/testparser.js +402 -0
  945. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array1.js +1 -0
  946. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array2.js +1 -0
  947. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array3.js +1 -0
  948. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/array4.js +1 -0
  949. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/assignment.js +1 -0
  950. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +1 -0
  951. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/const.js +1 -0
  952. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +1 -0
  953. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +1 -0
  954. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/if.js +1 -0
  955. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +1 -0
  956. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +1 -0
  957. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue10.js +1 -0
  958. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue11.js +1 -0
  959. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue13.js +1 -0
  960. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue14.js +1 -0
  961. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue16.js +1 -0
  962. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue17.js +1 -0
  963. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue20.js +1 -0
  964. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue21.js +1 -0
  965. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue25.js +1 -0
  966. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue27.js +1 -0
  967. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue28.js +1 -0
  968. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue29.js +1 -0
  969. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue30.js +1 -0
  970. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue34.js +1 -0
  971. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue4.js +1 -0
  972. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue48.js +1 -0
  973. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue50.js +1 -0
  974. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue53.js +1 -0
  975. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +1 -0
  976. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue68.js +1 -0
  977. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue69.js +1 -0
  978. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/issue9.js +1 -0
  979. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/mangle.js +1 -0
  980. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +1 -0
  981. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/var.js +1 -0
  982. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/expected/with.js +1 -0
  983. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array1.js +3 -0
  984. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array2.js +4 -0
  985. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array3.js +4 -0
  986. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/array4.js +6 -0
  987. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/assignment.js +20 -0
  988. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/concatstring.js +3 -0
  989. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/const.js +5 -0
  990. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +4 -0
  991. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/forstatement.js +10 -0
  992. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/if.js +6 -0
  993. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +9 -0
  994. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +16 -0
  995. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue10.js +1 -0
  996. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue11.js +3 -0
  997. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue13.js +1 -0
  998. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue14.js +1 -0
  999. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue16.js +1 -0
  1000. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue17.js +4 -0
  1001. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue20.js +1 -0
  1002. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue21.js +6 -0
  1003. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue25.js +7 -0
  1004. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue27.js +1 -0
  1005. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue28.js +3 -0
  1006. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue29.js +1 -0
  1007. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue30.js +3 -0
  1008. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue34.js +3 -0
  1009. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue4.js +3 -0
  1010. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue48.js +1 -0
  1011. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue50.js +9 -0
  1012. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue53.js +1 -0
  1013. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +3 -0
  1014. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue68.js +5 -0
  1015. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue69.js +1 -0
  1016. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/issue9.js +4 -0
  1017. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/mangle.js +5 -0
  1018. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +3 -0
  1019. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/var.js +3 -0
  1020. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/compress/test/with.js +2 -0
  1021. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/test/unit/scripts.js +55 -0
  1022. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/hoist.js +33 -0
  1023. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument.js +97 -0
  1024. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/instrument2.js +138 -0
  1025. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/tmp/test.js +16 -0
  1026. data/modules/emscripten/tools/eliminator/node_modules/uglify-js/uglify-js.js +17 -0
  1027. data/modules/emscripten/tools/eliminator/safe-eliminator-test-output.js +85 -0
  1028. data/modules/emscripten/tools/eliminator/safe-eliminator-test.js +103 -0
  1029. data/modules/emscripten/tools/emconfiguren.py +19 -0
  1030. data/modules/emscripten/tools/emmaken.py +230 -0
  1031. data/modules/emscripten/tools/emmakenxx.py +18 -0
  1032. data/modules/emscripten/tools/exec_llvm.py +50 -0
  1033. data/modules/emscripten/tools/file2json.py +49 -0
  1034. data/modules/emscripten/tools/file_packager.py +649 -0
  1035. data/modules/emscripten/tools/find_bigfuncs.py +23 -0
  1036. data/modules/emscripten/tools/find_bigis.py +18 -0
  1037. data/modules/emscripten/tools/fix_closure.py +88 -0
  1038. data/modules/emscripten/tools/ie7_fix.py +14 -0
  1039. data/modules/emscripten/tools/js-optimizer.js +3440 -0
  1040. data/modules/emscripten/tools/js_optimizer.py +341 -0
  1041. data/modules/emscripten/tools/js_optimizer.pyc +0 -0
  1042. data/modules/emscripten/tools/jsrun.py +27 -0
  1043. data/modules/emscripten/tools/jsrun.pyc +0 -0
  1044. data/modules/emscripten/tools/ll-strip.py +56 -0
  1045. data/modules/emscripten/tools/make_file.py +19 -0
  1046. data/modules/emscripten/tools/make_minigzip.py +13 -0
  1047. data/modules/emscripten/tools/namespacer.py +95 -0
  1048. data/modules/emscripten/tools/nativize_llvm.py +34 -0
  1049. data/modules/emscripten/tools/node_modules/source-map/CHANGELOG.md +58 -0
  1050. data/modules/emscripten/tools/node_modules/source-map/LICENSE +28 -0
  1051. data/modules/emscripten/tools/node_modules/source-map/Makefile.dryice.js +166 -0
  1052. data/modules/emscripten/tools/node_modules/source-map/README.md +347 -0
  1053. data/modules/emscripten/tools/node_modules/source-map/build/assert-shim.js +56 -0
  1054. data/modules/emscripten/tools/node_modules/source-map/build/mini-require.js +152 -0
  1055. data/modules/emscripten/tools/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  1056. data/modules/emscripten/tools/node_modules/source-map/build/prefix-utils.jsm +18 -0
  1057. data/modules/emscripten/tools/node_modules/source-map/build/suffix-browser.js +8 -0
  1058. data/modules/emscripten/tools/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  1059. data/modules/emscripten/tools/node_modules/source-map/build/suffix-utils.jsm +21 -0
  1060. data/modules/emscripten/tools/node_modules/source-map/build/test-prefix.js +8 -0
  1061. data/modules/emscripten/tools/node_modules/source-map/build/test-suffix.js +3 -0
  1062. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/array-set.js +96 -0
  1063. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  1064. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/base64.js +42 -0
  1065. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  1066. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-consumer.js +430 -0
  1067. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-map-generator.js +381 -0
  1068. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/source-node.js +353 -0
  1069. data/modules/emscripten/tools/node_modules/source-map/lib/source-map/util.js +117 -0
  1070. data/modules/emscripten/tools/node_modules/source-map/lib/source-map.js +8 -0
  1071. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  1072. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/README.md +119 -0
  1073. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  1074. data/modules/emscripten/tools/node_modules/source-map/node_modules/amdefine/package.json +33 -0
  1075. data/modules/emscripten/tools/node_modules/source-map/package.json +74 -0
  1076. data/modules/emscripten/tools/node_modules/source-map/test/run-tests.js +73 -0
  1077. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-api.js +26 -0
  1078. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-array-set.js +71 -0
  1079. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  1080. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-base64.js +35 -0
  1081. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  1082. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
  1083. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-consumer.js +306 -0
  1084. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-map-generator.js +391 -0
  1085. data/modules/emscripten/tools/node_modules/source-map/test/source-map/test-source-node.js +282 -0
  1086. data/modules/emscripten/tools/node_modules/source-map/test/source-map/util.js +152 -0
  1087. data/modules/emscripten/tools/reproduceriter.js +216 -0
  1088. data/modules/emscripten/tools/reproduceriter.py +160 -0
  1089. data/modules/emscripten/tools/response_file.py +28 -0
  1090. data/modules/emscripten/tools/response_file.pyc +0 -0
  1091. data/modules/emscripten/tools/scan_js.py +20 -0
  1092. data/modules/emscripten/tools/scan_ll.py +18 -0
  1093. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/__init__.py +3 -0
  1094. data/modules/emscripten/tools/scons/site_scons/site_tools/emscripten/emscripten.py +46 -0
  1095. data/modules/emscripten/tools/settings_template_readonly.py +47 -0
  1096. data/modules/emscripten/tools/shared.py +1437 -0
  1097. data/modules/emscripten/tools/shared.pyc +0 -0
  1098. data/modules/emscripten/tools/source-maps/sourcemap2json.js +15 -0
  1099. data/modules/emscripten/tools/source-maps/sourcemapper.js +177 -0
  1100. data/modules/emscripten/tools/split.py +97 -0
  1101. data/modules/emscripten/tools/tempfiles.py +40 -0
  1102. data/modules/emscripten/tools/tempfiles.pyc +0 -0
  1103. data/modules/emscripten/tools/test-js-optimizer-asm-last-output.js +75 -0
  1104. data/modules/emscripten/tools/test-js-optimizer-asm-last.js +91 -0
  1105. data/modules/emscripten/tools/test-js-optimizer-asm-outline-output.js +570 -0
  1106. data/modules/emscripten/tools/test-js-optimizer-asm-outline.js +606 -0
  1107. data/modules/emscripten/tools/test-js-optimizer-asm-pre-output.js +540 -0
  1108. data/modules/emscripten/tools/test-js-optimizer-asm-pre.js +550 -0
  1109. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min-output.js +36 -0
  1110. data/modules/emscripten/tools/test-js-optimizer-asm-regs-min.js +37 -0
  1111. data/modules/emscripten/tools/test-js-optimizer-asm-regs-output.js +106 -0
  1112. data/modules/emscripten/tools/test-js-optimizer-asm-regs.js +110 -0
  1113. data/modules/emscripten/tools/test-js-optimizer-asm-relocate-output.js +9 -0
  1114. data/modules/emscripten/tools/test-js-optimizer-asm-relocate.js +12 -0
  1115. data/modules/emscripten/tools/test-js-optimizer-output.js +291 -0
  1116. data/modules/emscripten/tools/test-js-optimizer-regs-output.js +232 -0
  1117. data/modules/emscripten/tools/test-js-optimizer-regs.js +237 -0
  1118. data/modules/emscripten/tools/test-js-optimizer-t2-output.js +91 -0
  1119. data/modules/emscripten/tools/test-js-optimizer-t2.js +92 -0
  1120. data/modules/emscripten/tools/test-js-optimizer-t2c-output.js +17 -0
  1121. data/modules/emscripten/tools/test-js-optimizer-t2c.js +18 -0
  1122. data/modules/emscripten/tools/test-js-optimizer-t3-output.js +49 -0
  1123. data/modules/emscripten/tools/test-js-optimizer-t3.js +50 -0
  1124. data/modules/emscripten/tools/test-js-optimizer.js +401 -0
  1125. data/modules/mruby/AUTHORS +18 -0
  1126. data/modules/mruby/CONTRIBUTING.md +65 -0
  1127. data/modules/mruby/ChangeLog +15 -0
  1128. data/modules/mruby/INSTALL +29 -0
  1129. data/modules/mruby/LEGAL +6 -0
  1130. data/modules/mruby/MITL +20 -0
  1131. data/modules/mruby/Makefile +18 -0
  1132. data/modules/mruby/NEWS +13 -0
  1133. data/modules/mruby/README.md +116 -0
  1134. data/modules/mruby/Rakefile +114 -0
  1135. data/modules/mruby/TODO +11 -0
  1136. data/modules/mruby/benchmark/ao-render.rb +315 -0
  1137. data/modules/mruby/benchmark/bm_so_lists.rb +47 -0
  1138. data/modules/mruby/benchmark/fib39.rb +8 -0
  1139. data/modules/mruby/build_config.rb +88 -0
  1140. data/modules/mruby/doc/compile/README.md +376 -0
  1141. data/modules/mruby/doc/mrbgems/README.md +254 -0
  1142. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/README.md +4 -0
  1143. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake +23 -0
  1144. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb +5 -0
  1145. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +20 -0
  1146. data/modules/mruby/examples/mrbgems/c_and_ruby_extension_example/test/example.rb +7 -0
  1147. data/modules/mruby/examples/mrbgems/c_extension_example/README.md +4 -0
  1148. data/modules/mruby/examples/mrbgems/c_extension_example/mrbgem.rake +23 -0
  1149. data/modules/mruby/examples/mrbgems/c_extension_example/src/example.c +20 -0
  1150. data/modules/mruby/examples/mrbgems/c_extension_example/test/example.c +7 -0
  1151. data/modules/mruby/examples/mrbgems/c_extension_example/test/example.rb +3 -0
  1152. data/modules/mruby/examples/mrbgems/ruby_extension_example/README.md +4 -0
  1153. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrbgem.rake +23 -0
  1154. data/modules/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb +5 -0
  1155. data/modules/mruby/examples/mrbgems/ruby_extension_example/test/example.rb +3 -0
  1156. data/modules/mruby/examples/targets/ArduinoDue.rb +65 -0
  1157. data/modules/mruby/examples/targets/chipKitMax32.rb +68 -0
  1158. data/modules/mruby/include/mrbconf.h +87 -0
  1159. data/modules/mruby/include/mruby/array.h +63 -0
  1160. data/modules/mruby/include/mruby/class.h +75 -0
  1161. data/modules/mruby/include/mruby/compile.h +176 -0
  1162. data/modules/mruby/include/mruby/data.h +53 -0
  1163. data/modules/mruby/include/mruby/dump.h +151 -0
  1164. data/modules/mruby/include/mruby/gc.h +17 -0
  1165. data/modules/mruby/include/mruby/hash.h +54 -0
  1166. data/modules/mruby/include/mruby/irep.h +40 -0
  1167. data/modules/mruby/include/mruby/khash.h +257 -0
  1168. data/modules/mruby/include/mruby/numeric.h +32 -0
  1169. data/modules/mruby/include/mruby/proc.h +62 -0
  1170. data/modules/mruby/include/mruby/range.h +35 -0
  1171. data/modules/mruby/include/mruby/string.h +78 -0
  1172. data/modules/mruby/include/mruby/value.h +483 -0
  1173. data/modules/mruby/include/mruby/variable.h +78 -0
  1174. data/modules/mruby/include/mruby.h +388 -0
  1175. data/modules/mruby/minirake +477 -0
  1176. data/modules/mruby/mrbgems/default.gembox +61 -0
  1177. data/modules/mruby/mrbgems/full-core.gembox +9 -0
  1178. data/modules/mruby/mrbgems/mruby-array-ext/mrbgem.rake +4 -0
  1179. data/modules/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +204 -0
  1180. data/modules/mruby/mrbgems/mruby-array-ext/src/array.c +140 -0
  1181. data/modules/mruby/mrbgems/mruby-array-ext/test/array.rb +109 -0
  1182. data/modules/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +5 -0
  1183. data/modules/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +365 -0
  1184. data/modules/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +5 -0
  1185. data/modules/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +243 -0
  1186. data/modules/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +4 -0
  1187. data/modules/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +164 -0
  1188. data/modules/mruby/mrbgems/mruby-enum-ext/test/enum.rb +44 -0
  1189. data/modules/mruby/mrbgems/mruby-eval/mrbgem.rake +4 -0
  1190. data/modules/mruby/mrbgems/mruby-eval/src/eval.c +23 -0
  1191. data/modules/mruby/mrbgems/mruby-fiber/mrbgem.rake +4 -0
  1192. data/modules/mruby/mrbgems/mruby-fiber/src/fiber.c +251 -0
  1193. data/modules/mruby/mrbgems/mruby-fiber/test/fiber.rb +64 -0
  1194. data/modules/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +4 -0
  1195. data/modules/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +13 -0
  1196. data/modules/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +62 -0
  1197. data/modules/mruby/mrbgems/mruby-hash-ext/test/hash.rb +26 -0
  1198. data/modules/mruby/mrbgems/mruby-math/mrbgem.rake +4 -0
  1199. data/modules/mruby/mrbgems/mruby-math/src/math.c +685 -0
  1200. data/modules/mruby/mrbgems/mruby-math/test/math.rb +136 -0
  1201. data/modules/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +4 -0
  1202. data/modules/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +31 -0
  1203. data/modules/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +10 -0
  1204. data/modules/mruby/mrbgems/mruby-object-ext/mrbgem.rake +4 -0
  1205. data/modules/mruby/mrbgems/mruby-object-ext/src/object.c +108 -0
  1206. data/modules/mruby/mrbgems/mruby-object-ext/test/nil.rb +11 -0
  1207. data/modules/mruby/mrbgems/mruby-object-ext/test/object.rb +9 -0
  1208. data/modules/mruby/mrbgems/mruby-objectspace/mrbgem.rake +4 -0
  1209. data/modules/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +117 -0
  1210. data/modules/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +38 -0
  1211. data/modules/mruby/mrbgems/mruby-print/mrbgem.rake +4 -0
  1212. data/modules/mruby/mrbgems/mruby-print/mrblib/print.rb +64 -0
  1213. data/modules/mruby/mrbgems/mruby-print/src/print.c +44 -0
  1214. data/modules/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +4 -0
  1215. data/modules/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb +40 -0
  1216. data/modules/mruby/mrbgems/mruby-proc-ext/src/proc.c +97 -0
  1217. data/modules/mruby/mrbgems/mruby-proc-ext/test/proc.rb +41 -0
  1218. data/modules/mruby/mrbgems/mruby-random/mrbgem.rake +4 -0
  1219. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.c +193 -0
  1220. data/modules/mruby/mrbgems/mruby-random/src/mt19937ar.h +48 -0
  1221. data/modules/mruby/mrbgems/mruby-random/src/random.c +231 -0
  1222. data/modules/mruby/mrbgems/mruby-random/src/random.h +12 -0
  1223. data/modules/mruby/mrbgems/mruby-random/test/random.rb +32 -0
  1224. data/modules/mruby/mrbgems/mruby-range-ext/mrbgem.rake +4 -0
  1225. data/modules/mruby/mrbgems/mruby-range-ext/src/range.c +141 -0
  1226. data/modules/mruby/mrbgems/mruby-range-ext/test/range.rb +20 -0
  1227. data/modules/mruby/mrbgems/mruby-sprintf/mrbgem.rake +4 -0
  1228. data/modules/mruby/mrbgems/mruby-sprintf/src/kernel.c +30 -0
  1229. data/modules/mruby/mrbgems/mruby-sprintf/src/sprintf.c +1102 -0
  1230. data/modules/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +3 -0
  1231. data/modules/mruby/mrbgems/mruby-string-ext/mrbgem.rake +4 -0
  1232. data/modules/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +52 -0
  1233. data/modules/mruby/mrbgems/mruby-string-ext/src/string.c +175 -0
  1234. data/modules/mruby/mrbgems/mruby-string-ext/test/string.rb +112 -0
  1235. data/modules/mruby/mrbgems/mruby-struct/mrbgem.rake +4 -0
  1236. data/modules/mruby/mrbgems/mruby-struct/mrblib/struct.rb +50 -0
  1237. data/modules/mruby/mrbgems/mruby-struct/src/struct.c +818 -0
  1238. data/modules/mruby/mrbgems/mruby-struct/test/struct.rb +77 -0
  1239. data/modules/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +4 -0
  1240. data/modules/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +9 -0
  1241. data/modules/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +55 -0
  1242. data/modules/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +12 -0
  1243. data/modules/mruby/mrbgems/mruby-time/mrbgem.rake +4 -0
  1244. data/modules/mruby/mrbgems/mruby-time/src/time.c +749 -0
  1245. data/modules/mruby/mrbgems/mruby-time/test/time.rb +201 -0
  1246. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +4 -0
  1247. data/modules/mruby/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb +11 -0
  1248. data/modules/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +24 -0
  1249. data/modules/mruby/mrblib/array.rb +111 -0
  1250. data/modules/mruby/mrblib/class.rb +26 -0
  1251. data/modules/mruby/mrblib/compar.rb +104 -0
  1252. data/modules/mruby/mrblib/enum.rb +398 -0
  1253. data/modules/mruby/mrblib/error.rb +66 -0
  1254. data/modules/mruby/mrblib/hash.rb +193 -0
  1255. data/modules/mruby/mrblib/init_mrblib.c +14 -0
  1256. data/modules/mruby/mrblib/kernel.rb +46 -0
  1257. data/modules/mruby/mrblib/mrblib.rake +18 -0
  1258. data/modules/mruby/mrblib/numeric.rb +101 -0
  1259. data/modules/mruby/mrblib/print.rb +18 -0
  1260. data/modules/mruby/mrblib/range.rb +40 -0
  1261. data/modules/mruby/mrblib/string.rb +145 -0
  1262. data/modules/mruby/src/array.c +1150 -0
  1263. data/modules/mruby/src/backtrace.c +73 -0
  1264. data/modules/mruby/src/class.c +1942 -0
  1265. data/modules/mruby/src/codegen.c +2864 -0
  1266. data/modules/mruby/src/compar.c +13 -0
  1267. data/modules/mruby/src/crc.c +38 -0
  1268. data/modules/mruby/src/dump.c +542 -0
  1269. data/modules/mruby/src/enum.c +14 -0
  1270. data/modules/mruby/src/error.c +454 -0
  1271. data/modules/mruby/src/error.h +18 -0
  1272. data/modules/mruby/src/etc.c +204 -0
  1273. data/modules/mruby/src/gc.c +1542 -0
  1274. data/modules/mruby/src/hash.c +1261 -0
  1275. data/modules/mruby/src/init.c +62 -0
  1276. data/modules/mruby/src/kernel.c +1105 -0
  1277. data/modules/mruby/src/keywords +50 -0
  1278. data/modules/mruby/src/lex.def +212 -0
  1279. data/modules/mruby/src/load.c +629 -0
  1280. data/modules/mruby/src/mruby_core.rake +28 -0
  1281. data/modules/mruby/src/node.h +117 -0
  1282. data/modules/mruby/src/numeric.c +1418 -0
  1283. data/modules/mruby/src/object.c +593 -0
  1284. data/modules/mruby/src/opcode.h +160 -0
  1285. data/modules/mruby/src/parse.y +6050 -0
  1286. data/modules/mruby/src/pool.c +190 -0
  1287. data/modules/mruby/src/print.c +71 -0
  1288. data/modules/mruby/src/proc.c +209 -0
  1289. data/modules/mruby/src/range.c +442 -0
  1290. data/modules/mruby/src/re.h +13 -0
  1291. data/modules/mruby/src/state.c +200 -0
  1292. data/modules/mruby/src/string.c +2580 -0
  1293. data/modules/mruby/src/symbol.c +456 -0
  1294. data/modules/mruby/src/value_array.h +27 -0
  1295. data/modules/mruby/src/variable.c +1147 -0
  1296. data/modules/mruby/src/vm.c +2129 -0
  1297. data/modules/mruby/tasks/libmruby.rake +18 -0
  1298. data/modules/mruby/tasks/mrbgem_spec.rake +297 -0
  1299. data/modules/mruby/tasks/mrbgems.rake +85 -0
  1300. data/modules/mruby/tasks/mrbgems_test.rake +88 -0
  1301. data/modules/mruby/tasks/mruby_build.rake +211 -0
  1302. data/modules/mruby/tasks/mruby_build_commands.rake +287 -0
  1303. data/modules/mruby/tasks/mruby_build_gem.rake +67 -0
  1304. data/modules/mruby/tasks/ruby_ext.rake +70 -0
  1305. data/modules/mruby/tasks/toolchains/androideabi.rake +126 -0
  1306. data/modules/mruby/tasks/toolchains/clang.rake +8 -0
  1307. data/modules/mruby/tasks/toolchains/gcc.rake +21 -0
  1308. data/modules/mruby/tasks/toolchains/vs2010.rake +3 -0
  1309. data/modules/mruby/tasks/toolchains/vs2012.rake +44 -0
  1310. data/modules/mruby/test/README.md +7 -0
  1311. data/modules/mruby/test/assert.rb +238 -0
  1312. data/modules/mruby/test/driver.c +118 -0
  1313. data/modules/mruby/test/init_mrbtest.c +24 -0
  1314. data/modules/mruby/test/mrbtest.rake +47 -0
  1315. data/modules/mruby/test/report.rb +4 -0
  1316. data/modules/mruby/test/t/argumenterror.rb +21 -0
  1317. data/modules/mruby/test/t/array.rb +309 -0
  1318. data/modules/mruby/test/t/basicobject.rb +11 -0
  1319. data/modules/mruby/test/t/bs_block.rb +489 -0
  1320. data/modules/mruby/test/t/bs_literal.rb +38 -0
  1321. data/modules/mruby/test/t/class.rb +219 -0
  1322. data/modules/mruby/test/t/comparable.rb +72 -0
  1323. data/modules/mruby/test/t/enumerable.rb +108 -0
  1324. data/modules/mruby/test/t/exception.rb +337 -0
  1325. data/modules/mruby/test/t/false.rb +33 -0
  1326. data/modules/mruby/test/t/float.rb +145 -0
  1327. data/modules/mruby/test/t/gc.rb +45 -0
  1328. data/modules/mruby/test/t/hash.rb +310 -0
  1329. data/modules/mruby/test/t/indexerror.rb +10 -0
  1330. data/modules/mruby/test/t/integer.rb +222 -0
  1331. data/modules/mruby/test/t/kernel.rb +425 -0
  1332. data/modules/mruby/test/t/literals.rb +287 -0
  1333. data/modules/mruby/test/t/localjumperror.rb +13 -0
  1334. data/modules/mruby/test/t/methods.rb +109 -0
  1335. data/modules/mruby/test/t/module.rb +344 -0
  1336. data/modules/mruby/test/t/nameerror.rb +32 -0
  1337. data/modules/mruby/test/t/nil.rb +29 -0
  1338. data/modules/mruby/test/t/nomethoderror.rb +13 -0
  1339. data/modules/mruby/test/t/numeric.rb +29 -0
  1340. data/modules/mruby/test/t/object.rb +11 -0
  1341. data/modules/mruby/test/t/proc.rb +56 -0
  1342. data/modules/mruby/test/t/range.rb +82 -0
  1343. data/modules/mruby/test/t/rangeerror.rb +10 -0
  1344. data/modules/mruby/test/t/regexperror.rb +4 -0
  1345. data/modules/mruby/test/t/runtimeerror.rb +6 -0
  1346. data/modules/mruby/test/t/standarderror.rb +10 -0
  1347. data/modules/mruby/test/t/string.rb +483 -0
  1348. data/modules/mruby/test/t/symbol.rb +27 -0
  1349. data/modules/mruby/test/t/syntax.rb +67 -0
  1350. data/modules/mruby/test/t/true.rb +33 -0
  1351. data/modules/mruby/test/t/typeerror.rb +11 -0
  1352. data/modules/mruby/tools/mrbc/mrbc.c +318 -0
  1353. data/modules/mruby/tools/mrbc/mrbc.rake +14 -0
  1354. data/modules/mruby/travis_config.rb +6 -0
  1355. data/modules/mrubymix/LICENSE +21 -0
  1356. data/modules/mrubymix/README.md +6 -0
  1357. data/modules/mrubymix/bin/mrubymix +29 -0
  1358. data/modules/mrubymix/lib/mrubymix.rb +93 -0
  1359. data/modules/mrubymix/mrubymix.gemspec +13 -0
  1360. data/scripts/gen_gems_config.rb +185 -0
  1361. data/scripts/gen_post.rb +104 -0
  1362. data/templates/minimal/Rakefile +36 -0
  1363. data/templates/minimal/app/app.rb +3 -0
  1364. metadata +1408 -0
@@ -0,0 +1,1526 @@
1
+ // -*- C++ -*-
2
+ //===--------------------------- complex ----------------------------------===//
3
+ //
4
+ // The LLVM Compiler Infrastructure
5
+ //
6
+ // This file is dual licensed under the MIT and the University of Illinois Open
7
+ // Source Licenses. See LICENSE.TXT for details.
8
+ //
9
+ //===----------------------------------------------------------------------===//
10
+
11
+ #ifndef _LIBCPP_COMPLEX
12
+ #define _LIBCPP_COMPLEX
13
+
14
+ /*
15
+ complex synopsis
16
+
17
+ namespace std
18
+ {
19
+
20
+ template<class T>
21
+ class complex
22
+ {
23
+ public:
24
+ typedef T value_type;
25
+
26
+ complex(const T& re = T(), const T& im = T());
27
+ complex(const complex&);
28
+ template<class X> complex(const complex<X>&);
29
+
30
+ T real() const;
31
+ T imag() const;
32
+
33
+ void real(T);
34
+ void imag(T);
35
+
36
+ complex<T>& operator= (const T&);
37
+ complex<T>& operator+=(const T&);
38
+ complex<T>& operator-=(const T&);
39
+ complex<T>& operator*=(const T&);
40
+ complex<T>& operator/=(const T&);
41
+
42
+ complex& operator=(const complex&);
43
+ template<class X> complex<T>& operator= (const complex<X>&);
44
+ template<class X> complex<T>& operator+=(const complex<X>&);
45
+ template<class X> complex<T>& operator-=(const complex<X>&);
46
+ template<class X> complex<T>& operator*=(const complex<X>&);
47
+ template<class X> complex<T>& operator/=(const complex<X>&);
48
+ };
49
+
50
+ template<>
51
+ class complex<float>
52
+ {
53
+ public:
54
+ typedef float value_type;
55
+
56
+ constexpr complex(float re = 0.0f, float im = 0.0f);
57
+ explicit constexpr complex(const complex<double>&);
58
+ explicit constexpr complex(const complex<long double>&);
59
+
60
+ constexpr float real() const;
61
+ void real(float);
62
+ constexpr float imag() const;
63
+ void imag(float);
64
+
65
+ complex<float>& operator= (float);
66
+ complex<float>& operator+=(float);
67
+ complex<float>& operator-=(float);
68
+ complex<float>& operator*=(float);
69
+ complex<float>& operator/=(float);
70
+
71
+ complex<float>& operator=(const complex<float>&);
72
+ template<class X> complex<float>& operator= (const complex<X>&);
73
+ template<class X> complex<float>& operator+=(const complex<X>&);
74
+ template<class X> complex<float>& operator-=(const complex<X>&);
75
+ template<class X> complex<float>& operator*=(const complex<X>&);
76
+ template<class X> complex<float>& operator/=(const complex<X>&);
77
+ };
78
+
79
+ template<>
80
+ class complex<double>
81
+ {
82
+ public:
83
+ typedef double value_type;
84
+
85
+ constexpr complex(double re = 0.0, double im = 0.0);
86
+ constexpr complex(const complex<float>&);
87
+ explicit constexpr complex(const complex<long double>&);
88
+
89
+ constexpr double real() const;
90
+ void real(double);
91
+ constexpr double imag() const;
92
+ void imag(double);
93
+
94
+ complex<double>& operator= (double);
95
+ complex<double>& operator+=(double);
96
+ complex<double>& operator-=(double);
97
+ complex<double>& operator*=(double);
98
+ complex<double>& operator/=(double);
99
+ complex<double>& operator=(const complex<double>&);
100
+
101
+ template<class X> complex<double>& operator= (const complex<X>&);
102
+ template<class X> complex<double>& operator+=(const complex<X>&);
103
+ template<class X> complex<double>& operator-=(const complex<X>&);
104
+ template<class X> complex<double>& operator*=(const complex<X>&);
105
+ template<class X> complex<double>& operator/=(const complex<X>&);
106
+ };
107
+
108
+ template<>
109
+ class complex<long double>
110
+ {
111
+ public:
112
+ typedef long double value_type;
113
+
114
+ constexpr complex(long double re = 0.0L, long double im = 0.0L);
115
+ constexpr complex(const complex<float>&);
116
+ constexpr complex(const complex<double>&);
117
+
118
+ constexpr long double real() const;
119
+ void real(long double);
120
+ constexpr long double imag() const;
121
+ void imag(long double);
122
+
123
+ complex<long double>& operator=(const complex<long double>&);
124
+ complex<long double>& operator= (long double);
125
+ complex<long double>& operator+=(long double);
126
+ complex<long double>& operator-=(long double);
127
+ complex<long double>& operator*=(long double);
128
+ complex<long double>& operator/=(long double);
129
+
130
+ template<class X> complex<long double>& operator= (const complex<X>&);
131
+ template<class X> complex<long double>& operator+=(const complex<X>&);
132
+ template<class X> complex<long double>& operator-=(const complex<X>&);
133
+ template<class X> complex<long double>& operator*=(const complex<X>&);
134
+ template<class X> complex<long double>& operator/=(const complex<X>&);
135
+ };
136
+
137
+ // 26.3.6 operators:
138
+ template<class T> complex<T> operator+(const complex<T>&, const complex<T>&);
139
+ template<class T> complex<T> operator+(const complex<T>&, const T&);
140
+ template<class T> complex<T> operator+(const T&, const complex<T>&);
141
+ template<class T> complex<T> operator-(const complex<T>&, const complex<T>&);
142
+ template<class T> complex<T> operator-(const complex<T>&, const T&);
143
+ template<class T> complex<T> operator-(const T&, const complex<T>&);
144
+ template<class T> complex<T> operator*(const complex<T>&, const complex<T>&);
145
+ template<class T> complex<T> operator*(const complex<T>&, const T&);
146
+ template<class T> complex<T> operator*(const T&, const complex<T>&);
147
+ template<class T> complex<T> operator/(const complex<T>&, const complex<T>&);
148
+ template<class T> complex<T> operator/(const complex<T>&, const T&);
149
+ template<class T> complex<T> operator/(const T&, const complex<T>&);
150
+ template<class T> complex<T> operator+(const complex<T>&);
151
+ template<class T> complex<T> operator-(const complex<T>&);
152
+ template<class T> bool operator==(const complex<T>&, const complex<T>&);
153
+ template<class T> bool operator==(const complex<T>&, const T&);
154
+ template<class T> bool operator==(const T&, const complex<T>&);
155
+ template<class T> bool operator!=(const complex<T>&, const complex<T>&);
156
+ template<class T> bool operator!=(const complex<T>&, const T&);
157
+ template<class T> bool operator!=(const T&, const complex<T>&);
158
+
159
+ template<class T, class charT, class traits>
160
+ basic_istream<charT, traits>&
161
+ operator>>(basic_istream<charT, traits>&, complex<T>&);
162
+ template<class T, class charT, class traits>
163
+ basic_ostream<charT, traits>&
164
+ operator<<(basic_ostream<charT, traits>&, const complex<T>&);
165
+
166
+ // 26.3.7 values:
167
+
168
+ template<class T> T real(const complex<T>&);
169
+ long double real(long double);
170
+ double real(double);
171
+ template<Integral T> double real(T);
172
+ float real(float);
173
+
174
+ template<class T> T imag(const complex<T>&);
175
+ long double imag(long double);
176
+ double imag(double);
177
+ template<Integral T> double imag(T);
178
+ float imag(float);
179
+
180
+ template<class T> T abs(const complex<T>&);
181
+
182
+ template<class T> T arg(const complex<T>&);
183
+ long double arg(long double);
184
+ double arg(double);
185
+ template<Integral T> double arg(T);
186
+ float arg(float);
187
+
188
+ template<class T> T norm(const complex<T>&);
189
+ long double norm(long double);
190
+ double norm(double);
191
+ template<Integral T> double norm(T);
192
+ float norm(float);
193
+
194
+ template<class T> complex<T> conj(const complex<T>&);
195
+ complex<long double> conj(long double);
196
+ complex<double> conj(double);
197
+ template<Integral T> complex<double> conj(T);
198
+ complex<float> conj(float);
199
+
200
+ template<class T> complex<T> proj(const complex<T>&);
201
+ complex<long double> proj(long double);
202
+ complex<double> proj(double);
203
+ template<Integral T> complex<double> proj(T);
204
+ complex<float> proj(float);
205
+
206
+ template<class T> complex<T> polar(const T&, const T& = 0);
207
+
208
+ // 26.3.8 transcendentals:
209
+ template<class T> complex<T> acos(const complex<T>&);
210
+ template<class T> complex<T> asin(const complex<T>&);
211
+ template<class T> complex<T> atan(const complex<T>&);
212
+ template<class T> complex<T> acosh(const complex<T>&);
213
+ template<class T> complex<T> asinh(const complex<T>&);
214
+ template<class T> complex<T> atanh(const complex<T>&);
215
+ template<class T> complex<T> cos (const complex<T>&);
216
+ template<class T> complex<T> cosh (const complex<T>&);
217
+ template<class T> complex<T> exp (const complex<T>&);
218
+ template<class T> complex<T> log (const complex<T>&);
219
+ template<class T> complex<T> log10(const complex<T>&);
220
+
221
+ template<class T> complex<T> pow(const complex<T>&, const T&);
222
+ template<class T> complex<T> pow(const complex<T>&, const complex<T>&);
223
+ template<class T> complex<T> pow(const T&, const complex<T>&);
224
+
225
+ template<class T> complex<T> sin (const complex<T>&);
226
+ template<class T> complex<T> sinh (const complex<T>&);
227
+ template<class T> complex<T> sqrt (const complex<T>&);
228
+ template<class T> complex<T> tan (const complex<T>&);
229
+ template<class T> complex<T> tanh (const complex<T>&);
230
+
231
+ template<class T, class charT, class traits>
232
+ basic_istream<charT, traits>&
233
+ operator>>(basic_istream<charT, traits>& is, complex<T>& x);
234
+
235
+ template<class T, class charT, class traits>
236
+ basic_ostream<charT, traits>&
237
+ operator<<(basic_ostream<charT, traits>& o, const complex<T>& x);
238
+
239
+ } // std
240
+
241
+ */
242
+
243
+ #include <__config>
244
+ #include <type_traits>
245
+ #include <stdexcept>
246
+ #include <cmath>
247
+ #include <sstream>
248
+ #if defined(_LIBCPP_NO_EXCEPTIONS)
249
+ #include <cassert>
250
+ #endif
251
+
252
+ #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
253
+ #pragma GCC system_header
254
+ #endif
255
+
256
+ _LIBCPP_BEGIN_NAMESPACE_STD
257
+
258
+ template<class _Tp> class _LIBCPP_TYPE_VIS complex;
259
+
260
+ template<class _Tp> complex<_Tp> operator*(const complex<_Tp>& __z, const complex<_Tp>& __w);
261
+ template<class _Tp> complex<_Tp> operator/(const complex<_Tp>& __x, const complex<_Tp>& __y);
262
+
263
+ template<class _Tp>
264
+ class _LIBCPP_TYPE_VIS complex
265
+ {
266
+ public:
267
+ typedef _Tp value_type;
268
+ private:
269
+ value_type __re_;
270
+ value_type __im_;
271
+ public:
272
+ _LIBCPP_INLINE_VISIBILITY
273
+ complex(const value_type& __re = value_type(), const value_type& __im = value_type())
274
+ : __re_(__re), __im_(__im) {}
275
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY
276
+ complex(const complex<_Xp>& __c)
277
+ : __re_(__c.real()), __im_(__c.imag()) {}
278
+
279
+ _LIBCPP_INLINE_VISIBILITY value_type real() const {return __re_;}
280
+ _LIBCPP_INLINE_VISIBILITY value_type imag() const {return __im_;}
281
+
282
+ _LIBCPP_INLINE_VISIBILITY void real(value_type __re) {__re_ = __re;}
283
+ _LIBCPP_INLINE_VISIBILITY void imag(value_type __im) {__im_ = __im;}
284
+
285
+ _LIBCPP_INLINE_VISIBILITY complex& operator= (const value_type& __re)
286
+ {__re_ = __re; __im_ = value_type(); return *this;}
287
+ _LIBCPP_INLINE_VISIBILITY complex& operator+=(const value_type& __re) {__re_ += __re; return *this;}
288
+ _LIBCPP_INLINE_VISIBILITY complex& operator-=(const value_type& __re) {__re_ -= __re; return *this;}
289
+ _LIBCPP_INLINE_VISIBILITY complex& operator*=(const value_type& __re) {__re_ *= __re; __im_ *= __re; return *this;}
290
+ _LIBCPP_INLINE_VISIBILITY complex& operator/=(const value_type& __re) {__re_ /= __re; __im_ /= __re; return *this;}
291
+
292
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator= (const complex<_Xp>& __c)
293
+ {
294
+ __re_ = __c.real();
295
+ __im_ = __c.imag();
296
+ return *this;
297
+ }
298
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator+=(const complex<_Xp>& __c)
299
+ {
300
+ __re_ += __c.real();
301
+ __im_ += __c.imag();
302
+ return *this;
303
+ }
304
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator-=(const complex<_Xp>& __c)
305
+ {
306
+ __re_ -= __c.real();
307
+ __im_ -= __c.imag();
308
+ return *this;
309
+ }
310
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator*=(const complex<_Xp>& __c)
311
+ {
312
+ *this = *this * __c;
313
+ return *this;
314
+ }
315
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator/=(const complex<_Xp>& __c)
316
+ {
317
+ *this = *this / __c;
318
+ return *this;
319
+ }
320
+ };
321
+
322
+ template<> class _LIBCPP_TYPE_VIS complex<double>;
323
+ template<> class _LIBCPP_TYPE_VIS complex<long double>;
324
+
325
+ template<>
326
+ class _LIBCPP_TYPE_VIS complex<float>
327
+ {
328
+ float __re_;
329
+ float __im_;
330
+ public:
331
+ typedef float value_type;
332
+
333
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR complex(float __re = 0.0f, float __im = 0.0f)
334
+ : __re_(__re), __im_(__im) {}
335
+ explicit _LIBCPP_CONSTEXPR complex(const complex<double>& __c);
336
+ explicit _LIBCPP_CONSTEXPR complex(const complex<long double>& __c);
337
+
338
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR float real() const {return __re_;}
339
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR float imag() const {return __im_;}
340
+
341
+ _LIBCPP_INLINE_VISIBILITY void real(value_type __re) {__re_ = __re;}
342
+ _LIBCPP_INLINE_VISIBILITY void imag(value_type __im) {__im_ = __im;}
343
+
344
+ _LIBCPP_INLINE_VISIBILITY complex& operator= (float __re)
345
+ {__re_ = __re; __im_ = value_type(); return *this;}
346
+ _LIBCPP_INLINE_VISIBILITY complex& operator+=(float __re) {__re_ += __re; return *this;}
347
+ _LIBCPP_INLINE_VISIBILITY complex& operator-=(float __re) {__re_ -= __re; return *this;}
348
+ _LIBCPP_INLINE_VISIBILITY complex& operator*=(float __re) {__re_ *= __re; __im_ *= __re; return *this;}
349
+ _LIBCPP_INLINE_VISIBILITY complex& operator/=(float __re) {__re_ /= __re; __im_ /= __re; return *this;}
350
+
351
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator= (const complex<_Xp>& __c)
352
+ {
353
+ __re_ = __c.real();
354
+ __im_ = __c.imag();
355
+ return *this;
356
+ }
357
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator+=(const complex<_Xp>& __c)
358
+ {
359
+ __re_ += __c.real();
360
+ __im_ += __c.imag();
361
+ return *this;
362
+ }
363
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator-=(const complex<_Xp>& __c)
364
+ {
365
+ __re_ -= __c.real();
366
+ __im_ -= __c.imag();
367
+ return *this;
368
+ }
369
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator*=(const complex<_Xp>& __c)
370
+ {
371
+ *this = *this * __c;
372
+ return *this;
373
+ }
374
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator/=(const complex<_Xp>& __c)
375
+ {
376
+ *this = *this / __c;
377
+ return *this;
378
+ }
379
+ };
380
+
381
+ template<>
382
+ class _LIBCPP_TYPE_VIS complex<double>
383
+ {
384
+ double __re_;
385
+ double __im_;
386
+ public:
387
+ typedef double value_type;
388
+
389
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR complex(double __re = 0.0, double __im = 0.0)
390
+ : __re_(__re), __im_(__im) {}
391
+ _LIBCPP_CONSTEXPR complex(const complex<float>& __c);
392
+ explicit _LIBCPP_CONSTEXPR complex(const complex<long double>& __c);
393
+
394
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR double real() const {return __re_;}
395
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR double imag() const {return __im_;}
396
+
397
+ _LIBCPP_INLINE_VISIBILITY void real(value_type __re) {__re_ = __re;}
398
+ _LIBCPP_INLINE_VISIBILITY void imag(value_type __im) {__im_ = __im;}
399
+
400
+ _LIBCPP_INLINE_VISIBILITY complex& operator= (double __re)
401
+ {__re_ = __re; __im_ = value_type(); return *this;}
402
+ _LIBCPP_INLINE_VISIBILITY complex& operator+=(double __re) {__re_ += __re; return *this;}
403
+ _LIBCPP_INLINE_VISIBILITY complex& operator-=(double __re) {__re_ -= __re; return *this;}
404
+ _LIBCPP_INLINE_VISIBILITY complex& operator*=(double __re) {__re_ *= __re; __im_ *= __re; return *this;}
405
+ _LIBCPP_INLINE_VISIBILITY complex& operator/=(double __re) {__re_ /= __re; __im_ /= __re; return *this;}
406
+
407
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator= (const complex<_Xp>& __c)
408
+ {
409
+ __re_ = __c.real();
410
+ __im_ = __c.imag();
411
+ return *this;
412
+ }
413
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator+=(const complex<_Xp>& __c)
414
+ {
415
+ __re_ += __c.real();
416
+ __im_ += __c.imag();
417
+ return *this;
418
+ }
419
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator-=(const complex<_Xp>& __c)
420
+ {
421
+ __re_ -= __c.real();
422
+ __im_ -= __c.imag();
423
+ return *this;
424
+ }
425
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator*=(const complex<_Xp>& __c)
426
+ {
427
+ *this = *this * __c;
428
+ return *this;
429
+ }
430
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator/=(const complex<_Xp>& __c)
431
+ {
432
+ *this = *this / __c;
433
+ return *this;
434
+ }
435
+ };
436
+
437
+ template<>
438
+ class _LIBCPP_TYPE_VIS complex<long double>
439
+ {
440
+ long double __re_;
441
+ long double __im_;
442
+ public:
443
+ typedef long double value_type;
444
+
445
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR complex(long double __re = 0.0L, long double __im = 0.0L)
446
+ : __re_(__re), __im_(__im) {}
447
+ _LIBCPP_CONSTEXPR complex(const complex<float>& __c);
448
+ _LIBCPP_CONSTEXPR complex(const complex<double>& __c);
449
+
450
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR long double real() const {return __re_;}
451
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR long double imag() const {return __im_;}
452
+
453
+ _LIBCPP_INLINE_VISIBILITY void real(value_type __re) {__re_ = __re;}
454
+ _LIBCPP_INLINE_VISIBILITY void imag(value_type __im) {__im_ = __im;}
455
+
456
+ _LIBCPP_INLINE_VISIBILITY complex& operator= (long double __re)
457
+ {__re_ = __re; __im_ = value_type(); return *this;}
458
+ _LIBCPP_INLINE_VISIBILITY complex& operator+=(long double __re) {__re_ += __re; return *this;}
459
+ _LIBCPP_INLINE_VISIBILITY complex& operator-=(long double __re) {__re_ -= __re; return *this;}
460
+ _LIBCPP_INLINE_VISIBILITY complex& operator*=(long double __re) {__re_ *= __re; __im_ *= __re; return *this;}
461
+ _LIBCPP_INLINE_VISIBILITY complex& operator/=(long double __re) {__re_ /= __re; __im_ /= __re; return *this;}
462
+
463
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator= (const complex<_Xp>& __c)
464
+ {
465
+ __re_ = __c.real();
466
+ __im_ = __c.imag();
467
+ return *this;
468
+ }
469
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator+=(const complex<_Xp>& __c)
470
+ {
471
+ __re_ += __c.real();
472
+ __im_ += __c.imag();
473
+ return *this;
474
+ }
475
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator-=(const complex<_Xp>& __c)
476
+ {
477
+ __re_ -= __c.real();
478
+ __im_ -= __c.imag();
479
+ return *this;
480
+ }
481
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator*=(const complex<_Xp>& __c)
482
+ {
483
+ *this = *this * __c;
484
+ return *this;
485
+ }
486
+ template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator/=(const complex<_Xp>& __c)
487
+ {
488
+ *this = *this / __c;
489
+ return *this;
490
+ }
491
+ };
492
+
493
+ inline _LIBCPP_INLINE_VISIBILITY
494
+ _LIBCPP_CONSTEXPR
495
+ complex<float>::complex(const complex<double>& __c)
496
+ : __re_(__c.real()), __im_(__c.imag()) {}
497
+
498
+ inline _LIBCPP_INLINE_VISIBILITY
499
+ _LIBCPP_CONSTEXPR
500
+ complex<float>::complex(const complex<long double>& __c)
501
+ : __re_(__c.real()), __im_(__c.imag()) {}
502
+
503
+ inline _LIBCPP_INLINE_VISIBILITY
504
+ _LIBCPP_CONSTEXPR
505
+ complex<double>::complex(const complex<float>& __c)
506
+ : __re_(__c.real()), __im_(__c.imag()) {}
507
+
508
+ inline _LIBCPP_INLINE_VISIBILITY
509
+ _LIBCPP_CONSTEXPR
510
+ complex<double>::complex(const complex<long double>& __c)
511
+ : __re_(__c.real()), __im_(__c.imag()) {}
512
+
513
+ inline _LIBCPP_INLINE_VISIBILITY
514
+ _LIBCPP_CONSTEXPR
515
+ complex<long double>::complex(const complex<float>& __c)
516
+ : __re_(__c.real()), __im_(__c.imag()) {}
517
+
518
+ inline _LIBCPP_INLINE_VISIBILITY
519
+ _LIBCPP_CONSTEXPR
520
+ complex<long double>::complex(const complex<double>& __c)
521
+ : __re_(__c.real()), __im_(__c.imag()) {}
522
+
523
+ // 26.3.6 operators:
524
+
525
+ template<class _Tp>
526
+ inline _LIBCPP_INLINE_VISIBILITY
527
+ complex<_Tp>
528
+ operator+(const complex<_Tp>& __x, const complex<_Tp>& __y)
529
+ {
530
+ complex<_Tp> __t(__x);
531
+ __t += __y;
532
+ return __t;
533
+ }
534
+
535
+ template<class _Tp>
536
+ inline _LIBCPP_INLINE_VISIBILITY
537
+ complex<_Tp>
538
+ operator+(const complex<_Tp>& __x, const _Tp& __y)
539
+ {
540
+ complex<_Tp> __t(__x);
541
+ __t += __y;
542
+ return __t;
543
+ }
544
+
545
+ template<class _Tp>
546
+ inline _LIBCPP_INLINE_VISIBILITY
547
+ complex<_Tp>
548
+ operator+(const _Tp& __x, const complex<_Tp>& __y)
549
+ {
550
+ complex<_Tp> __t(__y);
551
+ __t += __x;
552
+ return __t;
553
+ }
554
+
555
+ template<class _Tp>
556
+ inline _LIBCPP_INLINE_VISIBILITY
557
+ complex<_Tp>
558
+ operator-(const complex<_Tp>& __x, const complex<_Tp>& __y)
559
+ {
560
+ complex<_Tp> __t(__x);
561
+ __t -= __y;
562
+ return __t;
563
+ }
564
+
565
+ template<class _Tp>
566
+ inline _LIBCPP_INLINE_VISIBILITY
567
+ complex<_Tp>
568
+ operator-(const complex<_Tp>& __x, const _Tp& __y)
569
+ {
570
+ complex<_Tp> __t(__x);
571
+ __t -= __y;
572
+ return __t;
573
+ }
574
+
575
+ template<class _Tp>
576
+ inline _LIBCPP_INLINE_VISIBILITY
577
+ complex<_Tp>
578
+ operator-(const _Tp& __x, const complex<_Tp>& __y)
579
+ {
580
+ complex<_Tp> __t(-__y);
581
+ __t += __x;
582
+ return __t;
583
+ }
584
+
585
+ template<class _Tp>
586
+ complex<_Tp>
587
+ operator*(const complex<_Tp>& __z, const complex<_Tp>& __w)
588
+ {
589
+ _Tp __a = __z.real();
590
+ _Tp __b = __z.imag();
591
+ _Tp __c = __w.real();
592
+ _Tp __d = __w.imag();
593
+ _Tp __ac = __a * __c;
594
+ _Tp __bd = __b * __d;
595
+ _Tp __ad = __a * __d;
596
+ _Tp __bc = __b * __c;
597
+ _Tp __x = __ac - __bd;
598
+ _Tp __y = __ad + __bc;
599
+ if (isnan(__x) && isnan(__y))
600
+ {
601
+ bool __recalc = false;
602
+ if (isinf(__a) || isinf(__b))
603
+ {
604
+ __a = copysign(isinf(__a) ? _Tp(1) : _Tp(0), __a);
605
+ __b = copysign(isinf(__b) ? _Tp(1) : _Tp(0), __b);
606
+ if (isnan(__c))
607
+ __c = copysign(_Tp(0), __c);
608
+ if (isnan(__d))
609
+ __d = copysign(_Tp(0), __d);
610
+ __recalc = true;
611
+ }
612
+ if (isinf(__c) || isinf(__d))
613
+ {
614
+ __c = copysign(isinf(__c) ? _Tp(1) : _Tp(0), __c);
615
+ __d = copysign(isinf(__d) ? _Tp(1) : _Tp(0), __d);
616
+ if (isnan(__a))
617
+ __a = copysign(_Tp(0), __a);
618
+ if (isnan(__b))
619
+ __b = copysign(_Tp(0), __b);
620
+ __recalc = true;
621
+ }
622
+ if (!__recalc && (isinf(__ac) || isinf(__bd) ||
623
+ isinf(__ad) || isinf(__bc)))
624
+ {
625
+ if (isnan(__a))
626
+ __a = copysign(_Tp(0), __a);
627
+ if (isnan(__b))
628
+ __b = copysign(_Tp(0), __b);
629
+ if (isnan(__c))
630
+ __c = copysign(_Tp(0), __c);
631
+ if (isnan(__d))
632
+ __d = copysign(_Tp(0), __d);
633
+ __recalc = true;
634
+ }
635
+ if (__recalc)
636
+ {
637
+ __x = _Tp(INFINITY) * (__a * __c - __b * __d);
638
+ __y = _Tp(INFINITY) * (__a * __d + __b * __c);
639
+ }
640
+ }
641
+ return complex<_Tp>(__x, __y);
642
+ }
643
+
644
+ template<class _Tp>
645
+ inline _LIBCPP_INLINE_VISIBILITY
646
+ complex<_Tp>
647
+ operator*(const complex<_Tp>& __x, const _Tp& __y)
648
+ {
649
+ complex<_Tp> __t(__x);
650
+ __t *= __y;
651
+ return __t;
652
+ }
653
+
654
+ template<class _Tp>
655
+ inline _LIBCPP_INLINE_VISIBILITY
656
+ complex<_Tp>
657
+ operator*(const _Tp& __x, const complex<_Tp>& __y)
658
+ {
659
+ complex<_Tp> __t(__y);
660
+ __t *= __x;
661
+ return __t;
662
+ }
663
+
664
+ template<class _Tp>
665
+ complex<_Tp>
666
+ operator/(const complex<_Tp>& __z, const complex<_Tp>& __w)
667
+ {
668
+ int __ilogbw = 0;
669
+ _Tp __a = __z.real();
670
+ _Tp __b = __z.imag();
671
+ _Tp __c = __w.real();
672
+ _Tp __d = __w.imag();
673
+ _Tp __logbw = logb(fmax(fabs(__c), fabs(__d)));
674
+ if (isfinite(__logbw))
675
+ {
676
+ __ilogbw = static_cast<int>(__logbw);
677
+ __c = scalbn(__c, -__ilogbw);
678
+ __d = scalbn(__d, -__ilogbw);
679
+ }
680
+ _Tp __denom = __c * __c + __d * __d;
681
+ _Tp __x = scalbn((__a * __c + __b * __d) / __denom, -__ilogbw);
682
+ _Tp __y = scalbn((__b * __c - __a * __d) / __denom, -__ilogbw);
683
+ if (isnan(__x) && isnan(__y))
684
+ {
685
+ if ((__denom == _Tp(0)) && (!isnan(__a) || !isnan(__b)))
686
+ {
687
+ __x = copysign(_Tp(INFINITY), __c) * __a;
688
+ __y = copysign(_Tp(INFINITY), __c) * __b;
689
+ }
690
+ else if ((isinf(__a) || isinf(__b)) && isfinite(__c) && isfinite(__d))
691
+ {
692
+ __a = copysign(isinf(__a) ? _Tp(1) : _Tp(0), __a);
693
+ __b = copysign(isinf(__b) ? _Tp(1) : _Tp(0), __b);
694
+ __x = _Tp(INFINITY) * (__a * __c + __b * __d);
695
+ __y = _Tp(INFINITY) * (__b * __c - __a * __d);
696
+ }
697
+ else if (isinf(__logbw) && __logbw > _Tp(0) && isfinite(__a) && isfinite(__b))
698
+ {
699
+ __c = copysign(isinf(__c) ? _Tp(1) : _Tp(0), __c);
700
+ __d = copysign(isinf(__d) ? _Tp(1) : _Tp(0), __d);
701
+ __x = _Tp(0) * (__a * __c + __b * __d);
702
+ __y = _Tp(0) * (__b * __c - __a * __d);
703
+ }
704
+ }
705
+ return complex<_Tp>(__x, __y);
706
+ }
707
+
708
+ template<class _Tp>
709
+ inline _LIBCPP_INLINE_VISIBILITY
710
+ complex<_Tp>
711
+ operator/(const complex<_Tp>& __x, const _Tp& __y)
712
+ {
713
+ return complex<_Tp>(__x.real() / __y, __x.imag() / __y);
714
+ }
715
+
716
+ template<class _Tp>
717
+ inline _LIBCPP_INLINE_VISIBILITY
718
+ complex<_Tp>
719
+ operator/(const _Tp& __x, const complex<_Tp>& __y)
720
+ {
721
+ complex<_Tp> __t(__x);
722
+ __t /= __y;
723
+ return __t;
724
+ }
725
+
726
+ template<class _Tp>
727
+ inline _LIBCPP_INLINE_VISIBILITY
728
+ complex<_Tp>
729
+ operator+(const complex<_Tp>& __x)
730
+ {
731
+ return __x;
732
+ }
733
+
734
+ template<class _Tp>
735
+ inline _LIBCPP_INLINE_VISIBILITY
736
+ complex<_Tp>
737
+ operator-(const complex<_Tp>& __x)
738
+ {
739
+ return complex<_Tp>(-__x.real(), -__x.imag());
740
+ }
741
+
742
+ template<class _Tp>
743
+ inline _LIBCPP_INLINE_VISIBILITY
744
+ bool
745
+ operator==(const complex<_Tp>& __x, const complex<_Tp>& __y)
746
+ {
747
+ return __x.real() == __y.real() && __x.imag() == __y.imag();
748
+ }
749
+
750
+ template<class _Tp>
751
+ inline _LIBCPP_INLINE_VISIBILITY
752
+ bool
753
+ operator==(const complex<_Tp>& __x, const _Tp& __y)
754
+ {
755
+ return __x.real() == __y && __x.imag() == 0;
756
+ }
757
+
758
+ template<class _Tp>
759
+ inline _LIBCPP_INLINE_VISIBILITY
760
+ bool
761
+ operator==(const _Tp& __x, const complex<_Tp>& __y)
762
+ {
763
+ return __x == __y.real() && 0 == __y.imag();
764
+ }
765
+
766
+ template<class _Tp>
767
+ inline _LIBCPP_INLINE_VISIBILITY
768
+ bool
769
+ operator!=(const complex<_Tp>& __x, const complex<_Tp>& __y)
770
+ {
771
+ return !(__x == __y);
772
+ }
773
+
774
+ template<class _Tp>
775
+ inline _LIBCPP_INLINE_VISIBILITY
776
+ bool
777
+ operator!=(const complex<_Tp>& __x, const _Tp& __y)
778
+ {
779
+ return !(__x == __y);
780
+ }
781
+
782
+ template<class _Tp>
783
+ inline _LIBCPP_INLINE_VISIBILITY
784
+ bool
785
+ operator!=(const _Tp& __x, const complex<_Tp>& __y)
786
+ {
787
+ return !(__x == __y);
788
+ }
789
+
790
+ // 26.3.7 values:
791
+
792
+ // real
793
+
794
+ template<class _Tp>
795
+ inline _LIBCPP_INLINE_VISIBILITY
796
+ _Tp
797
+ real(const complex<_Tp>& __c)
798
+ {
799
+ return __c.real();
800
+ }
801
+
802
+ inline _LIBCPP_INLINE_VISIBILITY
803
+ long double
804
+ real(long double __re)
805
+ {
806
+ return __re;
807
+ }
808
+
809
+ inline _LIBCPP_INLINE_VISIBILITY
810
+ double
811
+ real(double __re)
812
+ {
813
+ return __re;
814
+ }
815
+
816
+ template<class _Tp>
817
+ inline _LIBCPP_INLINE_VISIBILITY
818
+ typename enable_if
819
+ <
820
+ is_integral<_Tp>::value,
821
+ double
822
+ >::type
823
+ real(_Tp __re)
824
+ {
825
+ return __re;
826
+ }
827
+
828
+ inline _LIBCPP_INLINE_VISIBILITY
829
+ float
830
+ real(float __re)
831
+ {
832
+ return __re;
833
+ }
834
+
835
+ // imag
836
+
837
+ template<class _Tp>
838
+ inline _LIBCPP_INLINE_VISIBILITY
839
+ _Tp
840
+ imag(const complex<_Tp>& __c)
841
+ {
842
+ return __c.imag();
843
+ }
844
+
845
+ inline _LIBCPP_INLINE_VISIBILITY
846
+ long double
847
+ imag(long double __re)
848
+ {
849
+ return 0;
850
+ }
851
+
852
+ inline _LIBCPP_INLINE_VISIBILITY
853
+ double
854
+ imag(double __re)
855
+ {
856
+ return 0;
857
+ }
858
+
859
+ template<class _Tp>
860
+ inline _LIBCPP_INLINE_VISIBILITY
861
+ typename enable_if
862
+ <
863
+ is_integral<_Tp>::value,
864
+ double
865
+ >::type
866
+ imag(_Tp __re)
867
+ {
868
+ return 0;
869
+ }
870
+
871
+ inline _LIBCPP_INLINE_VISIBILITY
872
+ float
873
+ imag(float __re)
874
+ {
875
+ return 0;
876
+ }
877
+
878
+ // abs
879
+
880
+ template<class _Tp>
881
+ inline _LIBCPP_INLINE_VISIBILITY
882
+ _Tp
883
+ abs(const complex<_Tp>& __c)
884
+ {
885
+ return hypot(__c.real(), __c.imag());
886
+ }
887
+
888
+ // arg
889
+
890
+ template<class _Tp>
891
+ inline _LIBCPP_INLINE_VISIBILITY
892
+ _Tp
893
+ arg(const complex<_Tp>& __c)
894
+ {
895
+ return atan2(__c.imag(), __c.real());
896
+ }
897
+
898
+ inline _LIBCPP_INLINE_VISIBILITY
899
+ long double
900
+ arg(long double __re)
901
+ {
902
+ return atan2l(0.L, __re);
903
+ }
904
+
905
+ inline _LIBCPP_INLINE_VISIBILITY
906
+ double
907
+ arg(double __re)
908
+ {
909
+ return atan2(0., __re);
910
+ }
911
+
912
+ template<class _Tp>
913
+ inline _LIBCPP_INLINE_VISIBILITY
914
+ typename enable_if
915
+ <
916
+ is_integral<_Tp>::value,
917
+ double
918
+ >::type
919
+ arg(_Tp __re)
920
+ {
921
+ return atan2(0., __re);
922
+ }
923
+
924
+ inline _LIBCPP_INLINE_VISIBILITY
925
+ float
926
+ arg(float __re)
927
+ {
928
+ return atan2f(0.F, __re);
929
+ }
930
+
931
+ // norm
932
+
933
+ template<class _Tp>
934
+ inline _LIBCPP_INLINE_VISIBILITY
935
+ _Tp
936
+ norm(const complex<_Tp>& __c)
937
+ {
938
+ if (isinf(__c.real()))
939
+ return abs(__c.real());
940
+ if (isinf(__c.imag()))
941
+ return abs(__c.imag());
942
+ return __c.real() * __c.real() + __c.imag() * __c.imag();
943
+ }
944
+
945
+ inline _LIBCPP_INLINE_VISIBILITY
946
+ long double
947
+ norm(long double __re)
948
+ {
949
+ return __re * __re;
950
+ }
951
+
952
+ inline _LIBCPP_INLINE_VISIBILITY
953
+ double
954
+ norm(double __re)
955
+ {
956
+ return __re * __re;
957
+ }
958
+
959
+ template<class _Tp>
960
+ inline _LIBCPP_INLINE_VISIBILITY
961
+ typename enable_if
962
+ <
963
+ is_integral<_Tp>::value,
964
+ double
965
+ >::type
966
+ norm(_Tp __re)
967
+ {
968
+ return (double)__re * __re;
969
+ }
970
+
971
+ inline _LIBCPP_INLINE_VISIBILITY
972
+ float
973
+ norm(float __re)
974
+ {
975
+ return __re * __re;
976
+ }
977
+
978
+ // conj
979
+
980
+ template<class _Tp>
981
+ inline _LIBCPP_INLINE_VISIBILITY
982
+ complex<_Tp>
983
+ conj(const complex<_Tp>& __c)
984
+ {
985
+ return complex<_Tp>(__c.real(), -__c.imag());
986
+ }
987
+
988
+ inline _LIBCPP_INLINE_VISIBILITY
989
+ complex<long double>
990
+ conj(long double __re)
991
+ {
992
+ return complex<long double>(__re);
993
+ }
994
+
995
+ inline _LIBCPP_INLINE_VISIBILITY
996
+ complex<double>
997
+ conj(double __re)
998
+ {
999
+ return complex<double>(__re);
1000
+ }
1001
+
1002
+ template<class _Tp>
1003
+ inline _LIBCPP_INLINE_VISIBILITY
1004
+ typename enable_if
1005
+ <
1006
+ is_integral<_Tp>::value,
1007
+ complex<double>
1008
+ >::type
1009
+ conj(_Tp __re)
1010
+ {
1011
+ return complex<double>(__re);
1012
+ }
1013
+
1014
+ inline _LIBCPP_INLINE_VISIBILITY
1015
+ complex<float>
1016
+ conj(float __re)
1017
+ {
1018
+ return complex<float>(__re);
1019
+ }
1020
+
1021
+ // proj
1022
+
1023
+ template<class _Tp>
1024
+ inline _LIBCPP_INLINE_VISIBILITY
1025
+ complex<_Tp>
1026
+ proj(const complex<_Tp>& __c)
1027
+ {
1028
+ std::complex<_Tp> __r = __c;
1029
+ if (isinf(__c.real()) || isinf(__c.imag()))
1030
+ __r = complex<_Tp>(INFINITY, copysign(_Tp(0), __c.imag()));
1031
+ return __r;
1032
+ }
1033
+
1034
+ inline _LIBCPP_INLINE_VISIBILITY
1035
+ complex<long double>
1036
+ proj(long double __re)
1037
+ {
1038
+ if (isinf(__re))
1039
+ __re = abs(__re);
1040
+ return complex<long double>(__re);
1041
+ }
1042
+
1043
+ inline _LIBCPP_INLINE_VISIBILITY
1044
+ complex<double>
1045
+ proj(double __re)
1046
+ {
1047
+ if (isinf(__re))
1048
+ __re = abs(__re);
1049
+ return complex<double>(__re);
1050
+ }
1051
+
1052
+ template<class _Tp>
1053
+ inline _LIBCPP_INLINE_VISIBILITY
1054
+ typename enable_if
1055
+ <
1056
+ is_integral<_Tp>::value,
1057
+ complex<double>
1058
+ >::type
1059
+ proj(_Tp __re)
1060
+ {
1061
+ return complex<double>(__re);
1062
+ }
1063
+
1064
+ inline _LIBCPP_INLINE_VISIBILITY
1065
+ complex<float>
1066
+ proj(float __re)
1067
+ {
1068
+ if (isinf(__re))
1069
+ __re = abs(__re);
1070
+ return complex<float>(__re);
1071
+ }
1072
+
1073
+ // polar
1074
+
1075
+ template<class _Tp>
1076
+ complex<_Tp>
1077
+ polar(const _Tp& __rho, const _Tp& __theta = _Tp(0))
1078
+ {
1079
+ if (isnan(__rho) || signbit(__rho))
1080
+ return complex<_Tp>(_Tp(NAN), _Tp(NAN));
1081
+ if (isnan(__theta))
1082
+ {
1083
+ if (isinf(__rho))
1084
+ return complex<_Tp>(__rho, __theta);
1085
+ return complex<_Tp>(__theta, __theta);
1086
+ }
1087
+ if (isinf(__theta))
1088
+ {
1089
+ if (isinf(__rho))
1090
+ return complex<_Tp>(__rho, _Tp(NAN));
1091
+ return complex<_Tp>(_Tp(NAN), _Tp(NAN));
1092
+ }
1093
+ _Tp __x = __rho * cos(__theta);
1094
+ if (isnan(__x))
1095
+ __x = 0;
1096
+ _Tp __y = __rho * sin(__theta);
1097
+ if (isnan(__y))
1098
+ __y = 0;
1099
+ return complex<_Tp>(__x, __y);
1100
+ }
1101
+
1102
+ // log
1103
+
1104
+ template<class _Tp>
1105
+ inline _LIBCPP_INLINE_VISIBILITY
1106
+ complex<_Tp>
1107
+ log(const complex<_Tp>& __x)
1108
+ {
1109
+ return complex<_Tp>(log(abs(__x)), arg(__x));
1110
+ }
1111
+
1112
+ // log10
1113
+
1114
+ template<class _Tp>
1115
+ inline _LIBCPP_INLINE_VISIBILITY
1116
+ complex<_Tp>
1117
+ log10(const complex<_Tp>& __x)
1118
+ {
1119
+ return log(__x) / log(_Tp(10));
1120
+ }
1121
+
1122
+ // sqrt
1123
+
1124
+ template<class _Tp>
1125
+ complex<_Tp>
1126
+ sqrt(const complex<_Tp>& __x)
1127
+ {
1128
+ if (isinf(__x.imag()))
1129
+ return complex<_Tp>(_Tp(INFINITY), __x.imag());
1130
+ if (isinf(__x.real()))
1131
+ {
1132
+ if (__x.real() > _Tp(0))
1133
+ return complex<_Tp>(__x.real(), isnan(__x.imag()) ? __x.imag() : copysign(_Tp(0), __x.imag()));
1134
+ return complex<_Tp>(isnan(__x.imag()) ? __x.imag() : _Tp(0), copysign(__x.real(), __x.imag()));
1135
+ }
1136
+ return polar(sqrt(abs(__x)), arg(__x) / _Tp(2));
1137
+ }
1138
+
1139
+ // exp
1140
+
1141
+ template<class _Tp>
1142
+ complex<_Tp>
1143
+ exp(const complex<_Tp>& __x)
1144
+ {
1145
+ _Tp __i = __x.imag();
1146
+ if (isinf(__x.real()))
1147
+ {
1148
+ if (__x.real() < _Tp(0))
1149
+ {
1150
+ if (!isfinite(__i))
1151
+ __i = _Tp(1);
1152
+ }
1153
+ else if (__i == 0 || !isfinite(__i))
1154
+ {
1155
+ if (isinf(__i))
1156
+ __i = _Tp(NAN);
1157
+ return complex<_Tp>(__x.real(), __i);
1158
+ }
1159
+ }
1160
+ else if (isnan(__x.real()) && __x.imag() == 0)
1161
+ return __x;
1162
+ _Tp __e = exp(__x.real());
1163
+ return complex<_Tp>(__e * cos(__i), __e * sin(__i));
1164
+ }
1165
+
1166
+ // pow
1167
+
1168
+ template<class _Tp>
1169
+ inline _LIBCPP_INLINE_VISIBILITY
1170
+ complex<_Tp>
1171
+ pow(const complex<_Tp>& __x, const complex<_Tp>& __y)
1172
+ {
1173
+ return exp(__y * log(__x));
1174
+ }
1175
+
1176
+ template<class _Tp, class _Up>
1177
+ inline _LIBCPP_INLINE_VISIBILITY
1178
+ complex<typename __promote<_Tp, _Up>::type>
1179
+ pow(const complex<_Tp>& __x, const complex<_Up>& __y)
1180
+ {
1181
+ typedef complex<typename __promote<_Tp, _Up>::type> result_type;
1182
+ return _VSTD::pow(result_type(__x), result_type(__y));
1183
+ }
1184
+
1185
+ template<class _Tp, class _Up>
1186
+ inline _LIBCPP_INLINE_VISIBILITY
1187
+ typename enable_if
1188
+ <
1189
+ is_arithmetic<_Up>::value,
1190
+ complex<typename __promote<_Tp, _Up>::type>
1191
+ >::type
1192
+ pow(const complex<_Tp>& __x, const _Up& __y)
1193
+ {
1194
+ typedef complex<typename __promote<_Tp, _Up>::type> result_type;
1195
+ return _VSTD::pow(result_type(__x), result_type(__y));
1196
+ }
1197
+
1198
+ template<class _Tp, class _Up>
1199
+ inline _LIBCPP_INLINE_VISIBILITY
1200
+ typename enable_if
1201
+ <
1202
+ is_arithmetic<_Tp>::value,
1203
+ complex<typename __promote<_Tp, _Up>::type>
1204
+ >::type
1205
+ pow(const _Tp& __x, const complex<_Up>& __y)
1206
+ {
1207
+ typedef complex<typename __promote<_Tp, _Up>::type> result_type;
1208
+ return _VSTD::pow(result_type(__x), result_type(__y));
1209
+ }
1210
+
1211
+ // asinh
1212
+
1213
+ template<class _Tp>
1214
+ complex<_Tp>
1215
+ asinh(const complex<_Tp>& __x)
1216
+ {
1217
+ const _Tp __pi(atan2(+0., -0.));
1218
+ if (isinf(__x.real()))
1219
+ {
1220
+ if (isnan(__x.imag()))
1221
+ return __x;
1222
+ if (isinf(__x.imag()))
1223
+ return complex<_Tp>(__x.real(), copysign(__pi * _Tp(0.25), __x.imag()));
1224
+ return complex<_Tp>(__x.real(), copysign(_Tp(0), __x.imag()));
1225
+ }
1226
+ if (isnan(__x.real()))
1227
+ {
1228
+ if (isinf(__x.imag()))
1229
+ return complex<_Tp>(__x.imag(), __x.real());
1230
+ if (__x.imag() == 0)
1231
+ return __x;
1232
+ return complex<_Tp>(__x.real(), __x.real());
1233
+ }
1234
+ if (isinf(__x.imag()))
1235
+ return complex<_Tp>(copysign(__x.imag(), __x.real()), copysign(__pi/_Tp(2), __x.imag()));
1236
+ complex<_Tp> __z = log(__x + sqrt(pow(__x, _Tp(2)) + _Tp(1)));
1237
+ return complex<_Tp>(copysign(__z.real(), __x.real()), copysign(__z.imag(), __x.imag()));
1238
+ }
1239
+
1240
+ // acosh
1241
+
1242
+ template<class _Tp>
1243
+ complex<_Tp>
1244
+ acosh(const complex<_Tp>& __x)
1245
+ {
1246
+ const _Tp __pi(atan2(+0., -0.));
1247
+ if (isinf(__x.real()))
1248
+ {
1249
+ if (isnan(__x.imag()))
1250
+ return complex<_Tp>(abs(__x.real()), __x.imag());
1251
+ if (isinf(__x.imag()))
1252
+ {
1253
+ if (__x.real() > 0)
1254
+ return complex<_Tp>(__x.real(), copysign(__pi * _Tp(0.25), __x.imag()));
1255
+ else
1256
+ return complex<_Tp>(-__x.real(), copysign(__pi * _Tp(0.75), __x.imag()));
1257
+ }
1258
+ if (__x.real() < 0)
1259
+ return complex<_Tp>(-__x.real(), copysign(__pi, __x.imag()));
1260
+ return complex<_Tp>(__x.real(), copysign(_Tp(0), __x.imag()));
1261
+ }
1262
+ if (isnan(__x.real()))
1263
+ {
1264
+ if (isinf(__x.imag()))
1265
+ return complex<_Tp>(abs(__x.imag()), __x.real());
1266
+ return complex<_Tp>(__x.real(), __x.real());
1267
+ }
1268
+ if (isinf(__x.imag()))
1269
+ return complex<_Tp>(abs(__x.imag()), copysign(__pi/_Tp(2), __x.imag()));
1270
+ complex<_Tp> __z = log(__x + sqrt(pow(__x, _Tp(2)) - _Tp(1)));
1271
+ return complex<_Tp>(copysign(__z.real(), _Tp(0)), copysign(__z.imag(), __x.imag()));
1272
+ }
1273
+
1274
+ // atanh
1275
+
1276
+ template<class _Tp>
1277
+ complex<_Tp>
1278
+ atanh(const complex<_Tp>& __x)
1279
+ {
1280
+ const _Tp __pi(atan2(+0., -0.));
1281
+ if (isinf(__x.imag()))
1282
+ {
1283
+ return complex<_Tp>(copysign(_Tp(0), __x.real()), copysign(__pi/_Tp(2), __x.imag()));
1284
+ }
1285
+ if (isnan(__x.imag()))
1286
+ {
1287
+ if (isinf(__x.real()) || __x.real() == 0)
1288
+ return complex<_Tp>(copysign(_Tp(0), __x.real()), __x.imag());
1289
+ return complex<_Tp>(__x.imag(), __x.imag());
1290
+ }
1291
+ if (isnan(__x.real()))
1292
+ {
1293
+ return complex<_Tp>(__x.real(), __x.real());
1294
+ }
1295
+ if (isinf(__x.real()))
1296
+ {
1297
+ return complex<_Tp>(copysign(_Tp(0), __x.real()), copysign(__pi/_Tp(2), __x.imag()));
1298
+ }
1299
+ if (abs(__x.real()) == _Tp(1) && __x.imag() == _Tp(0))
1300
+ {
1301
+ return complex<_Tp>(copysign(_Tp(INFINITY), __x.real()), copysign(_Tp(0), __x.imag()));
1302
+ }
1303
+ complex<_Tp> __z = log((_Tp(1) + __x) / (_Tp(1) - __x)) / _Tp(2);
1304
+ return complex<_Tp>(copysign(__z.real(), __x.real()), copysign(__z.imag(), __x.imag()));
1305
+ }
1306
+
1307
+ // sinh
1308
+
1309
+ template<class _Tp>
1310
+ complex<_Tp>
1311
+ sinh(const complex<_Tp>& __x)
1312
+ {
1313
+ if (isinf(__x.real()) && !isfinite(__x.imag()))
1314
+ return complex<_Tp>(__x.real(), _Tp(NAN));
1315
+ if (__x.real() == 0 && !isfinite(__x.imag()))
1316
+ return complex<_Tp>(__x.real(), _Tp(NAN));
1317
+ if (__x.imag() == 0 && !isfinite(__x.real()))
1318
+ return __x;
1319
+ return complex<_Tp>(sinh(__x.real()) * cos(__x.imag()), cosh(__x.real()) * sin(__x.imag()));
1320
+ }
1321
+
1322
+ // cosh
1323
+
1324
+ template<class _Tp>
1325
+ complex<_Tp>
1326
+ cosh(const complex<_Tp>& __x)
1327
+ {
1328
+ if (isinf(__x.real()) && !isfinite(__x.imag()))
1329
+ return complex<_Tp>(abs(__x.real()), _Tp(NAN));
1330
+ if (__x.real() == 0 && !isfinite(__x.imag()))
1331
+ return complex<_Tp>(_Tp(NAN), __x.real());
1332
+ if (__x.real() == 0 && __x.imag() == 0)
1333
+ return complex<_Tp>(_Tp(1), __x.imag());
1334
+ if (__x.imag() == 0 && !isfinite(__x.real()))
1335
+ return complex<_Tp>(abs(__x.real()), __x.imag());
1336
+ return complex<_Tp>(cosh(__x.real()) * cos(__x.imag()), sinh(__x.real()) * sin(__x.imag()));
1337
+ }
1338
+
1339
+ // tanh
1340
+
1341
+ template<class _Tp>
1342
+ complex<_Tp>
1343
+ tanh(const complex<_Tp>& __x)
1344
+ {
1345
+ if (isinf(__x.real()))
1346
+ {
1347
+ if (!isfinite(__x.imag()))
1348
+ return complex<_Tp>(_Tp(1), _Tp(0));
1349
+ return complex<_Tp>(_Tp(1), copysign(_Tp(0), sin(_Tp(2) * __x.imag())));
1350
+ }
1351
+ if (isnan(__x.real()) && __x.imag() == 0)
1352
+ return __x;
1353
+ _Tp __2r(_Tp(2) * __x.real());
1354
+ _Tp __2i(_Tp(2) * __x.imag());
1355
+ _Tp __d(cosh(__2r) + cos(__2i));
1356
+ _Tp __2rsh(sinh(__2r));
1357
+ if (isinf(__2rsh) && isinf(__d))
1358
+ return complex<_Tp>(__2rsh > _Tp(0) ? _Tp(1) : _Tp(-1),
1359
+ __2i > _Tp(0) ? _Tp(0) : _Tp(-0.));
1360
+ return complex<_Tp>(__2rsh/__d, sin(__2i)/__d);
1361
+ }
1362
+
1363
+ // asin
1364
+
1365
+ template<class _Tp>
1366
+ complex<_Tp>
1367
+ asin(const complex<_Tp>& __x)
1368
+ {
1369
+ complex<_Tp> __z = asinh(complex<_Tp>(-__x.imag(), __x.real()));
1370
+ return complex<_Tp>(__z.imag(), -__z.real());
1371
+ }
1372
+
1373
+ // acos
1374
+
1375
+ template<class _Tp>
1376
+ complex<_Tp>
1377
+ acos(const complex<_Tp>& __x)
1378
+ {
1379
+ const _Tp __pi(atan2(+0., -0.));
1380
+ if (isinf(__x.real()))
1381
+ {
1382
+ if (isnan(__x.imag()))
1383
+ return complex<_Tp>(__x.imag(), __x.real());
1384
+ if (isinf(__x.imag()))
1385
+ {
1386
+ if (__x.real() < _Tp(0))
1387
+ return complex<_Tp>(_Tp(0.75) * __pi, -__x.imag());
1388
+ return complex<_Tp>(_Tp(0.25) * __pi, -__x.imag());
1389
+ }
1390
+ if (__x.real() < _Tp(0))
1391
+ return complex<_Tp>(__pi, signbit(__x.imag()) ? -__x.real() : __x.real());
1392
+ return complex<_Tp>(_Tp(0), signbit(__x.imag()) ? __x.real() : -__x.real());
1393
+ }
1394
+ if (isnan(__x.real()))
1395
+ {
1396
+ if (isinf(__x.imag()))
1397
+ return complex<_Tp>(__x.real(), -__x.imag());
1398
+ return complex<_Tp>(__x.real(), __x.real());
1399
+ }
1400
+ if (isinf(__x.imag()))
1401
+ return complex<_Tp>(__pi/_Tp(2), -__x.imag());
1402
+ if (__x.real() == 0)
1403
+ return complex<_Tp>(__pi/_Tp(2), -__x.imag());
1404
+ complex<_Tp> __z = log(__x + sqrt(pow(__x, _Tp(2)) - _Tp(1)));
1405
+ if (signbit(__x.imag()))
1406
+ return complex<_Tp>(abs(__z.imag()), abs(__z.real()));
1407
+ return complex<_Tp>(abs(__z.imag()), -abs(__z.real()));
1408
+ }
1409
+
1410
+ // atan
1411
+
1412
+ template<class _Tp>
1413
+ complex<_Tp>
1414
+ atan(const complex<_Tp>& __x)
1415
+ {
1416
+ complex<_Tp> __z = atanh(complex<_Tp>(-__x.imag(), __x.real()));
1417
+ return complex<_Tp>(__z.imag(), -__z.real());
1418
+ }
1419
+
1420
+ // sin
1421
+
1422
+ template<class _Tp>
1423
+ complex<_Tp>
1424
+ sin(const complex<_Tp>& __x)
1425
+ {
1426
+ complex<_Tp> __z = sinh(complex<_Tp>(-__x.imag(), __x.real()));
1427
+ return complex<_Tp>(__z.imag(), -__z.real());
1428
+ }
1429
+
1430
+ // cos
1431
+
1432
+ template<class _Tp>
1433
+ inline _LIBCPP_INLINE_VISIBILITY
1434
+ complex<_Tp>
1435
+ cos(const complex<_Tp>& __x)
1436
+ {
1437
+ return cosh(complex<_Tp>(-__x.imag(), __x.real()));
1438
+ }
1439
+
1440
+ // tan
1441
+
1442
+ template<class _Tp>
1443
+ complex<_Tp>
1444
+ tan(const complex<_Tp>& __x)
1445
+ {
1446
+ complex<_Tp> __z = tanh(complex<_Tp>(-__x.imag(), __x.real()));
1447
+ return complex<_Tp>(__z.imag(), -__z.real());
1448
+ }
1449
+
1450
+ template<class _Tp, class _CharT, class _Traits>
1451
+ basic_istream<_CharT, _Traits>&
1452
+ operator>>(basic_istream<_CharT, _Traits>& __is, complex<_Tp>& __x)
1453
+ {
1454
+ if (__is.good())
1455
+ {
1456
+ ws(__is);
1457
+ if (__is.peek() == _CharT('('))
1458
+ {
1459
+ __is.get();
1460
+ _Tp __r;
1461
+ __is >> __r;
1462
+ if (!__is.fail())
1463
+ {
1464
+ ws(__is);
1465
+ _CharT __c = __is.peek();
1466
+ if (__c == _CharT(','))
1467
+ {
1468
+ __is.get();
1469
+ _Tp __i;
1470
+ __is >> __i;
1471
+ if (!__is.fail())
1472
+ {
1473
+ ws(__is);
1474
+ __c = __is.peek();
1475
+ if (__c == _CharT(')'))
1476
+ {
1477
+ __is.get();
1478
+ __x = complex<_Tp>(__r, __i);
1479
+ }
1480
+ else
1481
+ __is.setstate(ios_base::failbit);
1482
+ }
1483
+ else
1484
+ __is.setstate(ios_base::failbit);
1485
+ }
1486
+ else if (__c == _CharT(')'))
1487
+ {
1488
+ __is.get();
1489
+ __x = complex<_Tp>(__r, _Tp(0));
1490
+ }
1491
+ else
1492
+ __is.setstate(ios_base::failbit);
1493
+ }
1494
+ else
1495
+ __is.setstate(ios_base::failbit);
1496
+ }
1497
+ else
1498
+ {
1499
+ _Tp __r;
1500
+ __is >> __r;
1501
+ if (!__is.fail())
1502
+ __x = complex<_Tp>(__r, _Tp(0));
1503
+ else
1504
+ __is.setstate(ios_base::failbit);
1505
+ }
1506
+ }
1507
+ else
1508
+ __is.setstate(ios_base::failbit);
1509
+ return __is;
1510
+ }
1511
+
1512
+ template<class _Tp, class _CharT, class _Traits>
1513
+ basic_ostream<_CharT, _Traits>&
1514
+ operator<<(basic_ostream<_CharT, _Traits>& __os, const complex<_Tp>& __x)
1515
+ {
1516
+ basic_ostringstream<_CharT, _Traits> __s;
1517
+ __s.flags(__os.flags());
1518
+ __s.imbue(__os.getloc());
1519
+ __s.precision(__os.precision());
1520
+ __s << '(' << __x.real() << ',' << __x.imag() << ')';
1521
+ return __os << __s.str();
1522
+ }
1523
+
1524
+ _LIBCPP_END_NAMESPACE_STD
1525
+
1526
+ #endif // _LIBCPP_COMPLEX