index.js (2913B)
1 import { SampleSetDist } from "../../../dist/SampleSetDist/index.js"; 2 import * as Result from "../../../utility/result.js"; 3 import { Ok } from "../../../utility/result.js"; 4 import { SymbolicDist } from "../../../dist/SymbolicDist.js"; 5 import { PointSetDist } from "../../../dist/PointSetDist.js"; 6 import { SqDistributionError } from "./SqDistributionError.js"; 7 import { wrapPointSet } from "./SqPointSet.js"; 8 export var SqDistributionTag; 9 (function (SqDistributionTag) { 10 SqDistributionTag["PointSet"] = "PointSet"; 11 SqDistributionTag["SampleSet"] = "SampleSet"; 12 SqDistributionTag["Symbolic"] = "Symbolic"; 13 })(SqDistributionTag || (SqDistributionTag = {})); 14 export function wrapDistribution(value) { 15 if (value instanceof SymbolicDist) { 16 return new SqSymbolicDistribution(value); 17 } 18 else if (value instanceof SampleSetDist) { 19 return new SqSampleSetDistribution(value); 20 } 21 else if (value instanceof PointSetDist) { 22 return new SqPointSetDistribution(value); 23 } 24 throw new Error(`Unknown value ${value}`); 25 } 26 export class SqAbstractDistribution { 27 constructor(_value) { 28 this._value = _value; 29 } 30 pointSet(env) { 31 const innerResult = this._value.toPointSetDist(env); 32 return Result.fmap2(innerResult, (dist) => wrapPointSet(dist.pointSet), (e) => new SqDistributionError(e)); 33 } 34 asSampleSetDist(env) { 35 const innerResult = SampleSetDist.fromDist(this._value, env); 36 return Result.fmap2(innerResult, (dist) => new SqSampleSetDistribution(dist), (e) => new SqDistributionError(e)); 37 } 38 toString() { 39 return this._value.toString(); 40 } 41 toSparkline(env) { 42 return this._value.toSparkline(20, env); 43 } 44 mean(env) { 45 return this._value.mean(); 46 } 47 integralSum() { 48 return this._value.integralSum(); 49 } 50 isNormalized() { 51 return this._value.isNormalized(); 52 } 53 pdf(env, n) { 54 return Result.fmap2(this._value.pdf(n, { env }), (v) => v, (e) => new SqDistributionError(e)); 55 } 56 cdf(env, n) { 57 return Ok(this._value.cdf(n)); 58 } 59 inv(env, n) { 60 return Ok(this._value.inv(n)); 61 } 62 stdev(env) { 63 return Result.fmap2(this._value.stdev(), (v) => v, (e) => new SqDistributionError(e)); 64 } 65 } 66 export class SqPointSetDistribution extends SqAbstractDistribution { 67 constructor() { 68 super(...arguments); 69 this.tag = SqDistributionTag.PointSet; 70 } 71 } 72 export class SqSampleSetDistribution extends SqAbstractDistribution { 73 constructor() { 74 super(...arguments); 75 this.tag = SqDistributionTag.SampleSet; 76 } 77 getSamples() { 78 return this._value.samples; 79 } 80 } 81 export class SqSymbolicDistribution extends SqAbstractDistribution { 82 constructor() { 83 super(...arguments); 84 this.tag = SqDistributionTag.Symbolic; 85 } 86 } 87 //# sourceMappingURL=index.js.map