タグ

C++に関するkhiroakiのブックマーク (62)

  • Boost で正規乱数の生成 - yanoの日記

    シミュレーション実験を行っていると正規乱数が必要になることがよくあります.正規乱数はかなり基的な乱数であるためさまざまなライブラリに実装されているのですが,私は Boost をよく使っているので,正規乱数でも Boost を使用して発生させています. しかし Boost の実装は柔軟性を求め過ぎるあまり使いやすさを失ってしまっているように感じます(単に正規乱数を発生させたい人にとっては).というのも,Boost で正規乱数を発生させるためにはまず一様分布を発生させるエンジンを選び,それを適切にコンストラクトする必要があります.エンジンによってはテンプレート化されたコンストラクタをもつため,エンジンを適切に初期化するためにはコンストラクタに渡す種(seed)の型を正確に一致させる必要があります(そうしなければテンプレート化されたコンストラクタが呼ばれてしまいます).その後 normal_d

    Boost で正規乱数の生成 - yanoの日記
  • uBLAS examples

    Example 2 - Solve a System of Linear Equations This example computes the solution x of the system Ax=b of linear equations using the iterative method of conjugate gradients. The influence of different preconditioners can be seen. The numer of iterations of the original CG, a diagonal preconditioner, a cholesky preconditioner and an incomplete cholesky preconditioner can be compared. Note:The struc

  • 部分行列とる方法募集 - 理系学生日記

    boostのublasで部分行列を作る方法ねーかなーと思って、 いろいろ聞いたりしてテストしてみた。 #include <iostream> #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/io.hpp> #include <boost/numeric/ublas/storage.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> int main() { typedef boost::numeric::ublas::matrix<double> dmatrix; dmatrix m(3, 3); m(0,0) = 1; m(0,1) = 2; m(0,2) = 3; m(1,0) = 4; m(1,1) = 5; m(1,2) = 6; m

    部分行列とる方法募集 - 理系学生日記
  • 統計のための線形代数 in C++ (Boost uBLASの参考サイトとtipsまとめ)

    最近の僕はより大規模な実験を行うべく、これまで作ってきたtoy programをC++に移植する毎日です。 その過程でどうしてもベクトル・行列演算が必要になったので、時期標準の呼び声高いBoost内のベクトル・行列ライブラリ、uBLASを用いてみました。 今回の記事は、特に僕が必要であった演算を実現すべく、参考にしたサイト及びそれらをまとめたテンプレート関数群をご紹介します。 参考にした主なサイトは以下のとおりです。 Boost Basic Linear Algebra(家) Boost 数学関連ライブラリの使い方 yanoの日記 2で概要を掴み、1で詳細を詰め、3で必要なものを実装... がオススメです。 特に3の矢野さんの日記には大変助けられました。ほとんど全ての実装がblogを元にしているといっても過言ではありません(この場を借りて御礼申し上げます)。 先人達の知恵を集結し、まとめ

  • Boost 数学関係ライブラリの使い方

    boost::numeric::ublas 線形代数ライブラリの使い方 連立方程式を解く・逆行列を求める DT Specials -> Boost -> boost::numeric::ublas 線形代数ライブラリの使い方 Last update : Jan. 13th, 2005 はじめに この文書は,線形演算ライブラリ boost::numeric::ublas の使い方の一部を簡単に説明したものです. どうも boost ― uBLAS については日語の説明書きがないようです.頼みの日語解説書[2]も uBLAS はたった 2 ページ.Web をあさっても私の希望にあう解説は見あたりません.仕方がないので英語のオリジナルドキュメントと格闘しました.その結果,なんとか連立1次方程式を解くことと,逆行列を求めることはできるようになったので,私と同じようなお悩みを抱えて Web を巡

  • Boost と Boost.Bindings と clapack のインストール - yanoの日記

    今回は lapack の機能を使えるようにするための準備(インストール)を行います. そのためには以下の三つのコンポーネントをインストールする必要があります. boost boost-sandbox clapack 一つずつ説明していきます. boost のインストールuBLAS はこの boost のコンポーネントの一つです.boost のインストールにはヘッダファイルを ダウンロードするだけでいいのですが,それには次の二つの方法があります. Boost Downloads の Download リンクからダウンロード Subversion によりダウンロード 後者の場合,boost の最新開発版をダウンロードすることになります. Subversion を用いる場合,以下のコマンドでダウンロードできます. svn co http://svn.boost.org/svn/boost/tru

    Boost と Boost.Bindings と clapack のインストール - yanoの日記
  • C++ lambda すーぱーぷろぐらみんてくにーーく!

    The Super Programming Technique §1.ラムダ式をC++で実現する【前編】 関数型言語の基的な概念であるラムダ式を、C++で実現する方法について紹介します。 ・高階関数(higher-order function) 他の関数を引数として扱う関数は、高階関数と呼ばれます。 「関数を引数にとる」のですが、関数を渡すためには、C++では、関数ポインタで渡すか、templateで渡すかです。(operator ( )をオーバーロードしたクラスをfunctorと呼び、これを引数templateを用いて渡すテクニックについては⇒集中講義4. 超高速描画の謎【後編】を参照のこと。) グラフィックの転送ルーチン等は、処理の99%が同じで、ピクセルをコピーする関数のみが違うという場合があります。このように、共通の処理がある場合、この高階関数にすると処理がすっきり書けます。

  • Boost --- DTSpecials

    DT Specials -> Boost ここは何? 超強力な C++ ライブラリ群 Boost C++ Library の説明書き置き場です.私個人が必要で調べた内容のうち,Let's Boost で詳しく触れられていないものを補完しようというスタンスです. お品書き boost::numeric::ublas 線形代数関係(行列.ベクトル)のライブラリです.連立方程式を解くことと逆行列を求めることを主眼にサンプルコード付きで説明しています. boost::spirit エラーとその対処方法 構文解析ライブラリ boost::spirit の実装には変態的テクニックがふんだんに使われています.そのため,コンパイルエラーに対してどう対処してよいかさっぱり分からないこともままあります.このページは,私が boost::spirit を使用中に遭遇したエラーとその対処方法をまとめたものです.

  • Let's Boost

    Boost C++ Libraries の紹介サイトです。 :: by Google はじめに ご挨拶 Boost のインストール方法 参考リンク集 ニュース ◆ Version 1.42.0 と 1.41.0 対応 (2010/03/14) 新規ライブラリに関する Let's Boost のページ…: property_tree (汎用木構造型コンフィグ管理) / uuid (ユニークID生成器) ◆ RSS つけました (2009/08/28) ◆ Version 1.40.0 と 1.39.0 対応 (2009/08/28) 新規ライブラリに関する Let's Boost のページ…: Signals2 (Signal/Slotライブラリ改良版) ◆ Version 1.38.0 と 1.37.0 対応 (2009/02/22) 新規ライブラリに関する Let's Boost のペー

  • Cプログラミング入門

    : 目次 目次 索引 C++プログラミング入門 横田 壽 解答付テキスト(319ページ)は開成出版(書店で注文してください)から1800円で出ています. 目次 C++プログラミングを始めよう データの基型 選択(selection) 反復 関数 配列(Array) ポインタと参照 文字配列型(C-Strings) 標準C++文字列 クラス(class) オーバーロード(多重定義) 派生クラス テンプレート 標準C++ベクタ コンテナ アルゴリズムと関数オブジェクト オブジェクト指向開発 モデリング(Modeling) 統一プロセス(UP) ユースケース(use case)とは何か アクタ(actor) クラスの表記 関連(association) オブジェクト図の役割 関係の種類 オブジェクト指向による分析とは クラス

  • Spaghetti Source - 各種アルゴリズムの C++ による実装

    ACM/ICPC(プログラミングコンテスト)系列の問題を解くことを目標にして,各種アルゴリズムを C++ で実装してみた.極めて意地が悪い類の問題には対応していないし,特定の入力に対して高速に動くということもない.計算量も最良とは限らない. これらを参考にする方への注意とお願い: これらの記述は正確とは限りません.参考文献を参照することを強く推奨します.間違っている場合は是非教えてください. これらのプログラムは間違っているかもしれません.各人で検証することを強く推奨します.バグがあれば是非教えてください. 分類が怪しいので,これはこっちだろう,ということがあればコメントを下さると助かります. 注意! 現在書き換え中 TODO 分類を正しく行う. 全体的に説明と使い方を詳しく. Verify していないものを Verify. ボロノイ図(いつになることやら……) 基 テンプレート グラフ

  • MSDN ホームページ

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    MSDN ホームページ
  • 一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録

    一番右端の立っているビット位置(RightMostBit)を求めるコードで速いのないかなーと探していたら、ものっっっすごいコードに出会ってしまったのでご紹介。2ch のビット演算スレで 32bit 値のコードに出会って衝撃を受けて、その後 64bit 値版のヒントを見つけたのでコードを書いてみました。 この問題は ハッカーのたのしみ―物のプログラマはいかにして問題を解くか (Google book search で原著 Hacker's delight が読めたのでそれで済ませた) で number of trailing zeros (ntz) として紹介されています。bit で考えたときに右側に 0 がいくつあるかを数えるもの。1 だと 0、2 だと 1、0x80 なら 7、12 なら 2 といったぐあい。0 のときに表題どおりの問題として考えるといくつを返すの?ってことになるので、

    一番右端の立っているビット位置を求める「ものすごい」コード - 当面C#と.NETな記録
  • Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!

    kazuhoさんがやってくれました。 ずいぶん前からjsonをC++でパース(SAXじゃなくてDOM)するのに小さいライブラリないかなーと思ってました。個人的にはjson-cというのを使ってたのですが、幾らか気に入らない所があったりビルドが少し手間だったりしていました。STLしか使わなくてvectorとかmapで表現されるツリー構造な物が欲しいなぁって思ってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、githubにあるjsonxxとかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から格的に書き始めてついさっき出来上がりました。速いw 名前はpicojson とても小さく、実装コードだと300数十ステップ程です。しかもヘッダファイルだけなので管理が楽です。 試しにwassrのpubl

    Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!
  • 画像処理練習用クラス(C++)

    画像処理練習用クラス(C++) 文章:syun 日付:2005/8/11 目次 1.このページは? 2.ソースコード 1.このページは? 画像処理の練習が簡単にできるように、Bitmap読み込みクラスを作成しました。 このクラスを使うことで、コンソールベースですが、 24ビットBitmapファイルの読み書きが簡単にでき、 ピクセルに簡単にアクセスできるようになるので、 気軽に画像処理で遊ぶことが可能になります(´▽`) 2.ソースコード 以下、ソースコードになります。 まずは、ヘッダファイル。 #pragma once #include <iostream> #include <string> #include <fstream> using namespace std; typedef long LONG; typedef unsigned short WORD; typedef uns

  • GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ
  • http://www.cppll.jp/cppreference/index.html

  • liboctave for windows

    "windowsのVisual C++環境で使えるフリーで多機能な数値計算クラスライブラリが欲しい".この極めてニッチな要求を満たすため,GNU Octave (Matlabクローン)の計算ルーチンであるliboctaveをVisual C++ .Net (VC7)でコンパイルする. liboctaveとはC++で書かれた数値計算ライブラリであり,そのバックエンドとしてlapack, fftwなどを用いている.つまりこれはlapackなどの有名なライブラリを組み合わせたC++によるラッパーであり,基的にMatlab相当の機能を持っている. またOctaveのソースにはこれら依存ライブラリのソースが含まれているので単体でビルドする事も可能であるが,SSEや3DNOWのような各CPU固有の命令を用いた高速版( Intel Math Kernel LibraryやAtlasなど)で差し替えて高

  • 水先案内: C++による数値計算

    FORTRANはわず嫌いなもので、C++用の数値計算関連ページへのリンクです。 C++による数値演算に関連するライブラリ oonumerics.org - Scientific Computing in Object-Oriented Languages The Object-Oriented Numerics Page とりあえずここから。リンクが充実しています。 Blitz++ Home Page ベクトルや行列の演算のためのライブラリです。私はこのライブ ラリを利用しています。 A Template Numerical Toolkit for Linear Algebra LAPACK++などの後継ライブラリ、だそうです。 Numerical Objects Online (Diffpack) 簡単に使えそうなベクトル演算ライブラリがほしかったのでいろいろ調べたのですが、最終

  • 【ハウツー】Cアプリを高速化せよ! - 正式リリースされたgoogle-perftoolsを試す (1) google-perftoolsとは | エンタープライズ | マイコミジャーナル

    google-perftoolsはGoogleによって提供されている、C/C++アプリケーションのパフォーマンスを改善するための開発ツールキットである。2005年3月に初めて公開され、およそ4年を経て7日に正式版がリリースされた。The BSD Licenseの下で提供されており、LinuxをはじめとしてFreeBSD、Mac OS X、Solaris 10、Windows XPなど、各種プラットフォームでの動作が確認されている(ただし、Linux以外については一部機能を除く)。 google-perftoolsには次に挙げる4つのツールが含まれている。 高速メモリアロケータTCMalloc ヒープチェッカー ヒーププロファイラ CPUプロファイラ TCMalloc(Thread-Caching Malloc)は通常のmallocよりも高速なメモリ割り当てを実現するライブラリであり、テスト