Spec-Zone.ru › OpenJDK 25

Класс ShortVector

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

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

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

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

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

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

SPECIES_64

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

SPECIES_128

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

SPECIES_256

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

SPECIES_512

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

SPECIES_MAX

public static final VectorSpecies<Short> SPECIES_MAX
Тип, представляющий ShortVector размера VectorShape.S_Max_BIT.

SPECIES_PREFERRED

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

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

zero

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

broadcast

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

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

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

broadcast

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

broadcast

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

Этот метод возвращает значение следующего выражения: EVector.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)
Извлекает сегмент смежных lane, начиная с заданной lane origin в текущем векторе. Блок из VLENGTH lane, возможно дополненный нулевыми lane, извлекается в отдельный вектор и возвращается. Это вспомогательный метод, который извлекает данные из одного вектора на фоне расширенного набора нулевых lane. Он эквивалентен slice (origin, broadcast(0)). Его также можно рассматривать просто как межвекторный сдвиг от более поздних lane к более ранним, при котором освободившиеся в конце вектора lane заполняются нулями. В этом представлении величина сдвига равна origin.
Параметры:
origin — первая входная lane, переносимая в срез
Возвращает:
последние VLENGTH-origin входных lane, размещённые начиная с первой lane выходных данных и дополненные в конце нулями
См. также:
  • Vector.slice(int,Vector)
  • Vector.unslice(int,Vector,int)

unslice

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

Это межвекторная операция, которая переставляет элементы lane текущего вектора в сторону конца и вставляет их в логическую пару фоновых векторов. Однако возвращается только один из векторов этой пары. Фон формируется дублированием второго входного вектора. (При этом выходные данные никогда не содержат двух дубликатов одной и той же входной lane.) Lane с номером N во входном векторе копируется в lane origin+N первого фонового вектора, если такая lane существует, или в lane 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 — первая выходная lane, в которую помещается срез
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().

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

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

unslice

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

rearrange

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

rearrange

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

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

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

rearrange

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

compress

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

expand

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

selectFrom

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

selectFrom

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

selectFrom

public abstract ShortVector selectFrom(Vector<Short> v1, Vector<Short> v2)
Собирает значения из второго вектора v1 и третьего вектора v2, используя значения, хранящиеся в lane этого вектора. Таким образом, второй и третий векторы служат таблицей, элементы которой выбираются по индексам этого вектора. Это межвекторная операция, которая переставляет элементы lane векторов-аргументов под управлением этого вектора. Для каждой lane N этого вектора и каждого значения lane I=wrapIndex(this.lane(N) в этом векторе выходная lane N получает значение из второго вектора в lane I, если I < VLENGTH. В противном случае выходная lane N получает значение из третьего вектора в lane 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 — второй входной вектор
Возвращает:
перестановку элементов lane в v1 и v2
См. также:
  • Vector.rearrange(VectorShuffle,Vector)

bitwiseBlend

public final ShortVector bitwiseBlend(Vector<Short> bits, Vector<Short> mask)
Смешивает биты двух векторов под управлением третьего вектора, предоставляющего биты маски. Это поэлементная тернарная операция, выполняющая операцию побитового смешивания (a&~c)|(b&c) для каждой lane. Этот метод также эквивалентен выражению 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) для каждой lane. Этот метод также эквивалентен выражению 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) для каждой lane. Этот метод также эквивалентен выражению 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) для каждой lane. Этот метод также эквивалентен выражению 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)
Возвращает значение, полученное накоплением значений всех lane этого вектора. Это ассоциативная межвекторная операция редукции, применяющая заданную операцию ко всем элементам lane.

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

  • В случае FIRST_NONZERO редукция возвращает значение из lane с наименьшим номером, отличной от нуля.
  • Все остальные операции редукции полностью коммутативны и ассоциативны. Реализация может выбрать любой порядок обработки, но результат всегда будет одинаковым.
Параметры:
op — операция, используемая для объединения значений lane
Возвращает:
накопленный результат
Выбрасывает:
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 — если offset+N < 0 или offset+N >= a.length для любой полосы N в векторе

intoCharArray

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

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

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

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

intoCharArray

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

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

Параметры:
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 результата. В зависимости от выбранного преобразования эта операция может либо расширить, либо сузить логический результат; в этом случае ненулевой параметр part может дополнительно управлять выбором и размещением логического результата в физическом выходном векторе.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Определен в:
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(), чтобы код было проще анализировать. В противном случае это операция изменения формы, которая может иметь особые издержки реализации.

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

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

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

getPayload

protected final Object getPayload()

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/jdk.incubator.vector/jdk/incubator/vector/ShortVector.html

Spec-Zone.ru

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