Spec-Zone.ru › OpenJDK 21

Класс ShortVector

java.lang.Object
jdk.incubator.vector.Vector<Short>
jdk.incubator.vector.ShortVector
public abstract class ShortVector extends Vector<Short>
ShortVector опирается на предварительные функции платформы Java:
  • ShortVector ссылается на один или несколько предварительных API: MemorySegment.
Программы могут использовать ShortVector только при включенных предварительных функциях.
Предварительные функции могут быть удалены в будущей версии или обновлены до постоянных функций платформы Java.
Специализированный Vector, представляющий упорядоченную неизменяемую последовательность значений short.

Краткое описание полей

Модификатор и тип Поле Описание
static final VectorSpecies<Short> SPECIES_128
Вид, представляющий ShortVector размером VectorShape.S_128_BIT.
static final VectorSpecies<Short> SPECIES_256
Вид, представляющий ShortVector размером VectorShape.S_256_BIT.
static final VectorSpecies<Short> SPECIES_512
Вид, представляющий ShortVector размером VectorShape.S_512_BIT.
static final VectorSpecies<Short> SPECIES_64
Вид, представляющий ShortVector размером VectorShape.S_64_BIT.
static final VectorSpecies<Short> SPECIES_MAX
Вид, представляющий ShortVector размером VectorShape.S_Max_BIT.
static final VectorSpecies<Short> SPECIES_PREFERRED
Предпочитаемый вид для ShortVector.

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

Модификатор и тип Метод Описание
final ShortVector abs()
Возвращает абсолютное значение этого вектора.
final ShortVector add(short e)
Добавляет этот вектор к трансляции входного скаляра.
final ShortVector add(short e, VectorMask<Short> m)
Добавляет этот вектор к трансляции входного скаляра, выбирая элементы ленты, управляемые маской.
final ShortVector add(Vector<Short> v)
Добавляет этот вектор ко второму входному вектору.
final ShortVector add(Vector<Short> v, VectorMask<Short> m)
Добавляет этот вектор ко второму входному вектору, выбирая ленты под управлением маски.
abstract ShortVector addIndex(int scale)
Добавляет ленты этого вектора к их соответствующим номерам ленты, масштабируя их заданной константой.
final ShortVector and(short e)
Вычисляет побитовое логическое умножение (&) этого вектора и скаляра.
final ShortVector and(Vector<Short> v)
Вычисляет побитовое логическое умножение (&) этого вектора и второго входного вектора.
final ShortVector bitwiseBlend(short bits, short mask)
Комбинирует биты вектора и скаляра под управлением другого скаляра, который предоставляет биты маски.
final ShortVector bitwiseBlend(short bits, Vector<Short> mask)
Комбинирует биты вектора и скаляра под управлением другого вектора, который предоставляет биты маски.
final ShortVector bitwiseBlend(Vector<Short> bits, short mask)
Комбинирует биты двух векторов под управлением скаляра, который предоставляет биты маски.
final ShortVector bitwiseBlend(Vector<Short> bits, Vector<Short> mask)
Комбинирует биты двух векторов под управлением третьего, который предоставляет биты маски.
final ShortVector blend(long e, VectorMask<Short> m)
Заменяет выбранные ленты этого вектора значением скаляра под управлением маски.
final ShortVector blend(short e, VectorMask<Short> m)
Заменяет выбранные ленты этого вектора значением скаляра под управлением маски.
abstract ShortVector blend(Vector<Short> v, VectorMask<Short> m)
Заменяет выбранные ленты этого вектора соответствующими лентами из второго входного вектора под управлением маски.
abstract ShortVector broadcast(long e)
Возвращает вектор того же типа, что и этот, где все элементы ленты установлены в примитивное значение e.
abstract ShortVector broadcast(short e)
Возвращает вектор того же типа, что и этот, где все элементы ленты установлены в примитивное значение e.
static ShortVector broadcast(VectorSpecies<Short> species, long e)
Возвращает вектор заданного типа, где все элементы ленты установлены в примитивное значение e.
static ShortVector broadcast(VectorSpecies<Short> species, short e)
Возвращает вектор заданного типа, где все элементы ленты установлены в примитивное значение e.
final <F> Vector<F> castShape(VectorSpecies<F> toSpecies, int part)
Удобный метод для преобразования вектора из одного типа ленты в другой, изменяя форму по мере необходимости при изменении размеров лент.
final <F> Vector<F> check(Class<F> elementType)
Проверяет, что у этого вектора заданный тип элемента, и возвращает этот вектор без изменений.
final <F> Vector<F> check(VectorSpecies<F> species)
Проверяет, что у этого вектора заданный тип, и возвращает этот вектор без изменений.
abstract VectorMask<Short> compare(VectorOperators.Comparison op, long e)
Тестирует этот вектор, сравнивая его со входным скаляром, в соответствии с заданной операцией сравнения.
final VectorMask<Short> compare(VectorOperators.Comparison op, long e, VectorMask<Short> m)
Тестирует этот вектор, сравнивая его со входным скаляром, в соответствии с заданной операцией сравнения, в лентах, выбранных маской.
abstract VectorMask<Short> compare(VectorOperators.Comparison op, short e)
Тестирует этот вектор, сравнивая его со входным скаляром, в соответствии с заданной операцией сравнения.
final VectorMask<Short> compare(VectorOperators.Comparison op, short e, VectorMask<Short> m)
Тестирует этот вектор, сравнивая его со входным скаляром, в соответствии с заданной операцией сравнения, в лентах, выбранных маской.
abstract VectorMask<Short> compare(VectorOperators.Comparison op, Vector<Short> v)
Тестирует этот вектор, сравнивая его с другим входным вектором, в соответствии с заданной операцией сравнения.
abstract ShortVector compress(VectorMask<Short> m)
Сжимает элементы ленты этого вектора, выбирая ленты под управлением определенной маски.
final <F> Vector<F> convert(VectorOperators.Conversion<Short,F> conv, int part)
Преобразует этот вектор в вектор той же формы и нового типа элемента, преобразуя значения лент из текущего ETYPE в новый тип ленты (называемый FTYPE здесь) в соответствии с указанным преобразованием.
abstract <F> Vector<F> convertShape(VectorOperators.Conversion<Short,F> conv, VectorSpecies<F> rsp, int part)
Преобразует этот вектор в вектор заданного типа, формы и типа элемента, преобразуя значения лент из текущего ETYPE в новый тип ленты (называемый FTYPE здесь) в соответствии с указанным преобразованием.
final ShortVector div(short e)
Делит этот вектор на трансляцию входного скаляра.
final ShortVector div(short e, VectorMask<Short> m)
Делит этот вектор на трансляцию входного скаляра, выбирая элементы ленты, управляемые маской.
final ShortVector div(Vector<Short> v)
Делит этот вектор на второй входной вектор.
final ShortVector div(Vector<Short> v, VectorMask<Short> m)
Делит этот вектор на второй входной вектор под управлением маски.
final VectorMask<Short> eq(short e)
Проверяет, равен ли этот вектор входному скаляру.
final VectorMask<Short> eq(Vector<Short> v)
Проверяет, равен ли этот вектор другому входному вектору.
final boolean equals(Object obj)
Указывает, идентичен ли этот вектор какому-либо другому объекту.
abstract ShortVector expand(VectorMask<Short> m)
Расширяет элементы ленты этого вектора под управлением определенной маски.
static ShortVector fromArray(VectorSpecies<Short> species, short[] a, int offset)
Загружает вектор из массива типа short[], начиная с смещения.
static ShortVector fromArray(VectorSpecies<Short> species, short[] a, int offset, int[] indexMap, int mapOffset)
Собрать новый вектор, составленный из элементов массива типа short[], используя индексы, полученные путем добавления фиксированного offset к ряду вторичных смещений из карты индексов.
static ShortVector fromArray(VectorSpecies<Short> species, short[] a, int offset, int[] indexMap, int mapOffset, VectorMask<Short> m)
Собрать новый вектор, составленный из элементов массива типа short[], под управлением маски и используя индексы, полученные путем добавления фиксированного offset к ряду вторичных смещений из карты индексов.
static ShortVector fromArray(VectorSpecies<Short> species, short[] a, int offset, VectorMask<Short> m)
Загружает вектор из массива типа short[], начиная с смещения и используя маску.
static ShortVector fromCharArray(VectorSpecies<Short> species, char[] a, int offset)
Загружает вектор из массива типа char[], начиная с смещения.
static ShortVector fromCharArray(VectorSpecies<Short> species, char[] a, int offset, int[] indexMap, int mapOffset)
Собрать новый вектор, составленный из элементов массива типа char[], используя индексы, полученные путем добавления фиксированного offset к ряду вторичных смещений из карты индексов.
static ShortVector fromCharArray(VectorSpecies<Short> species, char[] a, int offset, int[] indexMap, int mapOffset, VectorMask<Short> m)
Собрать новый вектор, составленный из элементов массива типа char[], под управлением маски и используя индексы, полученные путем добавления фиксированного offset к ряду вторичных смещений из карты индексов.
static ShortVector fromCharArray(VectorSpecies<Short> species, char[] a, int offset, VectorMask<Short> m)
Загружает вектор из массива типа char[], начиная с смещения и используя маску.
static ShortVector fromMemorySegment(VectorSpecies<Short> species, MemorySegmentPREVIEW ms, long offset, ByteOrder bo)
Загружает вектор из сегмента памятиПРЕДПРОСМОТР, начиная со смещения в сегменте памяти.
static ShortVector fromMemorySegment(VectorSpecies<Short> species, MemorySegmentPREVIEW ms, long offset, ByteOrder bo, VectorMask<Short> m)
Загружает вектор из сегмента памятиПРОСМОТР, начиная с смещения в сегменте памяти и используя маску.
protected final Object getPayload()
final int hashCode()
Возвращает значение хэш-кода для вектора.
final void intoArray(short[] a, int offset)
Сохраняет этот вектор в массив типа short[], начиная со смещения.
final void intoArray(short[] a, int offset, int[] indexMap, int mapOffset)
Рассыпывает этот вектор в массив типа short[], используя индексы, полученные путем добавления фиксированного offset к ряду вторичных смещений от карты индексов.
final void intoArray(short[] a, int offset, int[] indexMap, int mapOffset, VectorMask<Short> m)
Рассыпывает этот вектор в массив типа short[], под управлением маски, и используя индексы, полученные путем добавления фиксированного offset к ряду вторичных смещений от карты индексов.
final void intoArray(short[] a, int offset, VectorMask<Short> m)
Сохраняет этот вектор в массив типа short[], начиная со смещения и используя маску.
final void intoCharArray(char[] a, int offset)
Сохраняет этот вектор в массив типа char[], начиная со смещения.
final void intoCharArray(char[] a, int offset, int[] indexMap, int mapOffset)
Рассыпывает этот вектор в массив типа char[] , используя индексы, полученные путем добавления фиксированного offset к ряду вторичных смещений от карты индексов.
final void intoCharArray(char[] a, int offset, int[] indexMap, int mapOffset, VectorMask<Short> m)
Рассыпывает этот вектор в массив типа char[], под управлением маски, и используя индексы, полученные путем добавления фиксированного offset к ряду вторичных смещений от карты индексов.
final void intoCharArray(char[] a, int offset, VectorMask<Short> m)
Сохраняет этот вектор в массив типа char[], начиная со смещения и используя маску.
final void intoMemorySegment(MemorySegmentPREVIEW ms, long offset, ByteOrder bo)
Сохраняет этот вектор в сегмент памятиПРОСМОТР, начиная со смещения, используя явную битовую схему.
final void intoMemorySegment(MemorySegmentPREVIEW ms, long offset, ByteOrder bo, VectorMask<Short> m)
Сохраняет этот вектор в сегмент памятиПРОСМОТР, начиная со смещения, используя явную битовую схему и маску.
abstract short lane(int i)
Получает элемент аллели по индексу аллели i
final ShortVector lanewise(VectorOperators.Binary op, long e)
Комбинирует значения аллелей этого вектора со значением скаляра широковещательной передачи.
final ShortVector lanewise(VectorOperators.Binary op, long e, VectorMask<Short> m)
Комбинирует соответствующие значения аллелей этого вектора с соответствующими значениями второго входного вектора, с выбором элементов аллелей, управляемым маской.
final ShortVector lanewise(VectorOperators.Binary op, short e)
Комбинирует значения аллелей этого вектора со значением скаляра широковещательной передачи.
final ShortVector lanewise(VectorOperators.Binary op, short e, VectorMask<Short> m)
Комбинирует значения аллелей этого вектора со значением скаляра широковещательной передачи, с выбором элементов аллелей, управляемым маской.
abstract ShortVector lanewise(VectorOperators.Binary op, Vector<Short> v)
Комбинирует соответствующие значения аллелей этого вектора со значениями второго входного вектора.
abstract ShortVector lanewise(VectorOperators.Binary op, Vector<Short> v, VectorMask<Short> m)
Комбинирует соответствующие значения аллелей этого вектора со значениями второго входного вектора, с выбором элементов аллелей, управляемым маской.
final ShortVector lanewise(VectorOperators.Ternary op, short e1, short e2)
Комбинирует значения аллелей этого вектора со значениями двух скаляров широковещательной передачи.
final ShortVector lanewise(VectorOperators.Ternary op, short e1, short e2, VectorMask<Short> m)
Комбинирует значения аллелей этого вектора со значениями двух скаляров широковещательной передачи, с выбором элементов аллелей, управляемым маской.
final ShortVector lanewise(VectorOperators.Ternary op, short e1, Vector<Short> v2)
Комбинирует значения аллелей этого вектора со значениями другого вектора и скаляра широковещательной передачи.
final ShortVector lanewise(VectorOperators.Ternary op, short e1, Vector<Short> v2, VectorMask<Short> m)
Комбинирует значения аллелей этого вектора со значениями другого вектора и скаляра широковещательной передачи, с выбором элементов аллелей, управляемым маской.
final ShortVector lanewise(VectorOperators.Ternary op, Vector<Short> v1, short e2)
Комбинирует значения аллелей этого вектора со значениями другого вектора и скаляра широковещательной передачи.
final ShortVector lanewise(VectorOperators.Ternary op, Vector<Short> v1, short e2, VectorMask<Short> m)
Комбинирует значения аллелей этого вектора со значениями другого вектора и скаляра широковещательной передачи, с выбором элементов аллелей, управляемым маской.
abstract ShortVector lanewise(VectorOperators.Ternary op, Vector<Short> v1, Vector<Short> v2)
Комбинирует соответствующие значения аллелей этого вектора со значениями аллелей второго и третьего входных векторов.
abstract ShortVector lanewise(VectorOperators.Ternary op, Vector<Short> v1, Vector<Short> v2, VectorMask<Short> m)
Комбинирует соответствующие значения аллелей этого вектора со значениями аллелей второго и третьего входных векторов, с выбором элементов аллелей, управляемым маской.
abstract ShortVector lanewise(VectorOperators.Unary op)
Выполняет операцию над значениями аллелей этого вектора.
abstract ShortVector lanewise(VectorOperators.Unary op, VectorMask<Short> m)
Выполняет операцию над значениями аллелей этого вектора, с выбором элементов аллелей, управляемым маской.
final VectorMask<Short> lt(short e)
Проверяет, меньше ли этот вектор входного скаляра.
final VectorMask<Short> lt(Vector<Short> v)
Проверяет, меньше ли этот вектор другого входного вектора.
final VectorMask<Short> maskAll(boolean bit)
Возвращает маску того же вида, что и этот вектор, где каждая аллея установлена или не установлена в соответствии с заданным одиночным булевым значением, которое транслируется во все аллеи.
final ShortVector max(short e)
Вычисляет большее из этого вектора и широковещательной передачи входного скаляра.
final ShortVector max(Vector<Short> v)
Вычисляет большее из этого вектора и второго входного вектора.
final ShortVector min(short e)
Вычисляет меньшее из этого вектора и широковещательной передачи входного скаляра.
final ShortVector min(Vector<Short> v)
Вычисляет меньшее из этого вектора и второго входного вектора.
final ShortVector mul(short e)
Умножает этот вектор на широковещательную передачу входного скаляра.
final ShortVector mul(short e, VectorMask<Short> m)
Умножает этот вектор на широковещательную передачу входного скаляра, выбирая элементы аллелей, управляемые маской.
final ShortVector mul(Vector<Short> v)
Умножает этот вектор на второй входной вектор.
final ShortVector mul(Vector<Short> v, VectorMask<Short> m)
Умножает этот вектор на второй входной вектор под управлением маски.
final ShortVector neg()
Изменяет знак этого вектора.
final ShortVector not()
Вычисляет побитовое логическое дополнение (~) этого вектора.
final ShortVector or(short e)
Вычисляет побитовое логическое дизъюнкцию (|) этого вектора и скаляра.
final ShortVector or(Vector<Short> v)
Вычисляет побитовое логическое дизъюнкцию (|) этого вектора и второго входного вектора.
abstract ShortVector rearrange(VectorShuffle<Short> m)
Переупорядочивает элементы аллелей этого вектора, выбирая аллеи под управлением определенного перемешивания.
abstract ShortVector rearrange(VectorShuffle<Short> s, Vector<Short> v)
Переупорядочивает элементы аллелей двух векторов, выбирая аллеи под управлением определенного перемешивания, используя как обычные, так и исключительные индексы в перемешивании для управления данными.
abstract ShortVector rearrange(VectorShuffle<Short> s, VectorMask<Short> m)
Переупорядочивает элементы аллелей этого вектора, выбирая аллеи под управлением определенного перемешивания и маски.
abstract short reduceLanes(VectorOperators.Associative op)
Возвращает значение, суммированное по всем аллеям этого вектора.
abstract short reduceLanes(VectorOperators.Associative op, VectorMask<Short> m)
Возвращает значение, накопленное из выбранных каналов этого вектора, контролируемое маской.
final ByteVector reinterpretAsBytes()
Представляет этот вектор как вектор той же формы и содержимого, но с типом канала byte, где байты извлекаются из каналов в соответствии с порядком little-endian.
DoubleVector reinterpretAsDoubles()
Переосмысливает этот вектор как вектор той же формы и содержимого, но с типом канала double, где каналы собираются из последовательных байтов в соответствии с порядком little-endian.
FloatVector reinterpretAsFloats()
Переосмысливает этот вектор как вектор той же формы и содержимого, но с типом канала float, где каналы собираются из последовательных байтов в соответствии с порядком little-endian.
IntVector reinterpretAsInts()
Переосмысливает этот вектор как вектор той же формы и содержимого, но с типом канала int, где каналы собираются из последовательных байтов в соответствии с порядком little-endian.
LongVector reinterpretAsLongs()
Переосмысливает этот вектор как вектор той же формы и содержимого, но с типом канала long, где каналы собираются из последовательных байтов в соответствии с порядком little-endian.
ShortVector reinterpretAsShorts()
Переосмысливает этот вектор как вектор той же формы и содержимого, но с типом канала short, где каналы собираются из последовательных байтов в соответствии с порядком little-endian.
abstract ShortVector selectFrom(Vector<Short> v)
Используя значения индексов, хранящиеся в каналах этого вектора, собирает значения, хранящиеся во втором векторе v.
abstract ShortVector selectFrom(Vector<Short> s, VectorMask<Short> m)
Используя значения индексов, хранящиеся в каналах этого вектора, собирает значения, хранящиеся во втором векторе, под управлением маски.
abstract ShortVector slice(int origin)
Вырезает сегмент смежных каналов, начиная с указанного origin канала в текущем векторе.
abstract ShortVector slice(int origin, Vector<Short> v1)
Вырезает сегмент смежных каналов, начиная с указанного origin канала в текущем векторе и продолжая (по мере необходимости) в непосредственно следующий вектор.
final ShortVector slice(int origin, Vector<Short> w, VectorMask<Short> m)
Вырезает сегмент смежных каналов под управлением маски, начиная с указанного origin канала в текущем векторе и продолжая (по мере необходимости) в непосредственно следующий вектор.
final VectorSpecies<Short> species()
Возвращает вид этого вектора.
final ShortVector sub(short e)
Вычитает входной скаляр из этого вектора.
final ShortVector sub(short e, VectorMask<Short> m)
Вычитает входной скаляр из этого вектора под управлением маски.
final ShortVector sub(Vector<Short> v)
Вычитает второй входной вектор из этого вектора.
final ShortVector sub(Vector<Short> v, VectorMask<Short> m)
Вычитает второй входной вектор из этого вектора под управлением маски.
abstract VectorMask<Short> test(VectorOperators.Test op)
Проверяет каналы этого вектора в соответствии с заданной операцией.
abstract VectorMask<Short> test(VectorOperators.Test op, VectorMask<Short> m)
Проверяет выбранные каналы этого вектора в соответствии с заданной операцией.
final short[] toArray()
Возвращает массив типа short[], содержащий все значения каналов.
final double[] toDoubleArray()
Возвращает массив double[] содержащий все значения каналов, преобразованные к типу double.
final int[] toIntArray()
Возвращает массив int[] содержащий все значения каналов, преобразованные к типу int.
final long[] toLongArray()
Возвращает массив long[] содержащий все значения каналов, преобразованные к типу long.
final String toString()
Возвращает строковое представление этого вектора, имеющего вид "[0,1,2...]", отображающего значения каналов этого вектора в порядке каналов.
abstract ShortVector unslice(int origin)
Инвертирует slice(), вставляя текущий вектор в качестве среза в «фоновом» вводе с нулевыми значениями каналов.
abstract ShortVector unslice(int origin, Vector<Short> w, int part)
Инвертирует slice(), вставляя текущий вектор в качестве среза в другой «фоновый» входной вектор, который рассматривается как один из входов в гипотетической последующей операции slice().
abstract ShortVector unslice(int origin, Vector<Short> w, int part, VectorMask<Short> m)
Инвертирует slice(), вставляя (под управлением маски) текущий вектор в качестве среза в другой «фоновый» входной вектор, который рассматривается как один из входов в гипотетической последующей операции slice().
final Vector<?> viewAsFloatingLanes()
Представляет этот вектор как вектор той же формы, длины и содержимого, но с типом канала, который является типом с плавающей точкой.
final ShortVector viewAsIntegralLanes()
Представляет этот вектор как вектор той же формы, длины и содержимого, но с типом канала, который не является типом с плавающей точкой.
abstract ShortVector withLane(int i, short e)
Заменяет элемент канала этого вектора в канале с индексом i значением e.
static ShortVector zero(VectorSpecies<Short> species)
Возвращает вектор заданного вида, где все элементы канала установлены в ноль — значение по умолчанию для примитивного типа.

