cartesianPower

Lazily computes the Cartesian power of r with itself for a number of repetitions D repeat. If the input is sorted, the product is in lexicographic order.

While generating a new item is in O(k) (amortized O(1)), the total number of elements is n^k.

  1. CartesianPower!T cartesianPower(size_t n, size_t repeat)
    @safe pure nothrow
    cartesianPower
    (
    T = uint
    )
    (
    size_t n
    ,
    size_t repeat = 1
    )
    if (
    isUnsigned!T &&
    T.sizeof <= size_t.sizeof
    )
  2. IndexedRoR!(CartesianPower!T, Range) cartesianPower(Range r, size_t repeat)
  3. CartesianPower!T makeCartesianPower(Allocator alloc, size_t n, size_t repeat)

Parameters

n size_t

number of elements (|r|)

repeat size_t

number of repetitions

Return Value

Type: CartesianPower!T

Forward range, which yields the product items

See Also

Meta