Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

gaussian

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gaussian - npm Package Compare versions

Comparing version 1.2.0 to 1.3.0

.coveralls.yml

2

bower.json
{
"name": "gaussian",
"version": "1.2.0",
"version": "1.3.0",
"homepage": "https://github.com/errcw/gaussian",

@@ -5,0 +5,0 @@ "authors": [

{
"name": "gaussian",
"version": "1.2.0",
"version": "1.3.0",
"main": "lib/gaussian.js",

@@ -5,0 +5,0 @@ "scripts": [

@@ -9,5 +9,23 @@ /**

const _2PI = Math.PI * 2;
function generateGaussian(mean,std){
var u1 = Math.random();
var u2 = Math.random();
/**
*
* @param {number} mean
* @param {number} std
* @param randFn - an optional function that returns a float between 0 (inclusive) and 1
* (exclusive). Use this if you want to pass in a random number generator other than
* Math.random().
* @returns {number}
*/
function generateGaussian(mean,std, randFn = null){
var u1;
var u2;
if (randFn) {
u1 = randFn();
u2 = randFn();
}
else {
u1 = Math.random();
u2 = Math.random();
}

@@ -24,3 +42,4 @@ var z0 = Math.sqrt(-2.0 * Math.log(u1)) * Math.cos(_2PI * u2);

? function(e) { module.exports = e; }
// istanbul ignore next
: function(e) { this["boxmuller"] = e; });

@@ -103,8 +103,16 @@ (function(exports) {

// Generate [num] random samples
Gaussian.prototype.random = function(num){
/**
* Generate [num] random samples
* @param {number} num
* @param randFn - an optional function that returns a float between 0 (inclusive) and 1
* (exclusive). Use this if you want to pass in a random number generator other than
* Math.random().
* @returns {number[]}
*/
Gaussian.prototype.random = function(num, randFn = null){
let mean = this.mean;
let std = this.standardDeviation;
return Array(num).fill(0).map(() => {
return generateGaussian(mean,std)
return generateGaussian(mean,std, randFn)
})

@@ -125,2 +133,4 @@ };

? function(e) { module.exports = e; }
// istanbul ignore next
: function(e) { this["gaussian"] = e; });
{
"name": "gaussian",
"description": "A JavaScript model of a Gaussian distribution",
"version": "1.2.0",
"version": "1.3.0",
"author": "Eric Woroshow <eric@ericw.ca>",

@@ -11,6 +11,3 @@ "homepage": "https://github.com/errcw/gaussian",

},
"licenses": {
"type": "MIT",
"url": "http://github.com/errcw/gaussian/blob/master/LICENSE"
},
"license": "MIT",
"main": "lib/gaussian",

@@ -17,0 +14,0 @@ "scripts": {

@@ -0,1 +1,6 @@

[![Version](https://img.shields.io/npm/v/gaussian)](https://www.npmjs.com/package/gaussian)
[![Tests](https://github.com/errcw/gaussian/workflows/tests/badge.svg)](https://github.com/errcw/gaussian/actions/workflows/tests.yml)
[![Coverage Status](https://coveralls.io/repos/github/errcw/gaussian/badge.svg?branch=master)](https://coveralls.io/github/errcw/gaussian?branch=master)
[![Downloads](https://img.shields.io/npm/dy/gaussian)](https://www.npmjs.com/package/gaussian)
# gaussian

@@ -9,2 +14,3 @@

### Creating a Distribution
```javascript

@@ -18,2 +24,3 @@ var gaussian = require('gaussian');

### Properties
- `mean`: the mean (μ) of the distribution

@@ -24,2 +31,3 @@ - `variance`: the variance (σ^2) of the distribution

### Probability Functions
- `pdf(x)`: the probability density function, which describes the probability

@@ -32,2 +40,3 @@ of a random variable taking on the value _x_

### Combination Functions
- `mul(d)`: returns the product distribution of this and the given distribution; equivalent to `scale(d)` when d is a constant

@@ -40,2 +49,3 @@ - `div(d)`: returns the quotient distribution of this and the given distribution; equivalent to `scale(1/d)` when d is a constant

### Generation Function
- `random(n)`: returns an array of generated `n` random samples correspoding to the Gaussian parameters.
- `random(n)`: returns an array of generated `n` random samples correspoding to the Gaussian parameters.

@@ -102,2 +102,8 @@ // Tests based on values from Wolfram Alpha.

it('test custom RNG', () => {
var sillyFn = () => .5;
const outcomes = gaussian(0, 0.3).random(2, sillyFn);
outcomes.forEach((outcome) => expect(outcome).toBeCloseTo(-0.644894028, 8));
});
/**

@@ -116,1 +122,24 @@ * Just a naive and simple

});
/**
* Coverage for gaussian.js:20
*/
it('ceils ppf >= 1', () => {
expect.assertions(3);
const normal = gaussian(0, 1);
expect(normal.ppf(1)).toBe(141.4213562373095);
expect(normal.ppf(1.1)).toBe(141.4213562373095);
expect(normal.ppf(100)).toBe(141.4213562373095);
});
/**
* Coverage for gaussian.js:21
*/
it('ceils ppf <= 0', () => {
expect.assertions(4);
const normal = gaussian(0, 1);
expect(normal.ppf(0)).toBe(-141.4213562373095);
expect(normal.ppf(-0)).toBe(-141.4213562373095);
expect(normal.ppf(-0.1)).toBe(-141.4213562373095);
expect(normal.ppf(-1)).toBe(-141.4213562373095);
});

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc