SlideShare a Scribd company logo
1 of 9
Download to read offline
Strassenのアルゴリズム
による行列の積の計算
2017-09-19
宮川 拓
概要
 n*nの密な正方行列の積が、Θ(n^3)よ
りも漸近的に小さな計算量で計算できる
 びっくり
 実装&計測してみた
 元ネタ:
 コルメン等『アルゴリズム・イントロダク
ション』第3版, 4.2節
2/9
行列の積をふつうに計算
 ふつうに計算
 𝐴 = ( 𝑎 𝑖 𝑗 ), 𝐵 = ( 𝑏 𝑖 𝑗 )をn次の正方行列と
する。 𝐶 = 𝐴 ∙ 𝐵とすると、その要素 𝑐 𝑖 𝑗
は、 𝑐 𝑖 𝑗 = σ 𝑘=1
𝑛
𝑎 𝑖 𝑘 ∙ 𝑏 𝑘 𝑗
 これは素直に下記の3重ループで書ける
 for i in 1~n
for j in 1~n
for k in 1~n
c [i,j ]+=a[ i,k ]* b [k,j ]
 計算量はΘ(n*n*n)=Θ(n^3)
3/9
準備: 分割統治
 A, B, Cを4つずつの(n /2)次正方行列
に分割すると、C=A・Bは

𝐶11 𝐶12
𝐶21 𝐶22
=
𝐴11 𝐴12
𝐴21 𝐴22
∙
𝐵11 𝐵12
𝐵21 𝐵22
=
𝐴11 ∙ 𝐵11 + 𝐴12 ∙ 𝐵21 𝐴11 ∙ 𝐵12 + 𝐴12 ∙ 𝐵22
𝐴21 ∙ 𝐵11 + 𝐴22 ∙ 𝐵21 𝐴21 ∙ 𝐵12 + 𝐴22 ∙ 𝐵22
と書き直せる
 書き直した式を再帰関数で実装すると、1
回の呼び出しは、半分の次数の部分行列同
士の乗算について、8回関数を呼び出す
 したがって、その計算量はΘ(n^3)
4/9
Strassenのアルゴリズム
 こ こ で 𝑃1 ~ 𝑃7 を 下 記 の よ う に 置 く と
 𝑃1 = 𝐴 1 1 ( 𝐵1 2 − 𝐵 2 2 )
 𝑃2 = ( 𝐴 1 1 + 𝐴 1 2 ) 𝐵 2 2
 𝑃3 = ( 𝐴 2 1 + 𝐴 2 2 ) 𝐵1 1
 𝑃4 = 𝐴 2 2 𝐵 2 1 − 𝐵1 1
 𝑃5 = ( 𝐴 1 1 + 𝐴 2 2 ) ( 𝐵1 1 + 𝐵 2 2 )
 𝑃6 = 𝐴 1 2 − 𝐴 2 2 𝐵 2 1 + 𝐵 2 2
 𝑃7 = 𝐴 1 1 − 𝐴 2 1 𝐵1 1 + 𝐵1 2
 次 が 成 り 立 つ
 𝐶1 1 = 𝐴 1 1 ∙ 𝐵1 1 + 𝐴 1 2 ∙ 𝐵 2 1 = 𝑃5 + 𝑃4 − 𝑃2 + 𝑃6
 𝐶1 2 = 𝐴 1 1 ∙ 𝐵1 2 + 𝐴 1 2 ∙ 𝐵 2 2 = 𝑃1 + 𝑃2
 𝐶2 1 = 𝐴 2 1 ∙ 𝐵1 1 + 𝐴 2 2 ∙ 𝐵 2 1 = 𝑃3 + 𝑃4
 𝐶2 2 = 𝐴 2 1 ∙ 𝐵1 2 + 𝐴 2 2 ∙ 𝐵 2 2 = 𝑃5 + 𝑃1 − 𝑃3 − 𝑃7
5/9
Strassenのアルゴリズム
 前ページの計算を再帰関数として実装
すると、1回の呼び出しごとに、部分
行列の乗算の呼び出しは7回
 nを2倍すると計算量は7倍に増える
 したがって、計算量は
