Skip to content

A path's metadata carries the endgame's last samples, under any number of threads #504

Open

Description

@ofloveandhate

A path's SolutionMetaData does not carry the endgame's last samples. They cannot be recovered after the solve, and they are what a caller needs to read how the path approached its endpoint: the samples and their times give the power-series or Cauchy approach, the rate at which successive approximations agree, and the evidence a rank read or a singularity diagnosis uses.

Today a caller gets them only by attaching an observer to the endgame (the ComputedSamplePoint events, collected by SampleLadderCollector). Under threading that does not work: each worker runs a copy of the endgame, and an Observable's copy drops its observers (deliberately, so copies are safe on other threads). So the samples exist only in serial runs, and anything recorded from them depends on the thread count, against the rule that a seeded solve's results do not depend on how it ran (#491).

latest_path_point exists, but it is filled only for a path that fails.

Requested: SolutionMetaData carries the endgame's last few samples (the points, at their precision, and their times; two at least), for every path that reaches the endgame, threaded or not. With the existing records machinery they would then reach a solve's path records as well.

Use: a cellular decomposition built on b2 (in development in ofloveandhate/b2_experiments) records the computation behind each point it uses; the endgame's last samples are the part of a path's history that cannot be recomputed later.

🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions