stdlib-js / stdlib-js/stdlib

RFC: add support for generating pseudorandom numbers using TinyMT64

Đang mở
#201 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
difficulty: 5 Feature Math Needs Discussion RFC
Ngôn ngữ chính
JavaScript
Star
6k
Fork
1.3k
Merge trung bình
1 ngày 3 giờ
Pull request đã merge (30 ngày)
611

Mô tả

## 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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.