Θ 𝑛 𝑙𝑜𝑔27
= Θ 𝑛2.8073…
6/9
実装
 https://bitbucket.org/miyakawataku/
matrix-
multiplication/src/default/matrix.go
7/9
計測
log2(n) 単純 Strassen
n-1との比
(単純)
n-1との比
(Strassen)
4 22,724 577,688 - -
5 133,972 4,008,528 5.90 6.94
6 1,129,255 28,688,124 8.43 7.16
7 9,924,139 203,509,826 8.79 7.09
8 133,242,248 1,576,870,691 13.43 7.75
9 1,327,584,877 11,072,402,847 9.96 7.02
10 11,892,402,060 86,182,808,153 8.96 7.78
11 106,612,149,065 619,821,838,102 8.96 7.19
12 3,073,269,379,009 5,012,791,249,199 28.83 8.09
実行環境:
 GCE n1-standard1
 CPU: 2.20GHz(x1コア), キャッシュ55MB
 たぶんXeon E5-2699 v4
キ ャ ッ シ ュ に 乗 ら な く な っ た た め ?
4096*4096*4byte = 64MiB
8/9
総括
素敵なアルゴリズムは、nが小さい時には遅い。
そして大抵の場合、nは小さい。
素敵なアルゴリズムの計算量の式には、大きな
定数項が掛かっている。
nが頻繁に大きくなることが分かっていない限り、
素敵にしてはならない。
― Rob Pike “Notes on Programming in C”
9/9

More Related Content

What's hot

Grad-CAMの始まりのお話
Grad-CAMの始まりのお話Grad-CAMの始まりのお話
Grad-CAMの始まりのお話Shintaro Yoshida
 
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2Preferred Networks
 
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定Masaaki Imaizumi
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムTakuya Akiba
 
ベイズ最適化によるハイパラーパラメータ探索
ベイズ最適化によるハイパラーパラメータ探索ベイズ最適化によるハイパラーパラメータ探索
ベイズ最適化によるハイパラーパラメータ探索西岡 賢一郎
 
Rolling Hashを殺す話
Rolling Hashを殺す話Rolling Hashを殺す話
Rolling Hashを殺す話Nagisa Eto
 
Kaggleのテクニック
KaggleのテクニックKaggleのテクニック
KaggleのテクニックYasunori Ozaki
 
AutoGluonではじめるAutoML
AutoGluonではじめるAutoMLAutoGluonではじめるAutoML
AutoGluonではじめるAutoML西岡 賢一郎
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造Takuya Akiba
 
Word2vecの並列実行時の学習速度の改善
Word2vecの並列実行時の学習速度の改善Word2vecの並列実行時の学習速度の改善
Word2vecの並列実行時の学習速度の改善Naoaki Okazaki
 
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Preferred Networks
 
動的輪郭モデル
動的輪郭モデル動的輪郭モデル
動的輪郭モデルArumaziro
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法Takuya Akiba
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解くshindannin
 

What's hot (20)

Grad-CAMの始まりのお話
Grad-CAMの始まりのお話Grad-CAMの始まりのお話
Grad-CAMの始まりのお話
 
RMQ クエリ処理
RMQ クエリ処理RMQ クエリ処理
RMQ クエリ処理
 
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
 
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
ベイズ最適化によるハイパラーパラメータ探索
ベイズ最適化によるハイパラーパラメータ探索ベイズ最適化によるハイパラーパラメータ探索
ベイズ最適化によるハイパラーパラメータ探索
 
Rolling Hashを殺す話
Rolling Hashを殺す話Rolling Hashを殺す話
Rolling Hashを殺す話
 
双対性
双対性双対性
双対性
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
Kaggleのテクニック
KaggleのテクニックKaggleのテクニック
Kaggleのテクニック
 
AutoGluonではじめるAutoML
AutoGluonではじめるAutoMLAutoGluonではじめるAutoML
AutoGluonではじめるAutoML
 
abc032
abc032abc032
abc032
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
 