Методы, объявленные в классе jdk.incubator.vector.Vector

bitSize, byteSize, compare, elementSize, elementType, length, reduceLanesToLong, reduceLanesToLong, reinterpretShape, shape, toShuffle

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Подробное описание полей

SPECIES_64

public static final VectorSpecies<Short> SPECIES_64
Вид, представляющий ShortVector векторы размером VectorShape.S_64_BIT.

SPECIES_128

public static final VectorSpecies<Short> SPECIES_128
Вид, представляющий ShortVector векторы размером VectorShape.S_128_BIT.

SPECIES_256

public static final VectorSpecies<Short> SPECIES_256
Вид, представляющий ShortVector векторы размером VectorShape.S_256_BIT.

SPECIES_512

public static final VectorSpecies<Short> SPECIES_512
Вид, представляющий ShortVector векторы размером VectorShape.S_512_BIT.

SPECIES_MAX

public static final VectorSpecies<Short> SPECIES_MAX
Вид, представляющий ShortVector векторы максимального размера для платформы VectorShape.S_Max_BIT.

SPECIES_PREFERRED

public static final VectorSpecies<Short> SPECIES_PREFERRED
Предпочитаемый вид для ShortVector векторов. Предпочитаемый вид — это вид максимального размера для данной платформы.

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

zero

public static ShortVector zero(VectorSpecies<Short> species)
Возвращает вектор заданного вида, где все элементы в разрядах установлены в ноль, значение по умолчанию для примитивного типа.
Параметры:
species - вид желаемого нулевого вектора
Возвращает:
нулевой вектор

broadcast

public abstract ShortVector broadcast(short e)
Возвращает вектор того же вида, что и текущий, где все элементы разрядов установлены в примитивное значение e. Содержимое текущего вектора игнорируется; для этой операции важен только вид.

Этот метод возвращает значение этого выражения: ShortVector.broadcast(this.species(), e).

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

broadcast

public static ShortVector broadcast(VectorSpecies<Short> species, short e)
Возвращает вектор заданного вида, где все элементы разрядов установлены в примитивное значение e.
Параметры:
species - вид желаемого вектора
e - значение для распространения
Возвращает:
вектор, где все элементы разрядов установлены в примитивное значение e
См. также:
  • broadcast(long)
  • Vector.broadcast(long)
  • VectorSpecies.broadcast(long)

broadcast

public abstract ShortVector broadcast(long e)
Возвращает вектор того же вида, что и текущий, где все элементы разрядов установлены в примитивное значение e. Значение EVector должно быть точно представимо разрядной сеткой вида этого вектора, так что EVector.broadcast(this.species(), (ETYPE)e). Если это правило нарушено, проблема не обнаруживается статически, но во время выполнения выбрасывается IllegalArgumentException. Таким образом, этот метод несколько ослабляет статическую проверку типов для непосредственных констант и других скаляров, но компенсирует это, улучшая выразительность обобщенного API. Обратите внимание, что значение e в диапазоне [-128..127] всегда приемлемо, так как каждый ETYPE примет любое значение byte.
Определено в:
broadcast в классе Vector<Short>
Примечание API:
При работе с подтипами векторов, такими как ShortVector, обычно выбирается метод с более сильной типизацией более сильно типизированный метод. Его можно явно выбрать с помощью приведения типов: v.broadcast((short)e). Два выражения дадут численно идентичные результаты.
Параметры:
e - значение для распространения
Возвращает:
вектор, где все элементы разрядов установлены в примитивное значение e
См. также:
  • VectorSpecies.broadcast(long)
  • IntVector.broadcast(int)
  • FloatVector.broadcast(float)

broadcast

public static ShortVector broadcast(VectorSpecies<Short> species, long e)
Возвращает вектор заданного вида, где все элементы разрядов установлены в примитивное значение e. Значение long должно быть точно представимо разрядной сеткой вида вектора, так что e==(long)(ETYPE)e.
Параметры:
species - вид желаемого вектора
e - значение для распространения
Возвращает:
вектор, где все элементы разрядов установлены в примитивное значение e
Исключения:
IllegalArgumentException - если заданное значение long не может быть представлено разрядной сеткой вектора ETYPE
См. также:
  • broadcast(VectorSpecies,short)
  • VectorSpecies.checkValue(long)

lanewise

public abstract ShortVector lanewise(VectorOperators.Unary op)
Операция над значениями разрядов этого вектора. Это унарная операция над разрядами, которая применяет выбранную операцию к каждому разряду.
Определено в:
lanewise в классе Vector<Short>
Параметры:
op - операция, используемая для обработки значений разрядов
Возвращает:
результат применения операции к входному вектору в каждом разряде
См. также:
  • VectorOperators.NEG
  • VectorOperators.NOT
  • VectorOperators.SIN
  • Vector.lanewise(VectorOperators.Unary,VectorMask)
  • Vector.lanewise(VectorOperators.Binary,Vector)
  • Vector.lanewise(VectorOperators.Ternary,Vector,Vector)

lanewise

public abstract ShortVector lanewise(VectorOperators.Unary op, VectorMask<Short> m)
Операция над значениями разрядов этого вектора с выбором элементов разрядов, управляемым маской. Это унарная операция над разрядами, которая применяет выбранную операцию к каждому разряду.
Определено в:
lanewise в классе Vector<Short>
Параметры:
op - операция, используемая для обработки значений разрядов
m - маска, управляющая выбором разрядов
Возвращает:
результат применения операции к входному вектору в каждом разряде
См. также:
  • Vector.lanewise(VectorOperators.Unary)

lanewise

public abstract ShortVector lanewise(VectorOperators.Binary op, Vector<Short> v)
Объединяет соответствующие значения разрядов этого вектора с значениями второго входного вектора. Это бинарная операция над разрядами, которая применяет выбранную операцию к каждому разряду.
Определено в:
lanewise в классе Vector<Short>
Параметры:
op - операция, используемая для объединения значений разрядов
v - входной вектор
Возвращает:
результат применения операции к двум входным векторам в каждом разряде
См. также:
  • lanewise(VectorOperators.Binary,short)
  • lanewise(VectorOperators.Binary,short,VectorMask)

lanewise

public abstract ShortVector lanewise(VectorOperators.Binary op, Vector<Short> v, VectorMask<Short> m)
Комбинирует соответствующие значения каналов этого вектора с значениями второго входного вектора, с выбором элементов каналов, управляемым маской. Это бинарная операция по каналам, которая применяет выбранную операцию к каждому каналу.
Указано в:
lanewise в классе Vector<Short>
Параметры:
op - операция, используемая для комбинирования значений каналов
v - второй входной вектор
m - маска, управляющая выбором каналов
Возвращает:
результат применения операции по каналам к двум входным векторам
См. также:
  • lanewise(VectorOperators.Binary,short,VectorMask)

lanewise

public final ShortVector lanewise(VectorOperators.Binary op, short e)
Комбинирует значения каналов этого вектора со значением вещаемого скаляра. Это бинарная операция по каналам, которая применяет выбранную операцию к каждому каналу. Значение возврата будет равно этому выражению: this.lanewise(op, this.broadcast(e)).
Параметры:
op - операция, используемая для обработки значений каналов
e - входной скаляр
Возвращает:
результат применения операции по каналам к двум входным векторам
Выбрасывает:
UnsupportedOperationException - если этот вектор не поддерживает запрошенную операцию
См. также:
  • lanewise(VectorOperators.Binary,Vector)
  • lanewise(VectorOperators.Binary,short,VectorMask)

lanewise

public final ShortVector lanewise(VectorOperators.Binary op, short e, VectorMask<Short> m)
Комбинирует значения каналов этого вектора со значением вещаемого скаляра, с выбором элементов каналов, управляемым маской. Это маскированная бинарная операция по каналам, которая применяет выбранную операцию к каждому каналу. Значение возврата будет равно этому выражению: this.lanewise(op, this.broadcast(e), m).
Параметры:
op - операция, используемая для обработки значений каналов
e - входной скаляр
m - маска, управляющая выбором каналов
Возвращает:
результат применения операции по каналам к входному вектору и скаляру
Выбрасывает:
UnsupportedOperationException - если этот вектор не поддерживает запрошенную операцию
См. также:
  • lanewise(VectorOperators.Binary,Vector,VectorMask)
  • lanewise(VectorOperators.Binary,short)

lanewise

public final ShortVector lanewise(VectorOperators.Binary op, long e)
Комбинирует значения каналов этого вектора со значением вещаемого скаляра. Это бинарная операция по каналам, которая применяет выбранную операцию к каждому каналу. Значение возврата будет равно этому выражению: this.lanewise(op, this.broadcast(e)).
Указано в:
lanewise в классе Vector<Short>
Примечание API:
При работе с типами векторов, такими как ShortVector, обычно выбирается более типизированный метод типизированный метод. Его можно явно выбрать, используя приведение: v.lanewise(op,(short)e). Два выражения дадут численно идентичные результаты.
Параметры:
op - операция, используемая для комбинирования значений каналов
e - входной скаляр
Возвращает:
результат применения операции по каналам к входному вектору и скаляру
См. также:
  • Vector.broadcast(long)
  • Vector.lanewise(VectorOperators.Binary,long,VectorMask)

lanewise

public final ShortVector lanewise(VectorOperators.Binary op, long e, VectorMask<Short> m)
Комбинирует соответствующие значения каналов этого вектора с значениями второго входного вектора, с выбором элементов каналов, управляемым маской. Это бинарная операция по каналам, которая применяет выбранную операцию к каждому каналу. Второй операнд — это вещаемое целое значение. Значение возврата будет равно этому выражению: this.lanewise(op, this.broadcast(e), m).
Указано в:
lanewise в классе Vector<Short>
Примечание API:
При работе с типами векторов, такими как ShortVector, обычно выбирается более типизированный метод типизированный метод. Его можно явно выбрать, используя приведение: v.lanewise(op,(short)e,m). Два выражения дадут численно идентичные результаты.
Параметры:
op - операция, используемая для комбинирования значений каналов
e - входной скаляр
m - маска, управляющая выбором каналов
Возвращает:
результат применения операции по каналам к входному вектору и скаляру
См. также:
  • Vector.broadcast(long)
  • Vector.lanewise(VectorOperators.Binary,Vector,VectorMask)

