Rust– category –
-
Rust – MNIST データベースをダウンロードして解凍する
MNIST データベースとは、0~9の手書き数字を画像としたサンプルファイル群です。機械学習のための学習データ、テストデータとしてよく用いられます。 Rust にて、これらのファイルをダウンロードして解凍するためのサンプルプログラムを掲載します。 Ca... -
Rust – フィボナッチ数列をメモ化する
フィボナッチ数列は、fib(n) = fib(n-1) + fib(n-2) の漸化式で表現される数列です。プログラミングにおいて再帰の例でよく参照されます。 Rust で記述すると次のようになります。 // fib.rs fn fib(n: u64) -> u64 { match n { 0 => 0, 1 => 1, ... -
Rust – Cargo で CUDA ソースコードをまとめてビルドする
Rust 公式の cc-rs クレートを利用することで、CUDA のソースコードもひっくるめて cargo ビルドすることができます。 簡単なサンプルで利用方法を紹介します。 【事前準備】 Cargo で CUDA をビルドするためには、Cuda Toolkit が別途インストールされて... -
Rust – Cargo で C++ ソースコードをまとめてビルドする
Rust 公式の cc-rs クレートを利用することで、C++ のソースコードもひっくるめて cargo ビルドすることができます。 簡単なサンプルで利用方法を紹介します。 【C++ を含めた Cargo ビルド方法】 プロジェクトの作成 まず、cargo new で新規プロジェクト... -
Rust – バブルソート
Rust でのバブルソート実装例です。実用性ゼロです。 バブルソート 実行結果の出力からもわかるように、とても非効率なソート方法です。 fn bubble_sort<T>(xs: &mut [T]) where T: PartialOrd + std::fmt::Debug, { println!("starting bu... -
Rust – マージソート
Rust でのマージソートの実装例です。 マージソートとは、分割統治法と呼ばれるアルゴリズムの一種です。対象のリストを細分化していき、ソート済みリストを順にマージしていくようなソート方法です。 ソートについては既に標準ライブラリに優秀なものがあ... -
Rust – 挿入ソート
Rust での挿入ソートの実装例です。 挿入ソートとは、ソート済みの配列に対して、残りの要素を挿入していくようなソート方法です。 ソートについては既に標準ライブラリに優秀なものがあるので実用性はありません。アルゴリズムや Rust の学習用のサンプル... -
C++ – Rust の関数を静的リンクで呼び出す
C++ から Rust の関数を呼び出す方法のメモです。gcc を利用して、静的リンクで呼び出すケースについてまとめます。 【rustc でライブラリを生成する】 cargo ではなく rustc でライブラリを生成する方法です。 Rust - 静的リンクライブラリの生成 Rust に... -
Python – ctypes で Rust の関数を呼び出す
Python から Rust の関数を呼び出すための手順メモです。このように別言語のインタフェースを呼び出すことを FFI (Foreign Function Interface) といいます。 【Rust の関数を Python から呼び出す手順】 Rust コードから動的リンクライブラリを生成する 2... -
WSL – Rust 開発環境をインストールする
WSL の Ubuntu で Rust の開発をするためのインストール手順メモです。 【動作環境】 Windows 11 WSL Ubuntu-22.04 【事前準備】 Ubuntu パッケージのアップデート $ sudo apt update $ sudo apt upgrade 【Rust コンパイラインストール】 2通りのインス...
1