You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit d495672
Browse filesBrowse the repository at this point in the historyBrowse files
A power undoes a logarithm of its own base whatever the base, every logarithm rule is held to both spellings, and the base of ln is not a mention of e (#1428)
#994, the three-step route the thread settled on, the node declined.
The antilogarithm rule matched a numeric base only, and the twin written for e -- ln(b) being
log(e, b) with a Constant base -- matched e only, so pi ^ log(pi, x) and a ^ log(a, x) stood
while 2 ^ log(2, x) and e ^ ln(x) folded. Three arms now, by what can be said of the base: a
number other than 0 and 1 (a base of 1 or 0 is refused rather than answered, 1 ^ log(1, a)
being 1 and not a), a constant, which is decidably neither, and a symbol, where b != 0 and
b != 1 travel with the answer as its condition -- the logarithm's own domain condition, which
SimplificationContract.md says a rule attaches or does not fire on. The switch spelling has
the same three arms. LogarithmSpellingsTest holds every rule set to both spellings: an identity
written in base 2 and in base e is rewritten by a set on one exactly when on the other, which
is the test the thread asked for and the thing that would reopen the node question.
Substituting for e no longer reaches the base of ln or exp: it is Euler's number standing in
the operator's own definition, compared by reference to Constant.EulerIntrinsic, exactly as a
binder over the name e already treated it since #991; log(e, x) and e ^ x, where the writer
named e, still substitute. The guide's counts and the pinned rule lists move by one each.
Recorded in BREAKING-CHANGES.md against a v2.5.0 build.
Closes#994.
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: BREAKING-CHANGES.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -677,6 +677,9 @@ they had.
677
677
||`"sin(x)^2 + 2 sin(x) + 1".ToEntity().Factorize()`, and every polynomial in one subexpression of its variable |`sin(x) ^ 2 + 2 * sin(x) + 1` — left alone |`(sin(x) + 1) ^ 2`; `sin(x) + sin(x)^3` is `sin(x) * (sin(x) ^ 2 + 1)`|
678
678
|**Silent**|`"arccotan(-1)".ToEntity().Simplify()`, and every negative argument the inverse-trigonometric table knows |`3/4 * pi` — the textbook range, and **not equal to `arccotan(-1)`**, whose value is `-pi/4`|`-1/4 * pi`|
679
679
||`"e ^ ln(x)".ToEntity().Simplify()`, and every exponential of a natural logarithm |`e ^ ln(x)` — left as written |`x`|
680
+
||`"pi ^ log(pi, x)".ToEntity().Simplify()`, and every constant raised to a logarithm of itself |`pi ^ log(pi, x)` — left as written |`x`|
681
+
||`"a ^ log(a, x)".ToEntity().Simplify()`, and every symbolic base raised to a logarithm of itself |`a ^ log(a, x)` — left as written |`x provided not a = 0 and not a = 1` — the logarithm's own domain condition, which the rewrite would otherwise lose ([#994](https://github.com/asc-community/AngouriMath/issues/994)) |
682
+
|**Silent**|`MathS.Ln("x").Substitute("e", 3)`, and `"exp(x)".ToEntity().Substitute("e", 3)`|`log(3, x)` and `3 ^ x` — the base of `ln` and `exp` was reached as a mention of `e`|`ln(x)` and `exp(x)` — it is Euler's number in the operator's definition, not a mention; `log(e, x)` and `e ^ x`, where the writer named `e`, still become `log(3, x)` and `3 ^ x`|
680
683
||`"a => a + 3".ToEntity()`, and every lambda written with an arrow |`UnhandledParseException`|`lambda(a, a + 3)`|
681
684
||`"sqrt(5 + 2 * sqrt(6))".ToEntity().Simplify()`, and every nested radical whose discriminant is a rational square |`sqrt(5 + 2 * sqrt(6))` — left as written |`sqrt(3) + sqrt(2)`|
682
685
||`"sum(k, k, 1, n)".ToEntity().Simplify()`, and every summation whose body is a polynomial in the index |`sum(k, k, 1, n)` — carried |`piecewise((n + n ^ 2) / 2 provided n >= 0, 0)`|
0 commit comments