struct Int128

Defined in:

big/number.cr
int.cr
primitives.cr

Constant Summary

MAX = ~MIN
MIN = (new(1)) << 127

TODO eventually update to literals once UInt128 bit support is finished

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from struct Int

%(other : BigInt) : BigInt
%(other : Int)
%
, &*(other : BigInt) : BigInt &*, &**(exponent : Int) : self &**, &+(other : BigInt) : BigInt &+, &-(other : BigInt) : BigInt &-, *(other : BigInt) : BigInt
*(other : BigRational) : BigRational
*(other : BigDecimal) : BigDecimal
*
, **(exponent : Int) : self
**(exponent : Float) : Float64
**
, +(other : BigInt) : BigInt
+(other : BigRational) : BigRational
+(other : BigDecimal) : BigDecimal
+
, -(other : BigInt) : BigInt
-(other : BigFloat) : BigFloat
-(other : BigRational) : BigRational
-(other : BigDecimal) : BigDecimal
-
, /(other : BigFloat) : BigFloat
/(other : BigRational)
/
, //(other : Int::Primitive) //, <<(count : Int) <<, <=>(other : BigInt)
<=>(other : Int) : Int32
<=>(other : BigFloat)
<=>(other : BigRational)
<=>(other : BigDecimal)
<=>
, ===(char : Char) ===, >>(count : Int) >>, ~ ~, abs : self abs, bit(bit) bit, bit_length : Int32 bit_length, bits(range : Range) bits, bits_set?(mask) : Bool bits_set?, ceil : self ceil, chr : Char chr, day : Time::Span day, days : Time::Span days, digits(base = 10) : Array(Int32) digits, divisible_by?(num) : Bool divisible_by?, downto(to, &block : self -> ) : Nil
downto(to)
downto
, even? : Bool even?, fdiv(other) : Float64 fdiv, floor : self floor, gcd(other : self) : self
gcd(other : BigInt) : Int
gcd
, hour : Time::Span hour, hours : Time::Span hours, humanize_bytes(io : IO, precision : Int = 3, separator = '.', *, significant : Bool = true, unit_separator = nil, format : BinaryPrefixFormat = :IEC) : Nil
humanize_bytes(precision : Int = 3, separator = '.', *, significant : Bool = true, unit_separator = nil, format : BinaryPrefixFormat = :IEC) : String
humanize_bytes
, integer? : Bool integer?, lcm(other : BigInt) : BigInt
lcm(other : Int)
lcm
, microsecond : Time::Span microsecond, microseconds : Time::Span microseconds, millisecond : Time::Span millisecond, milliseconds : Time::Span milliseconds, minute : Time::Span minute, minutes : Time::Span minutes, modulo(other) modulo, month : Time::MonthSpan month, months : Time::MonthSpan months, nanosecond : Time::Span nanosecond, nanoseconds : Time::Span nanoseconds, odd? : Bool odd?, popcount popcount, pred : self pred, remainder(other : Int) remainder, round(mode : RoundingMode) : self round, round_away round_away, round_even : self round_even, second : Time::Span second, seconds : Time::Span seconds, succ : self succ, tdiv(other : Int) tdiv, times(&block : self -> ) : Nil
times
times
, to(to, &block : self -> ) : Nil
to(to)
to
, to_big_d : BigDecimal to_big_d, to_big_i : BigInt to_big_i, to_big_r : BigRational to_big_r, to_io(io : IO, format : IO::ByteFormat) : Nil to_io, to_json(json : JSON::Builder) : Nil to_json, to_json_object_key : String to_json_object_key, to_s(io : IO, base : Int = 10, *, precision : Int = 1, upcase : Bool = false) : Nil
to_s(base : Int = 10, *, precision : Int = 1, upcase : Bool = false) : String
to_s
, trailing_zeros_count trailing_zeros_count, trunc : self trunc, upto(to, &block : self -> ) : Nil
upto(to)
upto
, week : Time::Span week, weeks : Time::Span weeks, year : Time::MonthSpan year, years : Time::MonthSpan years

Constructor methods inherited from struct Int

from_io(io : IO, format : IO::ByteFormat) : self from_io

Instance methods inherited from module Comparable(BigDecimal)

<(other : T) : Bool <, <=(other : T) <=, <=>(other : T) <=>, ==(other : T) ==, >(other : T) : Bool >, >=(other : T) >=, clamp(min, max)
clamp(range : Range)
clamp

Instance methods inherited from module Comparable(BigRational)

<(other : T) : Bool <, <=(other : T) <=, <=>(other : T) <=>, ==(other : T) ==, >(other : T) : Bool >, >=(other : T) >=, clamp(min, max)
clamp(range : Range)
clamp

