以前使用していた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 | 組み合わせの総数を計算する |
Distance | 2点間の距離を求める |
DivideInternally2D | 2点p1,p2からなる線分をm:nに内分する点を求める (2次元) |
DivideExternally2D | 2点p1,p2からなる線分をm:nに外分する点を求める (2次元) |
Triangle_CenterOfGravity | 3点p1,p2,p3からなる三角形の重心を求める (2次元) |
ToVecto | 2点を結ぶベクトルを求める |
VectorSum | ベクトルの和を求める |
VectorDifference | ベクトルの差を求める |
Norm | ベクトルの長さ(ノルム)を計算する |
InnerProduct | ベクトルの内積を計算する |
IncludedAngle | 2つのベクトルのなす角を計算する |
UnitVector | 単位ベクトルを求める |
NormalVector3D | 3次元の法線ベクトルを求める |
CrossProduct3D | 3次元ベクトルの外積を計算する |
VectorSimilarity | 2つのベクトルの類似度を計算する |
NormalizedVectorDistance | 正規化距離を計算する |
IsDepthOnLine3D | 3次元空間上の点p1と点p2を結ぶ直線上に点pが存在するかを判定する |
CalculatePlane3D | 3次元平面を作成する |
CalculatePlane3D_Using3Depths | 3点から3次元平面を作成する |
ToLineCanonicalForm | 直線の方程式を標準形から一般形に変形する |
ToPlaneCanonicalForm | 平面の方程式を標準形から一般形に変形する |
ToPlaneGenericForm | 平面の方程式を一般形から標準形に変形する |
DistanceLineToDepth | 点と直線との距離を返す |
DistancePlaneToDepth | 点と平面との距離を返す |
IsCorrectPlane | 2つのベクトルからなる平面がよい平面かを判定する |
Arg | 第1象限から第4象限までの偏角を求める |
ZenithAngle | 天頂角を求める |
Sigmoid | シグモイド関数を計算する |
pi | 円周率を求める |
to_deg | 弧度法表記を度数法表記に変換する |
to_rad | 度数法表記を弧度法表記に変換する |
logn | 任意の整数を底とする対数を計算する |
cbrt_newton | ニュートン法で立方根を近似する |
frac | 除算を計算する |
バグがあったらごめんなさい。使用する際は自己責任でお願いします。
もっと複雑なことをしたい場合はGSLがおすすめ。