SlideShare a Scribd company logo
1 of 33
Download to read offline
Introduction to Boost.B-tree

     takayuki_goto@kstm.org
            (@eldesh)
自己紹介

● hatena-id:eldesh, @eldesh
● C++/ML er
● github
    ○ Inhert.PEG :: packrat parser library
● codeplex
    ○ msgpack-sml :: SML message-packシリアライザ
● 就職活動中なう…。
  ○ 拾ってください><
目次

● Boost.B-treeとは
● B-treeとは
   ○ 性質
   ○ 効率
   ○ 採用事例 
● Boost.B-treeの特徴
● Boost.B-treeの使い方
● Boost.B-treeの実装 、制限
B-treeとは

● データ構造(C++風に言うとコンテナ)の一種
● 古来よりHDD上で(ファイルシステムの実装に)活用される
● 近年オンメモリDBとして注目されている[要出典]
   ○ KyotoCabinetなど
● 派生のデータ構造たくさん
   ○ B+, B*, B#, Bx, UB, Dancing, H
 
B-treeの性質

● 平衡多分木の一つ
   ○ 自動で常にバランスする
● 全てのリーフノードはルートから同じ距離になる
● ノード数は一定 
● HDD上で性能が出る
● SSDでも速い(らしい)
B-treeの効率

● 他のコンテナとの比較
   コンテナ          イテレータ           メモリ効率       検索         挿入         削除

    B-tree      bi-directional    N*1.25   O(logmN)   O(logmN)   O(logmN)
                                 (最悪N*2)

 RedBlack-tree bi-directional N*3(or 2)    O(log2N)   O(log2N)   O(log2N)
 (std::mapなど)

    SkipList    (bi-             N*2(?)    O(log2N)   O(log2N)   O(log2N)
                directional)
B-tree採用事例

● NTFS(B+-tree)
● ext3,4(hashed B-tree)
● HFS(B-tree)
● Reiser4(Dancing B*-tree)
● XFS(B+-Tree)

● MySQL(B-tree)
● SQLite(B-tree)
● BerkeleyDB(B+-tree)
● CouchDB(B-tree)
                        ※単に B-tree と言った場合、派生アルゴリズムを含む
                        "B-tree系" の総称として用いることが多いと思われる
B-treeとは…!



Beman Dawes
「B-treeは実質的に、ファイルシステム、リレーショナルデータ
ベース検索機構、NoSQL構造化データシステム、ディスクに
保存するインデックス
全てにインデックスデータ構造を提供するっ!」

                         ※強調は訳者による
Beman Dawes →
Boost.B-tree
Boost.B-treeの特徴

● std::set, std::mapライクなコンテナ
● B+-treeで実装されている
● 自動でファイルに同期
● ライブラリレベルでのキャッシュ管理
● preloadによる高速化オプション
● packによるメモリ効率最適化オプション

● 格納出来る値に制限がある
● 実はBoostに入ってない :p
B+-tree
インストール

git clone https://github.com/Beman/Boost-Btree.git xbtree
(注) Boost全部チェックアウトします
svn export --force http://svn.boost.org/svn/boost/trunk xbtree
cd xbtree
./bootstrap.sh
cd libs/btree/test
../../../bjam
動作確認&ベンチマーク

$ cd xbtree/libs/btree/test
$ bjam

$ cd ../tools
$ bjam
$ bin/bt_time 10000 -stl -p4096 -c1000
ライブラリファイル構成

boost/btree
detail/
support/
dynamic_size.hpp   <- 可変サイズKey,Valueメタ関数
header.hpp         <- Btreeのヘッダクラス
map.hpp            <- btree_map, btree_multimap
set.hpp            <- btree_set, btree_multiset
example/btree_set
using namespace boost::btree;
typedef btree_set<int> set_type;
set_type s("set.btr", flags::truncate);
s.insert(0);
s.insert(1);
s.insert(2);
for (set_type::iterator it=s.begin(); it!=s.
end(); ++it)
    cout << it << 'n';

