Released September 2026
?RDM. Thanks to Kianté Fernandez (#23).pwald (and thereby pRDM) losing precision when 2*b*v/s^2 is large (e.g., with s = 0.1), and returning 0 instead of 1 for rt = Inf. Thanks to Gidon Frischkorn for finding this (#26).pdiffusion that occurred whenever RTs were not ordered. Thanks to Kianté Fernandez (#21).ddiffusion when called with large number of RTs and varying parameters. Thanks to Kianté Fernandez (#21).dlba_lnorm, plba_lnorm, dlba_gamma, plba_gamma) that produced incorrect results when any element of A was below 1e-10 (the A_small branch). The lognormal functions used max instead of min in several intermediate calculations, plba_lnorm did not apply rem_t0 in the A_small branch, and the gamma functions used full-length vectors instead of subsetted ones.dlba_frechet and plba_frechet returning 0 for A = 0 (no start-point variability). They now use the closed form for a fixed start point, as the other distributions do (#4).pdiffusion for starting values near the boundary (#13). The PDE boundary conditions at t=0 differed from the F_limit initial condition, causing incorrect interpolation near z = a (or z = 0).Released June 2026.
rdiffusion preventing RTs < t0. Thanks to Andrew Heathcote for reporting this.Released March 2020.
ddiffusion) and CDF (pdiffusion) in case exactly one set of parameters is passed. In this case, some checks are skipped now leading to a 40% to 50% speed increase.qdiffusion should be faster now when it is called with many probabilities for the same response.qdiffusion has a new argument max_diff which allows to control the minimally acceptable difference between desired and obtained probabilities.method = "qdiffusion" to rdiffusion() which obtains random derivates via the quantile function and runif(). This method is for the time being a lot slower than the native one (i.e., method = "fastdm").options("stringsAsFactors" = FALSE) (in preparation for R 4.0).STRICT_R_HEADERS: https://github.com/rtdists/rtdists/pull/14Released October 2019.
args.dist and more than two drift rates. Reported by Glen Livingston Jr.Released August 2018.
Removed bug in dLBA and pLBA that prevented correct usage of trial-wise parameters. This bug always appeared when data with more than one response was present together with trial-wise parameters. In the following example the first call should be identical to the second and third call:
x1 <- dLBA(rt=c(1,1), response=c(1,2), A=1,b=list(c(1,3),c(2,4)),
t0=0.1, mean_v=c(3,3), sd_v=c(1,1),distribution="norm")
x2a <- dLBA(rt=c(1), response=c(1), A=1,b=list(c(1),c(2)),
t0=0.1,mean_v=c(3,3),sd_v=c(1,1),distribution="norm")
x2b <- dLBA(rt=c(1), response=c(2), A=1,b=list(c(3),c(4)),
t0=0.1,mean_v=c(3,3),sd_v=c(1,1),distribution="norm")
all(x1 == c(x2a, x2b)) ## should be TRUE
Released December 2017 & updated June 2018.
args.list (e.g., posdrift) to be passed correctly in dLBA, pLBA, qLBA, and rLBA. Thanks to Bruno Nicenboim for reporting this. See: https://github.com/rtdists/rtdists/issues/7devtools:: call in tests that caused a false positive CRAN warning (June 2018).Released May 2017.
rLBA increased, especially for calls with parameters that differ trialwise. As a consequence single rlba_... functions now return a matrix and no data.frame.pdiffusion uses the C++ CDF (no more numerical integration in R).sv can produce slow errors, and sz fast errors (this was the wrong way around in the documentation). Thanks to Gabriel Tillman for noticing that.pdiffusion C code letting rtdists hang indefinitely (see https://github.com/rtdists/rtdists/pull/3). Thanks to Tomas Kalibera for the fix.meanlog_v and sdlog_v were not recycled for the lnorm LBA.data.frames and purrr::map (i.e., more proper use of the tidyverse).Bug-fix version, released July 2016.
s != 1 removed.Released July 2016.
z in diffusion model is now on absolute scale and not relative to b in line with A (start point of LBA) which is also on absolute scale. (Thanks to Steve Lewandowsky for noticing this.)data.frame as first argument containing both RTs/probabilities and responses. Allows more convenient way to pass data.boundary (argument in diffusion functions) to response to be in line with LBA functions. (Thanks to Steve Lewandowsky for suggesting this.)s as argument to all diffusion functions.scale_p and scale_max arguments to quantile functions which automatically scale the entered probability to more conveniently obtain predicted quantiles.factor as response (which is converted via as.numeric). This allows to pass results from rdiffusion directly to LBA function.pdiffusion to pracma::integral() which seems to be more robust. (Thanks to Anna-Lena Schubert and Steve Lewandowsky for reporting problems with the previous version.)lnorm as distribution in rLBA. (Thanks to Steve Lewandowsky for reporting this bug.)Released May 2016.
pdiffusion now simply integrates the PDF to obtain the CDF using R's integrate which provides the correct result (albeit slower).rr98 data set: Experiment 1 from Ratcliff and Rouder (1998, Psych. Science). We thank Roger Ratcliff and Jeff Rouder for providing the data.uniroot if optimize does not converge.Released April 2016.
dLBA(), pLBA(), qLBA(), and rLBA(). dLBA() is a fully vectorized versions of n1PDF which has response as second argument, allowing to get the density for each response and corresponding response time in one step. As for the diffusion model (see below), this allows a likelihood function which only includes one call to the density function. pLBA() and qLBA() are the corresponding CDF and quantile functions, respectively. rLBA() is a fully vectorized version of the RNG functions and should be used from now on as top-level function.t0 in the LBA now accepts accumulator and trialwise parameters just as A and b. st0 now accepts trialwise parameter (not accumulator wise).ddiffusion, pdiffusion, and rdiffusion. Added quantile function for diffusion model, qdiffusion.t0 in the diffusion model now corresponds to the lower bound of the uniform distribution from which t0 is drawn (it was the mean before). The specifications of t0 now agree between LBA and diffusion model.rt (was t before).A = 0) [2015-09-17].