Instance methods inherited from module Comparable(BigInt)

<(other : T) : Bool <, <=(other : T) <=, <=>(other : T) <=>, ==(other : T) ==, >(other : T) : Bool >, >=(other : T) >=, clamp(min, max)
clamp(range : Range)
clamp

Instance methods inherited from struct Number

*(other : BigFloat) : BigFloat
*(other : Complex) : Complex
*
, +(other : BigFloat)
+(other : Complex) : Complex
+
+
, -(other : BigFloat)
-(other : Complex) : Complex
-
, /(other : BigFloat) : BigFloat
/(other : Complex) : Complex
/
, //(other) //, <=>(other) : Int32 | Nil <=>, ==(other : Complex) ==, abs : self abs, abs2 abs2, cis : Complex cis, divmod(number) divmod, format(io : IO, separator = '.', delimiter = ',', decimal_places : Int | Nil = nil, *, group : Int = 3, only_significant : Bool = false) : Nil
format(separator = '.', delimiter = ',', decimal_places : Int | Nil = nil, *, group : Int = 3, only_significant : Bool = false) : String
format
, hash(hasher) hash, humanize(io : IO, precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, prefixes : Indexable = SI_PREFIXES) : Nil
humanize(io : IO, precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, prefixes : Proc) : Nil
humanize(precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, prefixes = SI_PREFIXES) : String
humanize(io : IO, precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, &prefixes : Int32, Float64 -> Tuple(Int32, _) | Tuple(Int32, _, Bool)) : Nil
humanize(precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, &) : String
humanize(precision = 3, separator = '.', delimiter = ',', *, base = 10 ** 3, significant = true, unit_separator = nil, prefixes : Proc) : String
humanize
, i : Complex i, integer? : Bool integer?, negative? : Bool negative?, positive? : Bool positive?, round(mode : RoundingMode = :ties_even) : self
round(digits : Number, base = 10, *, mode : RoundingMode = :ties_even)
round
, sign : Int32 sign, significant(digits, base = 10) significant, step(*, to limit = nil, exclusive : Bool = false, &) : Nil
step(*, to limit = nil, exclusive : Bool = false)
step
, to_big_f : BigFloat to_big_f, to_c : Complex to_c, to_yaml(yaml : YAML::Nodes::Builder) : Nil to_yaml, zero? : Bool zero?

Constructor methods inherited from struct Number

additive_identity : self additive_identity, multiplicative_identity : self multiplicative_identity, zero : self zero

Class methods inherited from struct Number

si_prefix(magnitude : Int, prefixes = SI_PREFIXES) : Char | Nil si_prefix

Macros inherited from struct Number

[](*nums) [], slice(*nums, read_only = false) slice, static_array(*nums) static_array

Instance methods inherited from module Comparable(BigFloat)

<(other : T) : Bool <, <=(other : T) <=, <=>(other : T) <=>, ==(other : T) ==, >(other : T) : Bool >, >=(other : T) >=, clamp(min, max)
clamp(range : Range)
clamp

Instance methods inherited from module Steppable

step(*, to limit = nil, by step, exclusive : Bool = false, &) : Nil
step(*, to limit = nil, by step, exclusive : Bool = false)
step

Instance methods inherited from module Comparable(Number)

<(other : T) : Bool <, <=(other : T) <=, <=>(other : T) <=>, ==(other : T) ==, >(other : T) : Bool >, >=(other : T) >=, clamp(min, max)
clamp(range : Range)
clamp

Instance methods inherited from struct Value

==(other : JSON::Any)
==(other : YAML::Any)
==(other)
==
, dup dup

Instance methods inherited from class Object

! : Bool !, !=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)
===(other : YAML::Any)
===(other)
===
, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash
hash
, in?(collection : Object) : Bool
in?(*values : Object) : Bool
in?
, inspect(io : IO) : Nil
inspect : String
inspect
, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil!
not_nil!
, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String
to_json
, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil
to_pretty_json
, to_s(io : IO) : Nil
to_s : String
to_s
, to_yaml(io : IO) : Nil
to_yaml : String
to_yaml
, try(&) try, unsafe_as(type : T.class) forall T unsafe_as

Class methods inherited from class Object

from_json(string_or_io, root : String)
from_json(string_or_io)
from_json
, from_yaml(string_or_io : String | IO) from_yaml

Macros inherited from class Object