// output
// 0
// 1
// 2
example/btree_map
typedef btree_map<int, long> map_type;
map_type m("bt_map.btr", flags::truncate);

m.emplace(2, -2); // m.insert(make_pair(2, -2))
m.emplace(3, -3);
m.emplace(1, -1);
for (map_type::iterator it=m.begin(); it!=m.
end(); ++it)
    cout << it->key() << " --> " << it-
>mapped_value() << 'n';

// 2 --> -2
// 3 --> -3
// 1 --> -1
example/btree_multiset
typedef boost::btree::btree_multiset<int>
set_type;
set_type s("set.btr", flags::truncate);
s.insert(1);
s.insert(2); s.insert(2); s.insert(2);
s.insert(3);
set_type::const_iterator_range rng=s.
equal_range(2);
for (set_type::const_iterator it=rng.first; it!
=rng.second; ++it)
    cout << *it << 'n';

// output:
// 2
// 2
// 2
example/btree_multimap
typedef btree_multiset<strbuf,strbuf> map_type;
map_type m("map.btr", flags::truncate);
m.emplace("eat","comer0");
m.emplace("eat","comer1");
m.emplace("eat","comer2");
m.emplace("drink", "beber");
map_type::const_iterator_range rng=m.equal_range
("eat");
for (map_type::iterator it=rng.first; it!=rng.
second; ++it)
    cout << it->key() <<"-->"<< it->mapped_value()
<< 'n';

// output:
// eat -> comer0
// eat -> comer1
// eat -> comer2
標準連想コンテナとの違い

● テンプレートパラメータ
    ○ エンディアンを指定する
● Key とTへのより厳しい制約
● イテレータの無効化規則は、通常の古い連想コンテナより順序
  無し連想コンテナにより近い
● [multi]map value_type は std::pair<> ではなく、
  map_value<> である
● iterator と const_iterator は同じ型であり、それは不
  変なイテレータである
● いくつかのメンバ関数が削除され、いくつかが追加された
Key, Tへの制約

btree_map<
           class Key, class T            <- コレ
         , class Traits=default_endian_traits
         , class Comp=btree::less<T>
 >
 ● static_assert(std::is_trivially_copyable<T>::value==true,"")
     ○ memcpyします
 ● ポインタではないこと

  を要求する。
Key, Valueのバイナリ表現

template<class T1, class T2>
class map_value { // btree_map<>::value_type
  T1 const& key() const {
    return *reinterpret_cast<const T1*>(this); }
  T2 const& mapped_value() const { return
    *reinterpret_cast<const T2*>(
       reinterpret_cast<const char*>(this)
       + dynamic_size(key()));
  }
};
// キャストでアクセスするので
// std::pair<>は使えない
マップされた値の更新

 ● iterator と const_iterator は同じ型であり、
   不変なイテレータである
   btree_map::iterator it=m.find(2);
   it->mapped_value() = "hoge"; // error
 ● 値の更新は専用メソッドを使う
iterator
btree_map<K,V>::update(iterator, V const&);
example/update
typedef btree::btree_map<int, long> map_type;
map_type m("bt_map.btr", btree::flags::
truncate);
m.emplace(2, -2);
m.emplace(3, -3); m.emplace(1, -1);

map_type::iterator it=bt_map.find(2);
//じつはconst_iteratorでも…
cout << it->mapped_value() << "n";
m.update(it, 20L);
cout << it->mapped_value() << "n";

// -2
// 20
Boost.B-treeでは出来ないこと

● std::stringは使えない
    ○ trivially_copyableをkey,valueに要求する
    ○ 文字列を使うためのwrapperはある
● コンテナに値を追加すると勝手にファイルに書き出される
● シリアライザでは無い
    ○ Boost.Serializationの代替ではない
    ○ 複雑なデータ型はB-treeの上に構築する
追加された関数(の一部)
 void open(const path& p,
    flags::bitmask flgs = flags::read_only,
    size_t node_sz = default_node_size)
    // node_sz ignored if existing file
 void flush();
 void close();
 bool is_open() const;
 size_t node_size() const;
 size_t max_cache_size() const;
 void max_cache_size(size_t m);
 void dump_dot(std::ostream &) const;
 

