2016年11月17日木曜日

jemallocに置き換える

dlmallocを使用していたのですが, jemallocに置き換えます.
ビルドに詰まるところはなかったですが, static linkにする場合,
#include <jemalloc.h>の前に, #define JEMALLOC_EXPORTを入れるのを忘れないように.

2016年11月13日日曜日

Android 7 Nougat と jemalloc

binonicのソースツリーを見ると, Nougatにjemallocがある.
dlmallocから置き換えたってことかな.

2016年10月12日水曜日

Visual Studioの文字列リテラルの文字コードを設定する

#pragma execution_character_set("utf-8")
と書くと翻訳単位毎にリテラルの文字コードを設定できる.

さらに, clのオプション/FIは, 全てのソースファイルに対して強制的にインクルードするファイルを指定する.
forceinclude.hに, execution_character_setを書いて,
cl.exe /FIforceinclude.h
とすれば, やりたいことができるんじゃないかな.

2016年9月14日水曜日

Markdown をプレビューする

MarkdownPreview
MarkdownSharpと.NetのWebbrowserを使ってプレビューを試みる.
Markdownをプレビューするだけの機械.

カンファレンスのメモ取りに, Markdownを使おうとしたことがあった.
しかし, スタンドアロンのエディタに満足できそうなものがない.
VimのMarkdownプレビューも試したが満足できなかった.

時間ができたので作ったよ.
気に入らないところがあれば好きに弄るがいいです.

2016年8月1日月曜日

LOUDSでTrieを作る

LOUDSを用いたTrieです. 文字列をキーとした連想配列で使用することを想定しています.
Trieと 完備辞書はこのために作成しました.
上2つは公開時から不具合修正と機能追加をしています.

LOUDSは, 木構造をビット列で表現します.
節点を幅優先で走査し, 各節点で子の数だけ"1"を並べ, 節点の終端に"0"を置きます.
子のない節点は"0", 子が1つの節点は"10"です.

2016年7月30日土曜日

完備辞書

完備辞書そのものの説明は, ネット検索か,
高速文字列解析の世界<Amazon>で確認してください.

ビット列$B[0,n]\ B[i]\in\{0,1\}$
について, 以下の操作を実現する.
$access(B,i)\ B[i]$を返す
$rank_{b}(B,i)\ B[0,i)$中の$b\in\{0,1\}$の数を返す
$select_{b}(B,i)\ B$中の$i+1$番目に出現した$b\in\{0,1\}$の位置を返す

2016年7月29日金曜日

Trie

トライ木と呼ばれるデータ構造を作成します.
retrievalからtrieなので, treeと同じ発音だそうですが, 日本語ではトライだそうです.
各ノードがそれぞれラベルを持ち, 部分木は共通の接頭辞を持ちます.
"add", "and", "ans"からなるトライ木は以下のようになります.

前処理のための中間データとして作成したため, 効率は考慮していません.