class_getter(*names, &block) class_getter, class_getter!(*names) class_getter!, class_getter?(*names, &block) class_getter?, class_property(*names, &block) class_property, class_property!(*names) class_property!, class_property?(*names, &block) class_property?, class_setter(*names) class_setter, def_clone def_clone, def_equals(*fields) def_equals, def_equals_and_hash(*fields) def_equals_and_hash, def_hash(*fields) def_hash, delegate(*methods, to object) delegate, forward_missing_to(delegate) forward_missing_to, getter(*names, &block) getter, getter!(*names) getter!, getter?(*names, &block) getter?, property(*names, &block) property, property!(*names) property!, property?(*names, &block) property?, setter(*names) setter

Constructor Detail

def self.new(value : String, base : Int = 10, whitespace : Bool = true, underscore : Bool = false, prefix : Bool = false, strict : Bool = true, leading_zero_is_octal : Bool = false) : self #

Returns an Int128 by invoking #to_i128 on value. See String#to_i for more details.

Int128.new "20"                        # => 20
Int128.new "  20  ", whitespace: false # raises ArgumentError: Invalid Int128: "  20  "

[View source]
def self.new(ctx : YAML::ParseContext, node : YAML::Nodes::Node) #

[View source]
def self.new(pull : JSON::PullParser) #

[View source]
def self.new(value) : self #

Returns an Int128 by invoking #to_i128 on value.


[View source]
def self.new!(value) : self #

Returns an Int128 by invoking #to_i128! on value.


[View source]

Class Method Detail

def self.from_json_object_key?(key : String) #

[View source]

Instance Method Detail

def !=(other : Int8) : Bool #

Returns true if self is not equal to other.


[View source]
def !=(other : Int16) : Bool #

Returns true if self is not equal to other.


[View source]
def !=(other : Int32) : Bool #

Returns true if self is not equal to other.


[View source]
def !=(other : Int64) : Bool #

Returns true if self is not equal to other.


[View source]
def !=(other : Int128) : Bool #

Returns true if self is not equal to other.


[View source]
def !=(other : UInt8) : Bool #

Returns true if self is not equal to other.


[View source]
def !=(other : UInt16) : Bool #

Returns true if self is not equal to other.


[View source]
def !=(other : UInt32) : Bool #

Returns true if self is not equal to other.


[View source]
def !=(other : UInt64) : Bool #

Returns true if self is not equal to other.


[View source]
def !=(other : UInt128) : Bool #

Returns true if self is not equal to other.


[View source]
def !=(other : Float32) : Bool #

Returns true if self is not equal to other or if self and other are unordered.


[View source]
def !=(other : Float64) : Bool #

Returns true if self is not equal to other or if self and other are unordered.


[View source]
def &(other : Int8) : self #

Returns the result of performing a bitwise AND of self's and other's bits.


[View source]
def &(other : Int16) : self #

Returns the result of performing a bitwise AND of self's and other's bits.


[View source]
def &(other : Int32) : self #

Returns the result of performing a bitwise AND of self's and other's bits.


[View source]
def &(other : Int64) : self #

Returns the result of performing a bitwise AND of self's and other's bits.


[View source]
def &(other : Int128) : self #

Returns the result of performing a bitwise AND of self's and other's bits.


[View source]
def &(other : UInt8) : self #

Returns the result of performing a bitwise AND of self's and other's bits.


[View source]
def &(other : UInt16) : self #

Returns the result of performing a bitwise AND of self's and other's bits.


[View source]
def &(other : UInt32) : self #

Returns the result of performing a bitwise AND of self's and other's bits.


[View source]
def &(other : UInt64) : self #

Returns the result of performing a bitwise AND of self's and other's bits.


[View source]
def &(other : UInt128) : self #

Returns the result of performing a bitwise AND of self's and other's bits.


[View source]
def &*(other : Int8) : self #

Returns the result of multiplying self and other. In case of overflow a wrapping is performed.


[View source]
def &*(other : Int16) : self #

Returns the result of multiplying self and other. In case of overflow a wrapping is performed.


[View source]
def &*(other : Int32) : self #

Returns the result of multiplying self and other. In case of overflow a wrapping is performed.


[View source]
def &*(other : Int64) : self #

Returns the result of multiplying self and other. In case of overflow a wrapping is performed.


[View source]
def &*(other : Int128) : self #

Returns the result of multiplying self and other. In case of overflow a wrapping is performed.


[View source]
def &*(other : UInt8) : self #

Returns the result of multiplying self and other. In case of overflow a wrapping is performed.


[View source]
def &*(other : UInt16) : self #

Returns the result of multiplying self and other. In case of overflow a wrapping is performed.


[View source]
def &*(other : UInt32) : self #

