Skip to content

Say what the three-argument integral actually cost, measured on 1.3.0 - #875

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
docs/integral-iteration-count-loss
Aug 11, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
docs/integral-iteration-count-loss

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

Finishes #847. Its two remaining items — Syntax.md omitting the definite form, and 1.4.0 having no home in BREAKING-CHANGES.md — are both already done. What was left is that the 1.4.0 entry understates the change, in a way that would mislead someone acting on it.

The removal was not a no-op

The table showed one row, integral(f, x, 1), which 1.3.0 read as integral(f, x). That makes it look like a no-op form being dropped. A count of two or more was a genuine iterated integral:

1.3.0   integral(x, x, 2)   ->  x ^ 3 / 6
1.4.0   integral(x, x, 2)   ->  FunctionArgumentCountException

The migration path is right, but not answer-for-answer

The entry already said "for a repeated antiderivative, nest the calls" — correct, and now the table shows why it is needed. But #657 also began adding the constants of integration, so following the advice does not give back the old answer:

1.3.0   integral(x, x, 2)             ->  x ^ 3 / 6
1.3.0   integral(integral(x, x), x)   ->  x ^ 3 / 6
1.4.0   integral(integral(x, x), x)   ->  C_1 + C * x + x ^ 3 / 6
master  integral(integral(x, x), x)   ->  C_1 + C * x + x ^ 3 / 6

Someone who takes the migration path and diffs the output should be told which difference to expect rather than discover it.

A dash where a value was asked for

The integral(f, x, a, b) row read — for 1.3.0. Measured, it is a FunctionArgumentCountException naming "3 arguments or 2 arguments" — the mirror of the message 1.4.0 gives for three. This file's own preamble asks for the value on the previous release, so it now gives it.

How it was measured

Each line comes from parsing the string in a process referencing that published package — 1.3.0 and 1.4.0 from nuget, master built from source. Not read off the diff.

Documentation only; no code changed.

🤖 Generated with Claude Code

The 1.4.0 entry showed one row, integral(f, x, 1), which 1.3.0 read as integral(f, x). That
makes the removal look like a no-op losing a no-op. It was not: a count of two or more was a
real iterated integral, and it is the part that is gone.

    1.3.0   integral(x, x, 2)             -> x ^ 3 / 6
    1.4.0   integral(x, x, 2)             -> FunctionArgumentCountException

The entry already said "for a repeated antiderivative, nest the calls", which is right and is
now the row that shows why it is needed. But following that advice does not give back what was
there, because #657 also began adding the constants of integration:

    1.3.0   integral(x, x, 2)             -> x ^ 3 / 6
    1.3.0   integral(integral(x, x), x)   -> x ^ 3 / 6
    1.4.0   integral(integral(x, x), x)   -> C_1 + C * x + x ^ 3 / 6
    master  integral(integral(x, x), x)   -> C_1 + C * x + x ^ 3 / 6

So the migration path is right but not answer-for-answer, and someone who takes it and diffs
the output should be told which difference to expect rather than discovering it.

The last row of the table also read "--" for integral(f, x, a, b) on 1.3.0, where the measured
value is a FunctionArgumentCountException naming three arguments or two -- the mirror image of
the message 1.4.0 gives for three. This file asks for the value on the previous release rather
than a dash, so it now gives it.

Each line above measured by parsing the string in a process referencing that published package,
1.3.0 and 1.4.0 from nuget and master built from source. Documentation only; no code changed.

Closes #847.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
@Rafael-SOWNet
Rafael-SOWNet merged commit 363edfa into master Aug 11, 2026
24 checks passed
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