概要 マイクラなどの地形をどうやって自動生成しているのか気になったので, 代表的なものをさっくり実装して確認してみた. この記事では,フラクタル地形についてさっくり紹介した後,以下の手法について述べる. ・バリューノイズ ・パーリンノイズ ・中点変位法 なお,全て二次元ベースで実装している.理論自体は何次元のものでも適用可能である. 事前準備 コード中でオレオレ構造体やオレオレマクロを使っているので,載せておく. //指定範囲でクリップする. #define CLIP(e,l,h) (min(max(e,l),h)) //配列の要素数取得. #define COUNTOF(a) ( sizeof( a ) / sizeof( a[0] ) ) //ベクトル構造体. #define VECTOR SVector2D<float> template <class T> struct SVect
はじめに 現代のCPUではSIMD(Single Instruction Multiple Data)命令を利用することができる. SIMD命令とはその名の通り,ひとつの命令で複数のデータを処理するものである. Intel系のCPUでは,MMX/SSE/AVX/AVX-512といったSIMD命令が利用可能であり,ARM CPUではNEONというSIMD命令が用意されている. 各SIMDとSIMD用のレジスタの対応関係は以下のようになる. 項目 利用可能レジスタ MMX 64bit のMMレジスタ SSE 128bit のXMMレジスタ AVX 256bit のYMMレジシタ AVX-512 512bit のZMMレジシタ ARM NEON 64bitのD(Double-Word)レジスタおよび128bitのQ(Quad-Word)レジスタ これらのレジスタを用いて,例えば4つのint型を一
この記事は24日目の記事のつづきです。前日の関連記事「ランダムフォレストのつかいかた」もありますので、こちらもよろしくお願いします。 ランダムフォレストのつかいかた - じじいのプログラミング ランダムフォレストは、機械学習の中でも、確率統計の知識がほぼ無しで実装できる簡単なアルゴリズムで、しかも性能もなかなかのものです。TopCoder機械学習マッチのいくつかは、コードを提出してTopCoderサーバで実行するルールなので、実装しやすいランダムフォレストは有力な選択肢です。実際にランダムフォレストが1位をとったコンテストもかなりあります。 決定木の作り方さえ理解すれば、ランダムフォレストは実装できたも同然ですので、この記事では、決定木を作る部分をメインに取り上げます。 アドバイスをいただけると、とてもうれしいです。間違いのご指摘は大歓迎です。 実装は、TopCoderの他の競技者(Psy
先日書いたOpenCVでアニメ顔検出をやってみた - kivantium活動日記の続編です。アニメ顔を検出するところまではうまくいったので、今度はキャラの分類をやってみようと思います。環境はUbuntu 14.10です。 ひと目で、尋常でない検出器だと見抜いたよ まずは分類に使う学習用データを用意します。投稿から半年以上経つのにまだランキング上位に残っている驚異の動画ご注文はうさぎですか? 第1羽「ひと目で、尋常でないもふもふだと見抜いたよ」 アニメ/動画 - ニコニコ動画を使います。 動画のダウンロード Ubuntuならaptで入れられるnicovideo-dlというツールを使います。 sudo apt-get install nicovideo-dl nicovideo-dl www.nicovideo.jp/watch/1397552685その後avidemuxでOP部分だけの動画を
The machine learning toolbox’s focus is on large scale kernel methods and especially on Support Vector Machines (SVM) * The SHOGUN Machine Learning Toolbox サイトのデザインどうにかしたらいいのにとか将軍ってなんだよとかいろいろあるかと思いますけども、プロダクトとしては素晴らしいという噂を聞くので今回このSHOGUNという機械学習ライブラリを試してみました。目的は一般物体認識における分類タスクでMultiple Kernel Learning(MKL)やLatent SVMの実装を試すことなのですが、まずはインストール方法と簡単な使い方を調べるところから始めます。 また、この記事の内容はQiitaにも投稿しています。 * 機械学習ライブラ
About Mobile Robot Programming Toolkit (MRPT) provides developers with portable and well-tested applications and libraries covering data structures and algorithms employed in common robotics research areas. It is open source, released under the 3-clause BSD license. Get it Download MRPT: for installing for Linux or Windows. Compiling: to build from sources. Where to start Tutorials C++ API refe
江添亮 http://cpplover.blogspot.jp/ boostcpp@gmail.com @EzoeRyou GFDL 1.3 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. Themes Sky - Beige - Simple - Serif - Night - Default Transition Styles Cube - Page - Concave - Zoom - Linear - Fade - None - Default C++の原作者 Bjarne Stroustrup C++のオリジナルの設計者にして最初の実装者 1979年 Stroustrup、ケンブリッジで博士号を取得するべく研究中 分散システム上で動作するソフトウェアの研究 実証のため、大規模なシ
CentOSでgdbを使おうと思った時に色々戸惑ったのでメモ。 まず使おうとすると以下のようなエラーが発生。 use: debuginfo-install glibc-2.12-1.47.el6_2.5.x86_64 ・・・ debuginfoが無いようなのでインストールするようにとのこと。 debuginfo-install コマンドを使ってインストールします。 ただ、言われたとおりdebuginfo-installコマンドを利用すると 「No debuginfo packages available to install」といったエラーが発生してしまうので 以下のように回避してインストール。 nogpgcheck は普段使わないリポジトリを有効にするオプションです。 /etc/yum.repos.d/*.repo に記載されている無効("enabled=0")のリポジトリ を一回限り有
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
このドキュメントはサイボウズ社内のトレーニング用に作成したものです。 作成時点では C++11 はまだあまり利用できない状況でしたので、C++98 ベースの記述になっています。 いずれ更新を予定しています。 モダンの定義モダンとはテンプレートメタプログラミング(TMP)を駆使することです。嘘です。 宗教論争に意味はないので、ここでは 「最近の C++ の仕様・機能を理解し、C より実装効率が良く不具合の少ない」 プログラミング技法を「モダン C++ プログラミング」と定義します。 つまり、不具合が少なく、かつ C にはもう戻れなくなるような効率の良さを達成するものです。 学習効率(ROI)が極めて良くないような技法(例えば TMP)は、この定義では除外されます。 勉強方法お勧めの順序は以下。決して全部を読もうとしないこと。 C++ Language Tutorial のような、あっさりした
C++で行列計算をする場合に便利なライブラリEigenを紹介したいと思います。 ベクトル・行列演算は知っているからEigenの使い方だけを教えてくれというかたは最初の章は読み飛ばしてください。 — 多くの統計処理がベクトル・行列演算を用いるとコンパクトに表すことが知られています。ちょっと複雑そうにみえる問題も整理してみるとベクトル・行列演算で書ける場合が多いです。(ベクトル・行列という言葉に抵抗がある方はそれぞれを単に配列、配列の配列とでも思ってもらえればいいでしょう)。ベクトルの内積は\(u^T v = u_1 v_1 + u_2 v_2 + \ldots +\)として求められ、ベクトルのノルムは自分自身のベクトルとの内積の平方根、\(|u| = \sqrt{ u^T u} \)として求められます(以降ベクトルは全て列ベクトルを指すとします)。 例えば、あるユーザーの商品の購買履歴は、\
ロベールのC++入門講座 09-03 ロベール本ではテンプレートの実装はヘッダに書かなければならないとさらりと書かれていましたが、何故そうしないといけないのかが本を読むだけでは今一良くわからなかったので色々調べてみたところ、理由がわかりました。 まず宣言と定義をファイルを分けて実装した場合、どういった状態になるかを見てみましょう。 // -- csample.h -- #ifndef __CSAMPLE_H__ #define __CSAMPLE_H__ template<class T> void template_swap(T& a, T&b); #endif // -- csample.cpp -- #include "csample.h" template<class T> void template_swap(T& a, T&b) { T t = a; a = b; b = t;
先日の TDD BootCamp では Boost.Test を使って演習をした。 初めてBoost.Testを使ったけど、Boost自体のコンパイルに時間が掛かるは、テストコードのコンパイルに時間が掛かるわ、当日Linux+ emacs の環境で固まるわで、ちょっとアレなので、今仕事でも使ってるGoogleTest をWindowsのVisual Studio環境で動かしてみた。 ダウンロード、コンパイル、テストの作成といった一連の流れはこちらの通りだけど、備忘録を兼ねて残しておく。 環境 Visual Studio 2008 Pro Google Test 1.5.0 手順 引用元手順を少し改変 http://code.google.com/p/googletest/downloads/listからダウンロード 試したのは1.5.0 解凍してmsvc/gtest.sln を実行 変換ウ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く