stdlib-js / stdlib-js/stdlib

RFC: add support for generating pseudorandom numbers using TinyMT64

オープン
#201 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
difficulty: 5 Feature Math Needs Discussion RFC
主要言語
JavaScript
スター
6k
フォーク
1.3k
平均マージ
1日 3時間
マージ済み PR(30日)
611

説明

## Checklist

> Please ensure the following tasks are completed before submitting a feature request.

- [x] Read and understood the [Code of Conduct][code-of-conduct].
- [x] Searched for existing issues and pull requests.
- [x] The issue name begins with `RFC:`.

## Description

> Description of the feature request.

This RFC proposes to add support for the Tiny Mersenne Twister algorithm for generating pseudorandom numbers (64-bit). Should be similar in its API to `@stdlib/random/base/minstd`.

Package: `@stdlib/random/base/tinymt64`
Alias: `tinymt64`

## Related Issues

> Does this feature request have any related issues?

No.

## Questions

> Any questions for reviewers?

The general difficulty of this implementation is not its algorithm, but rather how to support its implementation in JavaScript. As JavaScript does not have universal support for 64-bit integers (BigInt proposal is still stage 3 and backward compatibility is difficult), implementing in JavaScript requires considerable work. While WASM may provide one avenue, it still does not solve the backward compatibility issue. For backward compatibility, some sort of 64-bit integer emulation is necessary.

## Other

> Any other information relevant to this feature request? This may include screenshots, references, sample output, and/or implementation notes.

- [C implementation](https://github.com/MersenneTwister-Lab/TinyMT/blob/master/tinymt/tinymt64.c)
- [Homepage](http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/TINYMT/)
- [Mersenne Twister](https://en.wikipedia.org/wiki/Mersenne_Twister)

[code-of-conduct]: https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Start by comparing the proposed @stdlib/random/base/tinymt64 package and alias with the API of @stdlib/random/base/minstd. Review the linked TinyMT64 C implementation and the issue's JavaScript 64-bit compatibility concerns. Done means an agreed implementation approach and complete package support for the requested algorithm.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
javascript
領域
data
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。