Spec-Zone.ru › OpenJDK 27

Класс ShortVector

java.lang.Object
jdk.incubator.vector.Vector<Short>
jdk.incubator.vector.ShortVector
public abstract sealed class ShortVector extends Vector<Short>
Специализированный 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, MemorySegment ms, long offset, ByteOrder bo)
Загружает вектор из сегмента памяти, начиная с указанного смещения в сегменте памяти.
static ShortVector fromMemorySegment(VectorSpecies<Short> species, MemorySegment 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(MemorySegment ms, long offset, ByteOrder bo)
Сохраняет этот вектор в сегмент памяти, начиная с указанного смещения и используя явный порядок байтов.
final void intoMemorySegment(MemorySegment 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> shuffle)
Изменяет порядок элементов этого вектора, выбирая их под управлением заданной перестановки.
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; байты извлекаются из элементов в порядке от младшего к старшему.
DoubleVector reinterpretAsDoubles()
Интерпретирует этот вектор как вектор той же формы и с тем же содержимым, но с типом элементов double; элементы составляются из последовательных байтов в порядке от младшего к старшему.
FloatVector reinterpretAsFloats()
Интерпретирует этот вектор как вектор той же формы и с тем же содержимым, но с типом элементов float; элементы составляются из последовательных байтов в порядке от младшего к старшему.
IntVector reinterpretAsInts()
Интерпретирует этот вектор как вектор той же формы и с тем же содержимым, но с типом элементов int; элементы составляются из последовательных байтов в порядке от младшего к старшему.
LongVector reinterpretAsLongs()
Интерпретирует этот вектор как вектор той же формы и с тем же содержимым, но с типом элементов long; элементы составляются из последовательных байтов в порядке от младшего к старшему.
ShortVector reinterpretAsShorts()
Интерпретирует этот вектор как вектор той же формы и с тем же содержимым, но с типом элементов short; элементы составляются из последовательных байтов в порядке от младшего к старшему.
abstract ShortVector selectFrom(Vector<Short> v)
Используя значения индексов, хранящиеся в элементах этого вектора, собирает значения из второго вектора v.
abstract ShortVector selectFrom(Vector<Short> v1, Vector<Short> v2)
Используя значения, хранящиеся в элементах этого вектора, собирает значения из второго вектора v1 и третьего вектора v2.
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)
Выполняет обратное преобразование среза, вставляя текущий вектор как срез в «фоновый» входной вектор, состоящий из нулевых значений.
abstract ShortVector unslice(int origin, Vector<Short> w, int part)
Выполняет обратное преобразование среза, вставляя текущий вектор как срез в другой «фоновый» входной вектор, который рассматривается как один из входов гипотетической последующей операции slice().
abstract ShortVector unslice(int origin, Vector<Short> w, int part, VectorMask<Short> m)
Выполняет обратное преобразование среза, вставляя текущий вектор как срез (под управлением маски) в другой «фоновый» входной вектор, который рассматривается как один из входов гипотетической последующей операции slice().
final Vector<?> viewAsFloatingLanes()
Представляет этот вектор как вектор той же формы, длины и с тем же содержимым, но с типом элементов с плавающей точкой.
final ShortVector viewAsIntegralLanes()
Представляет этот вектор как вектор той же формы, длины и с тем же содержимым, но с типом элементов, не являющимся типом с плавающей точкой.
abstract ShortVector withLane(int i, short e)
Заменяет элемент этого вектора с индексом i значением e.
static ShortVector zero(VectorSpecies<Short> species)
Возвращает вектор заданного вида, у которого все элементы равны нулю — значению примитивного типа по умолчанию.

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