lanewise

public abstract ShortVector lanewise(VectorOperators.Ternary op, Vector<Short> v1, Vector<Short> v2)
Комбинирует соответствующие значения каналов этого вектора со значениями каналов второго и третьего входных векторов. Это тройная операция по каналам, которая применяет выбранную операцию к каждому каналу.
Указано в:
lanewise в классе Vector<Short>
Параметры:
op - операция, используемая для комбинирования значений каналов
v1 - второй входной вектор
v2 - третий входной вектор
Возвращает:
результат применения операции по каналам к трём входным векторам
См. также:
  • lanewise(VectorOperators.Ternary,short,short,VectorMask)
  • lanewise(VectorOperators.Ternary,Vector,short,VectorMask)
  • lanewise(VectorOperators.Ternary,short,Vector,VectorMask)
  • lanewise(VectorOperators.Ternary,short,short)
  • lanewise(VectorOperators.Ternary,Vector,short)
  • lanewise(VectorOperators.Ternary,short,Vector)

lanewise

public abstract ShortVector lanewise(VectorOperators.Ternary op, Vector<Short> v1, Vector<Short> v2, VectorMask<Short> m)
Комбинирует соответствующие значения каналов этого вектора со значениями каналов второго и третьего входных векторов, с выбором элементов каналов, управляемым маской. Это тройная операция по каналам, которая применяет выбранную операцию к каждому каналу.
Указано в:
lanewise в классе Vector<Short>
Параметры:
op - операция, используемая для комбинирования значений каналов
v1 - второй входной вектор
v2 - третий входной вектор
m - маска, управляющая выбором каналов
Возвращает:
результат применения операции по каналам к трём входным векторам
См. также:
  • lanewise(VectorOperators.Ternary,short,short,VectorMask)
  • lanewise(VectorOperators.Ternary,Vector,short,VectorMask)
  • lanewise(VectorOperators.Ternary,short,Vector,VectorMask)

lanewise

public final ShortVector lanewise(VectorOperators.Ternary op, short e1, short e2)
Комбинирует значения каналов этого вектора со значениями двух вещаемых скаляров. Это тройная операция по каналам, которая применяет выбранную операцию к каждому каналу. Значение возврата будет равно этому выражению: this.lanewise(op, this.broadcast(e1), this.broadcast(e2)).
Параметры:
op - операция, используемая для комбинирования значений каналов
e1 - первый входной скаляр
e2 - второй входной скаляр
Возвращает:
результат применения операции по каналам к входному вектору и скалярам
Выбрасывает:
UnsupportedOperationException - если этот вектор не поддерживает запрошенную операцию
См. также:
  • lanewise(VectorOperators.Ternary,Vector,Vector)
  • lanewise(VectorOperators.Ternary,short,short,VectorMask)

lanewise

public final ShortVector lanewise(VectorOperators.Ternary op, short e1, short e2, VectorMask<Short> m)
Комбинирует значения элементов этого вектора с значениями двух вещаемых скаляров, с выбором элементов по маске. Это трехоперационная операция по элементам вектора с применением выбранной операции к каждому элементу. Возвращаемое значение будет равно этому выражению: this.lanewise(op, this.broadcast(e1), this.broadcast(e2), m).
Параметры:
op - операция, используемая для объединения значений элементов
e1 - первый скалярный вход
e2 - второй скалярный вход
m - маска, управляющая выбором элементов
Возвращает:
результат применения операции по элементам к вектору и скалярам
Исключения:
UnsupportedOperationException - если этот вектор не поддерживает затребованную операцию
См. также:
  • lanewise(VectorOperators.Ternary,Vector,Vector,VectorMask)
  • lanewise(VectorOperators.Ternary,short,short)

lanewise

public final ShortVector lanewise(VectorOperators.Ternary op, Vector<Short> v1, short e2)
Комбинирует значения элементов этого вектора с значениями другого вектора и вещаемого скаляра. Это трехоперационная операция по элементам вектора, которая применяет выбранную операцию к каждому элементу. Возвращаемое значение будет равно этому выражению: this.lanewise(op, v1, this.broadcast(e2)).
Параметры:
op - операция, используемая для объединения значений элементов
v1 - другой входной вектор
e2 - входной скаляр
Возвращает:
результат применения операции по элементам к входным векторам и скаляру
Исключения:
UnsupportedOperationException - если этот вектор не поддерживает затребованную операцию
См. также:
  • lanewise(VectorOperators.Ternary,short,short)
  • lanewise(VectorOperators.Ternary,Vector,short,VectorMask)

lanewise

public final ShortVector lanewise(VectorOperators.Ternary op, Vector<Short> v1, short e2, VectorMask<Short> m)
Комбинирует значения элементов этого вектора со значениями другого вектора и вещаемого скаляра, с выбором элементов по маске. Это трехоперационная операция по элементам вектора с применением выбранной операции к каждому элементу. Возвращаемое значение будет равно этому выражению: this.lanewise(op, v1, this.broadcast(e2), m).
Параметры:
op - операция, используемая для объединения значений элементов
v1 - другой входной вектор
e2 - входной скаляр
m - маска, управляющая выбором элементов
Возвращает:
результат применения операции по элементам к входным векторам и скаляру
Исключения:
UnsupportedOperationException - если этот вектор не поддерживает затребованную операцию
См. также:
  • lanewise(VectorOperators.Ternary,Vector,Vector)
  • lanewise(VectorOperators.Ternary,short,short,VectorMask)
  • lanewise(VectorOperators.Ternary,Vector,short)

lanewise

public final ShortVector lanewise(VectorOperators.Ternary op, short e1, Vector<Short> v2)
Комбинирует значения элементов этого вектора с значениями другого вектора и вещаемого скаляра. Это трехоперационная операция по элементам вектора, которая применяет выбранную операцию к каждому элементу. Возвращаемое значение будет равно этому выражению: this.lanewise(op, this.broadcast(e1), v2).
Параметры:
op - операция, используемая для объединения значений элементов
e1 - входной скаляр
v2 - другой входной вектор
Возвращает:
результат применения операции по элементам к входным векторам и скаляру
Исключения:
UnsupportedOperationException - если этот вектор не поддерживает затребованную операцию
См. также:
  • lanewise(VectorOperators.Ternary,Vector,Vector)
  • lanewise(VectorOperators.Ternary,short,Vector,VectorMask)

lanewise

public final ShortVector lanewise(VectorOperators.Ternary op, short e1, Vector<Short> v2, VectorMask<Short> m)
Комбинирует значения элементов этого вектора со значениями другого вектора и вещаемого скаляра, с выбором элементов по маске. Это трехоперационная операция по элементам вектора с применением выбранной операции к каждому элементу. Возвращаемое значение будет равно этому выражению: this.lanewise(op, this.broadcast(e1), v2, m).
Параметры:
op - операция, используемая для объединения значений элементов
e1 - входной скаляр
v2 - другой входной вектор
m - маска, управляющая выбором элементов
Возвращает:
результат применения операции по элементам к входным векторам и скаляру
Исключения:
UnsupportedOperationException - если этот вектор не поддерживает затребованную операцию
См. также:
  • lanewise(VectorOperators.Ternary,Vector,Vector,VectorMask)
  • lanewise(VectorOperators.Ternary,short,Vector)

add

public final ShortVector add(Vector<Short> v)
Добавляет этот вектор к второму входному вектору. Это бинарная операция по элементам, которая применяет примитивную операцию сложения (+) к каждой паре соответствующих значений элементов. Этот метод также эквивалентен выражению lanewise(ADD, v).

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

Унаследовано от:
add в классе Vector<Short>
Параметры:
v - второй входной вектор
Возвращает:
результат сложения этого вектора со вторым входным вектором
См. также:
  • add(short)

add

public final ShortVector add(short e)
Добавляет этот вектор к вещаемому входному скаляру. Это бинарная операция по элементам, которая применяет примитивную операцию сложения (+) к каждому элементу. Этот метод также эквивалентен выражению lanewise(ADD, e).
Параметры:
e - входной скаляр
Возвращает:
результат сложения каждого элемента этого вектора со скаляром
См. также:
  • add(Vector)
  • broadcast(short)
  • add(short,VectorMask)
  • VectorOperators.ADD
  • lanewise(VectorOperators.Binary,Vector)
  • lanewise(VectorOperators.Binary,short)

add

public final ShortVector add(Vector<Short> v, VectorMask<Short> m)
Добавляет этот вектор к второму входному вектору, выбирая элементы по маске. Это бинарная операция по элементам с маской, которая применяет примитивную операцию сложения (+) к каждой паре соответствующих значений элементов. Для любого элемента, не установленного в маске, примитивная операция подавляется, и этот вектор сохраняет исходное значение, хранящееся в этом элементе. Этот метод также эквивалентен выражению lanewise(ADD, v, m).

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

Унаследовано от:
add в классе Vector<Short>
Параметры:
v - второй входной вектор
m - маска, управляющая выбором элементов
Возвращает:
результат сложения этого вектора с данным вектором
См. также:
  • add(short,VectorMask)

add

public final ShortVector add(short e, VectorMask<Short> m)
Добавляет этот вектор к трансляции входного скаляра, выбирая элементы проходов, контролируемые маской. Это бинарная операция по проходам с маской, которая применяет примитивную операцию сложения (+) к каждому проходу. Этот метод также эквивалентен выражению lanewise(ADD, s, m).
Parameters:
e - входной скаляр
m - маска, контролирующая выбор проходов
Returns:
результат добавления каждого прохода этого вектора к скаляру
See Also:
  • add(Vector,VectorMask)
  • broadcast(short)
  • add(short)
  • VectorOperators.ADD
  • lanewise(VectorOperators.Binary,Vector)
  • lanewise(VectorOperators.Binary,short)

sub

public final ShortVector sub(Vector<Short> v)
Вычитает второй входной вектор из этого вектора. Это бинарная операция по проходам, которая применяет примитивную операцию вычитания (-) к каждой паре соответствующих значений проходов. Этот метод также эквивалентен выражению lanewise(SUB, v).

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

Specified by:
sub in class Vector<Short>
Parameters:
v - второй входной вектор
Returns:
результат вычитания второго входного вектора из этого вектора
See Also:
  • sub(short)

sub

public final ShortVector sub(short e)
Вычитает входной скаляр из этого вектора. Это бинарная операция по проходам с маской, которая применяет примитивную операцию вычитания (-) к каждому проходу. Этот метод также эквивалентен выражению lanewise(SUB, e).
Parameters:
e - входной скаляр
Returns:
результат вычитания скаляра из каждого прохода этого вектора
See Also:
  • sub(Vector)
  • broadcast(short)
  • sub(short,VectorMask)
  • VectorOperators.SUB
  • lanewise(VectorOperators.Binary,Vector)
  • lanewise(VectorOperators.Binary,short)

sub

public final ShortVector sub(Vector<Short> v, VectorMask<Short> m)
Вычитает второй входной вектор из этого вектора под управлением маски. Это бинарная операция по проходам с маской, которая применяет примитивную операцию вычитания (-) к каждой паре соответствующих значений проходов. Для любого прохода, не установленного в маске, примитивная операция подавляется, и этот вектор сохраняет исходное значение, хранящееся в этом проходе. Этот метод также эквивалентен выражению lanewise(SUB, v, m).

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

Specified by:
sub in class Vector<Short>
Parameters:
v - второй входной вектор
m - маска, контролирующая выбор проходов
Returns:
результат вычитания второго входного вектора из этого вектора
See Also:
  • sub(short,VectorMask)

sub

public final ShortVector sub(short e, VectorMask<Short> m)
Вычитает входной скаляр из этого вектора под управлением маски. Это бинарная операция по проходам с маской, которая применяет примитивную операцию вычитания (-) к каждому проходу. Этот метод также эквивалентен выражению lanewise(SUB, s, m).
Parameters:
e - входной скаляр
m - маска, контролирующая выбор проходов
Returns:
результат вычитания скаляра из каждого прохода этого вектора
See Also:
  • sub(Vector,VectorMask)
  • broadcast(short)
  • sub(short)
  • VectorOperators.SUB
  • lanewise(VectorOperators.Binary,Vector)
  • lanewise(VectorOperators.Binary,short)

mul

public final ShortVector mul(Vector<Short> v)
Умножает этот вектор на второй входной вектор. Это бинарная операция по проходам, которая применяет примитивную операцию умножения (*) к каждой паре соответствующих значений проходов. Этот метод также эквивалентен выражению lanewise(MUL, v).

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

Specified by:
mul in class Vector<Short>
Parameters:
v - второй входной вектор
Returns:
результат умножения этого вектора на второй входной вектор
See Also:
  • mul(short)

mul

public final ShortVector mul(short e)
Умножает этот вектор на трансляцию входного скаляра. Это бинарная операция по проходам, которая применяет примитивную операцию умножения (*) к каждому проходу. Этот метод также эквивалентен выражению lanewise(MUL, e).
Parameters:
e - входной скаляр
Returns:
результат умножения этого вектора на данный скаляр
See Also:
  • mul(Vector)
  • broadcast(short)
  • mul(short,VectorMask)
  • VectorOperators.MUL
  • lanewise(VectorOperators.Binary,Vector)
  • lanewise(VectorOperators.Binary,short)

mul

public final ShortVector mul(Vector<Short> v, VectorMask<Short> m)
Умножает этот вектор на второй входной вектор под управлением маски. Это бинарная операция по проходам, которая применяет примитивную операцию умножения (*) к каждой паре соответствующих значений проходов. Для любого прохода, не установленного в маске, примитивная операция подавляется, и этот вектор сохраняет исходное значение, хранящееся в этом проходе. Этот метод также эквивалентен выражению lanewise(MUL, v, m).

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

Specified by:
mul in class Vector<Short>
Parameters:
v - второй входной вектор
m - маска, контролирующая выбор проходов
Returns:
результат умножения этого вектора на заданный вектор
See Also:
  • mul(short,VectorMask)

умножение

public final ShortVector mul(short e, VectorMask<Short> m)
Умножает этот вектор на трансляцию входного скаляра, выбирая элементы канала, управляемые маской. Это бинарная операция по каналам с маской, которая применяет примитивную операцию умножения (*) к каждому каналу. Этот метод также эквивалентен выражению lanewise(MUL, s, m).
Параметры:
e - входной скаляр
m - маска, управляющая выбором канала
Возвращает:
результат умножения каждого канала этого вектора на скаляр
См. также:
  • mul(Vector,VectorMask)
  • broadcast(short)
  • mul(short)
  • VectorOperators.MUL
  • lanewise(VectorOperators.Binary,Vector)
  • lanewise(VectorOperators.Binary,short)

деление

public final ShortVector div(Vector<Short> v)
Делит этот вектор на второй входной вектор. Это бинарная операция по каналам, которая применяет примитивную операцию деления (/) к каждой паре соответствующих значений канала. Этот метод также эквивалентен выражению lanewise(DIV, v).

Как полноценная именованная операция, этот метод имеет перегрузки с маской и без маски, а также (в подклассах) имеет перегрузки со скалярным расширением (с маской и без маски).

Определено в:
div в классе Vector<Short>
Примечание API:
Если есть делитель ноль, ArithmeticException будет брошен.
Параметры:
v - второй входной вектор
Возвращает:
результат деления этого вектора на второй входной вектор
См. также:
  • Vector.div(Vector,VectorMask)
  • DoubleVector.div(double)
  • VectorOperators.DIV
  • Vector.lanewise(VectorOperators.Binary,Vector)
  • IntVector.lanewise(VectorOperators.Binary,int)

деление

