struct AtCoder::ModInt1000000007

Overview

Implements atcoder::modint1000000007_i64.

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

Defined in:

mod_int.cr

Constant Summary

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

Constructors

Class Method Summary

Instance Method Summary

Constructor Detail

def self.new(value : Int) #

[View source]
def self.new #

[View source]

Class Method Detail

def self.combination(n, k) #

[View source]
def self.factorial(n) #

[View source]
def self.permutation(n, k) #

[View source]
def self.raw(mgy : UInt32) #

Initialize using montgomery representation


[View source]
def self.repeated_combination(n, k) #

[View source]
def self.zero #

[View source]

Instance Method Detail

def *(value : self) #

[View source]
def *(value) #

[View source]
def **(value) #

[View source]
def +(value : self) #

[View source]
def +(value) #

[View source]
def + #

[View source]
def -(value : self) #

[View source]
def -(value) #

[View source]
def - #

[View source]
def /(value : self) #

[View source]
def /(value) #

[View source]
def //(value) #

[View source]
def <(value) #

[View source]
def <<(value) #

[View source]
def <=(value) #

[View source]
def ==(other : self) #

[View source]
def ==(other) #
Description copied from struct Struct

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

[View source]
def >(value) #

[View source]
def >=(value) #

[View source]
def abs #

[View source]
def clone #

[View source]
def inspect(io : IO) #
Description copied from struct Struct

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)"

[View source]
def inv #

[View source]
def mgy : UInt32 #

def mgy=(v : UInt32) #

[View source]
def pow(value) #

[View source]
def pred #

[View source]
def reduce(b : UInt64) : UInt32 #

[View source]
def sqrt #

[View source]
def succ #

[View source]
def to_i64 #

[View source]
def to_s(io : IO) #
Description copied from struct Struct

Same as #inspect(io).


[View source]
def val #

[View source]
def value #

[View source]
def zero? #

[View source]