Skip to content

Comments

Extract diff engine bindings into standalone SparseDiffPy package#148

Merged
dance858 merged 3 commits intomasterfrom
new-structure-setup
Feb 12, 2026
Merged

Extract diff engine bindings into standalone SparseDiffPy package#148
dance858 merged 3 commits intomasterfrom
new-structure-setup

Conversation

@Transurgeon
Copy link
Member

Move C bindings (_bindings/) to the new SparseDiffPy package at SparseDifferentiation/SparseDiffPy and import via
from sparsediffpy import _sparsediffengine as _diffengine. Remove the diff_engine_core submodule and its build configuration.

Transurgeon and others added 3 commits February 11, 2026 23:03
Move C bindings (_bindings/) to the new SparseDiffPy package at
SparseDifferentiation/SparseDiffPy and import via
`from sparsediffpy import _sparsediffengine as _diffengine`.
Remove the diff_engine_core submodule and its build configuration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions
Copy link

Benchmarks that have stayed the same:

   before           after         ratio
 [7919d4d5]       [8d00889c]
      791±0ms          807±0ms     1.02  simple_QP_benchmarks.LeastSquares.time_compile_problem
      267±0ms          272±0ms     1.02  matrix_stuffing.ParamSmallMatrixStuffing.time_compile_problem
     14.3±0ms         14.5±0ms     1.02  simple_QP_benchmarks.ParametrizedQPBenchmark.time_compile_problem
      1.33±0s          1.35±0s     1.02  matrix_stuffing.ParamConeMatrixStuffing.time_compile_problem
      1.83±0s          1.86±0s     1.02  simple_QP_benchmarks.UnconstrainedQP.time_compile_problem
      859±0ms          870±0ms     1.01  simple_LP_benchmarks.SimpleScalarParametrizedLPBenchmark.time_compile_problem
      12.5±0s          12.6±0s     1.01  finance.CVaRBenchmark.time_compile_problem
      2.71±0s          2.74±0s     1.01  quantum_hilbert_matrix.QuantumHilbertMatrix.time_compile_problem
      660±0ms          665±0ms     1.01  matrix_stuffing.ConeMatrixStuffingBench.time_compile_problem
      233±0ms          235±0ms     1.01  simple_QP_benchmarks.SimpleQPBenchmark.time_compile_problem
      4.85±0s          4.88±0s     1.01  optimal_advertising.OptimalAdvertising.time_compile_problem
      269±0ms          270±0ms     1.00  slow_pruning_1668_benchmark.SlowPruningBenchmark.time_compile_problem
      21.6±0s          21.6±0s     1.00  sdp_segfault_1132_benchmark.SDPSegfault1132Benchmark.time_compile_problem
     13.8±0ms         13.8±0ms     1.00  simple_LP_benchmarks.SimpleFullyParametrizedLPBenchmark.time_compile_problem
      304±0ms          304±0ms     1.00  gini_portfolio.Yitzhaki.time_compile_problem
      4.73±0s          4.73±0s     1.00  svm_l1_regularization.SVMWithL1Regularization.time_compile_problem
      4.14±0s          4.13±0s     1.00  huber_regression.HuberRegression.time_compile_problem
      932±0ms          928±0ms     1.00  gini_portfolio.Cajas.time_compile_problem
      490±0ms          488±0ms     1.00  semidefinite_programming.SemidefiniteProgramming.time_compile_problem
      10.9±0s          10.8±0s     0.99  simple_LP_benchmarks.SimpleLPBenchmark.time_compile_problem
      1.00±0s          987±0ms     0.99  finance.FactorCovarianceModel.time_compile_problem
      227±0ms          222±0ms     0.98  gini_portfolio.Murray.time_compile_problem
     38.4±0ms         37.6±0ms     0.98  matrix_stuffing.SmallMatrixStuffing.time_compile_problem
      142±0ms          138±0ms     0.98  high_dim_convex_plasticity.ConvexPlasticity.time_compile_problem
      1.57±0s          1.50±0s     0.95  tv_inpainting.TvInpainting.time_compile_problem

@Transurgeon
Copy link
Member Author

@dance858 this PR cleans up the DNLP repo and adds sparsediffpy as a dependency. All tests seem to pass in the CI :).

@dance858
Copy link
Collaborator

Awesome! Super nice.

@dance858 dance858 merged commit 4641971 into master Feb 12, 2026
46 of 47 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants