tuple構築時再帰深度最適化の終焉
https://gist.github.com/wx257osn2/8051199
これから約半年後,わずか1晩の出来事である
GP
@cifar10
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ melpon.org/wandbox/permli… 本当に必要最低限の部分だけ、tupleとして動作するコンテナを書いた。構築は計算量がO(NlogN)再帰深度が定数C、要素アクセスはO(logN)。
2014-05-25 01:33:16
リンク
http://fimbul.hateblo.jp/
再帰深度を抑えたtuple的コンテナの構築 - ここは匣
本当に一部の機能のみ実装。要素型とindexをテンプレートパラメータにペアにして保持するvalue_holderを多重継承する方針。make_overloadの際に初めて知った、テンプレート引数を展開しながら一気に多重継承するという技法を早速パクりました。getでindexをキーとして継承元の関数を呼び分ける。線形再帰しつつ構築する従来の方法では構築の再帰深度がネックとなり、要素数の上限を強く制約していたが、この方法なら問題無い筈。 sprout::type_tupleの要素アクセスがO(logN)の筈な
GP
@cifar10
256要素以上のtupleを利用したくて、尚且つそのコンテナをメタプログラミングを用いて自前で実装したい人にとって、実装面で役に立つ可能性がある記事を書いた。(殆どの人に何の役にも立たない記事を書いた)
2014-05-25 02:04:14
I
@wx257osn2
256要素以上のtupleを利用したくて、尚且つそのコンテナをメタプログラミングを用いて自前で実装したい人にとって、実装面で役に立ちそうにないけど理論上可能だって記事を去年書いた。
2014-05-25 02:06:21
GP
@cifar10
二分木状に構築する方針もやってみたさある。何より自分の方針だとmake_tupleのようなフリー関数を介さない方法で綺麗に書ける気がしない。
2014-05-25 02:07:23翌日
あいおーれーと
@iorate
再帰深度を抑えたtuple的コンテナの構築 - ここは匣 fimbul.hateblo.jp/entry/2014/05/… >make_tupleを介さずに構築するのは厳しそう これじゃあかんのかな melpon.org/wandbox/permli…
2014-05-25 13:26:32
GP
@cifar10
再帰深度を抑えたtuple的コンテナの構築 - ここは匣 fimbul.hateblo.jp/entry/2014/05/… 追記しました
2014-05-25 15:13:42