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)
.