bitSize, byteSize, compare, elementSize, elementType, length, reduceLanesToLong, reduceLanesToLong, reinterpretShape, shape, toShuffle
Модификатор и тип Метод Описание
abstract int bitSize()
Возвращает общий размер этого вектора в битах.
abstract int byteSize()
Возвращает общий размер этого вектора в байтах.
abstract VectorMask<Short> compare(VectorOperators.Comparison op, Vector<Short> v, VectorMask<Short> m)
Проверяет этот вектор, сравнивая его с другим входным вектором согласно заданной операции сравнения в элементах, выбранных маской.
abstract int elementSize()
Возвращает размер каждого элемента этого вектора в битах.
abstract Class<Short> elementType()
Возвращает примитивный тип элемента (ETYPE) этого вектора.
abstract int length()
Возвращает количество элементов, или длину вектора (VLENGTH).
abstract long reduceLanesToLong(VectorOperators.Associative op)
Возвращает значение, накопленное по всем элементам этого вектора.
abstract long reduceLanesToLong(VectorOperators.Associative op, VectorMask<Short> m)
Возвращает значение, накопленное по выбранным элементам этого вектора, определяемым маской.
abstract <F> Vector<F> reinterpretShape(VectorSpecies<F> species, int part)
Преобразует этот вектор в вектор заданного вида с типом элемента F, переинтерпретируя байты этого вектора без преобразования значений.
abstract VectorShape shape()
Возвращает форму этого вектора.
abstract VectorShuffle<Short> toShuffle()
Преобразует этот вектор в перемешивание, преобразуя значения элементов в int и рассматривая их как исходные индексы.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

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.broadcast(this.species(), (ETYPE)e), где EVector — класс вектора, соответствующий типу элементов этого вектора ETYPE.

Значение long e должно быть точно представимо типом ETYPE вида этого вектора, так чтобы e==(long)(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 должно быть точно представимо типом ETYPE вида вектора, так чтобы 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).
Параметры:
e — входное скалярное значение
m — маска, управляющая выбором элементов
Возвращает:
результат сложения каждого элемента этого вектора со скалярным значением
См. также:
  • 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).

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

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

sub

public final ShortVector sub(short e)
Вычитает входное скалярное значение из этого вектора. Это поэлементная бинарная операция с маской, которая применяет примитивную операцию вычитания (-) к каждому элементу. Этот метод также эквивалентен выражению lanewise(SUB, e).
Параметры:
e — входное скалярное значение
Возвращает:
результат вычитания скалярного значения из каждого элемента этого вектора
См. также:
  • 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).

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

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

sub

public final ShortVector sub(short e, VectorMask<Short> m)
Вычитает входное скалярное значение из этого вектора под управлением маски. Это поэлементная бинарная операция с маской, которая применяет примитивную операцию вычитания (-) к каждому элементу. Этот метод также эквивалентен выражению lanewise(SUB, s, m).
Параметры:
e — входное скалярное значение
m — маска, управляющая выбором элементов
Возвращает:
результат вычитания скалярного значения из каждого элемента этого вектора
См. также:
  • 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).

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

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

mul

public final ShortVector mul(short e)
Умножает этот вектор на вектор, полученный из входного скалярного значения. Это поэлементная бинарная операция, которая применяет примитивную операцию умножения (*) к каждому элементу. Этот метод также эквивалентен выражению lanewise(MUL, e).
Параметры:
e — входное скалярное значение
Возвращает:
результат умножения этого вектора на заданное скалярное значение
См. также:
  • 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).

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

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

mul

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)

div

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)

div

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)

div

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

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

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

div

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)

min

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)

min

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 с маской. В подклассах определяется дополнительная перегрузка этого метода с передачей скалярного значения.

Определено в:
max в классе Vector<Short>
Параметры:
v — второй входной вектор
Возвращает:
поэлементный максимум этого вектора и второго входного вектора
См. также:
  • 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).
Параметры:
e — входное скалярное значение
Возвращает:
результат умножения этого вектора на заданное скалярное значение
См. также:
  • max(Vector)
  • broadcast(short)
  • VectorOperators.MAX
  • lanewise(VectorOperators.Binary,short,VectorMask)

and

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

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

Параметры:
v — второй входной вектор
Возвращает:
побитовое & этого вектора и второго входного вектора
См. также:
  • and(short)
  • or(Vector)
  • not()
  • VectorOperators.AND
  • lanewise(VectorOperators.Binary,Vector,VectorMask)

and

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

or

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

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

Параметры:
v — второй входной вектор
Возвращает:
побитовое | этого вектора и второго входного вектора
См. также:
  • or(short)
  • and(Vector)
  • not()
  • VectorOperators.OR
  • lanewise(VectorOperators.Binary,Vector,VectorMask)

