ソースコード一覧
calx ソースコードのファイル構成と各ファイルの概要。
凡例:
ディレクトリ /
ファイル
— 概要
calx/ ├── CMakeLists.txt— トップレベル CMake 設定 ├── LICENSE— LGPL-3.0 ライセンス ├── README.md— プロジェクト概要 │ ├── examples/— サンプルプログラム │ ├── CMakeLists.txt— サンプル用ビルド設定 │ ├── example_int.cpp— Int API サンプル │ ├── example_int_demo.cpp— Int デモ (Fibonacci, RSA, メルセンヌ素数, 階乗, GCD) │ ├── example_float.cpp— Float API サンプル │ ├── example_float_demo.cpp— Float デモ (定数100桁, π100万桁, Ramanujan, Machin公式) │ ├── example_rational.cpp— Rational API サンプル │ ├── example_rational_demo.cpp— Rational デモ (浮動小数点の罠, 連分数, Bernoulli数, Stern-Brocot) │ ├── example_vector.cpp— Vector API サンプル │ ├── example_vector_demo.cpp— Vector デモ (PageRank, 3D反射, コサイン類似度) │ ├── example_matrix.cpp— Matrix API サンプル │ ├── example_linalg.cpp— LinAlg API サンプル (分解, 固有値, 反復法) │ ├── example_precision_showdown.cpp— 多倍長精度デモ (double vs Float 精度比較) │ └── example_mp.cpp— 多倍長演算 総合サンプル (Int + Float + Rational) │ ├── include/— 公開ヘッダー │ └── math/ │ ├── concepts/ │ │ └── algebraic_concepts.hpp— 50+ 代数的 concepts (Ring, Field, VectorSpace 等) │ │ │ ├── fft/— FFT (NTT 乗算が依存) │ │ ├── fft.hpp— FFT インターフェース (Complex FFT) │ │ ├── fft2d.hpp— 2D FFT │ │ ├── fft3d.hpp— 3D FFT │ │ ├── fft_batch.hpp— バッチ FFT │ │ ├── fft_simd.hpp— SIMD 高速化 FFT │ │ └── fft_utils.hpp— FFT ユーティリティ │ │ │ ├── linalg/— 線形代数 (分解, ソルバー, 固有値) │ │ ├── decomposition.hpp— 行列分解 (LU, QR, Cholesky, SVD) │ │ ├── solvers.hpp— 連立方程式ソルバー (直接法) │ │ ├── iterative_solvers.hpp— 反復法ソルバー (CG, GMRES, BiCGSTAB) │ │ ├── eigenvalues.hpp— 固有値・固有ベクトル (QR 法, べき乗法) │ │ ├── matrix_functions.hpp— 行列関数 (exp, log, sqrt, norm) │ │ ├── blas.hpp— BLAS レベル 1/2/3 操作 │ │ ├── sparse_lu.hpp— 疎行列 LU 分解 │ │ ├── sparse_qr.hpp— 疎行列 QR 分解 │ │ ├── simplicial_cholesky.hpp— 疎行列 Cholesky 分解 (simplicial) │ │ ├── RandomizedSVD.hpp— ランダム化 SVD (大規模低ランク近似) │ │ ├── BoolMatrix.hpp— ブール行列 (GF(2) 演算) │ │ ├── PolyMatrix.hpp— 多項式行列 │ │ ├── HNF.hpp— Hermite 標準形 (整数行列) │ │ ├── LLL.hpp— LLL 格子基底簡約 │ │ └── vector_space_utilities.hpp— ベクトル空間ユーティリティ (基底, 直交化) │ │ │ └── core/ │ ├── basic_types.hpp— 基本型定義 (word_t, dword_t 等) │ ├── common.hpp— 共通ユーティリティ │ ├── endian_utils.hpp— エンディアン変換 │ ├── numeric_state.hpp— NaN/Infinity 状態管理 │ ├── traits.hpp— 型特性 (統合ヘッダー) │ ├── traits_part1.hpp— 型特性 Part 1 (numeric_traits) │ ├── traits_part2.hpp— 型特性 Part 2 (PacketTraits 等) │ ├── power.hpp— 汎用べき乗 (pow テンプレート) │ ├── expr_templates.hpp— 式テンプレート基盤 (VecExpr, 演算子) │ ├── simd_traits.hpp— SIMD パケット型特性 (AVX2/SSE) │ ├── vector.hpp— Vector, StaticVector, VectorMap クラス │ │ │ ├── vector/— Vector 実装詳細 │ │ ├── vector_base.hpp— Vector 基底クラス │ │ ├── vector_operations.hpp— Vector 演算 (dot, cross, norm 等) │ │ ├── vector_storage.hpp— Vector ストレージ │ │ └── vector_view.hpp— VectorView / ConstVectorView ビュークラス │ │ │ ├── matrix.hpp— Matrix クラス (密行列, 演算子, 転置, ブロック操作) │ ├── Complex.hpp— Complex<T> クラス (多倍長対応複素数) │ ├── sparse_matrix.hpp— SparseMatrix クラス (CSR/CSC 疎行列) │ ├── sparse_matrix_algorithms.hpp— 疎行列アルゴリズム (SpMV, 変換) │ ├── convergence_criteria.hpp— 収束判定基準 (反復法用) │ ├── computation_policy.hpp— 計算ポリシー (精度・並列制御) │ │ │ ├── computation/— 計算バックエンド │ │ └── simd_backend.hpp— SIMD バックエンド (AVX2/SSE ディスパッチ) │ │ │ ├── modular/— 剰余演算 (NTT が依存) │ │ ├── ModularInt.hpp— 剰余整数型 ModularInt<P> │ │ ├── ModularIntTraits.hpp— ModularInt 型特性 │ │ └── CRT.hpp— 中国剰余定理 (CRT) │ │ │ └── mp/— 多倍長演算 │ ├── error.hpp— エラー型 (NumericError 列挙) │ ├── FFT.hpp— FFT インターフェース │ ├── ThreadPool.hpp— NTT 並列化用スレッドプール │ │ │ ├── Int.hpp— Int クラス (統合ヘッダー) │ ├── Int/— Int 実装詳細 │ │ ├── IntBase.hpp— Int コア: コンストラクタ, 比較, ビット操作 │ │ ├── IntTraits.hpp— Int 型特性・定数 │ │ ├── IntSpecialStates.hpp— NaN/Infinity ファクトリ・判定 │ │ ├── IntOps.hpp— 算術演算 (add, sub, abs, negate) │ │ ├── IntMultiplication.hpp— 乗算 (Basecase, Karatsuba, Toom-3/4, NTT) │ │ ├── IntDivision.hpp— 除算 (Schoolbook, Burnikel-Ziegler) │ │ ├── IntGCD.hpp— GCD/LCM (Binary GCD), 拡張ユークリッド │ │ ├── IntModular.hpp— 冪剰余 (Montgomery), モジュラ逆元 │ │ ├── IntPrime.hpp— 素数判定 (Miller-Rabin), nextPrime, Pollard rho │ │ ├── IntSqrt.hpp— 整数平方根, n乗根, isSquare, isPerfectPower │ │ ├── IntCombinatorics.hpp— 階乗, 二重階乗, 二項係数, Fibonacci, Lucas │ │ ├── IntIO.hpp— 入出力 (toString, fromString, std::format) │ │ ├── IntFactorTable.hpp— 小さい素数テーブル (篩法用) │ │ ├── IntRandom.hpp— 乱数生成 (一様分布, 範囲指定) │ │ ├── IntNumberTheory.hpp— 数論関数 (Euler φ, Möbius μ, Jacobi, Legendre 等) │ │ ├── IntFactorization.hpp— 素因数分解 (MPQS, GNFS) │ │ ├── IntSequence.hpp— 数論的数列 (Bernoulli, Stirling 等) │ │ ├── BlockLanczos.hpp— Block Lanczos 線形代数 (因数分解用) │ │ ├── MpnOps.hpp— mpn レベル演算 (リム配列の加減乗除) │ │ ├── PrimeNtt.hpp— 素数 NTT (AVX2 バタフライ, Montgomery) │ │ ├── SmallPrimeNtt.hpp— 小素数 NTT │ │ ├── DoubleFft.hpp— double 精度 FFT 乗算 │ │ ├── GoldilocksNtt.hpp— Goldilocks 素数 NTT │ │ ├── SboWords.hpp— Small Buffer Optimization (SBO) ワード配列 │ │ ├── ScratchArena.hpp— スクラッチメモリアリーナ │ │ └── UInt128.hpp— 128-bit 符号なし整数 (MSVC/GCC 対応) │ │ │ ├── Float.hpp— Float クラス (多倍長浮動小数点) │ ├── Float/ │ │ └── FloatMath.hpp— Float 数学関数宣言 (exp, log, sin, cos 等) │ ├── FloatOps.hpp— Float 3引数演算 (バッファ再利用) │ │ │ ├── Rational.hpp— Rational クラス (統合ヘッダー) │ └── Rational/— 有理数 │ ├── RationalBase.hpp— Rational 本体: 四則演算, 比較, 変換 │ ├── RationalConstants.hpp— Bernoulli 数, Stirling 係数 │ └── RationalTraits.hpp— Rational 型特性 │ ├── lib/ │ └── CMakeLists.txt— ライブラリビルド設定 (calx_int, calx_float, calx_rational) │ └── src/— 実装ファイル └── math/core/mp/ ├── Int/ │ ├── IntBase.cpp— Int コア実装 (コンストラクタ, ビット操作) │ ├── IntOperators.cpp— 演算子オーバーロード (+, -, *, /, %, <<, >>) │ ├── IntOps.cpp— 算術演算の実装 │ ├── IntGCD.cpp— GCD/LCM/拡張ユークリッド実装 │ ├── IntModular.cpp— Montgomery 冪剰余・逆元実装 │ ├── IntPrime.cpp— Miller-Rabin, nextPrime, Pollard rho 実装 │ ├── IntSqrt.cpp— 平方根 (Newton法), n乗根, isPerfectPower │ ├── IntCombinatorics.cpp— 階乗 (篩法), Fibonacci (高速倍加), Lucas │ ├── IntIO.cpp— 文字列変換・入出力実装 │ ├── IntFactorTable.cpp— 素数テーブル生成 │ ├── IntSpecialStates.cpp— NaN/Infinity 特殊状態実装 │ ├── IntFactorization.cpp— 素因数分解 (試し割り, ECM ディスパッチ) │ ├── IntPrimeGNFS.cpp— 一般数体篩 (GNFS) 実装 │ ├── IntPrimeMPQS.cpp— 多重多項式二次篩 (MPQS) 実装 │ ├── IntAPRCL.cpp— APR-CL 素数証明 │ ├── mpn_x64.asm— x64 アセンブリ (MULX/ADCX/ADOX mpn プリミティブ) │ ├── mpn_x64_add.asm— x64 加減算 (addmul_1, submul_1) │ ├── mpn_x64_div.asm— x64 除算 (divmod_1) │ ├── mpn_x64_mont.asm— x64 Montgomery 乗算 (512-bit 特化カーネル) │ └── mpn_x64_mul.asm— x64 乗算 (mul_basecase) │ ├── Float/ │ ├── Float.cpp— Float 実装 (演算子, toDecimalString, 丸め) │ └── FloatMath.cpp— 数学関数実装 (exp, log, sin, cos, π, e 等) │ └── Rational/ ├── Rational.cpp— Rational 実装 (I/O, 変換) └── RationalConstants.cpp— Bernoulli 数・Stirling 係数の実装
ファイル数: ヘッダー 213 + ソース 19 + アセンブリ 5 + サンプル 12 + CMake 3 + その他 2 = 計 254 ファイル