src/cplib/collections/segtree_beats_template

  Source   Edit

Types

F_rch[T] = object
  lb*: T
  ub*: T
  add*: T
  Source   Edit
RangeChminChmaxRangeSumMaxMin[T] = object
  seg*: SegmentTreeBeats[S_rch[T], F_rch[T]]
  inf*, zero*: T
  Source   Edit
S_rch[T] = object
  max*: T
  max2*: T
  min*: T
  min2*: T
  sum*: T
  sz*: int
  n_min*: int
  n_max*: int
  fail*: bool
  Source   Edit

Procs

proc `$`[T](self: var RangeChminChmaxRangeSumMaxMin[T]): string
  Source   Edit
proc `[]=`[T](self: var RangeChminChmaxRangeSumMaxMin[T]; p: Natural; val: T): S_rch[
    T]
  Source   Edit
proc `[]`[T](self: var RangeChminChmaxRangeSumMaxMin[T];
             p: Natural or HSlice[int, int]): S_rch[T]
  Source   Edit
proc add[T](self: var RangeChminChmaxRangeSumMaxMin[T];
            segment: HSlice[int, int]; val: T)
  Source   Edit
proc chmax[T](self: var RangeChminChmaxRangeSumMaxMin[T];
              segment: HSlice[int, int]; val: T)
  Source   Edit
proc chmin[T](self: var RangeChminChmaxRangeSumMaxMin[T];
              segment: HSlice[int, int]; val: T)
  Source   Edit
proc initRangeChminChmaxRangeSumMaxMin(v: seq[float]): RangeChminChmaxRangeSumMaxMin[
    float] {....raises: [Exception], tags: [RootEffect].}
  Source   Edit
proc initRangeChminChmaxRangeSumMaxMin(v: seq[int32]): RangeChminChmaxRangeSumMaxMin[
    int32] {....raises: [Exception], tags: [RootEffect].}
  Source   Edit
proc initRangeChminChmaxRangeSumMaxMin(v: seq[int]): RangeChminChmaxRangeSumMaxMin[
    int] {....raises: [Exception], tags: [RootEffect].}
  Source   Edit
proc initRangeChminChmaxRangeSumMaxMin[T](v: seq[T]; inf: T; zero: T): auto
  Source   Edit
proc len[T](self: var RangeChminChmaxRangeSumMaxMin[T]): int
  Source   Edit
proc update[T](self: var RangeChminChmaxRangeSumMaxMin[T]; p: Natural; val: T)
  Source   Edit