Repository navigation
Say what the three-argument integral actually cost, measured on 1.3.0 - #875
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Finishes #847. Its two remaining items —
Syntax.mdomitting the definite form, and 1.4.0 having no home inBREAKING-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 asintegral(f, x). That makes it look like a no-op form being dropped. A count of two or more was a genuine iterated integral: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:
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 aFunctionArgumentCountExceptionnaming "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