From 5a0d17c112b187d560c81957a313f7db4ad60eb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AD=A6=E7=94=B0=20=E6=86=B2=E5=A4=AA=E9=83=8E?= Date: Sat, 15 Jul 2017 17:48:42 +0900 Subject: [PATCH] Add a new package "mersenne-twister" --- types/mersenne-twister/index.d.ts | 47 +++++++++++++++++++ .../mersenne-twister-tests.ts | 23 +++++++++ types/mersenne-twister/tsconfig.json | 25 ++++++++++ types/mersenne-twister/tslint.json | 1 + 4 files changed, 96 insertions(+) create mode 100644 types/mersenne-twister/index.d.ts create mode 100644 types/mersenne-twister/mersenne-twister-tests.ts create mode 100644 types/mersenne-twister/tsconfig.json create mode 100644 types/mersenne-twister/tslint.json diff --git a/types/mersenne-twister/index.d.ts b/types/mersenne-twister/index.d.ts new file mode 100644 index 0000000000..938c8b6b69 --- /dev/null +++ b/types/mersenne-twister/index.d.ts @@ -0,0 +1,47 @@ +// Type definitions for mersenne-twister 1.1 +// Project: https://github.com/boo1ean/mersenne-twister +// Definitions by: KentarouTakeda +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export = class MersenneTwister { + /** + * constructs mt with a number + * @params seed + */ + constructor(seed?: number|number[]); + + /** + * initializes mt with a number + */ + init_seed(seed: number): void; + + /** + * generates a random number on [0,0xffffffff]-interval + */ + random_int(): number; + + /** + * generates a random number on [0,0x7fffffff]-interval + */ + random_int31(): number; + + /** + * generates a random number on [0,1]-real-interval + */ + random_incl(): number; + + /** + * generates a random number on [0,1)-real-interval + */ + random(): number; + + /** + * generates a random number on (0,1)-real-interval + */ + random_excl(): number; + + /** + * generates a random number on [0,1) with 53-bit resolution + */ + random_long(): number; +}; diff --git a/types/mersenne-twister/mersenne-twister-tests.ts b/types/mersenne-twister/mersenne-twister-tests.ts new file mode 100644 index 0000000000..663f69c49a --- /dev/null +++ b/types/mersenne-twister/mersenne-twister-tests.ts @@ -0,0 +1,23 @@ +import MersenneTwister = require('mersenne-twister'); + +const msWithTime = new MersenneTwister(); +const msWithNumber = new MersenneTwister(1); +const msWithNumbers = new MersenneTwister([1, 2, 3]); +const msWithInitSeed = new MersenneTwister(); +msWithInitSeed.init_seed(1); + +const ms = msWithTime; +let result: number; + +result = ms.random(); +console.log(result); +result = ms.random_excl(); +console.log(result); +result = ms.random_incl(); +console.log(result); +result = ms.random_int(); +console.log(result); +result = ms.random_int31(); +console.log(result); +result = ms.random_long(); +console.log(result); diff --git a/types/mersenne-twister/tsconfig.json b/types/mersenne-twister/tsconfig.json new file mode 100644 index 0000000000..e4303a44be --- /dev/null +++ b/types/mersenne-twister/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "noImplicitReturns": true, + "noImplicitThis": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "mersenne-twister-tests.ts" + ] +} diff --git a/types/mersenne-twister/tslint.json b/types/mersenne-twister/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/mersenne-twister/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }