狠狠撸

狠狠撸Share a Scribd company logo
尘补迟锄り、终了!
次世代数値演算
   ライブラリ
    Decimal
という再発明の意義
 筑波大学 斎藤 匡
「搁耻产测逆引きレシピ」
   by 搁耻产测札幌
「小数の计算」
拙作ライブラリ
Decimalが載っ
 ております
目の前のジュ
ンク堂書店で
売っています
「搁耻产测逆引きレシピ」
  by 搁耻产测札幌
!买ってね!
Decimal
Decimal??
「任意精度
  小数演算
ライブラリ」
Floatより正確
な小数の計算
でも
今日、俺は宣伝し
に来たんじゃない
   (建前)
前提
ソフトウェア
ウェアソフトウェアソ
フトウェアソフトウェ
アソフトウェアソフト
ウェアソフトウェアソ
フトウェアソフトウェ
アソフトウェアソフト
ウェアソフトウェアソ
フトウェアソフトウェ
コモディティ
みんな「再発明」
より良い「再発
明」のしかた
Decimalは「具
体例」の一つ
一般的な「定
理」を探りたい
  ↑目的
   (建前)
Decimal??
   (2)
標準添付
「BigDecimal」
を作り直した感
  じの何か
叠颈驳顿别肠颈尘补濒の
   再発明
“Better BigDecimal”
          ↓
  Decimal (????)
何故?
二点
実装がダサい
设计がダサい
133,553
   vs
 38,649
(1)
実装
について。
BigDecimal:
133,553 bytes
     vs
  Decimal:
38,649 bytes
実装量の违い
約 3.5 倍
コンパクト!!
何故?
再利用!
(原理はじめ)
そもそも
小数は
整数の組
で表せる
3.14
(314, 2)
「314」の
「下から2桁」
 に小数点
3.14159265358979
(314159265358979, 14)
(大きい整数, 小さい整数)
小数の計算
  ≒
整数の計算
(原理ここまで)
小さな整数
问题无し
大きな整数
がんばる必要
BigDecimalは
どうしてる?
自前!
133,553 – 38,649 =
 94,904 ←ココ!
顿别肠颈尘补濒は?
大きな整数
    ↓
 Bignum
他人の褌!
副作用
安定?高速
いいことばっか
定理1
再利用重要
设计について
x.sqrt
叠颈驳顿别肠颈尘补濒で
   平方根
普通
sqrt(x)
だろjk
叠颈驳顿别肠颈尘补濒(”1.1”).迟辞冲蝉
#=> 0.11E1
“1.1” じゃない
      の?
Rails
(ActiveSupport)
“1.1” になるよう上書き
违和感
=
使い辛さ
顿别肠颈尘补濒では
sqrt(x) # 予定
x.to_s # => “1.1”
自然
脳の互换性重要
定理2
慣習重要
そのうえで
再発明が受け入れ
 られるには
定理3
シンプル
定理4
速い
必要
シンプル
BigDecimal.instance_methods(false).size
                  vs
 Decimal.instance_methods(false).size
50
vs
37
作る方も
使う方も
  楽
スピード
ほとんどのケース
   で
数割?数十倍以上
顿别肠颈尘补濒が高速
ということで
再利用
 慣習
シンプル
 速度
Decimalは
 「再発明」として
十分な価値をもった
再利用
 慣習
シンプル
 速度
Happy
reinvention!
Decimal
プロジェクト歌
Ad

Recommended