digraph btree {
rankdir=LR;
fontname=Courier;
node [shape = record,margin=.1,width=.1,
height=.1,fontname=Courier,style="filled"];
node1[label = "<f0> 0|1|2|3|4|5|6|7|8|9",
fillcolor="palegreen"];
}
 
クラス階層
ページキャッシュ




buffer_manager // ファイルとバッファの管理
 ● intrusive::set<buffer> // と
 ● intrusive::list<buffer> // で管理
Feedback welcome!

● まだまだ開発途中
● 名前もシグネチャも変わるかも知れない
● ドキュメントがぜんぜん無い
● 継続的に開発していくよ
● フィードバック歓迎!
References

Organization and Maintenance of Large Ordered Indexes,
Bayer and McCreight, 1972

https://github.com/Beman/Boost-Btree

Proposed Boost.B-tree Library(ja)

More Related Content

What's hot

巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table についてHaruka Ozaki
 
データとは何か
データとは何かデータとは何か
データとは何かKenta Suzuki
 
Boostライブラリ一周の旅
Boostライブラリ一周の旅 Boostライブラリ一周の旅
Boostライブラリ一周の旅 Akira Takahashi
 
テーマ「最適化」
テーマ「最適化」テーマ「最適化」
テーマ「最適化」technocat
 
Adding simpl GVN path into GHC
Adding simpl GVN path into GHCAdding simpl GVN path into GHC
Adding simpl GVN path into GHCKei Hibino
 
Vinculum
VinculumVinculum
Vinculumtomerun
 
距離まとめられませんでした
距離まとめられませんでした距離まとめられませんでした
距離まとめられませんでしたHaruka Ozaki
 
End challenge Part1
End challenge Part1End challenge Part1
End challenge Part1hisa2
 
as-1. アセンブラ入門
as-1. アセンブラ入門as-1. アセンブラ入門
as-1. アセンブラ入門kunihikokaneko1
 
ハッシュと配列
ハッシュと配列ハッシュと配列
ハッシュと配列TENTO_slide
 
ARC環境で メモリリークを起こす 7つの方法
ARC環境で メモリリークを起こす 7つの方法ARC環境で メモリリークを起こす 7つの方法
ARC環境で メモリリークを起こす 7つの方法ushiostarfish _
 
Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料Etsuji Nakai
 
Web技術勉強会 第25回
Web技術勉強会 第25回Web技術勉強会 第25回
Web技術勉強会 第25回龍一 田中
 
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編Yosuke Onoue
 
PHP文字コード設定
PHP文字コード設定PHP文字コード設定
PHP文字コード設定Masataka Ohara
 
mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理Shintaro Fukushima
 
KETpic できれいな図を書こう
KETpic できれいな図を書こうKETpic できれいな図を書こう
KETpic できれいな図を書こうYoshitomo Akimoto
 

What's hot (20)

巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について
 
データとは何か
データとは何かデータとは何か
データとは何か
 
Boostライブラリ一周の旅
Boostライブラリ一周の旅 Boostライブラリ一周の旅
Boostライブラリ一周の旅
 
テーマ「最適化」
テーマ「最適化」テーマ「最適化」
テーマ「最適化」
 
Adding simpl GVN path into GHC
Adding simpl GVN path into GHCAdding simpl GVN path into GHC
Adding simpl GVN path into GHC
 
Programming school 08
Programming school 08Programming school 08
Programming school 08
 
Vinculum
VinculumVinculum
Vinculum
 
距離まとめられませんでした
距離まとめられませんでした距離まとめられませんでした
距離まとめられませんでした
 
Tokyor23 doradora09
Tokyor23 doradora09Tokyor23 doradora09
Tokyor23 doradora09
 
End challenge Part1
End challenge Part1End challenge Part1
End challenge Part1
 
as-1. アセンブラ入門
as-1. アセンブラ入門as-1. アセンブラ入門
as-1. アセンブラ入門
 
