Expectation *********** .. role:: raw-html(raw) :format: html Expectation via a Matrix ======================== Expectation performs the following operation: .. math:: \langle A \rangle = \bra{\phi}A\ket{\phi}, where :math:`\ket{\phi}` is a state vector and :math:`A` is a matrix or an observer. The API for expectation `custatevecExpectation` may require external workspace for large matrices, and `custatevecExpectation_bufferSize` provides the size of workspace. Use case -------- .. code-block:: cpp // check the size of external workspace custatevecExpectation_bufferSize( svDataType, matrix, matrixDataType, layout, nBasisBits, computeType, &extraWorkspaceSizeInBytes); // allocate external workspace if necessary void extraWorkspace = nullptr; if (extraWorkspaceSizeInBytes > 0) cudaMalloc(extraWorkspace, extraWorkspaceSizeInBytes); // perform expectation custatevecExpectation( handle, sv, svDataType, nIndexBits, &expect, expectDataType, residualNorm, matrix, matrixDataType, layout, basisBits, nBasisBits, computeType, extraWorkspace, extraWorkspaceSizeInBytes); API reference ------------- .. _custatevecExpectation_bufferSize-label: :code:`custatevecExpectation_bufferSize` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. doxygenfunction:: custatevecExpectation_bufferSize ---- .. _custatevecExpectation-label: :code:`custatevecExpectation` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. doxygenfunction:: custatevecExpectation Expectation on Pauli Basis ========================== .. _custatevecExpectationOnPauliBasis-label: :code:`custatevecExpectationOnPauliBasis` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. note:: This API is not available in this version. .. doxygenfunction:: custatevecExpectationOnPauliBasis