rbs-relaxed 3.9.0.1

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 (484) hide show
  1. checksums.yaml +7 -0
  2. data/.github/dependabot.yml +22 -0
  3. data/.github/workflows/comments.yml +35 -0
  4. data/.github/workflows/dependabot.yml +30 -0
  5. data/.github/workflows/ruby.yml +82 -0
  6. data/.github/workflows/typecheck.yml +38 -0
  7. data/.github/workflows/windows.yml +43 -0
  8. data/.gitignore +23 -0
  9. data/.rubocop.yml +68 -0
  10. data/BSDL +22 -0
  11. data/CHANGELOG.md +1868 -0
  12. data/COPYING +56 -0
  13. data/README.md +203 -0
  14. data/Rakefile +417 -0
  15. data/Steepfile +44 -0
  16. data/config.yml +313 -0
  17. data/core/array.rbs +4062 -0
  18. data/core/basic_object.rbs +375 -0
  19. data/core/binding.rbs +150 -0
  20. data/core/builtin.rbs +277 -0
  21. data/core/class.rbs +220 -0
  22. data/core/comparable.rbs +171 -0
  23. data/core/complex.rbs +786 -0
  24. data/core/constants.rbs +96 -0
  25. data/core/data.rbs +415 -0
  26. data/core/dir.rbs +981 -0
  27. data/core/encoding.rbs +1371 -0
  28. data/core/enumerable.rbs +2405 -0
  29. data/core/enumerator/product.rbs +92 -0
  30. data/core/enumerator.rbs +630 -0
  31. data/core/env.rbs +6 -0
  32. data/core/errno.rbs +673 -0
  33. data/core/errors.rbs +760 -0
  34. data/core/exception.rbs +485 -0
  35. data/core/false_class.rbs +82 -0
  36. data/core/fiber.rbs +550 -0
  37. data/core/fiber_error.rbs +11 -0
  38. data/core/file.rbs +2936 -0
  39. data/core/file_test.rbs +331 -0
  40. data/core/float.rbs +1151 -0
  41. data/core/gc.rbs +644 -0
  42. data/core/global_variables.rbs +184 -0
  43. data/core/hash.rbs +1861 -0
  44. data/core/integer.rbs +1413 -0
  45. data/core/io/buffer.rbs +984 -0
  46. data/core/io/wait.rbs +70 -0
  47. data/core/io.rbs +3406 -0
  48. data/core/kernel.rbs +3096 -0
  49. data/core/marshal.rbs +207 -0
  50. data/core/match_data.rbs +635 -0
  51. data/core/math.rbs +729 -0
  52. data/core/method.rbs +386 -0
  53. data/core/module.rbs +1704 -0
  54. data/core/nil_class.rbs +209 -0
  55. data/core/numeric.rbs +818 -0
  56. data/core/object.rbs +110 -0
  57. data/core/object_space/weak_key_map.rbs +166 -0
  58. data/core/object_space.rbs +190 -0
  59. data/core/proc.rbs +868 -0
  60. data/core/process.rbs +2296 -0
  61. data/core/ractor.rbs +1068 -0
  62. data/core/random.rbs +237 -0
  63. data/core/range.rbs +1107 -0
  64. data/core/rational.rbs +531 -0
  65. data/core/rb_config.rbs +88 -0
  66. data/core/rbs/unnamed/argf.rbs +1229 -0
  67. data/core/rbs/unnamed/env_class.rbs +1209 -0
  68. data/core/rbs/unnamed/random.rbs +293 -0
  69. data/core/refinement.rbs +59 -0
  70. data/core/regexp.rbs +1930 -0
  71. data/core/ruby_vm.rbs +765 -0
  72. data/core/rubygems/basic_specification.rbs +6 -0
  73. data/core/rubygems/config_file.rbs +38 -0
  74. data/core/rubygems/dependency_installer.rbs +6 -0
  75. data/core/rubygems/errors.rbs +176 -0
  76. data/core/rubygems/installer.rbs +15 -0
  77. data/core/rubygems/path_support.rbs +6 -0
  78. data/core/rubygems/platform.rbs +7 -0
  79. data/core/rubygems/request_set.rbs +49 -0
  80. data/core/rubygems/requirement.rbs +148 -0
  81. data/core/rubygems/rubygems.rbs +1171 -0
  82. data/core/rubygems/source_list.rbs +15 -0
  83. data/core/rubygems/specification.rbs +23 -0
  84. data/core/rubygems/stream_ui.rbs +5 -0
  85. data/core/rubygems/uninstaller.rbs +10 -0
  86. data/core/rubygems/version.rbs +294 -0
  87. data/core/set.rbs +621 -0
  88. data/core/signal.rbs +100 -0
  89. data/core/string.rbs +3583 -0
  90. data/core/struct.rbs +667 -0
  91. data/core/symbol.rbs +475 -0
  92. data/core/thread.rbs +1765 -0
  93. data/core/thread_group.rbs +79 -0
  94. data/core/time.rbs +1762 -0
  95. data/core/trace_point.rbs +477 -0
  96. data/core/true_class.rbs +98 -0
  97. data/core/unbound_method.rbs +329 -0
  98. data/core/warning.rbs +87 -0
  99. data/docs/CONTRIBUTING.md +106 -0
  100. data/docs/architecture.md +110 -0
  101. data/docs/collection.md +192 -0
  102. data/docs/data_and_struct.md +86 -0
  103. data/docs/gem.md +57 -0
  104. data/docs/rbs_by_example.md +309 -0
  105. data/docs/repo.md +125 -0
  106. data/docs/sigs.md +167 -0
  107. data/docs/stdlib.md +147 -0
  108. data/docs/syntax.md +910 -0
  109. data/docs/tools.md +17 -0
  110. data/exe/rbs +7 -0
  111. data/ext/rbs_extension/extconf.rb +15 -0
  112. data/ext/rbs_extension/lexer.c +2728 -0
  113. data/ext/rbs_extension/lexer.h +179 -0
  114. data/ext/rbs_extension/lexer.re +147 -0
  115. data/ext/rbs_extension/lexstate.c +175 -0
  116. data/ext/rbs_extension/location.c +325 -0
  117. data/ext/rbs_extension/location.h +85 -0
  118. data/ext/rbs_extension/main.c +33 -0
  119. data/ext/rbs_extension/parser.c +2973 -0
  120. data/ext/rbs_extension/parser.h +18 -0
  121. data/ext/rbs_extension/parserstate.c +397 -0
  122. data/ext/rbs_extension/parserstate.h +163 -0
  123. data/ext/rbs_extension/rbs_extension.h +31 -0
  124. data/ext/rbs_extension/unescape.c +32 -0
  125. data/goodcheck.yml +91 -0
  126. data/include/rbs/constants.h +82 -0
  127. data/include/rbs/ruby_objs.h +72 -0
  128. data/include/rbs/util/rbs_constant_pool.h +219 -0
  129. data/include/rbs.h +7 -0
  130. data/lib/rbs/ancestor_graph.rb +92 -0
  131. data/lib/rbs/annotate/annotations.rb +199 -0
  132. data/lib/rbs/annotate/formatter.rb +92 -0
  133. data/lib/rbs/annotate/rdoc_annotator.rb +400 -0
  134. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  135. data/lib/rbs/annotate.rb +8 -0
  136. data/lib/rbs/ast/annotation.rb +29 -0
  137. data/lib/rbs/ast/comment.rb +29 -0
  138. data/lib/rbs/ast/declarations.rb +467 -0
  139. data/lib/rbs/ast/directives.rb +49 -0
  140. data/lib/rbs/ast/members.rb +451 -0
  141. data/lib/rbs/ast/type_param.rb +225 -0
  142. data/lib/rbs/ast/visitor.rb +137 -0
  143. data/lib/rbs/buffer.rb +67 -0
  144. data/lib/rbs/builtin_names.rb +58 -0
  145. data/lib/rbs/cli/colored_io.rb +48 -0
  146. data/lib/rbs/cli/diff.rb +83 -0
  147. data/lib/rbs/cli/validate.rb +357 -0
  148. data/lib/rbs/cli.rb +1223 -0
  149. data/lib/rbs/collection/cleaner.rb +38 -0
  150. data/lib/rbs/collection/config/lockfile.rb +92 -0
  151. data/lib/rbs/collection/config/lockfile_generator.rb +218 -0
  152. data/lib/rbs/collection/config.rb +81 -0
  153. data/lib/rbs/collection/installer.rb +32 -0
  154. data/lib/rbs/collection/sources/base.rb +14 -0
  155. data/lib/rbs/collection/sources/git.rb +258 -0
  156. data/lib/rbs/collection/sources/local.rb +81 -0
  157. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  158. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  159. data/lib/rbs/collection/sources.rb +38 -0
  160. data/lib/rbs/collection.rb +16 -0
  161. data/lib/rbs/constant.rb +28 -0
  162. data/lib/rbs/definition.rb +401 -0
  163. data/lib/rbs/definition_builder/ancestor_builder.rb +620 -0
  164. data/lib/rbs/definition_builder/method_builder.rb +254 -0
  165. data/lib/rbs/definition_builder.rb +845 -0
  166. data/lib/rbs/diff.rb +125 -0
  167. data/lib/rbs/environment/use_map.rb +77 -0
  168. data/lib/rbs/environment.rb +829 -0
  169. data/lib/rbs/environment_loader.rb +173 -0
  170. data/lib/rbs/environment_walker.rb +155 -0
  171. data/lib/rbs/errors.rb +645 -0
  172. data/lib/rbs/factory.rb +18 -0
  173. data/lib/rbs/file_finder.rb +28 -0
  174. data/lib/rbs/location_aux.rb +138 -0
  175. data/lib/rbs/locator.rb +243 -0
  176. data/lib/rbs/method_type.rb +143 -0
  177. data/lib/rbs/namespace.rb +125 -0
  178. data/lib/rbs/parser/lex_result.rb +15 -0
  179. data/lib/rbs/parser/token.rb +23 -0
  180. data/lib/rbs/parser_aux.rb +114 -0
  181. data/lib/rbs/prototype/helpers.rb +140 -0
  182. data/lib/rbs/prototype/node_usage.rb +99 -0
  183. data/lib/rbs/prototype/rb.rb +840 -0
  184. data/lib/rbs/prototype/rbi.rb +641 -0
  185. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  186. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  187. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  188. data/lib/rbs/prototype/runtime.rb +667 -0
  189. data/lib/rbs/repository.rb +127 -0
  190. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  191. data/lib/rbs/resolver/type_name_resolver.rb +91 -0
  192. data/lib/rbs/sorter.rb +198 -0
  193. data/lib/rbs/substitution.rb +83 -0
  194. data/lib/rbs/subtractor.rb +201 -0
  195. data/lib/rbs/test/errors.rb +80 -0
  196. data/lib/rbs/test/guaranteed.rb +30 -0
  197. data/lib/rbs/test/hook.rb +212 -0
  198. data/lib/rbs/test/observer.rb +19 -0
  199. data/lib/rbs/test/setup.rb +84 -0
  200. data/lib/rbs/test/setup_helper.rb +50 -0
  201. data/lib/rbs/test/tester.rb +167 -0
  202. data/lib/rbs/test/type_check.rb +435 -0
  203. data/lib/rbs/test.rb +112 -0
  204. data/lib/rbs/type_alias_dependency.rb +100 -0
  205. data/lib/rbs/type_alias_regularity.rb +126 -0
  206. data/lib/rbs/type_name.rb +109 -0
  207. data/lib/rbs/types.rb +1596 -0
  208. data/lib/rbs/unit_test/convertibles.rb +176 -0
  209. data/lib/rbs/unit_test/spy.rb +138 -0
  210. data/lib/rbs/unit_test/type_assertions.rb +347 -0
  211. data/lib/rbs/unit_test/with_aliases.rb +143 -0
  212. data/lib/rbs/unit_test.rb +6 -0
  213. data/lib/rbs/validator.rb +186 -0
  214. data/lib/rbs/variance_calculator.rb +189 -0
  215. data/lib/rbs/vendorer.rb +71 -0
  216. data/lib/rbs/version.rb +5 -0
  217. data/lib/rbs/writer.rb +424 -0
  218. data/lib/rbs.rb +94 -0
  219. data/lib/rdoc/discover.rb +20 -0
  220. data/lib/rdoc_plugin/parser.rb +163 -0
  221. data/rbs-relaxed.gemspec +48 -0
  222. data/schema/annotation.json +14 -0
  223. data/schema/comment.json +26 -0
  224. data/schema/decls.json +326 -0
  225. data/schema/function.json +87 -0
  226. data/schema/location.json +56 -0
  227. data/schema/members.json +266 -0
  228. data/schema/methodType.json +50 -0
  229. data/schema/typeParam.json +36 -0
  230. data/schema/types.json +317 -0
  231. data/sig/ancestor_builder.rbs +163 -0
  232. data/sig/ancestor_graph.rbs +60 -0
  233. data/sig/annotate/annotations.rbs +102 -0
  234. data/sig/annotate/formatter.rbs +24 -0
  235. data/sig/annotate/rdoc_annotater.rbs +82 -0
  236. data/sig/annotate/rdoc_source.rbs +30 -0
  237. data/sig/annotation.rbs +27 -0
  238. data/sig/buffer.rbs +32 -0
  239. data/sig/builtin_names.rbs +44 -0
  240. data/sig/cli/colored_io.rbs +15 -0
  241. data/sig/cli/diff.rbs +21 -0
  242. data/sig/cli/validate.rbs +43 -0
  243. data/sig/cli.rbs +87 -0
  244. data/sig/collection/cleaner.rbs +13 -0
  245. data/sig/collection/config/lockfile.rbs +74 -0
  246. data/sig/collection/config/lockfile_generator.rbs +66 -0
  247. data/sig/collection/config.rbs +46 -0
  248. data/sig/collection/installer.rbs +17 -0
  249. data/sig/collection/sources.rbs +214 -0
  250. data/sig/collection.rbs +4 -0
  251. data/sig/comment.rbs +26 -0
  252. data/sig/constant.rbs +21 -0
  253. data/sig/declarations.rbs +267 -0
  254. data/sig/definition.rbs +173 -0
  255. data/sig/definition_builder.rbs +165 -0
  256. data/sig/diff.rbs +28 -0
  257. data/sig/directives.rbs +77 -0
  258. data/sig/environment.rbs +279 -0
  259. data/sig/environment_loader.rbs +111 -0
  260. data/sig/environment_walker.rbs +65 -0
  261. data/sig/errors.rbs +405 -0
  262. data/sig/factory.rbs +5 -0
  263. data/sig/file_finder.rbs +28 -0
  264. data/sig/location.rbs +110 -0
  265. data/sig/locator.rbs +58 -0
  266. data/sig/manifest.yaml +7 -0
  267. data/sig/members.rbs +258 -0
  268. data/sig/method_builder.rbs +84 -0
  269. data/sig/method_types.rbs +58 -0
  270. data/sig/namespace.rbs +146 -0
  271. data/sig/parser.rbs +100 -0
  272. data/sig/prototype/helpers.rbs +27 -0
  273. data/sig/prototype/node_usage.rbs +20 -0
  274. data/sig/prototype/rb.rbs +96 -0
  275. data/sig/prototype/rbi.rbs +75 -0
  276. data/sig/prototype/runtime.rbs +182 -0
  277. data/sig/rbs.rbs +21 -0
  278. data/sig/rdoc/rbs.rbs +67 -0
  279. data/sig/repository.rbs +85 -0
  280. data/sig/resolver/constant_resolver.rbs +92 -0
  281. data/sig/resolver/context.rbs +34 -0
  282. data/sig/resolver/type_name_resolver.rbs +35 -0
  283. data/sig/shims/bundler.rbs +38 -0
  284. data/sig/shims/enumerable.rbs +5 -0
  285. data/sig/shims/rubygems.rbs +19 -0
  286. data/sig/sorter.rbs +41 -0
  287. data/sig/substitution.rbs +48 -0
  288. data/sig/subtractor.rbs +37 -0
  289. data/sig/test/errors.rbs +52 -0
  290. data/sig/test/guranteed.rbs +9 -0
  291. data/sig/test/type_check.rbs +19 -0
  292. data/sig/test.rbs +82 -0
  293. data/sig/type_alias_dependency.rbs +53 -0
  294. data/sig/type_alias_regularity.rbs +98 -0
  295. data/sig/type_param.rbs +110 -0
  296. data/sig/typename.rbs +79 -0
  297. data/sig/types.rbs +579 -0
  298. data/sig/unit_test/convertibles.rbs +154 -0
  299. data/sig/unit_test/spy.rbs +30 -0
  300. data/sig/unit_test/type_assertions.rbs +196 -0
  301. data/sig/unit_test/with_aliases.rbs +136 -0
  302. data/sig/use_map.rbs +35 -0
  303. data/sig/util.rbs +9 -0
  304. data/sig/validator.rbs +63 -0
  305. data/sig/variance_calculator.rbs +87 -0
  306. data/sig/vendorer.rbs +51 -0
  307. data/sig/version.rbs +3 -0
  308. data/sig/visitor.rbs +47 -0
  309. data/sig/writer.rbs +127 -0
  310. data/src/constants.c +153 -0
  311. data/src/ruby_objs.c +795 -0
  312. data/src/util/rbs_constant_pool.c +342 -0
  313. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  314. data/stdlib/abbrev/0/array.rbs +26 -0
  315. data/stdlib/base64/0/base64.rbs +355 -0
  316. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  317. data/stdlib/bigdecimal/0/big_decimal.rbs +1629 -0
  318. data/stdlib/bigdecimal-math/0/big_math.rbs +119 -0
  319. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  320. data/stdlib/cgi/0/core.rbs +1285 -0
  321. data/stdlib/cgi/0/manifest.yaml +3 -0
  322. data/stdlib/coverage/0/coverage.rbs +263 -0
  323. data/stdlib/csv/0/csv.rbs +3776 -0
  324. data/stdlib/csv/0/manifest.yaml +3 -0
  325. data/stdlib/date/0/date.rbs +1585 -0
  326. data/stdlib/date/0/date_time.rbs +616 -0
  327. data/stdlib/date/0/time.rbs +26 -0
  328. data/stdlib/dbm/0/dbm.rbs +421 -0
  329. data/stdlib/delegate/0/delegator.rbs +184 -0
  330. data/stdlib/delegate/0/kernel.rbs +47 -0
  331. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  332. data/stdlib/did_you_mean/0/did_you_mean.rbs +343 -0
  333. data/stdlib/digest/0/digest.rbs +577 -0
  334. data/stdlib/erb/0/erb.rbs +532 -0
  335. data/stdlib/etc/0/etc.rbs +865 -0
  336. data/stdlib/fileutils/0/fileutils.rbs +1734 -0
  337. data/stdlib/find/0/find.rbs +49 -0
  338. data/stdlib/forwardable/0/forwardable.rbs +268 -0
  339. data/stdlib/io-console/0/io-console.rbs +414 -0
  340. data/stdlib/ipaddr/0/ipaddr.rbs +428 -0
  341. data/stdlib/json/0/json.rbs +1916 -0
  342. data/stdlib/kconv/0/kconv.rbs +166 -0
  343. data/stdlib/logger/0/formatter.rbs +45 -0
  344. data/stdlib/logger/0/log_device.rbs +100 -0
  345. data/stdlib/logger/0/logger.rbs +796 -0
  346. data/stdlib/logger/0/manifest.yaml +2 -0
  347. data/stdlib/logger/0/period.rbs +17 -0
  348. data/stdlib/logger/0/severity.rbs +34 -0
  349. data/stdlib/minitest/0/kernel.rbs +42 -0
  350. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  351. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  352. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  353. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  354. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  355. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  356. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  357. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  358. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  359. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  360. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  361. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  362. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  363. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  364. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  365. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  366. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  367. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  368. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  369. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  370. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  371. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  372. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  373. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  374. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  375. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  376. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  377. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  378. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  379. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  380. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  381. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  382. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  383. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  384. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  385. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  386. data/stdlib/minitest/0/minitest.rbs +115 -0
  387. data/stdlib/monitor/0/monitor.rbs +363 -0
  388. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  389. data/stdlib/net-http/0/manifest.yaml +3 -0
  390. data/stdlib/net-http/0/net-http.rbs +5552 -0
  391. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  392. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  393. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  394. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  395. data/stdlib/nkf/0/nkf.rbs +402 -0
  396. data/stdlib/objspace/0/objspace.rbs +487 -0
  397. data/stdlib/observable/0/observable.rbs +217 -0
  398. data/stdlib/open-uri/0/manifest.yaml +4 -0
  399. data/stdlib/open-uri/0/open-uri.rbs +393 -0
  400. data/stdlib/open3/0/open3.rbs +147 -0
  401. data/stdlib/openssl/0/manifest.yaml +3 -0
  402. data/stdlib/openssl/0/openssl.rbs +12113 -0
  403. data/stdlib/optparse/0/optparse.rbs +1725 -0
  404. data/stdlib/pathname/0/pathname.rbs +1406 -0
  405. data/stdlib/pp/0/manifest.yaml +2 -0
  406. data/stdlib/pp/0/pp.rbs +300 -0
  407. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  408. data/stdlib/pstore/0/pstore.rbs +603 -0
  409. data/stdlib/psych/0/core_ext.rbs +12 -0
  410. data/stdlib/psych/0/dbm.rbs +237 -0
  411. data/stdlib/psych/0/manifest.yaml +3 -0
  412. data/stdlib/psych/0/psych.rbs +402 -0
  413. data/stdlib/psych/0/store.rbs +59 -0
  414. data/stdlib/pty/0/pty.rbs +237 -0
  415. data/stdlib/rdoc/0/code_object.rbs +51 -0
  416. data/stdlib/rdoc/0/comment.rbs +59 -0
  417. data/stdlib/rdoc/0/context.rbs +153 -0
  418. data/stdlib/rdoc/0/markup.rbs +117 -0
  419. data/stdlib/rdoc/0/parser.rbs +56 -0
  420. data/stdlib/rdoc/0/rdoc.rbs +391 -0
  421. data/stdlib/rdoc/0/ri.rbs +17 -0
  422. data/stdlib/rdoc/0/store.rbs +48 -0
  423. data/stdlib/rdoc/0/top_level.rbs +97 -0
  424. data/stdlib/resolv/0/manifest.yaml +3 -0
  425. data/stdlib/resolv/0/resolv.rbs +1830 -0
  426. data/stdlib/ripper/0/ripper.rbs +1648 -0
  427. data/stdlib/securerandom/0/securerandom.rbs +62 -0
  428. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  429. data/stdlib/singleton/0/singleton.rbs +131 -0
  430. data/stdlib/socket/0/addrinfo.rbs +666 -0
  431. data/stdlib/socket/0/basic_socket.rbs +590 -0
  432. data/stdlib/socket/0/constants.rbs +2295 -0
  433. data/stdlib/socket/0/ip_socket.rbs +92 -0
  434. data/stdlib/socket/0/socket.rbs +4157 -0
  435. data/stdlib/socket/0/socket_error.rbs +5 -0
  436. data/stdlib/socket/0/tcp_server.rbs +192 -0
  437. data/stdlib/socket/0/tcp_socket.rbs +79 -0
  438. data/stdlib/socket/0/udp_socket.rbs +133 -0
  439. data/stdlib/socket/0/unix_server.rbs +169 -0
  440. data/stdlib/socket/0/unix_socket.rbs +172 -0
  441. data/stdlib/stringio/0/stringio.rbs +567 -0
  442. data/stdlib/strscan/0/string_scanner.rbs +1627 -0
  443. data/stdlib/tempfile/0/tempfile.rbs +479 -0
  444. data/stdlib/time/0/time.rbs +432 -0
  445. data/stdlib/timeout/0/timeout.rbs +81 -0
  446. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  447. data/stdlib/tsort/0/cyclic.rbs +5 -0
  448. data/stdlib/tsort/0/interfaces.rbs +20 -0
  449. data/stdlib/tsort/0/tsort.rbs +409 -0
  450. data/stdlib/uri/0/common.rbs +582 -0
  451. data/stdlib/uri/0/file.rbs +118 -0
  452. data/stdlib/uri/0/ftp.rbs +13 -0
  453. data/stdlib/uri/0/generic.rbs +1108 -0
  454. data/stdlib/uri/0/http.rbs +104 -0
  455. data/stdlib/uri/0/https.rbs +14 -0
  456. data/stdlib/uri/0/ldap.rbs +230 -0
  457. data/stdlib/uri/0/ldaps.rbs +14 -0
  458. data/stdlib/uri/0/mailto.rbs +92 -0
  459. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  460. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  461. data/stdlib/uri/0/ws.rbs +13 -0
  462. data/stdlib/uri/0/wss.rbs +9 -0
  463. data/stdlib/yaml/0/manifest.yaml +2 -0
  464. data/stdlib/yaml/0/yaml.rbs +1 -0
  465. data/stdlib/zlib/0/buf_error.rbs +10 -0
  466. data/stdlib/zlib/0/data_error.rbs +10 -0
  467. data/stdlib/zlib/0/deflate.rbs +210 -0
  468. data/stdlib/zlib/0/error.rbs +20 -0
  469. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  470. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  471. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  472. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  473. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  474. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  475. data/stdlib/zlib/0/gzip_writer.rbs +166 -0
  476. data/stdlib/zlib/0/inflate.rbs +180 -0
  477. data/stdlib/zlib/0/mem_error.rbs +10 -0
  478. data/stdlib/zlib/0/need_dict.rbs +13 -0
  479. data/stdlib/zlib/0/stream_end.rbs +11 -0
  480. data/stdlib/zlib/0/stream_error.rbs +11 -0
  481. data/stdlib/zlib/0/version_error.rbs +11 -0
  482. data/stdlib/zlib/0/zlib.rbs +449 -0
  483. data/stdlib/zlib/0/zstream.rbs +200 -0
  484. metadata +532 -0
data/core/math.rbs ADDED
@@ -0,0 +1,729 @@
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, *cos(π/2)* is exactly zero, but in our computation
45
+ # `cos(PI/2)` 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 `sqrt(a**2 + b**2)` 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
+ # *produces:*
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: `[-1, 1]`.
159
+ # * Range: `[0, PI]`.
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: `[1, INFINITY]`.
177
+ # * Range: `[0, INFINITY]`.
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: `[-1, -1]`.
194
+ # * Range: `[-PI/2, PI/2]`.
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: `[-INFINITY, INFINITY]`.
212
+ # * Range: `[-INFINITY, INFINITY]`.
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: `[-INFINITY, INFINITY]`.
231
+ # * Range: `[-PI/2, PI/2] `.
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`: `[-INFINITY, INFINITY]`.
255
+ # * Domain of `x`: `[-INFINITY, INFINITY]`.
256
+ # * Range: `[-PI, PI]`.
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: `[-1, 1]`.
275
+ # * Range: `[-INFINITY, INFINITY]`.
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: `[-INFINITY, INFINITY]`.
292
+ # * Range: `[-INFINITY, INFINITY]`.
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: `(-INFINITY, INFINITY)`.
319
+ # * Range: `[-1.0, 1.0]`.
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: `[-INFINITY, INFINITY]`.
341
+ # * Range: `[1, INFINITY]`.
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: `[-INFINITY, INFINITY]`.
359
+ # * Range: `[-1, 1]`.
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: `[-INFINITY, INFINITY]`.
380
+ # * Range: `[0, 2]`.
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: `[-INFINITY, INFINITY]`.
399
+ # * Range: `[0, INFINITY]`.
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.frexp(x) -> [fraction, exponent]
416
+ # -->
417
+ # Returns a 2-element array containing the normalized signed float `fraction`
418
+ # and integer `exponent` of `x` such that:
419
+ #
420
+ # x = fraction * 2**exponent
421
+ #
422
+ # See [IEEE 754 double-precision binary floating-point format:
423
+ # binary64](https://en.wikipedia.org/wiki/Double-precision_floating-point_format
424
+ # #IEEE_754_double-precision_binary_floating-point_format:_binary64).
425
+ #
426
+ # * Domain: `[-INFINITY, INFINITY]`.
427
+ # * Range `[-INFINITY, INFINITY]`.
428
+ #
429
+ # Examples:
430
+ #
431
+ # frexp(-INFINITY) # => [-Infinity, -1]
432
+ # frexp(-2.0) # => [-0.5, 2]
433
+ # frexp(-1.0) # => [-0.5, 1]
434
+ # frexp(0.0) # => [0.0, 0]
435
+ # frexp(1.0) # => [0.5, 1]
436
+ # frexp(2.0) # => [0.5, 2]
437
+ # frexp(INFINITY) # => [Infinity, -1]
438
+ #
439
+ # Related: Math.ldexp (inverse of Math.frexp).
440
+ #
441
+ def self.frexp: (double x) -> [Float, Integer]
442
+
443
+ # <!--
444
+ # rdoc-file=math.c
445
+ # - Math.gamma(x) -> float
446
+ # -->
447
+ # Returns the value of the [gamma
448
+ # function](https://en.wikipedia.org/wiki/Gamma_function) for `x`.
449
+ #
450
+ # * Domain: `(-INFINITY, INFINITY]` excluding negative integers.
451
+ # * Range: `[-INFINITY, INFINITY]`.
452
+ #
453
+ # Examples:
454
+ #
455
+ # gamma(-2.5) # => -0.9453087204829431
456
+ # gamma(-1.5) # => 2.3632718012073513
457
+ # gamma(-0.5) # => -3.5449077018110375
458
+ # gamma(0.0) # => Infinity
459
+ # gamma(1.0) # => 1.0
460
+ # gamma(2.0) # => 1.0
461
+ # gamma(3.0) # => 2.0
462
+ # gamma(4.0) # => 6.0
463
+ # gamma(5.0) # => 24.0
464
+ #
465
+ # Related: Math.lgamma.
466
+ #
467
+ def self.gamma: (double x) -> Float
468
+
469
+ # <!--
470
+ # rdoc-file=math.c
471
+ # - Math.hypot(a, b) -> float
472
+ # -->
473
+ # Returns `sqrt(a**2 + b**2)`, which is the length of the longest side `c` (the
474
+ # hypotenuse) of the right triangle whose other sides have lengths `a` and `b`.
475
+ #
476
+ # * Domain of `a`: `[-INFINITY, INFINITY]`.
477
+ # * Domain of +ab: `[-INFINITY, INFINITY]`.
478
+ # * Range: `[0, INFINITY]`.
479
+ #
480
+ # Examples:
481
+ #
482
+ # hypot(0.0, 1.0) # => 1.0
483
+ # hypot(1.0, 1.0) # => 1.4142135623730951 # sqrt(2.0)
484
+ # hypot(3.0, 4.0) # => 5.0
485
+ # hypot(5.0, 12.0) # => 13.0
486
+ # hypot(1.0, sqrt(3.0)) # => 1.9999999999999998 # Near 2.0
487
+ #
488
+ # Note that if either argument is `INFINITY` or `-INFINITY`, the result is
489
+ # `Infinity`.
490
+ #
491
+ def self.hypot: (double x, double y) -> Float
492
+
493
+ # <!--
494
+ # rdoc-file=math.c
495
+ # - Math.ldexp(fraction, exponent) -> float
496
+ # -->
497
+ # Returns the value of `fraction * 2**exponent`.
498
+ #
499
+ # * Domain of `fraction`: `[0.0, 1.0)`.
500
+ # * Domain of `exponent`: `[0, 1024]` (larger values are equivalent to 1024).
501
+ #
502
+ # See [IEEE 754 double-precision binary floating-point format:
503
+ # binary64](https://en.wikipedia.org/wiki/Double-precision_floating-point_format
504
+ # #IEEE_754_double-precision_binary_floating-point_format:_binary64).
505
+ #
506
+ # Examples:
507
+ #
508
+ # ldexp(-INFINITY, -1) # => -Infinity
509
+ # ldexp(-0.5, 2) # => -2.0
510
+ # ldexp(-0.5, 1) # => -1.0
511
+ # ldexp(0.0, 0) # => 0.0
512
+ # ldexp(-0.5, 1) # => 1.0
513
+ # ldexp(-0.5, 2) # => 2.0
514
+ # ldexp(INFINITY, -1) # => Infinity
515
+ #
516
+ # Related: Math.frexp (inverse of Math.ldexp).
517
+ #
518
+ def self.ldexp: (double fraction, int exponent) -> Float
519
+
520
+ # <!--
521
+ # rdoc-file=math.c
522
+ # - Math.lgamma(x) -> [float, -1 or 1]
523
+ # -->
524
+ # Returns a 2-element array equivalent to:
525
+ #
526
+ # [Math.log(Math.gamma(x).abs), Math.gamma(x) < 0 ? -1 : 1]
527
+ #
528
+ # See [logarithmic gamma
529
+ # function](https://en.wikipedia.org/wiki/Gamma_function#The_log-gamma_function)
530
+ # .
531
+ #
532
+ # * Domain: `(-INFINITY, INFINITY]`.
533
+ # * Range of first element: `(-INFINITY, INFINITY]`.
534
+ # * Second element is -1 or 1.
535
+ #
536
+ # Examples:
537
+ #
538
+ # lgamma(-4.0) # => [Infinity, -1]
539
+ # lgamma(-3.0) # => [Infinity, -1]
540
+ # lgamma(-2.0) # => [Infinity, -1]
541
+ # lgamma(-1.0) # => [Infinity, -1]
542
+ # lgamma(0.0) # => [Infinity, 1]
543
+ #
544
+ # lgamma(1.0) # => [0.0, 1]
545
+ # lgamma(2.0) # => [0.0, 1]
546
+ # lgamma(3.0) # => [0.6931471805599436, 1]
547
+ # lgamma(4.0) # => [1.7917594692280545, 1]
548
+ #
549
+ # lgamma(-2.5) # => [-0.05624371649767279, -1]
550
+ # lgamma(-1.5) # => [0.8600470153764797, 1]
551
+ # lgamma(-0.5) # => [1.265512123484647, -1]
552
+ # lgamma(0.5) # => [0.5723649429247004, 1]
553
+ # lgamma(1.5) # => [-0.12078223763524676, 1]
554
+ # lgamma(2.5) # => [0.2846828704729205, 1]
555
+ #
556
+ # Related: Math.gamma.
557
+ #
558
+ def self.lgamma: (double x) -> [Float, -1 | 1]
559
+
560
+ # <!--
561
+ # rdoc-file=math.c
562
+ # - Math.log(x, base = Math::E) -> Float
563
+ # -->
564
+ # Returns the base `base` [logarithm](https://en.wikipedia.org/wiki/Logarithm)
565
+ # of `x`.
566
+ #
567
+ # * Domain: `[0, INFINITY]`.
568
+ # * Range: `[-INFINITY, INFINITY)]`.
569
+ #
570
+ # Examples:
571
+ #
572
+ # log(0.0) # => -Infinity
573
+ # log(1.0) # => 0.0
574
+ # log(E) # => 1.0
575
+ # log(INFINITY) # => Infinity
576
+ #
577
+ # log(0.0, 2.0) # => -Infinity
578
+ # log(1.0, 2.0) # => 0.0
579
+ # log(2.0, 2.0) # => 1.0
580
+ #
581
+ # log(0.0, 10.0) # => -Infinity
582
+ # log(1.0, 10.0) # => 0.0
583
+ # log(10.0, 10.0) # => 1.0
584
+ #
585
+ def self.log: (double x, ?double base) -> Float
586
+
587
+ # <!--
588
+ # rdoc-file=math.c
589
+ # - Math.log10(x) -> float
590
+ # -->
591
+ # Returns the base 10 [logarithm](https://en.wikipedia.org/wiki/Logarithm) of
592
+ # `x`.
593
+ #
594
+ # * Domain: `[0, INFINITY]`.
595
+ # * Range: `[-INFINITY, INFINITY]`.
596
+ #
597
+ # Examples:
598
+ #
599
+ # log10(0.0) # => -Infinity
600
+ # log10(1.0) # => 0.0
601
+ # log10(10.0) # => 1.0
602
+ # log10(INFINITY) # => Infinity
603
+ #
604
+ def self.log10: (double x) -> Float
605
+
606
+ # <!--
607
+ # rdoc-file=math.c
608
+ # - Math.log2(x) -> float
609
+ # -->
610
+ # Returns the base 2 [logarithm](https://en.wikipedia.org/wiki/Logarithm) of
611
+ # `x`.
612
+ #
613
+ # * Domain: `[0, INFINITY]`.
614
+ # * Range: `[-INFINITY, INFINITY]`.
615
+ #
616
+ # Examples:
617
+ #
618
+ # log2(0.0) # => -Infinity
619
+ # log2(1.0) # => 0.0
620
+ # log2(2.0) # => 1.0
621
+ # log2(INFINITY) # => Infinity
622
+ #
623
+ def self.log2: (double x) -> Float
624
+
625
+ # <!--
626
+ # rdoc-file=math.c
627
+ # - Math.sin(x) -> float
628
+ # -->
629
+ # Returns the [sine](https://en.wikipedia.org/wiki/Sine_and_cosine) of `x` in
630
+ # [radians](https://en.wikipedia.org/wiki/Trigonometric_functions#Radians_versus
631
+ # _degrees).
632
+ #
633
+ # * Domain: `(-INFINITY, INFINITY)`.
634
+ # * Range: `[-1.0, 1.0]`.
635
+ #
636
+ # Examples:
637
+ #
638
+ # sin(-PI) # => -1.2246063538223773e-16 # -0.0000000000000001
639
+ # sin(-PI/2) # => -1.0
640
+ # sin(0.0) # => 0.0
641
+ # sin(PI/2) # => 1.0
642
+ # sin(PI) # => 1.2246063538223773e-16 # 0.0000000000000001
643
+ #
644
+ def self.sin: (double x) -> Float
645
+
646
+ # <!--
647
+ # rdoc-file=math.c
648
+ # - Math.sinh(x) -> float
649
+ # -->
650
+ # Returns the [hyperbolic
651
+ # sine](https://en.wikipedia.org/wiki/Hyperbolic_functions) of `x` in
652
+ # [radians](https://en.wikipedia.org/wiki/Trigonometric_functions#Radians_versus
653
+ # _degrees).
654
+ #
655
+ # * Domain: `[-INFINITY, INFINITY]`.
656
+ # * Range: `[-INFINITY, INFINITY]`.
657
+ #
658
+ # Examples:
659
+ #
660
+ # sinh(-INFINITY) # => -Infinity
661
+ # sinh(0.0) # => 0.0
662
+ # sinh(INFINITY) # => Infinity
663
+ #
664
+ def self.sinh: (double x) -> Float
665
+
666
+ # <!--
667
+ # rdoc-file=math.c
668
+ # - Math.sqrt(x) -> float
669
+ # -->
670
+ # Returns the principal (non-negative) [square
671
+ # root](https://en.wikipedia.org/wiki/Square_root) of `x`.
672
+ #
673
+ # * Domain: `[0, INFINITY]`.
674
+ # * Range: `[0, INFINITY]`.
675
+ #
676
+ # Examples:
677
+ #
678
+ # sqrt(0.0) # => 0.0
679
+ # sqrt(0.5) # => 0.7071067811865476
680
+ # sqrt(1.0) # => 1.0
681
+ # sqrt(2.0) # => 1.4142135623730951
682
+ # sqrt(4.0) # => 2.0
683
+ # sqrt(9.0) # => 3.0
684
+ # sqrt(INFINITY) # => Infinity
685
+ #
686
+ def self.sqrt: (double x) -> Float
687
+
688
+ # <!--
689
+ # rdoc-file=math.c
690
+ # - Math.tan(x) -> float
691
+ # -->
692
+ # Returns the [tangent](https://en.wikipedia.org/wiki/Trigonometric_functions)
693
+ # of `x` in
694
+ # [radians](https://en.wikipedia.org/wiki/Trigonometric_functions#Radians_versus
695
+ # _degrees).
696
+ #
697
+ # * Domain: `(-INFINITY, INFINITY)`.
698
+ # * Range: `(-INFINITY, INFINITY)`.
699
+ #
700
+ # Examples:
701
+ #
702
+ # tan(-PI) # => 1.2246467991473532e-16 # -0.0000000000000001
703
+ # tan(-PI/2) # => -1.633123935319537e+16 # -16331239353195370.0
704
+ # tan(0.0) # => 0.0
705
+ # tan(PI/2) # => 1.633123935319537e+16 # 16331239353195370.0
706
+ # tan(PI) # => -1.2246467991473532e-16 # -0.0000000000000001
707
+ #
708
+ def self.tan: (double x) -> Float
709
+
710
+ # <!--
711
+ # rdoc-file=math.c
712
+ # - Math.tanh(x) -> float
713
+ # -->
714
+ # Returns the [hyperbolic
715
+ # tangent](https://en.wikipedia.org/wiki/Hyperbolic_functions) of `x` in
716
+ # [radians](https://en.wikipedia.org/wiki/Trigonometric_functions#Radians_versus
717
+ # _degrees).
718
+ #
719
+ # * Domain: `[-INFINITY, INFINITY]`.
720
+ # * Range: `[-1, 1]`.
721
+ #
722
+ # Examples:
723
+ #
724
+ # tanh(-INFINITY) # => -1.0
725
+ # tanh(0.0) # => 0.0
726
+ # tanh(INFINITY) # => 1.0
727
+ #
728
+ def self.tanh: (double x) -> Float
729
+ end