Skip to content

Add lazy-core builders for all 30 COPS instances - #15

Closed
sshin23 wants to merge 1 commit into
mainfrom
ss/tape
Closed

Add lazy-core builders for all 30 COPS instances#15
sshin23 wants to merge 1 commit into
mainfrom
ss/tape

Conversation

@sshin23

@sshin23 sshin23 commented Aug 8, 2026

Copy link
Copy Markdown
Member

Every COPS instance gains a <name>_core() builder in the ExaModels extension alongside the existing constructor — all 30 models. Each is built once against the ArgTracer size sentinel, materialized at any size via ExaModels.ExaModel(core, (; nh = n)), and consumable by ExaModelC's compile_library AOT path. The builders call the same expressions with the same coefficients, bounds, starts, and add_* order as the direct constructors. Value-dependent index sets and computed start/bound arrays ride as deferred values resolved once per materialization; instance scalars sit directly in the expression trees. The fixed-size instances (transition_state, tetra_*, triangle_*) are identity builders at their one size.

A new testset materializes every core against the direct constructor at two sizes (dims, bounds, starts, values, sparse-assembled Jacobian/Hessian) and solves to the COPS reference objectives where listed.

The lazy-core API needs ExaModels' ss/lazy-core branch; the test Project.toml carries a [sources] pin until that is merged and released.

🤖 Generated with Claude Code

Every COPS instance gains a <name>_core() builder in the ExaModels extension
alongside the existing constructor. Each is built once against the ArgTracer
size sentinel, materialized at any size via ExaModels.ExaModel(core, (; nh =
n)), and consumable by ExaModelC's compile_library AOT path. The builders
call the same expressions with the same coefficients, bounds, starts, and
add_* order as the direct constructors. Value-dependent index sets and
computed start/bound arrays ride as deferred values resolved once per
materialization; instance scalars sit directly in the expression trees. The
fixed-size instances (transition_state, tetra_*, triangle_*) are identity
builders at their one size.

A new testset materializes every core against the direct constructor at two
sizes (dims, bounds, starts, values, sparse-assembled Jacobian/Hessian) and
solves to the COPS reference objectives where listed.

The lazy-core API needs ExaModels' ss/lazy-core branch; the test
Project.toml carries a [sources] pin until that is merged and released.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sshin23 sshin23 changed the title Add tape builders for chain and camshape Add lazy-core builders for all 30 COPS instances Aug 9, 2026
@sshin23 sshin23 closed this Aug 13, 2026
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.

1 participant