Word2vecの並列実行時の学習速度の改善
Word2vecの並列実行時の学習速度の改善Word2vecの並列実行時の学習速度の改善
Word2vecの並列実行時の学習速度の改善
 
グラフと木
グラフと木グラフと木
グラフと木
 
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
 
動的輪郭モデル
動的輪郭モデル動的輪郭モデル
動的輪郭モデル
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
 

Viewers also liked

Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Taku Miyakawa
 
Graph Algorithms Part 1
Graph Algorithms Part 1Graph Algorithms Part 1
Graph Algorithms Part 1Taku Miyakawa
 
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にJava SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にTaku Miyakawa
 
Kink: プロトタイプベースの俺々 JVM 言語
Kink: プロトタイプベースの俺々 JVM 言語Kink: プロトタイプベースの俺々 JVM 言語
Kink: プロトタイプベースの俺々 JVM 言語Taku Miyakawa
 
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based languageKink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based languageTaku Miyakawa
 
擬似乱数生成器の評価
擬似乱数生成器の評価擬似乱数生成器の評価
擬似乱数生成器の評価Taku Miyakawa
 
Summary of "Hacking", 0x351-0x354
Summary of "Hacking", 0x351-0x354Summary of "Hacking", 0x351-0x354
Summary of "Hacking", 0x351-0x354Taku Miyakawa
 
コルーチンの実装について
コルーチンの実装についてコルーチンの実装について
コルーチンの実装についてTaku Miyakawa
 
金勘定のためのBigDecimalそしてMoney and Currency API
金勘定のためのBigDecimalそしてMoney and Currency API金勘定のためのBigDecimalそしてMoney and Currency API
金勘定のためのBigDecimalそしてMoney and Currency APITaku Miyakawa
 
Quasar: Actor Model and Light Weight Threads on Java
Quasar: Actor Model and Light Weight Threads on JavaQuasar: Actor Model and Light Weight Threads on Java
Quasar: Actor Model and Light Weight Threads on JavaTaku Miyakawa
 
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Yuji Kubota
 
Prepare for Java 9 #jjug
Prepare for Java 9 #jjugPrepare for Java 9 #jjug
Prepare for Java 9 #jjugYuji Kubota
 
楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjug楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjugYuji Kubota
 
言語設計者が意味論を書くときに考えていたこと
言語設計者が意味論を書くときに考えていたこと言語設計者が意味論を書くときに考えていたこと
言語設計者が意味論を書くときに考えていたことTaku Miyakawa
 

Viewers also liked (16)

Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
Graph Algorithms Part 1
Graph Algorithms Part 1Graph Algorithms Part 1
Graph Algorithms Part 1
 
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心にJava SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
 
Kink: プロトタイプベースの俺々 JVM 言語
Kink: プロトタイプベースの俺々 JVM 言語Kink: プロトタイプベースの俺々 JVM 言語
Kink: プロトタイプベースの俺々 JVM 言語
 
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based languageKink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
 
Kink の宣伝
Kink の宣伝Kink の宣伝
Kink の宣伝
 
Hadoop jobbuilder
Hadoop jobbuilderHadoop jobbuilder
Hadoop jobbuilder
 
擬似乱数生成器の評価
擬似乱数生成器の評価擬似乱数生成器の評価
擬似乱数生成器の評価
 
Summary of "Hacking", 0x351-0x354
Summary of "Hacking", 0x351-0x354Summary of "Hacking", 0x351-0x354
Summary of "Hacking", 0x351-0x354
 
コルーチンの実装について
コルーチンの実装についてコルーチンの実装について
コルーチンの実装について
 
金勘定のためのBigDecimalそしてMoney and Currency API
金勘定のためのBigDecimalそしてMoney and Currency API金勘定のためのBigDecimalそしてMoney and Currency API
金勘定のためのBigDecimalそしてMoney and Currency API
 
Quasar: Actor Model and Light Weight Threads on Java
Quasar: Actor Model and Light Weight Threads on JavaQuasar: Actor Model and Light Weight Threads on Java
Quasar: Actor Model and Light Weight Threads on Java
 
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
 
Prepare for Java 9 #jjug
Prepare for Java 9 #jjugPrepare for Java 9 #jjug
Prepare for Java 9 #jjug
 
楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjug楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjug
 
言語設計者が意味論を書くときに考えていたこと
言語設計者が意味論を書くときに考えていたこと言語設計者が意味論を書くときに考えていたこと
言語設計者が意味論を書くときに考えていたこと
 

Similar to Matrix Multiplication in Strassen Algorithm

行列計算アルゴリズム
行列計算アルゴリズム行列計算アルゴリズム
行列計算アルゴリズムTakuo Tachibana
 
Prml 最尤推定からベイズ曲線フィッティング
Prml 最尤推定からベイズ曲線フィッティングPrml 最尤推定からベイズ曲線フィッティング
Prml 最尤推定からベイズ曲線フィッティングtakutori
 
MMDs10.6-7
MMDs10.6-7MMDs10.6-7
MMDs10.6-7mfumi
 
2018年度秋学期 応用数学(解析) 第4部・「その先の解析学」への導入 第13回 複素関数論(2) 孤立特異点と留数 (2018. 12. 18)
2018年度秋学期 応用数学(解析) 第4部・「その先の解析学」への導入 第13回 複素関数論(2) 孤立特異点と留数 (2018. 12. 18)2018年度秋学期 応用数学(解析) 第4部・「その先の解析学」への導入 第13回 複素関数論(2) 孤立特異点と留数 (2018. 12. 18)
2018年度秋学期 応用数学(解析) 第4部・「その先の解析学」への導入 第13回 複素関数論(2) 孤立特異点と留数 (2018. 12. 18)Akira Asano
 
公開鍵暗号(3): 離散対数問題
公開鍵暗号(3): 離散対数問題公開鍵暗号(3): 離散対数問題
公開鍵暗号(3): 離散対数問題Joe Suzuki
 
Fourier analysis on symmetric group
Fourier analysis on symmetric groupFourier analysis on symmetric group
Fourier analysis on symmetric groupHanpenRobot
 
続・わかりやすいパターン認識 9章
続・わかりやすいパターン認識 9章続・わかりやすいパターン認識 9章
続・わかりやすいパターン認識 9章hakusai
 
スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元Shogo Muramatsu
 
Computing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner BasisComputing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner BasisYasu Math
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1sleepy_yoshi
 
これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法kenyanonaka
 
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へZansa
 
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法nitoyon
 
Prml3.5 エビデンス近似〜
Prml3.5 エビデンス近似〜Prml3.5 エビデンス近似〜
Prml3.5 エビデンス近似〜Yuki Matsubara
 
確率微分方程式の基礎
確率微分方程式の基礎 確率微分方程式の基礎
確率微分方程式の基礎 HanpenRobot
 
NN, CNN, and Image Analysis
NN, CNN, and Image AnalysisNN, CNN, and Image Analysis
NN, CNN, and Image AnalysisYuki Shimada
 
コンピュータビジョン最先端ガイド6 第2章:4~4.2節
コンピュータビジョン最先端ガイド6 第2章:4~4.2節コンピュータビジョン最先端ガイド6 第2章:4~4.2節
コンピュータビジョン最先端ガイド6 第2章:4~4.2節nonane
 

Similar to Matrix Multiplication in Strassen Algorithm (20)

行列計算アルゴリズム
行列計算アルゴリズム行列計算アルゴリズム
行列計算アルゴリズム
 
Prml 最尤推定からベイズ曲線フィッティング
Prml 最尤推定からベイズ曲線フィッティングPrml 最尤推定からベイズ曲線フィッティング
Prml 最尤推定からベイズ曲線フィッティング
 
Cosmology
CosmologyCosmology
Cosmology
 
MMDs10.6-7
MMDs10.6-7MMDs10.6-7
MMDs10.6-7
 
