rbs 4.1.0.pre.2-java

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 (574) hide show
  1. checksums.yaml +7 -0
  2. data/.clang-format +75 -0
  3. data/.clangd +2 -0
  4. data/.github/dependabot.yml +24 -0
  5. data/.github/workflows/bundle-update.yml +63 -0
  6. data/.github/workflows/c-check.yml +61 -0
  7. data/.github/workflows/comments.yml +37 -0
  8. data/.github/workflows/dependabot.yml +30 -0
  9. data/.github/workflows/jruby.yml +67 -0
  10. data/.github/workflows/milestone.yml +83 -0
  11. data/.github/workflows/ruby.yml +158 -0
  12. data/.github/workflows/rust.yml +184 -0
  13. data/.github/workflows/truffleruby.yml +54 -0
  14. data/.github/workflows/typecheck.yml +39 -0
  15. data/.github/workflows/wasm.yml +53 -0
  16. data/.github/workflows/windows.yml +49 -0
  17. data/.gitignore +38 -0
  18. data/.rubocop.yml +72 -0
  19. data/BSDL +22 -0
  20. data/CHANGELOG.md +2292 -0
  21. data/COPYING +56 -0
  22. data/README.md +240 -0
  23. data/Rakefile +869 -0
  24. data/Steepfile +53 -0
  25. data/config.yml +913 -0
  26. data/core/array.rbs +4142 -0
  27. data/core/basic_object.rbs +376 -0
  28. data/core/binding.rbs +148 -0
  29. data/core/builtin.rbs +278 -0
  30. data/core/class.rbs +223 -0
  31. data/core/comparable.rbs +192 -0
  32. data/core/complex.rbs +812 -0
  33. data/core/constants.rbs +96 -0
  34. data/core/data.rbs +415 -0
  35. data/core/dir.rbs +993 -0
  36. data/core/encoding.rbs +1368 -0
  37. data/core/enumerable.rbs +2506 -0
  38. data/core/enumerator/arithmetic_sequence.rbs +70 -0
  39. data/core/enumerator/product.rbs +92 -0
  40. data/core/enumerator.rbs +705 -0
  41. data/core/env.rbs +6 -0
  42. data/core/errno.rbs +682 -0
  43. data/core/errors.rbs +789 -0
  44. data/core/exception.rbs +485 -0
  45. data/core/false_class.rbs +82 -0
  46. data/core/fiber.rbs +570 -0
  47. data/core/fiber_error.rbs +11 -0
  48. data/core/file.rbs +2045 -0
  49. data/core/file_constants.rbs +463 -0
  50. data/core/file_stat.rbs +534 -0
  51. data/core/file_test.rbs +331 -0
  52. data/core/float.rbs +1316 -0
  53. data/core/gc.rbs +788 -0
  54. data/core/global_variables.rbs +184 -0
  55. data/core/hash.rbs +2183 -0
  56. data/core/integer.rbs +1374 -0
  57. data/core/io/buffer.rbs +995 -0
  58. data/core/io/wait.rbs +48 -0
  59. data/core/io.rbs +3472 -0
  60. data/core/kernel.rbs +3172 -0
  61. data/core/marshal.rbs +207 -0
  62. data/core/match_data.rbs +637 -0
  63. data/core/math.rbs +770 -0
  64. data/core/method.rbs +422 -0
  65. data/core/module.rbs +1856 -0
  66. data/core/nil_class.rbs +210 -0
  67. data/core/numeric.rbs +832 -0
  68. data/core/object.rbs +108 -0
  69. data/core/object_space/weak_key_map.rbs +166 -0
  70. data/core/object_space.rbs +197 -0
  71. data/core/pathname.rbs +1322 -0
  72. data/core/proc.rbs +905 -0
  73. data/core/process.rbs +2316 -0
  74. data/core/ractor.rbs +924 -0
  75. data/core/random.rbs +255 -0
  76. data/core/range.rbs +1209 -0
  77. data/core/rational.rbs +502 -0
  78. data/core/rb_config.rbs +88 -0
  79. data/core/rbs/ops.rbs +154 -0
  80. data/core/rbs/unnamed/argf.rbs +1236 -0
  81. data/core/rbs/unnamed/env_class.rbs +1214 -0
  82. data/core/rbs/unnamed/main_class.rbs +123 -0
  83. data/core/rbs/unnamed/random.rbs +186 -0
  84. data/core/refinement.rbs +59 -0
  85. data/core/regexp.rbs +1974 -0
  86. data/core/ruby.rbs +53 -0
  87. data/core/ruby_vm.rbs +809 -0
  88. data/core/rubygems/basic_specification.rbs +6 -0
  89. data/core/rubygems/config_file.rbs +38 -0
  90. data/core/rubygems/dependency_installer.rbs +6 -0
  91. data/core/rubygems/errors.rbs +109 -0
  92. data/core/rubygems/installer.rbs +15 -0
  93. data/core/rubygems/path_support.rbs +6 -0
  94. data/core/rubygems/platform.rbs +7 -0
  95. data/core/rubygems/request_set.rbs +49 -0
  96. data/core/rubygems/requirement.rbs +148 -0
  97. data/core/rubygems/rubygems.rbs +1105 -0
  98. data/core/rubygems/source_list.rbs +15 -0
  99. data/core/rubygems/specification.rbs +23 -0
  100. data/core/rubygems/stream_ui.rbs +5 -0
  101. data/core/rubygems/uninstaller.rbs +10 -0
  102. data/core/rubygems/version.rbs +293 -0
  103. data/core/set.rbs +751 -0
  104. data/core/signal.rbs +110 -0
  105. data/core/string.rbs +5532 -0
  106. data/core/struct.rbs +668 -0
  107. data/core/symbol.rbs +482 -0
  108. data/core/thread.rbs +1826 -0
  109. data/core/thread_group.rbs +79 -0
  110. data/core/time.rbs +1793 -0
  111. data/core/trace_point.rbs +483 -0
  112. data/core/true_class.rbs +98 -0
  113. data/core/unbound_method.rbs +337 -0
  114. data/core/warning.rbs +87 -0
  115. data/docs/CONTRIBUTING.md +107 -0
  116. data/docs/aliases.md +79 -0
  117. data/docs/architecture.md +110 -0
  118. data/docs/collection.md +192 -0
  119. data/docs/config.md +171 -0
  120. data/docs/data_and_struct.md +86 -0
  121. data/docs/encoding.md +56 -0
  122. data/docs/gem.md +56 -0
  123. data/docs/inline.md +634 -0
  124. data/docs/rbs_by_example.md +309 -0
  125. data/docs/repo.md +125 -0
  126. data/docs/rust.md +96 -0
  127. data/docs/sigs.md +167 -0
  128. data/docs/stdlib.md +147 -0
  129. data/docs/syntax.md +940 -0
  130. data/docs/tools.md +17 -0
  131. data/docs/type_fingerprint.md +21 -0
  132. data/docs/wasm_serialization.md +80 -0
  133. data/exe/rbs +7 -0
  134. data/ext/rbs_extension/ast_translation.c +1855 -0
  135. data/ext/rbs_extension/ast_translation.h +41 -0
  136. data/ext/rbs_extension/class_constants.c +187 -0
  137. data/ext/rbs_extension/class_constants.h +104 -0
  138. data/ext/rbs_extension/compat.h +10 -0
  139. data/ext/rbs_extension/extconf.rb +40 -0
  140. data/ext/rbs_extension/legacy_location.c +294 -0
  141. data/ext/rbs_extension/legacy_location.h +82 -0
  142. data/ext/rbs_extension/main.c +613 -0
  143. data/ext/rbs_extension/rbs_extension.h +16 -0
  144. data/ext/rbs_extension/rbs_string_bridging.c +9 -0
  145. data/ext/rbs_extension/rbs_string_bridging.h +24 -0
  146. data/goodcheck.yml +91 -0
  147. data/include/rbs/ast.h +1047 -0
  148. data/include/rbs/defines.h +99 -0
  149. data/include/rbs/lexer.h +207 -0
  150. data/include/rbs/location.h +40 -0
  151. data/include/rbs/parser.h +153 -0
  152. data/include/rbs/serialize.h +39 -0
  153. data/include/rbs/string.h +47 -0
  154. data/include/rbs/util/rbs_allocator.h +59 -0
  155. data/include/rbs/util/rbs_assert.h +20 -0
  156. data/include/rbs/util/rbs_buffer.h +83 -0
  157. data/include/rbs/util/rbs_constant_pool.h +155 -0
  158. data/include/rbs/util/rbs_encoding.h +282 -0
  159. data/include/rbs/util/rbs_unescape.h +24 -0
  160. data/include/rbs.h +14 -0
  161. data/lib/rbs/ancestor_graph.rb +92 -0
  162. data/lib/rbs/annotate/annotations.rb +199 -0
  163. data/lib/rbs/annotate/formatter.rb +82 -0
  164. data/lib/rbs/annotate/rdoc_annotator.rb +398 -0
  165. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  166. data/lib/rbs/annotate.rb +8 -0
  167. data/lib/rbs/ast/annotation.rb +29 -0
  168. data/lib/rbs/ast/comment.rb +29 -0
  169. data/lib/rbs/ast/declarations.rb +472 -0
  170. data/lib/rbs/ast/directives.rb +49 -0
  171. data/lib/rbs/ast/members.rb +451 -0
  172. data/lib/rbs/ast/ruby/annotations.rb +451 -0
  173. data/lib/rbs/ast/ruby/comment_block.rb +247 -0
  174. data/lib/rbs/ast/ruby/declarations.rb +291 -0
  175. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
  176. data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
  177. data/lib/rbs/ast/ruby/members.rb +762 -0
  178. data/lib/rbs/ast/type_param.rb +235 -0
  179. data/lib/rbs/ast/visitor.rb +137 -0
  180. data/lib/rbs/buffer.rb +189 -0
  181. data/lib/rbs/builtin_names.rb +58 -0
  182. data/lib/rbs/cli/colored_io.rb +48 -0
  183. data/lib/rbs/cli/diff.rb +84 -0
  184. data/lib/rbs/cli/validate.rb +294 -0
  185. data/lib/rbs/cli.rb +1253 -0
  186. data/lib/rbs/collection/cleaner.rb +38 -0
  187. data/lib/rbs/collection/config/lockfile.rb +92 -0
  188. data/lib/rbs/collection/config/lockfile_generator.rb +269 -0
  189. data/lib/rbs/collection/config.rb +81 -0
  190. data/lib/rbs/collection/installer.rb +32 -0
  191. data/lib/rbs/collection/sources/base.rb +14 -0
  192. data/lib/rbs/collection/sources/git.rb +265 -0
  193. data/lib/rbs/collection/sources/local.rb +81 -0
  194. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  195. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  196. data/lib/rbs/collection/sources.rb +38 -0
  197. data/lib/rbs/collection.rb +16 -0
  198. data/lib/rbs/constant.rb +28 -0
  199. data/lib/rbs/definition.rb +415 -0
  200. data/lib/rbs/definition_builder/ancestor_builder.rb +678 -0
  201. data/lib/rbs/definition_builder/method_builder.rb +295 -0
  202. data/lib/rbs/definition_builder.rb +1054 -0
  203. data/lib/rbs/diff.rb +131 -0
  204. data/lib/rbs/environment/class_entry.rb +69 -0
  205. data/lib/rbs/environment/module_entry.rb +66 -0
  206. data/lib/rbs/environment/use_map.rb +77 -0
  207. data/lib/rbs/environment.rb +1028 -0
  208. data/lib/rbs/environment_loader.rb +167 -0
  209. data/lib/rbs/environment_walker.rb +155 -0
  210. data/lib/rbs/errors.rb +634 -0
  211. data/lib/rbs/factory.rb +18 -0
  212. data/lib/rbs/file_finder.rb +28 -0
  213. data/lib/rbs/inline_parser/comment_association.rb +117 -0
  214. data/lib/rbs/inline_parser.rb +568 -0
  215. data/lib/rbs/location_aux.rb +170 -0
  216. data/lib/rbs/locator.rb +247 -0
  217. data/lib/rbs/method_type.rb +145 -0
  218. data/lib/rbs/namespace.rb +154 -0
  219. data/lib/rbs/parser/lex_result.rb +15 -0
  220. data/lib/rbs/parser/token.rb +23 -0
  221. data/lib/rbs/parser_aux.rb +142 -0
  222. data/lib/rbs/prototype/helpers.rb +197 -0
  223. data/lib/rbs/prototype/node_usage.rb +99 -0
  224. data/lib/rbs/prototype/rb.rb +816 -0
  225. data/lib/rbs/prototype/rbi.rb +625 -0
  226. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  227. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  228. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  229. data/lib/rbs/prototype/runtime.rb +680 -0
  230. data/lib/rbs/repository.rb +127 -0
  231. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  232. data/lib/rbs/resolver/type_name_resolver.rb +167 -0
  233. data/lib/rbs/rewriter.rb +70 -0
  234. data/lib/rbs/sorter.rb +198 -0
  235. data/lib/rbs/source.rb +99 -0
  236. data/lib/rbs/substitution.rb +83 -0
  237. data/lib/rbs/subtractor.rb +204 -0
  238. data/lib/rbs/test/errors.rb +80 -0
  239. data/lib/rbs/test/guaranteed.rb +30 -0
  240. data/lib/rbs/test/hook.rb +212 -0
  241. data/lib/rbs/test/observer.rb +19 -0
  242. data/lib/rbs/test/setup.rb +84 -0
  243. data/lib/rbs/test/setup_helper.rb +50 -0
  244. data/lib/rbs/test/tester.rb +167 -0
  245. data/lib/rbs/test/type_check.rb +457 -0
  246. data/lib/rbs/test.rb +112 -0
  247. data/lib/rbs/type_alias_dependency.rb +100 -0
  248. data/lib/rbs/type_alias_regularity.rb +126 -0
  249. data/lib/rbs/type_name.rb +122 -0
  250. data/lib/rbs/types.rb +1604 -0
  251. data/lib/rbs/unit_test/convertibles.rb +177 -0
  252. data/lib/rbs/unit_test/spy.rb +138 -0
  253. data/lib/rbs/unit_test/type_assertions.rb +383 -0
  254. data/lib/rbs/unit_test/with_aliases.rb +145 -0
  255. data/lib/rbs/unit_test.rb +6 -0
  256. data/lib/rbs/validator.rb +186 -0
  257. data/lib/rbs/variance_calculator.rb +189 -0
  258. data/lib/rbs/vendorer.rb +71 -0
  259. data/lib/rbs/version.rb +5 -0
  260. data/lib/rbs/wasm/deserializer.rb +213 -0
  261. data/lib/rbs/wasm/jars/asm-analysis.jar +0 -0
  262. data/lib/rbs/wasm/jars/asm-commons.jar +0 -0
  263. data/lib/rbs/wasm/jars/asm-tree.jar +0 -0
  264. data/lib/rbs/wasm/jars/asm-util.jar +0 -0
  265. data/lib/rbs/wasm/jars/asm.jar +0 -0
  266. data/lib/rbs/wasm/jars/compiler.jar +0 -0
  267. data/lib/rbs/wasm/jars/log.jar +0 -0
  268. data/lib/rbs/wasm/jars/runtime.jar +0 -0
  269. data/lib/rbs/wasm/jars/wasi.jar +0 -0
  270. data/lib/rbs/wasm/jars/wasm.jar +0 -0
  271. data/lib/rbs/wasm/location.rb +61 -0
  272. data/lib/rbs/wasm/parser.rb +137 -0
  273. data/lib/rbs/wasm/rbs_parser.wasm +0 -0
  274. data/lib/rbs/wasm/runtime.rb +217 -0
  275. data/lib/rbs/wasm/serialization_schema.rb +110 -0
  276. data/lib/rbs/writer.rb +424 -0
  277. data/lib/rbs.rb +117 -0
  278. data/lib/rdoc/discover.rb +20 -0
  279. data/lib/rdoc_plugin/parser.rb +163 -0
  280. data/rbs.gemspec +68 -0
  281. data/schema/annotation.json +14 -0
  282. data/schema/comment.json +26 -0
  283. data/schema/decls.json +326 -0
  284. data/schema/function.json +87 -0
  285. data/schema/location.json +56 -0
  286. data/schema/members.json +266 -0
  287. data/schema/methodType.json +50 -0
  288. data/schema/typeParam.json +52 -0
  289. data/schema/types.json +317 -0
  290. data/sig/ancestor_builder.rbs +163 -0
  291. data/sig/ancestor_graph.rbs +60 -0
  292. data/sig/annotate/annotations.rbs +102 -0
  293. data/sig/annotate/formatter.rbs +24 -0
  294. data/sig/annotate/rdoc_annotater.rbs +85 -0
  295. data/sig/annotate/rdoc_source.rbs +32 -0
  296. data/sig/annotation.rbs +27 -0
  297. data/sig/ast/ruby/annotations.rbs +470 -0
  298. data/sig/ast/ruby/comment_block.rbs +127 -0
  299. data/sig/ast/ruby/declarations.rbs +158 -0
  300. data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
  301. data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
  302. data/sig/ast/ruby/members.rbs +198 -0
  303. data/sig/buffer.rbs +108 -0
  304. data/sig/builtin_names.rbs +44 -0
  305. data/sig/cli/colored_io.rbs +15 -0
  306. data/sig/cli/diff.rbs +15 -0
  307. data/sig/cli/validate.rbs +47 -0
  308. data/sig/cli.rbs +89 -0
  309. data/sig/collection/cleaner.rbs +13 -0
  310. data/sig/collection/config/lockfile.rbs +74 -0
  311. data/sig/collection/config/lockfile_generator.rbs +68 -0
  312. data/sig/collection/config.rbs +46 -0
  313. data/sig/collection/installer.rbs +17 -0
  314. data/sig/collection/sources.rbs +214 -0
  315. data/sig/collection.rbs +4 -0
  316. data/sig/comment.rbs +26 -0
  317. data/sig/constant.rbs +21 -0
  318. data/sig/declarations.rbs +274 -0
  319. data/sig/definition.rbs +232 -0
  320. data/sig/definition_builder.rbs +181 -0
  321. data/sig/diff.rbs +28 -0
  322. data/sig/directives.rbs +77 -0
  323. data/sig/environment/class_entry.rbs +50 -0
  324. data/sig/environment/module_entry.rbs +50 -0
  325. data/sig/environment.rbs +286 -0
  326. data/sig/environment_loader.rbs +111 -0
  327. data/sig/environment_walker.rbs +65 -0
  328. data/sig/errors.rbs +408 -0
  329. data/sig/factory.rbs +5 -0
  330. data/sig/file_finder.rbs +28 -0
  331. data/sig/inline_parser/comment_association.rbs +71 -0
  332. data/sig/inline_parser.rbs +126 -0
  333. data/sig/location.rbs +135 -0
  334. data/sig/locator.rbs +56 -0
  335. data/sig/manifest.yaml +5 -0
  336. data/sig/members.rbs +258 -0
  337. data/sig/method_builder.rbs +89 -0
  338. data/sig/method_types.rbs +58 -0
  339. data/sig/namespace.rbs +161 -0
  340. data/sig/parser.rbs +164 -0
  341. data/sig/prototype/helpers.rbs +29 -0
  342. data/sig/prototype/node_usage.rbs +20 -0
  343. data/sig/prototype/rb.rbs +96 -0
  344. data/sig/prototype/rbi.rbs +75 -0
  345. data/sig/prototype/runtime.rbs +182 -0
  346. data/sig/rbs.rbs +21 -0
  347. data/sig/rdoc/rbs.rbs +67 -0
  348. data/sig/repository.rbs +85 -0
  349. data/sig/resolver/constant_resolver.rbs +92 -0
  350. data/sig/resolver/context.rbs +34 -0
  351. data/sig/resolver/type_name_resolver.rbs +61 -0
  352. data/sig/rewriter.rbs +45 -0
  353. data/sig/shims/bundler.rbs +38 -0
  354. data/sig/shims/enumerable.rbs +5 -0
  355. data/sig/shims/rubygems.rbs +19 -0
  356. data/sig/sorter.rbs +41 -0
  357. data/sig/source.rbs +48 -0
  358. data/sig/substitution.rbs +48 -0
  359. data/sig/subtractor.rbs +37 -0
  360. data/sig/test/errors.rbs +52 -0
  361. data/sig/test/guranteed.rbs +9 -0
  362. data/sig/test/type_check.rbs +19 -0
  363. data/sig/test.rbs +82 -0
  364. data/sig/type_alias_dependency.rbs +53 -0
  365. data/sig/type_alias_regularity.rbs +98 -0
  366. data/sig/type_param.rbs +115 -0
  367. data/sig/typename.rbs +89 -0
  368. data/sig/types.rbs +578 -0
  369. data/sig/unit_test/convertibles.rbs +154 -0
  370. data/sig/unit_test/spy.rbs +22 -0
  371. data/sig/unit_test/type_assertions.rbs +211 -0
  372. data/sig/unit_test/with_aliases.rbs +136 -0
  373. data/sig/use_map.rbs +35 -0
  374. data/sig/util.rbs +9 -0
  375. data/sig/validator.rbs +63 -0
  376. data/sig/variance_calculator.rbs +87 -0
  377. data/sig/vendorer.rbs +51 -0
  378. data/sig/version.rbs +3 -0
  379. data/sig/visitor.rbs +47 -0
  380. data/sig/wasm/deserializer.rbs +66 -0
  381. data/sig/wasm/serialization_schema.rbs +13 -0
  382. data/sig/writer.rbs +127 -0
  383. data/src/ast.c +1628 -0
  384. data/src/lexer.c +3217 -0
  385. data/src/lexer.re +155 -0
  386. data/src/lexstate.c +217 -0
  387. data/src/location.c +31 -0
  388. data/src/parser.c +4255 -0
  389. data/src/serialize.c +958 -0
  390. data/src/string.c +41 -0
  391. data/src/util/rbs_allocator.c +162 -0
  392. data/src/util/rbs_assert.c +19 -0
  393. data/src/util/rbs_buffer.c +54 -0
  394. data/src/util/rbs_constant_pool.c +268 -0
  395. data/src/util/rbs_encoding.c +21308 -0
  396. data/src/util/rbs_unescape.c +167 -0
  397. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  398. data/stdlib/abbrev/0/array.rbs +26 -0
  399. data/stdlib/base64/0/base64.rbs +355 -0
  400. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  401. data/stdlib/bigdecimal/0/big_decimal.rbs +1647 -0
  402. data/stdlib/bigdecimal-math/0/big_math.rbs +280 -0
  403. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  404. data/stdlib/cgi/0/core.rbs +911 -0
  405. data/stdlib/cgi/0/manifest.yaml +4 -0
  406. data/stdlib/cgi-escape/0/escape.rbs +171 -0
  407. data/stdlib/coverage/0/coverage.rbs +266 -0
  408. data/stdlib/csv/0/csv.rbs +3776 -0
  409. data/stdlib/csv/0/manifest.yaml +3 -0
  410. data/stdlib/date/0/date.rbs +1598 -0
  411. data/stdlib/date/0/date_time.rbs +617 -0
  412. data/stdlib/date/0/time.rbs +26 -0
  413. data/stdlib/dbm/0/dbm.rbs +421 -0
  414. data/stdlib/delegate/0/delegator.rbs +187 -0
  415. data/stdlib/delegate/0/kernel.rbs +47 -0
  416. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  417. data/stdlib/did_you_mean/0/did_you_mean.rbs +344 -0
  418. data/stdlib/digest/0/digest.rbs +687 -0
  419. data/stdlib/erb/0/erb.rbs +933 -0
  420. data/stdlib/etc/0/etc.rbs +884 -0
  421. data/stdlib/fileutils/0/fileutils.rbs +1753 -0
  422. data/stdlib/find/0/find.rbs +49 -0
  423. data/stdlib/forwardable/0/forwardable.rbs +271 -0
  424. data/stdlib/io-console/0/io-console.rbs +414 -0
  425. data/stdlib/ipaddr/0/ipaddr.rbs +436 -0
  426. data/stdlib/json/0/json.rbs +1963 -0
  427. data/stdlib/kconv/0/kconv.rbs +166 -0
  428. data/stdlib/logger/0/formatter.rbs +45 -0
  429. data/stdlib/logger/0/log_device.rbs +100 -0
  430. data/stdlib/logger/0/logger.rbs +796 -0
  431. data/stdlib/logger/0/manifest.yaml +2 -0
  432. data/stdlib/logger/0/period.rbs +17 -0
  433. data/stdlib/logger/0/severity.rbs +34 -0
  434. data/stdlib/minitest/0/kernel.rbs +42 -0
  435. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  436. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  437. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  438. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  439. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  440. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  441. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  442. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  443. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  444. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  445. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  446. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  447. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  448. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  449. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  450. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  451. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  452. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  453. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  454. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  455. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  456. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  457. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  458. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  459. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  460. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  461. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  462. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  463. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  464. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  465. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  466. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  467. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  468. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  469. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  470. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  471. data/stdlib/minitest/0/minitest.rbs +115 -0
  472. data/stdlib/monitor/0/monitor.rbs +363 -0
  473. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  474. data/stdlib/net-http/0/manifest.yaml +3 -0
  475. data/stdlib/net-http/0/net-http.rbs +5580 -0
  476. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  477. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  478. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  479. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  480. data/stdlib/nkf/0/nkf.rbs +402 -0
  481. data/stdlib/objspace/0/objspace.rbs +470 -0
  482. data/stdlib/observable/0/observable.rbs +217 -0
  483. data/stdlib/open-uri/0/manifest.yaml +4 -0
  484. data/stdlib/open-uri/0/open-uri.rbs +433 -0
  485. data/stdlib/open3/0/open3.rbs +606 -0
  486. data/stdlib/openssl/0/manifest.yaml +3 -0
  487. data/stdlib/openssl/0/openssl.rbs +12231 -0
  488. data/stdlib/optparse/0/optparse.rbs +1734 -0
  489. data/stdlib/pathname/0/pathname.rbs +36 -0
  490. data/stdlib/pp/0/manifest.yaml +2 -0
  491. data/stdlib/pp/0/pp.rbs +301 -0
  492. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  493. data/stdlib/pstore/0/pstore.rbs +608 -0
  494. data/stdlib/psych/0/core_ext.rbs +12 -0
  495. data/stdlib/psych/0/dbm.rbs +237 -0
  496. data/stdlib/psych/0/manifest.yaml +3 -0
  497. data/stdlib/psych/0/psych.rbs +455 -0
  498. data/stdlib/psych/0/store.rbs +57 -0
  499. data/stdlib/pty/0/pty.rbs +240 -0
  500. data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
  501. data/stdlib/rdoc/0/code_object.rbs +52 -0
  502. data/stdlib/rdoc/0/comment.rbs +61 -0
  503. data/stdlib/rdoc/0/context.rbs +153 -0
  504. data/stdlib/rdoc/0/markup.rbs +117 -0
  505. data/stdlib/rdoc/0/options.rbs +76 -0
  506. data/stdlib/rdoc/0/parser.rbs +56 -0
  507. data/stdlib/rdoc/0/rdoc.rbs +393 -0
  508. data/stdlib/rdoc/0/ri.rbs +17 -0
  509. data/stdlib/rdoc/0/store.rbs +48 -0
  510. data/stdlib/rdoc/0/top_level.rbs +97 -0
  511. data/stdlib/resolv/0/manifest.yaml +3 -0
  512. data/stdlib/resolv/0/resolv.rbs +1787 -0
  513. data/stdlib/ripper/0/ripper.rbs +1654 -0
  514. data/stdlib/securerandom/0/manifest.yaml +2 -0
  515. data/stdlib/securerandom/0/securerandom.rbs +49 -0
  516. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  517. data/stdlib/singleton/0/singleton.rbs +134 -0
  518. data/stdlib/socket/0/addrinfo.rbs +666 -0
  519. data/stdlib/socket/0/basic_socket.rbs +590 -0
  520. data/stdlib/socket/0/constants.rbs +2295 -0
  521. data/stdlib/socket/0/ip_socket.rbs +94 -0
  522. data/stdlib/socket/0/socket.rbs +4170 -0
  523. data/stdlib/socket/0/socket_error.rbs +5 -0
  524. data/stdlib/socket/0/tcp_server.rbs +192 -0
  525. data/stdlib/socket/0/tcp_socket.rbs +87 -0
  526. data/stdlib/socket/0/udp_socket.rbs +133 -0
  527. data/stdlib/socket/0/unix_server.rbs +169 -0
  528. data/stdlib/socket/0/unix_socket.rbs +172 -0
  529. data/stdlib/stringio/0/stringio.rbs +1681 -0
  530. data/stdlib/strscan/0/string_scanner.rbs +1648 -0
  531. data/stdlib/tempfile/0/tempfile.rbs +483 -0
  532. data/stdlib/time/0/time.rbs +434 -0
  533. data/stdlib/timeout/0/timeout.rbs +137 -0
  534. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  535. data/stdlib/tsort/0/cyclic.rbs +8 -0
  536. data/stdlib/tsort/0/interfaces.rbs +20 -0
  537. data/stdlib/tsort/0/tsort.rbs +410 -0
  538. data/stdlib/uri/0/common.rbs +621 -0
  539. data/stdlib/uri/0/file.rbs +118 -0
  540. data/stdlib/uri/0/ftp.rbs +13 -0
  541. data/stdlib/uri/0/generic.rbs +1116 -0
  542. data/stdlib/uri/0/http.rbs +104 -0
  543. data/stdlib/uri/0/https.rbs +14 -0
  544. data/stdlib/uri/0/ldap.rbs +230 -0
  545. data/stdlib/uri/0/ldaps.rbs +14 -0
  546. data/stdlib/uri/0/mailto.rbs +92 -0
  547. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  548. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  549. data/stdlib/uri/0/ws.rbs +13 -0
  550. data/stdlib/uri/0/wss.rbs +9 -0
  551. data/stdlib/yaml/0/manifest.yaml +2 -0
  552. data/stdlib/yaml/0/yaml.rbs +1 -0
  553. data/stdlib/zlib/0/buf_error.rbs +10 -0
  554. data/stdlib/zlib/0/data_error.rbs +10 -0
  555. data/stdlib/zlib/0/deflate.rbs +211 -0
  556. data/stdlib/zlib/0/error.rbs +20 -0
  557. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  558. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  559. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  560. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  561. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  562. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  563. data/stdlib/zlib/0/gzip_writer.rbs +168 -0
  564. data/stdlib/zlib/0/inflate.rbs +180 -0
  565. data/stdlib/zlib/0/mem_error.rbs +10 -0
  566. data/stdlib/zlib/0/need_dict.rbs +13 -0
  567. data/stdlib/zlib/0/stream_end.rbs +11 -0
  568. data/stdlib/zlib/0/stream_error.rbs +11 -0
  569. data/stdlib/zlib/0/version_error.rbs +11 -0
  570. data/stdlib/zlib/0/zlib.rbs +449 -0
  571. data/stdlib/zlib/0/zstream.rbs +201 -0
  572. data/wasm/README.md +59 -0
  573. data/wasm/rbs_wasm.c +411 -0
  574. metadata +660 -0
