tweak: comments
This commit is contained in:
parent
10f88b4a2a
commit
c8a505dcf0
|
@ -56,7 +56,7 @@ let addContinuousContinuous = (
|
||||||
|
|
||||||
let lowerBound = mins1xs +. mins2xs
|
let lowerBound = mins1xs +. mins2xs
|
||||||
let upperBound = maxs1xs +. maxs2xs
|
let upperBound = maxs1xs +. maxs2xs
|
||||||
let numIntervals = 2 * Js.Math.max_int(len1, len2)
|
let numIntervals = 2 * Js.Math.max_int(len1, len2) // 5000
|
||||||
let epsilon = (upperBound -. lowerBound) /. Belt.Int.toFloat(numIntervals) // Js.Math.pow_float(~base=2.0, ~exp=-16.0)
|
let epsilon = (upperBound -. lowerBound) /. Belt.Int.toFloat(numIntervals) // Js.Math.pow_float(~base=2.0, ~exp=-16.0)
|
||||||
|
|
||||||
let newXs: array<float> = Belt.Array.makeUninitializedUnsafe(numIntervals)
|
let newXs: array<float> = Belt.Array.makeUninitializedUnsafe(numIntervals)
|
||||||
|
@ -70,13 +70,14 @@ let addContinuousContinuous = (
|
||||||
// The AMD Ryzen 7 processor in my computer can do around 300K million operations per second.
|
// The AMD Ryzen 7 processor in my computer can do around 300K million operations per second.
|
||||||
// src: https://wikiless.org/wiki/Instructions_per_second?lang=en#Thousand_instructions_per_second_(TIPS/kIPS)
|
// src: https://wikiless.org/wiki/Instructions_per_second?lang=en#Thousand_instructions_per_second_(TIPS/kIPS)
|
||||||
for i in 0 to numIntervals - 1 {
|
for i in 0 to numIntervals - 1 {
|
||||||
newXs[i] = lowerBound +. float(i) *. epsilon
|
// where are the x points in the resulting distribution
|
||||||
|
let z = lowerBound +. float(i) *. epsilon
|
||||||
|
newXs[i] = z
|
||||||
newYs[i] = 0.0
|
newYs[i] = 0.0
|
||||||
for j in 0 to numIntervals - 1 {
|
for j in 0 to numIntervals - 1 {
|
||||||
let deltaYi =
|
// how fine-grained do we want our approximation of the integral to be.
|
||||||
getApproximatePdfOfS1AtPoint(lowerBound +. float(j) *. epsilon) *.
|
let x = lowerBound +. float(j) *. epsilon
|
||||||
getApproximatePdfOfS2AtPoint(float(i) *. epsilon -. float(j) *. epsilon)
|
let deltaYi = getApproximatePdfOfS1AtPoint(x) *. getApproximatePdfOfS2AtPoint(z -. x)
|
||||||
// lowerBound +. float(i) *. epsilon - (lowerBound +. float(j) *. epsilon)
|
|
||||||
newYs[i] = newYs[i] +. deltaYi
|
newYs[i] = newYs[i] +. deltaYi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user