Submit Search
Upload
次世代数値演算 ライブラリ Decimal という再発明の意義
•
1 like
•
2,140 views
Tadashi Saito
Follow
rubykaigi2009 LT
Read less
Read more
Technology
Report
Share
Report
Share
1 of 98
Download now
Download to read offline
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
goo基盤を支えるOpenstack
goo基盤を支えるOpenstack
Tomoya Hashimoto
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
goo基盤を支えるOpenstack
goo基盤を支えるOpenstack
Tomoya Hashimoto
Service design changes organization
Service design changes organization
Naoka MISAWA
Yahoo! JAPANとRiak
Yahoo! JAPANとRiak
Yahoo!デベロッパーネットワーク
正規表現を覚えよう(中級編)
正規表現を覚えよう(中級編)
Kazuo Suzuki
『ストーリーテリング ~よい聞き手になるための学習~』第12回 POStudy 〜プロダクトオーナーシップ勉強会〜
『ストーリーテリング ~よい聞き手になるための学習~』第12回 POStudy 〜プロダクトオーナーシップ勉強会〜
満徳 関
デザイン提案の参考資料
デザイン提案の参考資料
Tsutomu Sogitani
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
Yusuke Suzuki
From String#undump to String#unescape
From String#undump to String#unescape
Tadashi Saito
Rationalを(もうちょっと)最適化してみた
Rationalを(もうちょっと)最適化してみた
Tadashi Saito
Rationalを最適化してみた
Rationalを最適化してみた
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
情報を表現するときのポイント
情報を表現するときのポイント
onozaty
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
Satoshi Makita
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
iwashiira2ctf
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
atsushi061452
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
kokinagano2
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
CRI Japan, Inc.
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
iPride Co., Ltd.
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
Sadaomi Nishi
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
KLab Inc. / Tech
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperleger Tokyo Meetup
More Related Content
Viewers also liked
Service design changes organization
Service design changes organization
Naoka MISAWA
Yahoo! JAPANとRiak
Yahoo! JAPANとRiak
Yahoo!デベロッパーネットワーク
正規表現を覚えよう(中級編)
正規表現を覚えよう(中級編)
Kazuo Suzuki
『ストーリーテリング ~よい聞き手になるための学習~』第12回 POStudy 〜プロダクトオーナーシップ勉強会〜
『ストーリーテリング ~よい聞き手になるための学習~』第12回 POStudy 〜プロダクトオーナーシップ勉強会〜
満徳 関
デザイン提案の参考資料
デザイン提案の参考資料
Tsutomu Sogitani
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
Yusuke Suzuki
Viewers also liked
(6)
Service design changes organization
Service design changes organization
Yahoo! JAPANとRiak
Yahoo! JAPANとRiak
正規表現を覚えよう(中級編)
正規表現を覚えよう(中級編)
『ストーリーテリング ~よい聞き手になるための学習~』第12回 POStudy 〜プロダクトオーナーシップ勉強会〜
『ストーリーテリング ~よい聞き手になるための学習~』第12回 POStudy 〜プロダクトオーナーシップ勉強会〜
デザイン提案の参考資料
デザイン提案の参考資料
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
More from Tadashi Saito
From String#undump to String#unescape
From String#undump to String#unescape
Tadashi Saito
Rationalを(もうちょっと)最適化してみた
Rationalを(もうちょっと)最適化してみた
Tadashi Saito
Rationalを最適化してみた
Rationalを最適化してみた
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 from Tadashi Saito
(6)
From String#undump to String#unescape
From String#undump to String#unescape
Rationalを(もうちょっと)最適化してみた
Rationalを(もうちょっと)最適化してみた
Rationalを最適化してみた
Rationalを最適化してみた
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
Ruby本から読み解くRuby考古学 - Ruby Archaeology from the Ruby Book
詳解! Decimal
詳解! Decimal
拡張ライブラリを作るとリア充
拡張ライブラリを作るとリア充
Recently uploaded
情報を表現するときのポイント
情報を表現するときのポイント
onozaty
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
Satoshi Makita
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
iwashiira2ctf
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
atsushi061452
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
kokinagano2
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
CRI Japan, Inc.
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
iPride Co., Ltd.
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
Sadaomi Nishi
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
KLab Inc. / Tech
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperleger Tokyo Meetup
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
Akihiro Kadohata
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
瑛一 西口
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
CRI Japan, Inc.
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
Takayuki Nakayama
Recently uploaded
(14)
情報を表現するときのポイント
情報を表現するときのポイント
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
次世代数値演算 ライブラリ Decimal という再発明の意義
1.
matzり、終了!
2.
次世代数値演算
ライブラリ Decimal という再発明の意義 筑波大学 斎藤 匡
3.
「Ruby逆引きレシピ」
by Ruby札幌
4.
「小数の計算」
5.
拙作ライブラリ Decimalが載っ ております
6.
目の前のジュ ンク堂書店で 売っています
7.
「Ruby逆引きレシピ」 by
Ruby札幌
8.
!買ってね!
9.
Decimal
10.
Decimal??
11.
「任意精度 小数演算 ライブラリ」
12.
Floatより正確 な小数の計算
13.
でも
14.
今日、俺は宣伝し に来たんじゃない
(建前)
15.
前提
16.
ソフトウェア
17.
ウェアソフトウェアソ フトウェアソフトウェ アソフトウェアソフト ウェアソフトウェアソ フトウェアソフトウェ アソフトウェアソフト ウェアソフトウェアソ フトウェアソフトウェ
18.
コモディティ
19.
みんな「再発明」
20.
より良い「再発 明」のしかた
21.
Decimalは「具 体例」の一つ
22.
一般的な「定 理」を探りたい ↑目的
(建前)
23.
Decimal??
(2)
24.
標準添付 「BigDecimal」 を作り直した感 じの何か
25.
BigDecimalの
再発明
26.
“Better BigDecimal”
↓ Decimal (ヲレヲレ)
27.
何故?
28.
二点
29.
実装がダサい
30.
設計がダサい
31.
133,553
vs 38,649
32.
(1)
33.
実装 について。
34.
BigDecimal: 133,553 bytes
vs Decimal: 38,649 bytes
35.
実装量の違い
36.
約 3.5 倍 コンパクト!!
37.
何故?
38.
再利用!
39.
(原理はじめ)
40.
そもそも
41.
小数は 整数の組 で表せる
42.
3.14
43.
(314, 2)
44.
「314」の 「下から2桁」 に小数点
45.
3.14159265358979
46.
(314159265358979, 14)
47.
(大きい整数, 小さい整数)
48.
小数の計算 ≒ 整数の計算
49.
(原理ここまで)
50.
小さな整数
51.
問題無し
52.
大きな整数
53.
がんばる必要
54.
BigDecimalは どうしてる?
55.
自前!
56.
133,553 – 38,649
= 94,904 ←ココ!
57.
Decimalは?
58.
大きな整数
↓ Bignum
59.
他人の褌!
60.
副作用
61.
安定・高速
62.
いいことばっか
63.
定理1 再利用重要
64.
設計について
65.
x.sqrt
66.
BigDecimalで
平方根
67.
普通 sqrt(x) だろjk
68.
BigDecimal(”1.1”).to_s
69.
#=> 0.11E1
70.
“1.1” じゃない
の?
71.
Rails (ActiveSupport)
72.
“1.1” になるよう上書き
73.
違和感
74.
=
75.
使い辛さ
76.
Decimalでは
77.
sqrt(x) # 予定 x.to_s
# => “1.1”
78.
自然
79.
脳の互換性重要
80.
定理2 慣習重要
81.
そのうえで
82.
再発明が受け入れ られるには
83.
定理3 シンプル
84.
定理4 速い
85.
必要
86.
シンプル
87.
BigDecimal.instance_methods(false).size
vs Decimal.instance_methods(false).size
88.
50 vs 37
89.
作る方も 使う方も 楽
90.
スピード
91.
ほとんどのケース
で 数割〜数十倍以上
92.
Decimalが高速
93.
ということで
94.
再利用 慣習 シンプル 速度
95.
Decimalは 「再発明」として 十分な価値をもった
96.
再利用 慣習 シンプル 速度
97.
Happy reinvention!
98.
Decimal プロジェクト歌
Download now