public final ShortVector div(short e)
Делит этот вектор на трансляцию входного скаляра. Это бинарная операция по каналам, которая применяет примитивную операцию деления (/) к каждому каналу. Этот метод также эквивалентен выражению lanewise(DIV, e).
Примечание API:
Если есть делитель ноль, ArithmeticException будет брошен.
Параметры:
e - входной скаляр
Возвращает:
результат деления каждого канала этого вектора на скаляр
См. также:
  • div(Vector)
  • broadcast(short)
  • div(short,VectorMask)
  • VectorOperators.DIV
  • lanewise(VectorOperators.Binary,Vector)
  • lanewise(VectorOperators.Binary,short)

деление

public final ShortVector div(Vector<Short> v, VectorMask<Short> m)
Делит этот вектор на второй входной вектор под управлением маски. Это бинарная операция по каналам, которая применяет примитивную операцию деления (/) к каждой паре соответствующих значений канала. Для любого канала, не установленного в маске, примитивная операция подавляется, и этот вектор сохраняет исходное значение, хранящееся в этом канале. Этот метод также эквивалентен выражению lanewise(DIV, v, m).

Как полноценная именованная операция, этот метод имеет перегрузки с маской и без маски, а также (в подклассах) имеет перегрузки со скалярным расширением (с маской и без маски).

Определено в:
div в классе Vector<Short>
Примечание API:
Если есть делитель ноль, ArithmeticException будет брошен.
Параметры:
v - второй входной вектор
m - маска, управляющая выбором канала
Возвращает:
результат деления этого вектора на второй входной вектор
См. также:
  • div(short,VectorMask)

деление

public final ShortVector div(short e, VectorMask<Short> m)
Делит этот вектор на трансляцию входного скаляра, выбирая элементы канала, управляемые маской. Это бинарная операция по каналам с маской, которая применяет примитивную операцию деления (/) к каждому каналу. Этот метод также эквивалентен выражению lanewise(DIV, s, m).
Примечание API:
Если есть делитель ноль, ArithmeticException будет брошен.
Параметры:
e - входной скаляр
m - маска, управляющая выбором канала
Возвращает:
результат деления каждого канала этого вектора на скаляр
См. также:
  • div(Vector,VectorMask)
  • broadcast(short)
  • div(short)
  • VectorOperators.DIV
  • lanewise(VectorOperators.Binary,Vector)
  • lanewise(VectorOperators.Binary,short)

мин

public final ShortVector min(Vector<Short> v)
Вычисляет меньшее значение этого вектора и второго входного вектора. Это бинарная операция по каналам, которая применяет операцию Math.min() к каждой паре соответствующих значений канала. Этот метод также эквивалентен выражению lanewise(MIN, v).
Определено в:
min в классе Vector<Short>
Параметры:
v - второй входной вектор
Возвращает:
минимальное значение по каналам этого вектора и второго входного вектора
См. также:
  • IntVector.min(int)
  • VectorOperators.MIN
  • Vector.lanewise(VectorOperators.Binary,Vector)
  • Vector.lanewise(VectorOperators.Binary,Vector,VectorMask)

мин

public final ShortVector min(short e)
Вычисляет меньшее значение этого вектора и трансляции входного скаляра. Это бинарная операция по каналам, которая применяет операцию Math.min() к каждой паре соответствующих значений канала. Этот метод также эквивалентен выражению lanewise(MIN, e).
Параметры:
e - входной скаляр
Возвращает:
результат умножения этого вектора на заданный скаляр
См. также:
  • min(Vector)
  • broadcast(short)
  • VectorOperators.MIN
  • lanewise(VectorOperators.Binary,short,VectorMask)

max

public final ShortVector max(Vector<Short> v)
Вычисляет большее значение из этого вектора и второго входного вектора. Это операция над векторами по элементам, которая применяет операцию Math.max() к каждой паре соответствующих значений элементов. Этот метод также эквивалентен выражению lanewise(MAX, v).

Это не полная операция с именем, как add(). Маскированная версия этой операции недоступна напрямую, но может быть получена с помощью маскированной версии lanewise. Подклассы определяют дополнительную перегрузку этого метода с передачей скалярного значения.

Specified by:
max in class Vector<Short>
Parameters:
v - второй входной вектор
Returns:
наибольшее значение по элементам этого вектора и второго входного вектора
See Also:
  • IntVector.max(int)
  • VectorOperators.MAX
  • Vector.lanewise(VectorOperators.Binary,Vector)
  • Vector.lanewise(VectorOperators.Binary,Vector,VectorMask)

max

public final ShortVector max(short e)
Вычисляет большее значение из этого вектора и расширенного скалярного входного значения. Это операция над векторами по элементам, которая применяет операцию Math.max() к каждой паре соответствующих значений элементов. Этот метод также эквивалентен выражению lanewise(MAX, e).
Parameters:
e - входное скалярное значение
Returns:
результат умножения этого вектора на заданный скаляр
See Also:
  • max(Vector)
  • broadcast(short)
  • VectorOperators.MAX
  • lanewise(VectorOperators.Binary,short,VectorMask)

and

public final ShortVector and(Vector<Short> v)
Вычисляет побитовое логическое «И» (&) этого вектора и второго входного вектора. Это операция над векторами по элементам, которая применяет побитовую операцию «И» (&) к каждой паре соответствующих значений элементов. Этот метод также эквивалентен выражению lanewise(AND, v).

Это не полная операция с именем, как add. Маскированная версия этой операции недоступна напрямую, но может быть получена с помощью маскированной версии lanewise.

Parameters:
v - второй входной вектор
Returns:
результат побитового «И» этого вектора и второго входного вектора
See Also:
  • and(short)
  • or(Vector)
  • not()
  • VectorOperators.AND
  • lanewise(VectorOperators.Binary,Vector,VectorMask)

and

public final ShortVector and(short e)
Вычисляет побитовое логическое «И» (&) этого вектора и скаляра. Это операция над векторами по элементам, которая применяет побитовую операцию «И» (&) к каждой паре соответствующих значений элементов. Этот метод также эквивалентен выражению lanewise(AND, e).
Parameters:
e - входное скалярное значение
Returns:
результат побитового «И» этого вектора и скаляра
See Also:
  • and(Vector)
  • VectorOperators.AND
  • lanewise(VectorOperators.Binary,Vector,VectorMask)

or

public final ShortVector or(Vector<Short> v)
Вычисляет побитовое логическое «ИЛИ» (|) этого вектора и второго входного вектора. Это операция над векторами по элементам, которая применяет побитовую операцию «ИЛИ» (|) к каждой паре соответствующих значений элементов. Этот метод также эквивалентен выражению lanewise(AND, v).

Это не полная операция с именем, как add. Маскированная версия этой операции недоступна напрямую, но может быть получена с помощью маскированной версии lanewise.

Parameters:
v - второй входной вектор
Returns:
результат побитового «ИЛИ» этого вектора и второго входного вектора
See Also:
  • or(short)
  • and(Vector)
  • not()
  • VectorOperators.OR
  • lanewise(VectorOperators.Binary,Vector,VectorMask)

or

public final ShortVector or(short e)
Вычисляет побитовое логическое «ИЛИ» (|) этого вектора и скаляра. Это операция над векторами по элементам, которая применяет побитовую операцию «ИЛИ» (|) к каждой паре соответствующих значений элементов. Этот метод также эквивалентен выражению lanewise(OR, e).
Parameters:
e - входное скалярное значение
Returns:
результат побитового «ИЛИ» этого вектора и скаляра
See Also:
  • or(Vector)
  • VectorOperators.OR
  • lanewise(VectorOperators.Binary,Vector,VectorMask)

neg

public final ShortVector neg()
Изменяет знак этого вектора. Это унарная операция над векторами по элементам, которая применяет операцию изменения знака (-x) к каждому элементу вектора. Этот метод также эквивалентен выражению lanewise(NEG).
Specified by:
neg in class Vector<Short>
Returns:
вектор с изменёнными знаками
See Also:
  • VectorOperators.NEG
  • Vector.lanewise(VectorOperators.Unary)
  • Vector.lanewise(VectorOperators.Unary,VectorMask)

abs

public final ShortVector abs()
Возвращает абсолютное значение этого вектора. Это унарная операция над векторами по элементам, которая применяет метод Math.abs к каждому элементу вектора. Этот метод также эквивалентен выражению lanewise(ABS).
Specified by:
abs in class Vector<Short>
Returns:
вектор с абсолютными значениями элементов
See Also:
  • VectorOperators.ABS
  • Vector.lanewise(VectorOperators.Unary)
  • Vector.lanewise(VectorOperators.Unary,VectorMask)

not

public final ShortVector not()
Вычисляет побитовое логическое дополнение (~) этого вектора. Это операция над отдельными элементами, которая применяет примитивную побитовую операцию «не» (~) к каждому значению элемента. Этот метод также эквивалентен выражению lanewise(NOT).

Это не полная именованная операция, как add. Маскированная версия этой операции не доступна напрямую, но может быть получена с помощью маскированной версии lanewise.

Возвращает:
побитовое дополнение ~ этого вектора
См. также:
  • and(Vector)
  • VectorOperators.NOT
  • lanewise(VectorOperators.Unary,VectorMask)

eq

public final VectorMask<Short> eq(Vector<Short> v)
Проверяет, равен ли этот вектор другому входному вектору. Это бинарная операция над отдельными элементами, которая применяет примитивную операцию равенства (==) к каждой паре соответствующих значений элементов. Результат такой же, как compare(VectorOperators.EQ, v).
Определено в:
eq в классе Vector<Short>
Параметры:
v - второй входной вектор
Возвращает:
маска результата проверки по элементам, равен ли этот вектор второму входному вектору
См. также:
  • Vector.compare(VectorOperators.Comparison,Vector)
  • VectorOperators.EQ
  • Vector.equals(java.lang.Object)

eq

public final VectorMask<Short> eq(short e)
Проверяет, равен ли этот вектор входному скаляру. Это бинарная операция над отдельными элементами, которая применяет примитивную операцию равенства (==) к каждому элементу. Результат такой же, как compare(VectorOperators.Comparison.EQ, e).
Параметры:
e - входной скаляр
Возвращает:
маска результата проверки, равен ли этот вектор e
См. также:
  • compare(VectorOperators.Comparison,short)

lt

public final VectorMask<Short> lt(Vector<Short> v)
Проверяет, меньше ли этот вектор другого входного вектора. Это бинарная операция над отдельными элементами, которая применяет примитивную операцию «меньше» (<) к каждому элементу. Результат такой же, как compare(VectorOperators.LT, v).
Определено в:
lt в классе Vector<Short>
Параметры:
v - второй входной вектор
Возвращает:
маска результата проверки по элементам, меньше ли этот вектор второго входного вектора
См. также:
  • Vector.compare(VectorOperators.Comparison,Vector)
  • VectorOperators.LT

lt

public final VectorMask<Short> lt(short e)
Проверяет, меньше ли этот вектор входного скаляра. Это бинарная операция над отдельными элементами, которая применяет примитивную операцию «меньше» (<) к каждому элементу. Результат такой же, как compare(VectorOperators.LT, e).
Параметры:
e - входной скаляр
Возвращает:
маска результата проверки, меньше ли этот вектор входного скаляра
См. также:
  • compare(VectorOperators.Comparison,short)

test

public abstract VectorMask<Short> test(VectorOperators.Test op)
Проверяет элементы этого вектора в соответствии с заданной операцией. Это унарная операция над отдельными элементами, которая применяет заданную операцию проверки к каждому значению элемента.
Определено в:
test в классе Vector<Short>
Параметры:
op - операция, используемая для проверки значений элементов
Возвращает:
маска результата проверки элементов этого вектора в соответствии с выбранным оператором проверки
См. также:
  • VectorOperators.Comparison
  • Vector.test(VectorOperators.Test, VectorMask)
  • Vector.compare(VectorOperators.Comparison, Vector)

test

public abstract VectorMask<Short> test(VectorOperators.Test op, VectorMask<Short> m)
Проверка выбранных элементов этого вектора в соответствии с заданной операцией. Это маскированная унарная операция над отдельными элементами, которая применяет заданную операцию проверки к каждому значению элемента. Полученный результат равен выражению test(op).and(m).
Определено в:
test в классе Vector<Short>
Параметры:
op - операция, используемая для проверки значений элементов
m - маска, определяющая выбор элементов
Возвращает:
маска результата проверки элементов этого вектора в соответствии с выбранным оператором проверки и только для элементов, выбранных маской
См. также:
  • Vector.test(VectorOperators.Test)

compare

public abstract VectorMask<Short> compare(VectorOperators.Comparison op, Vector<Short> v)
Проверяет этот вектор путем сравнения его с другим входным вектором в соответствии с заданной операцией сравнения. Это бинарная операция над отдельными элементами, которая применяет данную операцию сравнения к каждой паре соответствующих значений элементов.
Определено в:
compare в классе Vector<Short>
Параметры:
op - операция, используемая для сравнения значений элементов
v - второй входной вектор
Возвращает:
маска результата проверки по элементам, сравнивается ли этот вектор с входом в соответствии с выбранным оператором сравнения
См. также:
  • Vector.eq(Vector)
  • Vector.lt(Vector)
  • VectorOperators.Comparison
  • Vector.compare(VectorOperators.Comparison, Vector, VectorMask)
  • Vector.test(VectorOperators.Test)

compare

public abstract VectorMask<Short> compare(VectorOperators.Comparison op, short e)
Проверяет этот вектор путем сравнения его с входным скаляром в соответствии с заданной операцией сравнения. Это бинарная операция над отдельными элементами, которая применяет операцию сравнения к каждому элементу.

Результат такой же, как compare(op, broadcast(species(), e)). То есть, скаляр можно рассматривать как транслированный в вектор того же вида, и затем сравнивать его с исходным вектором с использованием выбранной операции сравнения.

Параметры:
op - операция, используемая для сравнения значений элементов
e - входной скаляр
Возвращает:
маска результата проверки по элементам, сравнивается ли этот вектор с входом в соответствии с выбранным оператором сравнения
См. также:
  • compare(VectorOperators.Comparison,Vector)
  • eq(short)
  • lt(short)

compare

public final VectorMask<Short> compare(VectorOperators.Comparison op, short e, VectorMask<Short> m)
Проверяет этот вектор путем сравнения его с входным скаляром в соответствии с заданной операцией сравнения, для элементов, выбранных маской. Это маскированная бинарная операция над отдельными элементами, которая применяется к каждой паре соответствующих значений элементов. Полученный результат равен выражению compare(op,s).and(m).
Параметры:
op - операция, используемая для сравнения значений элементов
e - входной скаляр
m - маска, определяющая выбор элементов
Возвращает:
маска результата проверки по элементам, сравнивается ли этот вектор с входом в соответствии с выбранным оператором сравнения, и только для элементов, выбранных маской
См. также:
  • Vector.compare(VectorOperators.Comparison,Vector,VectorMask)

compare

public abstract VectorMask<Short> compare(VectorOperators.Comparison op, long e)
Проверяет этот вектор, сравнивая его со скалярным входом, согласно заданной операции сравнения. Это бинарная операция проверки по каждой ячейке, которая применяет заданную операцию сравнения к каждому значению ячейки, сопоставленному со значением широковещательной рассылки.

Результат аналогичен this.compare(op, this.broadcast(e)). То есть, скаляр можно рассматривать как широковещательно переданный в вектор той же спецификации, а затем сравнивать с исходным вектором, используя выбранную операцию сравнения.

Указано:
compare в классе Vector<Short>
Параметры:
op - операция, используемая для сравнения значений ячеек
e - входной скаляр
Возвращает:
маска результата проверки по каждой ячейке, сравнивается ли этот вектор со входом, согласно выбранному оператору сравнения
См. также:
  • Vector.broadcast(long)
  • Vector.compare(VectorOperators.Comparison,Vector)

compare

public final VectorMask<Short> compare(VectorOperators.Comparison op, long e, VectorMask<Short> m)
Проверяет этот вектор, сравнивая его со скалярным входом, согласно заданной операции сравнения, в ячейках, выбранных маской. Это бинарная операция проверки по каждой ячейке с маской, которая применяет заданную операцию сравнения к каждому значению ячейки, сопоставленному со значением широковещательной рассылки. Результат равен выражению compare(op,e).and(m).
Указано:
compare в классе Vector<Short>
Параметры:
op - операция, используемая для сравнения значений ячеек
e - входной скаляр
m - маска, контролирующая выбор ячеек
Возвращает:
маска результата проверки по каждой ячейке, сравнивается ли этот вектор со входом, согласно выбранному оператору сравнения, и только в ячейках, выбранных маской
См. также:
  • Vector.broadcast(long)
  • Vector.compare(VectorOperators.Comparison,Vector)

