Skip to content

[Autoloop: tsb-perf-evolve] #189

Description

@github-actions

🤖 Autoloop program issue for tsb-perf-evolve. The program definition below is mirrored from .autoloop/programs/tsb-perf-evolve/program.md. Edit the file to update the definition; comment on this issue to steer the agent.


tsb perf evolve — Series.sortValues vs pandas Series.sort_values

Goal

Evolve the implementation of Series.sortValues (src/core/series.ts) so that, on the synthetic benchmark in code/benchmark.ts, tsb runs at least as fast as pandas on the equivalent Series.sort_values call (code/benchmark.py).

Concretely, we minimize the ratio

fitness = mean_ms_tsb / mean_ms_pandas

fitness < 1.0 means tsb is faster than pandas; lower is better. We will keep iterating as long as fitness keeps improving.

This is a performance-evolution program — there is one self-contained artifact (Series.sortValues), one scalar fitness (the ratio), and many plausible algorithmic families to try (comparison sort, typed-array indirect sort, dtype-dispatched non-comparison sort, batched/SoA, etc.). It is the canonical case for the AlphaEvolve strategy.

Validity invariants

  1. The existing test suite for sortValues passes.
  2. The function signature is unchanged: sortValues(ascending = true, naPosition: "first" | "last" = "last"): Series<T>.
  3. No new runtime dependencies.
  4. TypeScript strict mode satisfied.
  5. Behaviour identical to reference for all dtypes, both ascending/descending, both naPosition values, and empty Series.

Target

Only modify: src/core/series.ts (sortValues method body) and .autoloop/programs/tsb-perf-evolve/code/**.

Evaluation

Metric: fitness = tsb_mean_ms / pandas_mean_ms. Lower is better. < 1.0 means tsb is faster than pandas.

Generated by Autoloop · ● 3.4M ·

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions