{
  "category": "Statistical functions",
  "display_name": "GAMMALN.PRECISE",
  "entry_kind": "built_in_function",
  "eval_api": {
    "method": "POST",
    "url": "https://handbook.dnacalc.com/api/eval"
  },
  "function_id": "FUNC.GAMMALN.PRECISE",
  "implementation_state": {
    "answer_bank": {
      "excel_builds": [
        "20131",
        "20228",
        "?"
      ],
      "larger_numeric": 0,
      "last_bit": 3638,
      "matched": 10640,
      "other_mismatch": 0,
      "refused": 0,
      "rows": 14278,
      "unread": 0,
      "worst_ulp": 7
    },
    "detail": "Everything else matches (14,278 in the answer bank and 3 workbook cells). Last-bit means a finite number within 16 ULP of Excel's.",
    "dnacalc_commit": "9e1884369a678158dd82d3d74188daf986995e87",
    "in_catalogue": true,
    "state": "close",
    "state_label": "Close: last-bit deviations remain",
    "summary": "Close: 3,638 of 14,281 recorded answers differ in the last bits, worst 7 ULP",
    "workbook_corpus": {
      "cells": 3,
      "matched": 3
    }
  },
  "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/distributions.rs#L241-L243",
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/ported/special_dist_family.rs#L168-L170"
      ],
      "repository": "https://github.com/DnaCalc/DnaCalc",
      "shared_code": [
        "ported/special_dist_family::gammaln_kernel"
      ],
      "source": "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/catalogue/distributions.rs#L241-L243",
      "state": "close",
      "suite": null,
      "summary": "Close: 3,638 of 14,281 recorded answers differ in the last bits, worst 7 ULP"
    }
  ],
  "json_url": "https://handbook.dnacalc.com/api/functions/FUNC.GAMMALN.PRECISE.json",
  "name": "GAMMALN.PRECISE",
  "notes": [
    {
      "basis": "6,000 of 6,000 fractions at each n from 3 to 7, 30,000 answers, from Excel's own GAMMALN(2+y) (build 20527). The descending product fits 5,430 to 5,527 of 6,000. Replayed for this note in exact rational arithmetic with a correctly rounded logarithm on 300 of those fractions: 300 of 300 at n = 3 to 6, and 299 of 300 at n = 7. Recorded rows match GAMMALN 2,106 of 4,538 and GAMMALN.PRECISE 10,627 of 14,278, with stand-ins for the bands below 3.",
      "documentation": null,
      "evidence": [
        {
          "commit": "b5d84a80a5a4640eca9ce04f232c0bc115503f34",
          "locator": null,
          "note": "research write-up: how the stored stages were read",
          "path": "content/notes/evidence/2026-11-04/gamma-EVIDENCE.md",
          "repository": "ExcelFunctionsHandbook"
        },
        {
          "commit": "1c7a4ab86b12b53d80947f06b6d381e8e5dd5f3f",
          "locator": null,
          "note": "the routes in the product, with stand-ins where the code says so; the commit message carries the row counts",
          "path": "crates/calc-func/src/ported/excel_numeric/gammaln.rs",
          "repository": "DnaCalc"
        },
        {
          "commit": "af74247e1ed54f0b535143f1305261b98d80d18e",
          "locator": null,
          "note": "rows matched per function",
          "path": "crates/calc-func/witness-status.tsv",
          "repository": "DnaCalc"
        }
      ],
      "functions": [
        "FUNC.GAMMALN",
        "FUNC.GAMMALN.PRECISE"
      ],
      "inferred": "That GAMMALN.PRECISE takes the same route is inferred: the 30,000 answers are GAMMALN, and the two functions agree at every shared recorded input tried, including 3.",
      "kind": "bit-matching-detail",
      "note_id": "FN-GAMMALN-001",
      "open": [
        "The rationals below 3. They are rationals in x itself, [1.5,2) and [2,3] are separate bands, and their tables are not identified: no rescaled Cody-Hillstrom table and no fresh minimax table tried reproduces the steps of their mean error."
      ],
      "recorded_on": "2026-11-04",
      "repros": [
        {
          "call": "GAMMALN(3)",
          "correct": {
            "bits": "0x3fe62e42fefa39ef",
            "display": "0.6931471805599453",
            "how": "ln 2, correctly rounded.",
            "kind": "number"
          },
          "excel": {
            "bits": "0x3fe62e42fefa39f0",
            "display": "0.6931471805599454",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x4008000000000000",
                "display": "3",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20131, platform and bitness not recorded, AMD Ryzen 7 4800H",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "line 273, key GAMMALN|0x4008000000000000",
            "note": null,
            "path": "cache/oracle/build-20131/GAMMALN.jsonl.gz",
            "repository": "CalcFunc-Evidence"
          }
        },
        {
          "call": "GAMMALN.PRECISE(3)",
          "correct": {
            "bits": "0x3fe62e42fefa39ef",
            "display": "0.6931471805599453",
            "how": "ln 2, correctly rounded.",
            "kind": "number"
          },
          "excel": {
            "bits": "0x3fe62e42fefa39f0",
            "display": "0.6931471805599454",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x4008000000000000",
                "display": "3",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20131, platform and bitness not recorded, AMD Ryzen 7 4800H",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "line 22, key GAMMALN.PRECISE|0x4008000000000000",
            "note": null,
            "path": "cache/oracle/build-20131/GAMMALN.PRECISE.jsonl.gz",
            "repository": "CalcFunc-Evidence"
          }
        },
        {
          "call": "GAMMALN(2.020222407046596)",
          "correct": null,
          "excel": {
            "bits": "0x3f81c75cc69b54fc",
            "display": "0.008681034861562235",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x4000296a5d874ad0",
                "display": "2.020222407046596",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20527, Windows; bitness and CPU not recorded in this reading",
          "source": {
            "commit": "b5d84a80a5a4640eca9ce04f232c0bc115503f34",
            "locator": "GAMMALN 4000296a5d874ad0",
            "note": null,
            "path": "content/notes/evidence/2026-11-04/gamma-readings.tsv",
            "repository": "ExcelFunctionsHandbook"
          }
        },
        {
          "call": "GAMMALN(6.020222407046596)",
          "correct": {
            "bits": "0x401349c26258ddb8",
            "display": "4.822030579256015",
            "how": "mpmath loggamma at 800 bits from the binary64 input, correctly rounded.",
            "kind": "number"
          },
          "excel": {
            "bits": "0x401349c26258ddb7",
            "display": "4.8220305792560145",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x401814b52ec3a568",
                "display": "6.020222407046596",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20527, Windows; bitness and CPU not recorded in this reading",
          "source": {
            "commit": "b5d84a80a5a4640eca9ce04f232c0bc115503f34",
            "locator": "GAMMALN 401814b52ec3a568",
            "note": null,
            "path": "content/notes/evidence/2026-11-04/gamma-readings.tsv",
            "repository": "ExcelFunctionsHandbook"
          }
        }
      ],
      "schema": "efh.function-note/v1",
      "statement": "With RN(v) meaning v rounded to 64 bits on the x87 unit and then stored to binary64, write x = n + y with n the integer part. For 3 < x < 8, Excel forms z = (y+2)(y+3)...(y+n-1) from the left with every product RN, and GAMMALN(x) is RN(RN(ln z) + GAMMALN(2+y)). So answers on this range carry the rounding of a value on [2,3]. x = 3 itself belongs to the band on [2,3], not to this route, and returns 0x3fe62e42fefa39f0, one unit above the stored ln 2, although GAMMALN(3) is exactly ln 2.",
      "status": "measured",
      "title": "GAMMALN from 3 to 8 is a stored recurrence, and GAMMALN(3) is one unit above ln 2"
    }
  ],
  "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\n- **[GAMMALN](FUNC.GAMMALN.md)** — the legacy spelling; the full pair analysis is above, and the\n  numerical treatment lives on that page.\n- **[GAMMA](FUNC.GAMMA.md)** — the value rather than its logarithm, in the same module and\n  **not** on the same numeric path: upstream's landed log-gamma kernel is wired only to the two\n  `GAMMALN` surfaces. `LN(GAMMA(x))` and `GAMMALN.PRECISE(x)` are different computations with\n  different domains, and the first overflows where the second does not.\n- **[GAMMA.DIST](FUNC.GAMMA.DIST.md), `BETA.DIST`, `POISSON.DIST`, `COMBIN`, `MULTINOMIAL`** —\n  consumers of log-gamma, directly or through their normalising constants.\n- **`ERF.PRECISE` / `ERFC.PRECISE`** — module siblings that carry the same `.PRECISE` suffix from\n  the same renaming. Whether *those* pairs are identical computations is a separate question\n  with its own record, and nothing about this pair transfers to them.\n\n\n",
    "how-to-implement": "\n### Numerical notes\n\n\nThe algorithmic content — the three-region split (recurrence for small x, minimax rational in\nthe middle, Stirling above a seam), the unbounded relative error in the two narrow bands around\nthe zeros, and the identified structure with its threshold and seam — is set out on the\n[GAMMALN page](FUNC.GAMMALN.md#numerical-notes).\n\nTwo points belong specifically here.\n\n**\"Precise\" is a name, not a measurement.** Nothing in Microsoft's documentation quantifies the\nimprovement the 2010 renaming promised, and the banner's own wording is \"may provide improved\naccuracy\". Where a `.PRECISE` surface has been checked against its legacy counterpart in this\ndomain, the result so far has been identity rather than improvement. A reader should not choose\nthis spelling expecting better answers; they should choose it because it is the current name.\n\n",
    "quirks": "\n### The pair, stated precisely\n\n\nThe `.PRECISE` suffix belongs to the Excel 2010 renaming of the statistical function set, and in\nthe general case the Handbook's rule holds: **a modern dotted name is not guaranteed to be the same\ncomputation as its legacy counterpart, and proving identity requires evidence.** For this\nparticular pair, unusually, some of that evidence exists — upstream's, not the Handbook's — and\nit is worth laying out with each claim's warrant attached.\n\n1. **Documented supersession.** Microsoft's `GammaLn` page carries the replacement banner: the\n   function \"has been replaced with one or more new functions that may provide improved accuracy\n   and whose names better reflect their usage\", and it names `GammaLn_Precise`. Note the modal\n   verb — *may* provide improved accuracy. The banner is boilerplate carried by every function\n   in that 2010 renaming, and it promises nothing measurable.\n2. **Observed identity, upstream, on one build.** `EV-MATH-0014` records an Excel-versus-Excel\n   check in which both surfaces resolved to the same implementation and published the same\n   results at every probed point. The record is explicit that this is an identity check and not\n   a pass rate, and that the source publishes no numerator or denominator for it.\n4. **The direction of inheritance runs toward the legacy name, not away from it.**\n   `EV-MATH-0013` records that both of the family's held-out tests were captured through\n   *this* spelling, so a figure measured on `GAMMALN.PRECISE` transfers to `GAMMALN` by that\n   argument and not the reverse. That is the opposite of the usual assumption, in which the\n   older, better-studied surface is the measured one.\n\n\n\n### Result and edge cases\n\n\nReturns `Number`. The edge-case inventory is the one on the\n[GAMMALN page](FUNC.GAMMALN.md#result-and-edge-cases): exact zeros at x = 1 and x = 2, the\n−ln x behaviour as x → 0⁺, Stirling growth at large x, and `#NUM!` for x ≤ 0.\n\n\n### Errors\n\n\nMicrosoft's documentation for this surface is worded differently from the legacy one, and the\ndifference is worth noting rather than smoothing over:\n\n| Condition | `GAMMALN.PRECISE` documentation | `GAMMALN` documentation |\n|---|---|---|\n| `x` is nonnumeric | \"generates an error\" | `#VALUE!` |\n| `x` ≤ 0 | \"generates an error\" | `#NUM!` |\n\n**The modern page does not name the error values; the legacy page does.** The two pages describe\nthe same two conditions, but only one of them tells you what lands in the cell. A reader writing\nan `IFERROR`/`IFNA` guard needs the code, and the documentation for the *recommended* surface is\nthe one that omits it. Recorded as a documentation gap.\n\n",
    "sources": "- Microsoft Learn, \"WorksheetFunction.GammaLn_Precise method (Excel)\" —\n  <https://learn.microsoft.com/en-us/office/vba/api/excel.worksheetfunction.gammaln_precise>\n  (the description, the two conditions worded as \"generates an error\" without naming a code, and\n  the exp(GAMMALN(i)) = (i − 1)! remark).\n- Abramowitz & Stegun, *Handbook of Mathematical Functions*, §6.1; Cody & Hillstrom (1967);\n  SPECFUN `ALGAMA`/`DLGAMA`; fdlibm `e_lgamma_r.c`.\n- Handbook evidence records `EV-MATH-0013` (the held-out tests, their scope caveats, the capture\n  spelling, and the upstream self-contradiction) and `EV-MATH-0014` (the Excel-versus-Excel alias\n  identity on one named build).\n- Handbook, [GAMMALN](FUNC.GAMMALN.md) — the shared mathematics and numerical treatment.\n- Handbook, [Coercion and lifting](../model/02-coercion-and-lifting.md).\n- Handbook projections `data/functions/FUNC.GAMMALN.PRECISE.json` (arity, category **Statistical\n  functions**) and `data/presence/FUNC.GAMMALN.PRECISE.json` (the `special_dist_family` module).\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| 19929 | Windows, bitness not recorded, CPU not recorded | 44 |\n| 20131 | Windows, bitness not recorded, AMD Ryzen 7 4800H with Radeon Graphics | 14,262 |\n| 20228 | Windows, 64-bit, CPU not recorded | 16 |\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.GAMMALN.PRECISE.json).",
    "what-it-does": "\n`GAMMALN.PRECISE(x)` returns the natural logarithm of the gamma function, ln Γ(x), for x > 0.\n\nThe mathematics is set out in full on the [GAMMALN](FUNC.GAMMALN.md) page — the integral\ndefinition, the recurrence ln Γ(x+1) = ln x + ln Γ(x), strict convexity on (0, ∞), the two zeros\nat x = 1 and x = 2, the single minimum near x ≈ 1.4616, and Stirling's asymptotic series — and is\nnot repeated here. Microsoft's description of this surface is word-for-word the description of\nthe legacy one: \"Returns the natural logarithm of the gamma function, Γ(x).\"\n\nThe interesting content of *this* page is not the mathematics. It is the pair relationship, and\nwhat the word \"PRECISE\" in the name does and does not promise.\n\n\n\n### Arguments\n\n\n| Argument | Meaning | Default |\n|---|---|---|\n| `x` | The value at which to evaluate ln Γ. Required. | — |\n\n"
  },
  "signature": {
    "display": "GAMMALN.PRECISE(x)",
    "parameters": [
      {
        "description": null,
        "name": "x",
        "optional": false,
        "repeats": false
      }
    ],
    "trailing_repeats": false
  },
  "sources": {
    "metadata": {
      "admission": {
        "label": "implemented",
        "reason": null
      },
      "arity": {
        "max": 1,
        "min": 1
      },
      "category": "Statistical 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": "RefOnly",
        "thread_safety_class": "SafePure",
        "volatility_class": "NonVolatile"
      },
      "descriptions": {
        "long": null,
        "short": "Natural logarithm of the gamma function",
        "short_source": "dna-calc-own"
      },
      "docs": {
        "english_description": "Returns the natural logarithm of the gamma function, ?(x)",
        "microsoft_url": "https://support.microsoft.com/en-us/office/gammaln-precise-function-5cdfe601-4e1e-4189-9d74-241ef1caa599"
      },
      "entry_kind": "built_in_function",
      "localized_family_names": null,
      "localized_names": [
        {
          "locale": "ar-SA",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "bg-BG",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "cs-CZ",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "da-DK",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "de-DE",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "el-GR",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "en-AU",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "en-GB",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "en-US",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "es-ES",
          "name": "GAMMA.LN.EXACTO"
        },
        {
          "locale": "et-EE",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "fi-FI",
          "name": "GAMMALN.TARKKA"
        },
        {
          "locale": "fr-FR",
          "name": "LNGAMMA.PRECIS*"
        },
        {
          "locale": "he-IL",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "hr-HR",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "hu-HU",
          "name": "GAMMALN.PONTOS"
        },
        {
          "locale": "id-ID",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "it-IT",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "ja-JP",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "ko-KR",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "lt-LT",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "lv-LV",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "nb-NO",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "nl-NL",
          "name": "GAMMA.LN.NAUWKEURIG"
        },
        {
          "locale": "pl-PL",
          "name": "ROZKŁAD.LIN.GAMMA.DOK"
        },
        {
          "locale": "pt-BR",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "pt-PT",
          "name": "LNGAMA.PRECISO"
        },
        {
          "locale": "ro-RO",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "ru-RU",
          "name": "ГАММАНЛОГ.ТОЧН"
        },
        {
          "locale": "sk-SK",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "sl-SI",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "sr-Latn-RS",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "sv-SE",
          "name": "GAMMALN.EXAKT"
        },
        {
          "locale": "th-TH",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "tr-TR",
          "name": "GAMALN.DUYARLI"
        },
        {
          "locale": "uk-UA",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "vi-VN",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "zh-CN",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "zh-HK",
          "name": "GAMMALN.PRECISE"
        },
        {
          "locale": "zh-TW",
          "name": "GAMMALN.PRECISE"
        }
      ],
      "signature": {
        "display": "GAMMALN.PRECISE(x)",
        "parameters": [
          {
            "description": null,
            "name": "x",
            "optional": false,
            "repeats": false
          }
        ],
        "trailing_repeats": false
      },
      "surface_name": "GAMMALN.PRECISE",
      "version_marker": null,
      "xlcall": {
        "code": "545",
        "symbol": "xlfGammaln_precise"
      }
    },
    "microsoft": "https://support.microsoft.com/en-us/office/gammaln-precise-function-5cdfe601-4e1e-4189-9d74-241ef1caa599"
  },
  "try_it": {
    "formula": "=GAMMALN.PRECISE(3)"
  },
  "url": "https://handbook.dnacalc.com/functions/GAMMALN.PRECISE.html",
  "variants": [],
  "versions": [
    {
      "behaviour": "GAMMALN.PRECISE(3) returned 0.6931471805599454 (0x3fe62e42fefa39f0). 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 20131",
      "observations": [
        {
          "call": "GAMMALN.PRECISE(3)",
          "excel": {
            "bits": "0x3fe62e42fefa39f0",
            "display": "0.6931471805599454",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "x",
              "value": {
                "bits": "0x4008000000000000",
                "display": "3",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20131, platform and bitness not recorded, AMD Ryzen 7 4800H"
        }
      ],
      "platform": null,
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/3345a87/content/notes/FN-GAMMALN-001.json"
      ]
    },
    {
      "behaviour": "44 captured inputs are indexed for this environment. Capture dates are not recorded. This is a reading count, not a comparison with another build.",
      "excel_build": "16.0 build 19929",
      "platform": "Windows, bitness not recorded, CPU not recorded",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.GAMMALN.PRECISE.json"
      ]
    },
    {
      "behaviour": "14,262 captured inputs are indexed for this environment. Capture dates: 2026-07-12 to 2026-07-17. This is a reading count, not a comparison with another build.",
      "excel_build": "16.0 build 20131",
      "platform": "Windows, bitness not recorded, AMD Ryzen 7 4800H with Radeon Graphics",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.GAMMALN.PRECISE.json"
      ]
    },
    {
      "behaviour": "16 captured inputs are indexed for this environment. Capture dates: 2026-08-09 to 2026-08-09. This is a reading count, not a comparison with another build.",
      "excel_build": "16.0 build 20228",
      "platform": "Windows, 64-bit, CPU not recorded",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.GAMMALN.PRECISE.json"
      ]
    }
  ]
}