Returns the result of multiplying self and other. In case of overflow a wrapping is performed.


[View source]
def &*(other : UInt64) : self #

Returns the result of multiplying self and other. In case of overflow a wrapping is performed.


[View source]
def &*(other : UInt128) : self #

Returns the result of multiplying self and other. In case of overflow a wrapping is performed.


[View source]
def &+(other : Int8) : self #

Returns the result of adding self and other. In case of overflow a wrapping is performed.


[View source]
def &+(other : Int16) : self #

Returns the result of adding self and other. In case of overflow a wrapping is performed.


[View source]
def &+(other : Int32) : self #

Returns the result of adding self and other. In case of overflow a wrapping is performed.


[View source]
def &+(other : Int64) : self #

Returns the result of adding self and other. In case of overflow a wrapping is performed.


[View source]
def &+(other : Int128) : self #

Returns the result of adding self and other. In case of overflow a wrapping is performed.


[View source]
def &+(other : UInt8) : self #

Returns the result of adding self and other. In case of overflow a wrapping is performed.


[View source]
def &+(other : UInt16) : self #

Returns the result of adding self and other. In case of overflow a wrapping is performed.


[View source]
def &+(other : UInt32) : self #

Returns the result of adding self and other. In case of overflow a wrapping is performed.


[View source]
def &+(other : UInt64) : self #

Returns the result of adding self and other. In case of overflow a wrapping is performed.


[View source]
def &+(other : UInt128) : self #

Returns the result of adding self and other. In case of overflow a wrapping is performed.


[View source]
def &-(other : Int8) : self #

Returns the result of subtracting self and other. In case of overflow a wrapping is performed.


[View source]
def &-(other : Int16) : self #

Returns the result of subtracting self and other. In case of overflow a wrapping is performed.


[View source]
def &-(other : Int32) : self #

Returns the result of subtracting self and other. In case of overflow a wrapping is performed.


[View source]
def &-(other : Int64) : self #

Returns the result of subtracting self and other. In case of overflow a wrapping is performed.


[View source]
def &-(other : Int128) : self #

Returns the result of subtracting self and other. In case of overflow a wrapping is performed.


[View source]
def &-(other : UInt8) : self #

Returns the result of subtracting self and other. In case of overflow a wrapping is performed.


[View source]
def &-(other : UInt16) : self #

Returns the result of subtracting self and other. In case of overflow a wrapping is performed.


[View source]
def &-(other : UInt32) : self #

Returns the result of subtracting self and other. In case of overflow a wrapping is performed.


[View source]
def &-(other : UInt64) : self #

Returns the result of subtracting self and other. In case of overflow a wrapping is performed.


[View source]
def &-(other : UInt128) : self #

Returns the result of subtracting self and other. In case of overflow a wrapping is performed.


[View source]
def *(other : Int8) : self #

Returns the result of multiplying self and other. Raises OverflowError in case of overflow.


[View source]
def *(other : Int16) : self #

Returns the result of multiplying self and other. Raises OverflowError in case of overflow.


[View source]
def *(other : Int32) : self #

Returns the result of multiplying self and other. Raises OverflowError in case of overflow.


[View source]
def *(other : Int64) : self #

Returns the result of multiplying self and other. Raises OverflowError in case of overflow.


[View source]
def *(other : Int128) : self #

Returns the result of multiplying self and other. Raises OverflowError in case of overflow.


[View source]
def *(other : UInt8) : self #

Returns the result of multiplying self and other. Raises OverflowError in case of overflow.


[View source]
def *(other : UInt16) : self #

Returns the result of multiplying self and other. Raises OverflowError in case of overflow.


[View source]
def *(other : UInt32) : self #

Returns the result of multiplying self and other. Raises OverflowError in case of overflow.


[View source]
def *(other : UInt64) : self #

Returns the result of multiplying self and other. Raises OverflowError in case of overflow.


[View source]
def *(other : UInt128) : self #

Returns the result of multiplying self and other. Raises OverflowError in case of overflow.


[View source]
def *(other : Float32) : Float32 #

Returns the result of multiplying self and other.


[View source]
def *(other : Float64) : Float64 #

Returns the result of multiplying self and other.


[View source]
def +(other : Int8) : self #

Returns the result of adding self and other. Raises OverflowError in case of overflow.


[View source]
def +(other : Int16) : self #

Returns the result of adding self and other. Raises OverflowError in case of overflow.


[View source]
def +(other : Int32) : self #

Returns the result of adding self and other. Raises OverflowError in case of overflow.


[View source]
def +(other : Int64) : self #

Returns the result of adding self and other. Raises OverflowError in case of overflow.


