statcpp はヘッダーオンリーライブラリのため、ライブラリ自体のビルドは不要です。 このドキュメントでは、テストのビルドと実行、サンプルプログラムのビルド、ドキュメント生成について説明します。
- C++17 対応コンパイラ
- GCC 7.0 以上
- Clang 5.0 以上
- Apple Clang 9.0 以上
- CMake 3.14 以上
- Google Test(事前にシステムへのインストールが必要)
# プロジェクトルートディレクトリで実行
mkdir build
cd build
# CMake 設定(テストを有効化)
cmake -DSTATCPP_BUILD_TESTS=ON ..
# ビルド
cmake --build .
# テスト実行
ctest --output-on-failureまたは:
# テストディレクトリから直接実行
cd test
mkdir build
cd build
cmake ..
cmake --build .
ctest --output-on-failurecd build
# 特定のテストファイルを実行
./test/test_basic_statistics
./test/test_dispersion_spread
./test/test_order_statistics
# ...プロジェクトには以下のテストスイートが含まれています:
test_basic_statistics- 基本統計量test_dispersion_spread- 散布度test_order_statistics- 順序統計量test_shape_of_distribution- 分布の形状test_correlation_covariance- 相関・共分散test_frequency_distribution- 度数分布test_special_functions- 特殊関数test_random_engine- 乱数生成test_continuous_distributions- 連続分布test_discrete_distributions- 離散分布test_estimation- 推定test_parametric_tests- パラメトリック検定test_nonparametric_tests- ノンパラメトリック検定test_effect_size- 効果量test_resampling- リサンプリングtest_power_analysis- 検出力分析test_linear_regression- 線形回帰test_anova- 分散分析test_glm- 一般化線形モデルtest_model_selection- モデル選択test_multivariate- 多変量解析test_time_series- 時系列分析test_categorical- カテゴリカルデータ分析test_survival- 生存時間解析test_robust- ロバスト統計test_clustering- クラスタリングtest_data_wrangling- データ変換test_missing_data- 欠損データ
最も簡単な方法です:
cd examples-ja
./build.shこのスクリプトは:
- すべての
.cppファイルをコンパイル - 実行ファイルを生成
- 各プログラムを実行して出力を表示
cd examples-ja
mkdir build
cd build
cmake ..
cmake --build .
# 実行
./example_basic_statistics
./example_dispersion_spread
# ...cd examples-ja
# GCC
g++ -std=c++17 -I../include-ja example_basic_statistics.cpp -o example_basic_statistics
# Clang
clang++ -std=c++17 -I../include-ja example_basic_statistics.cpp -o example_basic_statistics
# Apple Clang (macOS)
clang++ -std=c++17 -I../include-ja example_basic_statistics.cpp -o example_basic_statistics
# 実行
./example_basic_statistics# macOS (Homebrew)
brew install doxygen
# Ubuntu/Debian
sudo apt-get install doxygen
# Windows
# https://www.doxygen.nl/download.html からダウンロード# プロジェクトルートディレクトリで実行
# シェルスクリプトを使用(推奨)
./generate_docs.sh
# または直接 Doxygen を実行
doxygen Doxyfile生成されたドキュメントは doc/html/index.html に出力されます。
# macOS
open doc/html/index.html
# Linux
xdg-open doc/html/index.html
# Windows
start doc/html/index.htmlcmake -DSTATCPP_BUILD_TESTS=OFF ..メモリエラーや未定義動作を検出するためのサニタイザを有効にできます:
cmake -DSTATCPP_ENABLE_SANITIZERS=ON ..
cmake --build .
ctest --output-on-failure注意: サニタイザは開発・デバッグ時のみ使用し、本番環境では無効にしてください。
# GCC を指定
cmake -DCMAKE_CXX_COMPILER=g++-11 ..
# Clang を指定
cmake -DCMAKE_CXX_COMPILER=clang++-14 ..# Debug ビルド(デバッグシンボル付き)
cmake -DCMAKE_BUILD_TYPE=Debug ..
# Release ビルド(最適化有効)
cmake -DCMAKE_BUILD_TYPE=Release ..
# RelWithDebInfo(最適化 + デバッグシンボル)
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..# macOS
brew install cmake
# Ubuntu/Debian
sudo apt-get install cmake
# または公式サイトからダウンロード
# https://cmake.org/download/Google Test はシステムに事前にインストールされている必要があります。
# Ubuntu/Debian
sudo apt-get install libgtest-dev
# macOS
brew install googletest
# Windows (vcpkg)
vcpkg install gtest古いコンパイラを使用している可能性があります。最新版にアップグレードしてください:
# Ubuntu/Debian
sudo apt-get install g++-9
# macOS
brew install gcc- 数値精度の問題: 浮動小数点演算の丸め誤差により、環境によってテストが失敗することがあります。
- 乱数のシード: 乱数を使用するテストは、シードが異なると結果が変わる可能性があります。
詳細なエラー出力を確認:
ctest --output-on-failure --verbose特定のテストを直接実行:
./test/test_basic_statistics --gtest_filter=MeanTest.*Doxygen のワーニングは通常無視できます。エラーが発生した場合は:
- Doxygen のバージョンを確認(1.9.0 以上推奨)
Doxyfileの設定を確認
プロジェクトに CI を設定する場合の参考:
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: sudo apt-get install -y cmake g++
- name: Build and test
run: |
mkdir build
cd build
cmake -DSTATCPP_BUILD_TESTS=ON ..
cmake --build .
ctest --output-on-failure本ライブラリの動作確認環境:
- macOS + Apple Clang 17.0.0
- macOS + GCC 15 (Homebrew)
- Ubuntu 24.04 ARM64 + GCC
- サンプルコードの詳細は サンプルコード を参照してください
- コントリビューションガイドラインは 貢献ガイド を参照してください
- API の詳細は API リファレンス を参照してください