is.atomic(NULL)
was TRUE
, but now it is FALSE
.For values > 1e7
in combination with another value NA
locate_errors
generated an error. Reported and fixed by Ramon Reinders (issue #36)
support for in_range
(issue #33)
Fixed a nasty bug in which variable names are mangled by lpsolveAPI, depending on the seed / added random noise. Thanks to Patrick Driessens
Added expand_weights
, which helps in specifying detailed weights for records
Removed a bug: Ncpus
was ignored in replace_errors
Added support for Inf weights, thanks to Guido van den Heuvel.
Improved default setting of solver epsd = 1e-12
provides better numerical
stability.
Too aggressive presolve default for lpSolveAPI (c("rows", "cols")) (issue #34) , switching back to presolve="rows". Thanks to Sander Scholtus.
Added parallel processing options, resulting in speed and memory consumption
improvements. (also for Ncpus=1
).
simple ratio's are taken into account and rewritten into linear rules:
cost/turnover > 0.6
will be rewritten into cost > 0.6 * turnover
.
bug fix issue #31: when a record was invalid, but all rules involving the invalidation contained missing variables, the record was skipped by errorlocate.
Bug fix for issue #30: when a value >= 1e7 was encountered, all fields were flagged erroneous. Thanks to Garðar Páll Gíslason.
Bug fix for log1p, log10 function approximation.
In long running locate_error
sessions, the mip solver returned for some records
a numerical instability error code. Seems to be an instability in lpSolve. Resubmitting
same record does return a solution. When a numerical instability in lpSolve is reported
a record is try again. When this fails, it is saved in mps format to the temporary
directory (with a warning).
errorlocation
. Thanks to Sander Scholtusinspect_mip
function, allowing for an in depth examination of the mip translation
and execution. Making it easier to debug/find what is wrong with a record / rule setoptions(errorlocate.allow_log = TRUE)
. This makes it possible to formulate constraints
total_salary >= min_salary * n_employees
as
log(total_salary) >= log(min_salary) + log(n_employees)
.