code: function Gaussian(parms) {
        if (parms == null) {
          parms = {};
        }
        if (parms.pi !== void 0) {
          this.pi = parms["pi"];
          this.tau = parms["tau"];
        } else if (parms.mu !== void 0) {
          this.pi = pow(parms["sigma"], -2);
          this.tau = this.pi * parms["mu"];
        } else {
          this.pi = 0;
          this.tau = 0;
        }
        if (isNaN(this.pi) || isNaN(this.tau)) {
          throw new Error("Gaussian parms can not be NaN");
        }
      }
docs: /*
  Object representing a gaussian distribution.  Create as:
  new Gaussian({mu=..., sigma=...})
  or
  new Gaussian({pi=..., tau=...})
  or
  new Gaussian()    # gives 0 mean, infinite sigma