Re-enable spec/library for full CI runs.
[rbx.git] / kernel / platform / float.rb
blob779e0c0c3a4ea9b86695f324999a3deeb2f78a68
1 # depends on: ffi.rb
3 ##
4 # Platform specific behavior for Float.
6 class Platform::Float
7   attach_function 'float_radix',      :RADIX, [], :int
8   attach_function 'float_rounds',     :ROUNDS, [], :int
9   attach_function 'float_min',        :MIN, [], :double
10   attach_function 'float_max',        :MAX, [], :double
11   attach_function 'float_min_exp',    :MIN_EXP, [], :int
12   attach_function 'float_max_exp',    :MAX_EXP, [], :int
13   attach_function 'float_min_10_exp', :MIN_10_EXP, [], :int
14   attach_function 'float_max_10_exp', :MAX_10_EXP, [], :int
15   attach_function 'float_dig',        :DIG, [], :int
16   attach_function 'float_mant_dig',   :MANT_DIG, [], :int
17   attach_function 'float_epsilon',    :EPSILON, [], :double
19   attach_function 'frexp', [:double, :pointer], :double
20   attach_function 'ldexp', [:double, :int], :double
21   attach_function 'modf', [:double, :pointer], :double
23   def self.to_s_formatted(size, fmt, value)
24     s, p = Platform::POSIX.sprintf_f value, size, fmt
25     str = s.dup
26     p.free
27     return str
28   end
29 end