{"bundle_type":"pith_open_graph_bundle","bundle_version":"1.0","pith_number":"pith:2025:XZJNGXUNWTJD7TILN7UYAVVYMT","short_pith_number":"pith:XZJNGXUN","canonical_record":{"source":{"id":"2504.14099","kind":"arxiv","version":1},"metadata":{"license":"http://creativecommons.org/licenses/by/4.0/","primary_cat":"math.OC","submitted_at":"2025-04-18T22:49:17Z","cross_cats_sorted":[],"title_canon_sha256":"7cec73c1bce9894a5eaa950c94256fe84329bfdd58ca43cb83bd0e5bce6d8f61","abstract_canon_sha256":"f66458ce8679fa4addea207a973359196eaaebcd1e103696a9f6a173238633d8"},"schema_version":"1.0"},"canonical_sha256":"be52d35e8db4d23fcd0b6fe98056b864fb984cae59df8b0b63843c875c8c2a7e","source":{"kind":"arxiv","id":"2504.14099","version":1},"source_aliases":[{"alias_kind":"arxiv","alias_value":"2504.14099","created_at":"2026-07-05T10:51:10Z"},{"alias_kind":"arxiv_version","alias_value":"2504.14099v1","created_at":"2026-07-05T10:51:10Z"},{"alias_kind":"doi","alias_value":"10.48550/arxiv.2504.14099","created_at":"2026-07-05T10:51:10Z"},{"alias_kind":"pith_short_12","alias_value":"XZJNGXUNWTJD","created_at":"2026-07-05T10:51:10Z"},{"alias_kind":"pith_short_16","alias_value":"XZJNGXUNWTJD7TIL","created_at":"2026-07-05T10:51:10Z"},{"alias_kind":"pith_short_8","alias_value":"XZJNGXUN","created_at":"2026-07-05T10:51:10Z"}],"events":[{"event_type":"record_created","subject_pith_number":"pith:2025:XZJNGXUNWTJD7TILN7UYAVVYMT","target":"record","payload":{"canonical_record":{"source":{"id":"2504.14099","kind":"arxiv","version":1},"metadata":{"license":"http://creativecommons.org/licenses/by/4.0/","primary_cat":"math.OC","submitted_at":"2025-04-18T22:49:17Z","cross_cats_sorted":[],"title_canon_sha256":"7cec73c1bce9894a5eaa950c94256fe84329bfdd58ca43cb83bd0e5bce6d8f61","abstract_canon_sha256":"f66458ce8679fa4addea207a973359196eaaebcd1e103696a9f6a173238633d8"},"schema_version":"1.0"},"canonical_sha256":"be52d35e8db4d23fcd0b6fe98056b864fb984cae59df8b0b63843c875c8c2a7e","receipt":{"kind":"pith_receipt","key_id":"pith-v1-2026-05","algorithm":"ed25519","signed_at":"2026-07-05T10:51:10.808515Z","signature_b64":"mis1/96zLOEUwJgFVfAZO71XNe2a7PoDmfss/C153A+TQSpAIHx1iHgASNUbqV+/6YJHqQhS3/2sNjRPLGnTCQ==","signed_message":"canonical_sha256_bytes","builder_version":"pith-number-builder-2026-05-17-v1","receipt_version":"0.3","canonical_sha256":"be52d35e8db4d23fcd0b6fe98056b864fb984cae59df8b0b63843c875c8c2a7e","last_reissued_at":"2026-07-05T10:51:10.808005Z","signature_status":"signed_v1","first_computed_at":"2026-07-05T10:51:10.808005Z","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"source_kind":"arxiv","source_id":"2504.14099","source_version":1,"attestation_state":"computed"},"signer":{"signer_id":"pith.science","signer_type":"pith_registry","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"created_at":"2026-07-05T10:51:10Z","supersedes":[],"prev_event":null,"signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"OqhLdGN7rrwofhHOOX1bXhDgFZJmCB8Rf2pNEPEkTp5YyPEeuAlQ38uBKyKUNXJCp4Pv/tXHz5g60MGLFGXJBA==","signed_message":"open_graph_event_sha256_bytes","signed_at":"2026-08-17T18:53:38.383290Z"},"content_sha256":"5a26ee5f44efd7321568721453b81a12645c5aa8bc7c9c2617d14b8a6731f4cb","schema_version":"1.0","event_id":"sha256:5a26ee5f44efd7321568721453b81a12645c5aa8bc7c9c2617d14b8a6731f4cb"},{"event_type":"graph_snapshot","subject_pith_number":"pith:2025:XZJNGXUNWTJD7TILN7UYAVVYMT","target":"graph","payload":{"graph_snapshot":{"paper":{"title":"Code generation for solving and differentiating through convex optimization problems","license":"http://creativecommons.org/licenses/by/4.0/","headline":"","cross_cats":[],"primary_cat":"math.OC","authors_text":"Maximilian Schaller, Stephen Boyd","submitted_at":"2025-04-18T22:49:17Z","abstract_excerpt":"We introduce custom code generation for parametrized convex optimization problems that supports evaluating the derivative of the solution with respect to the parameters, i.e., differentiating through the optimization problem. We extend the open source code generator CVXPYgen, which itself extends CVXPY, a Python-embedded domain-specific language with a natural syntax for specifying convex optimization problems, following their mathematical description. Our extension of CVXPYgen adds a custom C implementation to differentiate the solution of a convex optimization problem with respect to its par"},"claims":{"count":0,"items":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"source":{"id":"2504.14099","kind":"arxiv","version":1},"verdict":{"id":null,"model_set":{},"created_at":null,"strongest_claim":"","one_line_summary":"","pipeline_version":null,"weakest_assumption":"","pith_extraction_headline":""},"integrity":{"clean":true,"summary":{"advisory":0,"critical":0,"by_detector":{},"informational":0},"endpoint":"/pith/2504.14099/integrity.json","findings":[],"available":true,"detectors_run":[],"snapshot_sha256":"c28c3603d3b5d939e8dc4c7e95fa8dfce3d595e45f758748cecf8e644a296938"},"references":{"count":0,"sample":[],"resolved_work":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57","internal_anchors":0},"formal_canon":{"evidence_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"author_claims":{"count":0,"strong_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"builder_version":"pith-number-builder-2026-05-17-v1"},"verdict_id":null},"signer":{"signer_id":"pith.science","signer_type":"pith_registry","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54"},"created_at":"2026-07-05T10:51:10Z","supersedes":[],"prev_event":null,"signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"terctUTt30FkyjGCgcnfjCVyk6GE0PZ+N2EPKY95jvVbkZ+C+3R1j7R4DXfIEwR9J6cMbsNnv0vpiI/3mDp5Cw==","signed_message":"open_graph_event_sha256_bytes","signed_at":"2026-08-17T18:53:38.383664Z"},"content_sha256":"8c82238f0d83113faac9c3d45f55231c84cffb221bf83b5368d72c843bd356ed","schema_version":"1.0","event_id":"sha256:8c82238f0d83113faac9c3d45f55231c84cffb221bf83b5368d72c843bd356ed"}],"timestamp_proofs":[],"mirror_hints":[{"mirror_type":"https","name":"Pith Resolver","base_url":"https://pith.science","bundle_url":"https://pith.science/pith/XZJNGXUNWTJD7TILN7UYAVVYMT/bundle.json","state_url":"https://pith.science/pith/XZJNGXUNWTJD7TILN7UYAVVYMT/state.json","well_known_bundle_url":"https://pith.science/.well-known/pith/XZJNGXUNWTJD7TILN7UYAVVYMT/bundle.json","status":"primary"}],"public_keys":[{"key_id":"pith-v1-2026-05","algorithm":"ed25519","format":"raw","public_key_b64":"stVStoiQhXFxp4s2pdzPNoqVNBMojDU/fJ2db5S3CbM=","public_key_hex":"b2d552b68890857171a78b36a5dccf368a953413288c353f7c9d9d6f94b709b3","fingerprint_sha256_b32_first128bits":"RVFV5Z2OI2J3ZUO7ERDEBCYNKS","fingerprint_sha256_hex":"8d4b5ee74e4693bcd1df2446408b0d54","rotates_at":null,"url":"https://pith.science/pith-signing-key.json","notes":"Pith uses this Ed25519 key to sign canonical record SHA-256 digests. Verify with: ed25519_verify(public_key, message=canonical_sha256_bytes, signature=base64decode(signature_b64))."}],"merge_version":"pith-open-graph-merge-v1","built_at":"2026-08-17T18:53:38Z","links":{"resolver":"https://pith.science/pith/XZJNGXUNWTJD7TILN7UYAVVYMT","bundle":"https://pith.science/pith/XZJNGXUNWTJD7TILN7UYAVVYMT/bundle.json","state":"https://pith.science/pith/XZJNGXUNWTJD7TILN7UYAVVYMT/state.json","well_known_bundle":"https://pith.science/.well-known/pith/XZJNGXUNWTJD7TILN7UYAVVYMT/bundle.json"},"state":{"state_type":"pith_open_graph_state","state_version":"1.0","pith_number":"pith:2025:XZJNGXUNWTJD7TILN7UYAVVYMT","merge_version":"pith-open-graph-merge-v1","event_count":2,"valid_event_count":2,"invalid_event_count":0,"equivocation_count":0,"current":{"canonical_record":{"metadata":{"abstract_canon_sha256":"f66458ce8679fa4addea207a973359196eaaebcd1e103696a9f6a173238633d8","cross_cats_sorted":[],"license":"http://creativecommons.org/licenses/by/4.0/","primary_cat":"math.OC","submitted_at":"2025-04-18T22:49:17Z","title_canon_sha256":"7cec73c1bce9894a5eaa950c94256fe84329bfdd58ca43cb83bd0e5bce6d8f61"},"schema_version":"1.0","source":{"id":"2504.14099","kind":"arxiv","version":1}},"source_aliases":[{"alias_kind":"arxiv","alias_value":"2504.14099","created_at":"2026-07-05T10:51:10Z"},{"alias_kind":"arxiv_version","alias_value":"2504.14099v1","created_at":"2026-07-05T10:51:10Z"},{"alias_kind":"doi","alias_value":"10.48550/arxiv.2504.14099","created_at":"2026-07-05T10:51:10Z"},{"alias_kind":"pith_short_12","alias_value":"XZJNGXUNWTJD","created_at":"2026-07-05T10:51:10Z"},{"alias_kind":"pith_short_16","alias_value":"XZJNGXUNWTJD7TIL","created_at":"2026-07-05T10:51:10Z"},{"alias_kind":"pith_short_8","alias_value":"XZJNGXUN","created_at":"2026-07-05T10:51:10Z"}],"graph_snapshots":[{"event_id":"sha256:8c82238f0d83113faac9c3d45f55231c84cffb221bf83b5368d72c843bd356ed","target":"graph","created_at":"2026-07-05T10:51:10Z","signer":{"key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signer_id":"pith.science","signer_type":"pith_registry"},"payload":{"graph_snapshot":{"author_claims":{"count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57","strong_count":0},"builder_version":"pith-number-builder-2026-05-17-v1","claims":{"count":0,"items":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"formal_canon":{"evidence_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"integrity":{"available":true,"clean":true,"detectors_run":[],"endpoint":"/pith/2504.14099/integrity.json","findings":[],"snapshot_sha256":"c28c3603d3b5d939e8dc4c7e95fa8dfce3d595e45f758748cecf8e644a296938","summary":{"advisory":0,"by_detector":{},"critical":0,"informational":0}},"paper":{"abstract_excerpt":"We introduce custom code generation for parametrized convex optimization problems that supports evaluating the derivative of the solution with respect to the parameters, i.e., differentiating through the optimization problem. We extend the open source code generator CVXPYgen, which itself extends CVXPY, a Python-embedded domain-specific language with a natural syntax for specifying convex optimization problems, following their mathematical description. Our extension of CVXPYgen adds a custom C implementation to differentiate the solution of a convex optimization problem with respect to its par","authors_text":"Maximilian Schaller, Stephen Boyd","cross_cats":[],"headline":"","license":"http://creativecommons.org/licenses/by/4.0/","primary_cat":"math.OC","submitted_at":"2025-04-18T22:49:17Z","title":"Code generation for solving and differentiating through convex optimization problems"},"references":{"count":0,"internal_anchors":0,"resolved_work":0,"sample":[],"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"source":{"id":"2504.14099","kind":"arxiv","version":1},"verdict":{"created_at":null,"id":null,"model_set":{},"one_line_summary":"","pipeline_version":null,"pith_extraction_headline":"","strongest_claim":"","weakest_assumption":""}},"verdict_id":null}}],"author_attestations":[],"timestamp_anchors":[],"storage_attestations":[],"citation_signatures":[],"replication_records":[],"corrections":[],"mirror_hints":[],"record_created":{"event_id":"sha256:5a26ee5f44efd7321568721453b81a12645c5aa8bc7c9c2617d14b8a6731f4cb","target":"record","created_at":"2026-07-05T10:51:10Z","signer":{"key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signer_id":"pith.science","signer_type":"pith_registry"},"payload":{"attestation_state":"computed","canonical_record":{"metadata":{"abstract_canon_sha256":"f66458ce8679fa4addea207a973359196eaaebcd1e103696a9f6a173238633d8","cross_cats_sorted":[],"license":"http://creativecommons.org/licenses/by/4.0/","primary_cat":"math.OC","submitted_at":"2025-04-18T22:49:17Z","title_canon_sha256":"7cec73c1bce9894a5eaa950c94256fe84329bfdd58ca43cb83bd0e5bce6d8f61"},"schema_version":"1.0","source":{"id":"2504.14099","kind":"arxiv","version":1}},"canonical_sha256":"be52d35e8db4d23fcd0b6fe98056b864fb984cae59df8b0b63843c875c8c2a7e","receipt":{"algorithm":"ed25519","builder_version":"pith-number-builder-2026-05-17-v1","canonical_sha256":"be52d35e8db4d23fcd0b6fe98056b864fb984cae59df8b0b63843c875c8c2a7e","first_computed_at":"2026-07-05T10:51:10.808005Z","key_id":"pith-v1-2026-05","kind":"pith_receipt","last_reissued_at":"2026-07-05T10:51:10.808005Z","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","receipt_version":"0.3","signature_b64":"mis1/96zLOEUwJgFVfAZO71XNe2a7PoDmfss/C153A+TQSpAIHx1iHgASNUbqV+/6YJHqQhS3/2sNjRPLGnTCQ==","signature_status":"signed_v1","signed_at":"2026-07-05T10:51:10.808515Z","signed_message":"canonical_sha256_bytes"},"source_id":"2504.14099","source_kind":"arxiv","source_version":1}}},"equivocations":[],"invalid_events":[],"applied_event_ids":["sha256:5a26ee5f44efd7321568721453b81a12645c5aa8bc7c9c2617d14b8a6731f4cb","sha256:8c82238f0d83113faac9c3d45f55231c84cffb221bf83b5368d72c843bd356ed"],"state_sha256":"4eb5a239ecac8d3c31c57eb1473fd8a497f99051246f8bd3f2d6f4ac6056fe69"},"bundle_signature":{"signature_status":"signed_v1","algorithm":"ed25519","key_id":"pith-v1-2026-05","public_key_fingerprint":"8d4b5ee74e4693bcd1df2446408b0d54","signature_b64":"nlBN6thm04JfLzyDKtjFfG6yMNtLL2r+6px6gCCl080RbIbdaoHVHdaie5xARsHIvvYVsZLHrW8wkb8PRz/uAQ==","signed_message":"bundle_sha256_bytes","signed_at":"2026-08-17T18:53:38.386207Z","bundle_sha256":"561413920287068c643aded4882aa96c07ce821aeee9d9cd9959a07da75714c7"}}