struct

AtCoder::ModInt1000000007

Inherits Struct / Value / Object

Implements atcoder::modint1000000007_i64.

alias Mint = AtCoder::ModInt1000000007
Mint.new(30_i64) // Mint.new(7_i64)

Constants

M = 1000000007_u32
M2 = 582344008_u32
MOD = 1000000007_i64
MR = 2226617417_u32
R = 2068349879_u32

Constructors

new(value : Int)
Source

Class methods

combination(n, k)
Source
factorial(n)
Source
permutation(n, k)
Source
raw(mgy : UInt32)

Initialize using montgomery representation

Source
repeated_combination(n, k)
Source
zero
Source

Instance methods

*(value : self)
Source
*(value)
Source
**(value)
Source
+(value : self)
Source
+(value)
Source
-(value : self)
Source
-(value)
Source
/(value : self)
Source
/(value)
Source
//(value)
Source
<(value)
Source
<<(value)
Source
<=(value)
Source
==(other : self)
Source
==(other)

Returns true if this struct is equal to other.

Both structs' instance vars are compared to each other. Thus, two structs are considered equal if each of their instance variables are equal. Subclasses should override this method to provide specific equality semantics.

struct Point
  def initialize(@x : Int32, @y : Int32)
  end
end

p1 = Point.new 1, 2
p2 = Point.new 1, 2
p3 = Point.new 3, 4

p1 == p2 # => true
p1 == p3 # => false
Source
>(value)
Source
>=(value)
Source
clone
Source
inspect(io : IO)

Appends this struct's name and instance variables names and values to the given IO.

struct Point
  def initialize(@x : Int32, @y : Int32)
  end
end

p1 = Point.new 1, 2
p1.to_s    # "Point(@x=1, @y=2)"
p1.inspect # "Point(@x=1, @y=2)"
Source
mgy
mgy=(v : UInt32)
Source
pow(value)
Source
pred
Source
reduce(b : UInt64) : UInt32
Source
sqrt
Source
succ
Source
to_i64
Source
to_s(io : IO)

Same as #inspect(io).

Source
value
Source
zero?
Source