summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-10-19 13:07:36 +0900
committernsfisis <nsfisis@gmail.com>2025-10-19 13:07:36 +0900
commit5201520a74d8fa49f77a588204d768d8157f73f7 (patch)
tree0349b1428d6f95a14393c89accb7a9a7c29b5b4e
parentfea67022a933d8c55b89c1c96bc3a62661c1fd6e (diff)
downloadphpstudy-180-slides-5201520a74d8fa49f77a588204d768d8157f73f7.tar.gz
phpstudy-180-slides-5201520a74d8fa49f77a588204d768d8157f73f7.tar.zst
phpstudy-180-slides-5201520a74d8fa49f77a588204d768d8157f73f7.zip
draft
-rw-r--r--slides.typ127
1 files changed, 125 insertions, 2 deletions
diff --git a/slides.typ b/slides.typ
index 3bf2fa9..ce77d60 100644
--- a/slides.typ
+++ b/slides.typ
@@ -20,8 +20,131 @@
#about-slide()
-Hoge
+数値の範囲を指定して検索する API
---
-Piyo
+半開区間
+[x, y)
+x を含み、y を含まない
+
+---
+
+[3, 7)
+3, 4, 5, 6
+
+---
+
+ちょうど 5
+[5, 6)
+
+---
+
+ちょうど n
+[n, n+1)
+
+---
+
+整数ならこれで OK
+
+---
+
+実数なら?
+
+---
+
+ちょうど 1
+[1, 2)
+1, 1.5, 1.7, 1.989
+
+---
+
+[1, 1より少しだけ大きい値)
+間に 1 しか入らない範囲
+
+---
+
+[1, p)
+間に 1 しか入らない範囲?
+
+---
+
+[1, p)
+間に 1 しか入らない範囲?
+(1+p)/2 が入る
+
+---
+
+無理 (実数では)
+
+---
+
+実数は無限精度ある
+
+---
+
+コンピュータ上の実数表現は
+有限精度
+
+---
+
+[1, p)
+
+---
+
+[1, p)
+コンピュータ上なら
+都合のいい p が存在する
+
+---
+
+64 bit の浮動小数点数の場合
+[1, p)
+p = 1.0000000000000002
+
+---
+
+1 = 0011111111110000000000000000000000000000000000000000000000000000
+p = 0011111111110000000000000000000000000000000000000000000000000001
+
+---
+
+浮動小数点数
+IEEE 754
+
+---
+
+IEEE 754
+nextUp
+nextDown
+
+---
+
+IEEE 754
+nextUp: 僅かに大きい値を返す
+nextDown: 僅かに小さい値を返す
+
+---
+
+ちょうど x
+[x, nextUp(x))
+
+---
+
+PHP には nextUp/nextDown が無い
+
+---
+
+無いので作りました
+nsfisis/php-next-after
+
+---
+
+```php
+use Nsfisis\NextAfter\NextAfter;
+
+function toExactFloatRange($from) {
+ $to = NextAfter::nextUp($from);
+ return [$from, $to];
+}
+```