{
  "category": "Engineering functions",
  "display_name": "BESSELK",
  "entry_kind": "built_in_function",
  "eval_api": {
    "method": "POST",
    "url": "https://handbook.dnacalc.com/api/eval"
  },
  "function_id": "FUNC.BESSELK",
  "implementation_state": {
    "answer_bank": {
      "excel_builds": [
        "20430"
      ],
      "larger_numeric": 0,
      "last_bit": 0,
      "matched": 1236,
      "other_mismatch": 0,
      "refused": 0,
      "rows": 1236,
      "unread": 0,
      "worst_ulp": 0
    },
    "detail": "Recorded: 1,236 in the answer bank and 89 workbook cells.",
    "dnacalc_commit": "9e1884369a678158dd82d3d74188daf986995e87",
    "in_catalogue": true,
    "state": "matches",
    "state_label": "Matches every recorded Excel answer",
    "summary": "Matches all 1,325 recorded answers",
    "workbook_corpus": {
      "cells": 89,
      "matched": 89
    }
  },
  "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#L262-L262",
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/ported/bessel.rs#L93-L95",
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/ported/bessel.rs#L126-L134",
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/ported/bessel.rs#L147-L154",
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/ported/bessel.rs#L156-L163",
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/ported/bessel.rs#L358-L372"
      ],
      "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::forward",
        "ported/bessel::finish"
      ],
      "source": "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/catalogue/engineering.rs#L262-L262",
      "state": "matches",
      "suite": null,
      "summary": "Matches all 1,325 recorded answers"
    }
  ],
  "json_url": "https://handbook.dnacalc.com/api/functions/FUNC.BESSELK.json",
  "name": "BESSELK",
  "notes": [
    {
      "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"
    }
  ],
  "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- **[BESSELI](FUNC.BESSELI.md)** — the growing solution of the same equation. The two are tied by\n  the exact cross-product I_n(x)·K_(n+1)(x) + I_(n+1)(x)·K_n(x) = 1/x, a useful check that needs no\n  oracle. In the form described under *Numerical notes*, K_0 and K_1 use I_0 and I_1 for x ≤ 2, so\n  the two functions are not independent there. Their accuracy note is shared.\n- **The recurrence.** K_(n+1)(x) = K_(n−1)(x) + (2n/x)·K_n(x). Every term is positive, which is why\n  stepping upward in n is safe here and unsafe for I_n.\n- **Where readers meet it.** K_0 is the kernel of the two-dimensional screened Poisson equation and\n  the steady-state well function of a leaky aquifer, and K_1 appears in the density of the\n  normal-inverse-Gaussian distribution.\n\n\n",
    "how-to-implement": "\n### Numerical notes\n\n\n**Low-order polynomials, by design.** The notes below record that `BESSELK` is correctly rounded on\n0 of 1,155 recorded rows, with a largest relative error of 1.7E-7. Treat it as a seven-digit\nfunction: the same order of accuracy as `BESSELI`, and for the same reason.\n\n**The form the recorded answers follow.** The notes do not give a staging for this function. The\npublished candidates are the polynomials of Abramowitz & Stegun 9.8.5 to 9.8.8: for x ≤ 2 a\npolynomial in (x/2)² plus a ln(x/2) term multiplied by the polynomial I_0 or I_1, and for x > 2 a\npolynomial in 2/x multiplied by e^(−x)/√x. Orders 2 and above then step upward from K_0 and K_1.\nWhile writing this page that recipe was transcribed in plain binary64 and compared with the\nrecorded rows: it gave the same double on 1,141 of the 1,155 numeric rows and came within 10 units\non the other 14 (Excel 16.0 build 20430, Windows 64-bit, CPU not recorded). That is strong evidence\nfor the form, and it is a spot check on the same rows, not a held-out measurement. It says nothing\nabout the units in the remaining 14, which is where a staging difference such as the x87 storage\nthe notes describe for `BESSELI` would show.\n\n**Upward is the stable direction.** K_n grows with n, so stepping up amplifies nothing dangerous.\nThere is no starting point to choose and no analogue of `BESSELI`'s large-`x` defect. The relative\nerror at orders 2 and above in the recording comes from K_0 and K_1 and thins out as the order\nrises: the worst row at each order falls from about 1.7E-7 at order 1 to between 1E-8 and 2.4E-8 at\norders 12 and above.\n\n**Where the largest errors sit.** The worst rows in the recording are at order 1, and then order 0,\nwith x near 38 to 40. That is a swing of the large-`x` polynomial's own error curve, with nothing\nto suggest a defect.\n\n**There is a seam at x = 2.** Evaluating the printed coefficients on both sides of 2 gives a jump\nof about 6.7E-8 relative in K_0 and 1.1E-8 in K_1. That is arithmetic on the published coefficients:\nno recorded row sits within 0.0003 of 2. The matching step in `BESSELI` is visible in Excel's\nanswers at adjacent doubles, so there is every reason to expect this one too.\n\n",
    "quirks": "\n### Result and edge cases\n\n\nReturns `Number`. Unless stated otherwise, the behaviour below is read from the 1,236 recorded\nanswers on build 20430.\n\n- **The documented example** `BESSELK(1.5, 1)` is printed by Microsoft as `0.277387804`. The true\n  value is 0.2773878005, so the printed value differs from it in the ninth significant digit. This\n  is the function's normal accuracy, not an error in the documentation.\n- **Small `x`, ordinary order** behaves correctly and the numbers grow quickly. The smallest\n  positive `x` read is 0.001, where order 10 is about 1.9E38, the largest value in the recording.\n- **Large `x`** decays toward the bottom of the range. The largest `x` read is 100, where order 0\n  is about 4.7E-45. In the recording no call with `x > 0` and a non-negative order raised an error,\n  and neither end of the range was reached.\n- **Overflow and underflow.** K_n is not representable for high order at small `x`, or at `x` beyond\n  about 740, where K_0 rounds to 0 below the smallest subnormal. How Excel reports either has not\n  been read. `BESSELI` raises `#NUM!` well before its own limit, so a silent 0 cannot be assumed\n  here.\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` (build 20430):\n\n| Error | Condition | Rows |\n|---|---|---|\n| `#NUM!` | `x ≤ 0` at any non-negative order | 24 |\n| `#NUM!` | `n` strictly between −1 and 0, with `x > 0` | 51 |\n\nThe documentation states neither row. The first is forced by the mathematics and is what any\nreader would expect; it is still a gap in the page. The second is a choice, and an implementation\nthat truncates first gets it wrong.\n\n",
    "sources": "- Microsoft, \"BESSELK function\" —\n  <https://support.microsoft.com/en-us/office/besselk-function-606d11bc-06d3-4d53-9ecb-2803e2b90b70>\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; **no condition on the\n  sign of `x` is stated**).\n- Abramowitz & Stegun, *Handbook of Mathematical Functions*, 9.8.5 to 9.8.8 — the polynomial\n  approximations.\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 and Y_n, recurrence,\n  cross-product, integral form, limiting forms and the negative axis).\n- The recorded Excel answers the notes below draw on: 1,236 `BESSELK` calls on Excel 16.0 build\n  20430, Windows 64-bit, CPU not recorded, captured 2026-09-29. Statements on this page that go\n  beyond the notes (the domain and sign-test counts, the spot check, and the per-order errors) were\n  read from that same file and compared with mpmath at 300 bits while this page was written.\n- Handbook evidence record `EV-MISC-0003` (the joint scan with `BESSELI`).\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.BESSELK.json` and `data/presence/FUNC.BESSELK.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.BESSELK.json).",
    "what-it-does": "\n`BESSELK(x, n)` returns **K_n(x)**, the modified Bessel function of the second kind, of integer\norder n at the real point x > 0. It is the second solution of the modified Bessel equation\n\n    x² w″ + x w′ − (x² + n²) w  =  0\n\nthe one that decays as x grows, where [BESSELI](FUNC.BESSELI.md) is the one that stays finite at\nthe origin. Microsoft's page defines it through the J and Y Bessel functions at an imaginary\nargument, in an equation given as an image. The standard form of that relation is\n\n    K_n(x)  =  (π/2) · i^(n+1) · [ J_n(i·x) + i · Y_n(i·x) ]\n\nFor real x > 0 a more useful form is the integral\n\n    K_n(x)  =  ∫₀^∞  e^(−x cosh t) cosh(n t) dt\n\nwhich makes three things visible at once: K_n(x) is positive, it falls as x grows, and it rises as\nthe order rises.\n\n- **Decay.** For large x, K_n(x) ≈ √(π/(2x)) · e^(−x). As with I_n, every order looks alike at\n  that scale. K_0(100) is already about 4.7E-45.\n- **The singularity at 0.** K_0(x) ≈ −ln x as x → 0, and K_n(x) ≈ ½ (n−1)! (2/x)^n for n ≥ 1. The\n  function goes to infinity at the origin, faster at higher order, and has no value there.\n- **Negative x.** K_n has a branch point at 0 and is not real on the negative axis. There is no\n  parity rule of the kind I_n has, which is why this function has a smaller domain than `BESSELI`.\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**`x` must be positive, and the documentation does not say so.** Microsoft's remarks cover only a\nnonnumeric argument and `n < 0`. The recorded answers show `#NUM!` on all 24 calls with `x ≤ 0` and\na non-negative order, including `x = 0` at orders 0, 1, 2 and 10 (Excel 16.0 build 20430, Windows\n64-bit, CPU not recorded).\n\n**Truncation and the negative test.** As with `BESSELI`, the sign test sees `n` before truncation.\nAll 51 recorded calls with `x > 0` and `n` strictly between −1 and 0 returned `#NUM!`, although\ntruncation would give order 0. Positive fractions truncate as documented, and `BESSELK(x, 0.9)`\nreads the same as `BESSELK(x, 0)` at the grid points where both were asked.\n\n`BESSELK` is not a function of real order, even though K_ν is perfectly well defined for real ν.\n`BESSELK(x, 1.5)` is K_1(x), not the closed-form K_(3/2)(x).\n\nThe slots are numeric. No reading of text, a logical, an empty cell or an array in either slot is\non record for this function; see *What has not been checked*.\n\n\n"
  },
  "signature": {
    "display": "BESSELK(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 second kind, K_n(x)",
        "short_source": "dna-calc-own"
      },
      "docs": {
        "english_description": "Returns the modified Bessel function Kn(x)",
        "microsoft_url": "https://support.microsoft.com/en-us/office/besselk-function-606d11bc-06d3-4d53-9ecb-2803e2b90b70"
      },
      "entry_kind": "built_in_function",
      "localized_family_names": null,
      "localized_names": [
        {
          "locale": "ar-SA",
          "name": "BESSELK"
        },
        {
          "locale": "bg-BG",
          "name": "BESSELK"
        },
        {
          "locale": "cs-CZ",
          "name": "BESSELK"
        },
        {
          "locale": "da-DK",
          "name": "BESSELK"
        },
        {
          "locale": "de-DE",
          "name": "BESSELK"
        },
        {
          "locale": "el-GR",
          "name": "BESSELK"
        },
        {
          "locale": "en-AU",
          "name": "BESSELK"
        },
        {
          "locale": "en-GB",
          "name": "BESSELK"
        },
        {
          "locale": "en-US",
          "name": "BESSELK"
        },
        {
          "locale": "es-ES",
          "name": "BESSELK"
        },
        {
          "locale": "et-EE",
          "name": "BESSELK"
        },
        {
          "locale": "fi-FI",
          "name": "BESSELK"
        },
        {
          "locale": "fr-FR",
          "name": "BESSELK*"
        },
        {
          "locale": "he-IL",
          "name": "BESSELK"
        },
        {
          "locale": "hr-HR",
          "name": "BESSELK"
        },
        {
          "locale": "hu-HU",
          "name": "BESSELK"
        },
        {
          "locale": "id-ID",
          "name": "BESSELK"
        },
        {
          "locale": "it-IT",
          "name": "BESSELK"
        },
        {
          "locale": "ja-JP",
          "name": "BESSELK"
        },
        {
          "locale": "ko-KR",
          "name": "BESSELK"
        },
        {
          "locale": "lt-LT",
          "name": "BESSELK"
        },
        {
          "locale": "lv-LV",
          "name": "BESSELK"
        },
        {
          "locale": "nb-NO",
          "name": "BESSELK"
        },
        {
          "locale": "nl-NL",
          "name": "BESSELK"
        },
        {
          "locale": "pl-PL",
          "name": "BESSEL.K"
        },
        {
          "locale": "pt-BR",
          "name": "BESSELK"
        },
        {
          "locale": "pt-PT",
          "name": "BESSELK"
        },
        {
          "locale": "ro-RO",
          "name": "BESSELK"
        },
        {
          "locale": "ru-RU",
          "name": "БЕССЕЛЬ.K"
        },
        {
          "locale": "sk-SK",
          "name": "BESSELK"
        },
        {
          "locale": "sl-SI",
          "name": "BESSELK"
        },
        {
          "locale": "sr-Latn-RS",
          "name": "BESSELK"
        },
        {
          "locale": "sv-SE",
          "name": "BESSELK"
        },
        {
          "locale": "th-TH",
          "name": "BESSELK"
        },
        {
          "locale": "tr-TR",
          "name": "BESSELK işlevi"
        },
        {
          "locale": "uk-UA",
          "name": "BESSELK"
        },
        {
          "locale": "vi-VN",
          "name": "BESSELK"
        },
        {
          "locale": "zh-CN",
          "name": "BESSELK"
        },
        {
          "locale": "zh-HK",
          "name": "BESSELK"
        },
        {
          "locale": "zh-TW",
          "name": "BESSELK"
        }
      ],
      "signature": {
        "display": "BESSELK(x, n)",
        "parameters": [
          {
            "description": null,
            "name": "x",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "n",
            "optional": false,
            "repeats": false
          }
        ],
        "trailing_repeats": false
      },
      "surface_name": "BESSELK",
      "version_marker": null,
      "xlcall": {
        "code": "426",
        "symbol": "xlfBesselk"
      }
    },
    "microsoft": "https://support.microsoft.com/en-us/office/besselk-function-606d11bc-06d3-4d53-9ecb-2803e2b90b70"
  },
  "try_it": {
    "formula": "=BESSELK(1.5, 1)"
  },
  "url": "https://handbook.dnacalc.com/functions/BESSELK.html",
  "variants": [],
  "versions": [
    {
      "behaviour": "BESSELK(1.8447401994787955, 0.15119840195885237) returned 0.1380029049573409 (0x3fc1aa1445c5bb34). 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": "BESSELK(1.8447401994787955, 0.15119840195885237)",
          "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"
        }
      ],
      "platform": "Windows 64-bit, CPU not recorded in this capture",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/3345a87/content/notes/FN-BESSELI-002.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.BESSELK.json"
      ]
    }
  ]
}