blend

public abstract ShortVector blend(Vector<Short> v, VectorMask<Short> m)
Заменяет выбранные ячейки этого вектора соответствующими ячейками из второго входного вектора под управлением маски. Это бинарная операция по каждой ячейке с маской, которая выбирает каждое значение ячейки из одного или другого входа.
  • Для любой ячейки, установленной в маске, новое значение ячейки берется из второго входного вектора и заменяет то, что было в этой ячейке этого вектора.
  • Для любой ячейки, не установленной в маске, замена подавляется, и этот вектор сохраняет исходное значение, хранящееся в этой ячейке.
Следующий псевдокод иллюстрирует это поведение:

 Vector<E> a = ...;
 VectorSpecies<E> species = a.species();
 Vector<E> b = ...;
 b.check(species);
 VectorMask<E> m = ...;
 ETYPE[] ar = a.toArray();
 for (int i = 0; i < ar.length; i++) {
     if (m.laneIsSet(i)) {
         ar[i] = b.lane(i);
     }
 }
 return EVector.fromArray(s, ar, 0);
 
Указано:
blend в классе Vector<Short>
Параметры:
v - второй входной вектор, содержащий значения замены ячеек
m - маска, контролирующая выбор ячеек из второго входного вектора
Возвращает:
результат смешивания элементов ячеек этого вектора с элементами второго входного вектора

addIndex

public abstract ShortVector addIndex(int scale)
Добавляет ячейки этого вектора к соответствующим номерам ячеек, масштабируя их заданным значением. Это унарная операция по каждой ячейке, которая для каждой ячейки N, вычисляет масштабированное значение индекса N*scale и добавляет его к значению, уже находящемуся в ячейке N текущего вектора.

Масштаб не должен быть слишком большим, а размер элемента не должен быть слишком маленьким, чтобы избежать переполнения при вычислении любого из N*scale или VLENGTH*scale, когда результат представлен с использованием типа ячейки вектора ETYPE.

Следующий псевдокод иллюстрирует это поведение:


 Vector<E> a = ...;
 VectorSpecies<E> species = a.species();
 ETYPE[] ar = a.toArray();
 for (int i = 0; i < ar.length; i++) {
     long d = (long)i * scale;
     if (d != (ETYPE) d)  throw ...;
     ar[i] += (ETYPE) d;
 }
 long d = (long)ar.length * scale;
 if (d != (ETYPE) d)  throw ...;
 return EVector.fromArray(s, ar, 0);
 
Указано:
addIndex в классе Vector<Short>
Параметры:
scale - число, на которое умножается каждый индекс ячейки N, обычно 1
Возвращает:
результат увеличения каждого элемента ячейки на соответствующий индекс ячейки N, масштабированный значением scale

blend

public final ShortVector blend(short e, VectorMask<Short> m)
Заменяет выбранные ячейки этого вектора скалярным значением под управлением маски. Это бинарная операция по каждой ячейке с маской, которая выбирает каждое значение ячейки из одного или другого входа. Возвращаемый результат равен выражению blend(broadcast(e),m).
Параметры:
e - входной скаляр, содержащий значение замены ячейки
m - маска, контролирующая выбор ячейки скаляра
Возвращает:
результат смешивания элементов ячеек этого вектора со скалярным значением

blend

public final ShortVector blend(long e, VectorMask<Short> m)
Заменяет выбранные ячейки этого вектора скалярным значением под управлением маски. Это бинарная операция по каждой ячейке с маской, которая выбирает каждое значение ячейки из одного или другого входа. Возвращаемый результат равен выражению blend(broadcast(e),m).
Указано:
blend в классе Vector<Short>
Параметры:
e - входной скаляр, содержащий значение замены ячейки
m - маска, контролирующая выбор ячейки скаляра
Возвращает:
результат смешивания элементов ячеек этого вектора со скалярным значением

slice

public abstract ShortVector slice(int origin, Vector<Short> v1)
Вырезает фрагмент смежных ячеек, начиная с заданной origin ячейки в текущем векторе и продолжая (при необходимости) в непосредственно следующий вектор. Блок из VLENGTH ячеек извлекается в собственный вектор и возвращается.

Это межъячеичная операция, которая сдвигает элементы ячеек вперед из текущего вектора и второго вектора. Оба вектора можно рассматривать как объединенный «фон» длиной 2*VLENGTH, из которого извлекается срез. Ячейка с номером N в выходном векторе копируется из ячейки origin+N входного вектора, если эта ячейка существует, иначе из ячейки origin+N-VLENGTH второго вектора (который гарантированно существует).

Значение origin должно находиться в диапазоне от 0..VLENGTH. В качестве граничных случаев, v.slice(0,w) и v.slice(VLENGTH,w) возвращают v и w, соответственно.

Параметры:
origin - первая входная ячейка для переноса в срез
v1 - второй вектор, логически конкатенированный с первым, перед взятием среза (если опущен, по умолчанию равен нулю)
Возвращает:
непрерывный срез из VLENGTH ячеек, взятых из этого вектора, начиная с указанного начала и продолжающихся (при необходимости) во второй вектор
См. также:
  • Vector.slice(int,Vector,VectorMask)
  • Vector.slice(int)
  • Vector.unslice(int,Vector,int)

slice

public final ShortVector slice(int origin, Vector<Short> w, VectorMask<Short> m)
Вырезает фрагмент смежных ячеек под управлением маски, начиная с заданной origin ячейки в текущем векторе и продолжая (при необходимости) в непосредственно следующий вектор. Блок из VLENGTH ячеек извлекается в собственный вектор и возвращается. Результирующий вектор будет нулевым во всех ячейках, не установленных в данной маске. Установленные в маске ячейки будут содержать данные, скопированные из выбранных ячеек this или v1.

Это межъячеичная операция, которая сдвигает элементы ячеек вперед из текущего вектора и второго вектора. Оба вектора можно рассматривать как объединенный «фон» длиной 2*VLENGTH, из которого извлекается срез. Возвращаемый результат равен выражению broadcast(0).blend(slice(origin,v1),m).

Указано:
slice в классе Vector<Short>
Параметры:
origin - первая входная ячейка для переноса в срез
w - второй вектор, логически конкатенированный с первым, перед взятием среза (если опущен, по умолчанию равен нулю)
m - маска, контролирующая выбор ячеек в результирующий вектор
Возвращает:
непрерывный срез из VLENGTH ячеек, взятых из этого вектора, начиная с указанного начала и продолжающихся (при необходимости) во второй вектор
См. также:
  • Vector.slice(int,Vector)
  • Vector.unslice(int,Vector,int,VectorMask)

slice

public abstract ShortVector slice(int origin)
Вырезает сегмент смежных проходов, начиная с заданного origin прохода в текущем векторе. Блок из VLENGTH проходов, возможно заполненных нулевыми, извлекается в собственный вектор и возвращается. Это удобный метод, который вырезает из одного вектора на расширенном фоне из нулевых проходов. Он эквивалентен slice (origin, broadcast(0)). Его также можно рассматривать как сдвиг проходов с более поздних на более ранние, с нулями, заполняющими освободившиеся проходы в конце вектора. В этом представлении счетчик сдвига равен origin.
Параметры:
origin - первый входной проход для передачи в вырезку
Возвращает:
последние VLENGTH-origin входные проходы, размещённые, начиная с первого прохода вывода, дополненные нулями в конце
См. также:
  • Vector.slice(int,Vector)
  • Vector.unslice(int,Vector,int)

unslice

public abstract ShortVector unslice(int origin, Vector<Short> w, int part)
Обращает вырезку slice(), вставляя текущий вектор в виде вырезки внутри другого "фонового" входного вектора, который рассматривается как один из входов в гипотетическую последующую slice() операцию.

Это операция по проходам, которая переупорядочивает элементы проходов текущего вектора в сторону конца и вставляет их в логическую пару фоновых векторов. Однако будет возвращён только один из пары. Фон формируется путём дублирования второго входного вектора. (Однако вывод никогда не будет содержать двух дубликатов из одного входного прохода.) Проход с номером N во входном векторе копируется в проход origin+N первого фонового вектора, если этот проход существует, иначе в проход origin+N-VLENGTH второго фонового вектора (который гарантированно существует). Первый или второй фоновый вектор, обновлённый с вставленной вырезкой, возвращается. Число part ноль или один выбирает первый или второй обновлённый фоновый вектор.

Значение origin должно быть в диапазоне от 0..VLENGTH. В качестве граничных случаев, v.unslice(0,w,0) и v.unslice(VLENGTH,w,1) оба возвращают v, в то время как v.unslice(0,w,1) и v.unslice(VLENGTH,w,0) оба возвращают w.

Определено в:
unslice в классе Vector<Short>
Параметры:
origin - первый выходной проход, который получит вырезку
w - фоновый вектор, который (как две копии) получит вставленную вырезку
part - номер части результата (либо ноль, либо один)
Возвращает:
либо первую, либо вторую часть пары фоновых векторов w, обновлённых путём вставки этого вектора в указанный исходный пункт
См. также:
  • Vector.slice(int,Vector)
  • Vector.unslice(int,Vector,int,VectorMask)

unslice

public abstract ShortVector unslice(int origin, Vector<Short> w, int part, VectorMask<Short> m)
Обращает вырезку slice(), вставляя (под управлением маски) текущий вектор в виде вырезки внутри другого "фонового" входного вектора, который рассматривается как один из входов в гипотетическую последующую slice() операцию.

Это операция по проходам, которая переупорядочивает элементы проходов текущего вектора вперёд и вставляет его проходы (когда выбраны маской) в логическую пару фоновых векторов. Как и в случае с немаскированной версией этого метода, будет возвращён только один из пары, как указано числом part. Для каждого прохода N, выбранного маской, значение прохода копируется в проход origin+N первого фонового вектора, если этот проход существует, иначе в проход origin+N-VLENGTH второго фонового вектора (который гарантированно существует). Проходы фона сохраняют свои исходные значения, если соответствующие входные проходы N не установлены в маске. Первый или второй фоновый вектор, обновлённый с установленных проходов вставленной вырезки, возвращается. Число part ноль или один выбирает первый или второй обновлённый фоновый вектор.

Определено в:
unslice в классе Vector<Short>
Параметры:
origin - первый выходной проход, который получит вырезку
w - фоновый вектор, который (как две копии) получит вставленную вырезку, если они установлены в m
part - номер части результата (либо ноль, либо один)
m - маска, управляющая выбором проходов из текущего вектора
Возвращает:
либо первую, либо вторую часть пары фоновых векторов w, обновлённых путём вставки выбранных проходов этого вектора в указанный исходный пункт
См. также:
  • Vector.unslice(int,Vector,int)
  • Vector.slice(int,Vector)

unslice

public abstract ShortVector unslice(int origin)
Обращает вырезку slice(), вставляя текущий вектор в виде вырезки в "фоновый" вход из нулевых значений проходов. В сравнении с другими unslice() методами, этот метод возвращает только первую из пары фоновых векторов. Это удобный метод, который возвращает результат unslice (origin, broadcast(0), 0). Его также можно рассматривать как сдвиг проходов с более ранних на более поздние, с нулями, заполняющими освободившиеся проходы в начале вектора. В этом представлении счетчик сдвига равен origin.
Определено в:
unslice в классе Vector<Short>
Параметры:
origin - первый выходной проход, который получит вырезку
Возвращает:
первые VLENGTH-origin входные проходы, размещённые, начиная с указанного исходного пункта, дополненные нулями в начале
См. также:
  • Vector.unslice(int,Vector,int)
  • Vector.slice(int)

rearrange

public abstract ShortVector rearrange(VectorShuffle<Short> m)
Переупорядочивает элементы проходов этого вектора, выбирая проходы под управлением определённого переупорядочения. Это операция по проходам, которая переупорядочивает элементы проходов этого вектора. Для каждого прохода N переупорядочения и для каждого индекса источника прохода I=s.laneSource(N) в переупорядочении, выходной проход N получает значение из входного вектора на проходе I.
Определено в:
rearrange в классе Vector<Short>
Параметры:
m - переупорядочение, управляющее выбором индекса прохода
Возвращает:
переупорядочение элементов проходов этого вектора
См. также:
  • Vector.rearrange(VectorShuffle,VectorMask)
  • Vector.rearrange(VectorShuffle,Vector)
  • VectorShuffle.laneIsValid()

rearrange

public abstract ShortVector rearrange(VectorShuffle<Short> s, VectorMask<Short> m)
Переупорядочивает элементы проходов этого вектора, выбирая проходы под управлением определённого переупорядочения и маски. Это операция по проходам, которая переупорядочивает элементы проходов этого вектора. Для каждого прохода N переупорядочения и для каждого индекса источника прохода I=s.laneSource(N) в переупорядочении, выходной проход N получает значение из входного вектора на проходе I, если маска установлена. В противном случае выходной проход N устанавливается в ноль.

Этот метод возвращает значение следующего псевдокода:


 Vector<E> r = this.rearrange(s.wrapIndexes());
 VectorMask<E> valid = s.laneIsValid();
 if (m.andNot(valid).anyTrue()) throw ...;
 return broadcast(0).blend(r, m);
 
Определено в:
rearrange в классе Vector<Short>
Параметры:
s - переупорядочение, управляющее выбором индекса прохода
m - маска, управляющая применением переупорядочения
Возвращает:
переупорядочение элементов проходов этого вектора
См. также:
  • Vector.rearrange(VectorShuffle)
  • Vector.rearrange(VectorShuffle,Vector)
  • VectorShuffle.laneIsValid()

Перестановка

public abstract ShortVector rearrange(VectorShuffle<Short> s, Vector<Short> v)
Переставляет элементы строк двух векторов, выбирая строки в соответствии со специфической перестановкой, используя как обычные, так и исключительные индексы в перестановке для управления данными. Это операция между строками, которая переставляет элементы строк двух входных векторов (текущего вектора и второго вектора v). Для каждой строки N перестановки и для каждого индекса источника строки I=s.laneSource(N) в перестановке выходная строка N получает значение из первого вектора по строке I если I>=0. В противном случае, исключительный индекс I обёртывается, добавляя VLENGTH к нему, и используется для индексирования второго вектора по индексу I+VLENGTH.

Этот метод возвращает значение этого псевдокода:


 Vector<E> r1 = this.rearrange(s.wrapIndexes());
 // or else: r1 = this.rearrange(s, s.laneIsValid());
 Vector<E> r2 = v.rearrange(s.wrapIndexes());
 return r2.blend(r1,s.laneIsValid());
 
Определено в:
rearrange в классе Vector<Short>
Параметры:
s - перестановка, управляющая выбором строк из обоих входных векторов
v - второй входной вектор
Возвращает:
перестановку элементов строк этого вектора и второго входного вектора
См. также:
  • Vector.rearrange(VectorShuffle)
  • Vector.rearrange(VectorShuffle,VectorMask)
  • VectorShuffle.laneIsValid()
  • Vector.slice(int,Vector)

сжать

public abstract ShortVector compress(VectorMask<Short> m)
Сжимает элементы строк этого вектора, выбирая строки в соответствии с заданной маской. Это операция между строками, которая сжимает элементы строк этого вектора, как выбрано указанной маской. Для каждой строки N маски, если маска в строке N установлена, элемент в строке N входного вектора выбирается и сохраняется в выходной вектор по порядку, начиная со строки 0. Все оставшиеся верхние строки, если таковые имеются, выходного вектора устанавливаются в ноль.
Определено в:
compress в классе Vector<Short>
Параметры:
m - маска, управляющая сжатием
Возвращает:
сжатые элементы строк этого вектора
С:
19

расширить

public abstract ShortVector expand(VectorMask<Short> m)
Расширяет элементы строк этого вектора под управлением определённой маски. Это операция между строками, которая расширяет непрерывные элементы строк этого вектора в строки выходного вектора, как задано указанной маской. Для каждой строки N маски, если маска в строке N установлена, следующий смежный элемент входного вектора, начиная со строки 0, выбирается и сохраняется в выходной вектор по строке N. Все оставшиеся строки выходного вектора, если таковые имеются, устанавливаются в ноль.
Определено в:
expand в классе Vector<Short>
Параметры:
m - маска, управляющая сжатием
Возвращает:
расширенные элементы строк этого вектора
С:
19

