Коллекция

extension Collection
extension Collection where Element: Collatable
  • Возвращает представление этой коллекции с переупорядочением элементов таким образом, чтобы элемент в заданной позиции оказался первым.

    Подпоследовательность коллекции до i сдвигается после подпоследовательности, начинающейся с i . В остальном порядок элементов внутри каждого раздела не изменяется.

    let a = [10, 20, 30, 40, 50, 60, 70]
    let r = a.rotated(shiftingToStart: 3)
    // r.elementsEqual([40, 50, 60, 70, 10, 20, 30])
    

    Декларация

    func rotated(shiftingToStart i: Index) -> RotatedCollection<Self>

    Параметры

    i

    Позиция в коллекции, которая должна быть первой в результате. i должен быть действительным индексом коллекции.

    Возвращаемое значение

    Повернутый вид элементов этой коллекции, при котором элемент i находится первым.

  • Декларация

    func stablyPartitioned(
      isSuffixElement p: (Element) -> Bool
    ) -> [Element]
  • Возвращает индекс первого элемента коллекции, соответствующего предикату.

    Коллекция уже должна быть секционирована в соответствии с предикатом, как если бы self.partition(by: predicate) уже был вызван.

    • Эффективность: не более log(N) вызовов predicate , где N — длина self . Максимум операций смещения индекса log(N), если self соответствует RandomAccessCollection ; не более N таких операций в противном случае.

    Декларация

    func partitionPoint(
      where predicate: (Element) throws -> Bool
    ) rethrows -> Index
  • Возвращает self.map(transform) , вычисляемый параллельно на фрагментах self размера minBatchSize или minBatchSize + 1 .

    Требует

    transform безопасно вызывать из нескольких потоков.

    Декларация

    func concurrentMap<B>(
      minBatchSize: Int = 1,
      _ transform: (Element) -> B
    ) -> [B]
  • Возвращает коллекцию элементов self в позициях и порядке, указанных при selection , без чтения элементов ни одной из коллекций.

    Сложность

    О(1)

    Декларация

    public func sampled<Selection: Collection>(at selection: Selection)
      -> Sampling<Self, Selection>
  • Возвращает самые длинные непересекающиеся фрагменты self , начиная с первого элемента, с максимальной длиной batchSize .

    Декларация

    public func inBatches(of batchSize: Int) -> Slices<Self>
  • Возвращает n ю позицию в self .

    Декларация

    func index(atOffset n: Int) -> Index
Доступно, если `Element`: `Colatable`
  • Результат сопоставления элементов self .

    Декларация

    public var collated: Element { get }
  • Возвращает элементы self , дополненные до максимальной формы с помощью padValue и сопоставленные.

    Декларация

    public func paddedAndCollated<Scalar: Numeric>(
      with padValue: Scalar, atStart: Bool = false
    ) -> Element
    where Element == Tensor<Scalar>

    Параметры

    atStart

    добавляет отступы в начале, если это true , и в конце в противном случае. Значение по умолчанию false .

,
extension Collection
extension Collection where Element: Collatable
  • Возвращает представление этой коллекции с переупорядочением элементов таким образом, чтобы элемент в заданной позиции оказался первым.

    Подпоследовательность коллекции до i сдвигается после подпоследовательности, начинающейся с i . В остальном порядок элементов внутри каждого раздела не изменяется.

    let a = [10, 20, 30, 40, 50, 60, 70]
    let r = a.rotated(shiftingToStart: 3)
    // r.elementsEqual([40, 50, 60, 70, 10, 20, 30])
    

    Декларация

    func rotated(shiftingToStart i: Index) -> RotatedCollection<Self>

    Параметры

    i

    Позиция в коллекции, которая должна быть первой в результате. i должен быть действительным индексом коллекции.

    Возвращаемое значение

    Повернутый вид элементов этой коллекции, при котором элемент i находится первым.

  • Декларация

    func stablyPartitioned(
      isSuffixElement p: (Element) -> Bool
    ) -> [Element]
  • Возвращает индекс первого элемента коллекции, соответствующего предикату.

    Коллекция уже должна быть секционирована в соответствии с предикатом, как если бы self.partition(by: predicate) уже был вызван.

    • Эффективность: не более log(N) вызовов predicate , где N — длина self . Максимум операций смещения индекса log(N), если self соответствует RandomAccessCollection ; не более N таких операций в противном случае.

    Декларация

    func partitionPoint(
      where predicate: (Element) throws -> Bool
    ) rethrows -> Index
  • Возвращает self.map(transform) , вычисляемый параллельно на фрагментах self размера minBatchSize или minBatchSize + 1 .

    Требует

    transform безопасно вызывать из нескольких потоков.

    Декларация

    func concurrentMap<B>(
      minBatchSize: Int = 1,
      _ transform: (Element) -> B
    ) -> [B]
  • Возвращает коллекцию элементов self в позициях и порядке, указанных при selection , без чтения элементов ни одной из коллекций.

    Сложность

    О(1)

    Декларация

    public func sampled<Selection: Collection>(at selection: Selection)
      -> Sampling<Self, Selection>
  • Возвращает самые длинные непересекающиеся фрагменты self , начиная с первого элемента, с максимальной длиной batchSize .

    Декларация

    public func inBatches(of batchSize: Int) -> Slices<Self>
  • Возвращает n ю позицию в self .

    Декларация

    func index(atOffset n: Int) -> Index
Доступно, если `Element`: `Colatable`
  • Результат сопоставления элементов self .

    Декларация

    public var collated: Element { get }
  • Возвращает элементы self , дополненные до максимальной формы с помощью padValue и сопоставленные.

    Декларация

    public func paddedAndCollated<Scalar: Numeric>(
      with padValue: Scalar, atStart: Bool = false
    ) -> Element
    where Element == Tensor<Scalar>

    Параметры

    atStart

    добавляет отступы в начале, если это true , и в конце в противном случае. Значение по умолчанию false .