or

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

neg

public final ShortVector neg()
Меняет знак этого вектора. Это унарная операция по элементам, которая применяет примитивную операцию смены знака (-x) к каждому входному элементу. Этот метод также эквивалентен выражению lanewise(NEG).
Определено в:
neg в классе Vector<Short>
Возвращает:
вектор с изменёнными знаками элементов
См. также:
  • VectorOperators.NEG
  • Vector.lanewise(VectorOperators.Unary)
  • Vector.lanewise(VectorOperators.Unary,VectorMask)

abs

public final ShortVector abs()
Возвращает абсолютное значение этого вектора. Это унарная операция по элементам, которая применяет метод Math.abs к каждому входному элементу. Этот метод также эквивалентен выражению lanewise(ABS).
Определено в:
abs в классе Vector<Short>
Возвращает:
абсолютное значение этого вектора
См. также:
  • 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(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> shuffle)
Переставляет элементы полос этого вектора, выбирая полосы под управлением заданной перестановки. Эта операция между полосами переставляет элементы полос данного вектора. Для каждой полосы N перестановки и каждого индекса исходной полосы I=s.wrapIndex(s.laneSource(N)) в перестановке выходная полоса N получает значение входного вектора из полосы I.
Определено в:
rearrange в классе Vector<Short>
Параметры:
shuffle — перестановка, управляющая выбором индексов полос
Возвращает:
перестановку элементов полос этого вектора
См. также:
  • Vector.rearrange(VectorShuffle,VectorMask)
  • Vector.rearrange(VectorShuffle,Vector)

rearrange

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

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

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

rearrange

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)

compress

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

expand

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=wrapIndex(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)

selectFrom

public abstract ShortVector selectFrom(Vector<Short> v1, Vector<Short> v2)
Используя значения, хранящиеся в полосах этого вектора, соберите значения из второго вектора v1 и третьего вектора v2. Таким образом, второй и третий векторы служат таблицей, элементы которой выбираются по индексам из этого вектора. Эта операция между полосами переставляет элементы полос векторов-аргументов под управлением этого вектора. Для каждой полосы N этого вектора и каждого значения полосы I=wrapIndex(this.lane(N) в этом векторе выходная полоса N получает значение второго вектора из полосы I, если I < VLENGTH. В противном случае выходная полоса N получает значение третьего вектора из полосы I - VLENGTH. Здесь VLENGTH — результат this.length(), а для целочисленных значений wrapIndex вычисляет результат Math.floorMod(E, 2 * VLENGTH), где E — индекс, который необходимо привести к диапазону. Если VLENGTH является степенью двойки, результат также равен E & (2 * VLENGTH - 1). Для значений с плавающей запятой wrapIndex вычисляет Math.floorMod(convert(E), 2 * VLENGTH), где convert преобразует значение с плавающей запятой в целочисленное значение с таким же количеством бит представления, как при преобразовании значения типа double в значение типа long ((long)doubleVal) или значения типа float в значение типа int ((int)floatVal). Таким образом, результат содержит только значения, хранящиеся в векторах-аргументах v1 и v2, но представленные в порядке, зависящем от значений индексов в this. Результат для целочисленных значений совпадает с выражением
v1.rearrange(
this.lanewise(VectorOperators.AND, 2 * VLENGTH - 1).toShuffle(),
v2)
если VLENGTH является степенью двойки. Поэлементная операция AND возвращает вектор, элементы которого находятся в диапазоне [0, 2 * VLENGTH - 1]). Преобразование в перестановку приводит к частично приведённой к диапазону перестановке, индексы которой находятся в диапазоне [-VLENGTH, VLENGTH - 1]), где исключительные индексы используются для выбора элементов третьего вектора.
Определено в:
selectFrom в классе Vector<Short>
Параметры:
v1 — первый входной вектор
v2 — второй входной вектор
Возвращает:
перестановку элементов полос v1 и v2
См. также:
  • Vector.rearrange(VectorShuffle,Vector)

bitwiseBlend

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)

