This PR does contain some changes to the harrier example, but that's not important. The important parts are that I have parallelized GD more with LoopVectorization and improved numerical stability by using the two parameter logerf(b, a), which is a more accurate version of log(erf(a) - erf(b)) (what we did manually before). The idea is to look at the absolute values and substitute it for something else if the ranges are a bit large. This also negates the need for a log_eps, as we are will always get a value, however small it is.
This PR does contain some changes to the harrier example, but that's not important. The important parts are that I have parallelized GD more with LoopVectorization and improved numerical stability by using the two parameter
logerf(b, a)
, which is a more accurate version oflog(erf(a) - erf(b))
(what we did manually before). The idea is to look at the absolute values and substitute it for something else if the ranges are a bit large. This also negates the need for a log_eps, as we are will always get a value, however small it is.