Respond to sparkline PR change requests
This commit is contained in:
parent
53f4e56529
commit
bf2f85a8ab
|
@ -1,11 +1,6 @@
|
||||||
open Jest
|
open Jest
|
||||||
open Expect
|
open Expect
|
||||||
|
|
||||||
let env: DistributionOperation.env = {
|
|
||||||
sampleCount: 100,
|
|
||||||
xyPointLength: 100,
|
|
||||||
}
|
|
||||||
|
|
||||||
let normalDist: GenericDist_Types.genericDist = Symbolic(#Normal({mean: 5.0, stdev: 2.0}))
|
let normalDist: GenericDist_Types.genericDist = Symbolic(#Normal({mean: 5.0, stdev: 2.0}))
|
||||||
let uniformDist: GenericDist_Types.genericDist = Symbolic(#Uniform({low: 9.0, high: 10.0}))
|
let uniformDist: GenericDist_Types.genericDist = Symbolic(#Uniform({low: 9.0, high: 10.0}))
|
||||||
let betaDist: GenericDist_Types.genericDist = Symbolic(#Beta({alpha: 2.0, beta: 5.0}))
|
let betaDist: GenericDist_Types.genericDist = Symbolic(#Beta({alpha: 2.0, beta: 5.0}))
|
||||||
|
|
|
@ -168,20 +168,13 @@ let pdf = (f: float, t: t) => {
|
||||||
let inv = T.Integral.yToX
|
let inv = T.Integral.yToX
|
||||||
let cdf = T.Integral.xToY
|
let cdf = T.Integral.xToY
|
||||||
|
|
||||||
let diff = (arr: array<float>): array<float> =>
|
|
||||||
Belt.Array.zipBy(arr, Belt.Array.sliceToEnd(arr, 1), (left, right) => right -. left)
|
|
||||||
|
|
||||||
let rec rangeByFloat = (start : float, end: float, step: float) =>
|
|
||||||
start > end ?
|
|
||||||
[]
|
|
||||||
: Belt.Array.concat([start], rangeByFloat(start +. step, end, step))
|
|
||||||
|
|
||||||
@genType
|
@genType
|
||||||
let toSparkline = (buckets: int, t: t ): string => {
|
let toSparkline = (buckets: int, t: t ): string => {
|
||||||
let size : float = T.maxX(t) -. T.minX(t)
|
let size : float = T.maxX(t) -. T.minX(t)
|
||||||
let stepSize = size /. Belt.Int.toFloat(buckets)
|
let stepSize = size /. Belt.Int.toFloat(buckets)
|
||||||
let cdf = rangeByFloat(T.minX(t), T.maxX(t), stepSize) -> Belt.Array.map(val => cdf(val,t))
|
let cdfImage = E.A.rangeByFloat(~step=stepSize, T.minX(t), T.maxX(t)) -> Belt.Array.map(val => cdf(val,t))
|
||||||
Sparklines.create(diff(cdf), ())
|
Sparklines.create(E.A.diff(cdfImage), ())
|
||||||
}
|
}
|
||||||
|
|
||||||
let doN = (n, fn) => {
|
let doN = (n, fn) => {
|
||||||
|
|
|
@ -292,6 +292,14 @@ module A = {
|
||||||
let rangeFloat = (~step=1, start, stop) =>
|
let rangeFloat = (~step=1, start, stop) =>
|
||||||
Belt.Array.rangeBy(start, stop, ~step) |> fmap(Belt.Int.toFloat)
|
Belt.Array.rangeBy(start, stop, ~step) |> fmap(Belt.Int.toFloat)
|
||||||
|
|
||||||
|
let diff = (arr: array<float>): array<float> =>
|
||||||
|
Belt.Array.zipBy(arr, Belt.Array.sliceToEnd(arr, 1), (left, right) => right -. left)
|
||||||
|
|
||||||
|
let rec rangeByFloat = (~step: float=1.0, start : float, end: float) : array<float> =>
|
||||||
|
start > end ?
|
||||||
|
[]
|
||||||
|
: Belt.Array.concat([start], rangeByFloat(~step, start +. step, end))
|
||||||
|
|
||||||
// This zips while taking the longest elements of each array.
|
// This zips while taking the longest elements of each array.
|
||||||
let zipMaxLength = (array1, array2) => {
|
let zipMaxLength = (array1, array2) => {
|
||||||
let maxLength = Int.max(length(array1), length(array2))
|
let maxLength = Int.max(length(array1), length(array2))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user