-
C++
C++ | vector を乱数で初期化する
C++ にて vector を乱数で初期化するためのサンプルコードです。 一様乱数で初期化 長さ10の vector を、メルセンヌツイスターの一様乱数で初期化する例です。ここでは、0.0 以上 1.0 未満の乱数を生成しています。 #include <algorithm> #include... -
C++
C++ | ガウス・ジョルダン消去法で逆行列を求める
前回の記事ではガウス消去法のアルゴリズムを紹介しました。当アルゴリズムの派生で、ガウス・ジョルダン消去法というのがあります。 ガウス消去法では、前進消去と後退代入と2つの処理ステップで構成されます。ガウス・ジョルダン消去法では、前進消去と... -
C++
C++ | ガウス消去法で逆行列や連立一次方程式の解を求める
ガウスの消去法とは、行列を対角行列に変換することで、逆行列や連立一次方程式の解を求めるアルゴリズムです。別名掃き出し法とも言います。 この記事では C++ での実装例を掲載します。 ガウス消去法の実装サンプル ガウス消去法の実装サンプルを紹介し... -
CUDA
CUDA – cuBLAS でベクトル演算 SAXPY
CUDA には、線形代数演算を行うための cuBLAS ライブラリが付属しています。これを利用してベルトル演算を行う例を掲載します。 cuBLAS で saxpy 演算 saxpy とは "Single precision A X Plus Y" の略です。単精度における、ax + y の演算のことを表します... -
Python
Python – numpy.ndarray ベクトルや行列の基本操作
numpy の ndarray はベクトルや行列の各種演算機能を備えており、機械学習など多様な分野でよく利用されます。 この記事では、ndarray の基本的な操作を紹介します。 ゼロ値のベクトル・行列を生成 zeros メソッドを呼び出すことで、要素ゼロのベクトルや... -
Rust
Rust – MNIST データベースをダウンロードして解凍する
MNIST データベースとは、0~9の手書き数字を画像としたサンプルファイル群です。機械学習のための学習データ、テストデータとしてよく用いられます。 Rust にて、これらのファイルをダウンロードして解凍するためのサンプルプログラムを掲載します。 Ca... -
Python
Python – 3次の自然スプライン補間をスクラッチ実装
3次の自然スプライン補間を Python でスクラッチ実装したサンプルを掲載します。通常は scipy あたりの CubicSpline を利用することで事足りるかと思います。 やむなき事情で、スプライン補間のプリミティブな実装例がほしいときのための参考です。 アルゴ... -
Rust
Rust – フィボナッチ数列をメモ化する
フィボナッチ数列は、fib(n) = fib(n-1) + fib(n-2) の漸化式で表現される数列です。プログラミングにおいて再帰の例でよく参照されます。 Rust で記述すると次のようになります。 // fib.rs fn fib(n: u64) -> u64 { match n { 0 => 0, 1 => 1, ... -
CUDA
Rust – Cargo で CUDA ソースコードをまとめてビルドする
Rust 公式の cc-rs クレートを利用することで、CUDA のソースコードもひっくるめて cargo ビルドすることができます。 簡単なサンプルで利用方法を紹介します。 事前準備 Cargo で CUDA をビルドするためには、Cuda Toolkit が別途インストールされている... -
C++
Rust – Cargo で C++ ソースコードをまとめてビルドする
Rust 公式の cc-rs クレートを利用することで、C++ のソースコードもひっくるめて cargo ビルドすることができます。 簡単なサンプルで利用方法を紹介します。 C++ を含めた Cargo ビルド方法 プロジェクトの作成 まず、cargo new で新規プロジェクトを作...



