curvature_memory
Maintain bounded positive-curvature L-BFGS correction memory for large-scale quasi-Newton optimization.
SKILL.mdbasicagent-skill/skill_library/paperbench/pinn/skill/limited_memory_bfgs/curvature_memory/SKILL.md
GitHubCurvature Memory
Use this skill when implementing or auditing an L-BFGS optimizer that must store only a small number of recent BFGS correction pairs. Do not use it for dense BFGS updates or constrained optimization logic.
Inputs
- Previous and next iterates
x_old,x_new. - Previous and next gradients
g_old,g_new. - Existing ordered memory of
(s, y)pairs. - Positive integer memory limit
m.
Outputs
- A FIFO memory list containing at most
mvalid pairs. - Each valid pair satisfies
s^T y > tolerance.
Workflow
- Compute
s = x_new - x_oldandy = g_new - g_old. - Validate matching vector dimensions and memory limit.
- Reject non-positive or tiny curvature pairs.
- Append valid pairs and drop oldest entries until the memory length is bounded.
- Preserve oldest-to-newest order for downstream two-loop recursion.
Validation
Run python tests/test_curvature_memory.py or validate this skill tree with the Paper2Skills module-to-skill validator.
Limitations
This skill manages only correction-pair state. It does not choose step lengths or compute search directions.