{
  "category": "Engineering functions",
  "display_name": "BESSELI",
  "entry_kind": "built_in_function",
  "eval_api": {
    "method": "POST",
    "url": "https://handbook.dnacalc.com/api/eval"
  },
  "function_id": "FUNC.BESSELI",
  "implementation_state": {
    "answer_bank": {
      "excel_builds": [
        "20430",
        "20527"
      ],
      "larger_numeric": 0,
      "last_bit": 0,
      "matched": 1365,
      "other_mismatch": 0,
      "refused": 0,
      "rows": 1365,
      "unread": 0,
      "worst_ulp": 0
    },
    "detail": "Recorded: 1,365 in the answer bank and 97 workbook cells.",
    "dnacalc_commit": "9e1884369a678158dd82d3d74188daf986995e87",
    "in_catalogue": true,
    "state": "matches",
    "state_label": "Matches every recorded Excel answer",
    "summary": "Matches all 1,462 recorded answers",
    "workbook_corpus": {
      "cells": 97,
      "matched": 97
    }
  },
  "implementations": [
    {
      "commit": "9e1884369a678158dd82d3d74188daf986995e87",
      "flavour": "excel-compatibility-candidate",
      "language": "Rust",
      "name": "CalcFunc",
      "own_code": [
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/catalogue/engineering.rs#L260-L260",
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/ported/bessel.rs#L337-L356",
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/ported/bessel_rational.rs#L268-L279",
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/ported/bessel_rational.rs#L281-L306"
      ],
      "repository": "https://github.com/DnaCalc/DnaCalc",
      "shared_code": [
        "catalogue/engineering::radix_kind",
        "catalogue/engineering::bessel",
        "ported/bessel::abs",
        "ported/bessel::sqrt",
        "ported/bessel::exp",
        "ported/bessel::horner",
        "ported/bessel::i1",
        "ported/bessel::order",
        "ported/bessel::odd_sign",
        "ported/bessel::finish",
        "ported/bessel_rational::polynomial_with",
        "ported/excel_numeric::binary_with",
        "ported/excel_numeric::excel_x87_add",
        "ported/excel_numeric::excel_x87_mul",
        "ported/excel_numeric::excel_x87_div",
        "ported/excel_numeric::excel_sqrt_staged",
        "ported/excel_numeric/x87::mul",
        "ported/excel_numeric/x87::add",
        "ported/excel_numeric/x87::div"
      ],
      "source": "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/catalogue/engineering.rs#L260-L260",
      "state": "matches",
      "suite": null,
      "summary": "Matches all 1,462 recorded answers"
    }
  ],
  "json_url": "https://handbook.dnacalc.com/api/functions/FUNC.BESSELI.json",
  "name": "BESSELI",
  "notes": [
    {
      "basis": "All 1,318 recorded BESSELI recorded rows match (825 gained, no row lost in the recorded rows).",
      "documentation": null,
      "evidence": [
        {
          "commit": "d62b1283bbfe1582589afa37702d7a6d91bdb901",
          "locator": "lines 354-468",
          "note": "recorded answers pinned; the ITK body in the product",
          "path": "crates/calc-func/tests/f1_engineering.rs",
          "repository": "DnaCalc"
        },
        {
          "commit": "130ec21b3da03276c01fb27dce70463f08f90d9a",
          "locator": "product; bank.own_BESSELI_gains",
          "note": "research round 22 result",
          "path": "round22-result.json",
          "repository": "DnaCalc-Research"
        }
      ],
      "functions": [
        "FUNC.BESSELI"
      ],
      "inferred": null,
      "kind": "bit-matching-detail",
      "note_id": "FN-BESSELI-001",
      "open": [],
      "recorded_on": "2026-11-04",
      "repros": [
        {
          "call": "BESSELI(12.514410892637624, 3.987394155038235)",
          "correct": {
            "bits": "0x40d4dc0018982a92",
            "display": "21360.00150112302",
            "how": "mpmath besseli at 800 bits, order the integer part of n, correctly rounded.",
            "kind": "number"
          },
          "excel": {
            "bits": "0x40d4dc000ce65cba",
            "display": "21360.000787344507",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40290760dd512b66",
                "display": "12.514410892637624",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x400fe62ee82134c8",
                "display": "3.987394155038235",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "w111extended-2026092903-BESSELI-00633",
            "note": null,
            "path": "cache/w111-extended-regenerated-20260929/answers-besseli.json.gz",
            "repository": "CalcFunc-Evidence"
          }
        },
        {
          "call": "BESSELI(1.8661547234119729, 7.047660373731416)",
          "correct": {
            "bits": "0x3f21d7fd6e62c6a2",
            "display": "0.00013613670961869657",
            "how": "mpmath besseli at 800 bits, order the integer part of n, correctly rounded.",
            "kind": "number"
          },
          "excel": {
            "bits": "0x3f21d7fd6fe380e0",
            "display": "0.0001361367103021099",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x3ffddbc50e25491c",
                "display": "1.8661547234119729",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x401c30cde189f75e",
                "display": "7.047660373731416",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "w111extended-2026092903-BESSELI-00440",
            "note": null,
            "path": "cache/w111-extended-regenerated-20260929/answers-besseli.json.gz",
            "repository": "CalcFunc-Evidence"
          }
        },
        {
          "call": "BESSELI(13.469754413420809, 10.617422640816173)",
          "correct": {
            "bits": "0x409e95e8f2dc3451",
            "display": "1957.477488938039",
            "how": "mpmath besseli at 800 bits, order the integer part of n, correctly rounded.",
            "kind": "number"
          },
          "excel": {
            "bits": "0x409e95e8e2cdac05",
            "display": "1957.477427686333",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x402af083a685968c",
                "display": "13.469754413420809",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x40253c1ed2043b18",
                "display": "10.617422640816173",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "w111extended-2026092903-BESSELI-00674",
            "note": null,
            "path": "cache/w111-extended-regenerated-20260929/answers-besseli.json.gz",
            "repository": "CalcFunc-Evidence"
          }
        }
      ],
      "schema": "efh.function-note/v1",
      "statement": "BESSELI truncates n to an integer and evaluates the body published in ITK with every operation stored from the x87 unit at precision 64: the I0 and I1 polynomials, and for higher orders Miller backward recurrence from j = 2*(n + int(sqrt(40*n))), rescaling by 1E-10 whenever |q| > 1E10, then normalising by I0(x). The same body in plain binary64 misses by 1 to 4 units in the last place. The published ITK body is itkGaussianOperator.hxx at ITK 311b7060ef39e371f3cd209ec135284ff5fde735 (Apache-2.0).",
      "status": "measured",
      "title": "BESSELI is ITK's published polynomial and recurrence, on the x87 unit"
    },
    {
      "basis": "Every numeric row of the extended capture of each function, compared with mpmath at 200 bits.",
      "documentation": null,
      "evidence": [
        {
          "commit": "130ec21b3da03276c01fb27dce70463f08f90d9a",
          "locator": "product; bank.own_BESSELI_gains",
          "note": "research round 22 result",
          "path": "round22-result.json",
          "repository": "DnaCalc-Research"
        }
      ],
      "functions": [
        "FUNC.BESSELI",
        "FUNC.BESSELK"
      ],
      "inferred": null,
      "kind": "excel-differs-from-math",
      "note_id": "FN-BESSELI-002",
      "open": [],
      "recorded_on": "2026-11-04",
      "repros": [
        {
          "call": "BESSELI(-1, 0)",
          "correct": {
            "bits": "0x3ff441ce4b386c2d",
            "display": "1.2660658777520084",
            "how": "mpmath besseli at 800 bits, order the integer part of n, correctly rounded.",
            "kind": "number"
          },
          "excel": {
            "bits": "0x3ff441ce433e3c05",
            "display": "1.2660658480342601",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0xbff0000000000000",
                "display": "-1",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "w111extended-2026092903-BESSELI-00001",
            "note": null,
            "path": "cache/w111-extended-regenerated-20260929/answers-besseli.json.gz",
            "repository": "CalcFunc-Evidence"
          }
        },
        {
          "call": "BESSELI(12.514410892637624, 3.987394155038235)",
          "correct": {
            "bits": "0x40d4dc0018982a92",
            "display": "21360.00150112302",
            "how": "mpmath besseli at 800 bits, order the integer part of n, correctly rounded.",
            "kind": "number"
          },
          "excel": {
            "bits": "0x40d4dc000ce65cba",
            "display": "21360.000787344507",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40290760dd512b66",
                "display": "12.514410892637624",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x400fe62ee82134c8",
                "display": "3.987394155038235",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "w111extended-2026092903-BESSELI-00633",
            "note": null,
            "path": "cache/w111-extended-regenerated-20260929/answers-besseli.json.gz",
            "repository": "CalcFunc-Evidence"
          }
        },
        {
          "call": "BESSELK(1.8447401994787955, 0.15119840195885237)",
          "correct": {
            "bits": "0x3fc1aa1430e4f602",
            "display": "0.13800289523526038",
            "how": "mpmath besselk at 800 bits, order the integer part of n, correctly rounded.",
            "kind": "number"
          },
          "excel": {
            "bits": "0x3fc1aa1445c5bb34",
            "display": "0.1380029049573409",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x3ffd840e4ca60c0e",
                "display": "1.8447401994787955",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x3fc35a781fcf7430",
                "display": "0.15119840195885237",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "w111extended-2026092903-BESSELK-00698",
            "note": null,
            "path": "cache/w111-extended-regenerated-20260929/answers-besselk.json.gz",
            "repository": "CalcFunc-Evidence"
          }
        }
      ],
      "schema": "efh.function-note/v1",
      "statement": "BESSELI and BESSELK are low-order polynomial approximations. Over the recorded numeric rows with non-negative order, BESSELI gives the correctly rounded value on 2 of 1163 rows and BESSELK on 0 of 1155, with largest relative errors 5.0e-04 and 1.7e-07. BESSELI(-1,0) is 1.2660658480342601 where I0(1) is 1.2660658777520084, about 2.3E-8 relative.",
      "status": "measured",
      "title": "BESSELI and BESSELK are low-order approximations, rarely correctly rounded"
    },
    {
      "basis": "Readings at x = 709.7 for orders 0, 1, 2 and 3, compared with mpmath.",
      "documentation": null,
      "evidence": [
        {
          "commit": "130ec21b3da03276c01fb27dce70463f08f90d9a",
          "locator": "product; bank.own_BESSELI_gains",
          "note": "research round 22 result",
          "path": "round22-result.json",
          "repository": "DnaCalc-Research"
        }
      ],
      "functions": [
        "FUNC.BESSELI"
      ],
      "inferred": "That the fixed start is the cause is inferred: a binary64 transcription of the published body gives the same bits for orders 0, 2 and 3 at this x.",
      "kind": "excel-differs-from-math",
      "note_id": "FN-BESSELI-003",
      "open": [
        "How far the error extends at other x is not measured."
      ],
      "recorded_on": "2026-11-04",
      "repros": [
        {
          "call": "BESSELI(709.7, 3)",
          "correct": {
            "bits": "0x7f8c0f97bbe572f6",
            "display": "2.4631300544524576e+306",
            "how": "mpmath besseli at 800 bits, order the integer part of n, correctly rounded.",
            "kind": "number"
          },
          "excel": {
            "bits": "0x7f7a56f66ecd12a0",
            "display": "1.1560227990465618e+306",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40862d999999999a",
                "display": "709.7",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x4008000000000000",
                "display": "3",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20527, Windows 64-bit, AMD Ryzen 7 4800H",
          "source": {
            "commit": "2df115b9512d49c5d21cef02706b4616a130fe96",
            "locator": "line 177, id r16-besseli-021",
            "note": null,
            "path": "evidence/round18/r16-published-score/observations.jsonl",
            "repository": "DnaCalc-Research"
          }
        },
        {
          "call": "BESSELI(709.7, 2)",
          "correct": {
            "bits": "0x7f8c28f5d197b1dd",
            "display": "2.47182813908566e+306",
            "how": "mpmath besseli at 800 bits, order the integer part of n, correctly rounded.",
            "kind": "number"
          },
          "excel": {
            "bits": "0x7f8c3732e70ce6f9",
            "display": "2.4767103124440567e+306",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40862d999999999a",
                "display": "709.7",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x4000000000000000",
                "display": "2",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20527, Windows 64-bit, AMD Ryzen 7 4800H",
          "source": {
            "commit": "dec750f16294cb25a0bc00b90225b0eaeeb8d390",
            "locator": "r11-struct-besseli-09",
            "note": null,
            "path": "readings/excel-20527/BESSELI.json",
            "repository": "CalcFunc-Evidence"
          }
        },
        {
          "call": "BESSELI(709.7, 0)",
          "correct": {
            "bits": "0x7f8c3d519a191ac9",
            "display": "2.4788087273156452e+306",
            "how": "mpmath besseli at 800 bits, order the integer part of n, correctly rounded.",
            "kind": "number"
          },
          "excel": {
            "bits": "0x7f8c3d51558ee541",
            "display": "2.4788083687166675e+306",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40862d999999999a",
                "display": "709.7",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20527, Windows 64-bit, AMD Ryzen 7 4800H",
          "source": {
            "commit": "dec750f16294cb25a0bc00b90225b0eaeeb8d390",
            "locator": "r11-struct-besseli-01",
            "note": null,
            "path": "readings/excel-20527/BESSELI.json",
            "repository": "CalcFunc-Evidence"
          }
        }
      ],
      "schema": "efh.function-note/v1",
      "statement": "Excel's recurrence for orders above 1 starts at a fixed j = 2*(n + int(sqrt(40*n))), which is far too low at large x. At x = 709.7 BESSELI of order 2 is 0.20% high, and order 3 is 53% low, where I3(709.7) is 2.4631E306. Orders 0 and 1, which use the polynomial and not the recurrence, are within about 1.6E-7 at the same x.",
      "status": "measured",
      "title": "At large x the fixed recurrence start makes BESSELI badly wrong"
    },
    {
      "basis": "Adjacent-input readings at the boundary.",
      "documentation": null,
      "evidence": [
        {
          "commit": "f2e72693a5c7871cae57de79f69c3b011e5b9c61",
          "locator": "line 108",
          "note": "the boundary in the product",
          "path": "crates/calc-func/tests/f1_engineering.rs",
          "repository": "DnaCalc"
        }
      ],
      "functions": [
        "FUNC.BESSELI"
      ],
      "inferred": "That the same cut-off applies at every other order is inferred.",
      "kind": "quirk",
      "note_id": "FN-BESSELI-004",
      "open": [],
      "recorded_on": "2026-11-04",
      "repros": [
        {
          "call": "BESSELI(709.7, 0)",
          "correct": null,
          "excel": {
            "bits": "0x7f8c3d51558ee541",
            "display": "2.4788083687166675e+306",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40862d999999999a",
                "display": "709.7",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20527, Windows 64-bit, AMD Ryzen 7 4800H",
          "source": {
            "commit": "dec750f16294cb25a0bc00b90225b0eaeeb8d390",
            "locator": "r11-struct-besseli-01",
            "note": null,
            "path": "readings/excel-20527/BESSELI.json",
            "repository": "CalcFunc-Evidence"
          }
        },
        {
          "call": "BESSELI(709.7000000000002, 0)",
          "correct": null,
          "excel": {
            "bits": null,
            "display": "#NUM!",
            "kind": "error"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40862d999999999b",
                "display": "709.7000000000002",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20527, Windows 64-bit, AMD Ryzen 7 4800H",
          "source": {
            "commit": "dec750f16294cb25a0bc00b90225b0eaeeb8d390",
            "locator": "r11-struct-besseli-02",
            "note": null,
            "path": "readings/excel-20527/BESSELI.json",
            "repository": "CalcFunc-Evidence"
          }
        },
        {
          "call": "BESSELI(709.7000000000002, 1)",
          "correct": null,
          "excel": {
            "bits": null,
            "display": "#NUM!",
            "kind": "error"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40862d999999999b",
                "display": "709.7000000000002",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x3ff0000000000000",
                "display": "1",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20527, Windows 64-bit, AMD Ryzen 7 4800H",
          "source": {
            "commit": "dec750f16294cb25a0bc00b90225b0eaeeb8d390",
            "locator": "r11-struct-besseli-06",
            "note": null,
            "path": "readings/excel-20527/BESSELI.json",
            "repository": "CalcFunc-Evidence"
          }
        }
      ],
      "schema": "efh.function-note/v1",
      "statement": "BESSELI returns a number at |x| = 709.7 and #NUM! at the next binary64 above it, although I0 there is about 2.48E306, well inside the binary64 range. Recorded for orders 0, 1, 2, 3, 10 and 100, and for negative x at orders 0 to 2.",
      "status": "measured",
      "title": "BESSELI gives #NUM! just above 709.7, where the function is still finite"
    }
  ],
  "schema": "efh.function-reference/v1",
  "section_order": [
    "what-it-does",
    "try-it",
    "quirks",
    "how-to-implement",
    "version-differences",
    "alternatives"
  ],
  "sections": {
    "alternatives": "\n### Relationships\n\n- **[BESSELK](FUNC.BESSELK.md)** — the other modified Bessel function, decaying where this one\n  grows. The two are tied by an exact cross-product,\n  I_n(x)·K_(n+1)(x) + I_(n+1)(x)·K_n(x) = 1/x, which needs no oracle and is a useful sanity test on\n  any pair of answers. `BESSELK` shares this page's accuracy note but none of the large-`x`\n  trouble below, because it steps upward.\n- **`EXP`** — every answer at |x| ≥ 3.75 carries a factor e^|x|, which is the likely reason for the\n  cut near 709.7.\n- **The recurrence.** I_(n−1)(x) − I_(n+1)(x) = (2n/x)·I_n(x) links neighbouring orders. It gives a\n  workaround for the large-`x` defect at low order: `BESSELI(x,0) - 2/x*BESSELI(x,1)` is I_2(x)\n  from the two orders that do not use the recurrence. That identity is mathematics; it has not\n  been read in Excel as a repair.\n- **Where readers meet it.** I_0(κ) is the normalising constant of the von Mises distribution, and\n  I_0 and I_1 appear in the Rician distribution and in radially symmetric diffusion problems.\n\n\n",
    "how-to-implement": "\n### Numerical notes\n\n\n**These are low-order polynomials, by design.** Orders 0 and 1 are the polynomial approximations\nprinted in Abramowitz & Stegun as 9.8.1 to 9.8.4: one polynomial in (x/3.75)² for |x| < 3.75 and\none in 3.75/|x|, multiplied by e^|x|/√|x|, from 3.75 up. The coefficients carry seven or eight\ndecimal places, and the printed error bounds reach 1.9E-7 for I_0 and 2.2E-7 for I_1 on each\nform's own scale. In the large-`x` form that scale is a factor near 0.4, so the relative error of\nI_0 can reach about 2.5 times the bound; the largest recorded at order 0 is 4.7E-7, at x = 100. The\nnotes below measure the result: correctly rounded on 2 of 1,163 recorded rows. Treat the answer as a seven-digit figure.\n\n**There is a seam at 3.75, and Excel shows it.** Two different polynomials meet there and they do\nnot agree exactly. Build 20527 reads I_0 at adjacent doubles: the double below 3.75 is on the small\npolynomial, 3.75 itself is on the large one, and the answer steps up by 2.1E-8 relative between\nthem. A numerical derivative taken across 3.75 is not to be trusted. The printed coefficients for\nI_1 imply a smaller step, about 1.1E-8, which has not been read.\n\n**Orders 2 and above come from a backward recurrence.** Stepping upward in n from I_0 and I_1 is\nunstable for this function, so the standard method, due to Miller, starts high with an arbitrary\nvalue, runs the recurrence downward where it is stable, and rescales the whole sequence at the\nend by the known I_0(x). The notes below give Excel's exact staging. Two consequences are worth\nknowing:\n\n1. **The error of I_0 is inherited.** The normalisation uses the polynomial value of I_0, so a\n   healthy high-order answer carries order 0's relative error. The recorded rows show it plainly:\n   at x = 12.51 orders 0, 2 and 7 are all low by 3.34E-8, and at x = 709.7 orders 0 and 100 are\n   both low by 1.45E-7. The step at the seam reaches orders 2 and 17 by the same route.\n2. **The starting point ignores x.** The recurrence starts at j = 2(n + ⌊√(40n)⌋), a function of\n   the order alone. That start is high enough while x is small compared with it. When x is much\n   larger, the sequence has too few steps to settle, and the answer is simply wrong.\n\n**How wrong, and where.** The recorded values do not change smoothly with the order. At x near 709,\norder 2 is high by 0.20%, order 3 is low by 53%, order 10 is high by 0.08%, and order 100 is as\ngood as order 0. The 1,236-row recording behind the notes stops at x = 50, apart from six rows at\nx = 100. Its worst row at x ≤ 50 is about 9E-6 relative, at order 2, and the 5.0E-4 quoted in the\nnotes below is `BESSELI(100, 2)`. So order 2 degrades steadily with x over the range read. Order 3\nis about 1.6E-6 off near x = 50 and 53% low at 709, and the path between them has not been read.\n\nThe large-`x` failure is the one defect on this page that matters to an ordinary user: it raises\nno error, and the wrong answer looks entirely plausible.\n\n**The collapse to 0** has a likely cause in the same recurrence. It computes the ratio I_n/I_0 and\nonly then multiplies by I_0. At x = 709.7 and high order that ratio is below the binary64 range\nalthough the product is not, so the ratio underflows to 0 and the multiplication cannot recover it.\nA plain binary64 transcription of the published body does this somewhere between orders 1100 and\n1200 at this x. That is a computation on the published body, and the cause is an inference: Excel\nitself has been read only at order 100 and then from order 1568.\n\n**The cut at 709.7.** e^709.7 is about 1.65E308, just inside the binary64 range, and the exponential\nitself overflows near 709.78. The polynomial's e^|x| factor is therefore the natural reason for a\nguard at about this size, but the guard then gives up about four units of argument over which I_0\nis still finite. The reason is an inference; only the boundary is measured.\n\n",
    "quirks": "\n### Result and edge cases\n\n\nReturns `Number`. Unless stated otherwise the behaviour below is read from recorded Excel answers\n(builds 20430 and 20527, Windows 64-bit).\n\n- **`x = 0`** gives 1 at order 0 and 0 at every higher order read (1, 2 and 10), as the\n  mathematics requires.\n- **Negative `x`** is admitted. Even orders return the value at |x|, and odd orders return it\n  negated, which was read at ±1 and at ±709.7.\n- **The documented example** `BESSELI(1.5, 1)` is printed by Microsoft as `0.981666428`. Nine\n  digits is about what the function offers: the answers are accurate to roughly seven or eight\n  significant figures at ordinary arguments, not to fifteen. `BESSELI(-1, 0)` is the plainest\n  example in the notes below.\n- **`|x|` just above 709.7 is `#NUM!`** at every order read, although the true value is far inside\n  the binary64 range there. The notes below record the boundary to the adjacent double. The\n  failure is abrupt: `BESSELI(709.7, 0)` is a number near 2.48E306, and the next double up is an\n  error.\n- **Orders 2 and above can be badly wrong at large `x`.** At x = 709.7, order 3 is 53% below the\n  true value. This is a real wrong answer with no error raised, recorded in the notes below and\n  discussed under *Numerical notes*.\n- **Very high orders can collapse to 0.** At x = ±709.7, orders 1568 to 1572 all read 0 (build\n  20527), although the true values, from about 1.5E-299 down to 3.1E-302, are ordinary binary64\n  numbers. Order 10000 also read 0, which there is the right rounded answer: the true value is\n  near 2.9E-10154.\n\n\n\n### Errors\n\n\nAs documented on Microsoft's page:\n\n| Error | Condition |\n|---|---|\n| `#VALUE!` | `x` is nonnumeric |\n| `#VALUE!` | `n` is nonnumeric |\n| `#NUM!` | `n < 0` |\n\nAs recorded, in addition to the documented `#NUM!` for `n ≤ −1`:\n\n| Error | Condition | Recorded on |\n|---|---|---|\n| `#NUM!` | `n` strictly between −1 and 0, where truncation would give 0 | 64 calls, build 20430 |\n| `#NUM!` | \\|x\\| above 709.7, either sign, at every order read from 0 to 10000 | build 20527, AMD Ryzen 7 4800H |\n\n",
    "sources": "- Microsoft, \"BESSELI function\" —\n  <https://support.microsoft.com/en-us/office/besseli-function-8d33855c-9a8d-444b-98e0-852267b1c0df>\n  (syntax, argument meanings, truncation of `n`, the `#VALUE!` and `#NUM!` remarks and the example\n  value; the page's defining equation is an image and was not read as text).\n- Abramowitz & Stegun, *Handbook of Mathematical Functions*, 9.8.1 to 9.8.4 — the polynomial\n  approximations and their printed error bounds.\n- NIST Digital Library of Mathematical Functions, chapter 10, sections 10.25 to 10.32, 10.34 and\n  10.40 — <https://dlmf.nist.gov/10.25> (definitions, the relation to J_n, recurrence,\n  cross-product, integral form, parity and asymptotics).\n- The recorded Excel answers the notes below draw on: 1,236 `BESSELI` calls on Excel 16.0 build\n  20430, Windows 64-bit, CPU not recorded, captured 2026-09-29; and the endpoint, seam and\n  high-order readings on build 20527, Windows 64-bit, AMD Ryzen 7 4800H, captured in November 2026.\n  Statements on this page that go beyond the notes (the sign test, the seam, the rows at orders\n  1568 to 1572, and relative errors other than those the notes quote) were read from those same\n  files and compared with mpmath at 300 bits while this page was written.\n- Handbook evidence record `EV-MISC-0003` (the joint scan with `BESSELK`).\n- Handbook, [The value universe](../model/01-value-universe.md),\n  [Coercion and lifting](../model/02-coercion-and-lifting.md) and\n  [Claim language and honesty](../model/06-claim-language.md).\n- Handbook projections `data/functions/FUNC.BESSELI.json` and `data/presence/FUNC.BESSELI.json`\n  (arity, classification axes, implementing module and sibling set).\n\n\n",
    "version-differences": "The recorded environments below distinguish a reading from a same-input comparison. Counts describe captured inputs in each environment; overlapping captures and comparisons are not totals of unique worksheet calls.\n\n| Excel 16.0 build | Platform and CPU | Captured inputs |\n|---|---|---:|\n| 20430 | Windows, 64-bit, CPU not recorded | 1,236 |\n\nThe record contains no same-input comparison between these environments. Reading different inputs on different builds does not establish either a version change or cross-build agreement.\n\n[Recorded environments and comparison details](https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.BESSELI.json).",
    "what-it-does": "\n`BESSELI(x, n)` returns **I_n(x)**, the modified Bessel function of the first kind, of integer\norder n at the real point x. Microsoft describes it as the Bessel function evaluated for a purely\nimaginary argument, which is the standard relation\n\n    I_n(x)  =  i^(−n) · J_n(i·x)\n\nI_n is the solution that stays finite at the origin of the modified Bessel equation\n\n    x² w″ + x w′ − (x² + n²) w  =  0\n\nIt has an everywhere-convergent power series and, for integer order, a short integral form:\n\n    I_n(x)  =  Σ_{k≥0}  (x/2)^(2k+n) / ( k! · (k+n)! )\n    I_n(x)  =  (1/π) ∫₀^π  e^(x cos θ) cos(nθ) dθ\n\nThree facts about its shape matter below.\n\n- **Growth.** For large x, I_n(x) ≈ e^x / √(2πx), and at that scale every order looks alike: the\n  order only appears as a factor close to e^(−n²/(2x)). I_0 is still representable in binary64\n  up to about x = 713.9.\n- **The origin.** I_0(0) = 1 and I_n(0) = 0 for n ≥ 1, with I_n(x) ≈ (x/2)^n / n! for small x.\n- **Parity.** I_n(−x) = (−1)^n · I_n(x): even orders are even functions and odd orders odd.\n\nFor integer order the function is real on the whole line, positive for x > 0, and has no poles and\nno branch points. Everything difficult about `BESSELI` in Excel comes from how it is approximated.\n\n\n\n### Arguments\n\n\n| Argument | Meaning | Default |\n|---|---|---|\n| `x` | The value at which to evaluate the function. Required. | — |\n| `n` | The order of the function. Required. Truncated if not an integer. | — |\n\n**Truncation and the negative test.** Microsoft states both that a non-integer `n` is truncated\nand that `n < 0` is `#NUM!`, and does not say which comes first. The recorded answers do: the\nsign test sees the value **before** truncation. All 64 recorded calls with `n` strictly between\n−1 and 0 returned `#NUM!` (Excel 16.0 build 20430, Windows 64-bit, CPU not recorded), although\ntruncating any of them gives 0. Positive fractions behave as documented: `BESSELI(-1, 0.9)` and\n`BESSELI(-1, 0)` read the same.\n\n`BESSELI` is not a function of real order. The notes below compute their \"correct value\" at the\ninteger part of `n` for that reason, and `BESSELI(x, 3.99)` is order 3.\n\nThe slots are numeric. Beyond Microsoft's statement that a nonnumeric argument gives `#VALUE!`, no\nreading of text, a logical, an empty cell or an array in either slot is on record for this\nfunction; see *What has not been checked*.\n\n\n"
  },
  "signature": {
    "display": "BESSELI(x, n)",
    "parameters": [
      {
        "description": null,
        "name": "x",
        "optional": false,
        "repeats": false
      },
      {
        "description": null,
        "name": "n",
        "optional": false,
        "repeats": false
      }
    ],
    "trailing_repeats": false
  },
  "sources": {
    "metadata": {
      "admission": {
        "label": "implemented",
        "reason": null
      },
      "arity": {
        "max": 2,
        "min": 2
      },
      "category": "Engineering functions",
      "classification": {
        "arg_preparation_profile": "ValuesOnlyPreAdapter",
        "coercion_lift_profile": "Custom",
        "determinism_class": "Deterministic",
        "error_collapse_profile": "None",
        "fec_dependency_profile": "None",
        "host_interaction_class": "None",
        "kernel_signature_class": "Custom",
        "rich_value_usage": "RichBlind",
        "surface_fec_dependency_profile": "None",
        "thread_safety_class": "SafePure",
        "volatility_class": "NonVolatile"
      },
      "descriptions": {
        "long": null,
        "short": "Modified Bessel function of the first kind, I_n(x)",
        "short_source": "dna-calc-own"
      },
      "docs": {
        "english_description": "Returns the modified Bessel function In(x)",
        "microsoft_url": "https://support.microsoft.com/en-us/office/besseli-function-8d33855c-9a8d-444b-98e0-852267b1c0df"
      },
      "entry_kind": "built_in_function",
      "localized_family_names": null,
      "localized_names": [
        {
          "locale": "ar-SA",
          "name": "BESSELI"
        },
        {
          "locale": "bg-BG",
          "name": "BESSELI"
        },
        {
          "locale": "cs-CZ",
          "name": "BESSELI"
        },
        {
          "locale": "da-DK",
          "name": "BESSELI"
        },
        {
          "locale": "de-DE",
          "name": "BESSELI"
        },
        {
          "locale": "el-GR",
          "name": "BESSELI"
        },
        {
          "locale": "en-AU",
          "name": "BESSELI"
        },
        {
          "locale": "en-GB",
          "name": "BESSELI"
        },
        {
          "locale": "en-US",
          "name": "BESSELI"
        },
        {
          "locale": "es-ES",
          "name": "BESSELI"
        },
        {
          "locale": "et-EE",
          "name": "BESSELI"
        },
        {
          "locale": "fi-FI",
          "name": "BESSELI"
        },
        {
          "locale": "fr-FR",
          "name": "BESSELI*"
        },
        {
          "locale": "he-IL",
          "name": "BESSELI"
        },
        {
          "locale": "hr-HR",
          "name": "BESSELI"
        },
        {
          "locale": "hu-HU",
          "name": "BESSELI"
        },
        {
          "locale": "id-ID",
          "name": "BESSELI"
        },
        {
          "locale": "it-IT",
          "name": "BESSELI"
        },
        {
          "locale": "ja-JP",
          "name": "BESSELI"
        },
        {
          "locale": "ko-KR",
          "name": "BESSELI"
        },
        {
          "locale": "lt-LT",
          "name": "BESSELI"
        },
        {
          "locale": "lv-LV",
          "name": "BESSELI"
        },
        {
          "locale": "nb-NO",
          "name": "BESSELI"
        },
        {
          "locale": "nl-NL",
          "name": "BESSELI"
        },
        {
          "locale": "pl-PL",
          "name": "BESSEL.I"
        },
        {
          "locale": "pt-BR",
          "name": "BESSELI"
        },
        {
          "locale": "pt-PT",
          "name": "BESSELI"
        },
        {
          "locale": "ro-RO",
          "name": "BESSELI"
        },
        {
          "locale": "ru-RU",
          "name": "БЕССЕЛЬ.I"
        },
        {
          "locale": "sk-SK",
          "name": "BESSELI"
        },
        {
          "locale": "sl-SI",
          "name": "BESSELI"
        },
        {
          "locale": "sr-Latn-RS",
          "name": "BESSELI"
        },
        {
          "locale": "sv-SE",
          "name": "BESSELI"
        },
        {
          "locale": "th-TH",
          "name": "BESSELI"
        },
        {
          "locale": "tr-TR",
          "name": "BESSELI Denklemi"
        },
        {
          "locale": "uk-UA",
          "name": "BESSELI"
        },
        {
          "locale": "vi-VN",
          "name": "BESSELI"
        },
        {
          "locale": "zh-CN",
          "name": "BESSELI"
        },
        {
          "locale": "zh-HK",
          "name": "BESSELI"
        },
        {
          "locale": "zh-TW",
          "name": "BESSELI"
        }
      ],
      "signature": {
        "display": "BESSELI(x, n)",
        "parameters": [
          {
            "description": null,
            "name": "x",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "n",
            "optional": false,
            "repeats": false
          }
        ],
        "trailing_repeats": false
      },
      "surface_name": "BESSELI",
      "version_marker": null,
      "xlcall": {
        "code": "428",
        "symbol": "xlfBesseli"
      }
    },
    "microsoft": "https://support.microsoft.com/en-us/office/besseli-function-8d33855c-9a8d-444b-98e0-852267b1c0df"
  },
  "try_it": {
    "formula": "=BESSELI(-1, 0.9)"
  },
  "url": "https://handbook.dnacalc.com/functions/BESSELI.html",
  "variants": [],
  "versions": [
    {
      "behaviour": "BESSELI(12.514410892637624, 3.987394155038235) returned 21360.000787344507 (0x40d4dc000ce65cba). BESSELI(1.8661547234119729, 7.047660373731416) returned 0.0001361367103021099 (0x3f21d7fd6fe380e0). 3 further recorded controls are attached. Inputs were supplied through cells using Value2. These are controls from this environment, not a same-input comparison with another build.",
      "excel_build": "16.0 build 20430",
      "observations": [
        {
          "call": "BESSELI(12.514410892637624, 3.987394155038235)",
          "excel": {
            "bits": "0x40d4dc000ce65cba",
            "display": "21360.000787344507",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40290760dd512b66",
                "display": "12.514410892637624",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x400fe62ee82134c8",
                "display": "3.987394155038235",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture"
        },
        {
          "call": "BESSELI(1.8661547234119729, 7.047660373731416)",
          "excel": {
            "bits": "0x3f21d7fd6fe380e0",
            "display": "0.0001361367103021099",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x3ffddbc50e25491c",
                "display": "1.8661547234119729",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x401c30cde189f75e",
                "display": "7.047660373731416",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture"
        },
        {
          "call": "BESSELI(13.469754413420809, 10.617422640816173)",
          "excel": {
            "bits": "0x409e95e8e2cdac05",
            "display": "1957.477427686333",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x402af083a685968c",
                "display": "13.469754413420809",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x40253c1ed2043b18",
                "display": "10.617422640816173",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture"
        },
        {
          "call": "BESSELI(-1, 0)",
          "excel": {
            "bits": "0x3ff441ce433e3c05",
            "display": "1.2660658480342601",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0xbff0000000000000",
                "display": "-1",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture"
        },
        {
          "call": "BESSELI(12.514410892637624, 3.987394155038235)",
          "excel": {
            "bits": "0x40d4dc000ce65cba",
            "display": "21360.000787344507",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40290760dd512b66",
                "display": "12.514410892637624",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x400fe62ee82134c8",
                "display": "3.987394155038235",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture"
        }
      ],
      "platform": "Windows 64-bit, CPU not recorded in this capture",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/3345a87/content/notes/FN-BESSELI-001.json",
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/3345a87/content/notes/FN-BESSELI-002.json"
      ]
    },
    {
      "behaviour": "BESSELI(709.7, 3) returned 1.1560227990465618e+306 (0x7f7a56f66ecd12a0). BESSELI(709.7, 2) returned 2.4767103124440567e+306 (0x7f8c3732e70ce6f9). 4 further recorded controls are attached. Inputs were supplied through cells using Value2. These are controls from this environment, not a same-input comparison with another build.",
      "excel_build": "16.0 build 20527",
      "observations": [
        {
          "call": "BESSELI(709.7, 3)",
          "excel": {
            "bits": "0x7f7a56f66ecd12a0",
            "display": "1.1560227990465618e+306",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40862d999999999a",
                "display": "709.7",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x4008000000000000",
                "display": "3",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20527, Windows 64-bit, AMD Ryzen 7 4800H"
        },
        {
          "call": "BESSELI(709.7, 2)",
          "excel": {
            "bits": "0x7f8c3732e70ce6f9",
            "display": "2.4767103124440567e+306",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40862d999999999a",
                "display": "709.7",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x4000000000000000",
                "display": "2",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20527, Windows 64-bit, AMD Ryzen 7 4800H"
        },
        {
          "call": "BESSELI(709.7, 0)",
          "excel": {
            "bits": "0x7f8c3d51558ee541",
            "display": "2.4788083687166675e+306",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40862d999999999a",
                "display": "709.7",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20527, Windows 64-bit, AMD Ryzen 7 4800H"
        },
        {
          "call": "BESSELI(709.7, 0)",
          "excel": {
            "bits": "0x7f8c3d51558ee541",
            "display": "2.4788083687166675e+306",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40862d999999999a",
                "display": "709.7",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20527, Windows 64-bit, AMD Ryzen 7 4800H"
        },
        {
          "call": "BESSELI(709.7000000000002, 0)",
          "excel": {
            "bits": null,
            "display": "#NUM!",
            "kind": "error"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40862d999999999b",
                "display": "709.7000000000002",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20527, Windows 64-bit, AMD Ryzen 7 4800H"
        },
        {
          "call": "BESSELI(709.7000000000002, 1)",
          "excel": {
            "bits": null,
            "display": "#NUM!",
            "kind": "error"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x40862d999999999b",
                "display": "709.7000000000002",
                "kind": "number"
              }
            },
            {
              "name": "n",
              "value": {
                "bits": "0x3ff0000000000000",
                "display": "1",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20527, Windows 64-bit, AMD Ryzen 7 4800H"
        }
      ],
      "platform": "Windows 64-bit, AMD Ryzen 7 4800H",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/3345a87/content/notes/FN-BESSELI-003.json",
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/3345a87/content/notes/FN-BESSELI-004.json"
      ]
    },
    {
      "behaviour": "1,236 captured inputs are indexed for this environment. Capture dates: 2026-09-29 to 2026-09-29. This is a reading count, not a comparison with another build.",
      "excel_build": "16.0 build 20430",
      "platform": "Windows, 64-bit, CPU not recorded",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.BESSELI.json"
      ]
    }
  ]
}