Skip to content

Instantly share code, notes, and snippets.

@sasaki-shigeo
Created September 15, 2012 10:11
Show Gist options
  • Save sasaki-shigeo/3727245 to your computer and use it in GitHub Desktop.
Save sasaki-shigeo/3727245 to your computer and use it in GitHub Desktop.
Numeric Constants in Scala (Scala の数値定数)
Int.MaxValue // Int の最大値
Int.MinValue // Int の最小値
Long.MaxValue // Long の最大値
Long.MinValue // Long の最小値
Byte.MaxValue // Byte の最大値
Byte.MinValue // Byte の最小値
Short.MaxValue // Short の最大値
Short.MinValue // Short の最小値
Float.MaxValue // Float の最大値
Float.MinValue // Float の最小値; -Float.MaxValue と同じ
Float.MinPositiveValue // 最小の正の値(非正規化数)
Float.PositiveInfinity // 正の無限大
Float.NegativeInfinity // 負の無限大
Float.NaN // 非数 (Not a Number)
Double.MaxValue // Double の最大値
Double.MinValue // Double の最小値; -Double.MaxValue と同じ
Double.MinPositiveValue // 最小の正の値(非正規化数)
Double.PositiveInfinity // 正の無限大
Double.NegativeInfinity // 負の無限大
Double.NaN // 非数 (Not a Number)
// 正の無限大を printf すると Infinity になるが,Scala のリテラルではないので,上記のように書かなければならない。
// 同様に非数を printf すると NaN になるが,プログラム上では上記のように書かなければならない。
math.Pi // 円周率 π
math.E // 自然対数の底 e
// 円周率は PI ではないので注意
// 次も可
java.lang.Math.PI // Java の標準パッケージで定義されている円周率
java.lang.Math.E // Java の標準パッケージで定義されている自然対数の底
// ULP: Unit in the Last Place -- 最後の桁の大きさ
// ulp(x) は浮動小数点数演算において x + ε > 0 を満たす最小の ε である。
// 絶対値が ε 未満の数値は浮動小数点演算において誤差として無視され,
// x に加えても値は変わらない。
// x == 1.0 のとき,いわゆるマシン・エプシロンになる
math.ulp(1.0f) // Float のマシン・エプシロン
math.ulp(1.0) // Double のマシン・エプシロン
// The minimal positive normal number -- 最小の正の正規化数
// IEEE 754 により次のように定められている。
// Float の場合 2 ^ (-126)
// Double の場合 2 ^ (-1022)
//
// 非正規化数の ULP と最小の正規化数の ULP は同じであることに注意
math.pow(2, -126).toFloat // IEEE754 単精度における 最小の正規化数
math.pow(2, -1022) // IEEE754 倍精度における 最小の正規化数
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment