タグ

C++に関するKinjouJのブックマーク (32)

  • C++ で Perl 拡張を書くためのモジュールを書いた - TokuLog 改めB日記

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • mlpack - Home

    fast, header-only C++ machine learning library with bindings to Python, Julia, R, Go, and the command-line Written in C++ and built on Armadillo, ensmallen, and cereal. Aims to provide fast, extensible implementations of cutting-edge machine learning algorithms. Read the release announcement.

    KinjouJ
    KinjouJ 2012/07/09
  • XML より JSON より MessagePack が便利です

    こんにちは。開発担当の森です。 今回は、Fenrir Pass Connect を支える技術にちょっと関係のある、 web などを介してデータを交換するときの話をしたいと思います。 データ構造の共通化 → 実装も共通化できる プログラム間、端末同士、Web 経由などでデータを送ったり送られたりするときに、データは決まったフォーマットで送られる必要が有ります。 たとえば、今表示しているこのページでは、文は HTML、画像は PNG などのバイナリフォーマット、web API との連携などは JSON や XML、スタイルシートや JavaScript はそれぞれ独自のテキストフォーマットが使用されています。 一般的なプロダクトでは上記のうち、XML や JSON が使用される事が多いと思います。 これらのフォーマットは普及率が高いため情報も多く、多くの処理系で枯れて安定した実装があるため

    XML より JSON より MessagePack が便利です
    KinjouJ
    KinjouJ 2012/06/15
  • N-gram かな漢字・漢字かな変換(C++版) - アスペ日記

    作った。 リポジトリはこちら。 https://github.com/hiroshi-manabe/ngram-converter-cpp 以前、N-gram 漢字-かな変換という記事で、N-gram を使ったかな漢字・漢字かな変換を公開した。 内部で使用しているアルゴリズムについては、可変次数 N-gram デコードのアルゴリズムの記事や、N-gram かな漢字変換 (スライド)で紹介した通り。 精度は、http://d.hatena.ne.jp/nokuno/20111103/1320317225で検証していただいた通り、それなりに出ていたと思うが、いかんせん速度が遅いのが問題だった。ちょっと長い文章を変換すると数秒間も時間がかかってしまう。これでは実用にならない。 それで、仕事を辞めて時間があるので、それを C++ で書き直してみた。N-gram の保存には、Faster and S

    N-gram かな漢字・漢字かな変換(C++版) - アスペ日記
    KinjouJ
    KinjouJ 2012/06/11
  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
    KinjouJ
    KinjouJ 2012/05/08
  • 僕が shared_ptr よりも retain() / release() 方式が好きだと思う理由 - kazuhoのメモ置き場

    それは、shared_ptr のようなラッパーよりも、オブジェクト自体が参照カウンタをもっているほうがコードが書きやすいから。 たとえば、継承したクラスでオブジェクトの参照カウントをいじることは、shared_ptr では難しい。 shared_ptr を使った場合: class Base { public: virtual void foo() = 0; }; class Derived : public Base { public: virtual void foo() { // ここで自分自身への参照カウンタをインクリメントしたいけどできない… gManager_.register(this); }; // 呼び出し側 obj = shared_ptr<Base>(new Derived()); obj->foo();オブジェクト自体が参照カウンタをもっていれば、このような問題は発生

    僕が shared_ptr よりも retain() / release() 方式が好きだと思う理由 - kazuhoのメモ置き場
    KinjouJ
    KinjouJ 2012/04/20
  • C++ でlexer/parserをかくなら re2c+lemon がオススメな件 - tokuhirom's blog

    yacc や lex をつかっていても「なんかよくわからんけどうごく」という状態になりがちだったり、グローバル変数にまみれたりしがちだが、re2c + lemon だとそのへんがすっきりする。 レキサを以下のようにかく。yyfill を自前でかかなければいけないのがちょっと面倒だが、このようなクラスを手軽にかけるのはやはり便利である。flex ではこうはいかないのだ。 #ifndef CALC_SCANNER_H_ #define CALC_SCANNER_H_ #include <stdio.h> #include <string.h> #include <string> #include <sstream> #include <vector> #include <iostream> #include <fstream> #include "scanner.def.h" #include

    KinjouJ
    KinjouJ 2012/02/14
  • 開発メモ: MapReduce on Kyoto Cabinet

    Googleで実用化されHadoopで流行しているところの分散処理フレームワークMapReduceをKyoto Cabinetにおいても実現してみた。その解説。 ローカルなMapReduce MapReduceは多数のマシンが連携して分散処理を行うためのフレームワークなので、プロセス組み込みDBMであって分散など全く関係ない世界に生きているKCでMapReduceを実行して意味があるのだろうか。答えは、「あんまりない」である。それにもかかわらず実装したのは、何となく話題性がありそうだからってのが最大の理由なのだが、もうひとつ理由がある。 スクリプト言語で集計処理をやろうとすると、めっちゃメモリうしCPUパワーを使うわりに遅いからである。1000万件のソートってだけでスクリプト言語だと結構辛いからね。そこで、MapReduceフレームワークをC++で実装してmapとreduceだけをスクリ

    KinjouJ
    KinjouJ 2012/01/27
  • Julius で音声認識させてみた - 凹みTips

    はじめに 前回、iRemocon を操作するところまでやりました(中身はただの telnet みたいなもんですが…)。 次はマイクで喋った言葉を拾ってそれに従って操作を出来るようにしようと思います。このエントリでは音声認識した結果を C++ で取ってくるところまでやります。 で、フリーの音声認識エンジンがないかと探してみたところ、Julius に白羽の矢が立ちました。 大語彙連続音声認識エンジン Julius 音声認識分野の界隈では有名らしいですが、分からない点が多かったのでぼやいてたら、色々な方に助言をいただいて、何とか動かすことができました。ありがとうございます! 環境 Ubuntu 11.10 Julius 4.2.1 gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) Boost 1.48.0 Juliusのインストールと動作テスト T

    Julius で音声認識させてみた - 凹みTips
  • privateメンバに外部から非侵入的にアクセスする - redboltzの日記

    はじめに C++では通常、クラスのprivateメンバに外部からアクセスすることができない。 アクセスするためには、friend関数やfriendクラスを用いる。 しかし、 http://bloglitb.blogspot.com/2010/07/access-to-private-members-thats-easy.html で話題となり、Daveが、 https://gist.github.com/1528856 にエッセンスを抽出したコードを起こしているが、privateメンバに外部から合法的にアクセスする方法がある。 Daveのコードのコメントだけで必要十分かもしれないが、私は理解するのにかなり時間がかかってしまったので、その経緯を忘れないためにもここに書いておきたいと思う。 メンバポインタの復習 まずは、このコードを見て欲しい。 http://ideone.com/dGRqg

    KinjouJ
    KinjouJ 2012/01/12
  • CRFを試す - Negative/Positive Thinking

    はじめに 条件付き確率場(Conditional Random Fields)を実装してみた。 の式導出がわからなくて、夜な夜なmac book airを涙で濡らしながら書いたので、あやしい。 説明 基的に「言語処理のための機械学習入門」のの通りに書いた(つもり、、、) すごく自信ない、勉強用 ダミーラベルのB、EはそれぞれBOS、EOS φ(x,yt,yt-1)ってなってるけど、とりあえずφ_i(xt,yt,yt-1)を素性として利用(「単語」と「その品詞」と「その一つ前の単語の品詞」) 最急勾配法 L2正則化 forward-backwardの部分は何もやってない ちなみに式導出は、上記ののP.155の真ん中あたり 補足説明 : http://www.lr.pi.titech.ac.jp/~takamura/pukiwiki/index.php?%CA%E4%C2%AD%C0%

    CRFを試す - Negative/Positive Thinking
  • 関数テンプレートに対するデフォルトテンプレート引数の使い方 - 野良C++erの雑記帳

    この記事は、新しい使い道が発見され次第、随時更新していく予定です。 はじめに C++0x では、関数テンプレートに対し、デフォルトのテンプレート引数を渡すことが出来るようになりました: http://d.hatena.ne.jp/faith_and_brave/20071105/1194259443 // 上記 URL から転載 template <class T, class U = double> void f( T t = 0, U u = 0 ); void g() { f(1, 'c'); // f<int,char>(1,'c') f(1) // f<int,double>(1,0) f(); // error: T cannot be deduced f<int>(); // f<int,double>(0,0) f<int,char>(); // f<int,char>(0

    関数テンプレートに対するデフォルトテンプレート引数の使い方 - 野良C++erの雑記帳
    KinjouJ
    KinjouJ 2011/03/04