bitwiseBlend

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)

bitwiseBlend

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)

bitwiseBlend

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)

lane

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, MemorySegment 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 вектора
IllegalStateException — если сеанс сегмента памяти не активен или если доступ осуществляется из потока, отличного от потока-владельца сеанса.
Начиная с версии:
19

fromMemorySegment

public static ShortVector fromMemorySegment(VectorSpecies<Short> species, MemorySegment 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 вектора, выбранной маской
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].

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

intoCharArray

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

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

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

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

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]].

Параметры:
a — массив
offset — смещение, которое нужно объединить со смещениями карты индексов
indexMap — карта индексов
mapOffset — смещение в карте индексов
Исключения:
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, 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]].

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

intoMemorySegment

public final void intoMemorySegment(MemorySegment ms, long offset, ByteOrder bo)
Сохраняет этот вектор в сегмент памяти, начиная с заданного смещения и используя явный порядок байтов.

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

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

var m = maskAll(true);
intoMemorySegment(ms, offset, bo, m);
Указано в:
intoMemorySegment в классе Vector<Short>
Параметры:
ms — сегмент памяти
offset — смещение в сегменте памяти
bo — требуемый порядок байтов
Начиная с версии:
19

intoMemorySegment

public final void intoMemorySegment(MemorySegment 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);
    }
}
Указано в:
intoMemorySegment в классе Vector<Short>
Параметры:
ms — сегмент памяти
offset — смещение в сегменте памяти
bo — требуемый порядок байтов
m — маска, управляющая выбором полос
Начиная с версии:
19

reinterpretAsBytes

public final ByteVector reinterpretAsBytes()
Представляет этот вектор как вектор той же формы и с тем же содержимым, но с типом полосы byte; байты извлекаются из полос в порядке от младшего к старшему. Это вспомогательный метод для выражения reinterpretShape(species().withLanes(byte.class)). Его можно считать обратным к различным методам, которые объединяют байты в более крупные полосы того же вектора, например Vector.reinterpretAsInts().
Указано в:
reinterpretAsBytes в классе Vector<Short>
Возвращает:
ByteVector с той же формой и тем же информационным содержимым
См. также:
  • 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, а побитовое содержимое вектора остается неизменным. Если ETYPE вектора уже является целочисленным типом, возвращается тот же вектор без изменений. Этот метод возвращает значение выражения convert(conv,0), где conv — это VectorOperators.Conversion.ofReinterpret(E.class,F.class), а F — целочисленный тип того же размера, что и E.
Указано в:
viewAsIntegralLanes в классе Vector<Short>
Возвращает:
исходный вектор, переинтерпретированный как вектор с целочисленными значениями
См. также:
  • VectorOperators.Conversion.ofReinterpret(Class,Class)
  • Vector.convert(VectorOperators.Conversion,int)

viewAsFloatingLanes

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

toString

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

equals

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

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

Указано в:
equals в классе Vector<Short>
Параметры:
obj — объект-ссылка, с которым выполняется сравнение.
Возвращает:
указывает ли результат на идентичность этого вектора некоторому другому объекту
См. также:
  • Vector.eq(Vector)

hashCode

public final int hashCode()
Возвращает хеш-код вектора, основанный на значениях полос и виде вектора.
Указано в:
hashCode в классе Vector<Short>
Возвращает:
хеш-код этого вектора
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

species

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

check

public final <F> Vector<F> check(VectorSpecies<F> species)
Описание скопировано из класса: Vector
Проверяет, что этот вектор имеет заданный вид, и возвращает его без изменений. Эффект аналогичен следующему псевдокоду: species == species() ? this : throw new ClassCastException().
Указано в:
check в классе Vector<E>
Параметры типа:
F — упакованный тип элемента требуемого вида
Параметры:
species — требуемый вид
Возвращает:
тот же вектор
См. также:
  • 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().
Указано в:
check в классе Vector<E>
Параметры типа:
F — упакованный тип элемента требуемого типа полосы
Параметры:
elementType — требуемый тип полосы
Возвращает:
тот же вектор
См. также:
  • VectorSpecies.check(Class)
  • VectorMask.check(Class)
  • Vector.check(VectorSpecies)
  • VectorShuffle.check(VectorSpecies)

