Bug introduced in 10.0.0 and fixed in 10.0.1

I am encountering compatibility issues when loading DumpSave(d) definitions in V10 that have been created with earlier versions. V10 appears to be unable to digest `InterpolatingFunction from earlier version. When looking at an example functions in both versions I get the following:

Definition from the Documentation

points = {{0, 0}, {1, 1}, {2, 3}, {3, 4}, {4, 3}, {5, 0}};
ifun = Interpolation[points]

In V9.0.1 this is digested as:


In V10:


Particularly the second part is not identical:





Can somebody explain the differences to me? Is there a way to still be able to use the old definitions (which were time consuming to create) in V10?

  • $\begingroup$ The V10 documentation doesn't mention any modifications since V3, but this is clearly bogus. I think the changes were made to support the new output format for interpolation functions that V10 implemented. I like the new output format. $\endgroup$
    – m_goldberg
    Aug 18, 2014 at 13:32
  • 5
    $\begingroup$ But what can you do except rebuild them? WRI giveth and WRI taketh away. I guess I advise complaining to WRI tech support. $\endgroup$
    – m_goldberg
    Aug 18, 2014 at 13:44
  • 3
    $\begingroup$ This is a bug and seems to be fixed in the upcoming V10.0.1 release. $\endgroup$
    – user21
    Aug 19, 2014 at 9:43
  • 1
    $\begingroup$ @theDriver, my guess is more on the order of weeks than month. $\endgroup$
    – user21
    Aug 20, 2014 at 6:38
  • 1
    $\begingroup$ @Mr.Wizard Look's like it's fixed now in V10.0.1. $\endgroup$ Sep 23, 2014 at 12:53

1 Answer 1


Following How to splice together several instances of InterpolatingFunction? which I updated earlier today, before seeing this question, there are several new Properties for InterpolatingFunction expressions in version 10:

v7 = {"Coordinates", "DerivativeOrder", "Domain", "Evaluate", "Grid", 
   "InterpolationOrder", "MethodInformation", "Methods", "Properties", "ValuesOnGrid"};

v10 = {"Coordinates", "DerivativeOrder", "Domain", "ElementMesh", "Evaluate", "Grid", 
   "InterpolationMethod", "InterpolationOrder", "MethodInformation", "Methods", 
   "OutputDimensions", "Periodicity", "PlottableQ", "Properties", "QuantityUnits", 

Complement[v10, v7]
{"ElementMesh", "InterpolationMethod", "OutputDimensions",
 "Periodicity", "PlottableQ", "QuantityUnits"}

I suspect that the additional parameters correlate one or more of these. Proceeding with that assumption I searched for a mapping and found:

test1 = Array[{Quantity[#, "Second"], Quantity[#^2, "Meters"]} &, 10] // Interpolation;

{4, 3, 0, {10}, {4}, 0, 0, 0, 0, Automatic, {"Seconds"}, "Meters", True}

{{"Seconds"}, "Meters"}


Older InterpolatingFunction expressions should not have any units associated (I believe) therefore you should always be able to use {},{} for those parameters. Apparently "PlottableQ" is False unless there are units so you should be able to use False there as well.

ifun9 = InterpolatingFunction[{{0, 5}}, {4, 3, 0, {6}, {4}, 0, 0, 0, 0, 
    Automatic}, {{0, 1, 2, 3, 4, 5}}, {{0}, {1}, {3}, {4}, {3}, {0}}, {Automatic}];

ifunFixed = MapAt[Join[#, {{}, {}, False}] &, ifun9, 2];

Plot[ifunFixed[x], {x, 0, 5}]

enter image description here

  • $\begingroup$ Works like a charm. Thanks! $\endgroup$ Aug 19, 2014 at 9:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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