relativeValues.js (1964B)
1 import { sq } from "../index.js"; 2 import { makeDefinition } from "../library/registry/fnDefinition.js"; 3 import { frArray, frLambda, frDict, frString, frOptional, } from "../library/registry/frTypes.js"; 4 import { FnFactory } from "../library/registry/helpers.js"; 5 import { makeSquiggleDefinition } from "../library/registry/squiggleDefinition.js"; 6 import { vPlot } from "../value/index.js"; 7 const maker = new FnFactory({ 8 nameSpace: "RelativeValues", 9 requiresNamespace: true, 10 }); 11 const relativeValuesShape = frDict(["ids", frArray(frString)], ["fn", frLambda], ["title", frOptional(frString)]); 12 export const library = [ 13 maker.make({ 14 name: "gridPlot", 15 output: "Plot", 16 examples: [ 17 `RelativeValues.gridPlot({ 18 ids: ["foo", "bar"], 19 fn: {|id1, id2| [SampleSet.fromDist(2 to 5), SampleSet.fromDist(3 to 6)]}, 20 })`, 21 ], 22 definitions: [ 23 makeDefinition([relativeValuesShape], ([{ ids, fn, title }]) => { 24 return vPlot({ 25 type: "relativeValues", 26 fn, 27 ids, 28 title: title ?? undefined, 29 }); 30 }), 31 ], 32 }), 33 ]; 34 export function makeSquiggleDefinitions(builtins) { 35 return [ 36 makeSquiggleDefinition({ 37 builtins, 38 name: "RelativeValues.wrap", 39 code: sq ` 40 { |fn| 41 { 42 |x,y| 43 findUncertainty(dist) = { 44 absDist = dist -> SampleSet.fromDist -> SampleSet.map(abs) 45 p5 = inv(absDist, 0.05) 46 p95 = inv(absDist, 0.95) 47 log10(p95 / p5) 48 } 49 dists = fn(x,y) 50 dist1 = dists[0] -> SampleSet.fromDist 51 dist2 = dists[1] -> SampleSet.fromDist 52 dist = dists[0] / dists[1] 53 { 54 median: inv(dist, 0.5), 55 mean: mean(dist), 56 min: inv(dist, 0.05), 57 max: inv(dist, 0.95), 58 uncertainty: findUncertainty(dist) 59 } 60 } 61 }`, 62 }), 63 ]; 64 } 65 //# sourceMappingURL=relativeValues.js.map