接口 FieldVector<T extends FieldElement<T>>
- 类型参数:
-
T
- 字段元素的类型
public interface FieldVector<T extends FieldElement<T>>
定义具有基本代数运算的字段向量的接口。
向量元素索引是基于0的 -- 例如,getEntry(0)
返回向量的第一个元素。
各种mapXxx
和mapXxxToSelf
方法对向量进行逐元素操作,即它们依次对每个元素执行相同的操作(添加标量,应用函数...)。mapXxx
版本创建一个新的向量来保存结果,并不更改实例。mapXxxToSelf
版本使用实例本身来存储结果,因此这些方法会更改实例。在这两种情况下,方法都会返回结果向量,这允许使用流畅API风格,如下所示:
RealVector result = v.mapAddToSelf(3.0).mapTanToSelf().mapSquareToSelf();
请注意,由于几乎所有对FieldElement
的操作在操作空元素时都会抛出NullArgumentException
,因此FieldVector
的实现必须确保不会将空元素插入向量中。这必须在所有构造函数和所有设置器中完成。
-
方法概要
修饰符和类型方法说明add
(FieldVector<T> v) 计算this
和v
的和。append
(FieldVector<T> v) 通过将向量附加到此向量来构造一个向量。通过将T附加到此向量来构造一个向量。copy()
返回此向量的(深层)复制。dotProduct
(FieldVector<T> v) 计算点积。ebeDivide
(FieldVector<T> v) 逐元素除法。ebeMultiply
(FieldVector<T> v) 逐元素乘法。int
返回向量的大小。getEntry
(int index) 返回指定索引处的条目。getField()
获取向量的字段元素类型。getSubVector
(int index, int n) 从连续元素中获取子向量。将加法操作映射到每个条目。mapAddToSelf
(T d) 将加法操作映射到每个条目。将除法操作映射到每个条目。mapDivideToSelf
(T d) 将除法操作映射到每个条目。mapInv()
将1/x函数映射到每个条目。将1/x函数映射到每个条目。mapMultiply
(T d) 将乘法操作映射到每个条目。将乘法操作映射到每个条目。mapSubtract
(T d) 将减法操作映射到每个条目。将减法操作映射到每个条目。outerProduct
(FieldVector<T> v) 计算外积。projection
(FieldVector<T> v) 找到此向量在另一个向量上的正交投影。void
将所有元素设置为单个值。void
设置单个元素。void
setSubVector
(int index, FieldVector<T> v) 设置一组连续元素。subtract
(FieldVector<T> v) 计算this
减去v
。T[]
toArray()
将向量转换为T数组。
-
方法详细资料
-
getField
获取向量的字段元素类型。- 返回:
- 向量的字段元素类型
-
copy
FieldVector<T> copy()返回此向量的(深层)复制。- 返回:
- 向量的复制
-
add
计算this
和v
的和。- 参数:
-
v
- 要添加的向量 - 返回:
-
this + v
- 抛出:
-
MathIllegalArgumentException
- 如果v
的大小与this
不同
-
subtract
计算this
减去v
。- 参数:
-
v
- 要减去的向量 - 返回:
-
this - v
- 抛出:
-
MathIllegalArgumentException
- 如果v
的大小与this
不同
-
mapAdd
将加法操作映射到每个条目。- 参数:
-
d
- 要添加到每个条目的值 - 返回:
-
this + d
- 抛出:
-
NullArgumentException
- 如果d
为null
-
mapAddToSelf
将加法操作映射到每个条目。此方法会更改实例。
- 参数:
-
d
- 要添加到每个条目的值 - 返回:
-
为方便起见,返回
this
- 抛出:
-
NullArgumentException
- 如果d
为null
-
mapSubtract
将减法操作映射到每个条目。- 参数:
-
d
- 要减去的值 - 返回:
-
this - d
- 抛出:
-
NullArgumentException
- 如果d
为null
-
mapSubtractToSelf
将减法操作映射到每个条目。此方法会更改实例。
- 参数:
-
d
- 要减去的值 - 返回:
-
为方便起见,返回
this
- 抛出:
-
NullArgumentException
- 如果d
为null
-
mapMultiply
将乘法操作映射到每个条目。- 参数:
-
d
- 要将所有条目乘以的值 - 返回:
-
this * d
- 抛出:
-
NullArgumentException
- 如果d
为null
-
mapMultiplyToSelf
将乘法操作映射到每个条目。此方法会更改实例。
- 参数:
-
d
- 要将所有条目乘以的值 - 返回:
-
为方便起见,返回
this
- 抛出:
-
NullArgumentException
- 如果d
为null
-
mapDivide
将除法操作映射到每个条目。- 参数:
-
d
- 要将所有条目除以的值 - 返回:
-
this / d
- 抛出:
-
NullArgumentException
- 如果d
为null
-
MathRuntimeException
- 如果d
为零
-
mapDivideToSelf
将除法操作映射到每个条目。此方法会更改实例。
- 参数:
-
d
- 要将所有条目除以的值 - 返回:
-
为方便起见,返回
this
- 抛出:
-
NullArgumentException
- 如果d
为null
-
MathRuntimeException
- 如果d
为零
-
mapInv
将1/x函数映射到每个条目。- 返回:
- 包含将函数应用于每个条目的结果的向量。
- 抛出:
-
MathRuntimeException
- 如果其中一个条目为零
-
mapInvToSelf
将1/x函数映射到每个条目。此方法会改变实例。
- 返回:
-
为方便起见,返回
this
- 抛出:
-
MathRuntimeException
- 如果其中一个条目为零。
-
ebeMultiply
逐元素相乘。- 参数:
-
v
- 必须将实例元素乘以的向量 - 返回:
-
包含所有
i
的this[i] * v[i]
的向量 - 抛出:
-
MathIllegalArgumentException
- 如果v
的大小与this
不同
-
ebeDivide
FieldVector<T> ebeDivide(FieldVector<T> v) throws MathIllegalArgumentException, MathRuntimeException 逐元素相除。- 参数:
-
v
- 必须将实例元素除以的向量 - 返回:
-
包含所有
i
的this[i] / v[i]
的向量 - 抛出:
-
MathIllegalArgumentException
- 如果v
的大小与this
不同 -
MathRuntimeException
- 如果v
的一个条目为零
-
dotProduct
计算点积。- 参数:
-
v
- 应计算点积的向量 - 返回:
-
this
和v
的标量点积 - 抛出:
-
MathIllegalArgumentException
- 如果v
的大小与this
不同
-
projection
FieldVector<T> projection(FieldVector<T> v) throws MathIllegalArgumentException, MathRuntimeException 找到此向量在另一个向量上的正交投影。- 参数:
-
v
- 必须投影到this
上的向量 - 返回:
-
this
在v
上的投影 - 抛出:
-
MathIllegalArgumentException
- 如果v
的大小与this
不同 -
MathRuntimeException
- 如果v
是空向量
-
outerProduct
计算外积。- 参数:
-
v
- 应计算外积的向量 - 返回:
- 实例和v之间的矩阵外积
-
getEntry
返回指定索引处的条目。- 参数:
-
index
- 要获取的条目的索引位置 - 返回:
-
在
index
处的向量条目 - 抛出:
-
MathIllegalArgumentException
- 如果索引无效 - 另请参阅:
-
setEntry
设置单个元素。- 参数:
-
index
- 元素索引 -
value
- 元素的新值 - 抛出:
-
MathIllegalArgumentException
- 如果索引无效 - 另请参阅:
-
getDimension
int getDimension()返回向量的大小。- 返回:
- 大小
-
append
通过将向量附加到此向量来构造向量。- 参数:
-
v
- 要附加到此向量的向量 - 返回:
- 一个新向量
-
append
通过将T附加到此向量来构造向量。- 参数:
-
d
- 要附加的T - 返回:
- 一个新向量
-
getSubVector
获取连续元素的子向量。- 参数:
-
index
- 第一个元素的索引 -
n
- 要检索的元素数量 - 返回:
- 包含n个元素的向量
- 抛出:
-
MathIllegalArgumentException
- 如果索引无效 -
MathIllegalArgumentException
- 如果元素数量不是正数
-
setSubVector
设置一组连续元素。- 参数:
-
index
- 要设置的第一个元素的索引 -
v
- 包含要设置的值的向量 - 抛出:
-
MathIllegalArgumentException
- 如果索引无效
-
set
将所有元素设置为单个值。- 参数:
-
value
- 要为所有元素设置的单个值
-
toArray
T[] toArray()将向量转换为T数组。数组与向量数据独立,其元素被复制。
- 返回:
- 包含向量元素副本的数组
-