NEWS.md
d3() operator precedence bug: d2[1] was always used instead of d2[i], producing wrong results when called with a vector of sample sizes (#2)stats() operator precedence bug: 1:m-1 evaluated as (1:m) - 1, producing index 0 on first iteration (affects all n=1 multivariate calculations)cchart.T2.2() operator precedence bugs: is.null(x) == FALSE patterns were fragile (5 occurrences)cchart.T2.1() incorrect UCL formula for Phase I with n=1: now uses correct beta distribution parameters per Montgomery 7th ed. (#1)cchart.S() type parameter mismatch: code checked for "c" but documentation specified "e" for exact limitscchart.Xbar_R() typo: add.stat corrected to add.stats
cchart.T2.1() error handling: sprintf() replaced with stop()
return("msg") replaced with stop("msg")
n >= 2) to d2(), d3(), c4()
sizes argument)cchart.Xbar() functioncchart.Xbar()
constants.R with ALPHA, SIGMA_MULT, Q_LOWER, Q_UPPER constantsT/F to TRUE/FALSE throughout= to <- for assignmentis.null(x) == FALSE with !is.null(x)
table.qtukey(): remove unnecessary function definitions, add invisible() returnd2() and d3() (was O(n²) with append())matrix(nrow=m, ncol=1) with numeric(m) for control limits