MCPcopy Create free account
hub / github.com/cortex-js/compute-engine / distributionCDF

Function distributionCDF

src/compute-engine/library/distributions.ts:338–407  ·  view source on GitHub ↗
(
  ce: ComputeEngine,
  dist: Expression,
  x: Expression
)

Source from the content-addressed store, hash-verified

336 const z = sub(x, mu);
337 const num = fn('Exp', [
338 neg(
339 div(
340 pow(z, ce.number(2)),
341 mul([ce.number(2), pow(sigma, ce.number(2))])
342 )
343 ),
344 ]);
345 const den = mul([sigma, fn('Sqrt', [mul([ce.number(2), ce.Pi])])]);
346 return div(num, den);
347 }
348
349 case 'BinomialDistribution': {
350 const [n, p] = distOps(dist);
351 // Discrete: density at a numeric non-integer point is 0.
352 if (xv !== undefined && !Number.isInteger(xv)) return ce.Zero;
353 const k = x;
354 return mul([
355 fn('Binomial', [n, k]),
356 pow(p, k),
357 pow(sub(ce.One, p), sub(n, k)),
358 ]);
359 }
360
361 case 'PoissonDistribution': {
362 const [lambda] = distOps(dist);
363 if (xv !== undefined && !Number.isInteger(xv)) return ce.Zero;
364 const k = x;
365 return div(
366 mul([pow(lambda, k), fn('Exp', [neg(lambda)])]),
367 fn('Factorial', [k])
368 );
369 }
370
371 case 'UniformDistribution': {
372 const [a, b] = distOps(dist);
373 const av = litVal(a);
374 const bv = litVal(b);
375 // Numeric point outside the support has zero density.
376 if (
377 xv !== undefined &&
378 av !== undefined &&
379 bv !== undefined &&
380 (xv < av || xv > bv)
381 )
382 return ce.Zero;
383 return div(ce.One, sub(b, a));
384 }
385
386 case 'ExponentialDistribution': {
387 const [lambda] = distOps(dist);
388 if (xv !== undefined && xv < 0) return ce.Zero;
389 return mul([lambda, fn('Exp', [neg(mul([lambda, x]))])]);
390 }
391 }
392 return undefined;
393}
394
395function distributionCDF(

Callers 1

distributions.tsFile · 0.85

Calls 11

litValFunction · 0.85
distOpsFunction · 0.85
fnFunction · 0.85
divFunction · 0.70
subFunction · 0.70
mulFunction · 0.70
addFunction · 0.70
numberMethod · 0.65
evaluateMethod · 0.65
functionMethod · 0.65
isIntegerMethod · 0.45

Tested by

no test coverage detected