{"version":"1.0","url":"https://jeneshicc.hatenadiary.org/entry/20090727/1248714464","title":"LU\u5206\u89e3","description":"LU\u5206\u89e3@Haskell \u9045\u5ef6\u8a55\u4fa1\u3063\u3066\u4fbf\u5229\uff0e\u81ea\u5206\u3067\u8a55\u4fa1\u306e\u9806\u756a\u3092\u660e\u793a\u7684\u306b\u4e0e\u3048\u306a\u304f\u3066\u3082\uff0c \u3088\u304d\u306b\u306f\u304b\u3089\u3063\u3066\u304f\u308c\u308b\uff0e import Data.Array type Matrix = Array (Int, Int) Double -- assumption: u!(i,i) /= 0 lu :: Matrix -> (Matrix, Matrix) lu a = (l, u) where b = bounds a l = listArray b.map f.range $ b u = listArray b.map g.range $ b f (i,j) | i == j = 1 | i < j =\u2026","published":"2009-07-27 02:07:44","categories":["\u65e5\u8a18","Haskell"],"author_name":"jeneshicc","provider_name":"Hatena Blog","provider_url":"https://hatena.blog","height":"190","type":"rich","width":"100%","image_url":null,"blog_title":"\u843d\u66f8\u304d\u3001\u6642\u3005\u843d\u5b66","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fjeneshicc.hatenadiary.org%2Fentry%2F20090727%2F1248714464\" title=\"LU\u5206\u89e3 - \u843d\u66f8\u304d\u3001\u6642\u3005\u843d\u5b66\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","blog_url":"https://jeneshicc.hatenadiary.org/","author_url":"https://blog.hatena.ne.jp/jeneshicc/"}