source: Dev/branches/jQueryUI/client/d3/examples/qq/stats.js @ 249

Last change on this file since 249 was 249, checked in by hendrikvanantwerpen, 13 years ago

This one's for Subversion, because it's so close...

First widget (stripped down sequencer).
Seperated client and server code in two direcotry trees.

File size: 767 bytes
Line 
1// Sample from a normal distribution with mean 0, stddev 1.
2function normal() {
3  var x = 0, y = 0, rds, c;
4  do {
5    x = Math.random() * 2 - 1;
6    y = Math.random() * 2 - 1;
7    rds = x * x + y * y;
8  } while (rds == 0 || rds > 1);
9  c = Math.sqrt(-2 * Math.log(rds) / rds); // Box-Muller transform
10  return x * c; // throw away extra sample y * c
11}
12
13// Simple 1D Gaussian (normal) distribution
14function normal1(mean, deviation) {
15  return function() {
16    return mean + deviation * normal();
17  };
18}
19
20// Gaussian Mixture Model (k=3) fit using E-M algorithm
21function normal3(dd) {
22  return function() {
23    var r = Math.random(),
24        i = r < dd[0][2] ? 0 : r < dd[0][2] + dd[1][2] ? 1 : 2,
25        d = dd[i];
26    return d[0] + Math.sqrt(d[1]) * normal();
27  }
28}
Note: See TracBrowser for help on using the repository browser.