ハッシュと配列
ハッシュと配列ハッシュと配列
ハッシュと配列
 
ARC環境で メモリリークを起こす 7つの方法
ARC環境で メモリリークを起こす 7つの方法ARC環境で メモリリークを起こす 7つの方法
ARC環境で メモリリークを起こす 7つの方法
 
Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料
 
Web技術勉強会 第25回
Web技術勉強会 第25回Web技術勉強会 第25回
Web技術勉強会 第25回
 
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
 
仮想記憶の構築法
仮想記憶の構築法仮想記憶の構築法
仮想記憶の構築法
 
PHP文字コード設定
PHP文字コード設定PHP文字コード設定
PHP文字コード設定
 
mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理
 
KETpic できれいな図を書こう
KETpic できれいな図を書こうKETpic できれいな図を書こう
KETpic できれいな図を書こう
 

Similar to Boost.B-tree introduction

co-1. クラスとメソッド
 co-1. クラスとメソッド co-1. クラスとメソッド
co-1. クラスとメソッドkunihikokaneko1
 
Boost.Flyweight
Boost.FlyweightBoost.Flyweight
Boost.Flyweightgintenlabo
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Springanyakichi
 
Learning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.GeomtryLearning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.GeomtryAkira Takahashi
 
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用Shintaro Fukushima
 
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)Hiro H.
 
今から始める Lens/Prism
今から始める Lens/Prism今から始める Lens/Prism
今から始める Lens/PrismNaoki Aoyama
 
Grafana Dashboards as Code
Grafana Dashboards as CodeGrafana Dashboards as Code
Grafana Dashboards as CodeTakuhiro Yoshida
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介Satoshi Hirata
 
textsearch_jaで全文検索
textsearch_jaで全文検索textsearch_jaで全文検索
textsearch_jaで全文検索Akio Ishida
 
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in PythonEasy caching and logging package using annotation in Python
Easy caching and logging package using annotation in PythonYasunori Horikoshi
 
DTrace for biginners part(2)
DTrace for biginners part(2)DTrace for biginners part(2)
DTrace for biginners part(2)Shoji Haraguchi
 
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法についてDart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法についてKosuke Saigusa
 
PL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database AnalyticsPL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database AnalyticsKohei KaiGai
 

Similar to Boost.B-tree introduction (20)

Boost tour 1_44_0
Boost tour 1_44_0Boost tour 1_44_0
Boost tour 1_44_0
 
co-1. クラスとメソッド
 co-1. クラスとメソッド co-1. クラスとメソッド
co-1. クラスとメソッド
 
Boost.Flyweight
Boost.FlyweightBoost.Flyweight
Boost.Flyweight
 
Teclab3
Teclab3Teclab3
Teclab3
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Spring
 
Learning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.GeomtryLearning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.Geomtry
 
Boost Tour 1.50.0
Boost Tour 1.50.0Boost Tour 1.50.0
Boost Tour 1.50.0
 
Map
MapMap
Map
 
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
 
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
C++のSTLのコンテナ型を概観する @ Ohotech 特盛 #10(2014.8.30)
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 
今から始める Lens/Prism
今から始める Lens/Prism今から始める Lens/Prism
今から始める Lens/Prism
 
Grafana Dashboards as Code
Grafana Dashboards as CodeGrafana Dashboards as Code
Grafana Dashboards as Code
 
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
 
PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介PostgreSQL13 新機能紹介
PostgreSQL13 新機能紹介
 
textsearch_jaで全文検索
textsearch_jaで全文検索textsearch_jaで全文検索
textsearch_jaで全文検索
 
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in PythonEasy caching and logging package using annotation in Python
Easy caching and logging package using annotation in Python
 
DTrace for biginners part(2)
DTrace for biginners part(2)DTrace for biginners part(2)
DTrace for biginners part(2)
 
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法についてDart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
 
PL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database AnalyticsPL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database Analytics
 

Recently uploaded

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Recently uploaded (9)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

Boost.B-tree introduction