Skip to content

Commit 363edfa

Browse files
Say what the three-argument integral actually cost, measured on 1.3.0 (#875)
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>
1 parent e74323f commit 363edfa

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

BREAKING-CHANGES.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1795,7 +1795,8 @@ until a string is parsed.
17951795
| | 1.3.0 | 1.4.0 onwards |
17961796
|---|---|---|
17971797
| `integral(f, x, 1)` | accepted, read as `integral(f, x)` | `FunctionArgumentCountException` |
1798-
| `integral(f, x, a, b)` || the definite integral from `a` to `b` |
1798+
| `integral(x, x, 2)` | the second antiderivative, `x ^ 3 / 6` | `FunctionArgumentCountException` |
1799+
| `integral(x, x, 0, 1)` | `FunctionArgumentCountException` | the definite integral from `0` to `1` |
17991800

18001801
The third argument used to be a repetition count and is now the lower bound of a range, so three
18011802
arguments name neither form and are refused. `derivative(f, x, n)` is unaffected and still takes an
@@ -1808,7 +1809,11 @@ against 1.4.0 since January without anyone seeing it, because they were pinned t
18081809
[#846](https://github.com/asc-community/AngouriMath/pull/846) is what surfaced it.
18091810

18101811
**What to do.** `integral(f, x, 1)` becomes `integral(f, x)` — identical in meaning, since 1.3.0
1811-
turned the former into the latter anyway. For a repeated antiderivative, nest the calls.
1812+
turned the former into the latter anyway. A count of two or more was not a no-op and is the part
1813+
that is actually gone: nest the calls instead, `integral(integral(f, x), x)`, which 1.3.0 accepted
1814+
as well. Expect the answer to differ by the constants of integration, which the same PR began
1815+
adding — where `integral(x, x, 2)` gave `x ^ 3 / 6` on 1.3.0, the nested form gives
1816+
`C_1 + C * x + x ^ 3 / 6` from 1.4.0 onwards.
18121817

18131818
---
18141819

0 commit comments

Comments
 (0)