src/cplib/convolution/semi_relaxed_convolution

  Source   Edit

Types

SemiRelaxedConvolution[T] = object
  fixed: seq[T]
  online, product: seq[T]
  Source   Edit

Procs

proc add[T](self: var SemiRelaxedConvolution[T]; value: T): T
オンライン側へ次の係数を追加し、その次数の積の係数を返す。   Source   Edit
proc append[T](self: var SemiRelaxedConvolution[T]; value: T): T
  Source   Edit
proc coefficients[T](self: SemiRelaxedConvolution[T]): seq[T]
現在までに確定した積の係数を返す。   Source   Edit
proc get[T](self: var SemiRelaxedConvolution[T]; value: T): T
  Source   Edit
proc initSemiRelaxedConvolution[T: BarrettModint or MontgomeryModint](
    fixed: seq[T]): SemiRelaxedConvolution[T]
左側をfixedに固定した逐次畳み込みを初期化する。 NTTが利用できる場合、N項追加する計算量はO(N log^2 N)となる。   Source   Edit
proc len[T](self: SemiRelaxedConvolution[T]): int
  Source   Edit