ECOS_csolve() with boolean
variables on platforms where char is unsigned (Linux aarch64).
Reported by the r-devel linux-arm64 checks.Fix UBSan error (misaligned pointer from REAL() on zero-length
vector) in build_result() when no equality constraints are present
(p = 0). Reported by CRAN M1 SAN checks.
Add multi-step solver lifecycle API: ECOS_setup(), ECOS_solve(),
ECOS_update(), and ECOS_cleanup() allow re-solving problems with
changed numerical data (same sparsity structure) without repeating
symbolic analysis. Workspace held in an external pointer with GC
finalizer; user data vectors are duplicated to prevent corruption from
ECOS in-place equilibration.
Switch R-level error messaging from stop() to cli::cli_abort() with
inline markup ({.arg}, {.cls}, {.code}, {.field}). The cli
package is now in Imports.
Add lifecycle tests (10 tests covering setup, solve, update, cleanup, and helper functions).
Switch ECOS submodule to fork (bnaras/ecos, r-patches branch);
remove ecos-2954b2a-changes/ overlay and simplify Makevars.
Fix copy-paste bug in A matrix validation (inherits(G,...) was
used instead of inherits(A,...)).
Enable dimension consistency check (sum(q) + l + 3*e == nrow(G)).
Signal an R error instead of returning silent NULL when
ECOS_setup or ECOS_BB_setup fails.
Fix R_init function name to match package name (R_init_ECOSolveR).
Narrow import(methods) to importFrom(methods, as).
C solver fixes: wright omega Taylor series bug, NULL dereference
and memory leaks in ECOS_BB, integer truncation in pfloat rounding,
missing include guards, printf replaced with Rprintf.
Cherry-pick upstream NaN bail-out (PR #181) and ECOS_updateData
NULL-safety fix (PR #185) from ECOS develop branch.
Add unit tests for ecos.control, make_csc_matrix, dimension
validation, and plain-matrix A handling. Fix test-bb.R to
namespace-qualify Matrix::sparseMatrix.
R/ecos.RG is NULL.Makevars and
Makevars.win to use Rscript call to R.home() to figure out
include path. (Issue 5)ECOS source fix for header glblopts.h that defined ECOS_NAN
using portable R version R_NaN and R_PosInf. This caused the
convolution example in CVXR package to fail on 32-bit
platforms.
Added a convolution test to be specific.
ECOS update: Synced underlying library to version 2.0.7.
Removed import of Matrix package, added slam interface,
contributions from Florian Schwendinger.
Tests: Added a number of unit tests based on base C library.
ECOS_csolve assumes A and G as NULL if any dimension is 0ECOS_csolvec, per Anqi’s request.Call entries