selectFrom

public abstract ShortVector selectFrom(Vector<Short> v)
Используя значения индексов, хранящиеся в строках этого вектора, собирает значения, хранящиеся во втором векторе v. Таким образом, второй вектор служит таблицей, элементы которой выбираются по индексам в текущем векторе. Это операция между строками, которая переставляет элементы строк аргументного вектора под управлением этого вектора. Для каждой строки N этого вектора и для каждого значения строки I=this.lane(N) в этом векторе выходная строка N получает значение из аргументного вектора по строке I. Таким образом, результат содержит только значения, хранящиеся в аргументном векторе v, но представленные в порядке, зависящем от значений индексов в this. Результат совпадает с выражением v.rearrange(this.toShuffle()).
Определено в:
selectFrom в классе Vector<Short>
Параметры:
v - вектор, предоставляющий значения результата
Возвращает:
перестановку элементов строк v
См. также:
  • Vector.rearrange(VectorShuffle)

selectFrom

public abstract ShortVector selectFrom(Vector<Short> s, VectorMask<Short> m)
Используя значения индексов, хранящиеся в строках этого вектора, собирает значения, хранящиеся во втором векторе, под управлением маски. Используя значения индексов, хранящиеся в строках этого вектора, собирает значения, хранящиеся во втором векторе v. Таким образом, второй вектор служит таблицей, элементы которой выбираются по индексам в текущем векторе. Строки, не установленные в маске, получают ноль вместо значения из таблицы. Это операция между строками, которая переставляет элементы строк аргументного вектора под управлением этого вектора и маски. Результат совпадает с выражением v.rearrange(this.toShuffle(), m).
Определено в:
selectFrom в классе Vector<Short>
Параметры:
s - вектор, предоставляющий значения результата
m - маска, управляющая выбором из v
Возвращает:
перестановку элементов строк v
См. также:
  • Vector.selectFrom(Vector)
  • Vector.rearrange(VectorShuffle,VectorMask)

битовоеСмешение

public final ShortVector bitwiseBlend(Vector<Short> bits, Vector<Short> mask)
Смешивает биты двух векторов под управлением третьего, который предоставляет биты маски. Это троичная операция по строкам, которая выполняет операцию побитового смешения (a&~c)|(b&c) для каждой строки. Этот метод также эквивалентен выражению lanewise(BITWISE_BLEND, bits, mask).
Параметры:
bits - входные биты для смешения в текущий вектор
mask - битовая маска для включения смешения входных битов
Возвращает:
побитовое смешение заданных битов в текущий вектор под управлением битовой маски
См. также:
  • bitwiseBlend(short,short)
  • bitwiseBlend(short,Vector)
  • bitwiseBlend(Vector,short)
  • VectorOperators.BITWISE_BLEND
  • lanewise(VectorOperators.Ternary,Vector,Vector,VectorMask)

битовоеСмешение

public final ShortVector bitwiseBlend(short bits, short mask)
Смешивает биты вектора и скаляра под управлением другого скаляра, который предоставляет биты маски. Это троичная операция по строкам, которая выполняет операцию побитового смешения (a&~c)|(b&c) для каждой строки. Этот метод также эквивалентен выражению lanewise(BITWISE_BLEND, bits, mask).
Параметры:
bits - входные биты для смешения в текущий вектор
mask - битовая маска для включения смешения входных битов
Возвращает:
побитовое смешение заданных битов в текущий вектор под управлением битовой маски
См. также:
  • bitwiseBlend(Vector,Vector)
  • VectorOperators.BITWISE_BLEND
  • lanewise(VectorOperators.Ternary,short,short,VectorMask)

битовоеСмешение

public final ShortVector bitwiseBlend(short bits, Vector<Short> mask)
Смешивает биты вектора и скаляра под управлением другого вектора, который предоставляет биты маски. Это троичная операция по строкам, которая выполняет операцию побитового смешения (a&~c)|(b&c) для каждой строки. Этот метод также эквивалентен выражению lanewise(BITWISE_BLEND, bits, mask).
Параметры:
bits - входные биты для смешения в текущий вектор
mask - битовая маска для включения смешения входных битов
Возвращает:
побитовое смешение заданных битов в текущий вектор под управлением битовой маски
См. также:
  • bitwiseBlend(Vector,Vector)
  • VectorOperators.BITWISE_BLEND
  • lanewise(VectorOperators.Ternary,short,Vector,VectorMask)

Побитовое объединение

public final ShortVector bitwiseBlend(Vector<Short> bits, short mask)
Объединяет биты двух векторов под управлением скаляра, который предоставляет биты маски. Это тройная операция на уровне элементов, выполняющая побитовое объединение (a&~c)|(b&c) каждого элемента. Этот метод также эквивалентен выражению lanewise(BITWISE_BLEND, bits, mask).
Параметры:
bits - биты входных данных для объединения в текущий вектор
mask - побитовая маска для включения объединения битов входных данных
Возвращает:
побитовое объединение заданных битов в текущий вектор под управлением побитовой маски
См. также:
  • bitwiseBlend(Vector,Vector)
  • VectorOperators.BITWISE_BLEND
  • lanewise(VectorOperators.Ternary,Vector,short,VectorMask)

reduceLanes

public abstract short reduceLanes(VectorOperators.Associative op)
Возвращает значение, накопленное из всех элементов этого вектора. Это ассоциативная операция сокращения по всем элементам, которая применяет указанную операцию ко всем элементам элементов.

Несколько операций сокращения не поддерживают произвольное переупорядочивание своих операндов, но включены здесь из-за их полезности.

  • В случае FIRST_NONZERO, сокращение возвращает значение из элемента с наименьшим номером, отличным от нуля.
  • Все остальные операции сокращения полностью коммутативны и ассоциативны. Реализация может выбрать любой порядок обработки, но всегда будет производить один и тот же результат.
Параметры:
op - операция, используемая для комбинирования значений элементов
Возвращает:
накопленный результат
Исключения:
UnsupportedOperationException - если этот вектор не поддерживает запрошенную операцию
См. также:
  • reduceLanes(VectorOperators.Associative,VectorMask)
  • add(Vector)
  • mul(Vector)
  • min(Vector)
  • max(Vector)
  • and(Vector)
  • or(Vector)
  • VectorOperators.XOR
  • VectorOperators.FIRST_NONZERO

reduceLanes

public abstract short reduceLanes(VectorOperators.Associative op, VectorMask<Short> m)
Возвращает значение, накопленное из выбранных элементов этого вектора, управляемое маской. Это ассоциативная операция сокращения по всем элементам, которая применяет указанную операцию к выбранным элементам.

Если элементы не выбраны, возвращается идентичное значение для операции.

  • Если операция является ADD, XOR, OR, или FIRST_NONZERO, то идентичное значение равно нулю, значение по умолчанию short.
  • Если операция является MUL, то идентичное значение равно единице.
  • Если операция является AND, то идентичное значение равно минус единице (все биты установлены).
  • Если операция является MAX, то идентичное значение равно Short.MIN_VALUE.
  • Если операция является MIN, то идентичное значение равно Short.MAX_VALUE.

Несколько операций сокращения не поддерживают произвольное переупорядочивание своих операндов, но включены здесь из-за их полезности.

  • В случае FIRST_NONZERO, сокращение возвращает значение из элемента с наименьшим номером, отличным от нуля.
  • Все остальные операции сокращения полностью коммутативны и ассоциативны. Реализация может выбрать любой порядок обработки, но всегда будет производить один и тот же результат.
Параметры:
op - операция, используемая для комбинирования значений элементов
m - маска, управляющая выбором элементов
Возвращает:
результирующее значение, накопленное из значений выбранных элементов
Исключения:
UnsupportedOperationException - если этот вектор не поддерживает запрошенную операцию
См. также:
  • reduceLanes(VectorOperators.Associative)

элемент

public abstract short lane(int i)
Получает элемент элемента по индексу i
Параметры:
i - индекс элемента
Возвращает:
элемент элемента по индексу i
Исключения:
IllegalArgumentException - если индекс выходит за пределы диапазона (< 0 || >= length())

withLane

public abstract ShortVector withLane(int i, short e)
Заменяет элемент элемента этого вектора по индексу i значением e. Это операция по всем элементам, и она ведет себя так, как если бы она возвращала результат объединения этого вектора со входным вектором, являющимся результатом трансляции e, и маской, имеющей только один элемент, установленный по индексу i.
Параметры:
i - индекс элемента элемента, который нужно заменить
e - значение, которое нужно поместить
Возвращает:
результат замены элемента элемента этого вектора по индексу i значением e.
Исключения:
IllegalArgumentException - если индекс выходит за пределы диапазона (< 0 || >= length())

toArray

public final short[] toArray()
Возвращает массив типа short[], содержащий все значения элементов. Длина массива совпадает с длиной вектора. Элементы массива хранятся в порядке элементов.

Этот метод ведет себя так, как если бы он сохранил этот вектор в выделенном массиве (используя intoArray) и возвращает массив следующим образом:


   short[] a = new short[this.length()];
   this.intoArray(a, 0);
   return a;
 
Задано:
toArray в классе Vector<Short>
Возвращает:
массив, содержащий значения элементов этого вектора
См. также:
  • ByteVector.toArray()
  • IntVector.toArray()
  • DoubleVector.toArray()

toIntArray

public final int[] toIntArray()
Возвращает массив типа int[] содержащий все значения элементов, преобразованные к типу int. Длина массива совпадает с длиной вектора. Элементы массива преобразуются как при приведении типов и хранятся в порядке элементов. Эта операция может завершиться ошибкой, если тип элемента вектора является float или double, когда элементы содержат дробные или вне диапазона значения. Если какое-либо значение элемента вектора не может быть представлено как int, выбрасывается исключение.
Задано:
toIntArray в классе Vector<Short>
Примечание реализации:
При использовании этого метода с векторами типа ShortVector, не будет потери точности или диапазона, и поэтому не будет выбрасываться UnsupportedOperationException.
Возвращает:
массив типа int[] содержащий значения элементов этого вектора
См. также:
  • Vector.toArray()
  • Vector.toLongArray()
  • Vector.toDoubleArray()
  • IntVector.toArray()

toLongArray

public final long[] toLongArray()
Возвращает массив типа long[] содержащий все значения элементов, преобразованные к типу long. Длина массива совпадает с длиной вектора. Элементы массива преобразуются как при приведении типов и хранятся в порядке элементов. Эта операция может завершиться ошибкой, если тип элемента вектора является float или double, когда элементы содержат дробные или вне диапазона значения. Если какое-либо значение элемента вектора не может быть представлено как long, выбрасывается исключение.
Задано:
toLongArray в классе Vector<Short>
Примечание реализации:
При использовании этого метода с векторами типа ShortVector, не будет потери точности или диапазона, и поэтому не будет выбрасываться UnsupportedOperationException.
Возвращает:
массив типа long[] содержащий значения элементов этого вектора
См. также:
  • Vector.toArray()
  • Vector.toIntArray()
  • Vector.toDoubleArray()
  • LongVector.toArray()

toDoubleArray

public final double[] toDoubleArray()
Возвращает массив типа double[] содержащий все значения проходов, преобразованные к типу double. Длина массива совпадает с длиной вектора. Элементы массива преобразуются как при приведении типов и хранятся в порядке проходов. Эта операция может привести к потере точности, если тип элемента вектора - long.
Определено в:
toDoubleArray в классе Vector<Short>
Примечание о реализации:
При использовании этого метода для векторов типа ShortVector, потери точности не будет.
Возвращает:
массив double[] содержащий значения проходов этого вектора, возможно, округленные до представимых значений double
См. также:
  • Vector.toArray()
  • Vector.toIntArray()
  • Vector.toLongArray()
  • DoubleVector.toArray()

fromArray

public static ShortVector fromArray(VectorSpecies<Short> species, short[] a, int offset)
Загружает вектор из массива типа short[] начиная с определённого смещения. Для каждого прохода вектора, где N - индекс прохода вектора, элемент массива с индексом offset + N помещается в результат вектора по индексу прохода N.
Параметры:
species - требуемый вид вектора
a - массив
offset - смещение в массиве
Возвращает:
вектор, загруженный из массива
Исключения:
IndexOutOfBoundsException - если offset+N < 0 или offset+N >= a.length для любого прохода N в векторе

fromArray

public static ShortVector fromArray(VectorSpecies<Short> species, short[] a, int offset, VectorMask<Short> m)
Загружает вектор из массива типа short[] начиная с определённого смещения, используя маску. Проходы, где маска не установлена, заполняются значением по умолчанию short (ноль). Для каждого прохода вектора, где N - индекс прохода вектора, если проход маски с индексом N установлен, элемент массива с индексом offset + N помещается в вектор по индексу N, в противном случае устанавливается значение по умолчанию для индекса прохода N.
Параметры:
species - вид желаемого вектора
a - массив
offset - смещение в массиве
m - маска, управляющая выбором проходов
Возвращает:
вектор, загруженный из массива
Исключения:
IndexOutOfBoundsException - если offset+N < 0 или offset+N >= a.length для любого прохода N в векторе, где маска установлена

fromArray

public static ShortVector fromArray(VectorSpecies<Short> species, short[] a, int offset, int[] indexMap, int mapOffset)
Считывает новый вектор, состоящий из элементов массива типа short[], используя индексы, полученные путём добавления фиксированного смещения offset к ряду вторичных смещений из карты индексов. Карта индексов — это непрерывный ряд VLENGTH элементов во втором массиве int, начинающийся с определённого mapOffset.

Для каждого прохода вектора, где N - индекс прохода вектора, проход загружается из элемента массива a[f(N)], где f(N) - выражение для отображения индекса offset + indexMap[mapOffset + N]].

Параметры:
species - вид желаемого вектора
a - массив
offset - смещение в массиве, может быть отрицательным, если относительные индексы в карте индексов компенсируют для получения значения в пределах границ массива
indexMap - карта индексов
mapOffset - смещение в карте индексов
Возвращает:
вектор, загруженный из индексированных элементов массива
Исключения:
IndexOutOfBoundsException - если mapOffset+N < 0 или если mapOffset+N >= indexMap.length, или если f(N)=offset+indexMap[mapOffset+N] является недопустимым индексом в a, для любого прохода N в векторе
См. также:
  • toIntArray()

fromArray

public static ShortVector fromArray(VectorSpecies<Short> species, short[] a, int offset, int[] indexMap, int mapOffset, VectorMask<Short> m)
Считывает новый вектор, состоящий из элементов массива типа short[], под управлением маски, и используя индексы, полученные путём добавления фиксированного смещения offset к ряду вторичных смещений из карты индексов. Карта индексов — это непрерывный ряд VLENGTH элементов во втором массиве int, начинающийся с определённого mapOffset.

Для каждого прохода вектора, где N - индекс прохода вектора, если проход установлен в маске, проход загружается из элемента массива a[f(N)], где f(N) - выражение для отображения индекса offset + indexMap[mapOffset + N]]. Неустановленные проходы в результирующем векторе устанавливаются в ноль.

Параметры:
species - вид желаемого вектора
a - массив
offset - смещение в массиве, может быть отрицательным, если относительные индексы в карте индексов компенсируют для получения значения в пределах границ массива
indexMap - карта индексов
mapOffset - смещение в карте индексов
m - маска, управляющая выбором проходов
Возвращает:
вектор, загруженный из индексированных элементов массива
Исключения:
IndexOutOfBoundsException - если mapOffset+N < 0 или если mapOffset+N >= indexMap.length, или если f(N)=offset+indexMap[mapOffset+N] является недопустимым индексом в a, для любого прохода N в векторе, где маска установлена
См. также:
  • toIntArray()

fromCharArray

public static ShortVector fromCharArray(VectorSpecies<Short> species, char[] a, int offset)
Загружает вектор из массива типа char[] начиная с определённого смещения. Для каждого прохода вектора, где N - индекс прохода вектора, элемент массива с индексом offset + N сначала преобразуется в значение типа short, а затем помещается в результат вектора по индексу прохода N.
Параметры:
species - вид желаемого вектора
a - массив
offset - смещение в массиве
Возвращает:
вектор, загруженный из массива
Исключения:
IndexOutOfBoundsException - если offset+N < 0 или offset+N >= a.length для любого прохода N в векторе

