ソースコード一覧

calx ソースコードのファイル構成と各ファイルの概要。

ZIP でまとめてダウンロード

凡例: ディレクトリ / ファイル — 概要
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 ファイル