# Mathematica 12 crashes upon taking the Log of a double series

Bug introduced in 11.1 and fixed in 12.1

I recently upgraded from Mathematica 10.4 to 12.0. Unfortunately, I am now experiencing crashes with code that was stable in 10.4. The code involves extensive manipulation of the Series function with 2 variables. The culprit seems to be when the logarithm of such a series is taken.

Here is an example:

Log[SeriesData[p,DirectedInfinity[1],List[SeriesData[e,0,List[1,0,Rational[-3,2]],0,3,1],0,SeriesData[e,0,List[3,0,Rational[-3,2]],0,3,1],0,SeriesData[e,0,List[Rational[9,2],0,12],0,3,1],0,SeriesData[e,0,List[Rational[27,2],0,63],0,3,1],0,SeriesData[e,0,List[Rational[405,8],0,Rational[5499,16]],0,3,1]],0,9,2]]


On Mathematica 10.4, this (rapidly) evaluates to another series in (1/p) and e, while on Mathematica 12.0, it stalls for several seconds and then crashes. Simple workarounds using "Normal" inside the Log and then taking another Series are not ideal, as I need Mathematica to track the appropriate orders automatically, rather than having to set all the orders manually.

Is this a bug, or a side effect of some new functionality? Is there a simple way to achieve the 10.4 behavior?

• First of all I would report the crash to Wolfram, as reporting it here won't get the root issue addressed. Although I do understand looking for a workaround.
– ktm
Jun 4 '19 at 15:23
• Is there some standard way to do that beyond sending a message at wolfram.com/support? Jun 4 '19 at 15:44
• I'll report it as a bug. Jun 4 '19 at 16:10
• Was this fixed in 12.1? (I don't have access at the moment.) Apr 29 '20 at 2:07

This bug has been fixed as of version 12.1.0

In[1]:= $Version Out[1]= 12.1.0 for Linux x86 (64-bit) (March 18, 2020) In[2]:= Log[SeriesData[p,DirectedInfinity[1],List[SeriesData[e,0,List[1,0,Rational[-3,2]],0,3,1],0,SeriesData[e,0,List[3,0,Rational[-3,2]],0,3, 1],0,SeriesData[e,0,List[Rational[9,2],0,12],0,3,1],0,SeriesData[e,0,List[Rational[27,2],0,63],0,3,1],0,SeriesData[e,0,List[Rational[405,8],0,R ational[5499,16]],0,3,1]],0,9,2]] 2 2 2 2 3 e 3 (1 + e ) 39 e 9 (2 + 9 e ) -4 Out[2]= Log[1 - ----] + ---------- + ----- + ------------ + O[p] 2 p 2 3 4 p 2 p  • Interestingly, this output is different from what is returned in Mathematica 10.4. Specifically, in 10.4 the leading logarithmic term is expanded in e as SeriesData[e, 0, List[Rational[-3, 2]], 2, 3, 1]. The older behavior is preferable for my purposes, but this way is manageable. Thanks for the update. May 3 '20 at 3:01 I am not a nerd as others but to me it seems at first glance and mistake in using e as a variable. Change to another name of the variable. Then start with SeriesData[p, DirectedInfinity[1], List[SeriesData[x, 0, List[1, 0, Rational[-3, 2]], 0, 3, 1], 0, SeriesData[x, 0, List[3, 0, Rational[-3, 2]], 0, 3, 1], 0, SeriesData[x, 0, List[Rational[9, 2], 0, 12], 0, 3, 1], 0, SeriesData[x, 0, List[Rational[27, 2], 0, 63], 0, 3, 1], 0, SeriesData[x, 0, List[Rational[405, 8], 0, Rational[5499, 16]], 0, 3, 1]], 0, 9, 2]  This is Mathematica the suggests to truncate the higher-order terms with Normal: This is a sum that can be brought to denominator 16 p^4. The Log can than be developed further into a Series: I am using $Version

12.0.0 for Mac OS X x86 (64-bit) (April 7, 2019)


All that is probably not done in 12.0.0 is the development into a Series of the Log on a Series. That is different from the evaluation in other versions of Mathematica but it is to me not really an error.

I admit this is not a Laurent expansion of complex numbers. The problem of the given expansion form @ilan for the Log is that it does not turn to positive exponents.

The example in the Mathematica documentation demonstration for a Laurent expansion this general behavior for finite type of singularities.

The solution in Mathematica for a Series of Log is:

Series[Log[x], {x, 0, 3}]

SeriesData[x, 0, {
Log[x]}, 0, 4, 1]

• Good discovery. I wonder if this isn't a case of name collision where 'e' was used internally and then leaked. May 3 '20 at 16:03
• This answer appears to ignore the main point of the question. The goal is to take Log[doubleSeries] specifically without using Normal and then recreating the series manually as you have done here. Doing Log[doubleSeries] crashes in 12.0 regardless of the variable names. May 3 '20 at 16:57