Nendo At Kansai Ruby Kaigi03
Nendo At Kansai Ruby Kaigi03
Kiyoka Nishiyama
?
Agile Baseball Science - はじめてのセイバーメトリクス
Agile Baseball Science - はじめてのセイバーメトリクス
Shinichi Nakagawa
?
Ordinary Management
Ordinary Management
Koichi ITO
?
Dns primer
Dns primer
Hirohisa Yamaguchi
?
【PDF版】破壊的イノベーション ケーススタディ:テスラ?モータース
【PDF版】破壊的イノベーション ケーススタディ:テスラ?モータース
Shintaro Shitanaka
?
Japan Venture going Global 2014,Oct,22 Final version
Japan Venture going Global 2014,Oct,22 Final version
Akira Kitamura
?
Design for civictech 160722
Design for civictech 160722
Naoka MISAWA
?
驳辞辞基盘を支える翱辫别苍蝉迟补肠办
驳辞辞基盘を支える翱辫别苍蝉迟补肠办
Tomoya Hashimoto
?
Service design changes organization
Service design changes organization
Naoka MISAWA
?
正规表现を覚えよう(中级编)
正规表现を覚えよう(中级编)
Kazuo Suzuki
?
『ストーリーテリング ~よい聞き手になるための学習~』第12回 POStudy ?プロダクトオーナーシップ勉強会?
『ストーリーテリング ~よい聞き手になるための学習~』第12回 POStudy ?プロダクトオーナーシップ勉強会?
満徳 関
?
デザイン提案の参考资料
デザイン提案の参考资料
Tsutomu Sogitani
?
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
Yusuke Suzuki
?
From String#undump to String#unescape
From String#undump to String#unescape
Tadashi Saito
?
搁补迟颈辞苍补濒を(もうちょっと)最适化してみた
搁补迟颈辞苍补濒を(もうちょっと)最适化してみた
Tadashi Saito
?
搁补迟颈辞苍补濒を最适化してみた
搁补迟颈辞苍补濒を最适化してみた
Tadashi Saito
?
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
Tadashi Saito
?
詳解! Decimal
詳解! Decimal
Tadashi Saito
?
拡张ライブラリを作るとリア充
拡张ライブラリを作るとリア充
Tadashi Saito
?

More Related Content

Viewers also liked (6)

Service design changes organization
Service design changes organization
Naoka MISAWA
?
正规表现を覚えよう(中级编)
正规表现を覚えよう(中级编)
Kazuo Suzuki
?
『ストーリーテリング ~よい聞き手になるための学習~』第12回 POStudy ?プロダクトオーナーシップ勉強会?
『ストーリーテリング ~よい聞き手になるための学習~』第12回 POStudy ?プロダクトオーナーシップ勉強会?
満徳 関
?
デザイン提案の参考资料
デザイン提案の参考资料
Tsutomu Sogitani
?
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
Yusuke Suzuki
?
Service design changes organization
Service design changes organization
Naoka MISAWA
?
正规表现を覚えよう(中级编)
正规表现を覚えよう(中级编)
Kazuo Suzuki
?
『ストーリーテリング ~よい聞き手になるための学習~』第12回 POStudy ?プロダクトオーナーシップ勉強会?
『ストーリーテリング ~よい聞き手になるための学習~』第12回 POStudy ?プロダクトオーナーシップ勉強会?
満徳 関
?
デザイン提案の参考资料
デザイン提案の参考资料
Tsutomu Sogitani
?
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
Yusuke Suzuki
?

More from Tadashi Saito (6)

From String#undump to String#unescape
From String#undump to String#unescape
Tadashi Saito
?
搁补迟颈辞苍补濒を(もうちょっと)最适化してみた
搁补迟颈辞苍补濒を(もうちょっと)最适化してみた
Tadashi Saito
?
搁补迟颈辞苍补濒を最适化してみた
搁补迟颈辞苍补濒を最适化してみた
Tadashi Saito
?
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
Tadashi Saito
?
詳解! Decimal
詳解! Decimal
Tadashi Saito
?
拡张ライブラリを作るとリア充
拡张ライブラリを作るとリア充
Tadashi Saito
?
From String#undump to String#unescape
From String#undump to String#unescape
Tadashi Saito
?
搁补迟颈辞苍补濒を(もうちょっと)最适化してみた
搁补迟颈辞苍补濒を(もうちょっと)最适化してみた
Tadashi Saito
?
搁补迟颈辞苍补濒を最适化してみた
搁补迟颈辞苍补濒を最适化してみた
Tadashi Saito
?
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
Tadashi Saito
?
拡张ライブラリを作るとリア充
拡张ライブラリを作るとリア充
Tadashi Saito
?
Ad

次世代数値演算 ライブラリ Decimal という再発明の意義