{"version":3,"sources":["jsdelivr-header.js","/npm/d3-regression@1.3.9/dist/d3-regression.esm.js"],"names":[],"mappings":"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","file":"/npm/d3-regression@1.3.9/dist/d3-regression.esm.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.39.0.\n * Original file: /npm/d3-regression@1.3.9/dist/d3-regression.esm.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","// https://github.com/HarryStevens/d3-regression#readme Version 1.3.9. Copyright 2021 Harry Stevens.\nfunction _slicedToArray(arr, i) {\n  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\n// Adapted from vega-statistics by Jeffrey Heer\n// License: https://github.com/vega/vega/blob/f058b099decad9db78301405dd0d2e9d8ba3d51a/LICENSE\n// Source: https://github.com/vega/vega/blob/f058b099decad9db78301405dd0d2e9d8ba3d51a/packages/vega-statistics/src/regression/points.js\nfunction points(data, x, y, sort) {\n  data = data.filter(function (d, i) {\n    var u = x(d, i),\n        v = y(d, i);\n    return u != null && isFinite(u) && v != null && isFinite(v);\n  });\n\n  if (sort) {\n    data.sort(function (a, b) {\n      return x(a) - x(b);\n    });\n  }\n\n  var n = data.length,\n      X = new Float64Array(n),\n      Y = new Float64Array(n); // extract values, calculate means\n\n  var ux = 0,\n      uy = 0,\n      xv,\n      yv,\n      d;\n\n  for (var i = 0; i < n;) {\n    d = data[i];\n    X[i] = xv = +x(d, i, data);\n    Y[i] = yv = +y(d, i, data);\n    ++i;\n    ux += (xv - ux) / i;\n    uy += (yv - uy) / i;\n  } // mean center the data\n\n\n  for (var _i = 0; _i < n; ++_i) {\n    X[_i] -= ux;\n    Y[_i] -= uy;\n  }\n\n  return [X, Y, ux, uy];\n}\nfunction visitPoints(data, x, y, cb) {\n  var iterations = 0;\n\n  for (var i = 0, n = data.length; i < n; i++) {\n    var d = data[i],\n        dx = +x(d, i, data),\n        dy = +y(d, i, data);\n\n    if (dx != null && isFinite(dx) && dy != null && isFinite(dy)) {\n      cb(dx, dy, iterations++);\n    }\n  }\n}\n\n// return the coefficient of determination, or R squared.\n\nfunction determination(data, x, y, uY, predict) {\n  var SSE = 0,\n      SST = 0;\n  visitPoints(data, x, y, function (dx, dy) {\n    var sse = dy - predict(dx),\n        sst = dy - uY;\n    SSE += sse * sse;\n    SST += sst * sst;\n  });\n  return 1 - SSE / SST;\n}\n\n// Returns the angle of a line in degrees.\nfunction angle(line) {\n  return Math.atan2(line[1][1] - line[0][1], line[1][0] - line[0][0]) * 180 / Math.PI;\n} // Returns the midpoint of a line.\n\nfunction midpoint(line) {\n  return [(line[0][0] + line[1][0]) / 2, (line[0][1] + line[1][1]) / 2];\n}\n\n// returns a smooth line.\n\nfunction interpose(xmin, xmax, predict) {\n  var l = Math.log(xmax - xmin) * Math.LOG10E + 1 | 0;\n  var precision = 1 * Math.pow(10, -l / 2 - 1),\n      maxIter = 1e4;\n  var points = [px(xmin), px(xmax)],\n      iter = 0;\n\n  while (find(points) && iter < maxIter) {\n  }\n\n  return points;\n\n  function px(x) {\n    return [x, predict(x)];\n  }\n\n  function find(points) {\n    iter++;\n    var n = points.length;\n    var found = false;\n\n    for (var i = 0; i < n - 1; i++) {\n      var p0 = points[i],\n          p1 = points[i + 1],\n          m = midpoint([p0, p1]),\n          mp = px(m[0]),\n          a0 = angle([p0, m]),\n          a1 = angle([p0, mp]),\n          a = Math.abs(a0 - a1);\n\n      if (a > precision) {\n        points.splice(i + 1, 0, mp);\n        found = true;\n      }\n    }\n\n    return found;\n  }\n}\n\n// Ordinary Least Squares from vega-statistics by Jeffrey Heer\n// License: https://github.com/vega/vega/blob/f058b099decad9db78301405dd0d2e9d8ba3d51a/LICENSE\n// Source: https://github.com/vega/vega/blob/f058b099decad9db78301405dd0d2e9d8ba3d51a/packages/vega-statistics/src/regression/ols.js\nfunction ols(uX, uY, uXY, uX2) {\n  var delta = uX2 - uX * uX,\n      slope = Math.abs(delta) < 1e-24 ? 0 : (uXY - uX * uY) / delta,\n      intercept = uY - slope * uX;\n  return [intercept, slope];\n}\n\nfunction exponential () {\n  var x = function x(d) {\n    return d[0];\n  },\n      y = function y(d) {\n    return d[1];\n  },\n      domain;\n\n  function exponential(data) {\n    var n = 0,\n        Y = 0,\n        YL = 0,\n        XY = 0,\n        XYL = 0,\n        X2Y = 0,\n        xmin = domain ? +domain[0] : Infinity,\n        xmax = domain ? +domain[1] : -Infinity;\n    visitPoints(data, x, y, function (dx, dy) {\n      var ly = Math.log(dy),\n          xy = dx * dy;\n      ++n;\n      Y += (dy - Y) / n;\n      XY += (xy - XY) / n;\n      X2Y += (dx * xy - X2Y) / n;\n      YL += (dy * ly - YL) / n;\n      XYL += (xy * ly - XYL) / n;\n\n      if (!domain) {\n        if (dx < xmin) xmin = dx;\n        if (dx > xmax) xmax = dx;\n      }\n    });\n\n    var _ols = ols(XY / Y, YL / Y, XYL / Y, X2Y / Y),\n        _ols2 = _slicedToArray(_ols, 2),\n        a = _ols2[0],\n        b = _ols2[1];\n\n    a = Math.exp(a);\n\n    var fn = function fn(x) {\n      return a * Math.exp(b * x);\n    },\n        out = interpose(xmin, xmax, fn);\n\n    out.a = a;\n    out.b = b;\n    out.predict = fn;\n    out.rSquared = determination(data, x, y, Y, fn);\n    return out;\n  }\n\n  exponential.domain = function (arr) {\n    return arguments.length ? (domain = arr, exponential) : domain;\n  };\n\n  exponential.x = function (fn) {\n    return arguments.length ? (x = fn, exponential) : x;\n  };\n\n  exponential.y = function (fn) {\n    return arguments.length ? (y = fn, exponential) : y;\n  };\n\n  return exponential;\n}\n\nfunction linear () {\n  var x = function x(d) {\n    return d[0];\n  },\n      y = function y(d) {\n    return d[1];\n  },\n      domain;\n\n  function linear(data) {\n    var n = 0,\n        X = 0,\n        // sum of x\n    Y = 0,\n        // sum of y\n    XY = 0,\n        // sum of x * y\n    X2 = 0,\n        // sum of x * x\n    xmin = domain ? +domain[0] : Infinity,\n        xmax = domain ? +domain[1] : -Infinity;\n    visitPoints(data, x, y, function (dx, dy) {\n      ++n;\n      X += (dx - X) / n;\n      Y += (dy - Y) / n;\n      XY += (dx * dy - XY) / n;\n      X2 += (dx * dx - X2) / n;\n\n      if (!domain) {\n        if (dx < xmin) xmin = dx;\n        if (dx > xmax) xmax = dx;\n      }\n    });\n\n    var _ols = ols(X, Y, XY, X2),\n        _ols2 = _slicedToArray(_ols, 2),\n        intercept = _ols2[0],\n        slope = _ols2[1],\n        fn = function fn(x) {\n      return slope * x + intercept;\n    },\n        out = [[xmin, fn(xmin)], [xmax, fn(xmax)]];\n\n    out.a = slope;\n    out.b = intercept;\n    out.predict = fn;\n    out.rSquared = determination(data, x, y, Y, fn);\n    return out;\n  }\n\n  linear.domain = function (arr) {\n    return arguments.length ? (domain = arr, linear) : domain;\n  };\n\n  linear.x = function (fn) {\n    return arguments.length ? (x = fn, linear) : x;\n  };\n\n  linear.y = function (fn) {\n    return arguments.length ? (y = fn, linear) : y;\n  };\n\n  return linear;\n}\n\n// Returns the medium value of an array of numbers.\nfunction median(arr) {\n  arr.sort(function (a, b) {\n    return a - b;\n  });\n  var i = arr.length / 2;\n  return i % 1 === 0 ? (arr[i - 1] + arr[i]) / 2 : arr[Math.floor(i)];\n}\n\nvar maxiters = 2,\n    epsilon = 1e-12;\nfunction loess () {\n  var x = function x(d) {\n    return d[0];\n  },\n      y = function y(d) {\n    return d[1];\n  },\n      bandwidth = .3;\n\n  function loess(data) {\n    var _points = points(data, x, y, true),\n        _points2 = _slicedToArray(_points, 4),\n        xv = _points2[0],\n        yv = _points2[1],\n        ux = _points2[2],\n        uy = _points2[3],\n        n = xv.length,\n        bw = Math.max(2, ~~(bandwidth * n)),\n        yhat = new Float64Array(n),\n        residuals = new Float64Array(n),\n        robustWeights = new Float64Array(n).fill(1);\n\n    for (var iter = -1; ++iter <= maxiters;) {\n      var interval = [0, bw - 1];\n\n      for (var i = 0; i < n; ++i) {\n        var dx = xv[i],\n            i0 = interval[0],\n            i1 = interval[1],\n            edge = dx - xv[i0] > xv[i1] - dx ? i0 : i1;\n        var W = 0,\n            X = 0,\n            Y = 0,\n            XY = 0,\n            X2 = 0,\n            denom = 1 / Math.abs(xv[edge] - dx || 1); // Avoid singularity\n\n        for (var k = i0; k <= i1; ++k) {\n          var xk = xv[k],\n              yk = yv[k],\n              w = tricube(Math.abs(dx - xk) * denom) * robustWeights[k],\n              xkw = xk * w;\n          W += w;\n          X += xkw;\n          Y += yk * w;\n          XY += yk * xkw;\n          X2 += xk * xkw;\n        } // Linear regression fit\n\n\n        var _ols = ols(X / W, Y / W, XY / W, X2 / W),\n            _ols2 = _slicedToArray(_ols, 2),\n            a = _ols2[0],\n            b = _ols2[1];\n\n        yhat[i] = a + b * dx;\n        residuals[i] = Math.abs(yv[i] - yhat[i]);\n        updateInterval(xv, i + 1, interval);\n      }\n\n      if (iter === maxiters) {\n        break;\n      }\n\n      var medianResidual = median(residuals);\n      if (Math.abs(medianResidual) < epsilon) break;\n\n      for (var _i = 0, arg, _w; _i < n; ++_i) {\n        arg = residuals[_i] / (6 * medianResidual); // Default to epsilon (rather than zero) for large deviations\n        // Keeping weights tiny but non-zero prevents singularites\n\n        robustWeights[_i] = arg >= 1 ? epsilon : (_w = 1 - arg * arg) * _w;\n      }\n    }\n\n    return output(xv, yhat, ux, uy);\n  }\n\n  loess.bandwidth = function (bw) {\n    return arguments.length ? (bandwidth = bw, loess) : bandwidth;\n  };\n\n  loess.x = function (fn) {\n    return arguments.length ? (x = fn, loess) : x;\n  };\n\n  loess.y = function (fn) {\n    return arguments.length ? (y = fn, loess) : y;\n  };\n\n  return loess;\n} // Weighting kernel for local regression\n\nfunction tricube(x) {\n  return (x = 1 - x * x * x) * x * x;\n} // Advance sliding window interval of nearest neighbors\n\n\nfunction updateInterval(xv, i, interval) {\n  var val = xv[i],\n      left = interval[0],\n      right = interval[1] + 1;\n  if (right >= xv.length) return; // Step right if distance to new right edge is <= distance to old left edge\n  // Step when distance is equal to ensure movement over duplicate x values\n\n  while (i > left && xv[right] - val <= val - xv[left]) {\n    interval[0] = ++left;\n    interval[1] = right;\n    ++right;\n  }\n} // Generate smoothed output points\n// Average points with repeated x values\n\n\nfunction output(xv, yhat, ux, uy) {\n  var n = xv.length,\n      out = [];\n  var i = 0,\n      cnt = 0,\n      prev = [],\n      v;\n\n  for (; i < n; ++i) {\n    v = xv[i] + ux;\n\n    if (prev[0] === v) {\n      // Average output values via online update\n      prev[1] += (yhat[i] - prev[1]) / ++cnt;\n    } else {\n      // Add new output point\n      cnt = 0;\n      prev[1] += uy;\n      prev = [v, yhat[i]];\n      out.push(prev);\n    }\n  }\n\n  prev[1] += uy;\n  return out;\n}\n\nfunction logarithmic () {\n  var x = function x(d) {\n    return d[0];\n  },\n      y = function y(d) {\n    return d[1];\n  },\n      base = Math.E,\n      domain;\n\n  function logarithmic(data) {\n    var n = 0,\n        X = 0,\n        Y = 0,\n        XY = 0,\n        X2 = 0,\n        xmin = domain ? +domain[0] : Infinity,\n        xmax = domain ? +domain[1] : -Infinity,\n        lb = Math.log(base);\n    visitPoints(data, x, y, function (dx, dy) {\n      var lx = Math.log(dx) / lb;\n      ++n;\n      X += (lx - X) / n;\n      Y += (dy - Y) / n;\n      XY += (lx * dy - XY) / n;\n      X2 += (lx * lx - X2) / n;\n\n      if (!domain) {\n        if (dx < xmin) xmin = dx;\n        if (dx > xmax) xmax = dx;\n      }\n    });\n\n    var _ols = ols(X, Y, XY, X2),\n        _ols2 = _slicedToArray(_ols, 2),\n        intercept = _ols2[0],\n        slope = _ols2[1],\n        fn = function fn(x) {\n      return slope * Math.log(x) / lb + intercept;\n    },\n        out = interpose(xmin, xmax, fn);\n\n    out.a = slope;\n    out.b = intercept;\n    out.predict = fn;\n    out.rSquared = determination(data, x, y, Y, fn);\n    return out;\n  }\n\n  logarithmic.domain = function (arr) {\n    return arguments.length ? (domain = arr, logarithmic) : domain;\n  };\n\n  logarithmic.x = function (fn) {\n    return arguments.length ? (x = fn, logarithmic) : x;\n  };\n\n  logarithmic.y = function (fn) {\n    return arguments.length ? (y = fn, logarithmic) : y;\n  };\n\n  logarithmic.base = function (n) {\n    return arguments.length ? (base = n, logarithmic) : base;\n  };\n\n  return logarithmic;\n}\n\nfunction quad () {\n  var x = function x(d) {\n    return d[0];\n  },\n      y = function y(d) {\n    return d[1];\n  },\n      domain;\n\n  function quadratic(data) {\n    var _points = points(data, x, y),\n        _points2 = _slicedToArray(_points, 4),\n        xv = _points2[0],\n        yv = _points2[1],\n        ux = _points2[2],\n        uy = _points2[3],\n        n = xv.length;\n\n    var X2 = 0,\n        X3 = 0,\n        X4 = 0,\n        XY = 0,\n        X2Y = 0,\n        i,\n        dx,\n        dy,\n        x2;\n\n    for (i = 0; i < n;) {\n      dx = xv[i];\n      dy = yv[i++];\n      x2 = dx * dx;\n      X2 += (x2 - X2) / i;\n      X3 += (x2 * dx - X3) / i;\n      X4 += (x2 * x2 - X4) / i;\n      XY += (dx * dy - XY) / i;\n      X2Y += (x2 * dy - X2Y) / i;\n    }\n\n    var Y = 0,\n        n0 = 0,\n        xmin = domain ? +domain[0] : Infinity,\n        xmax = domain ? +domain[1] : -Infinity;\n    visitPoints(data, x, y, function (dx, dy) {\n      n0++;\n      Y += (dy - Y) / n0;\n\n      if (!domain) {\n        if (dx < xmin) xmin = dx;\n        if (dx > xmax) xmax = dx;\n      }\n    });\n\n    var X2X2 = X4 - X2 * X2,\n        d = X2 * X2X2 - X3 * X3,\n        a = (X2Y * X2 - XY * X3) / d,\n        b = (XY * X2X2 - X2Y * X3) / d,\n        c = -a * X2,\n        fn = function fn(x) {\n      x = x - ux;\n      return a * x * x + b * x + c + uy;\n    };\n\n    var out = interpose(xmin, xmax, fn);\n    out.a = a;\n    out.b = b - 2 * a * ux;\n    out.c = c - b * ux + a * ux * ux + uy;\n    out.predict = fn;\n    out.rSquared = determination(data, x, y, Y, fn);\n    return out;\n  }\n\n  quadratic.domain = function (arr) {\n    return arguments.length ? (domain = arr, quadratic) : domain;\n  };\n\n  quadratic.x = function (fn) {\n    return arguments.length ? (x = fn, quadratic) : x;\n  };\n\n  quadratic.y = function (fn) {\n    return arguments.length ? (y = fn, quadratic) : y;\n  };\n\n  return quadratic;\n}\n\n// Source: https://github.com/Tom-Alexander/regression-js/blob/master/src/regression.js#L246\n// License: https://github.com/Tom-Alexander/regression-js/blob/master/LICENSE\n// ...with ideas from vega-statistics by Jeffrey Heer\n// Source: https://github.com/vega/vega/blob/f21cb8792b4e0cbe2b1a3fd44b0f5db370dbaadb/packages/vega-statistics/src/regression/poly.js\n// License: https://github.com/vega/vega/blob/f058b099decad9db78301405dd0d2e9d8ba3d51a/LICENSE\n\nfunction polynomial () {\n  var x = function x(d) {\n    return d[0];\n  },\n      y = function y(d) {\n    return d[1];\n  },\n      order = 3,\n      domain;\n\n  function polynomial(data) {\n    // Use more efficient methods for lower orders\n    if (order === 1) {\n      var o = linear().x(x).y(y).domain(domain)(data);\n      o.coefficients = [o.b, o.a];\n      delete o.a;\n      delete o.b;\n      return o;\n    }\n\n    if (order === 2) {\n      var _o = quad().x(x).y(y).domain(domain)(data);\n\n      _o.coefficients = [_o.c, _o.b, _o.a];\n      delete _o.a;\n      delete _o.b;\n      delete _o.c;\n      return _o;\n    }\n\n    var _points = points(data, x, y),\n        _points2 = _slicedToArray(_points, 4),\n        xv = _points2[0],\n        yv = _points2[1],\n        ux = _points2[2],\n        uy = _points2[3],\n        n = xv.length,\n        lhs = [],\n        rhs = [],\n        k = order + 1;\n\n    var Y = 0,\n        n0 = 0,\n        xmin = domain ? +domain[0] : Infinity,\n        xmax = domain ? +domain[1] : -Infinity;\n    visitPoints(data, x, y, function (dx, dy) {\n      ++n0;\n      Y += (dy - Y) / n0;\n\n      if (!domain) {\n        if (dx < xmin) xmin = dx;\n        if (dx > xmax) xmax = dx;\n      }\n    });\n    var i, j, l, v, c;\n\n    for (i = 0; i < k; ++i) {\n      for (l = 0, v = 0; l < n; ++l) {\n        v += Math.pow(xv[l], i) * yv[l];\n      }\n\n      lhs.push(v);\n      c = new Float64Array(k);\n\n      for (j = 0; j < k; ++j) {\n        for (l = 0, v = 0; l < n; ++l) {\n          v += Math.pow(xv[l], i + j);\n        }\n\n        c[j] = v;\n      }\n\n      rhs.push(c);\n    }\n\n    rhs.push(lhs);\n\n    var coef = gaussianElimination(rhs),\n        fn = function fn(x) {\n      x -= ux;\n      var y = uy + coef[0] + coef[1] * x + coef[2] * x * x;\n\n      for (i = 3; i < k; ++i) {\n        y += coef[i] * Math.pow(x, i);\n      }\n\n      return y;\n    },\n        out = interpose(xmin, xmax, fn);\n\n    out.coefficients = uncenter(k, coef, -ux, uy);\n    out.predict = fn;\n    out.rSquared = determination(data, x, y, Y, fn);\n    return out;\n  }\n\n  polynomial.domain = function (arr) {\n    return arguments.length ? (domain = arr, polynomial) : domain;\n  };\n\n  polynomial.x = function (fn) {\n    return arguments.length ? (x = fn, polynomial) : x;\n  };\n\n  polynomial.y = function (fn) {\n    return arguments.length ? (y = fn, polynomial) : y;\n  };\n\n  polynomial.order = function (n) {\n    return arguments.length ? (order = n, polynomial) : order;\n  };\n\n  return polynomial;\n}\n\nfunction uncenter(k, a, x, y) {\n  var z = Array(k);\n  var i, j, v, c; // initialize to zero\n\n  for (i = 0; i < k; ++i) {\n    z[i] = 0;\n  } // polynomial expansion\n\n\n  for (i = k - 1; i >= 0; --i) {\n    v = a[i];\n    c = 1;\n    z[i] += v;\n\n    for (j = 1; j <= i; ++j) {\n      c *= (i + 1 - j) / j; // binomial coefficent\n\n      z[i - j] += v * Math.pow(x, j) * c;\n    }\n  } // bias term\n\n\n  z[0] += y;\n  return z;\n} // Given an array for a two-dimensional matrix and the polynomial order,\n// solve A * x = b using Gaussian elimination.\n\n\nfunction gaussianElimination(matrix) {\n  var n = matrix.length - 1,\n      coef = [];\n  var i, j, k, r, t;\n\n  for (i = 0; i < n; ++i) {\n    r = i; // max row\n\n    for (j = i + 1; j < n; ++j) {\n      if (Math.abs(matrix[i][j]) > Math.abs(matrix[i][r])) {\n        r = j;\n      }\n    }\n\n    for (k = i; k < n + 1; ++k) {\n      t = matrix[k][i];\n      matrix[k][i] = matrix[k][r];\n      matrix[k][r] = t;\n    }\n\n    for (j = i + 1; j < n; ++j) {\n      for (k = n; k >= i; k--) {\n        matrix[k][j] -= matrix[k][i] * matrix[i][j] / matrix[i][i];\n      }\n    }\n  }\n\n  for (j = n - 1; j >= 0; --j) {\n    t = 0;\n\n    for (k = j + 1; k < n; ++k) {\n      t += matrix[k][j] * coef[k];\n    }\n\n    coef[j] = (matrix[n][j] - t) / matrix[j][j];\n  }\n\n  return coef;\n}\n\nfunction power () {\n  var x = function x(d) {\n    return d[0];\n  },\n      y = function y(d) {\n    return d[1];\n  },\n      domain;\n\n  function power(data) {\n    var n = 0,\n        X = 0,\n        Y = 0,\n        XY = 0,\n        X2 = 0,\n        YS = 0,\n        xmin = domain ? +domain[0] : Infinity,\n        xmax = domain ? +domain[1] : -Infinity;\n    visitPoints(data, x, y, function (dx, dy) {\n      var lx = Math.log(dx),\n          ly = Math.log(dy);\n      ++n;\n      X += (lx - X) / n;\n      Y += (ly - Y) / n;\n      XY += (lx * ly - XY) / n;\n      X2 += (lx * lx - X2) / n;\n      YS += (dy - YS) / n;\n\n      if (!domain) {\n        if (dx < xmin) xmin = dx;\n        if (dx > xmax) xmax = dx;\n      }\n    });\n\n    var _ols = ols(X, Y, XY, X2),\n        _ols2 = _slicedToArray(_ols, 2),\n        a = _ols2[0],\n        b = _ols2[1];\n\n    a = Math.exp(a);\n\n    var fn = function fn(x) {\n      return a * Math.pow(x, b);\n    },\n        out = interpose(xmin, xmax, fn);\n\n    out.a = a;\n    out.b = b;\n    out.predict = fn;\n    out.rSquared = determination(data, x, y, YS, fn);\n    return out;\n  }\n\n  power.domain = function (arr) {\n    return arguments.length ? (domain = arr, power) : domain;\n  };\n\n  power.x = function (fn) {\n    return arguments.length ? (x = fn, power) : x;\n  };\n\n  power.y = function (fn) {\n    return arguments.length ? (y = fn, power) : y;\n  };\n\n  return power;\n}\n\nexport { exponential as regressionExp, linear as regressionLinear, loess as regressionLoess, logarithmic as regressionLog, polynomial as regressionPoly, power as regressionPow, quad as regressionQuad };\n"]}