data/core/math.rbs ADDED
@@ -0,0 +1,770 @@
1
+ # <!-- rdoc-file=math.c -->
2
+ # Module Math provides methods for basic trigonometric, logarithmic, and
3
+ # transcendental functions, and for extracting roots.
4
+ #
5
+ # You can write its constants and method calls thus:
6
+ #
7
+ # Math::PI # => 3.141592653589793
8
+ # Math::E # => 2.718281828459045
9
+ # Math.sin(0.0) # => 0.0
10
+ # Math.cos(0.0) # => 1.0
11
+ #
12
+ # If you include module Math, you can write simpler forms:
13
+ #
14
+ # include Math
15
+ # PI # => 3.141592653589793
16
+ # E # => 2.718281828459045
17
+ # sin(0.0) # => 0.0
18
+ # cos(0.0) # => 1.0
19
+ #
20
+ # For simplicity, the examples here assume:
21
+ #
22
+ # include Math
23
+ # INFINITY = Float::INFINITY
24
+ #
25
+ # The domains and ranges for the methods are denoted by open or closed
26
+ # intervals, using, respectively, parentheses or square brackets:
27
+ #
28
+ # * An open interval does not include the endpoints:
29
+ #
30
+ # (-INFINITY, INFINITY)
31
+ #
32
+ # * A closed interval includes the endpoints:
33
+ #
34
+ # [-1.0, 1.0]
35
+ #
36
+ # * A half-open interval includes one endpoint, but not the other:
37
+ #
38
+ # [1.0, INFINITY)
39
+ #
40
+ # Many values returned by Math methods are numerical approximations. This is
41
+ # because many such values are, in mathematics, of infinite precision, while in
42
+ # numerical computation the precision is finite.
43
+ #
44
+ # Thus, in mathematics, <em>cos(π/2)</em> is exactly zero, but in our
45
+ # computation <code>cos(PI/2)</code> is a number very close to zero:
46
+ #
47
+ # cos(PI/2) # => 6.123031769111886e-17
48
+ #
49
+ # For very large and very small returned values, we have added formatted numbers
50
+ # for clarity:
51
+ #
52
+ # tan(PI/2) # => 1.633123935319537e+16 # 16331239353195370.0
53
+ # tan(PI) # => -1.2246467991473532e-16 # -0.0000000000000001
54
+ #
55
+ # See class Float for the constants that affect Ruby's floating-point
56
+ # arithmetic.
57
+ #
58
+ # ### What's Here
59
+ #
60
+ # #### Trigonometric Functions
61
+ #
62
+ # * ::cos: Returns the cosine of the given argument.
63
+ # * ::sin: Returns the sine of the given argument.
64
+ # * ::tan: Returns the tangent of the given argument.
65
+ #
66
+ # #### Inverse Trigonometric Functions
67
+ #
68
+ # * ::acos: Returns the arc cosine of the given argument.
69
+ # * ::asin: Returns the arc sine of the given argument.
70
+ # * ::atan: Returns the arc tangent of the given argument.
71
+ # * ::atan2: Returns the arg tangent of two given arguments.
72
+ #
73
+ # #### Hyperbolic Trigonometric Functions
74
+ #
75
+ # * ::cosh: Returns the hyperbolic cosine of the given argument.
76
+ # * ::sinh: Returns the hyperbolic sine of the given argument.
77
+ # * ::tanh: Returns the hyperbolic tangent of the given argument.
78
+ #
79
+ # #### Inverse Hyperbolic Trigonometric Functions
80
+ #
81
+ # * ::acosh: Returns the inverse hyperbolic cosine of the given argument.
82
+ # * ::asinh: Returns the inverse hyperbolic sine of the given argument.
83
+ # * ::atanh: Returns the inverse hyperbolic tangent of the given argument.
84
+ #
85
+ # #### Exponentiation and Logarithmic Functions
86
+ #
87
+ # * ::exp: Returns the value of a given value raised to a given power.
88
+ # * ::log: Returns the logarithm of a given value in a given base.
89
+ # * ::log10: Returns the base 10 logarithm of the given argument.
90
+ # * ::log2: Returns the base 2 logarithm of the given argument.
91
+ #
92
+ # #### Fraction and Exponent Functions
93
+ #
94
+ # * ::frexp: Returns the fraction and exponent of the given argument.
95
+ # * ::ldexp: Returns the value for a given fraction and exponent.
96
+ #
97
+ # #### Root Functions
98
+ #
99
+ # * ::cbrt: Returns the cube root of the given argument.
100
+ # * ::sqrt: Returns the square root of the given argument.
101
+ #
102
+ # #### Error Functions
103
+ #
104
+ # * ::erf: Returns the value of the Gauss error function for the given
105
+ # argument.
106
+ # * ::erfc: Returns the value of the complementary error function for the
107
+ # given argument.
108
+ #
109
+ # #### Gamma Functions
110
+ #
111
+ # * ::gamma: Returns the value of the gamma function for the given argument.
112
+ # * ::lgamma: Returns the value of the logarithmic gamma function for the
113
+ # given argument.
114
+ #
115
+ # #### Hypotenuse Function
116
+ #
117
+ # * ::hypot: Returns <code>sqrt(a**2 + b**2)</code> for the given `a` and `b`.
118
+ #
119
+ module Math
120
+ # <!-- rdoc-file=math.c -->
121
+ # Definition of the mathematical constant E for Euler's number (e) as a Float
122
+ # number.
123
+ #
124
+ E: Float
125
+
126
+ # <!-- rdoc-file=math.c -->
127
+ # Definition of the mathematical constant PI as a Float number.
128
+ #
129
+ PI: Float
130
+
131
+ # <!-- rdoc-file=math.c -->
132
+ # Raised when a mathematical function is evaluated outside of its domain of
133
+ # definition.
134
+ #
135
+ # For example, since `cos` returns values in the range -1..1, its inverse
136
+ # function `acos` is only defined on that interval:
137
+ #
138
+ # Math.acos(42)
139
+ #
140
+ # <em>produces:</em>
141
+ #
142
+ # Math::DomainError: Numerical argument is out of domain - "acos"
143
+ #
144
+ class DomainError < StandardError
145
+ end
146
+
147
+ # A type that's passable to `Math` functions: A `Numeric` type that defines `.to_f`.
148
+ #
149
+ type double = Numeric & _ToF
150
+
151
+ # <!--
152
+ # rdoc-file=math.c
153
+ # - Math.acos(x) -> float
154
+ # -->
155
+ # Returns the [arc
156
+ # cosine](https://en.wikipedia.org/wiki/Inverse_trigonometric_functions) of `x`.
157
+ #
158
+ # * Domain: <code>[-1, 1]</code>.
159
+ # * Range: <code>[0, PI]</code>.
160
+ #
161
+ # Examples:
162
+ #
163
+ # acos(-1.0) # => 3.141592653589793 # PI
164
+ # acos(0.0) # => 1.5707963267948966 # PI/2
165
+ # acos(1.0) # => 0.0
166
+ #
167
+ def self.acos: (double x) -> Float
168
+
169
+ # <!--
170
+ # rdoc-file=math.c
171
+ # - Math.acosh(x) -> float
172
+ # -->
173
+ # Returns the [inverse hyperbolic
174
+ # cosine](https://en.wikipedia.org/wiki/Inverse_hyperbolic_functions) of `x`.
175
+ #
176
+ # * Domain: <code>[1, INFINITY]</code>.
177
+ # * Range: <code>[0, INFINITY]</code>.
178
+ #
179
+ # Examples:
180
+ #
181
+ # acosh(1.0) # => 0.0
182
+ # acosh(INFINITY) # => Infinity
183
+ #
184
+ def self.acosh: (double x) -> Float
185
+
186
+ # <!--
187
+ # rdoc-file=math.c
188
+ # - Math.asin(x) -> float
189
+ # -->
190
+ # Returns the [arc
191
+ # sine](https://en.wikipedia.org/wiki/Inverse_trigonometric_functions) of `x`.
192
+ #
193
+ # * Domain: <code>[-1, -1]</code>.
194
+ # * Range: <code>[-PI/2, PI/2]</code>.
195
+ #
196
+ # Examples:
197
+ #
198
+ # asin(-1.0) # => -1.5707963267948966 # -PI/2
199
+ # asin(0.0) # => 0.0
200
+ # asin(1.0) # => 1.5707963267948966 # PI/2
201
+ #
202
+ def self.asin: (double x) -> Float
203
+
204
+ # <!--
205
+ # rdoc-file=math.c
206
+ # - Math.asinh(x) -> float
207
+ # -->
208
+ # Returns the [inverse hyperbolic
209
+ # sine](https://en.wikipedia.org/wiki/Inverse_hyperbolic_functions) of `x`.
210
+ #
211
+ # * Domain: <code>[-INFINITY, INFINITY]</code>.
212
+ # * Range: <code>[-INFINITY, INFINITY]</code>.
213
+ #
214
+ # Examples:
215
+ #
216
+ # asinh(-INFINITY) # => -Infinity
217
+ # asinh(0.0) # => 0.0
218
+ # asinh(INFINITY) # => Infinity
219
+ #
220
+ def self.asinh: (double x) -> Float
221
+
222
+ # <!--
223
+ # rdoc-file=math.c
224
+ # - Math.atan(x) -> Float
225
+ # -->
226
+ # Returns the [arc
227
+ # tangent](https://en.wikipedia.org/wiki/Inverse_trigonometric_functions) of
228
+ # `x`.
229
+ #
230
+ # * Domain: <code>[-INFINITY, INFINITY]</code>.
231
+ # * Range: <code>[-PI/2, PI/2] </code>.
232
+ #
233
+ # Examples:
234
+ #
235
+ # atan(-INFINITY) # => -1.5707963267948966 # -PI2
236
+ # atan(-PI) # => -1.2626272556789115
237
+ # atan(-PI/2) # => -1.0038848218538872
238
+ # atan(0.0) # => 0.0
239
+ # atan(PI/2) # => 1.0038848218538872
240
+ # atan(PI) # => 1.2626272556789115
241
+ # atan(INFINITY) # => 1.5707963267948966 # PI/2
242
+ #
243
+ def self.atan: (double x) -> Float
244
+
245
+ # <!--
246
+ # rdoc-file=math.c
247
+ # - Math.atan2(y, x) -> float
248
+ # -->
249
+ # Returns the [arc tangent](https://en.wikipedia.org/wiki/Atan2) of `y` and `x`
250
+ # in
251
+ # [radians](https://en.wikipedia.org/wiki/Trigonometric_functions#Radians_versus
252
+ # _degrees).
253
+ #
254
+ # * Domain of `y`: <code>[-INFINITY, INFINITY]</code>.
255
+ # * Domain of `x`: <code>[-INFINITY, INFINITY]</code>.
256
+ # * Range: <code>[-PI, PI]</code>.
257
+ #
258
+ # Examples:
259
+ #
260
+ # atan2(-1.0, -1.0) # => -2.356194490192345 # -3*PI/4
261
+ # atan2(-1.0, 0.0) # => -1.5707963267948966 # -PI/2
262
+ # atan2(-1.0, 1.0) # => -0.7853981633974483 # -PI/4
263
+ # atan2(0.0, -1.0) # => 3.141592653589793 # PI
264
+ #
265
+ def self.atan2: (double y, double x) -> Float
266
+
267
+ # <!--
268
+ # rdoc-file=math.c
269
+ # - Math.atanh(x) -> float
270
+ # -->
271
+ # Returns the [inverse hyperbolic
272
+ # tangent](https://en.wikipedia.org/wiki/Inverse_hyperbolic_functions) of `x`.
273
+ #
274
+ # * Domain: <code>[-1, 1]</code>.
275
+ # * Range: <code>[-INFINITY, INFINITY]</code>.
276
+ #
277
+ # Examples:
278
+ #
279
+ # atanh(-1.0) # => -Infinity
280
+ # atanh(0.0) # => 0.0
281
+ # atanh(1.0) # => Infinity
282
+ #
283
+ def self.atanh: (double x) -> Float
284
+
285
+ # <!--
286
+ # rdoc-file=math.c
287
+ # - Math.cbrt(x) -> float
288
+ # -->
289
+ # Returns the [cube root](https://en.wikipedia.org/wiki/Cube_root) of `x`.
290
+ #
291
+ # * Domain: <code>[-INFINITY, INFINITY]</code>.
292
+ # * Range: <code>[-INFINITY, INFINITY]</code>.
293
+ #
294
+ # Examples:
295
+ #
296
+ # cbrt(-INFINITY) # => -Infinity
297
+ # cbrt(-27.0) # => -3.0
298
+ # cbrt(-8.0) # => -2.0
299
+ # cbrt(-2.0) # => -1.2599210498948732
300
+ # cbrt(1.0) # => 1.0
301
+ # cbrt(0.0) # => 0.0
302
+ # cbrt(1.0) # => 1.0
303
+ # cbrt(2.0) # => 1.2599210498948732
304
+ # cbrt(8.0) # => 2.0
305
+ # cbrt(27.0) # => 3.0
306
+ # cbrt(INFINITY) # => Infinity
307
+ #
308
+ def self.cbrt: (double x) -> Float
309
+
310
+ # <!--
311
+ # rdoc-file=math.c
312
+ # - Math.cos(x) -> float
313
+ # -->
314
+ # Returns the [cosine](https://en.wikipedia.org/wiki/Sine_and_cosine) of `x` in
315
+ # [radians](https://en.wikipedia.org/wiki/Trigonometric_functions#Radians_versus
316
+ # _degrees).
317
+ #
318
+ # * Domain: <code>(-INFINITY, INFINITY)</code>.
319
+ # * Range: <code>[-1.0, 1.0]</code>.
320
+ #
321
+ # Examples:
322
+ #
323
+ # cos(-PI) # => -1.0
324
+ # cos(-PI/2) # => 6.123031769111886e-17 # 0.0000000000000001
325
+ # cos(0.0) # => 1.0
326
+ # cos(PI/2) # => 6.123031769111886e-17 # 0.0000000000000001
327
+ # cos(PI) # => -1.0
328
+ #
329
+ def self.cos: (double x) -> Float
330
+
331
+ # <!--
332
+ # rdoc-file=math.c
333
+ # - Math.cosh(x) -> float
334
+ # -->
335
+ # Returns the [hyperbolic
336
+ # cosine](https://en.wikipedia.org/wiki/Hyperbolic_functions) of `x` in
337
+ # [radians](https://en.wikipedia.org/wiki/Trigonometric_functions#Radians_versus
338
+ # _degrees).
339
+ #
340
+ # * Domain: <code>[-INFINITY, INFINITY]</code>.
341
+ # * Range: <code>[1, INFINITY]</code>.
342
+ #
343
+ # Examples:
344
+ #
345
+ # cosh(-INFINITY) # => Infinity
346
+ # cosh(0.0) # => 1.0
347
+ # cosh(INFINITY) # => Infinity
348
+ #
349
+ def self.cosh: (double x) -> Float
350
+
351
+ # <!--
352
+ # rdoc-file=math.c
353
+ # - Math.erf(x) -> float
354
+ # -->
355
+ # Returns the value of the [Gauss error
356
+ # function](https://en.wikipedia.org/wiki/Error_function) for `x`.
357
+ #
358
+ # * Domain: <code>[-INFINITY, INFINITY]</code>.
359
+ # * Range: <code>[-1, 1]</code>.
360
+ #
361
+ # Examples:
362
+ #
363
+ # erf(-INFINITY) # => -1.0
364
+ # erf(0.0) # => 0.0
365
+ # erf(INFINITY) # => 1.0
366
+ #
367
+ # Related: Math.erfc.
368
+ #
369
+ def self.erf: (double x) -> Float
370
+
371
+ # <!--
372
+ # rdoc-file=math.c
373
+ # - Math.erfc(x) -> Float
374
+ # -->
375
+ # Returns the value of the [complementary error
376
+ # function](https://en.wikipedia.org/wiki/Error_function#Complementary_error_fun
377
+ # ction) for `x`.
378
+ #
379
+ # * Domain: <code>[-INFINITY, INFINITY]</code>.
380
+ # * Range: <code>[0, 2]</code>.
381
+ #
382
+ # Examples:
383
+ #
384
+ # erfc(-INFINITY) # => 2.0
385
+ # erfc(0.0) # => 1.0
386
+ # erfc(INFINITY) # => 0.0
387
+ #
388
+ # Related: Math.erf.
389
+ #
390
+ def self.erfc: (double x) -> Float
391
+
392
+ # <!--
393
+ # rdoc-file=math.c
394
+ # - Math.exp(x) -> float
395
+ # -->
396
+ # Returns `e` raised to the `x` power.
397
+ #
398
+ # * Domain: <code>[-INFINITY, INFINITY]</code>.
399
+ # * Range: <code>[0, INFINITY]</code>.
400
+ #
401
+ # Examples:
402
+ #
403
+ # exp(-INFINITY) # => 0.0
404
+ # exp(-1.0) # => 0.36787944117144233 # 1.0/E
405
+ # exp(0.0) # => 1.0
406
+ # exp(0.5) # => 1.6487212707001282 # sqrt(E)
407
+ # exp(1.0) # => 2.718281828459045 # E
408
+ # exp(2.0) # => 7.38905609893065 # E**2
409
+ # exp(INFINITY) # => Infinity
410
+ #
411
+ def self.exp: (double x) -> Float
412
+
413
+ # <!--
414
+ # rdoc-file=math.c
415
+ # - Math.expm1(x) -> float
416
+ # -->
417
+ # Returns "exp(x) - 1", `e` raised to the `x` power, minus 1.
418
+ #
419
+ # * Domain: <code>[-INFINITY, INFINITY]</code>.
420
+ # * Range: <code>[-1.0, INFINITY]</code>.
421
+ #
422
+ # Examples:
423
+ #
424
+ # expm1(-INFINITY) # => 0.0
425
+ # expm1(-1.0) # => -0.6321205588285577 # 1.0/E - 1
426
+ # expm1(0.0) # => 0.0
427
+ # expm1(0.5) # => 0.6487212707001282 # sqrt(E) - 1
428
+ # expm1(1.0) # => 1.718281828459045 # E - 1
429
+ # expm1(2.0) # => 6.38905609893065 # E**2 - 1
430
+ # expm1(INFINITY) # => Infinity
431
+ #
432
+ def self.expm1: (double x) -> Float
433
+
434
+ # <!--
435
+ # rdoc-file=math.c
436
+ # - Math.frexp(x) -> [fraction, exponent]
437
+ # -->
438
+ # Returns a 2-element array containing the normalized signed float `fraction`
439
+ # and integer `exponent` of `x` such that:
440
+ #
441
+ # x = fraction * 2**exponent
442
+ #
443
+ # See [IEEE 754 double-precision binary floating-point format:
444
+ # binary64](https://en.wikipedia.org/wiki/Double-precision_floating-point_format
445
+ # #IEEE_754_double-precision_binary_floating-point_format:_binary64).
446
+ #
447
+ # * Domain: <code>[-INFINITY, INFINITY]</code>.
448
+ # * Range <code>[-INFINITY, INFINITY]</code>.
449
+ #
450
+ # Examples:
451
+ #
452
+ # frexp(-INFINITY) # => [-Infinity, -1]
453
+ # frexp(-2.0) # => [-0.5, 2]
454
+ # frexp(-1.0) # => [-0.5, 1]
455
+ # frexp(0.0) # => [0.0, 0]
456
+ # frexp(1.0) # => [0.5, 1]
457
+ # frexp(2.0) # => [0.5, 2]
458
+ # frexp(INFINITY) # => [Infinity, -1]
459
+ #
460
+ # Related: Math.ldexp (inverse of Math.frexp).
461
+ #
462
+ def self.frexp: (double x) -> [Float, Integer]
463
+
464
+ # <!--
465
+ # rdoc-file=math.c
466
+ # - Math.gamma(x) -> float
467
+ # -->
468
+ # Returns the value of the [gamma
469
+ # function](https://en.wikipedia.org/wiki/Gamma_function) for `x`.
470
+ #
471
+ # * Domain: <code>(-INFINITY, INFINITY]</code> excluding negative integers.
472
+ # * Range: <code>[-INFINITY, INFINITY]</code>.
473
+ #
474
+ # Examples:
475
+ #
476
+ # gamma(-2.5) # => -0.9453087204829431
477
+ # gamma(-1.5) # => 2.3632718012073513
478
+ # gamma(-0.5) # => -3.5449077018110375
479
+ # gamma(0.0) # => Infinity
480
+ # gamma(1.0) # => 1.0
481
+ # gamma(2.0) # => 1.0
482
+ # gamma(3.0) # => 2.0
483
+ # gamma(4.0) # => 6.0
484
+ # gamma(5.0) # => 24.0
485
+ #
486
+ # Related: Math.lgamma.
487
+ #
488
+ def self.gamma: (double x) -> Float
489
+
490
+ # <!--
491
+ # rdoc-file=math.c
492
+ # - Math.hypot(a, b) -> float
493
+ # -->
494
+ # Returns <code>sqrt(a**2 + b**2)</code>, which is the length of the longest
495
+ # side `c` (the hypotenuse) of the right triangle whose other sides have lengths
496
+ # `a` and `b`.
497
+ #
498
+ # * Domain of `a`: <code>[-INFINITY, INFINITY]</code>.
499
+ # * Domain of +ab: <code>[-INFINITY, INFINITY]</code>.
500
+ # * Range: <code>[0, INFINITY]</code>.
501
+ #
502
+ # Examples:
503
+ #
504
+ # hypot(0.0, 1.0) # => 1.0
505
+ # hypot(1.0, 1.0) # => 1.4142135623730951 # sqrt(2.0)
506
+ # hypot(3.0, 4.0) # => 5.0
507
+ # hypot(5.0, 12.0) # => 13.0
508
+ # hypot(1.0, sqrt(3.0)) # => 1.9999999999999998 # Near 2.0
509
+ #
510
+ # Note that if either argument is `INFINITY` or <code>-INFINITY</code>, the
511
+ # result is `Infinity`.
512
+ #
513
+ def self.hypot: (double x, double y) -> Float
514
+
515
+ # <!--
516
+ # rdoc-file=math.c
517
+ # - Math.ldexp(fraction, exponent) -> float
518
+ # -->
519
+ # Returns the value of <code>fraction * 2**exponent</code>.
520
+ #
521
+ # * Domain of `fraction`: <code>[0.0, 1.0)</code>.
522
+ # * Domain of `exponent`: <code>[0, 1024]</code> (larger values are equivalent
523
+ # to 1024).
524
+ #
525
+ # See [IEEE 754 double-precision binary floating-point format:
526
+ # binary64](https://en.wikipedia.org/wiki/Double-precision_floating-point_format
527
+ # #IEEE_754_double-precision_binary_floating-point_format:_binary64).
528
+ #
529
+ # Examples:
530
+ #
531
+ # ldexp(-INFINITY, -1) # => -Infinity
532
+ # ldexp(-0.5, 2) # => -2.0
533
+ # ldexp(-0.5, 1) # => -1.0
534
+ # ldexp(0.0, 0) # => 0.0
535
+ # ldexp(-0.5, 1) # => 1.0
536
+ # ldexp(-0.5, 2) # => 2.0
537
+ # ldexp(INFINITY, -1) # => Infinity
538
+ #
539
+ # Related: Math.frexp (inverse of Math.ldexp).
540
+ #
541
+ def self.ldexp: (double fraction, int exponent) -> Float
542
+
543
+ # <!--
544
+ # rdoc-file=math.c
545
+ # - Math.lgamma(x) -> [float, -1 or 1]
546
+ # -->
547
+ # Returns a 2-element array equivalent to:
548
+ #
549
+ # [Math.log(Math.gamma(x).abs), Math.gamma(x) < 0 ? -1 : 1]
550
+ #
551
+ # See [log gamma
552
+ # function](https://en.wikipedia.org/wiki/Gamma_function#Log-gamma_function).
553
+ #
554
+ # * Domain: <code>(-INFINITY, INFINITY]</code>.
555
+ # * Range of first element: <code>(-INFINITY, INFINITY]</code>.
556
+ # * Second element is -1 or 1.
557
+ #
558
+ # Examples:
559
+ #
560
+ # lgamma(-4.0) # => [Infinity, -1]
561
+ # lgamma(-3.0) # => [Infinity, -1]
562
+ # lgamma(-2.0) # => [Infinity, -1]
563
+ # lgamma(-1.0) # => [Infinity, -1]
564
+ # lgamma(0.0) # => [Infinity, 1]
565
+ #
566
+ # lgamma(1.0) # => [0.0, 1]
567
+ # lgamma(2.0) # => [0.0, 1]
568
+ # lgamma(3.0) # => [0.6931471805599436, 1]
569
+ # lgamma(4.0) # => [1.7917594692280545, 1]
570
+ #
571
+ # lgamma(-2.5) # => [-0.05624371649767279, -1]
572
+ # lgamma(-1.5) # => [0.8600470153764797, 1]
573
+ # lgamma(-0.5) # => [1.265512123484647, -1]
574
+ # lgamma(0.5) # => [0.5723649429247004, 1]
575
+ # lgamma(1.5) # => [-0.12078223763524676, 1]
576
+ # lgamma(2.5) # => [0.2846828704729205, 1]
577
+ #
578
+ # Related: Math.gamma.
579
+ #
580
+ def self.lgamma: (double x) -> [Float, -1 | 1]
581
+
582
+ # <!--
583
+ # rdoc-file=math.c
584
+ # - Math.log(x, base = Math::E) -> Float
585
+ # -->
586
+ # Returns the base `base` [logarithm](https://en.wikipedia.org/wiki/Logarithm)
587
+ # of `x`.
588
+ #
589
+ # * Domain: <code>[0, INFINITY]</code>.
590
+ # * Range: <code>[-INFINITY, INFINITY)]</code>.
591
+ #
592
+ # Examples:
593
+ #
594
+ # log(0.0) # => -Infinity
595
+ # log(1.0) # => 0.0
596
+ # log(E) # => 1.0
597
+ # log(INFINITY) # => Infinity
598
+ #
599
+ # log(0.0, 2.0) # => -Infinity
600
+ # log(1.0, 2.0) # => 0.0
601
+ # log(2.0, 2.0) # => 1.0
602
+ #
603
+ # log(0.0, 10.0) # => -Infinity
604
+ # log(1.0, 10.0) # => 0.0
605
+ # log(10.0, 10.0) # => 1.0
606
+ #
607
+ def self.log: (double x, ?double base) -> Float
608
+
609
+ # <!--
610
+ # rdoc-file=math.c
611
+ # - Math.log10(x) -> float
612
+ # -->
613
+ # Returns the base 10 [logarithm](https://en.wikipedia.org/wiki/Logarithm) of
614
+ # `x`.
615
+ #
616
+ # * Domain: <code>[0, INFINITY]</code>.
617
+ # * Range: <code>[-INFINITY, INFINITY]</code>.
618
+ #
619
+ # Examples:
620
+ #
621
+ # log10(0.0) # => -Infinity
622
+ # log10(1.0) # => 0.0
623
+ # log10(10.0) # => 1.0
624
+ # log10(INFINITY) # => Infinity
625
+ #
626
+ def self.log10: (double x) -> Float
627
+
628
+ # <!--
629
+ # rdoc-file=math.c
630
+ # - Math.log1p(x) -> float
631
+ # -->
632
+ # Returns "log(x + 1)", the base E
633
+ # [logarithm](https://en.wikipedia.org/wiki/Logarithm) of (`x` + 1).
634
+ #
635
+ # * Domain: <code>[-1, INFINITY]</code>.
636
+ # * Range: <code>[-INFINITY, INFINITY]</code>.
637
+ #
638
+ # Examples:
639
+ #
640
+ # log1p(-1.0) # => -Infinity
641
+ # log1p(0.0) # => 0.0
642
+ # log1p(E - 1) # => 1.0
643
+ # log1p(INFINITY) # => Infinity
644
+ #
645
+ def self.log1p: (double x) -> Float
646
+
647
+ # <!--
648
+ # rdoc-file=math.c
649
+ # - Math.log2(x) -> float
650
+ # -->
651
+ # Returns the base 2 [logarithm](https://en.wikipedia.org/wiki/Logarithm) of
652
+ # `x`.
653
+ #
654
+ # * Domain: <code>[0, INFINITY]</code>.
655
+ # * Range: <code>[-INFINITY, INFINITY]</code>.
656
+ #
657
+ # Examples:
658
+ #
659
+ # log2(0.0) # => -Infinity
660
+ # log2(1.0) # => 0.0
661
+ # log2(2.0) # => 1.0
662
+ # log2(INFINITY) # => Infinity
663
+ #
664
+ def self.log2: (double x) -> Float
665
+
666
+ # <!--
667
+ # rdoc-file=math.c
668
+ # - Math.sin(x) -> float
669
+ # -->
670
+ # Returns the [sine](https://en.wikipedia.org/wiki/Sine_and_cosine) of `x` in
671
+ # [radians](https://en.wikipedia.org/wiki/Trigonometric_functions#Radians_versus
672
+ # _degrees).
673
+ #
674
+ # * Domain: <code>(-INFINITY, INFINITY)</code>.
675
+ # * Range: <code>[-1.0, 1.0]</code>.
676
+ #
677
+ # Examples:
678
+ #
679
+ # sin(-PI) # => -1.2246063538223773e-16 # -0.0000000000000001
680
+ # sin(-PI/2) # => -1.0
681
+ # sin(0.0) # => 0.0
682
+ # sin(PI/2) # => 1.0
683
+ # sin(PI) # => 1.2246063538223773e-16 # 0.0000000000000001
684
+ #
685
+ def self.sin: (double x) -> Float
686
+
687
+ # <!--
688
+ # rdoc-file=math.c
689
+ # - Math.sinh(x) -> float
690
+ # -->
691
+ # Returns the [hyperbolic
692
+ # sine](https://en.wikipedia.org/wiki/Hyperbolic_functions) of `x` in
693
+ # [radians](https://en.wikipedia.org/wiki/Trigonometric_functions#Radians_versus
694
+ # _degrees).
695
+ #
696
+ # * Domain: <code>[-INFINITY, INFINITY]</code>.
697
+ # * Range: <code>[-INFINITY, INFINITY]</code>.
698
+ #
699
+ # Examples:
700
+ #
701
+ # sinh(-INFINITY) # => -Infinity
702
+ # sinh(0.0) # => 0.0
703
+ # sinh(INFINITY) # => Infinity
704
+ #
705
+ def self.sinh: (double x) -> Float
706
+
707
+ # <!--
708
+ # rdoc-file=math.c
709
+ # - Math.sqrt(x) -> float
710
+ # -->
711
+ # Returns the principal (non-negative) [square
712
+ # root](https://en.wikipedia.org/wiki/Square_root) of `x`.
713
+ #
714
+ # * Domain: <code>[0, INFINITY]</code>.
715
+ # * Range: <code>[0, INFINITY]</code>.
716
+ #
717
+ # Examples:
718
+ #
719
+ # sqrt(0.0) # => 0.0
720
+ # sqrt(0.5) # => 0.7071067811865476
721
+ # sqrt(1.0) # => 1.0
722
+ # sqrt(2.0) # => 1.4142135623730951
723
+ # sqrt(4.0) # => 2.0
724
+ # sqrt(9.0) # => 3.0
725
+ # sqrt(INFINITY) # => Infinity
726
+ #
727
+ def self.sqrt: (double x) -> Float
728
+
729
+ # <!--
730
+ # rdoc-file=math.c
731
+ # - Math.tan(x) -> float
732
+ # -->
733
+ # Returns the [tangent](https://en.wikipedia.org/wiki/Trigonometric_functions)
734
+ # of `x` in
735
+ # [radians](https://en.wikipedia.org/wiki/Trigonometric_functions#Radians_versus
736
+ # _degrees).
737
+ #
738
+ # * Domain: <code>(-INFINITY, INFINITY)</code>.
739
+ # * Range: <code>(-INFINITY, INFINITY)</code>.
740
+ #
741
+ # Examples:
742
+ #
743
+ # tan(-PI) # => 1.2246467991473532e-16 # -0.0000000000000001
744
+ # tan(-PI/2) # => -1.633123935319537e+16 # -16331239353195370.0
745
+ # tan(0.0) # => 0.0
746
+ # tan(PI/2) # => 1.633123935319537e+16 # 16331239353195370.0
747
+ # tan(PI) # => -1.2246467991473532e-16 # -0.0000000000000001
748
+ #
749
+ def self.tan: (double x) -> Float
750
+
751
+ # <!--
752
+ # rdoc-file=math.c
753
+ # - Math.tanh(x) -> float
754
+ # -->
755
+ # Returns the [hyperbolic
756
+ # tangent](https://en.wikipedia.org/wiki/Hyperbolic_functions) of `x` in
757
+ # [radians](https://en.wikipedia.org/wiki/Trigonometric_functions#Radians_versus
758
+ # _degrees).
759
+ #
760
+ # * Domain: <code>[-INFINITY, INFINITY]</code>.
761
+ # * Range: <code>[-1, 1]</code>.
762
+ #
763
+ # Examples:
764
+ #
765
+ # tanh(-INFINITY) # => -1.0
766
+ # tanh(0.0) # => 0.0
767
+ # tanh(INFINITY) # => 1.0
768
+ #
769
+ def self.tanh: (double x) -> Float
770
+ end