タグ

C++に関するsassanoのブックマーク (367)

  • Amazon Elastic MapReduce で C++ - やた@はてな日記

    Python だと複雑な処理を書けないので(主に慣れていないため),C++Mapper と Reducer を開発でできないか確認してみました.結論は,「たぶん大丈夫」です. 悩みどころは,基的にバイナリの互換性がないと考えるべき Linux 環境において,「どうやって実行ファイルを作成しようか」ということです.もちろん,実行環境でビルドするのが確実なので,Amazon Elastic MapReduce で確保した Amazon EC2 の計算機にログインして make できれば最善と考えました.そして,試してみたところ,無事に動きました. # EC2 のマシン上でビルドしたバイナリは Ubuntu 上でも動いたので,逆も問題ないのかもしれません.詳しい方,プリーズ…. というわけで,実行ファイルを手に入れるまでの手順を書いてみます. Key Pair の作成 EC2 で確保した

    Amazon Elastic MapReduce で C++ - やた@はてな日記
  • PFIインターンに行ってきました。 - Blog by Sadayuki Furuhashi

    8月1日から8月31日までの1ヶ月間、PFI夏期インターンに行ってきました。 はてなインターンの 講義・課題・チーム 形式とは趣を異にして、個々人が何か1つのプロジェクトに取り組む方針で進みました。取り組むテーマは 新たに取り組みたい/今取り組んでいる 内容を前提に、既存の問題の中から近いテーマを見つけます(あるいはこじつける^^;)。 インターンの期間中の1ヶ月か2ヶ月の間に成果を出すのが目標! 取り組むテーマはスムーズに決まりました。何か自社で製品を作っていれば普通かと思いますが、探せば問題はいくらでもあるモノです^^ ちなみにPFIの製品は、全文検索エンジンやレコメンドエンジンなどです。 私は以下の4つのプログラムを実装しました: 既存の実装に代わるRPCフレームワーク MessagePack-RPC for PFI クラスタ管理ツール clx プロセス管理ユーティリティ daemo

    PFIインターンに行ってきました。 - Blog by Sadayuki Furuhashi
  • Yaneu Labs --- コンピュータ将棋プログラムをLISPで書く

    *[hatefu:labs.yaneu.com/20090905/] コンピュータ将棋プログラムをLISPで書く 「コンピュータ将棋プログラムをLISPで書く」と言うとコンピュータ将棋開発関係者にすら完全にネタかと思われているのが実状ではあるが、私はこれを機にその誤解を解いておきたい。 ここでは、私がC#で書いたLISPエンジンのソースを公開し、これが実際にコンピュータ将棋プログラムの開発において非常に有効であることを示す。 * YaneLisp version 1.10 今回の記事はあまりに長文なので最後まで読む前に眠くなる人のために、まず始めに私が実装したLISPのバイナリとソースを配布しておく。ライセンスはNYSLとする。 勢いに任せて実装したので、かなり雑な作りだが、必要ならばC#側で関数を追加するなりすればいいと思う。このLISPの製作に要した時間は丸2日ぐらい。 # YaneL

    sassano
    sassano 2009/09/08
  • CLX C++ Libraries

    Overvies CLX C++ Libraries は,文字列処理やネットワークプログラミングの補助などを行うための, ヘッダファイルのみで構成された C++ ライブラリです. CLX C++ Libraries は, BSDライセンスで配布しています.ソースコードの複製・改変は自由ですが, 自己責任でお願い致します. Usage CLX C++ Libraries を使用する際には,以下のファイルをダウンロードし, 解凍して出来た clx フォルダ以下のヘッダファイルを作業フォルダにコピーするか, または,インクルードオプションを適切に指定して下さい. CLX C++ Libraries で作成したクラスは clx 名前空間の中に定義してあります. 利用する場合は,直接指定するか適切な using ディレクティブを指定して下さい. 動作確認は gcc 4.0.2 (Linux), gc

    sassano
    sassano 2009/09/07
  • C++0x 暗黙に削除される特殊メンバ関数 - Faith and Brave - C++で遊ぼう

    暗黙に定義される特殊メンバ関数*1が暗黙に定義されるとエラーになるクラスでは、 暗黙に削除されたことになります。 以下のケースでは、デフォルトコンストラクタが暗黙に削除されます。 struct HasReference { int &ref; // 暗黙宣言: // HasReference() = delete; // HasReference(const HasReference&); // HasReference& operator=(const HasReference&); // ~HasReference(); }; N2924 Implicitly-Deleted Special Member Functions C++0x Defaults and Deleted Functions C++0xの言語拡張まとめ *1:デフォルトコンストラクタ、コピーコンストラクタ、コピー

    C++0x 暗黙に削除される特殊メンバ関数 - Faith and Brave - C++で遊ぼう
    sassano
    sassano 2009/09/05
  • C++0x ファイルの位置操作で現代的なファイルサイズを扱えるようにする - Faith and Brave - C++で遊ぼう

    現代的なファイルサイズは大きすぎて、intやlongでは表現できないかもしれません。 現在のC++のI/Oストリームはlong long型が組み込まれる前に導入されたのでこういう問題があります。 この問題が、N2926の提案で解決されます。 変更点としてはchar_traitsの typedef OFF_T off_type; typedef POS_T pos_type; となっていたものを以下のように修正し typedef unspecified-type off_type; typedef unspecified-type pos_type; <ios>にある以下のtypedefを typedef OFF_T streamoff; typedef POS_T streamsize; 以下のように修正されるくらいです。 typedef implementation-defined st

    C++0x ファイルの位置操作で現代的なファイルサイズを扱えるようにする - Faith and Brave - C++で遊ぼう
    sassano
    sassano 2009/09/05
  • Ter Borg · Net | Kernel-Machine Library

    The Kernel-Machine Library is a free (released under the LGPL) C++ library to promote the use of and progress of kernel machines. It is intended for use in research as well as in practice. The library is known to work with a recent C++ compiler on GNU/Linux, on Mac OS, and on several flavours of Windows. Below, we would like to give you the choice to either install, use, or improve the library.

    sassano
    sassano 2009/09/03
  • C++0x 標準コンテナのsize()の計算量を規定 - Faith and Brave - C++で遊ぼう

    標準コンテナのsize()メンバ関数の計算量を全てO(1)にしようという提案があり、 賛成多数で通ってしまったらしいです。 つまり、サイズ用のメンバ変数を持たずに実装されていたstd::listやstd::set等に サイズ用メンバ変数が新たに追加されることになります。 組み込み環境でSTL使ってるところがコンパイラをアップデートしてC++0xに対応すると メモリ不足で動かなくなる可能性があるのですが、そのへん考慮されているのだろうか。 以下、N2920の投票結果から 我々は、C++0X working paperにN2923 "Specifying the complexity of size() (Revision 1)"を適用する。 Crowlは、これによってABIが破壊的に変更されるかどうか尋ねた。 Hinnantは、実装に依存すると返答した。いくつかの実装は変わるだろう。 Bro

    C++0x 標準コンテナのsize()の計算量を規定 - Faith and Brave - C++で遊ぼう
    sassano
    sassano 2009/09/03
  • Google C++スタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

  • Txでdartsのようなtraverseをする関数 - 進・日進月歩

    Txでdartsのようなtraverseをする関数を作ってみました。 使い方はdartsのtraverseと同じだと思います。たまたま作ったのでパッチをそのまま貼っておきます。動作は未保証。dartsよりも爆速でふきました。 PLAIN TEXT CODE: diff -cb tx-0.13/tx.cpp tx_original/tx.cpp *** tx-0.13/tx.cpp  2009-04-13 13:21:14.000000000 +0900 --- tx_original/tx.cpp  2009-08-27 22:45:25.000000000 +0900 *************** *** 195,200 **** --- 195,221 ---- return 0; } +   uint tx::traverse(const char* str, size_t& po

    sassano
    sassano 2009/08/31
  • 「BIND 10」をC++とPythonで書く狙いとは JPRSに聞く、次期DNSソフト開発の意義<後編>

  • boost::randomの罠 - 城陽人の本棚

    今日は先生が午後から用事があったみたいで、ミーティングが朝の10時からに変更。結局あんま誰もネタがなかったから別に今週なしでもよかったよーな。そうそう中間発表が21日だそうで、パワポの準備とかせなあかんなぁ。発表10分やのに質問20分というありえない時間配分が素敵。隠しスライドいっぱい作っとくか? で、午後からは相変わらずコーディングの続き。乱数あたりをいじってたのでその考察。 乱数生成は特に理由がない限りメルセンヌツイスタ法を使うのが基。間違っても標準のrand()なんて使わないよーに。このアルゴリズムは今んとこ精度及び速度の点から最良と言われてる代物。わざわざ自分で作らなくてもboost::randomにboost::mt19937というメルセンヌツイスタ法の実装があるからこれを流用。残念ながらこいつはVC6ではコンパイルが通らないので、VC6とかその他古いコンパイラで使いたい場合は

    boost::randomの罠 - 城陽人の本棚
    sassano
    sassano 2009/08/30
  • vector::clear() - #include <fujita.h>

    sassano
    sassano 2009/08/28
  • http://bd.tank.jp/d/20090822.html

    sassano
    sassano 2009/08/24
  • yebo blog: C++の標準化は2010年以降に持ち越し

    2009/07/25 C++の標準化は2010年以降に持ち越し Dr.Dobb's に掲載れたビャーネ・ストロヴストルップ氏 (Bjarne Stroustrup) の記事によると、2009年7月にドイツで開催れたISO C++標準化委員会 (WG21) で C++0x から「コンセプト」メカニズムを削除する事が決定され、そのため C++の標準化が2010年以降に遅れるとのことだ。これで、C++0x はなくなり、C++1x を待つ事になりそうだ。 投稿者 zubora 投稿時間 05:43 ラベル: Programming 0 コメント: コメントを投稿

    sassano
    sassano 2009/07/25
  • Bep: Associative Arrays for Very Large Collections

    sassano
    sassano 2009/07/21
  • Maximum Entropy Modeling Toolkit for Python and C++

    Introduction | License | Download | Document | FAQ(new) | History News 2011-09-02 Source code moved to github.com Please download the latest source code of maxent from github.com: https://github.com/lzhang10/maxent The new release incorporated important bug fixes by Jiri Marsik. version 20061005 Fix building problem on GCC 4, upgrade python binary package to Python 2.5. Linux binary is the same so

    sassano
    sassano 2009/07/20
  • GCC 4.4時代のC++プログラミング(C++プログラマーの受難な日々の巻) - このブログはURLが変更になりました

    C++プログラマーや各ディストリビューションのパッケージメンテナーは必見。GCC 4.4 + glibc 2.10でハマらない為のテクニック。 詳しくはリンク先を参照。執筆者は今のGentoo界を牽引する我らがリーダー、Diego E. “Flameeyes” Petten〓先生。 Flameeyes's Weblog : How _not_ to fix GCC 4.4 bugs ざっくり要約 #include <cstring> int main() { char *foo = strchr("ciao", 'a'); } は、GCC 4.3までは問題ないが、GCC 4.4だとエラーになるぜ。 error: invalid conversion from ‘const char*’ to ‘char*’でも決してこんな対策はすんな。目をつぶってるだけだ。 #include <cstri

    GCC 4.4時代のC++プログラミング(C++プログラマーの受難な日々の巻) - このブログはURLが変更になりました
  • Não Aqui! » CDB++ 1.1 released

    CDB++のバージョン1.1をリリースしました.こちらも,libLBFGSで大変お世話になっている今道様からパッチを頂きました. 一つ目はgotoを使っていたためのコンパイルエラーの修正です.よく「gotoは読みづらくなるから使うな」という主張を見かけますが,私はエラー時の終了処理など,用途がはっきりしている場合は積極的に使うべきだと考えています.error_exitみたいなラベルを付ければ,エラー時の処理内容が分かりやすくなりますし,何重にもネストしたループから脱出する場合も,gotoを使わないとロジックが分かりづらくなります. ただ,C++では変数の宣言が関数内の何処にでも書けるという仕様から,gotoの使い方が難しくなります.具体的には,次のようなコードの場合です. // Processing #1... if (error_condition_1) { goto error_exi

    sassano
    sassano 2009/07/17
  • C++: 編集距離を求めるアルゴリズム

    編集距離(edit distance)とは二つの文字列がどの程度異なっているかを示す数値であり、レーベンシュタイン距離(Levenshtein distance)を指すことが多い。文字の挿入、削除、置換それぞれを一つの操作として必要な操作の最小数を求めるものだ。例えば、kittenとsittingの編集距離を求める場合、下記のように3回の操作でkittenをsittingに変更できるので編集距離は3となる。 1. sitten (k を s に置換) 2. sittin (e を i に置換) 3. sitting (g を挿入) そこで今回は編集距離を求める複数のアルゴリズムについてC++で実装してみた。 動的計画法 編集距離を求めるもっとも一般的なアルゴリズムは、動的計画法(dynamic programming)だろう。計算時間はO(mn)であり、手軽だ。C++で書いたコードを下に示

    sassano
    sassano 2009/07/15