{
  "category": "Statistical functions",
  "display_name": "GAMMALN",
  "entry_kind": "built_in_function",
  "eval_api": {
    "method": "POST",
    "url": "https://handbook.dnacalc.com/api/eval"
  },
  "function_id": "FUNC.GAMMALN",
  "implementation_state": {
    "answer_bank": {
      "excel_builds": [
        "20131",
        "20228",
        "?"
      ],
      "larger_numeric": 0,
      "last_bit": 2403,
      "matched": 2135,
      "other_mismatch": 0,
      "refused": 0,
      "rows": 4538,
      "unread": 0,
      "worst_ulp": 7
    },
    "detail": "Everything else matches (4,538 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: 2,403 of 4,541 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#L240-L240"
      ],
      "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#L240-L240",
      "state": "close",
      "suite": null,
      "summary": "Close: 2,403 of 4,541 recorded answers differ in the last bits, worst 7 ULP"
    }
  ],
  "json_url": "https://handbook.dnacalc.com/api/functions/FUNC.GAMMALN.json",
  "name": "GAMMALN",
  "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- **[GAMMA](FUNC.GAMMA.md)** — the value rather than its logarithm. The two share a module and\n  **not** a numeric path: upstream's landed log-gamma kernel is wired only to the two `GAMMALN`\n  surfaces, and the source says so in as many words. `LN(GAMMA(x))` and `GAMMALN(x)` are\n  therefore different computations with different accuracy and different domains, and the\n  first overflows where the second does not.\n- **`FACT`, `COMBIN`, `MULTINOMIAL`** — combinatorial quantities better computed through this\n  function than through `GAMMA` or `FACT` when the intermediate factorials would overflow.\n  `COMBIN(n,k)` as `EXP(GAMMALN(n+1) − GAMMALN(k+1) − GAMMALN(n−k+1))` is the standard rewrite,\n  and it is *less* accurate for small n than an exact integer route — a real trade, not a free\n  improvement.\n- **[GAMMA.DIST](FUNC.GAMMA.DIST.md), `BETA.DIST`, `POISSON.DIST`** — consumers: their\n  normalising constants are log-gammas.\n- **Module siblings**: `ERF`, `ERF.PRECISE`, `ERFC`, `ERFC.PRECISE`, `GAMMA`, `WEIBULL`,\n  `WEIBULL.DIST`.\n\n\n",
    "how-to-implement": "\n### Numerical notes\n\n\n**The classical design is a three-region split.** Every serious implementation of ln Γ does the\nsame three things, and their boundaries are the implementation's fingerprint:\n\n1. **Small x** — use the recurrence to lift x into the well-behaved region:\n   ln Γ(x) = ln Γ(x + 1) − ln x. This is essential because the Lanczos and rational forms both\n   degrade as x → 0, and the reciprocal singularity is best handled by an explicit `ln x` term.\n2. **The middle**, roughly [1, 8] — a minimax rational or Chebyshev approximation. Cody &\n   Hillstrom's 1967 Chebyshev approximations are the classical answer and the ancestor of\n   SPECFUN's `ALGAMA`/`DLGAMA`, of fdlibm's `lgamma`, and of most libm implementations. Excel\n   differs here: from 3 to 8 it uses a stored recurrence (FN-GAMMALN-001).\n3. **Large x** — Stirling's asymptotic series (A&S 6.1.40), typically with terms through 1/x⁷ or\n   so, above a seam around x = 8 to 12.\n\n**The two zeros are the trap.** Because ln Γ vanishes at x = 1 and x = 2, the *relative* error\nnear those points is unbounded for any implementation that computes the value directly: the\nanswer is a small number obtained by cancelling large terms, and the surviving digits are few.\nfdlibm handles this by evaluating a polynomial in (x − 1) or (x − 2) directly near each zero,\nso that the small quantity is the *argument* rather than a difference. An implementation that\nskips that step will produce residuals that spike sharply in two narrow bands and look fine\neverywhere else — which is exactly the pattern that makes a coarse accuracy sweep miss the\nproblem.\n\n**Argument reduction is the other half.** The recurrence multiplies by x, so lifting a small\nargument requires computing `ln x` accurately and subtracting; near x = 1 that subtraction is\nitself a cancellation. The interaction of the reduction seam with the zero at x = 1 is the\nsubtlest part of the whole function.\n\n**What upstream identified.** The evidence records describe an identification campaign that\npinned a structural form for Excel's surface — a threshold near 0.7, a seam at 8.0, and a\nStirling form beyond it — and then fitted coefficients, with two held-out tests plus one fresh\nnever-probed corpus used to decide which candidate landed. Two properties of that campaign\nmatter to a reader and are stated in the records themselves. First, the held-out tests were held\nout from the **coefficient fits**, not from the structural identification: the threshold, the\nseam and the form were pinned on batteries surrounding those very rows. Second, the arguments in\nboth held-out tests are `GAMMALN.PRECISE` captures, so the inheritance runs from `.PRECISE` to\n`GAMMALN` and not the other way — the surface with the fresh corpus of its own is this one, and\nthe record says so explicitly.\n\n**Recommended practice.** Prefer `GAMMALN` over `LN(GAMMA(x))` unconditionally: it is defined on\na larger useful range, it does not overflow where `GAMMA` does, and it avoids the\nexp-then-log round trip. Where a *ratio* of gammas is wanted, keep it in log space to the last\nstep. Where an exact small factorial is wanted, use the integer route, not this one.\n\n\n",
    "quirks": "\n### Result and edge cases\n\n\nReturns `Number`.\n\n- **Small positive x** behaves like −ln x: ln Γ(x) = −ln x − γx + O(x²). At the bottom of the\n  double range the value is large and finite, which is the good news `GAMMALN` exists to\n  deliver — where `GAMMA` overflows, `GAMMALN` still answers.\n- **x ≤ 0** is documented `#NUM!`, including the poles and the whole negative axis where the\n  real logarithm of Γ does not exist.\n- **Array arguments** lift elementwise through the module's broadcast helper.\n\n\n\n### Errors\n\n\nAs documented by Microsoft:\n\n| Error | Condition |\n|---|---|\n| `#VALUE!` | `x` is nonnumeric |\n| `#NUM!` | `x` ≤ 0 |\n\n",
    "sources": "- Abramowitz & Stegun, *Handbook of Mathematical Functions*, §6.1 — the recurrence, the two\n  zeros, the location of the minimum, and Stirling's asymptotic series at 6.1.40.\n- W. J. Cody & K. E. Hillstrom, \"Chebyshev approximations for the natural logarithm of the gamma\n  function\", *Math. Comp.* 21 (1967); SPECFUN `ALGAMA`/`DLGAMA`; fdlibm `e_lgamma_r.c` — the\n  three-region design and the special handling near the zeros.\n- Handbook evidence records `EV-MATH-0012` (the fresh per-surface test), `EV-MATH-0013` (the two\n  held-out tests, their scope caveats, and the upstream self-contradiction on one figure) and\n  `EV-MATH-0014` (the Excel-versus-Excel alias identity on one named build).\n- Handbook, [GAMMA](FUNC.GAMMA.md) — the value form, and the record that the landed kernel does\n  not touch it.\n- Handbook, [Coercion and lifting](../model/02-coercion-and-lifting.md).\n- Handbook projections `data/functions/FUNC.GAMMALN.json` (arity, category **Statistical\n  functions**) and `data/presence/FUNC.GAMMALN.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 | 43 |\n| 20131 | Windows, bitness not recorded, AMD Ryzen 7 4800H with Radeon Graphics | 4,450 |\n| 20228 | Windows, 64-bit, CPU not recorded | 88 |\n\n- XC-GAMMALN-001: build 19929 versus build 20228; 1 same-input pairs, 0 differing answers. Compared axes: excel-build. Numeric answers were compared by their recorded binary64 bits; other answers by typed value.\n- XC-GAMMALN-002: build 20131 versus build 20228; 13 same-input pairs, 0 differing answers. Compared axes: excel-build. Numeric answers were compared by their recorded binary64 bits; other answers by typed value.\n\nAgreement on these compared inputs does not establish agreement on unmeasured inputs.\n\n[Recorded environments and comparison details](https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.GAMMALN.json).",
    "what-it-does": "\n`GAMMALN(x)` returns the natural logarithm of the gamma function:\n\n    GAMMALN(x)  =  ln Γ(x)  =  ln ∫₀^∞ t^{x−1} e^{−t} dt        for x > 0\n\n**Domain:** the positive reals. Excel does not expose the negative-argument branch (where Γ\nalternates sign and its logarithm is complex), so the documented domain is x > 0 with `#NUM!`\noutside it. Note this makes `GAMMALN` a *restriction* of `LN(GAMMA(x))`, not an equivalent: the\nlatter is defined on more of the line and overflows on far less of it.\n\n**Range and shape.** ln Γ is strictly convex on (0, ∞) — this is the Bohr–Mollerup\ncharacterisation, and it is the property that makes ln Γ the natural object rather than Γ. It\nfalls from +∞ at x → 0⁺ to a single minimum near x ≈ 1.4616 (value ≈ −0.1214) and rises\nthereafter without bound. It has **exactly two zeros**, at x = 1 and x = 2, because Γ(1) =\nΓ(2) = 1. Those two zeros are the source of the function's only real accuracy trap; see\n**Numerical notes**.\n\n**The identities.**\n\n    ln Γ(x + 1)  =  ln x  +  ln Γ(x)                      (recurrence)\n    ln Γ(n)      =  ln (n − 1)!                           for positive integers n\n    ln Γ(x)      ~ (x − ½) ln x − x + ½ ln(2π) + 1/(12x) − 1/(360x³) + …   (Stirling, A&S 6.1.40)\n\nMicrosoft states the integer relation from the other side: \"The number e raised to the\nGAMMALN(i) power, where i is an integer, returns the same result as (i − 1)!\" That is exact as\nmathematics and, as with `GAMMA`, is a floating-point *claim about the round trip* rather than a\nguarantee — exp(lnΓ(i)) need not land on the integer.\n\n**Why this function exists at all.** Γ overflows binary64 a little above x ≈ 171.6; ln Γ stays\ncomfortably finite until x is astronomically large. Every ratio of gamma functions — binomial\ncoefficients, beta functions, distribution normalising constants, multinomials — should be\ncomputed as a difference of log-gammas and exponentiated once at the end, if at all. That is\nthe entire practical argument for the function, and it is why `GAMMALN` appears far more often\nthan `GAMMA` in careful spreadsheet work.\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(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-function-b838c48b-c65f-484f-9e1d-141c55470eb9"
      },
      "entry_kind": "built_in_function",
      "localized_family_names": null,
      "localized_names": [
        {
          "locale": "ar-SA",
          "name": "GAMMALN"
        },
        {
          "locale": "bg-BG",
          "name": "GAMMALN"
        },
        {
          "locale": "cs-CZ",
          "name": "GAMMALN"
        },
        {
          "locale": "da-DK",
          "name": "GAMMALN"
        },
        {
          "locale": "de-DE",
          "name": "GAMMALN"
        },
        {
          "locale": "el-GR",
          "name": "GAMMALN"
        },
        {
          "locale": "en-AU",
          "name": "GAMMALN"
        },
        {
          "locale": "en-GB",
          "name": "GAMMALN"
        },
        {
          "locale": "en-US",
          "name": "GAMMALN"
        },
        {
          "locale": "es-ES",
          "name": "GAMMA.LN"
        },
        {
          "locale": "et-EE",
          "name": "GAMMALN"
        },
        {
          "locale": "fi-FI",
          "name": "GAMMALN"
        },
        {
          "locale": "fr-FR",
          "name": "LNGAMMA*"
        },
        {
          "locale": "he-IL",
          "name": "GAMMALN"
        },
        {
          "locale": "hr-HR",
          "name": "GAMMALN"
        },
        {
          "locale": "hu-HU",
          "name": "GAMMALN"
        },
        {
          "locale": "id-ID",
          "name": "GAMMALN"
        },
        {
          "locale": "it-IT",
          "name": "GAMMALN"
        },
        {
          "locale": "ja-JP",
          "name": "GAMMALN"
        },
        {
          "locale": "ko-KR",
          "name": "GAMMALN"
        },
        {
          "locale": "lt-LT",
          "name": "GAMMALN"
        },
        {
          "locale": "lv-LV",
          "name": "GAMMALN"
        },
        {
          "locale": "nb-NO",
          "name": "GAMMALN"
        },
        {
          "locale": "nl-NL",
          "name": "GAMMA.LN"
        },
        {
          "locale": "pl-PL",
          "name": "ROZKŁAD.LIN.GAMMA"
        },
        {
          "locale": "pt-BR",
          "name": "GAMMALN"
        },
        {
          "locale": "pt-PT",
          "name": "LNGAMA"
        },
        {
          "locale": "ro-RO",
          "name": "GAMMALN"
        },
        {
          "locale": "ru-RU",
          "name": "ГАММАНЛОГ"
        },
        {
          "locale": "sk-SK",
          "name": "GAMMALN"
        },
        {
          "locale": "sl-SI",
          "name": "GAMMALN"
        },
        {
          "locale": "sr-Latn-RS",
          "name": "GAMMALN"
        },
        {
          "locale": "sv-SE",
          "name": "GAMMALN"
        },
        {
          "locale": "th-TH",
          "name": "GAMMALN"
        },
        {
          "locale": "tr-TR",
          "name": "GAMALN işlevi"
        },
        {
          "locale": "uk-UA",
          "name": "GAMMALN"
        },
        {
          "locale": "vi-VN",
          "name": "GAMMALN"
        },
        {
          "locale": "zh-CN",
          "name": "GAMMALN"
        },
        {
          "locale": "zh-HK",
          "name": "GAMMALN"
        },
        {
          "locale": "zh-TW",
          "name": "GAMMALN"
        }
      ],
      "signature": {
        "display": "GAMMALN(x)",
        "parameters": [
          {
            "description": null,
            "name": "x",
            "optional": false,
            "repeats": false
          }
        ],
        "trailing_repeats": false
      },
      "surface_name": "GAMMALN",
      "version_marker": null,
      "xlcall": {
        "code": "271",
        "symbol": "xlfGammaln"
      }
    },
    "microsoft": "https://support.microsoft.com/en-us/office/gammaln-function-b838c48b-c65f-484f-9e1d-141c55470eb9"
  },
  "try_it": {
    "formula": "=GAMMALN(1)"
  },
  "url": "https://handbook.dnacalc.com/functions/GAMMALN.html",
  "variants": [],
  "versions": [
    {
      "behaviour": "GAMMALN(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(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": "GAMMALN(2.020222407046596) returned 0.008681034861562235 (0x3f81c75cc69b54fc). GAMMALN(6.020222407046596) returned 4.8220305792560145 (0x401349c26258ddb7). 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": "GAMMALN(2.020222407046596)",
          "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"
        },
        {
          "call": "GAMMALN(6.020222407046596)",
          "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"
        }
      ],
      "platform": "Windows; bitness and CPU not recorded in this reading",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/3345a87/content/notes/FN-GAMMALN-001.json"
      ]
    },
    {
      "behaviour": "43 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.json"
      ]
    },
    {
      "behaviour": "4,450 captured inputs are indexed for this environment. Capture dates: 2026-07-11 to 2026-07-18. 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.json"
      ]
    },
    {
      "behaviour": "88 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.json"
      ]
    }
  ]
}