[View source]
def +(other : Int128) : self #

Returns the result of adding self and other. Raises OverflowError in case of overflow.


[View source]
def +(other : UInt8) : self #

Returns the result of adding self and other. Raises OverflowError in case of overflow.


[View source]
def +(other : UInt16) : self #

Returns the result of adding self and other. Raises OverflowError in case of overflow.


[View source]
def +(other : UInt32) : self #

Returns the result of adding self and other. Raises OverflowError in case of overflow.


[View source]
def +(other : UInt64) : self #

Returns the result of adding self and other. Raises OverflowError in case of overflow.


[View source]
def +(other : UInt128) : self #

Returns the result of adding self and other. Raises OverflowError in case of overflow.


[View source]
def +(other : Float32) : Float32 #

Returns the result of adding self and other.


[View source]
def +(other : Float64) : Float64 #

Returns the result of adding self and other.


[View source]
def -(other : Int8) : self #

Returns the result of subtracting self and other. Raises OverflowError in case of overflow.


[View source]
def -(other : Int16) : self #

Returns the result of subtracting self and other. Raises OverflowError in case of overflow.


[View source]
def -(other : Int32) : self #

Returns the result of subtracting self and other. Raises OverflowError in case of overflow.


[View source]
def -(other : Int64) : self #

Returns the result of subtracting self and other. Raises OverflowError in case of overflow.


[View source]
def -(other : Int128) : self #

Returns the result of subtracting self and other. Raises OverflowError in case of overflow.


[View source]
def -(other : UInt8) : self #

Returns the result of subtracting self and other. Raises OverflowError in case of overflow.


[View source]
def -(other : UInt16) : self #

Returns the result of subtracting self and other. Raises OverflowError in case of overflow.


[View source]
def -(other : UInt32) : self #

Returns the result of subtracting self and other. Raises OverflowError in case of overflow.


[View source]
def -(other : UInt64) : self #

Returns the result of subtracting self and other. Raises OverflowError in case of overflow.


[View source]
def -(other : UInt128) : self #

Returns the result of subtracting self and other. Raises OverflowError in case of overflow.


[View source]
def -(other : Float32) : Float32 #

Returns the result of subtracting self and other.


[View source]
def -(other : Float64) : Float64 #

Returns the result of subtracting self and other.


[View source]
def - #

[View source]
def /(other : Int8) : Float64 #

[View source]
def /(other : UInt8) : Float64 #

[View source]
def /(other : Int16) : Float64 #

[View source]
def /(other : UInt16) : Float64 #

[View source]
def /(other : Int32) : Float64 #

[View source]
def /(other : UInt32) : Float64 #

[View source]
def /(other : Int64) : Float64 #

[View source]
def /(other : UInt64) : Float64 #

[View source]
def /(other : Int128) : Float64 #

[View source]
def /(other : UInt128) : Float64 #

[View source]
def /(other : Float32) : Float32 #

[View source]
def /(other : Float64) : Float64 #

[View source]
def /(other : BigInt) : BigFloat #

[View source]
def /(other : BigDecimal) : BigDecimal #

[View source]
def /(other : BigRational) : BigRational #

[View source]
def <(other : Int8) : Bool #

Returns true if self is less than other.


[View source]
def <(other : Int16) : Bool #

Returns true if self is less than other.


[View source]
def <(other : Int32) : Bool #

Returns true if self is less than other.


[View source]
def <(other : Int64) : Bool #

Returns true if self is less than other.


[View source]
def <(other : Int128) : Bool #

Returns true if self is less than other.


[View source]
def <(other : UInt8) : Bool #

Returns true if self is less than other.


[View source]
def <(other : UInt16) : Bool #

Returns true if self is less than other.


[View source]
def <(other : UInt32) : Bool #

Returns true if self is less than other.


[View source]
def <(other : UInt64) : Bool #

Returns true if self is less than other.


[View source]
def <(other : UInt128) : Bool #

Returns true if self is less than other.


[View source]
def <(other : Float32) : Bool #

Returns true if self is less than other.


[View source]
def <(other : Float64) : Bool #

Returns true if self is less than other.


[View source]
def <=(other : Int8) : Bool #

Returns true if self is less than or equal to other.


[View source]
def <=(other : Int16) : Bool #

Returns true if self is less than or equal to other.


[View source]
def <=(other : Int32) : Bool #

Returns true if self is less than or equal to other.


[View source]
def <=(other : Int64) : Bool #

Returns true if self is less than or equal to other.


[View source]
def <=(other : Int128) : Bool #

Returns true if self is less than or equal to other.


