Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add v1.1.47.dev * Add multi-response extension * Add reshaping of y to C-order * Add reshaping of C-order * Add convex_relu matrix with full tests * Simplify prereq omp instruction * Add gcc fixes * Add a message about performance for constraint.linear * Add correct coercing function that doesn't copy when not necessary * Add default nnls_tol to 1e-14 based on simulation study, add solve_zero to constraints, save all dual variables (including non-active), parallelize abs_grad computation. * Add solve_zero to trampoline class * Refactor dual saving to outside pin methods so that diagnostic works properly, separate nnls from hinge, add solve_zero optimized and corrected for linear constraint * Add gcc fixes * Add fixes to pin states to not pass dual_groups, add paranthesis in ternary, update zero_constraint with solve_zero, * Move clearing of constraint objects to python level since state creation will modify them so clearing them afterwards in the C++ solver will undo some of the work. * Add it to cov method * Add glm's _coerce_dtype again to constraint since enforcement of "C" ordering makes sense, add comment about this ordering for linear constraint. * Add gcc fixes * Remove bcd constrained proximal, change NNLS API so that it removes the need for KKT check, refactor constraint linear, warm-start min_mu_resid with SVD solution, prune within tolerance 1e-16, dynamic omp for abs_grad update * Add max batch size as default, add sparse option for convex_relu * Add gcc fixes * Add gcc fixes * Remove svd warm-start and solve NNLS mostly for active groups * Change sparse matrices cov method to use dynamic omp scheduler * Add current work * Change sp_btmul to sp_tmul for consistency * Add constraint base and dense matrices, generalize ad.constraint.linear (missing sparse), WIP sparse constraint matrix, update NNLS and HingeLowRank to support general constraint-like matrices, update test. * Change default hinge_max_iters and hinge_tol values * Add sparse constraint matrix, remove svd comments, add sparse constraint matrix test * Add optimization to omit dual saving if 0 nnz * Add static abs_grad update if no non-trivial constraint exists * Add test code for nnls path solver, and constraint linear with no debug * Resolve tolerance argument to GLM fit function for multi and single response as well as Gaussian naive (finally!) * Add current BVLS solution * Add gcc fix * Add see also page for bvls solver * Change default tol for bvls, add tests * Remove svd, cs_tol; integrate new NNLS; add sorted violations in HingeLowRank; add more rigorous testing for constraints loose, tight bounds * Add default nnls max iters to 1e6 * Remove unnecessary nnqp_low_rank, make constraint matrices single threaded, and remove TODO for ADMM * Add hinge variance scaler for better convergence metric. * Change hinge_tol to 1e-7 to be safe * Add numerical stability to variance prox newton * Add thread safe exception handling, clean up solve_zero, abstract out 1e-16 pruning constant, active_vars is capped below at 0 and solver checks vk now * Integrate pinball into linear constraint solver * Remove all kkt_tol since it makes the fit pretty bad, remove unnecessary data for each solver accordingly, make bvls and pinball use hard thresholding of gradient * Remove A_vars and make pinball completely general * Add docs fixes * Add fixes to constraint.py * Add fixes to solver.py * Add fixes * Add fix to comments in nnls * Add fix to constraint matrix docs * Scikit-style learner (#123) * scikit-style class * move kwargs to fit method for sklearn compat * add logit example * predict method updates for classifier glms * Add sklearn API docs * Update sklearn api docs, implementation detail, and revamp the notebook * Add v1.1.47, remove 1 line * Add gcc fixes * Add missing gcc fix * Add a possible msvc fix * Add msvc fix to capture as arguments * Add parallel compilation only for non-windows * Remove parallel build check to prep for refactoring templates * Remove unnecessary bcd tools and correctly name matrix_utils_blas.cpp * Add thread restriction * Try again with msvc flags * Add back windows parallel switch * Try removing GL * Try manually setting MP to 1 * Add ccache to environment.yml, add src directory for core instantiations, add windows parallel build, refactor io and matrix with source files * Change decl.hpp to py_decl.hpp * Add py_io, py_matrix, refactor matrix completely so clean omg * Refactor io completely * Refactor glm completely * Refactor constraint completely * Refactor (trivial) bcd, configs, optimization; everything is inlined that there is no need to split into hpp/ipp and do explicit instantiations * Reformat template parameters * Remove macros.hpp wherever not needed, reformat TPs, refactor state and solver (core) completely * Add a fix to use of Eigen::Map<SparseVector>, integrate solve() as a member fn for each state, completely refactor state * Refactor iniitalize() to ipp and fix explicit instantiations for missing pin methods (internal solvers use safe_bool_t!) * Remove test code in setup.py * Export bvls and pinball, and add gaussian_cov tests * Add cmath to glm_binomial for msvc * Add explicit use math defines macro flag * Disable error on 4996 * Dumb microsoft warning hider --------- Co-authored-by: Apoorva Lal <lal.apoorva@gmail.com>
- Loading branch information