2018年度秋学期 応用数学(解析) 第4部・「その先の解析学」への導入 第13回 複素関数論(2) 孤立特異点と留数 (2018. 12. 18)
2018年度秋学期 応用数学(解析) 第4部・「その先の解析学」への導入 第13回 複素関数論(2) 孤立特異点と留数 (2018. 12. 18)2018年度秋学期 応用数学(解析) 第4部・「その先の解析学」への導入 第13回 複素関数論(2) 孤立特異点と留数 (2018. 12. 18)
2018年度秋学期 応用数学(解析) 第4部・「その先の解析学」への導入 第13回 複素関数論(2) 孤立特異点と留数 (2018. 12. 18)
 
公開鍵暗号(3): 離散対数問題
公開鍵暗号(3): 離散対数問題公開鍵暗号(3): 離散対数問題
公開鍵暗号(3): 離散対数問題
 
C02
C02C02
C02
 
Fourier analysis on symmetric group
Fourier analysis on symmetric groupFourier analysis on symmetric group
Fourier analysis on symmetric group
 
続・わかりやすいパターン認識 9章
続・わかりやすいパターン認識 9章続・わかりやすいパターン認識 9章
続・わかりやすいパターン認識 9章
 
スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元
 
Computing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner BasisComputing for Isogeny Kernel Problem by Groebner Basis
Computing for Isogeny Kernel Problem by Groebner Basis
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1
 
これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法
 
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ【Zansa】第12回勉強会 -PRMLからベイズの世界へ
【Zansa】第12回勉強会 -PRMLからベイズの世界へ
 
アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法アルゴリズムイントロダクション15章 動的計画法
アルゴリズムイントロダクション15章 動的計画法
 
Prml3.5 エビデンス近似〜
Prml3.5 エビデンス近似〜Prml3.5 エビデンス近似〜
Prml3.5 エビデンス近似〜
 
確率微分方程式の基礎
確率微分方程式の基礎 確率微分方程式の基礎
確率微分方程式の基礎
 
NN, CNN, and Image Analysis
NN, CNN, and Image AnalysisNN, CNN, and Image Analysis
NN, CNN, and Image Analysis
 
コンピュータビジョン最先端ガイド6 第2章:4~4.2節
コンピュータビジョン最先端ガイド6 第2章:4~4.2節コンピュータビジョン最先端ガイド6 第2章:4~4.2節
コンピュータビジョン最先端ガイド6 第2章:4~4.2節
 
Fourier transform
Fourier transformFourier transform
Fourier transform
 

More from Taku Miyakawa

ラムダと invokedynamic の蜜月
ラムダと invokedynamic の蜜月ラムダと invokedynamic の蜜月
ラムダと invokedynamic の蜜月Taku Miyakawa
 
Processing LTSV by Apache Pig
Processing LTSV by Apache PigProcessing LTSV by Apache Pig
Processing LTSV by Apache PigTaku Miyakawa
 
Java 7 invokedynamic の概要
Java 7 invokedynamic の概要Java 7 invokedynamic の概要
Java 7 invokedynamic の概要Taku Miyakawa
 
Java オブジェクトの内部構造
Java オブジェクトの内部構造Java オブジェクトの内部構造
Java オブジェクトの内部構造Taku Miyakawa
 
Kink: developing a programming language on the JVM
Kink: developing a programming language on the JVMKink: developing a programming language on the JVM
Kink: developing a programming language on the JVMTaku Miyakawa
 

More from Taku Miyakawa (6)

ラムダと invokedynamic の蜜月
ラムダと invokedynamic の蜜月ラムダと invokedynamic の蜜月
ラムダと invokedynamic の蜜月
 
Java Quine Golf
Java Quine GolfJava Quine Golf
Java Quine Golf
 
Processing LTSV by Apache Pig
Processing LTSV by Apache PigProcessing LTSV by Apache Pig
Processing LTSV by Apache Pig
 
Java 7 invokedynamic の概要
Java 7 invokedynamic の概要Java 7 invokedynamic の概要
Java 7 invokedynamic の概要
 
Java オブジェクトの内部構造
Java オブジェクトの内部構造Java オブジェクトの内部構造
Java オブジェクトの内部構造
 
Kink: developing a programming language on the JVM
Kink: developing a programming language on the JVMKink: developing a programming language on the JVM
Kink: developing a programming language on the JVM
 

Matrix Multiplication in Strassen Algorithm