[View source]
def <=(other : UInt8) : Bool #

Returns true if self is less than or equal to other.


[View source]
def <=(other : UInt16) : Bool #

Returns true if self is less than or equal to other.


[View source]
def <=(other : UInt32) : Bool #

Returns true if self is less than or equal to other.


[View source]
def <=(other : UInt64) : Bool #

Returns true if self is less than or equal to other.


[View source]
def <=(other : UInt128) : Bool #

Returns true if self is less than or equal to other.


[View source]
def <=(other : Float32) : Bool #

Returns true if self is less than or equal to other.


[View source]
def <=(other : Float64) : Bool #

Returns true if self is less than or equal to other.


[View source]
def ==(other : Int8) : Bool #

Returns true if self is equal to other.


[View source]
def ==(other : Int16) : Bool #

Returns true if self is equal to other.


[View source]
def ==(other : Int32) : Bool #

Returns true if self is equal to other.


[View source]
def ==(other : Int64) : Bool #

Returns true if self is equal to other.


[View source]
def ==(other : Int128) : Bool #

Returns true if self is equal to other.


[View source]
def ==(other : UInt8) : Bool #

Returns true if self is equal to other.


[View source]
def ==(other : UInt16) : Bool #

Returns true if self is equal to other.


[View source]
def ==(other : UInt32) : Bool #

Returns true if self is equal to other.


[View source]
def ==(other : UInt64) : Bool #

Returns true if self is equal to other.


[View source]
def ==(other : UInt128) : Bool #

Returns true if self is equal to other.


[View source]
def ==(other : Float32) : Bool #

Returns true if self is equal to other.


[View source]
def ==(other : Float64) : Bool #

Returns true if self is equal to other.


[View source]
def >(other : Int8) : Bool #

Returns true if self is greater than other.


[View source]
def >(other : Int16) : Bool #

Returns true if self is greater than other.


[View source]
def >(other : Int32) : Bool #

Returns true if self is greater than other.


[View source]
def >(other : Int64) : Bool #

Returns true if self is greater than other.


[View source]
def >(other : Int128) : Bool #

Returns true if self is greater than other.


[View source]
def >(other : UInt8) : Bool #

Returns true if self is greater than other.


[View source]
def >(other : UInt16) : Bool #

Returns true if self is greater than other.


[View source]
def >(other : UInt32) : Bool #

Returns true if self is greater than other.


[View source]
def >(other : UInt64) : Bool #

Returns true if self is greater than other.


[View source]
def >(other : UInt128) : Bool #

Returns true if self is greater than other.


[View source]
def >(other : Float32) : Bool #

Returns true if self is greater than other.


[View source]
def >(other : Float64) : Bool #

Returns true if self is greater than other.


[View source]
def >=(other : Int8) : Bool #

Returns true if self is greater than or equal to other.


[View source]
def >=(other : Int16) : Bool #

Returns true if self is greater than or equal to other.


[View source]
def >=(other : Int32) : Bool #

Returns true if self is greater than or equal to other.


[View source]
def >=(other : Int64) : Bool #

Returns true if self is greater than or equal to other.


[View source]
def >=(other : Int128) : Bool #

Returns true if self is greater than or equal to other.


[View source]
def >=(other : UInt8) : Bool #

Returns true if self is greater than or equal to other.


[View source]
def >=(other : UInt16) : Bool #

Returns true if self is greater than or equal to other.


[View source]
def >=(other : UInt32) : Bool #

Returns true if self is greater than or equal to other.


[View source]
def >=(other : UInt64) : Bool #

Returns true if self is greater than or equal to other.


[View source]
def >=(other : UInt128) : Bool #

Returns true if self is greater than or equal to other.


[View source]
def >=(other : Float32) : Bool #

Returns true if self is greater than or equal to other.


[View source]
def >=(other : Float64) : Bool #

Returns true if self is greater than or equal to other.


[View source]
def ^(other : Int8) : self #

Returns the result of performing a bitwise XOR of self's and other's bits.


[View source]
def ^(other : Int16) : self #

Returns the result of performing a bitwise XOR of self's and other's bits.


[View source]
def ^(other : Int32) : self #

Returns the result of performing a bitwise XOR of self's and other's bits.


[View source]
def ^(other : Int64) : self #

Returns the result of performing a bitwise XOR of self's and other's bits.


[View source]
def ^(other : Int128) : self #

Returns the result of performing a bitwise XOR of self's and other's bits.


[View source]
def ^(other : UInt8) : self #

Returns the result of performing a bitwise XOR of self's and other's bits.


[View source]
def ^(other : UInt16) : self #

