This problem was mentioned elsewhere, before 14.3 was available to me, and I've forgotten where. But this was a workaround I suggested:
Series[\[Chi], {\[Chi], 0, 0}] + O[\[Chi]]^1
(* O[\[Chi]]^1 *)
Or equivalently:
Series[\[Chi], {\[Chi], 0, 0}] + SeriesData[\[Chi], 0, {}, 1, 1, 1]
(* O[\[Chi]]^1 *)
Here's a couple more ideas for workarounds, based on the same idea above:
Override Series[]
Series[] is rather complicated with many cases. The following works on power/Laurent series and could be a good solution for old code until a WRI can fix the issue. It will have the default V14.3 behavior on expansions about essential singularities.
Unprotect@Series;
$fakeTheOldSeriesOrder = False;
Series[f_, {v_, c_, n_}, opts___?OptionQ] /;
TrueQ[$fakeTheOldSeriesOrder] :=
Block[{$fakeTheOldSeriesOrder = False},
With[{res = Series[f, {v, c, 0}, opts]},
If[Head@res === SeriesData && res[[3]] =!= {} && res[[5]] > n + 1,
res + SeriesData[v, c, {}, res[[4]], Max[res[[4]], n+1], 1],
res
]
]];
Protect@Series;
$fakeTheOldSeriesOrder = True;
Series[x, {x, 0, 0}]
Series[x^10, {x, 0, 0}]
Series[Exp[x]/x^5, {x, 0, -9}]
(*
O[x]^1
O[x]^10
1/O[x]^5
*)
Block[{$fakeTheOldSeriesOrder = False},
Series[x, {x, 0, 0}]]
$fakeTheOldSeriesOrder = False;
Series[x^10, {x, 0, 0}]
Series[Exp[x]/x^5, {x, 0, -9}]
(*
x+O[x]^2
x^10+O[x]^11
1/x^5+1/O[x]^4
*)
This will unset the override:
Unprotect@Series;
Series[f_, {v_, c_, n_}, opts___?OptionQ] /;
TrueQ[$fakeTheOldSeriesOrder] =.;
Protect@Series;
Series truncation utility
truncateSeries // ClearAll;
truncateSeries[sd_SeriesData, n_] :=
sd + SeriesData[sd[[1]], sd[[2]], {}, n + 1, n + 1, 1];
$fakeTheOldSeriesOrder (* check setting *)
Series[x, {x, 0, 0}]
truncateSeries[%, 0]
(*
False
x+O[x]^2
O[x]^1
*)
Efficiency
Truncating a series (that is, truncating SeriesData[]) in the way above is a very fast operation. The overhead is very small compared to the original generation of the series.
Series[t^34/(2 (4*Pi^2 + (-1 + t)^2)^13*(4*Pi^3 + 9*Pi*(-1 + t)^2)^4), {t, Infinity, 1}] // AbsoluteTiming // InputFormIf I figure out a way to refix the 0-order series without reintroducing a massive slowdown I'll do so. In any case the excess term issue is an open bug report, so it won't fall off the radar. $\endgroup$