ベクトル/行列演算の定番ライブラリEigen (日本語解説のサイトまとめと便利な機能紹介) Eigenとは C++の行列/ベクトルを扱うライブラリ(公式). Eigenの主な特長 行列演算を直感的に書くことが出来る. ヘッダーファイルのみのライブラリのため,ライブラリのビルドやリンクが必要なく組み込やすい. 高速.他のライブラリとの比較ベンチマークはこちら(公式) 解説サイト(すべて日本語) Eigen - C++で使える線形代数ライブラリ(でらうま倶楽部)- 基本的な使い方とも幾何変換,クォータニオンなどの解説もあり. Eigen ー C++で線形代数を!(singular point)- 3回のポストで,幅広い機能について解説している. Robotics/Eigen(NAIST::OnlineText)- 基本的な機能の他に行列分解についても解説あり. Eigenの使い方 Eigenは
2014年12月03日12:00 カテゴリプログラム Eigen - C++で使える線形代数ライブラリ C++ Advent Calender 2014 絶賛協賛中!! みなさん、Eigenをご存知ですか?? EigenはC++のテンプレートで実装された線形代数ライブラリです。 私自身、配信中の2本のiPhoneアプリで使っており、「これはとても使いやすい!!」と感じています。 その経験から、「C++でベクトル・行列を扱うなら、Eigenオススメ!!」と推しまくってます!!!! 使うメリットライブラリのビルドが不要(使いたいソースでインクルードするだけ)高速(テンプレートが展開され、余計な変数が生成されない)直感的でシンプルなAPI(数式に近いコードが書ける)MPL2なライセンス(closed-source なソフトでも使える)そこで今回は、簡単ながら、ゲームアプリでよく使うであろうベクト
イテレータ(iterator)は C++ STL(Standard Template Library)の中核を成す概念のひとつで、ポインタの機能を抽象化したものである。 参照外し(dereference)、インクリメント・デクリメント、比較などのポインタ同等の機能を持つ。 STLの各コンテナには、それ専用のイテレータクラスが定義されており、 イテレータオブジェクトの生成はコンテナの begin(), end() メソッドなどで行う。 コンテナの最大要素を取得する例: vector<int> cntn; ..... // cntn にデータを格納する処理 int val = MIN_INT; for(vector<int>::iterator itr = cntn.begin(); itr != cntn.end(); ++itr) val = max(val, *itr); イテレータは、
C++ の STL (Standard Template Library) では、std::for_each 関数 や std::fill 関数、std::vecotor<> クラス や、std::unordered_map クラス など、さまざまな場面で "イテレータ" という考え方が登場します。 イテレータというのは、ある値の保存場所を示すもので、通常の C 配列操作と互換性のあるクラスです。 std::vector<> や std::unordered_map<> では、それらが保持する値を順次取得するためのイテレータがあらかじめ用意されていますが、そのようなイテレータを自分で作って、独自のクラスで使用することもできるようになっています。 そこで今回は、イテレータを自分のクラスに実装する方法について見て行きます。 イテレータの種類と実装内容 イテレータの種類 自作のクラスにイテレータ
Visual Studio 2015 Update 1 のリリースノート関連を見ていたら、 Coroutine が動くぜ!っていう記事があったので試してみました。 blogs.msdn.com コルーチンっていうのは、まぁ、C#でいう yield return で、C++でも yield っていうそのまんまの名前なんですが、rubyとかだとgeneratorって呼ばれている奴ですね。 乱数のジェネレーターを作ってみる とりあえず、コードを書いてみます。今回は、無限に乱数を発生し続けるというだけのジェネレータを作ってみました。 #include <cstdio> #include <random> #include <experimental/generator> auto random() { std::mt19937 r; for (;;) yield r(); } int main()
本サイトcpprefjpは、プログラミング言語C++のリファレンスを提供するWebサイトです。 最新C++バージョンのリファレンスを提供していきます。 運営方針 本リファレンスサイトは、C++言語の最新のリファレンスを常に提供し続けることを目標にしています。 各クラス、関数にはそれぞれ1つ以上のサンプルコードを付けていく方針です。 本サイトでは、他サイトおよび規格書の直接的な翻訳ではなく、編集者の調査と考えに基づいた解説を提供していきます。 スポンサーシップ cpprefjp - Open Collective このプロジェクトは、持続的な活動のため、ユーザーの方々からのご支援をお待ちしております。上記Open Collectiveのプロジェクトでスポンサーシップの募集をしております。 ご支援いただくユーザーの方々には、以下の特典があります。 本ページ (cpprefjpサイトのトップペー
コラムへ戻る 挨拶 必要なもの C++基礎(必須) C++AMP環境整備 C++AMP基礎事項 GPUを探してみよう!(acceleratorオブジェクト) GPUのメモリ(array) CPUからGPUのメモリへアクセス(array_view) 動的にメモリを確保(new array) array_viewのarrayの入れ替え GPUに計算させる(extent、ラムダ式) 2-3次元配列 GPUへの細かい値の転送(parallel_for_each()) arrayクラスの型を変更しよう(reinterpret_as(), view_as()) 特定の領域へアクセスできるarray_viewを作ろう(section()) 流行りのCPUメモリへのダイレクトアクセス(array) 共有メモリを使おう(tile_index) 自然対流への適応 どのくらい速くなるのか。 困ったときのQ&A
What is CppUTest. CppUTest is a C /C++ based unit xUnit test framework for unit testing and for test-driving your code. It is written in C++ but is used in C and C++ projects and frequently used in embedded systems but it works for any C/C++ project. CppUTest’s core design principles are: Simple in design and simple in use. Portable to old and new platforms. Build with Test-driven Development for
時代はテスト駆動開発(TDD)らしいので有名な単体テスト用フレームワークCppUnitを試してみた。 これまでテスト用コードは自前で書いていたのでフレームワークのありがたさを実感するなどした。ただCppUnitは「必ず書かないといけないコード」の量が何気に多くて初見でめげそうになる気もした。なので主に自分用にCppUnitコードのテンプレをメモしておく。 まずはCppUnitを入手する。例えば Download CppUnit - C++ port of JUnit from SourceForge.net から入手できる。入手したらインストする。 $$ tar xzfv cppunit-1.12.1.tar.gz $$ cd cppunit-1.12.1.tar.gz $$ ./configure $$ make $$ sudo make installでここから解説。CppUnitでテ
図 6 を見ると、ラムダ式で変数と値を取得する方法を、プログラマが完全に制御できることがわかります。しかし、これによって値を使用するという考え方は保持できますが、複雑なデータ構造を値として効率よく操作することには役に立ちません。 不変データ型 不足しているのは、一部の関数型プログラミング言語にあるような効率的な不変データ構造です。このような言語では、不変データ構造は共通データを共有するため、非常に大きくなった場合でも、効率性を高めることができます。データを共有するデータ構造を C++ で作成するのは簡単です。データを動的に割り当てるだけで、各データ構造がそのデータへのポインターを保持します。残念ながら、共有変数の有効期間を管理するのが難しくなります (ガベージ コレクターが普及したのはこのためです)。さいわい、C++ 11 には、std::shared_ptr テンプレート クラスで共有変
http://udrepper.livejournal.com/21541.html Ulrichがpthread_cancel()とC++は混ぜるなキケンになってるけど、オレは正しいんだ正しいんだ正しいんだ。 という趣旨のブログを書いております。 以下いつものように(主に笑いをとるための)超訳。正確な情報が欲しい人は元URLを読んでくださいませ。 #include <cstdlib> #include <iostream> #include <pthread.h> static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER; static pthread_cond_t c = PTHREAD_COND_INITIALIZER; static void *tf (void *) { try { ::pthread_mutex_lock(&m);
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く