Spec-Zone.ru › OpenJDK 24

Класс 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.

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

Modifier and Type Method Description
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(Vector<Short> v)
Проверяет, меньше ли этот вектор, чем входной скаляр.
final VectorMask<Short> maskAll(boolean bit)
Проверяет, меньше ли этот вектор, чем другой входной вектор.
final VectorMask<Short> 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)
Вычисляет побитовое логическое дизъюнкцию (|) этого вектора и скаляра.
final ShortVector rearrange(VectorShuffle<Short> shuffle)
Вычисляет побитовое логическое дизъюнкцию (|) этого вектора и второго входного вектора.
abstract ShortVector rearrange(VectorShuffle<Short> s, Vector<Short> v)
Переупорядочивает элементы каналов этого вектора, выбирая каналы под управлением определенной перестановки.
abstract ShortVector reduceLanes(VectorOperators.Associative op)
Переупорядочивает элементы каналов двух векторов, выбирая каналы под управлением определенной перестановки, используя как обычные, так и исключительные индексы в перестановке для управления данными.
abstract ShortVector reduceLanes(VectorOperators.Associative op, VectorMask<Short> m)
Переупорядочивает элементы каналов этого вектора, выбирая каналы под управлением определенной перестановки и маски.
abstract short reinterpretAsBytes()
Возвращает значение, аккумулированное со всех каналов этого вектора.
abstract short reinterpretAsDoubles()
Возвращает значение, аккумулированное из выбранных каналов этого вектора, управляемых маской.
final ByteVector double
Представляет этот вектор как вектор той же формы и содержимого, но с типом канала byte, где байты извлекаются из каналов в соответствии с порядком little-endian.
DoubleVector double
Переинтерпретирует этот вектор как вектор той же формы и содержимого, но с типом канала double, где каналы собираются из последовательных байтов в соответствии с порядком little-endian.
END_OF_DOCUMENT_MARKER
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)
Возвращает вектор заданного вида, где все элементы проходов установлены в ноль, значение по умолчанию для примитивных типов.

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

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

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

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

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

SPECIES_64

public static final VectorSpecies<Short> SPECIES_64
Species representing ShortVectors of VectorShape.S_64_BIT.

SPECIES_128

public static final VectorSpecies<Short> SPECIES_128
Species representing ShortVectors of VectorShape.S_128_BIT.

SPECIES_256

public static final VectorSpecies<Short> SPECIES_256
Species representing ShortVectors of VectorShape.S_256_BIT.

SPECIES_512

public static final VectorSpecies<Short> SPECIES_512
Species representing ShortVectors of VectorShape.S_512_BIT.

SPECIES_MAX

public static final VectorSpecies<Short> SPECIES_MAX
Species representing ShortVectors of VectorShape.S_Max_BIT.

SPECIES_PREFERRED

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

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

zero

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

broadcast

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

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

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

broadcast

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

broadcast

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

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

Значение long e должно быть точно представимо ETYPE species этого вектора, так что e==(long)(ETYPE)e. Если это правило нарушено, проблема не обнаруживается статически, но во время выполнения выбрасывается IllegalArgumentException. Таким образом, этот метод несколько ослабляет статическую проверку типов для непосредственных констант и других скаляров, но компенсирует это, повышая выразительность универсального API. Обратите внимание, что значение e в диапазоне [-128..127] всегда допустимо, так как каждый ETYPE будет принимать каждое значение byte.

Указано в:
broadcast в классе Vector<Short>
API Note:
При работе с подтипами векторов, такими как 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)
Возвращает вектор заданного species, где все элементы полосы установлены в примитивное значение e. Значение long должно быть точно представимо ETYPE species вектора, так что e==(long)(ETYPE)e.
Параметры:
species - 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)
END_OF_DOCUMENT_MARKER

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. Подклассы определяют дополнительную перегрузку этого метода с скалярным вещанием.

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

max

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

and

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

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

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

and

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

or

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

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

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

or

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

neg

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

abs

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

not

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

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

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

eq

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

eq

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

lt

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

lt

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

test

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

test

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

compare

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

compare

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

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

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

compare

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

compare

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

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

Specified by:
compare in class Vector<Short>
Parameters:
op - операция, используемая для сравнения значений элементов
e - скалярный вход
Returns:
маска результата проверки на уровне элементов, сравнивает ли этот вектор с входом, в соответствии с выбранным оператором сравнения
See Also:
  • 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).
Specified by:
compare in class Vector<Short>
Parameters:
op - операция, используемая для сравнения значений элементов
e - скалярный вход
m - маска, контролирующая выбор элементов
Returns:
маска результата проверки на уровне элементов, сравнивает ли этот вектор с входом, в соответствии с выбранным оператором сравнения, и только в элементах, выбранных маской
See Also:
  • 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);
 
Specified by:
blend in class Vector<Short>
Parameters:
v - второй входной вектор, содержащий значения заменяющих элементов
m - маска, управляющая выбором элементов из второго входного вектора
Returns:
результат смешивания элементов элементов этого вектора с элементами второго входного вектора

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);
 
Specified by:
addIndex in class Vector<Short>
Parameters:
scale - число для умножения на каждый индекс элемента N, обычно 1
Returns:
результат инкрементирования каждого элемента элемента соответствующим индексом элемента N, масштабированный на scale

blend

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

blend

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

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 соответственно.

Parameters:
origin - первый входной элемент для передачи в срез
v1 - второй вектор, логически конкатенированный с первым, перед взятием среза (если он опущен, он по умолчанию равен нулю)
Returns:
непрерывный срез из VLENGTH элементов, взятый из этого вектора, начиная с указанного начала, и продолжая (при необходимости) во второй вектор
See Also:
  • 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).

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

slice

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

unslice

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

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

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

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

unslice

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

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

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

unslice

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

rearrange

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

rearrange

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

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


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

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

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

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


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

сжать

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

расширить

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

selectFrom

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

selectFrom

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

selectFrom

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

bitwiseBlend

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

bitwiseBlend

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

bitwiseBlend

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

bitwiseBlend

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

reduceLanes

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

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

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

reduceLanes

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

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

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

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

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

lane

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

сLane

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, где байты извлекаются из полос в соответствии с порядком little-endian. Это вспомогательный метод для выражения 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(jdk.incubator.vector.Vector<E>)

hashCode

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

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

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

reinterpretAsShorts

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

reinterpretAsInts

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

reinterpretAsLongs

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

reinterpretAsFloats

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

reinterpretAsDoubles

public DoubleVector reinterpretAsDoubles()
Переинтерпретирует этот вектор как вектор той же формы и содержимого, но с типом канала double, где каналы собираются из последовательных байтов в соответствии с порядком little-endian. Это удобный метод для выражения 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)

Преобразовать форму

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)

Получить данные

protected final Object getPayload()

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

Spec-Zone.ru

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