fromCharArray

public static ShortVector fromCharArray(VectorSpecies<Short> species, char[] a, int offset, VectorMask<Short> m)
Загружает вектор из массива типа char[] начиная с определённого смещения, используя маску. Проходы, где маска не установлена, заполняются значением по умолчанию short (ноль). Для каждого прохода вектора, где N - индекс прохода вектора, если проход маски с индексом N установлен, элемент массива с индексом offset + N сначала преобразуется в значение типа short, а затем помещается в вектор по индексу N, в противном случае устанавливается значение по умолчанию для индекса прохода N.
Параметры:
species - вид желаемого вектора
a - массив
offset - смещение в массиве
m - маска, управляющая выбором проходов
Возвращает:
вектор, загруженный из массива
Исключения:
IndexOutOfBoundsException - если offset+N < 0 или offset+N >= a.length для любого прохода N в векторе, где маска установлена

fromCharArray

public static ShortVector fromCharArray(VectorSpecies<Short> species, char[] a, int offset, int[] indexMap, int mapOffset)
Считывает новый вектор, состоящий из элементов массива типа char[], используя индексы, полученные путём добавления фиксированного смещения offset к ряду вторичных смещений из карты индексов. Карта индексов — это непрерывный ряд VLENGTH элементов во втором массиве int, начинающийся с определённого mapOffset.

Для каждого прохода вектора, где N - индекс прохода вектора, проход загружается из выражения (short) a[f(N)], где f(N) - выражение для отображения индекса offset + indexMap[mapOffset + N]].

Параметры:
species - вид желаемого вектора
a - массив
offset - смещение в массиве, может быть отрицательным, если относительные индексы в карте индексов компенсируют для получения значения в пределах границ массива
indexMap - карта индексов
mapOffset - смещение в карте индексов
Возвращает:
вектор, загруженный из индексированных элементов массива
Исключения:
IndexOutOfBoundsException - если mapOffset+N < 0 или если mapOffset+N >= indexMap.length, или если f(N)=offset+indexMap[mapOffset+N] является недопустимым индексом в a, для любого прохода N в векторе
См. также:
  • toIntArray()

fromCharArray

public static ShortVector fromCharArray(VectorSpecies<Short> species, char[] a, int offset, int[] indexMap, int mapOffset, VectorMask<Short> m)
Считывает новый вектор, составленный из элементов массива типа char[], под управлением маски и с использованием индексов, полученных путём добавления фиксированного offset к ряду вторичных смещений из карты индексов. Карта индексов — это непрерывная последовательность VLENGTH элементов во втором массиве int , начиная с заданного mapOffset .

Для каждого канала вектора, где N — индекс канала вектора, если канал установлен в маске, канал загружается из выражения (short) a[f(N)], где f(N) — выражение для отображения индекса offset + indexMap[mapOffset + N]]. Неустановленные каналы в результирующем векторе устанавливаются в ноль.

Параметры:
species - вид желаемого вектора
a - массив
offset - смещение в массиве, может быть отрицательным, если относительные индексы в карте индексов компенсируют значение, чтобы оно находилось в границах массива
indexMap - карта индексов
mapOffset - смещение в карте индексов
m - маска, контролирующая выбор канала
Возвращает:
вектор, загруженный из индексированных элементов массива
Исключения:
IndexOutOfBoundsException - если mapOffset+N < 0 или если mapOffset+N >= indexMap.length, или если f(N)=offset+indexMap[mapOffset+N] является недопустимым индексом в a, для любого канала N в векторе, где маска установлена
См. также:
  • toIntArray()

fromMemorySegment

public static ShortVector fromMemorySegment(VectorSpecies<Short> species, MemorySegmentPREVIEW ms, long offset, ByteOrder bo)
Загружает вектор из сегмента памятиПРОСМОТР, начиная со смещения в сегменте памяти. Байты объединяются в примитивные элементы канала в соответствии с указанным порядком байтов. Вектор упорядочивается по каналам в соответствии с порядком памяти.

Этот метод ведет себя так, как будто он возвращает результат вызова fromMemorySegment()ПРОСМОТР следующим образом:


 var m = species.maskAll(true);
 return fromMemorySegment(species, ms, offset, bo, m);
 
Параметры:
species - вид желаемого вектора
ms - сегмент памяти
offset - смещение в сегменте памяти
bo - желаемый порядок байтов
Возвращает:
вектор, загруженный из сегмента памяти
Исключения:
IndexOutOfBoundsException - если offset+N*2 < 0 или offset+N*2 >= ms.byteSize() для любого канала N в векторе
IllegalArgumentException - если сегмент памяти — сегмент кучи, который не поддерживается массивом byte[].
IllegalStateException - если сессия сегмента памяти не активна или доступ происходит из потока, отличного от потока, владеющего сессией.
С:
19

fromMemorySegment

public static ShortVector fromMemorySegment(VectorSpecies<Short> species, MemorySegmentPREVIEW ms, long offset, ByteOrder bo, VectorMask<Short> m)
Загружает вектор из сегмента памятиПРОСМОТР, начиная со смещения в сегменте памяти и используя маску. Каналы, где маска не установлена, заполняются значением по умолчанию short (ноль). Байты объединяются в примитивные элементы канала в соответствии с указанным порядком байтов. Вектор упорядочивается по каналам в соответствии с порядком памяти.

Следующий псевдокод иллюстрирует поведение:


 var slice = ms.asSlice(offset);
 short[] ar = new short[species.length()];
 for (int n = 0; n < ar.length; n++) {
     if (m.laneIsSet(n)) {
         ar[n] = slice.getAtIndex(ValuaLayout.JAVA_SHORT.withByteAlignment(1), n);
     }
 }
 ShortVector r = ShortVector.fromArray(species, ar, 0);
 
Примечание реализации:
Эта операция, вероятно, будет более эффективной, если указанный порядок байтов совпадает с родным порядком платформы, так как этому методу не нужно будет переупорядочивать байты значений канала.
Параметры:
species - вид желаемого вектора
ms - сегмент памяти
offset - смещение в сегменте памяти
bo - желаемый порядок байтов
m - маска, контролирующая выбор канала
Возвращает:
вектор, загруженный из сегмента памяти
Исключения:
IndexOutOfBoundsException - если offset+N*2 < 0 или offset+N*2 >= ms.byteSize() для любого канала N в векторе, где маска установлена
IllegalArgumentException - если сегмент памяти — сегмент кучи, который не поддерживается массивом byte[].
IllegalStateException - если сессия сегмента памяти не активна или доступ происходит из потока, отличного от потока, владеющего сессией.
С:
19

intoArray

public final void intoArray(short[] a, int offset)
Сохраняет этот вектор в массив типа short[], начиная со смещения.

Для каждого канала вектора, где N — индекс канала вектора, элемент канала с индексом N сохраняется в элемент массива a[offset+N].

Параметры:
a - массив типа short[]
offset - смещение в массиве
Исключения:
IndexOutOfBoundsException - если offset+N < 0 или offset+N >= a.length для любого канала N в векторе

intoArray

public final void intoArray(short[] a, int offset, VectorMask<Short> m)
Сохраняет этот вектор в массив типа short[], начиная со смещения и используя маску.

Для каждого канала вектора, где N — индекс канала вектора, элемент канала с индексом N сохраняется в элемент массива a[offset+N]. Если канал маски в N не установлен, соответствующий элемент массива a[offset+N] остаётся неизменным.

Проверка диапазона массива выполняется для каналов, где маска установлена. Каналы, где маска не установлена, не сохраняются и не должны соответствовать законным элементам a. То есть, неустановленные каналы могут соответствовать индексам массива меньше нуля или за пределами конца массива.

Параметры:
a - массив типа short[]
offset - смещение в массиве
m - маска, контролирующая сохранение каналов
Исключения:
IndexOutOfBoundsException - если offset+N < 0 или offset+N >= a.length для любого канала N в векторе, где маска установлена

intoArray

public final void intoArray(short[] a, int offset, int[] indexMap, int mapOffset)
Разбрасывает этот вектор в массив типа short[] с использованием индексов, полученных путём добавления фиксированного offset к ряду вторичных смещений из карты индексов. Карта индексов — это непрерывная последовательность VLENGTH элементов во втором массиве int , начиная с заданного mapOffset .

Для каждого канала вектора, где N — индекс канала вектора, элемент канала с индексом N сохраняется в элемент массива a[f(N)], где f(N) — выражение для отображения индекса offset + indexMap[mapOffset + N]].

Параметры:
a - массив
offset - смещение для комбинирования со смещениями карты индексов
indexMap - карта индексов
mapOffset - смещение в карте индексов
Исключения:
IndexOutOfBoundsException - если mapOffset+N < 0 или если mapOffset+N >= indexMap.length, или если f(N)=offset+indexMap[mapOffset+N] является недопустимым индексом в a, для любого канала N в векторе
См. также:
  • toIntArray()

intoArray

public final void intoArray(short[] a, int offset, int[] indexMap, int mapOffset, VectorMask<Short> m)
Разбрасывает этот вектор в массив типа short[], под управлением маски, и с использованием индексов, полученных путём добавления фиксированного offset к ряду вторичных смещений из карты индексов. Карта индексов — это непрерывная последовательность VLENGTH элементов во втором массиве int , начиная с заданного mapOffset .

Для каждого канала вектора, где N — индекс канала вектора, если канал маски с индексом N установлен, элемент канала с индексом N сохраняется в элемент массива a[f(N)], где f(N) — выражение для отображения индекса offset + indexMap[mapOffset + N]].

Параметры:
a - массив
offset - смещение для комбинирования со смещениями карты индексов
indexMap - карта индексов
mapOffset - смещение в карте индексов
m - маска
Исключения:
IndexOutOfBoundsException - если mapOffset+N < 0 или если mapOffset+N >= indexMap.length, или если f(N)=offset+indexMap[mapOffset+N] является недопустимым индексом в a, для любого канала N в векторе, где маска установлена
См. также:
  • toIntArray()

intoCharArray

public final void intoCharArray(char[] a, int offset)
Записывает этот вектор в массив типа char[], начиная с указанного смещения.

Для каждой векторной дорожки, где N — индекс векторной дорожки, элемент дорожки с индексом N сначала приводится к типу char, а затем записывается в элемент массива a[offset+N].

Parameters:
a - массив типа char[]
offset - смещение в массиве
Throws:
IndexOutOfBoundsException - если offset+N < 0 или offset+N >= a.length для любой дорожки N в векторе

intoCharArray

public final void intoCharArray(char[] a, int offset, VectorMask<Short> m)
Записывает этот вектор в массив типа char[], начиная со смещения и используя маску.

Для каждой векторной дорожки, где N — индекс векторной дорожки, элемент дорожки с индексом N сначала приводится к типу char, а затем записывается в элемент массива a[offset+N]. Если дорожка маски в N не установлена, соответствующий элемент массива a[offset+N] остается неизменным.

Проверка диапазона массива выполняется для дорожек, где маска установлена. Дорожки, где маска не установлена, не записываются и не должны соответствовать законным элементам a. То есть, для не установленных дорожек индексы массива могут быть меньше нуля или за пределами массива.

Parameters:
a - массив типа char[]
offset - смещение в массиве
m - маска, управляющая записью дорожек
Throws:
IndexOutOfBoundsException - если offset+N < 0 или offset+N >= a.length для любой дорожки N в векторе, где маска установлена

intoCharArray

public final void intoCharArray(char[] a, int offset, int[] indexMap, int mapOffset)
Разбрасывает этот вектор по массиву типа char[], используя индексы, полученные путем добавления фиксированного offset к ряду вторичных смещений из карты индексов. Карта индексов — это непрерывная последовательность VLENGTH элементов во втором массиве int, начиная с заданного mapOffset.

Для каждой векторной дорожки, где N — индекс векторной дорожки, элемент дорожки с индексом N сначала приводится к типу char, а затем записывается в элемент массива a[f(N)], где f(N) — выражение отображения индекса offset + indexMap[mapOffset + N]].

Parameters:
a - массив
offset - смещение для объединения со смещениями карты индексов
indexMap - карта индексов
mapOffset - смещение в карте индексов
Throws:
IndexOutOfBoundsException - если mapOffset+N < 0 или если mapOffset+N >= indexMap.length, или если f(N)=offset+indexMap[mapOffset+N] является недопустимым индексом в a, для любой дорожки N в векторе
See Also:
  • toIntArray()

intoCharArray

public final void intoCharArray(char[] a, int offset, int[] indexMap, int mapOffset, VectorMask<Short> m)
Разбрасывает этот вектор в массив типа char[], под управлением маски, и используя индексы, полученные путем добавления фиксированного offset к ряду вторичных смещений из карты индексов. Карта индексов — это непрерывная последовательность VLENGTH элементов во втором массиве int, начиная с заданного mapOffset.

Для каждой векторной дорожки, где N — индекс векторной дорожки, если дорожка маски с индексом N установлена, то элемент дорожки с индексом N сначала приводится к типу char, а затем записывается в элемент массива a[f(N)], где f(N) — выражение отображения индекса offset + indexMap[mapOffset + N]].

Parameters:
a - массив
offset - смещение для объединения со смещениями карты индексов
indexMap - карта индексов
mapOffset - смещение в карте индексов
m - маска
Throws:
IndexOutOfBoundsException - если mapOffset+N < 0 или если mapOffset+N >= indexMap.length, или если f(N)=offset+indexMap[mapOffset+N] является недопустимым индексом в a, для любой дорожки N в векторе, где маска установлена
See Also:
  • toIntArray()

intoMemorySegment

public final void intoMemorySegment(MemorySegmentPREVIEW ms, long offset, ByteOrder bo)
Записывает этот вектор в сегмент памятиПРЕДПРОСМОТР, начиная со смещения, используя явное порядок байтов.

Байты извлекаются из примитивных элементов дорожки в соответствии с указанным порядком байтов. Дорожки записываются в соответствии с их порядком памяти.

Этот метод ведет себя так, как будто он вызывает intoMemorySegment()ПРЕДПРОСМОТР следующим образом:


 var m = maskAll(true);
 intoMemorySegment(ms, offset, bo, m);
 
Specified by:
intoMemorySegment в классе Vector<Short>
Parameters:
ms - сегмент памяти
offset - смещение в сегменте памяти
bo - порядок байтов
Since:
19

intoMemorySegment

public final void intoMemorySegment(MemorySegmentPREVIEW ms, long offset, ByteOrder bo, VectorMask<Short> m)
Записывает этот вектор в сегмент памятиПРЕДПРОСМОТР, начиная со смещения, используя явное порядок байтов и маску.

Байты извлекаются из примитивных элементов дорожки в соответствии с указанным порядком байтов. Дорожки записываются в соответствии с их порядком памяти.

Следующий псевдокод иллюстрирует поведение, где JAVA_E — расположение типа примитивного элемента, ETYPE — примитивный тип элемента, а EVector — примитивный векторный тип для этого вектора:


 ETYPE[] a = this.toArray();
 var slice = ms.asSlice(offset)
 for (int n = 0; n < a.length; n++) {
     if (m.laneIsSet(n)) {
         slice.setAtIndex(ValueLayout.JAVA_E.withBitAlignment(8), n);
     }
 }
 
Specified by:
intoMemorySegment в классе Vector<Short>
Parameters:
ms - сегмент памяти
offset - смещение в сегменте памяти
bo - порядок байтов
m - маска, контролирующая выбор дорожки
Since:
19

reinterpretAsBytes

public final ByteVector reinterpretAsBytes()
Представляет этот вектор как вектор с той же формой и содержимым, но типом дорожки byte, где байты извлекаются из дорожек в соответствии с порядком little-endian. Это удобный метод для выражения reinterpretShape(species().withLanes(byte.class)). Его можно рассматривать как обратный к различным методам, которые объединяют байты в более крупные дорожки внутри одного и того же вектора, такие как Vector.reinterpretAsInts().
Specified by:
reinterpretAsBytes в классе Vector<Short>
Returns:
a ByteVector с той же формой и информационным содержанием
See Also:
  • Vector.reinterpretShape(VectorSpecies,int)
  • IntVector.intoMemorySegment(java.lang.foreign.MemorySegment, long, java.nio.ByteOrder)ПРЕДПРОСМОТР
  • FloatVector.intoMemorySegment(java.lang.foreign.MemorySegment, long, java.nio.ByteOrder)ПРЕДПРОСМОТР
  • VectorSpecies.withLanes(Class)

