以前使用していたC言語のシンプルな拡張数学ライブラリ

以前使用していたC/C++用の拡張数学ライブラリ(といってもかなりシンプルですが)を公開します。
コードはANSI-Cで書いています。幾何学系が多めですが、行列演算等は(他のライブラリを使用していたため)サポートしていません。
ベクトルは配列で表現しています。

ソース
https://github.com/kojo-sugita/mathex.h

サポートしている機能

関数概要
Summation総和を計算する
SumOfSquares平方和を計算する
SumOfProduct積和を計算する
Average平均値を計算する
Variance分散を計算する
UnbiasedVariance不偏分散を計算する
Covariance共分散を計算する
StdDev標準偏差を計算する
Max最大値を求める
MaxInt最大値を求める(int型配列)
Min最小値を求める
MinInt最小値を求める(int型配列)
MaxMin最大値と最小値を求める
Factorial階乗を計算する
Permutation順列組み合わせの総数を計算する
Combination組み合わせの総数を計算する
Distance2点間の距離を求める
DivideInternally2D2点p1,p2からなる線分をm:nに内分する点を求める (2次元)
DivideExternally2D2点p1,p2からなる線分をm:nに外分する点を求める (2次元)
Triangle_CenterOfGravity3点p1,p2,p3からなる三角形の重心を求める (2次元)
ToVecto2点を結ぶベクトルを求める
VectorSumベクトルの和を求める
VectorDifferenceベクトルの差を求める
Normベクトルの長さ(ノルム)を計算する
InnerProductベクトルの内積を計算する
IncludedAngle2つのベクトルのなす角を計算する
UnitVector単位ベクトルを求める
NormalVector3D3次元の法線ベクトルを求める
CrossProduct3D3次元ベクトルの外積を計算する
VectorSimilarity2つのベクトルの類似度を計算する
NormalizedVectorDistance正規化距離を計算する
IsDepthOnLine3D3次元空間上の点p1と点p2を結ぶ直線上に点pが存在するかを判定する
CalculatePlane3D3次元平面を作成する
CalculatePlane3D_Using3Depths3点から3次元平面を作成する
ToLineCanonicalForm直線の方程式を標準形から一般形に変形する
ToPlaneCanonicalForm平面の方程式を標準形から一般形に変形する
ToPlaneGenericForm平面の方程式を一般形から標準形に変形する
DistanceLineToDepth点と直線との距離を返す
DistancePlaneToDepth点と平面との距離を返す
IsCorrectPlane2つのベクトルからなる平面がよい平面かを判定する
Arg第1象限から第4象限までの偏角を求める
ZenithAngle天頂角を求める
Sigmoidシグモイド関数を計算する
pi円周率を求める
to_deg弧度法表記を度数法表記に変換する
to_rad度数法表記を弧度法表記に変換する
logn任意の整数を底とする対数を計算する
cbrt_newtonニュートン法で立方根を近似する
frac除算を計算する


バグがあったらごめんなさい。使用する際は自己責任でお願いします。
もっと複雑なことをしたい場合はGSLがおすすめ。