maskAll

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

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

Указано в:
maskAll в классе Vector<E>
Параметры:
bit — заданный бит маски для копирования
Возвращает:
маску, в которой каждая полоса установлена или не установлена в соответствии с заданным битом
См. также:
  • VectorSpecies.maskAll(boolean)

reinterpretAsShorts

public ShortVector reinterpretAsShorts()
Переинтерпретирует этот вектор как вектор той же формы и с тем же содержимым, но с типом полосы short; полосы составляются из последовательных байтов в порядке от младшего к старшему. Это вспомогательный метод для выражения reinterpretShape(species().withLanes(short.class)). Его можно считать обратным к методу Vector.reinterpretAsBytes().
Указано в:
reinterpretAsShorts в классе Vector<E>
Возвращает:
ShortVector с той же формой и тем же информационным содержимым

reinterpretAsInts

public IntVector reinterpretAsInts()
Переинтерпретирует этот вектор как вектор той же формы и с тем же содержимым, но с типом полосы int; полосы составляются из последовательных байтов в порядке от младшего к старшему. Это вспомогательный метод для выражения reinterpretShape(species().withLanes(int.class)). Его можно считать обратным к методу Vector.reinterpretAsBytes().
Указано в:
reinterpretAsInts в классе Vector<E>
Возвращает:
IntVector с той же формой и тем же информационным содержимым

reinterpretAsLongs

public LongVector reinterpretAsLongs()
Переинтерпретирует этот вектор как вектор той же формы и с тем же содержимым, но с типом полосы long; полосы составляются из последовательных байтов в порядке от младшего к старшему. Это вспомогательный метод для выражения reinterpretShape(species().withLanes(long.class)). Его можно считать обратным к методу Vector.reinterpretAsBytes().
Указано в:
reinterpretAsLongs в классе Vector<E>
Возвращает:
LongVector с той же формой и тем же информационным содержимым

reinterpretAsFloats

public FloatVector reinterpretAsFloats()
Переинтерпретирует этот вектор как вектор той же формы и с тем же содержимым, но с типом полосы float; полосы составляются из последовательных байтов в порядке от младшего к старшему. Это вспомогательный метод для выражения reinterpretShape(species().withLanes(float.class)). Его можно считать обратным к методу Vector.reinterpretAsBytes().
Указано в:
reinterpretAsFloats в классе Vector<E>
Возвращает:
FloatVector с той же формой и тем же информационным содержимым

reinterpretAsDoubles

public DoubleVector reinterpretAsDoubles()
Переинтерпретирует этот вектор как вектор той же формы и с тем же содержимым, но с типом полосы double; полосы составляются из последовательных байтов в порядке от младшего к старшему. Это вспомогательный метод для выражения reinterpretShape(species().withLanes(double.class)). Его можно считать обратным к методу Vector.reinterpretAsBytes().
Указано в:
reinterpretAsDoubles в классе Vector<E>
Возвращает:
DoubleVector с той же формой и тем же информационным содержимым

convert

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

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

Совместное влияние неизменности формы и изменения размера элементов может привести к тому, что входной и выходной наборы характеристик будут иметь разное число элементов, вызывая расширение или сжатие и требуя выбора или вставки. Концептуально входные данные преобразуются поэлементно в логический результат, содержащий все преобразованные элементы, что приводит к логическому коэффициенту расширения ML = |FTYPE|/|ETYPE|. Затем результат копируется в выходные данные, размер которых может точно совпадать с результатом (без изменений), быть меньше (требуется выбор) или больше (требуется вставка).

Логическое поэлементное преобразование

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

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

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

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

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

Неизменность формы может потребовать выбора или вставки

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