viewAsIntegralLanes

public final ShortVector viewAsIntegralLanes()
Представляет этот вектор как вектор с той же формой, длиной и содержимым, но типом дорожки, который не является типом с плавающей запятой. Это переинтерпретация дорожек в виде целочисленного типа. Как следствие, этот метод не изменяет VSHAPE или VLENGTH, и не происходит изменения битового содержимого вектора. Если тип дорожки вектора уже целочисленный тип, возвращается тот же вектор без изменений. Этот метод возвращает значение этого выражения: convert(conv,0), где conv — VectorOperators.Conversion.ofReinterpret(E.class,F.class), а F — тип без плавающей запятой того же размера, что и E.
Specified by:
viewAsIntegralLanes в классе Vector<Short>
Returns:
исходный вектор, переинтерпретированный как вектор без плавающей запятой
See Also:
  • VectorOperators.Conversion.ofReinterpret(Class,Class)
  • Vector.convert(VectorOperators.Conversion,int)

viewAsFloatingLanes

public final Vector<?> viewAsFloatingLanes()
Представление этого вектора как вектора с той же формой, длиной и содержимым, но типом данных для элементов — плавающей точкой. Это переинтерпретация типа данных элементов на уровне элементов. Таким образом, этот метод не изменяет VSHAPE или VLENGTH, и содержимое вектора не изменяется на битовом уровне. Если тип данных элементов вектора уже является типом с плавающей точкой, возвращается тот же вектор без изменений. Если размер элемента вектора не соответствует размеру любого типа с плавающей точкой, выбрасывается IllegalArgumentException . Этот метод возвращает значение этого выражения: convert(conv,0), где conv — VectorOperators.Conversion.ofReinterpret(E.class,F.class), а F — тип с плавающей точкой того же размера, что и E, если такой тип существует.
Specified by:
viewAsFloatingLanes in class Vector<Short>
Implementation Note:
Этот метод всегда выбрасывает UnsupportedOperationException, так как не существует типа с плавающей точкой такого же размера, что и short. Возвращаемый тип этого метода условно обозначен как Vector<?>. В будущих версиях этого API тип возвращаемого значения может измениться, если появятся дополнительные типы с плавающей точкой.
Returns:
исходный вектор, переинтерпретированный как вектор с плавающей точкой
See Also:
  • VectorOperators.Conversion.ofReinterpret(Class,Class)
  • Vector.convert(VectorOperators.Conversion,int)

toString

public final String toString()
Возвращает строковое представление этого вектора в формате "[0,1,2...]", отображая значения элементов этого вектора в порядке следования элементов. Строка генерируется как при вызове Arrays.toString(), соответствующим массиву short возвращаемого методом this.toArray().
Specified by:
toString in class Vector<Short>
Returns:
строка вида "[0,1,2...]", отображающая значения элементов вектора

equals

public final boolean equals(Object obj)
Указывает, идентичен ли этот вектор какому-либо другому объекту. Два вектора идентичны только в том случае, если они имеют одинаковые виды и одинаковые значения элементов в том же порядке.

Сравнение значений элементов производится как при вызове Arrays.equals(), соответствующим массивам, возвращаемым методом toArray() для обоих векторов.

Specified by:
equals in class Vector<Short>
Parameters:
obj - объект-ссылка, с которым нужно сравнить.
Returns:
является ли этот вектор идентичным какому-либо другому объекту
See Also:
  • Vector.eq(jdk.incubator.vector.Vector<E>)

hashCode

public final int hashCode()
Возвращает значение хэш-кода для вектора, основанные на значениях элементов и виде вектора.
Specified by:
hashCode in class Vector<Short>
Returns:
значение хэш-кода для этого вектора
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

species

public final VectorSpecies<Short> species()
Описание скопировано из класса: Vector
Возвращает вид этого вектора.
Specified by:
species in class Vector<E>
Returns:
вид этого вектора

check

public final <F> Vector<F> check(VectorSpecies<F> species)
Описание скопировано из класса: Vector
Проверяет, что у этого вектора задан указанный вид, и возвращает этот вектор без изменений. Эффект аналогичен этому псевдокоду: species == species() ? this : throw new ClassCastException().
Specified by:
check in class Vector<E>
Type Parameters:
F - упакованный тип элемента требуемого вида
Parameters:
species - требуемый вид
Returns:
тот же вектор
See Also:
  • Vector.check(Class)
  • VectorMask.check(VectorSpecies)
  • VectorShuffle.check(VectorSpecies)

check

public final <F> Vector<F> check(Class<F> elementType)
Проверяет, что у этого вектора задан указанный тип элемента, и возвращает этот вектор без изменений. Эффект аналогичен этому псевдокоду: elementType == species().elementType() ? this : throw new ClassCastException().
Specified by:
check in class Vector<E>
Type Parameters:
F - упакованный тип элемента требуемого типа данных
Parameters:
elementType - требуемый тип данных элементов
Returns:
тот же вектор
See Also:
  • VectorSpecies.check(Class)
  • VectorMask.check(Class)
  • Vector.check(VectorSpecies)
  • VectorShuffle.check(VectorSpecies)

maskAll

public final VectorMask<Short> maskAll(boolean bit)
Возвращает маску того же вида, что и у этого вектора, где каждый элемент установлен или сброшен в соответствии с заданным одиночным булевым значением, которое транслируется на все элементы.

Этот метод возвращает значение этого выражения: species().maskAll(bit).

Specified by:
maskAll in class Vector<E>
Parameters:
bit - заданный бит маски, который должен быть продублирован
Returns:
маска, где каждый элемент установлен или сброшен в соответствии с заданным битом
See Also:
  • VectorSpecies.maskAll(boolean)

reinterpretAsShorts

public ShortVector reinterpretAsShorts()
Переинтерпретирует этот вектор как вектор с той же формой и содержимым, но типом данных элементов — short, где элементы собираются из последовательных байтов в соответствии с порядком little-endian. Это удобный метод для выражения reinterpretShape(species().withLanes(short.class)). Его можно рассматривать как обратное преобразование к Vector.reinterpretAsBytes().
Specified by:
reinterpretAsShorts in class Vector<E>
Returns:
вектор типа ShortVector с той же формой и информационным содержанием

reinterpretAsInts

public IntVector reinterpretAsInts()
Переинтерпретирует этот вектор как вектор с той же формой и содержимым, но типом данных элементов — int, где элементы собираются из последовательных байтов в соответствии с порядком little-endian. Это удобный метод для выражения reinterpretShape(species().withLanes(int.class)). Его можно рассматривать как обратное преобразование к Vector.reinterpretAsBytes().
Specified by:
reinterpretAsInts in class Vector<E>
Returns:
вектор типа IntVector с той же формой и информационным содержанием

reinterpretAsLongs

public LongVector reinterpretAsLongs()
Переинтерпретирует этот вектор как вектор с той же формой и содержимым, но типом данных элементов — long, где элементы собираются из последовательных байтов в соответствии с порядком little-endian. Это удобный метод для выражения reinterpretShape(species().withLanes(long.class)). Его можно рассматривать как обратное преобразование к Vector.reinterpretAsBytes().
Specified by:
reinterpretAsLongs in class Vector<E>
Returns:
вектор типа LongVector с той же формой и информационным содержанием

reinterpretAsFloats

public FloatVector reinterpretAsFloats()
Переинтерпретирует этот вектор как вектор с той же формой и содержимым, но типом данных элементов — float, где элементы собираются из последовательных байтов в соответствии с порядком little-endian. Это удобный метод для выражения reinterpretShape(species().withLanes(float.class)). Его можно рассматривать как обратное преобразование к Vector.reinterpretAsBytes().
Specified by:
reinterpretAsFloats in class Vector<E>
Returns:
вектор типа FloatVector с той же формой и информационным содержанием

reinterpretAsDoubles

public DoubleVector reinterpretAsDoubles()
Переинтерпретирует этот вектор как вектор с той же формой и содержимым, но типом данных элементов — double, где элементы собираются из последовательных байтов в соответствии с порядком little-endian. Это удобный метод для выражения reinterpretShape(species().withLanes(double.class)). Его можно рассматривать как обратное преобразование к Vector.reinterpretAsBytes().
Specified by:
reinterpretAsDoubles in class Vector<E>
Returns:
вектор типа DoubleVector с той же формой и информационным содержанием

convert

public final <F> Vector<F> convert(VectorOperators.Conversion<Short,F> conv, int part)
Преобразование этого вектора в вектор той же формы и нового типа элементов, преобразуя значения входов из текущего ETYPE в новый тип (называемый FTYPE здесь) в соответствии с указанным преобразованием. Это операция, инвариантная к форме по каналам, которая копирует ETYPE значения из входного вектора в соответствующие FTYPE значения в результате. В зависимости от выбранного преобразования, эта операция может либо расширять или сужать свой логический результат, в этом случае ненулевое part число может дополнительно управлять выбором и направлением логического результата в физический выходной вектор.

Каждый конкретный тип преобразования описывается константой преобразования в классе VectorOperators. Каждая операция преобразования имеет указанный тип области и тип диапазона. Тип области должен точно соответствовать типу канала входного вектора, а тип диапазона определяет тип канала выходных векторов.

Операция преобразования может быть классифицирована как (соответственно) выполняемая на месте, расширяющая или сужающая, в зависимости от того, равна ли (соответственно) длина в битах её типа области, меньше или больше длины в битах её типа диапазона.

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

Если интерпретирующее преобразование сужает, оно обрезает старшие биты входных данных. Если оно расширяет, оно заполняет старшие биты вывода нулевыми битами, если нет соответствующих входных битов.

Расширяющее преобразование, такое как S2I (short значение в int), принимает скалярное значение и представляет его в более крупном формате (всегда с избыточностью информации). Сужающее преобразование, такое как D2F (double значение в float), принимает скалярное значение и представляет его в более компактном формате (всегда с потерей информации). Некоторые преобразования на месте также могут включать потерю информации, такие как L2D (long значение в double), или F2I (float значение в int). Интерпретирующие преобразования на месте не являются потерянными, если только битовое значение каким-либо образом не является допустимым в типе выходных данных. Преобразование битового шаблона NaN может отбросить биты из мантиссы NaN.

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

В качестве примера, преобразование из byte в long (M=8 ) отбросит 87,5% входных значений, чтобы преобразовать оставшиеся 12,5% в просторные long каналы выходного вектора. Обратное преобразование преобразует обратно все большие результаты, но потратит 87,5% каналов в выходном векторе. Преобразования на месте (M=1) передают все свои результаты в один выходной вектор, не тратя каналы.

Для управления деталями этих расширений и сужений, ненулевой параметр part выбирает частичные результаты из расширений или направляет результаты сужений в соответствующие места следующим образом:

  • расширение на M: part должен быть в диапазоне [0..M-1], и выбирает блок из VLENGTH/M входных каналов, начиная с исходного канала в part*VLENGTH/M.

    VLENGTH/M выходные каналы представляют собой частичный срез всего логического результата преобразования, заполняющего весь физический выходной вектор.

  • сужение на M: part должен быть в диапазоне [-M+1..0], и направляет все VLENGTH входные каналы в выходной вектор, расположенный в исходном канале -part*VLENGTH. Всего VLENGTH*M выходных каналов, и те, которые не содержат преобразованные входные значения, заполняются нулями.

    Группа таких выходных векторов с логическими частями результата, направленными в различные блоки, может быть собрана заново с помощью поразрядного или (для чисел с плавающей точкой) оператора FIRST_NONZERO.

  • на месте (M=1): part должно быть равно нулю. Оба вектора имеют одинаковый VLENGTH. Результат всегда расположен в исходном канале ноля.

Этот метод является ограниченной версией более общего, но менее часто используемого метода изменения формы convertShape(). Результат этого метода такой же, как у выражения this.convertShape(conv, rsp, this.broadcast(part)), где выходной вид — rsp=this.species().withLanes(FTYPE.class).

Specified by:
convert в классе Vector<E>
Type Parameters:
F - упакованный тип элемента вида
Parameters:
conv - желаемое скалярное преобразование для применения по каналам
part - номер части результата или ноль, если не расширяется и не сужается
Returns:
вектор, преобразованный по форме и типу элемента из этого вектора
See Also:
  • VectorOperators.I2L
  • VectorOperators.Conversion.ofCast(Class,Class)
  • VectorSpecies.partLimit(VectorSpecies,boolean)
  • Vector.viewAsFloatingLanes()
  • Vector.viewAsIntegralLanes()
  • Vector.convertShape(VectorOperators.Conversion,VectorSpecies,int)
  • Vector.reinterpretShape(VectorSpecies,int)

castShape

public final <F> Vector<F> castShape(VectorSpecies<F> toSpecies, int part)
Удобный метод для преобразования вектора из одного типа каналов в другой, с переформатированием при необходимости при изменении размеров каналов. Этот метод возвращает значение этого выражения: convertShape(conv,rsp,part), где conv — VectorOperators.Conversion.ofCast(E.class,F.class).

Если у старого и нового видов разная форма, это операция изменения формы, и она может иметь особые затраты реализации.

Specified by:
castShape в классе Vector<E>
Type Parameters:
F - упакованный тип элемента выходного вида
Parameters:
toSpecies - желаемый выходной вид
part - номер части результата или ноль, если не расширяется и не сужается
Returns:
вектор, преобразованный по типу элемента из этого вектора
See Also:
  • VectorOperators.Conversion.ofCast(Class,Class)
  • Vector.convertShape(VectorOperators.Conversion,VectorSpecies,int)

convertShape

public abstract <F> Vector<F> convertShape(VectorOperators.Conversion<Short,F> conv, VectorSpecies<F> rsp, int part)
Преобразует этот вектор в вектор заданного вида, формы и типа элементов, преобразуя значения полос из текущего ETYPE в новый тип полосы (называемый FTYPE здесь) в соответствии с указанным преобразованием преобразования. Это операция над полосами, которая копирует ETYPE значения из входного вектора в соответствующие FTYPE значения в результате.

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

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

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


 FTYPE scalar_conversion_op(ETYPE s);
 EVector a = ...;
 VectorSpecies<F> rsp = ...;
 int part = ...;
 VectorSpecies<E> dsp = a.species();
 int domlen = dsp.length();
 int ranlen = rsp.length();
 FTYPE[] logical = new FTYPE[domlen];
 for (int i = 0; i < domlen; i++) {
   logical[i] = scalar_conversion_op(a.lane(i));
 }
 FTYPE[] physical;
 if (domlen == ranlen) { // in-place
     assert part == 0; //else AIOOBE
     physical = logical;
 } else if (domlen > ranlen) { // expanding
     int M = domlen / ranlen;
     assert 0 <= part && part < M; //else AIOOBE
     int origin = part * ranlen;
     physical = Arrays.copyOfRange(logical, origin, origin + ranlen);
 } else { // (domlen < ranlen) // contracting
     int M = ranlen / domlen;
     assert 0 >= part && part > -M; //else AIOOBE
     int origin = -part * domlen;
     System.arraycopy(logical, 0, physical, origin, domlen);
 }
 return FVector.fromArray(ran, physical, 0);
 
Определено в:
convertShape в классе Vector<E>
Параметры типа:
F - тип упакованного элемента выходного вида
Параметры:
conv - желаемое скалярное преобразование для применения к полосам
rsp - желаемый выходной вид
part - номер части результата или ноль, если ни расширение, ни сжатие не используются
Возвращает:
вектор, преобразованный по типу элемента из этого вектора
См. также:
  • Vector.convert(VectorOperators.Conversion,int)
  • Vector.castShape(VectorSpecies,int)
  • Vector.reinterpretShape(VectorSpecies,int)

getPayload

protected final Object getPayload()

© 1993, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/jdk.incubator.vector/jdk/incubator/vector/ShortVector.html

Spec-Zone.ru

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