一、项目背景
在高等数学、概率统计、数值分析以及现代统计推断中,伽马函数(Gamma Function) 及其导数家族占据着极其核心的位置。

1.1 什么是三伽马函数?

它是 二伽马函数的一阶导数,也可以视为 对数 Gamma 函数的二阶导数。
1.2 为什么三伽马函数在工程中很重要?
三伽马函数在以下场景中不可或缺:
- 最大似然估计(MLE)
- Gamma 分布参数估计
- Dirichlet 分布参数估计
- 贝叶斯统计
- 共轭先验分析
- 变分推断(Variational Inference)
- Fisher 信息矩阵计算
- Newton / 拟 Newton 优化算法
- 统计分布的 Hessian 矩阵计算
只要你在统计模型中用到 Gamma 函数的'二阶信息',就一定会遇到三伽马函数。
1.3 为什么要自己实现?
虽然 Boost、GSL 等库已经提供三伽马函数,但在以下情况下,自实现非常有价值:
- 教学:理解特殊函数的数值结构
- 轻量级统计库:避免大型依赖
- 数值稳定性可控
- 与自定义 Gamma / Digamma 实现保持一致
- 作为高阶统计推断的基础模块
二、项目需求
2.1 功能性需求
本项目目标是:
👉 在 C++ 中实现一个稳定、通用的三伽马函数计算模块
需要支持:
- 输入:
x > 0
- 输出:
ψ₁(x)的数值近似
- 提供统一接口:
double trigamma(double x);
2.2 非功能性需求
- 数值稳定
- 精度可控(双精度)
- 不依赖第三方数学库
- 工程可复用
- 教学友好、注释清晰
2.3 使用范围
- 中小参数范围(如
x ∈ (0, 1000]) - 统计建模
- 优化算法


