Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
161 commits
Select commit Hold shift + click to select a range
bd20969
adding experiments for ipopt with a cvxpy
Transurgeon Jun 16, 2025
73b1301
fixing jacobian sign and putting the constraints in standard form
Transurgeon Jun 17, 2025
c6adb1a
adding some refactoring for automatically calculating bounds
Transurgeon Jun 17, 2025
00304ba
adds two more examples
Transurgeon Jun 17, 2025
ee8b061
adding base files for interface
Transurgeon Jun 18, 2025
b0d0f19
fix rosenbrock with multiple variables
Transurgeon Jun 18, 2025
205ed3e
beginning testing on MLE estimation but encountering errors
Transurgeon Jun 18, 2025
b2fef0c
fixes test for mle-estimation, thanks parth!
Transurgeon Jun 18, 2025
4902202
fixing mle with constraints, but need to generalize
Transurgeon Jun 19, 2025
1339089
add new example and attempt to fix the jacobian variable ordering issue
Transurgeon Jun 19, 2025
905d936
refactor the normalization of constraints
Transurgeon Jun 19, 2025
42f332f
adding new examples and refactoring bounds calculation
Transurgeon Jun 19, 2025
8614f3f
fix issue with bounds creation
Transurgeon Jun 20, 2025
49ffe9a
finish up a portfolio example
Transurgeon Jun 20, 2025
7fc9d88
add example for max
Transurgeon Jun 22, 2025
2e8cd8e
initial attempts at adding a smooth canon for maximum, what's left?
Transurgeon Jun 23, 2025
e5b9352
test with more complex example
Transurgeon Jun 23, 2025
a530fba
testing reduction and it seems to work!
Transurgeon Jun 23, 2025
87ec462
Merge pull request #2 from cvxgrp/expr2smooth
Transurgeon Jun 27, 2025
4544ef7
Merge pull request #1 from cvxpy/ipopt-interface
Transurgeon Jun 27, 2025
41bb677
Merge pull request #3 from cvxgrp/working-on-smooth-canons
Transurgeon Jun 30, 2025
e75df56
Merge branch 'cvxpy:master' into master
Transurgeon Jul 2, 2025
4986956
Adding IPOPT interface as NLP solver (#4)
Transurgeon Jul 7, 2025
1e8c776
Merge branch 'cvxpy:master' into master
Transurgeon Jul 7, 2025
ccf69ad
fix interface issues thanks to parth (#5)
Transurgeon Jul 8, 2025
35ea33e
adding unit-tests and improvements to NLP interface. (#6)
Transurgeon Jul 9, 2025
dcccea0
update solution statuses thanks to odow (#8)
Transurgeon Jul 10, 2025
0a49409
Adding non-linear example of rocket control (#7)
Transurgeon Jul 20, 2025
6ea3605
adding many more example of non-convex functions (#11)
Transurgeon Aug 11, 2025
b9a7e4d
adding some more tests (#12)
Transurgeon Aug 12, 2025
7f44f3e
fix ruff complaints
Transurgeon Aug 12, 2025
d58baf8
Smith form affine (#13)
Transurgeon Aug 15, 2025
5870139
Fix matmul gradient issue (#14)
Transurgeon Aug 15, 2025
dcd73e8
added div and some other small changes (#15)
dance858 Aug 19, 2025
5097446
sparse Jacobian via dok (#16)
dance858 Aug 19, 2025
0756405
div canon stuff (#17)
dance858 Aug 19, 2025
d487954
cleaning up the sandbox and adding more test problems to the test sui…
Transurgeon Aug 21, 2025
f24c8bb
first order deriv check (#21)
Transurgeon Aug 25, 2025
0832230
Setting up smith form for non-affine expressions. (#20)
Transurgeon Aug 25, 2025
5830a8f
Allow matrix variables (#26)
Transurgeon Aug 27, 2025
98c6cd6
Bounds investigation (#29)
dance858 Aug 27, 2025
115bf77
Experiment: Hessian of the lagrangian (#31)
Transurgeon Aug 29, 2025
acb21dc
Bounds investigation (#33)
Transurgeon Sep 5, 2025
7bdbb39
comment out hessian stuff
Transurgeon Sep 5, 2025
263117b
small changes to log
dance858 Sep 5, 2025
bc431ea
canonicalization for exp, and nelson siegel model fitting (#34)
Transurgeon Sep 7, 2025
9d21c4c
Adding solver options (#42)
Transurgeon Sep 15, 2025
573248b
fixing ruff warnings (#35)
Transurgeon Sep 15, 2025
051d1aa
Hessian (#38)
Transurgeon Sep 15, 2025
8f81cf0
Hessian (#43)
dance858 Sep 18, 2025
d9bd0d9
complete merge
Transurgeon Sep 18, 2025
044ae0c
setting up infrastructure for testing NLP on CI
Transurgeon Sep 18, 2025
f9a0108
fixing all not-implemented hessian issues (#45)
Transurgeon Sep 20, 2025
85f4520
Revert "fixing all not-implemented hessian issues (#45)"
dance858 Sep 20, 2025
8e451f2
Raising unimplemented errors (#46)
dance858 Sep 20, 2025
75adf20
clean up code and fixed bug in log-canon. Checked that all tests in N…
dance858 Sep 21, 2025
f77d602
smooth approx. and resolve (#47)
Transurgeon Sep 21, 2025
0344d55
implemented smooth logic for abs and added some lasso tests. All of t…
dance858 Sep 22, 2025
d98cfdb
Sparse hess other approach (#53)
dance858 Sep 28, 2025
8b69565
New jacobian (#55)
dance858 Oct 3, 2025
8aff86c
adding atom name in error for arguments of jacobian and hessian (#57)
Transurgeon Oct 4, 2025
565ef35
special index jacobian (#58)
dance858 Oct 4, 2025
a5ebbdf
Optimal control example and cleaning up sandbox (#59)
Transurgeon Oct 4, 2025
dc117a0
remove space shuttle example
Transurgeon Oct 4, 2025
126943c
fix issue with trig example, remove LS dual initialization (#60)
Transurgeon Oct 5, 2025
90758a4
Fix jacobian of index (#61)
Transurgeon Oct 6, 2025
ec6954f
Add some control examples and fix canon issues (#64)
Transurgeon Oct 9, 2025
ba9a4de
merge cvxpy master to get newest ci changes (#68)
Transurgeon Oct 10, 2025
acf864b
Merge branch 'cvxpy:master' into master
Transurgeon Oct 10, 2025
e76d4d4
cleanup CI and try to make it pass (#67)
Transurgeon Oct 10, 2025
4a2a533
setting up workflow for nlp testing (#69)
Transurgeon Oct 11, 2025
b6f3898
Disciplined nonlinear programming (#70)
Transurgeon Oct 14, 2025
4f101cc
initial changes for dnlp2smooth reduction (#71)
Transurgeon Oct 15, 2025
3b19bb9
Fixing two control examples (#74)
Transurgeon Oct 17, 2025
31e36d5
canonicalization changes for p-norm and power (#72)
Transurgeon Oct 17, 2025
30ad99b
Jacobian of sum of a matrix with index = 0 (or 1) (#75)
Transurgeon Oct 22, 2025
e485146
matmul (#76)
dance858 Oct 24, 2025
499108e
Risk parity new (#77)
dance858 Nov 1, 2025
fc491e0
Adds jacobian/hess_vec for reshape and fixes ACOPF example (finally!)…
Transurgeon Nov 1, 2025
5ffdb1d
Localization (#81)
dance858 Nov 9, 2025
0275c42
Moving bounds class to NLP solver (#82)
Transurgeon Nov 9, 2025
11202d8
NMF and circle packing (#83)
dance858 Nov 10, 2025
c28a106
trivial change
dance858 Nov 11, 2025
f2f4a13
Adds transpose implementation
PTNobel Nov 12, 2025
3eec0e6
Trying master sync (#85)
Transurgeon Nov 12, 2025
1622b3e
adds correct implementation for special index (#87)
Transurgeon Nov 17, 2025
a2b0401
improvements on the formulation to the car control example (#88)
Transurgeon Nov 18, 2025
eeb826f
Merge branch 'master' into master
Transurgeon Nov 19, 2025
b2906c2
move car control to examples (#92)
Transurgeon Nov 21, 2025
ca76581
New NLP solver interfaces for COPT and KNITRO (#89)
Transurgeon Nov 22, 2025
8daad3a
Examples (#93)
dance858 Nov 26, 2025
12b4f63
Adds Logistic function and fixes transpose (#96)
PTNobel Nov 26, 2025
79420f0
[WIP] bug fix in hess_vec of matmul (#98)
dance858 Nov 27, 2025
d7f1726
Cleanup log canon and adds geo_mean canon (#94)
Transurgeon Nov 27, 2025
21b107e
Fixes select_idx for duplicate indices (#97)
PTNobel Nov 27, 2025
3a76b1f
Best of (#100)
dance858 Nov 28, 2025
53a11ab
Knitro interface (#101)
Transurgeon Nov 28, 2025
ef286a3
sparse recovery (#102)
dance858 Nov 30, 2025
59fbe5b
Revise README for DNLP package introduction
dance858 Dec 1, 2025
293564d
readme
dance858 Dec 2, 2025
723acf2
readme
dance858 Dec 2, 2025
3ab8662
update readme with toy example
dance858 Dec 2, 2025
712504e
[Ready for review] Going through all atoms (#104)
dance858 Dec 2, 2025
3d04613
Merge branch 'cvxpy:master' into master
Transurgeon Dec 2, 2025
29a3bb4
[Ready for review] best-of-improvements and hyperbolic atoms (#106)
dance858 Dec 4, 2025
e335ef3
Adds sparsity for powerflow and fix hessian indexing bug (#107)
Transurgeon Dec 5, 2025
8a3cec8
sum-largest/smallest/huber (#108)
dance858 Dec 5, 2025
4134875
Update README.md
stephenpboyd Dec 7, 2025
23d8b88
trimmed logistic regression (#109)
dance858 Dec 8, 2025
ca224d8
adds knitro algorithms as string options (#110)
Transurgeon Dec 8, 2025
88044a9
canonicalization (#111)
dance858 Dec 10, 2025
46d7c05
fix duplicate index in hessian of indexing (#112)
Transurgeon Dec 10, 2025
d147964
[Ready for review] Initialization order (#114)
dance858 Dec 13, 2025
e6c70e3
adds chemistry example (#115)
Transurgeon Dec 14, 2025
b16dbba
Merge branch 'master' of https://github.com/cvxpy/cvxpy into cvxpy-ma…
Transurgeon Dec 16, 2025
4487894
Merge branch 'cvxpy-master'
Transurgeon Dec 16, 2025
a435357
try to fix missed stuff from master merge
Transurgeon Dec 16, 2025
271e6f8
delete sandbox (#117)
Transurgeon Dec 16, 2025
c47e326
Fix Ipopt link in README installation section
dance858 Dec 19, 2025
d7ffb86
Merge branch 'master' of https://github.com/cvxpy/cvxpy
Transurgeon Dec 24, 2025
496bbf3
remove examples for dnlp (#123)
Transurgeon Dec 26, 2025
eb728ff
Uno interface (#119)
Transurgeon Jan 5, 2026
b16501b
Adds prod and hstack/vstack and fixes an issue with the newest versio…
PTNobel Jan 7, 2026
5382605
merge from master
Transurgeon Jan 7, 2026
449b7c1
Fix NaN validation to reject NaN for Parameters while allowing for Va…
Transurgeon Jan 8, 2026
07bd272
Adds COPT solver interface (original PR in #126) (#130)
Transurgeon Jan 10, 2026
6af3241
Implement diag_vec Jacobian for NLP solving (#133)
Transurgeon Jan 19, 2026
f71d351
Merge PR #135: Sync from CVXPY upstream master
Transurgeon Jan 28, 2026
3462e72
change nlp_solver Oracles class to use C diffengine (and adds setup f…
Transurgeon Jan 31, 2026
d33140b
Add diff_engine_core release workflow and documentation (#139)
Transurgeon Feb 1, 2026
150f104
Merge upstream CVXPY master with bounds propagation feature
Transurgeon Feb 1, 2026
441c21a
Remove Python _jacobian and _hess_vec oracle methods (#141)
Transurgeon Feb 1, 2026
7919d4d
Update diff_engine_core to v0.1.1 (#142)
Transurgeon Feb 3, 2026
b53c6b2
Add parameter support to diff engine
Transurgeon Feb 9, 2026
ac3e46a
Add DIFF_ENGINE canonicalization backend for parametric conic programs
Transurgeon Feb 9, 2026
a2659d4
Set DIFF_ENGINE as default canon backend for benchmarking
Transurgeon Feb 9, 2026
1355159
Revert default backend to CPP; use parameterized benchmarks instead
Transurgeon Feb 9, 2026
9ed5d48
Remove redundant n_params from diff engine API
Transurgeon Feb 10, 2026
5ea49c8
Remove redundant A_m, A_n from left_param_matmul API
Transurgeon Feb 10, 2026
c16b296
Add total_parameter_size to problem struct; use in param validation
Transurgeon Feb 10, 2026
ba8a075
Inline get_scalar helper in const_scalar_mult.c
Transurgeon Feb 10, 2026
2c21b2d
Inline get_vector helper in const_vector_mult.c
Transurgeon Feb 10, 2026
01cba8f
Simplify refresh_param_values: fill one block, memcpy the rest
Transurgeon Feb 10, 2026
17900e4
Skip AT recomputation in param refresh; param matmul is always affine
Transurgeon Feb 10, 2026
4ff03b5
Run clang-format on parameter support files
Transurgeon Feb 10, 2026
68519c5
Update diff_engine_core: add parameter support tests
Transurgeon Feb 10, 2026
8e4b59e
Update diff_engine_core: clean up comments
Transurgeon Feb 10, 2026
86fa9e9
Update diff_engine_core: fix param_scalar_mult memory leak
Transurgeon Feb 10, 2026
0db0ab6
Add upper_tri/diag_mat converters with design rationale comment
Transurgeon Feb 11, 2026
4641971
Extract diff engine bindings into standalone SparseDiffPy package (#148)
Transurgeon Feb 12, 2026
da4ca72
Merge remote-tracking branch 'upstream/master'
Transurgeon Feb 12, 2026
837d370
Merge branch 'master' into diff-engine-param
Transurgeon Feb 12, 2026
d770487
Fix diff_engine_param_cone_prog import to use sparsediffpy
Transurgeon Feb 12, 2026
441227b
Clean up DiffEngineParamConeProg integration
Transurgeon Feb 12, 2026
25d65da
[WIP] Left matmul refactor (#149)
dance858 Feb 13, 2026
4317f1c
Simplify left_matmul bindings: pass CSR directly, unify param/const p…
Transurgeon Feb 16, 2026
edf0f73
Flatten param values in row-major (CSR data) order for memcpy refresh
Transurgeon Feb 16, 2026
e805ab5
Handle sparse parameters in update_params via value_sparse, add tests
Transurgeon Feb 16, 2026
7cf88ec
Simplify parameter detection: use isinstance instead of _has_parameters
Transurgeon Feb 16, 2026
d714a83
Revert upper_tri/diag_mat converters and tests (out of scope for this…
Transurgeon Feb 16, 2026
3e8c7db
Merge branch 'master' into diff-engine-param
Transurgeon Feb 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ jobs:

steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- name: Set Additional Envs
run: |
echo "PYTHON_SUBVERSION=$(echo $PYTHON_VERSION | cut -c 3-)" >> $GITHUB_ENV
Expand Down Expand Up @@ -114,6 +116,8 @@ jobs:

steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/test_backends.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ jobs:
with:
python-version: "3.12"
- uses: actions/checkout@v5
with:
submodules: recursive
- name: Install cvxpy dependencies
run: |
pip install -e .
Expand Down
46 changes: 46 additions & 0 deletions .github/workflows/test_nlp_solvers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: test_nlp_solvers

on:
pull_request:
push:
branches:
- master
tags:
- '*'
jobs:
run_nlp_tests:
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -l {0}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/setup-python@v6
with:
python-version: "3.12"
- uses: actions/checkout@v5
with:
submodules: recursive
- name: Set up Conda
uses: conda-incubator/setup-miniconda@v3
with:
activate-environment: nlp-test
python-version: 3.12
channels: conda-forge
channel-priority: strict
auto-update-conda: true
miniforge-version: latest
use-mamba: true
- name: Install cyipopt via conda
run: |
conda install -y -c conda-forge cyipopt
- name: Install test dependencies
run: |
pip install -e .
pip install pytest hypothesis
- name: Run nlp tests
run: |
pytest -s -v cvxpy/tests/nlp_tests/.
1 change: 0 additions & 1 deletion .github/workflows/test_optional_solvers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ jobs:
with:
python-version: 3.12
enable-cache: true
- uses: actions/checkout@v5
- name: Setup Julia
uses: julia-actions/setup-julia@v2
with:
Expand Down
Loading
Loading