-
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 で新規プロジェクトを作... -
Rust
Rust – バブルソート
Rust でのバブルソート実装例です。実用性ゼロです。 バブルソート 実行結果の出力からもわかるように、とても非効率なソート方法です。 fn bubble_sort<T>(xs: &mut [T]) where T: PartialOrd + std::fmt::Debug, { println!("starting bu... -
Rust
Rust – マージソート
Rust でのマージソートの実装例です。 マージソートとは、分割統治法と呼ばれるアルゴリズムの一種です。対象のリストを細分化していき、ソート済みリストを順にマージしていくようなソート方法です。 ソートについては既に標準ライブラリに優秀なものがあ... -
Rust
Rust – 挿入ソート
Rust での挿入ソートの実装例です。 挿入ソートとは、ソート済みの配列に対して、残りの要素を挿入していくようなソート方法です。 ソートについては既に標準ライブラリに優秀なものがあるので実用性はありません。アルゴリズムや Rust の学習用のサンプル...