time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

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