Spec-Zone.ru › OpenJDK 24

Интерфейс VectorSpecies<E>

Параметры типа:
E - упакованная версия ETYPE, тип элемента вектора
public interface VectorSpecies<E>
Интерфейс для управления всеми векторами с одинаковой комбинацией типа элемента (тип элемента) (ETYPE) и shape.
Примечание API:
Код пользователя не должен реализовывать этот интерфейс. В будущей версии этот тип может ограничить реализации членством в одном пакете.
Примечание реализации:
Строковое представление экземпляра этого интерфейса будет иметь вид "Species[ETYPE, VLENGTH, SHAPE]", где ETYPE - примитивный тип элемента, VLENGTH - количество элементов вектора, связанное с видом, а SHAPE - форма вектора, связанная с видом.

Объекты вида вектора могут храниться в локальных переменных и параметрах, а также в качестве static final констант, но хранение их в других полях Java или элементах массива, хотя и семантически допустимо, может повлечь за собой штрафные санкции по производительности.

Краткое описание методов

Модификатор и тип Метод Описание
Vector<E> broadcast(long e)
Возвращает вектор заданного вида, где все элементы канала установлены в примитивное значение e.
<F> VectorSpecies<F> check(Class<F> elementType)
Проверяет, что у этого вида есть указанный тип элемента, и возвращает этот вид без изменений.
long checkValue(long e)
Проверяет, что этот вид может представлять данное значение элемента, и возвращает значение без изменений.
int elementSize()
Возвращает размер канала в битах векторов этого вида.
static int elementSize(Class<?> elementType)
Возвращает размер в битах данного типа элемента вектора (ETYPE).
Class<E> elementType()
Возвращает примитивный тип элемента векторов этого вида.
boolean equals(Object obj)
Указывает, идентичен ли этот вид другому объекту.
Vector<E> fromArray(Object a, int offset)
Возвращает вектор этого вида, где элементы канала инициализируются из данного массива по указанному смещению.
Vector<E> fromMemorySegment(MemorySegment ms, long offset, ByteOrder bo)
Загружает вектор этого вида из сегмента памяти, начиная со смещения в сегменте памяти.
int hashCode()
Возвращает значение хэш-кода для вида, основанное на форме и типе элемента вектора.
VectorMask<E> indexInRange(int offset, int limit)
Возвращает маску этого вида, где установлены только каналы с индексом N, такие что откорректированный индекс N+offset находится в диапазоне [0..limit-1].
VectorMask<E> indexInRange(long offset, long limit)
Возвращает маску этого вида, где установлены только каналы с индексом N, такие что откорректированный индекс N+offset находится в диапазоне [0..limit-1].
VectorShuffle<E> iotaShuffle(int start, int step, boolean wrap)
Создаёт перестановку, используя исходные индексы, установленные в последовательные значения, начиная с start и шагом step.
int length()
Возвращает количество каналов в векторе этого вида.
VectorMask<E> loadMask(boolean[] bits, int offset)
Возвращает маску этого вида, где элементы канала инициализируются из данного массива по указанному смещению.
int loopBound(int length)
Функция управления циклом, которая возвращает наибольшее кратное VLENGTH, которое меньше или равно заданному значению length.
long loopBound(long length)
Функция управления циклом, которая возвращает наибольшее кратное VLENGTH, которое меньше или равно заданному значению length.
VectorMask<E> maskAll(boolean bit)
Возвращает тип маски вектора для этого вида, где каждый канал устанавливается или сбрасывается в соответствии с заданным одиночным булевым значением, которое транслируется во все каналы.
Class<? extends VectorMask<E>> maskType()
Возвращает тип маски вектора для этого вида.
static <E> VectorSpecies<E> of(Class<E> elementType, VectorShape shape)
Находит вид для типа элемента и формы.
static <E> VectorSpecies<E> ofLargestShape(Class<E> etype)
Находит наибольший вид вектора заданного типа элемента.
static <E> VectorSpecies<E> ofPreferred(Class<E> etype)
Находит вид, предпочтительный для текущей платформы, для данного типа элемента вектора.
int partLimit(VectorSpecies<?> outputSpecies, boolean lanewise)
Принимая во внимание этот вид и второй, сообщает о чистом расширении или сокращении (возможно, изменяющего размер преобразования переинтерпретации или lane-wise conversion от этого вида ко второму.
VectorShuffle<E> shuffleFromArray(int[] sourceIndexes, int offset)
Создает перестановку для этого вида из массива int, начиная со смещения.
VectorShuffle<E> shuffleFromOp(IntUnaryOperator fn)
Создает перестановку для этого вида из последовательных значений оператора, применённого к диапазону [0..VLENGTH-1].
VectorShuffle<E> shuffleFromValues(int... sourceIndexes)
Создает перестановку для этого вида из ряда исходных индексов.
String toString()
Возвращает строку вида "Species[ETYPE, VLENGTH, SHAPE]", где ETYPE - примитивный тип элемента, VLENGTH - количество элементов вектора, связанное с видом, а SHAPE - форма вектора, связанная с видом.
int vectorBitSize()
Возвращает общий размер вектора в битах для любого вектора этого вида.
int vectorByteSize()
Возвращает общий размер вектора в байтах для любого вектора этого вида.
VectorShape vectorShape()
Возвращает форму векторов, создаваемых этим видом.
Class<? extends Vector<E>> vectorType()
Возвращает тип вектора этого вида.
<F> VectorSpecies<F> withLanes(Class<F> newType)
Находит вид с заданным типом элемента и той же формой, что и этот вид.
VectorSpecies<E> withShape(VectorShape newShape)
Находит вид с заданной формой и тем же типом элемента, что и этот вид.
Vector<E> zero()
Возвращает вектор этого вида, где все элементы канала установлены в значение по умолчанию для примитивного типа, (ETYPE)0.

Подробное описание методов

elementType

Class<E> elementType()
Возвращает примитивный тип элемента векторов данного вида.
Возвращает:
примитивный тип элемента (ETYPE)
См. также:
  • Class.arrayType()

vectorType

Class<? extends Vector<E>> vectorType()
Возвращает тип вектора данного вида. Вектор относится к этому виду, если и только если он имеет соответствующий тип вектора.
Возвращает:
тип вектора данного вида

maskType

Class<? extends VectorMask<E>> maskType()
Возвращает тип маски вектора для данного вида.
Возвращает:
тип маски

elementSize

int elementSize()
Возвращает размер дорожки в битах векторов данного вида.
Возвращает:
размер элемента в битах

vectorShape

VectorShape vectorShape()
Возвращает форму векторов, созданных этим видом.
Возвращает:
форму векторов данного вида

length

int length()
Возвращает количество дорожек в векторе данного вида.
Примечание API:
Это также количество дорожек в маске или перемещении, связанных с вектором данного вида.
Возвращает:
количество дорожек вектора

vectorBitSize

int vectorBitSize()
Возвращает общий размер вектора в битах любого вектора данного вида. Это то же значение, что и this.vectorShape().vectorBitSize().
Примечание API:
Этот размер может отличаться от размера маски или перемещения этого вида в битах.
Возвращает:
общий размер вектора в битах

vectorByteSize

int vectorByteSize()
Возвращает общий размер вектора в байтах любого вектора данного вида. Это то же значение, что и this.vectorShape().vectorBitSize() / Byte.SIZE.
Примечание API:
Этот размер может отличаться от размера маски или перемещения этого вида в битах.
Возвращает:
общий размер вектора в байтах

loopBound

int loopBound(int length)
Функция управления циклом, которая возвращает наибольшее кратное VLENGTH, которое меньше или равно заданному значению length. Здесь VLENGTH — результат this.length(), а length интерпретируется как количество дорожек. Результирующее значение R удовлетворяет этому неравенству:
R <= length < R+VLENGTH
 

Конкретно, этот метод вычисляет length - floorMod(length, VLENGTH), где floorMod вычисляет остаток, округляя частное до минус бесконечности. Пока VLENGTH является степенью двойки, результат также равен length & ~(VLENGTH - 1).

Параметры:
length - входная длина
Возвращает:
наибольшее кратное длины вектора, не больше заданной длины
Исключения:
IllegalArgumentException - если length отрицательное и результат переполнит положительное значение
См. также:
  • Math.floorMod(int, int)

loopBound

long loopBound(long length)
Функция управления циклом, которая возвращает наибольшее кратное VLENGTH, которое меньше или равно заданному значению length. Здесь VLENGTH — результат this.length(), а length интерпретируется как количество дорожек. Результирующее значение R удовлетворяет этому неравенству:
R <= length < R+VLENGTH
 

Конкретно, этот метод вычисляет length - floorMod(length, VLENGTH), где floorMod вычисляет остаток, округляя частное до минус бесконечности. Пока VLENGTH является степенью двойки, результат также равен length & ~(VLENGTH - 1).

Параметры:
length - входная длина
Возвращает:
наибольшее кратное длины вектора, не больше заданной длины
Исключения:
IllegalArgumentException - если length отрицательное и результат переполнит положительное значение
С:
19
См. также:
  • Math.floorMod(long, int)

indexInRange

VectorMask<E> indexInRange(int offset, int limit)
Возвращает маску данного вида, где установлены только дорожки с индексом N, такие, что скорректированный индекс N+offset находится в диапазоне [0..limit-1].

Этот метод возвращает значение выражения maskAll(true).indexInRange(offset, limit)

Параметры:
offset - начальный индекс
limit - верхняя граница (исключительно) диапазона индексов
Возвращает:
маска с не установленным индексом вне диапазона
См. также:
  • VectorMask.indexInRange(int, int)

indexInRange

VectorMask<E> indexInRange(long offset, long limit)
Возвращает маску данного вида, где установлены только дорожки с индексом N, такие, что скорректированный индекс N+offset находится в диапазоне [0..limit-1].

Этот метод возвращает значение выражения maskAll(true).indexInRange(offset, limit)

Параметры:
offset - начальный индекс
limit - верхняя граница (исключительно) диапазона индексов
Возвращает:
маска с не установленным индексом вне диапазона
С:
19
См. также:
  • VectorMask.indexInRange(long, long)

check

<F> VectorSpecies<F> check(Class<F> elementType)
Проверяет, что у этого вида есть указанный тип элемента, и возвращает этот вид без изменений. Эффект похож на этот псевдокод: elementType == elementType() ? this : throw new ClassCastException().
Параметрические типы:
F - упакованный тип элемента требуемого типа дорожки
Параметры:
elementType - требуемый тип дорожки
Возвращает:
тот же вид
Исключения:
ClassCastException - если у вида неверный тип элемента
См. также:
  • Vector.check(Class)
  • Vector.check(VectorSpecies)

partLimit

int partLimit(VectorSpecies<?> outputSpecies, boolean lanewise)
Учитывая данный вид и второй вид, сообщает о чистом расширении или сжатии (потенциально) изменения формы переинтерпретации переинтерпретации или lane-wise conversion из этого вида во второй. Знак и величина возвращаемого значения зависят от разницы размеров предлагаемых входных и выходных форм, а также (необязательно, если lanewise равно true) и от разницы размеров предлагаемых входных и выходных строк.
  • Сначала определяется логический размер результата. Если lanewise равно false, этот размер равен размеру входного VSHAPE. Если lanewise равно true, логический размер результата равен произведению размера входного VLENGTH и размера выходного ETYPE.
  • Далее, логический размер результата сравнивается с размером предлагаемой выходной формы, чтобы увидеть, как он впишется.
  • Если логический результат точно помещается в выходную форму, возвращаемое значение равно нулю, что указывает на отсутствие чистого расширения или сжатия.
  • Если логический результат превышает выходную форму, возвращаемое значение равно отношению (больше единицы) логического размера результата к (меньшему) размеру выходной формы. Это отношение можно рассматривать как меру доли «утерянных битов входных данных», которые необходимо удалить из входных данных, чтобы результат поместился в выходной вектор. Это также предельное значение части, верхняя исключительная граница параметра part для метода, который преобразовывал бы входной вид во выходной вид.
  • Если логический результат помещается в выходную форму с избытком места, возвращаемое значение — отрицательное число, абсолютное значение которого — отношение (больше единицы) между размером выходной формы и (меньшим) логическим размером результата. Это отношение можно рассматривать как меру доли «дополнительных битов заполнения», которые необходимо добавить к логическому результату, чтобы заполнить выходной вектор. Это также предельное значение части, нижняя исключительная граница параметра part для метода, который преобразовывал бы входной вид во выходной вид.
Parameters:
outputSpecies - предлагаемый выходной вид
lanewise - учитывать ли размеры строк
Returns:
указание на изменение размера в виде знаковой дроби или нуля
See Also:
  • Vector.reinterpretShape(VectorSpecies,int)
  • Vector.convertShape(VectorOperators.Conversion,VectorSpecies,int)

withLanes

<F> VectorSpecies<F> withLanes(Class<F> newType)
Ищет вид с заданным типом элемента и такой же формой, как у этого вида. Возвращает то же значение, что и VectorSpecies.of(newType, this.vectorShape()).
Type Parameters:
F - упакованный тип элемента
Parameters:
newType - новый тип элемента
Returns:
вид для нового типа элемента и такой же формы
Throws:
IllegalArgumentException - если для данного сочетания типа элемента и формы такого вида нет или если заданный тип не является допустимым ETYPE
See Also:
  • withShape(VectorShape)
  • of(Class, VectorShape)

withShape

VectorSpecies<E> withShape(VectorShape newShape)
Ищет вид с заданной формой и тем же элементом, что и у этого вида. Возвращает то же значение, что и VectorSpecies.of(this.elementType(), newShape).
Parameters:
newShape - новая форма
Returns:
вид для того же типа элемента и новой формы
Throws:
IllegalArgumentException - если для данного сочетания типа элемента и формы такого вида нет
See Also:
  • withLanes(Class)
  • of(Class, VectorShape)

of

static <E> VectorSpecies<E> of(Class<E> elementType, VectorShape shape)
Ищет вид для типа элемента и формы.
Type Parameters:
E - упакованный тип элемента
Parameters:
elementType - тип элемента
shape - форма
Returns:
вид для заданного типа элемента и формы
Throws:
IllegalArgumentException - если для данного сочетания типа элемента и формы такого вида нет или если заданный тип не является допустимым ETYPE
See Also:
  • withLanes(Class)
  • withShape(VectorShape)

ofLargestShape

static <E> VectorSpecies<E> ofLargestShape(Class<E> etype)
Находит самый большой векторный вид заданного типа элемента.

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

Type Parameters:
E - упакованный тип элемента
Parameters:
etype - тип элемента
Returns:
предпочтительный вид для типа элемента
Throws:
IllegalArgumentException - если для типа элемента такого вида нет или если заданный тип не является допустимым ETYPE
See Also:
  • ofPreferred(Class)

ofPreferred

static <E> VectorSpecies<E> ofPreferred(Class<E> etype)
Находит вид, предпочтительный для текущей платформы, для заданного вещественного типа элемента. Это то же значение, что и VectorSpecies.of(etype, VectorShape.preferredShape()).

Этот вид выбирается платформой так, чтобы у него была самая большая возможная форма, которая поддерживает все типы элементов строк. Это имеет следующие последствия:

  • Различные предпочтительные виды для разных типов элементов будут иметь одинаковую основную форму.
  • Все векторы, созданные из предпочтительных видов, будут иметь общий размер в битах и емкость информации.
  • Переинтерпретация между векторами предпочтительных видов не будет усекать строки и не заполнять их значениями по умолчанию.
  • Для любого конкретного типа элемента платформа может предоставить более крупную форму вектора, которая (в качестве компромисса) не поддерживает все возможные типы элементов.
Implementation Note:
На многих платформах нет поведенческой разницы между ofLargestShape и ofPreferred, так как предпочтительная форма обычно также является наибольшей доступной формой для каждого типа строк. Поэтому большинство векторных алгоритмов будут работать хорошо без ofLargestShape.
Type Parameters:
E - упакованный тип элемента
Parameters:
etype - тип элемента
Returns:
предпочтительный вид для этого типа элемента
Throws:
IllegalArgumentException - если для типа элемента такого вида нет или если заданный тип не является допустимым ETYPE
See Also:
  • Vector.reinterpretShape(VectorSpecies,int)
  • VectorShape.preferredShape()
  • ofLargestShape(Class)

elementSize

static int elementSize(Class<?> elementType)
Возвращает размер в битах заданного типа вектора элемента (ETYPE). Тип элемента должен быть допустимым ETYPE, а не типом-обёрткой или другим типом объекта. Аргумент типа элемента должен быть зеркалом для допустимого векторного ETYPE, например, byte.class, int.class или double.class. Размер в битах такого типа является константой SIZE для соответствующего класса-обёртки, например, Byte.SIZE или Integer.SIZE или Double.SIZE.
Parameters:
elementType - тип вектора элемента (ETYPE)
Returns:
размер в битах elementType, например, 32 для int.class
Throws:
IllegalArgumentException - если заданный аргумент elementType не является допустимым вектором ETYPE

zero

Vector<E> zero()
Возвращает вектор данного вида, где все элементы строк установлены в значение по умолчанию для примитивного типа, (ETYPE)0. Эквивалентно IntVector.zero(this) или эквивалентному методу zero для типа вектора, соответствующего данному виду.
Returns:
вектор нулевого значения данного вида
See Also:
  • IntVector.zero(VectorSpecies)
  • FloatVector.zero(VectorSpecies)

fromArray

Vector<E> fromArray(Object a, int offset)
Возвращает вектор данного вида, где элементы дорожки инициализируются из заданного массива по заданному смещению. Массив должен быть правильного ETYPE. Эквивалентно IntVector.fromArray(this,a,offset) или эквивалентному методу fromArray для типа вектора, соответствующего этому виду.
Параметры:
a - массив ETYPE для данного вида
offset - индекс первого значения дорожки для загрузки
Возвращает:
вектор заданного вида, заполненный из массива
Исключения:
IndexOutOfBoundsException - если offset+N < 0 или offset+N >= a.length для любой дорожки N в векторе
См. также:
  • IntVector.fromArray(VectorSpecies,int[],int)
  • FloatVector.fromArray(VectorSpecies,float[],int)

fromMemorySegment

Vector<E> fromMemorySegment(MemorySegment ms, long offset, ByteOrder bo)
Загружает вектор данного вида из сегмента памяти, начиная со смещения в сегменте памяти. Байты объединяются в примитивные элементы дорожки в соответствии с указанным порядком байтов. Вектор упорядочивается по дорожкам в соответствии с порядком памяти.

Эквивалентно IntVector.fromMemorySegment(this,ms,offset,bo) для типа вектора, соответствующего этому виду.

Параметры:
ms - сегмент памяти
offset - смещение в сегменте памяти
bo - желаемый порядок байтов
Возвращает:
вектор данного вида, заполненный из сегмента памяти
Исключения:
IndexOutOfBoundsException - если offset+N*ESIZE < 0 или offset+(N+1)*ESIZE > a.length для любой дорожки N в векторе
С тех пор:
19
См. также:
  • IntVector.fromMemorySegment(VectorSpecies, java.lang.foreign.MemorySegment, long, java.nio.ByteOrder)
  • FloatVector.fromMemorySegment(VectorSpecies, java.lang.foreign.MemorySegment, long, java.nio.ByteOrder)

loadMask

VectorMask<E> loadMask(boolean[] bits, int offset)
Возвращает маску данного вида, где элементы дорожки инициализируются из заданного массива по заданному смещению. Эквивалентно VectorMask.fromArray(this,a,offset).
Параметры:
bits - массив boolean
offset - смещение в массиве
Возвращает:
маску, загруженную из массива boolean
Исключения:
IndexOutOfBoundsException - если offset+N < 0 или offset+N >= a.length для любой дорожки N в маске вектора
См. также:
  • VectorMask.fromArray(VectorSpecies,boolean[],int)

maskAll

VectorMask<E> maskAll(boolean bit)
Возвращает маску данного вида, где каждый элемент дорожки устанавливается или сбрасывается в зависимости от заданного одиночного булева значения, которое транслируется на все дорожки.
Параметры:
bit - заданный бит маски, который нужно дублировать
Возвращает:
маску, где каждый элемент дорожки устанавливается или сбрасывается в зависимости от заданного бита
См. также:
  • Vector.maskAll(boolean)

broadcast

Vector<E> broadcast(long e)
Возвращает вектор заданного вида, где все элементы дорожек устанавливаются в примитивное значение e.

Этот метод возвращает значение данного выражения: EVector.broadcast(this, (ETYPE)e), где EVector — это класс вектора, специфичный для ETYPE этого вида. Значение long должно быть точно представимо ETYPE, чтобы e==(long)(ETYPE)e.

Параметры:
e - значение для трансляции
Возвращает:
вектор, где все элементы дорожек устанавливаются в примитивное значение e
Исключения:
IllegalArgumentException - если заданное значение long не может быть представлено видом вектора ETYPE
См. также:
  • Vector.broadcast(long)
  • checkValue(long)

checkValue

long checkValue(long e)
Проверяет, может ли данный вид представить данное значение элемента, и возвращает значение без изменений. Значение long должно быть точно представимо ETYPE вида вектора, чтобы e==(long)(ETYPE)e. Эффект аналогичен этому псевдокоду: e == (long)(ETYPE)e ? e : throw new IllegalArgumentException().
Параметры:
e - значение для проверки
Возвращает:
e
Исключения:
IllegalArgumentException - если заданное значение long не может быть представлено видом вектора ETYPE
См. также:
  • broadcast(long)

shuffleFromValues

VectorShuffle<E> shuffleFromValues(int... sourceIndexes)
Создаёт перемешивание для данного вида из серии индексов источника.

Для каждой дорожки перемешивания, где N — это индекс дорожки перемешивания, значение индекса N проверяется на соответствие виду VLENGTH, и (в случае несоответствия) частично оборачивается в исключительный индекс в диапазоне [-VLENGTH..-1].

Параметры:
sourceIndexes - индексы источника, из которых будет извлекать перемешивание
Возвращает:
перемешивание, где индекс источника каждой дорожки устанавливается на заданное значение int, частично оборачиваемый, если исключительный
Исключения:
IndexOutOfBoundsException - если sourceIndexes.length != VLENGTH
См. также:
  • VectorShuffle.fromValues(VectorSpecies,int...)

shuffleFromArray

VectorShuffle<E> shuffleFromArray(int[] sourceIndexes, int offset)
Создаёт перемешивание для данного вида из массива int, начиная со смещения.

Для каждой дорожки перемешивания, где N — это индекс дорожки перемешивания, элемент массива с индексом i + N проверяется на соответствие виду VLENGTH, и (в случае несоответствия) частично оборачивается в исключительный индекс в диапазоне [-VLENGTH..-1].

Параметры:
sourceIndexes - индексы источника, из которых будет извлекать перемешивание
offset - смещение в массиве
Возвращает:
перемешивание, где индекс источника каждой дорожки устанавливается на заданное значение int, частично оборачиваемый, если исключительный
Исключения:
IndexOutOfBoundsException - если offset < 0 или offset > sourceIndexes.length - VLENGTH
См. также:
  • VectorShuffle.fromArray(VectorSpecies,int[],int)

shuffleFromOp

VectorShuffle<E> shuffleFromOp(IntUnaryOperator fn)
Создаёт перемешивание для этого вида из последовательных значений оператора, применённого к диапазону [0..VLENGTH-1].

Для каждой дорожки перемешивания, где N — это индекс дорожки перемешивания, значение индекса N проверяется на соответствие виду VLENGTH, и (в случае несоответствия) частично оборачивается в исключительный индекс в диапазоне [-VLENGTH..-1].

Следует позаботиться о том, чтобы значения VectorShuffle, полученные с помощью этого метода, потреблялись как константы, чтобы обеспечить оптимальную генерацию кода. Например, значения перемешивания можно хранить в static final полях или инвариантных по циклу локальных переменных.

Этот метод ведёт себя так, как будто перемешивание создаётся из массива сопоставленных индексов следующим образом:


   int[] a = new int[VLENGTH];
   for (int i = 0; i < a.length; i++) {
       a[i] = fn.applyAsInt(i);
   }
   return VectorShuffle.fromArray(this, a, 0);
 
Параметры:
fn - функция сопоставления индекса дорожки
Возвращает:
перемешивание сопоставленных индексов
См. также:
  • VectorShuffle.fromOp(VectorSpecies,IntUnaryOperator)

iotaShuffle

VectorShuffle<E> iotaShuffle(int start, int step, boolean wrap)
Создаёт перемешивание с использованием исходных индексов, установленных в последовательные значения, начиная с start и с шагом, заданным данным step.

Этот метод возвращает значение выражения VectorSpecies.shuffleFromOp(i -> R(start + i * step)), где R — это wrapIndex, если wrap истинно, и является тождественной функцией в противном случае.

Если wrap ложно, каждый индекс проверяется на соответствие спецификации VLENGTH, и (если не соответствует) частично оборачивается на исключительный индекс в диапазоне [-VLENGTH..-1]. В противном случае, если wrap истинно, каждый индекс также уменьшается, как если бы он проходил через wrapIndex, до допустимого диапазона [0..VLENGTH-1].

Примечание API:
Параметр wrap должен быть установлен на true, если недопустимые исходные индексы должны быть обернуты. В противном случае, установка на false позволяет проверять диапазон недопустимых исходных индексов с помощью последующих операций, таких как unary rearrange.
Параметры:
start - начальное значение последовательности исходных индексов, обычно 0
step - разность между смежными исходными индексами, обычно 1
wrap - оборачивать ли результирующие индексы по модулю VLENGTH
Возвращает:
перемешивание последовательных индексов регистров
См. также:
  • VectorShuffle.iota(VectorSpecies,int,int,boolean)

toString

String toString()
Возвращает строку формата "Species[ETYPE, VLENGTH, SHAPE]", где ETYPE — это примитивный тип регистров, VLENGTH — это количество регистров вектора, связанное со спецификацией, и SHAPE — это форма вектора, связанная со спецификацией.
Переопределяет:
toString в классе Object
Возвращает:
строку формата "Species[ETYPE, VLENGTH, SHAPE]"

equals

boolean equals(Object obj)
Указывает, идентична ли эта спецификация какому-либо другому объекту. Два вида идентичны только в том случае, если они имеют одинаковую форму и тот же тип элемента.
Переопределяет:
equals в классе Object
Параметры:
obj - эталонный объект, с которым нужно сравнить.
Возвращает:
является ли эта спецификация идентичной какому-либо другому объекту
См. также:
  • Object.hashCode()
  • HashMap

hashCode

int hashCode()
Возвращает значение хэш-кода для спецификации, основанное на форме вектора и типе элемента.
Переопределяет:
hashCode в классе Object
Возвращает:
значение хэш-кода для этой спецификации
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/jdk.incubator.vector/jdk/incubator/vector/VectorSpecies.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API