Для управления этими расширениями и сжатиями параметр part выбирает частичные результаты расширения или задаёт положение вставки результатов сжатия в выходные данные. Для преобразований с неизменной формой (MP=1) возможны следующие случаи:

  • Поэлементный оператор преобразования без изменения размера (|ETYPE|=|FTYPE|): входные данные, логический результат и выходные данные имеют одинаковое число элементов и размер в битах (ML=MP=1). Логический результат точно помещается в выходные данные, и всегда выполняется part=0.

    Все преобразованные данные возвращаются в одном выходном векторе, без потери элементов.

  • Поэлементный расширяющий оператор преобразования (|ETYPE|<|FTYPE|): логическое расширение ML=|FTYPE|/|ETYPE|>1 означает, что логический результат в MS=ML раз больше выходных данных.

    Число part в диапазоне [0..MS-1] выбирает один из MS различных блоков по VLENGTH/MS элементов логического результата, начинающийся с начального элемента part*VLENGTH/MS. Этот выбранный блок копируется в выходные данные и полностью заполняет их. Остальная часть логического результата теряется.

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

  • Поэлементный сжимающий оператор преобразования (|ETYPE|>|FTYPE|): логическое сжатие ML=|FTYPE|/|ETYPE|<1 означает, что выходные данные в MO=1/ML раз больше логического результата.

    Число part в диапазоне [-(MO-1)..0] вставляет все VLENGTH элементов логического результата в выходные данные, начиная с начального элемента -part*VLENGTH. Всего имеется VLENGTH*MO выходных элементов; элементы, не содержащие преобразованных входных значений, заполняются нулями.

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

Например, преобразование из byte в long (логический коэффициент расширения ML=8) отбросит 87,5 % входных значений, чтобы выбрать оставшиеся 12,5 % и преобразовать их в более вместительные элементы long выходного вектора. Обратное преобразование вернёт все большие результаты, но 87,5 % элементов выходного вектора останутся неиспользованными и будут заполнены нулевыми битами.

Определено в:
convert в классе Vector<E>
Параметры типа:
F — упакованный тип элементов набора характеристик
Параметры:
conv — требуемое скалярное преобразование, применяемое поэлементно
part — номер части результата или ноль, если размер не меняется
Возвращает:
вектор, преобразованный из этого вектора по форме и типу элементов
См. также:
  • 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).

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

Определено в:
castShape в классе Vector<E>
Параметры типа:
F — упакованный тип элементов выходного набора характеристик
Параметры:
toSpecies — требуемый выходной набор характеристик
part — номер части результата или ноль, если расширения или сжатия нет
Возвращает:
вектор, преобразованный из этого вектора по типу элементов
См. также:
  • 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(), чтобы упростить анализ кода. В противном случае это операция с изменением формы, которая может иметь особые издержки реализации.

Совместное влияние изменения формы и размера элементов может привести к тому, что входной и выходной наборы характеристик будут иметь разное число элементов, вызывая расширение или сжатие и требуя выбора или вставки. Концептуально входные данные преобразуются поэлементно в логический результат, содержащий все преобразованные элементы, что приводит к логическому коэффициенту расширения ML = |FTYPE|/|ETYPE|. Затем результат копируется в выходные данные, размер которых может точно совпадать с результатом (без изменений), быть меньше (требуется выбор) или больше (требуется вставка).

  • Точное соответствие (без изменений): расширение или сжатие физической формы совпадает с расширением или сжатием элементов (MP=ML). Должно выполняться part=0.
  • Логический результат в MS>1 раз больше формы выходных данных (выбор): число part в диапазоне [0..MS-1] определяет, какая из MS различных частей логического результата выбирается для выходных данных. Остальная часть логического результата теряется.
  • Форма выходных данных в MO>1 раз больше логического результата (вставка): число part в диапазоне [-(MO-1)..0] определяет, в какую из MO различных позиций выходных данных вставляется логический результат. Остальная часть выходных данных заполняется нулевыми битами.

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

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) { // MS=MO=1 => in-place
    assert part == 0; //else AIOOBE
    physical = logical;
} else if (domlen > ranlen) { // MS>1 => selection
    int MS = domlen / ranlen;
    assert 0 <= part && part < MS; //else AIOOBE
    int origin = part * ranlen;
    physical = Arrays.copyOfRange(logical, origin, origin + ranlen);
} else { // (domlen < ranlen) // MO>1 => insertion, padding
    int MO = ranlen / domlen;
    assert 0 >= part && part > -MO; //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()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

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