"INTERPOLATE" missing keyword "DOUBLE"

Issue #8 resolved
Ben West created an issue

The function INTERPOLATE is missing the keyword "DOUBLE". According to documentation, this changes the precision used in calculations, not the precision of the returned data: if data is input as a float, interpolation is done in double and then converted to a float and returned (and if given as a double, it's calculated as a double and returned as a double). The lack of this keyword makes some procedures/functions (such as LINTERP in NASA's astrolib library) crash or otherwise not work as intended, decreasing compatibility with IDL libraries.

Comments (4)

  1. Lajos Foldy repo owner

    FL's INTERPOLATE always uses double precision internally. I have added a (dummy) DOUBLE keyword to avoid missing keyword messages.

    My copy of LINTERP does not use DOUBLE. How does it crash?

  2. Ben West reporter

    You might have a slightly outdated version of astrolib. The DOUBLE call was added in Feb. 2015.

    I can cause the crash by simply calling

    linterp,[0:1],[0:1d],0,a
    

    Really, the input data (second input to LINTERP) needs to be a double. That causes LINTERP to call the DOUBLE keyword, which then errors with "% Error: INTERPOLATE: keyword not allowed: DOUBLE"

  3. Lajos Foldy repo owner

    I have a recent Astrolib from the official github site. It turned out, that linterp.pro was out of sync from the ftp site. Wayne fixed this today.

  4. Log in to comment