Skip to content

Split up ext::secondary file#254

Merged
JoeyBF merged 1 commit into
SpectralSequences:masterfrom
JoeyBF:split_secondary
Jul 1, 2026
Merged

Split up ext::secondary file#254
JoeyBF merged 1 commit into
SpectralSequences:masterfrom
JoeyBF:split_secondary

Conversation

@JoeyBF

@JoeyBF JoeyBF commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

As the comments say, this integrates the secondary machinery by having the primary and secondary variants of structs (Resolution, ResolutionHomomorphism, etc.) in the same file.

Summary by CodeRabbit

  • New Features

    • Added secondary-lift support across chain complexes, resolutions, and maps.
    • Exposed new secondary resolution, homotopy, and homomorphism capabilities for deeper spectral-sequence calculations.
    • Added new secondary-page computation and nullhomotopy helpers.
  • Refactor

    • Moved secondary-related implementations into dedicated internal modules.
    • Updated module visibility and re-exports so the new secondary types remain available through the public API.

@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 30ccba7e-3e29-476b-b4ea-b228fb1c1a13

📥 Commits

Reviewing files that changed from the base of the PR and between 468f658 and d731aa3.

📒 Files selected for processing (5)
  • ext/src/chain_complex/chain_homotopy.rs
  • ext/src/chain_complex/mod.rs
  • ext/src/resolution.rs
  • ext/src/resolution_homomorphism.rs
  • ext/src/secondary.rs

📝 Walkthrough

Walkthrough

Refactors the "secondary" lift machinery in the ext crate by extracting concrete implementations of SecondaryResolution, SecondaryResolutionHomomorphism, and SecondaryChainHomotopy from secondary.rs into dedicated pub(crate) mod secondary submodules within resolution.rs, resolution_homomorphism.rs, and chain_homotopy.rs, which are then re-exported from secondary.rs.

Changes

Secondary Lift Module Reorganization

Layer / File(s) Summary
Module visibility and re-exports
ext/src/chain_complex/mod.rs, ext/src/secondary.rs
chain_homotopy module visibility becomes pub(crate); secondary.rs drops in-file struct/impl definitions and re-exports concrete secondary lift types from their new module locations, adjusting imports accordingly.
SecondaryResolution implementation
ext/src/resolution.rs
Adds SecondaryResolution<CC> with homotopy storage and intermediates cache; implements SecondaryLift (shift, max, composite, compute_intermediate) and adds new, homotopy, and e3_page methods.
SecondaryResolutionHomomorphism implementation
ext/src/resolution_homomorphism.rs
Adds SecondaryResolutionHomomorphism<CC1, CC2> with SecondaryLift implementation, constructor/accessors, hom_k_with/hom_k for computing secondary homotopy maps, and product_nullhomotopy using an sseq quasi-inverse.
SecondaryChainHomotopy implementation
ext/src/chain_complex/chain_homotopy.rs
Adds SecondaryChainHomotopy<S, T, U> wrapping a ChainHomotopy with secondary resolution homomorphisms and optional lambda maps; implements SecondaryLift and a validating new constructor with save-directory setup.

Sequence Diagram(s)

sequenceDiagram
  participant Caller
  participant SecondaryResolutionHomomorphism
  participant UnderlyingMap
  participant Sseq

  Caller->>SecondaryResolutionHomomorphism: product_nullhomotopy(lambda_part, sseq, b, class)
  SecondaryResolutionHomomorphism->>SecondaryResolutionHomomorphism: hom_k_with(class, lambda_part)
  SecondaryResolutionHomomorphism->>UnderlyingMap: hom_k(lambda_part)
  SecondaryResolutionHomomorphism->>Sseq: quasi_inverse for d2 differential
  Sseq-->>Caller: return resulting FpVector
Loading

Estimated code review effort

🎯 5 (Critical) | ⏱️ ~120 minutes

Possibly related PRs

  • SpectralSequences/sseq#226: The new SecondaryResolution::e3_page and SecondaryResolutionHomomorphism::{hom_k_with, hom_k, product_nullhomotopy} build directly on the stage-2 sseq::Sseq<2, sseq::Adams> API introduced there.
  • SpectralSequences/sseq#241: Depends on the SecondaryChainHomotopy/SecondaryResolution/SecondaryResolutionHomomorphism composite/compute_intermediate machinery added here to implement SecondaryExtAlgebra's d2 differential.

Suggested reviewers

  • hoodmane

A rabbit hops through code so deep,
Sorting secondary lifts while others sleep,
Homotopies tucked in modules new,
Re-exports gleam like morning dew,
Hop, hop, the lift is clean and true! 🐇✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the main change: ext::secondary was split into separate modules and re-exports.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@JoeyBF

JoeyBF commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator Author

@CodeRabbit review

@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@JoeyBF JoeyBF merged commit 7ffb62d into SpectralSequences:master Jul 1, 2026
20 checks passed
@JoeyBF JoeyBF deleted the split_secondary branch July 1, 2026 02:22
github-actions Bot added a commit that referenced this pull request Jul 1, 2026
github-actions Bot added a commit to JoeyBF/sseq that referenced this pull request Jul 1, 2026
@JoeyBF JoeyBF mentioned this pull request Jul 8, 2026
4 tasks
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