Returns the result of performing a bitwise XOR of self's and other's bits.


[View source]
def ^(other : UInt32) : self #

Returns the result of performing a bitwise XOR of self's and other's bits.


[View source]
def ^(other : UInt64) : self #

Returns the result of performing a bitwise XOR of self's and other's bits.


[View source]
def ^(other : UInt128) : self #

Returns the result of performing a bitwise XOR of self's and other's bits.


[View source]
def |(other : Int8) : self #

Returns the result of performing a bitwise OR of self's and other's bits.


[View source]
def |(other : Int16) : self #

Returns the result of performing a bitwise OR of self's and other's bits.


[View source]
def |(other : Int32) : self #

Returns the result of performing a bitwise OR of self's and other's bits.


[View source]
def |(other : Int64) : self #

Returns the result of performing a bitwise OR of self's and other's bits.


[View source]
def |(other : Int128) : self #

Returns the result of performing a bitwise OR of self's and other's bits.


[View source]
def |(other : UInt8) : self #

Returns the result of performing a bitwise OR of self's and other's bits.


[View source]
def |(other : UInt16) : self #

Returns the result of performing a bitwise OR of self's and other's bits.


[View source]
def |(other : UInt32) : self #

Returns the result of performing a bitwise OR of self's and other's bits.


[View source]
def |(other : UInt64) : self #

Returns the result of performing a bitwise OR of self's and other's bits.


[View source]
def |(other : UInt128) : self #

Returns the result of performing a bitwise OR of self's and other's bits.


[View source]
def abs_unsigned : UInt128 #

Returns the absolute value of self as an unsigned value of the same size.

Returns self if self is already an Int::Unsigned. This method never overflows.

1_u32.abs_unsigned      # => 1_u32
2_i32.abs_unsigned      # => 2_u32
-3_i8.abs_unsigned      # => 3_u8
Int16::MIN.abs_unsigned # => 32768_u16

[View source]
def bit_reverse : self #

Reverses the bits of self; the least significant bit becomes the most significant, and vice-versa.

0b01001011_u8.bit_reverse          # => 0b11010010
0b1100100001100111_u16.bit_reverse # => 0b1110011000010011

[View source]
def byte_swap : self #

Swaps the bytes of self; a little-endian value becomes a big-endian value, and vice-versa. The bit order within each byte is unchanged.

Has no effect on 8-bit integers.

0x123456789_i128.byte_swap # => -0x7698badcff0000000000000000000000

[View source]
def clone #

[View source]
def leading_zeros_count #

Returns the number of leading 0-bits.


[View source]
def neg_signed : self #

Returns the negative of self as a signed value of the same size.

Returns -self if self is already an Int::Signed. Raises OverflowError in case of overflow.

1_i32.neg_signed      # => -1_i32
2_u16.neg_signed      # => -2_i16
128_u8.neg_signed     # => -128_i8
Int16::MIN.neg_signed # raises OverflowError

[View source]
def popcount #
Description copied from struct Int

Counts 1-bits in the binary representation of this integer.

5.popcount   # => 2
-15.popcount # => 29

[View source]
def rotate_left(n : Int) : self #

Returns the bitwise rotation of self n times in the most significant bit's direction. Negative shifts are equivalent to #rotate_right(-n).

0b01001101_u8.rotate_left(3)  # => 0b01101010
0b01001101_u8.rotate_left(8)  # => 0b01001101
0b01001101_u8.rotate_left(11) # => 0b01101010
0b01001101_u8.rotate_left(-1) # => 0b10100110

[View source]
def rotate_right(n : Int) : self #

Returns the bitwise rotation of self n times in the least significant bit's direction. Negative shifts are equivalent to #rotate_left(-n).

0b01001101_u8.rotate_right(3)  # => 0b10101001
0b01001101_u8.rotate_right(8)  # => 0b01001101
0b01001101_u8.rotate_right(11) # => 0b10101001
0b01001101_u8.rotate_right(-1) # => 0b10011010

[View source]
def to_f : Float64 #

Returns self converted to Float64. Raises OverflowError in case of overflow.


[View source]
def to_f! : Float64 #

Returns self converted to Float64. In case of overflow a wrapping is performed.


[View source]
def to_f32 : Float32 #

Returns self converted to Float32. Raises OverflowError in case of overflow.


[View source]
def to_f32! : Float32 #

Returns self converted to Float32. In case of overflow a wrapping is performed.


[View source]
def to_f64 : Float64 #

Returns self converted to Float64. Raises OverflowError in case of overflow.


[View source]
def to_f64! : Float64 #

