function Iau2006XysData(options) {
  options = options ?? Frozen.EMPTY_OBJECT;

  this._xysFileUrlTemplate = Resource.createIfNeeded(
    options.xysFileUrlTemplate,
  );
  this._interpolationOrder = options.interpolationOrder ?? 9;
  this._sampleZeroJulianEphemerisDate =
    options.sampleZeroJulianEphemerisDate ?? 2442396.5;
  this._sampleZeroDateTT = new JulianDate(
    this._sampleZeroJulianEphemerisDate,
    0.0,
    TimeStandard.TAI,
  );
  this._stepSizeDays = options.stepSizeDays ?? 1.0;
  this._samplesPerXysFile = options.samplesPerXysFile ?? 1000;
  this._totalSamples = options.totalSamples ?? 27426;
  this._samples = new Array(this._totalSamples * 3);
  this._chunkDownloadsInProgress = [];

  const order = this._interpolationOrder;

  // Compute denominators and X values for interpolation.
  const denom = (this._denominators = new Array(order + 1));
  const xTable = (this._xTable = new Array(order + 1));

  const stepN = Math.pow(this._stepSizeDays, order);

  for (let i = 0; i <= order; ++i) {
    denom[i] = stepN;
    xTable[i] = i * this._stepSizeDays;

    for (let j = 0; j <= order; ++j) {
      if (j !== i) {
        denom[i] *= i - j;
      }
    }

    denom[i] = 1.0 / denom[i];
  }

  // Allocate scratch arrays for interpolation.
  this._work = new Array(order + 1);
  this._coef = new Array(order + 1);
}
A set of IAU2006 XYS data that is used to evaluate the transformation between the International
Celestial Reference Frame (ICRF) and the International Terrestrial Reference Frame (ITRF).

@alias Iau2006XysData
@constructor

@param {object} [options] Object with the following properties:
@param {Resource|string} [options.xysFileUrlTemplate='Assets/IAU2006_XYS/IAU2006_XYS_{0}.json'] A template URL for obtaining the XYS data.  In the template,
                `{0}` will be replaced with the file index.
@param {number} [options.interpolationOrder=9] The order of interpolation to perform on the XYS data.
@param {number} [options.sampleZeroJulianEphemerisDate=2442396.5] The Julian ephemeris date (JED) of the
                first XYS sample.
@param {number} [options.stepSizeDays=1.0] The step size, in days, between successive XYS samples.
@param {number} [options.samplesPerXysFile=1000] The number of samples in each XYS file.
@param {number} [options.totalSamples=27426] The total number of samples in all XYS files.

@private