cuquantum.densitymat.DenseOperator¶
- class cuquantum.densitymat.DenseOperator(data, callback=None)[源码]¶
来自数据缓冲区和可选回调的密集基本算符。
- 参数
data – 算符元素的数据缓冲区。
callback – 带有签名
(t, args) -> np.ndarray
的 CPU 回调函数。
注意
将在数据缓冲区上创建副本,并且可以通过
data
属性访问。返回的数组在形状和数据类型方面需要与提供的数据缓冲区一致。当此实例参与
Operator
或OperatorAction
的compute
方法时,数据缓冲区将被更新。
示例
>>> import numpy as np >>> from cuquantum.densitymat import DenseOperator
假设我们想在维度为 3 的希尔伯特空间上构造一个创建算符作为
DenseOperator
。它可以直接从数据缓冲区构造为:>>> data = np.array([ >>> [0, 0, 0], >>> [1.0, 0, 0], >>> [0, np.sqrt(2), 0], >>> ]) >>> dense_op = DenseOperator(data)
方法
- __add__(other: Union[DenseOperator, MultidiagonalOperator]) DenseOperator [源码]¶
将一个基本算符添加到此实例并返回一个新的
DenseOperator
。
- __init__(data: Union[numpy.ndarray, cupy.ndarray], callback: Optional[Callable[[float, Sequence], numpy.ndarray]] = None) None [源码]¶
从数据缓冲区和可选回调初始化一个密集基本算符。
- __matmul__(other: Union[DenseOperator, MultidiagonalOperator]) DenseOperator [源码]¶
在此实例和一个基本算符之间执行矩阵乘法,并返回一个新的
DenseOperator
。
- __mul__(scalar: numbers.Number) DenseOperator [源码]¶
从左侧用标量乘以该实例。
- __rmul__(scalar: numbers.Number) DenseOperator [源码]¶
从右侧用标量乘以该实例。
- __sub__(other: Union[DenseOperator, MultidiagonalOperator]) DenseOperator [源码]¶
从此实例中减去一个基本算符,并返回一个新的
DenseOperator
。
- copy() DenseOperator [源码]¶
返回密集基本算符的副本。
- dag() DenseOperator [源码]¶
返回此实例的共轭复转置。
- to_array(t: Optional[float] = None, args: Optional[Sequence] = None, device: str = 'cpu') Union[numpy.ndarray, cupy.ndarray] [源码]¶
返回密集基本算符的数组形式。
- 参数
t – 回调中的时间变量,仅当回调不是
None
时才需要。args – 回调中的附加参数,仅当回调不是
None
时才需要。device – 返回数组的设备。默认为
"cpu"
。
- 返回值
指定设备上密集基本算符的数组形式。
属性
- data¶
基本算符的数据缓冲区。