Returns self converted to Float64. In case of overflow a wrapping is performed.


[View source]
def to_i : Int32 #

Returns self converted to Int32. Raises OverflowError in case of overflow.


[View source]
def to_i! : Int32 #

Returns self converted to Int32. In case of overflow a wrapping is performed.


[View source]
def to_i128 : Int128 #

Returns self converted to Int128. Raises OverflowError in case of overflow.


[View source]
def to_i128! : Int128 #

Returns self converted to Int128. In case of overflow a wrapping is performed.


[View source]
def to_i16 : Int16 #

Returns self converted to Int16. Raises OverflowError in case of overflow.


[View source]
def to_i16! : Int16 #

Returns self converted to Int16. In case of overflow a wrapping is performed.


[View source]
def to_i32 : Int32 #

Returns self converted to Int32. Raises OverflowError in case of overflow.


[View source]
def to_i32! : Int32 #

Returns self converted to Int32. In case of overflow a wrapping is performed.


[View source]
def to_i64 : Int64 #

Returns self converted to Int64. Raises OverflowError in case of overflow.


[View source]
def to_i64! : Int64 #

Returns self converted to Int64. In case of overflow a wrapping is performed.


[View source]
def to_i8 : Int8 #

Returns self converted to Int8. Raises OverflowError in case of overflow.


[View source]
def to_i8! : Int8 #

Returns self converted to Int8. In case of overflow a wrapping is performed.


[View source]
def to_signed : Int128 #

Returns self converted to a signed value of the same size.

Simply returns self unmodified if self is already an Int::Signed. Raises OverflowError in case of overflow.

1_u32.to_signed # => 1_i32
2_u16.to_signed # => 2_i16
3_i64.to_signed # => 3_i64

[View source]
def to_signed! : Int128 #

Returns self converted to a signed value of the same size, wrapping in case of overflow.

Simply returns self unmodified if self is already an Int::Signed.

1_u32.to_signed!     # => 1_i32
65530_u16.to_signed! # => -6_i16
3_i64.to_signed!     # => 3_i64

[View source]
def to_u : UInt32 #

Returns self converted to UInt32. Raises OverflowError in case of overflow.


[View source]
def to_u! : UInt32 #

Returns self converted to UInt32. In case of overflow a wrapping is performed.


[View source]
def to_u128 : UInt128 #

Returns self converted to UInt128. Raises OverflowError in case of overflow.


[View source]
def to_u128! : UInt128 #

Returns self converted to UInt128. In case of overflow a wrapping is performed.


[View source]
def to_u16 : UInt16 #

Returns self converted to UInt16. Raises OverflowError in case of overflow.


[View source]
def to_u16! : UInt16 #

Returns self converted to UInt16. In case of overflow a wrapping is performed.


[View source]
def to_u32 : UInt32 #

Returns self converted to UInt32. Raises OverflowError in case of overflow.


[View source]
def to_u32! : UInt32 #

Returns self converted to UInt32. In case of overflow a wrapping is performed.


[View source]
def to_u64 : UInt64 #

Returns self converted to UInt64. Raises OverflowError in case of overflow.


[View source]
def to_u64! : UInt64 #

Returns self converted to UInt64. In case of overflow a wrapping is performed.


[View source]
def to_u8 : UInt8 #

Returns self converted to UInt8. Raises OverflowError in case of overflow.


[View source]
def to_u8! : UInt8 #

Returns self converted to UInt8. In case of overflow a wrapping is performed.


[View source]
def to_unsigned : UInt128 #

Returns self converted to an unsigned value of the same size.

Simply returns self unmodified if self is already an Int::Unsigned. Raises OverflowError in case of overflow.

1_i32.to_unsigned # => 1_u32
2_i16.to_unsigned # => 2_u16
3_u64.to_unsigned # => 3_u64

[View source]
def to_unsigned! : UInt128 #

Returns self converted to an unsigned value of the same size, wrapping in case of overflow.

Simply returns self unmodified if self is already an Int::Unsigned.

1_i32.to_unsigned!    # => 1_u32
(-6_i16).to_unsigned! # => 65530_u16
3_u64.to_unsigned!    # => 3_u64

[View source]
def trailing_zeros_count #
Description copied from struct Int

Returns the number of trailing 0-bits.


[View source]
def unsafe_chr : Char #

Returns a Char that has the unicode codepoint of self, without checking if this integer is in the range valid for chars (0..0xd7ff and 0xe000..0x10ffff). In case of overflow a wrapping is performed.

You should never use this method unless chr turns out to be a bottleneck.

97.unsafe_chr # => 'a'

[View source]