11
$\begingroup$

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?

$\endgroup$
  • $\begingroup$ 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. $\endgroup$ – ktm Jun 4 '19 at 15:23
  • $\begingroup$ Is there some standard way to do that beyond sending a message at wolfram.com/support? $\endgroup$ – cmm0052 Jun 4 '19 at 15:44
  • 7
    $\begingroup$ I'll report it as a bug. $\endgroup$ – Daniel Lichtblau Jun 4 '19 at 16:10
  • $\begingroup$ Was this fixed in 12.1? (I don't have access at the moment.) $\endgroup$ – cmm0052 Apr 29 at 2:07
4
$\begingroup$

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


| improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ 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. $\endgroup$ – cmm0052 May 3 at 3:01
1
$\begingroup$

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

Output

Mathematica the suggests to truncate the higher-order terms with Normal:

Output

This is a sum that can be brought to denominator 16 p^4.

The Log can than be developed further into a Series:

Outout

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]
| improve this answer | |
$\endgroup$
  • $\begingroup$ Good discovery. I wonder if this isn't a case of name collision where 'e' was used internally and then leaked. $\endgroup$ – berniethejet May 3 at 16:03
  • $\begingroup$ 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. $\endgroup$ – cmm0052 May 3 at 16:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.