Julia Core package

Coreはビルトイン(組込み)と見なされる全ての識別子を含む標準モジュールである。つまり、ライブラリではなく、Julia言語の一部である。これらの定義無しには何もできないため、全てのモジュールは暗黙的に「using Core」を含む。

Array

Array(配列)は、Julia言語のコレクションのひとつである。

Array
項目説明
順序性あり
要素の名前なし
値の重複
julia> x = [1, 2.0, "foo"]
3-element Array{Any,1}:
 1
 2.0
 "foo"

julia> typeof(x)
Array{Any,1}

julia> x[1]
1

julia> for i in x
         println(i)
       end
1
2.0
foo

Bool

Juliaにおける Core.Bool は、true (1) または false (0) を表すブール型である。

Float16

Juliaにおける Core.Float16 は、IEEE 754で規定されている半精度の浮動小数点数を表すデータ型である。

IEEE 754 half precision
ビット数
符号部 1 bit
指数部 5 bit
仮数部 10 bit

Float32

Juliaにおける Core.Float32 は、IEEE 754で規定されている単精度の浮動小数点数を表すデータ型である。

IEEE 754 single precision
ビット数
符号部 1 bit
指数部 8 bit
仮数部 23 bit

型変換関数を使ってデータ型を変換することができる。

julia> Float32(pi)
3.1415927f0

julia> Float64(pi)
3.141592653589793

julia> BigFloat(pi)
3.141592653589793238462643383279502884197169399375105820974944592307816406286198

Float64

Juliaにおける Core.Float64 は、IEEE 754で規定されている倍精度の浮動小数点数を表すデータ型である。

IEEE 754 double precision
ビット数
符号部 1 bit
指数部 11 bit
仮数部 52 bit

データ型を指定して計算する。

julia> (pi * 2)::Float64
6.283185307179586

Int8

Juliaにおける Core.Int8 は、8ビットの符号あり整数型である。最小値 -1×27 から最大値 27-1 までの整数を表すことができる。

ローカル変数のデータ型として Int8 を指定する例を次に示す。

local x::Int8

Int16

Juliaにおける Core.Int16 は、16ビットの符号あり整数型である。最小値 -1×215 から最大値 215-1 までの整数を表すことができる。

引数のデータ型として Int16 を指定する例を次に示す。

function f(x::Int16)
  x / 2
end

Int32

Juliaにおける Core.Int32 は、32ビットの符号あり整数型である。最小値 -1×231 から最大値 231-1 までの整数を表すことができる。

関数の戻り値のデータ型として Int32 を指定する例を次に示す。

function f(x)::Int32
  x * 2
end

Int64

Juliaにおける Core.Int64 は、64ビットの符号あり整数型である。最小値 -1×263 から最大値 263-1 までの整数を表すことができる。

Int128

Juliaにおける Core.Int128 は、128ビットの符号あり整数型である。最小値 -1×2127 から最大値 2127-1 までの整数を表すことができる。

UInt8

Juliaにおける Core.UInt8 は、8ビットの符号なし整数型である。最小値 0 から最大値 28-1 までの整数を表すことができる。

UInt16

Juliaにおける Core.UInt16 は、16ビットの符号なし整数型である。最小値 0 から最大値 216-1 までの整数を表すことができる。

UInt32

Juliaにおける Core.UInt32 は、32ビットの符号なし整数型である。最小値 0 から最大値 232-1 までの整数を表すことができる。

UInt64

Juliaにおける Core.UInt64 は、64ビットの符号なし整数型である。最小値 0 から最大値 264-1 までの整数を表すことができる。

UInt128

Juliaにおける Core.UInt128 は、64ビットの符号なし整数型である。最小値 0 から最大値 2128-1 までの整数を表すことができる。

Tuple

Tuple(タプル)は、Julia言語のコレクションのひとつである。

Tuple
項目説明
順序性あり
要素の名前なし
値の重複
julia> x = (1, 2.0, "foo")
(1, 2.0, "foo")

julia> typeof(x)
Tuple{Int64,Float64,String}

julia> x[1]
1

julia> for i in x
         println(i)
       end
1
2.0
foo

NamedTuple

NamedTuple(名前付きタプル)は、Julia言語のコレクションのひとつである。

NamedTuple
項目説明
順序性あり
要素の名前あり
値の重複
julia> x = (a = 1, b = 2.0, c = "foo")
(a = 1, b = 2.0, c = "foo")

julia> typeof(x)
NamedTuple{(:a, :b, :c),Tuple{Int64,Float64,String}}

julia> x[1]
1

julia> x.b
2.0

julia> x[:c]
"foo"

julia> for i in x
         println(i)
       end
1
2.0
foo

typeof()

Juliaのデータ型はtypeof関数で確認できる。

julia> typeof(1)
Int64

julia> typeof(1.0)
Float64

julia> typeof(true)
Bool

julia> typeof('A')
Char

julia>; typeof('あ')
Char

julia> typeof("ABC")
String

julia> typeof(r"AB*")
Regex

julia>

Float32()

Core.Float32() は数値のデータ型を Core.Float32 に変換するメソッドである。端数は絶対値が大きい方へ丸められる。

julia> Float32(1/3)
0.33333334f0

julia> Float32(-1/3)
-0.33333334f0

第2引数に RoundDown を指定することで、端数を小さい方へ切り下げることができる。

julia> Float32(1/3, RoundDown)
0.3333333f0

julia> Float32(-1/3, RoundDown)
-0.33333334f0

第2引数に RoundUp を指定することで、端数を大きい方へ切り上げることができる。

julia> Float32(1/3, RoundUp)
0.33333334f0

julia> Float32(-1/3, RoundUp)
-0.3333333f0

Float64()

型変換関数を使ってデータ型を変換することができる。

julia> Float64(pi)
3.141592653589793

julia> Float64(pi * 2)
6.283185307179586

julia>

参考文献

Institute of Electrical and Electronics Engineers (2022) 754-1985 - IEEE Standard for Binary Floating-Point Arithmetic

Institute of Electrical and Electronics Engineers (2022) 754-2019 - IEEE Standard for Floating-Point Arithmetic