# Matrix

class `psi4.core.``Matrix`

  Bases: `pybind11_builtins.pybind11_object`

  Class for creating and manipulating matrices

  Attributes Summary

  `name` | The name of the Matrix.
  `np` | View without only one irrep
  `nph` | View with irreps.
  `shape` | Shape of the Psi4 data object

  Methods Summary

  `absmax`(self) | Returns the absolute maximum value
  `accumulate_product`(self, arg0, arg1) | Multiplies two arguments and adds the result to this matrix
  `add`(*args, **kwargs) | Overloaded function.
  `add_and_orthogonalize_row`(self, v) | Expands the row dimension by one, and then orthogonalizes vector v against the current rows before setting the new row to the orthogonalized copy of v
  `apply_denominator`(self, Matrix) | Apply matrix of denominators to this matrix
  `array_interface`(self) |
  `axpy`(self, a, X) | Add to this matrix another matrix scaled by a
  `back_transform`(*args, **kwargs) | Overloaded function.
  `chain_dot`(**kwargs) | Chains dot products together from a series of Psi4 Matrix classes.
  `cholesky_factorize`(self) | Computes the Cholesky factorization of a real symmetric positive definite matrix
  `clone`(self) | Creates exact copy of the matrix and returns it
  `coldim`(self) | Returns the columns per irrep array
  `cols`(self, h) | Returns the columns in irrep h
  `copy`(self, arg0) | Returns a copy of the matrix
  `copy_lower_to_upper`(self) | Copy the lower triangle to the upper triangle
  `copy_upper_to_lower`(self) | Copy the upper triangle to the lower triangle
  `diagonalize`(self, eigvectors, eigvalues, order) | Diagonalizes this matrix, space for the eigvectors and eigvalues must be created by caller.
  `doublet`(A, B, transA, transB) |
  `from_array`(arr[, name, dim1, dim2]) | Converts a numpy array or list of numpy arrays into a Psi4 Matrix (irreped if list).
  `from_list`(x) |
  `from_serial`(json_data) | Converts serialized data to the correct Psi4 data type
  `gemm`(self, transa, transb, alpha, a, b, beta) | Generalized matrix multiplication argument transa Transpose the left matrix? argument transb Transpose the right matrix? argument alpha Prefactor for the matrix multiplication argument A Left matrix argument B Right matrix argument beta Prefactor for the resulting matrix
  `general_invert`(self) | Computes the inverse of any nonsingular matrix using LU factorization
  `get`(*args, **kwargs) | Overloaded function.
  `get_block`(self, rows, cols) | Get a matrix block
  `hermitivitize`(self) | Average off-diagonal element in-place
  `hermitize`(self) | Makes a real matrix symmetric by averaging the matrix and its transpose.
  `identity`(self) | Sets the matrix to the identity
  `invert`(self) | Computes the inverse of a real symmetric positive definite matrix
  `load`(*args, **kwargs) | Overloaded function.
  `load_mpqc`(self, filename) | Loads a matrix from an ASCII file in MPQC format
  `nirrep`(self) | Returns the number of irreps
  `np_read`(filename[, prefix]) | Reads the data from a NumPy compress file.
  `np_write`([filename, prefix]) | Writes the irreped matrix to a NumPy zipped file.
  `partial_cholesky_factorize`(self, delta, …) | Computes the fully pivoted partial Cholesky factorization of a real symmetric positive semidefinite matrix, to numerical precision delta
  `power`(self, alpha, cutoff) | Takes the matrix to the alpha power with precision cutoff
  `print_atom_vector`(self, RMRoutfile) | Print the matrix with atom labels, assuming it is an natom X 3 tensor
  `print_out`(self) | Prints the matrix to the output file
  `pseudoinverse`(self, condition, nremoved) | Computes the matrix which is the conditioned pseudoinverse of this matrix
  `remove_symmetry`(self, a, transformer) | Remove symmetry from a matrix A with PetiteList::sotoao()
  `rms`(self) | Returns the rms of this matrix
  `rotate_columns`(self, h, i, j, theta) | Rotates columns i and j in irrep h by angle theta
  `rowdim`(self) | Returns the rows per irrep array
  `rows`(self, h) | Returns the rows in irrep h
  `save`(self, filename, append, …) | Saves the matrix in ASCII format to filename, as symmetry blocks or full matrix
  `scale`(self, a) | Scales the matrix by the floating point value a
  `scale_column`(self, h, n, a) | Scales column n of irrep h by a
  `scale_row`(self, h, m, a) | Scales row m of irrep h by a
  `schmidt`(self) | Calls the libqt schmidt function
  `set`(*args, **kwargs) | Overloaded function.
  `set_block`(self, rows, cols, block) | Set a matrix block
  `subtract`(self, arg0) | Substract a matrix from this matrix
  `sum_of_squares`(self) | Returns the sum of the squares of this matrix
  `symmetrize_gradient`(self, mol) | Symmetrizes a gradient-like matrix (N,3) using information from a given molecule
  `symmetry`(self) | Returns the overall symmetry of the matrix
  `to_array`([copy, dense]) | Converts a Psi4 Matrix or Vector to a numpy array.
  `to_serial`() | Converts an object with a .nph accessor to a serialized dictionary
  `trace`(self) | Returns the trace of the matrix
  `transform`(*args, **kwargs) | Overloaded function.
  `transpose`(self) | Creates a new matrix that is the transpose of this matrix
  `transpose_this`(self) | Transpose the matrix in-place
  `triplet`(A, B, C, transA, transB, transC) |
  `vector_dot`(self, rhs) | Returns the vector dot product of this with rhs
  `zero`(self) | Zero all elements of the matrix
  `zero_diagonal`(self) | Zero the diagonal of the matrix
  `zero_lower`(self) | Zero the lower triangle
  `zero_upper`(self) | Zero the upper triangle

  Attributes Documentation

  `name`

    The name of the Matrix. Used in printing.

  `np`

    View without only one irrep

  `nph`

    View with irreps.

  `shape`

    Shape of the Psi4 data object

  Methods Documentation

  `absmax`(self: psi4.core.Matrix) → float

    Returns the absolute maximum value

  `accumulate_product`(self: psi4.core.Matrix, arg0: psi4.core.Matrix, arg1: psi4.core.Matrix) → None

    Multiplies two arguments and adds the result to this matrix

  `add`(*args, **kwargs)

    Overloaded function.

    1. add(self: psi4.core.Matrix, arg0: psi4.core.Matrix) -> None

    Adds a matrix to this matrix

    2. add(self: psi4.core.Matrix, h: int, m: int, n: int, val: float) -> None

    Increments row m and column n of irrep h’s block matrix by val.

  `add_and_orthogonalize_row`(self: psi4.core.Matrix, v: psi4.core.Vector) → bool

    Expands the row dimension by one, and then orthogonalizes vector v against the current rows before setting the new row to the orthogonalized copy of v

  `apply_denominator`(self: psi4.core.Matrix, Matrix: psi4.core.Matrix) → None

    Apply matrix of denominators to this matrix

  `array_interface`(self: psi4.core.Matrix) → list
  `axpy`(self: psi4.core.Matrix, a: float, X: psi4.core.Matrix) → None

    Add to this matrix another matrix scaled by a

  `back_transform`(*args, **kwargs)

    Overloaded function.

    1. back_transform(self: psi4.core.Matrix, transformer: psi4.core.Matrix) -> None

    Backtransform this with transformer

    2. back_transform(self: psi4.core.Matrix, a: psi4.core.Matrix, transformer: psi4.core.Matrix) -> None

    Backtransform A with transformer

  `chain_dot`(**kwargs)

    Chains dot products together from a series of Psi4 Matrix classes.

    By default there is no transposes, an optional vector of booleans can be passed in.

  `cholesky_factorize`(self: psi4.core.Matrix) → None

    Computes the Cholesky factorization of a real symmetric positive definite matrix

  `clone`(self: psi4.core.Matrix) → psi4.core.Matrix

    Creates exact copy of the matrix and returns it

  `coldim`(self: psi4.core.Matrix) → psi4.core.Dimension

    Returns the columns per irrep array

  `cols`(self: psi4.core.Matrix, h: int=0) → int

    Returns the columns in irrep h

  `copy`(self: psi4.core.Matrix, arg0: psi4.core.Matrix) → None

    Returns a copy of the matrix

  `copy_lower_to_upper`(self: psi4.core.Matrix) → None

    Copy the lower triangle to the upper triangle

  `copy_upper_to_lower`(self: psi4.core.Matrix) → None

    Copy the upper triangle to the lower triangle

  `diagonalize`(self: psi4.core.Matrix, eigvectors: psi4.core.Matrix, eigvalues: psi4.core.Vector, order: psi4.core.DiagonalizeOrder=DiagonalizeOrder.Ascending) → None

    Diagonalizes this matrix, space for the eigvectors and eigvalues must be created by caller. Only for symmetric matrices.

  static `doublet`(A, B, transA, transB)
  classmethod `from_array`(arr, name='New Matrix', dim1=None, dim2=None)

    Converts a numpy array or list of numpy arrays into a Psi4 Matrix (irreped if list).

    Parameters:

    - arr (array or list of arrays) – Numpy array or list of arrays to use as the data for a new core.Matrix
    - name (str) – Name to give the new core.Matrix
    - dim1 (list, tuple, or core.Dimension (optional)) – If a single dense numpy array is given, a dimension can be supplied to apply irreps to this array. Note that this discards all extra information given in the matrix besides the diagonal blocks determined by the passed dimension.
    - dim2 – Same as dim1 only if using a psi4.core.Dimension object.

    Returns: | matrix – Returns the given Psi4 object
    Return type: | `Matrix` or `Vector`

    Notes

    This is a generalized function to convert a NumPy array to a Psi4 object

    Examples

        >>> data = np.random.rand(20)
        >>> vector = array_to_matrix(data)

        >>> irrep_data = [np.random.rand(2, 2), np.empty(shape=(0,3)), np.random.rand(4, 4)]
        >>> matrix = array_to_matrix(irrep_data)
        >>> print matrix.rowspi().to_tuple()
        (2, 0, 4)

  classmethod `from_list`(x)
  classmethod `from_serial`(json_data)

    Converts serialized data to the correct Psi4 data type

  `gemm`(self: psi4.core.Matrix, transa: bool, transb: bool, alpha: float, a: psi4.core.Matrix, b: psi4.core.Matrix, beta: float) → None

    Generalized matrix multiplication argument transa Transpose the left matrix? argument transb Transpose the right matrix? argument alpha Prefactor for the matrix multiplication argument A Left matrix argument B Right matrix argument beta Prefactor for the resulting matrix

  `general_invert`(self: psi4.core.Matrix) → None

    Computes the inverse of any nonsingular matrix using LU factorization

  `get`(*args, **kwargs)

    Overloaded function.

    1. get(self: psi4.core.Matrix, h: int, m: int, n: int) -> float

    Returns a single element of a matrix in subblock h, row m, col n

    2. get(self: psi4.core.Matrix, m: int, n: int) -> float

    Returns a single element of a matrix, row m, col n

  `get_block`(self: psi4.core.Matrix, rows: psi4.core.Slice, cols: psi4.core.Slice) → psi4.core.Matrix

    Get a matrix block

  `hermitivitize`(self: psi4.core.Matrix) → None

    Average off-diagonal element in-place

  `hermitize`(self: psi4.core.Matrix) → None

    Makes a real matrix symmetric by averaging the matrix and its transpose.

  `identity`(self: psi4.core.Matrix) → None

    Sets the matrix to the identity

  `invert`(self: psi4.core.Matrix) → None

    Computes the inverse of a real symmetric positive definite matrix

  `load`(*args, **kwargs)

    Overloaded function.

    1. load(self: psi4.core.Matrix, filename: str) -> None

    Loads a block matrix from an ASCII file (see tests/mints3 for format)

    2. load(self: psi4.core.Matrix, psio: psi4.core.IO, fileno: int, tocentry: str, nso: int) -> bool

    Load a matrix from a PSIO object from fileno with tocentry of size nso

    3. load(self: psi4.core.Matrix, psio: psi4.core.IO, fileno: int, savetype: psi4.core.SaveType=SaveType.LowerTriangle) -> None

    Load a matrix from a PSIO object from fileno and with toc position of the name of the matrix

  `load_mpqc`(self: psi4.core.Matrix, filename: str) → None

    Loads a matrix from an ASCII file in MPQC format

  `nirrep`(self: psi4.core.Matrix) → int

    Returns the number of irreps

  classmethod `np_read`(filename, prefix='')

    Reads the data from a NumPy compress file.

  `np_write`(filename=None, prefix='')

    Writes the irreped matrix to a NumPy zipped file.

    Can return the packed data for saving many matrices into the same file.

  `partial_cholesky_factorize`(self: psi4.core.Matrix, delta: float=0.0, throw_if_negative: bool=False) → psi4.core.Matrix

    Computes the fully pivoted partial Cholesky factorization of a real symmetric positive semidefinite matrix, to numerical precision delta

  `power`(self: psi4.core.Matrix, alpha: float, cutoff: float=1e-12) → psi4.core.Dimension

    Takes the matrix to the alpha power with precision cutoff

  `print_atom_vector`(self: psi4.core.Matrix, RMRoutfile: str='outfile') → None

    Print the matrix with atom labels, assuming it is an natom X 3 tensor

  `print_out`(self: psi4.core.Matrix) → None

    Prints the matrix to the output file

  `pseudoinverse`(self: psi4.core.Matrix, condition: float, nremoved: int) → psi4.core.Matrix

    Computes the matrix which is the conditioned pseudoinverse of this matrix

  `remove_symmetry`(self: psi4.core.Matrix, a: psi4.core.Matrix, transformer: psi4.core.Matrix) → None

    Remove symmetry from a matrix A with PetiteList::sotoao()

  `rms`(self: psi4.core.Matrix) → float

    Returns the rms of this matrix

  `rotate_columns`(self: psi4.core.Matrix, h: int, i: int, j: int, theta: float) → None

    Rotates columns i and j in irrep h by angle theta

  `rowdim`(self: psi4.core.Matrix) → psi4.core.Dimension

    Returns the rows per irrep array

  `rows`(self: psi4.core.Matrix, h: int=0) → int

    Returns the rows in irrep h

  `save`(self: psi4.core.Matrix, filename: str, append: bool=True, saveLowerTriangle: bool=True, saveSubBlocks: bool=False) → None

    Saves the matrix in ASCII format to filename, as symmetry blocks or full matrix

  `scale`(self: psi4.core.Matrix, a: float) → None

    Scales the matrix by the floating point value a

  `scale_column`(self: psi4.core.Matrix, h: int, n: int, a: float) → None

    Scales column n of irrep h by a

  `scale_row`(self: psi4.core.Matrix, h: int, m: int, a: float) → None

    Scales row m of irrep h by a

  `schmidt`(self: psi4.core.Matrix) → None

    Calls the libqt schmidt function

  `set`(*args, **kwargs)

    Overloaded function.

    1. set(self: psi4.core.Matrix, val: float) -> None

    Sets every element of a matrix to val

    2. set(self: psi4.core.Matrix, m: int, n: int, val: float) -> None

    Sets a single element of a matrix to val at row m, col n

    3. set(self: psi4.core.Matrix, h: int, m: int, n: int, val: float) -> None

    Sets a single element of a matrix, subblock h, row m, col n, with value val

  `set_block`(self: psi4.core.Matrix, rows: psi4.core.Slice, cols: psi4.core.Slice, block: psi4.core.Matrix) → None

    Set a matrix block

  `subtract`(self: psi4.core.Matrix, arg0: psi4.core.Matrix) → None

    Substract a matrix from this matrix

  `sum_of_squares`(self: psi4.core.Matrix) → float

    Returns the sum of the squares of this matrix

  `symmetrize_gradient`(self: psi4.core.Matrix, mol: psi::Molecule) → None

    Symmetrizes a gradient-like matrix (N,3) using information from a given molecule

  `symmetry`(self: psi4.core.Matrix) → int

    Returns the overall symmetry of the matrix

  `to_array`(copy=True, dense=False)

    Converts a Psi4 Matrix or Vector to a numpy array. Either copies the data or simply constructs a view.

    Parameters:

    - matrix (`Matrix` or `Vector`) – Pointers to which Psi4 core class should be used in the construction.
    - copy (bool, optional) – Copy the data if True, return a view otherwise
    - dense (bool, optional) – Converts irreped Psi4 objects to diagonally blocked dense arrays if True. Returns a list of arrays otherwise.

    Returns: | array – Returns either a list of np.array’s or the base array depending on options.
    Return type: | ndarray or list of ndarray

    Notes

    This is a generalized function to convert a Psi4 object to a NumPy array

    Examples

        >>> data = psi4.Matrix(3, 3)
        >>> data.to_array()
        [[ 0.  0.  0.]
         [ 0.  0.  0.]
         [ 0.  0.  0.]]

  `to_serial`()

    Converts an object with a .nph accessor to a serialized dictionary

  `trace`(self: psi4.core.Matrix) → float

    Returns the trace of the matrix

  `transform`(*args, **kwargs)

    Overloaded function.

    1. transform(self: psi4.core.Matrix, transformer: psi4.core.Matrix) -> None

    Transform this matrix with transformer

    2. transform(self: psi4.core.Matrix, a: psi4.core.Matrix, transformer: psi4.core.Matrix) -> None

    Transform A with transformer

  `transpose`(self: psi4.core.Matrix) → psi4.core.Matrix

    Creates a new matrix that is the transpose of this matrix

  `transpose_this`(self: psi4.core.Matrix) → None

    Transpose the matrix in-place

  static `triplet`(A, B, C, transA, transB, transC)
  `vector_dot`(self: psi4.core.Matrix, rhs: psi4.core.Matrix) → float

    Returns the vector dot product of this with rhs

  `zero`(self: psi4.core.Matrix) → None

    Zero all elements of the matrix

  `zero_diagonal`(self: psi4.core.Matrix) → None

    Zero the diagonal of the matrix

  `zero_lower`(self: psi4.core.Matrix) → None

    Zero the lower triangle

  `zero_upper`(self: psi4.core.Matrix) → None

    Zero the upper triangle

  `absmax`(self: psi4.core.Matrix) → float

    Returns the absolute maximum value

  `accumulate_product`(self: psi4.core.Matrix, arg0: psi4.core.Matrix, arg1: psi4.core.Matrix) → None

    Multiplies two arguments and adds the result to this matrix

  `add`(*args, **kwargs)

    Overloaded function.

    1. add(self: psi4.core.Matrix, arg0: psi4.core.Matrix) -> None

    Adds a matrix to this matrix

    2. add(self: psi4.core.Matrix, h: int, m: int, n: int, val: float) -> None

    Increments row m and column n of irrep h’s block matrix by val.

  `add_and_orthogonalize_row`(self: psi4.core.Matrix, v: psi4.core.Vector) → bool

    Expands the row dimension by one, and then orthogonalizes vector v against the current rows before setting the new row to the orthogonalized copy of v

  `apply_denominator`(self: psi4.core.Matrix, Matrix: psi4.core.Matrix) → None

    Apply matrix of denominators to this matrix

  `array_interface`(self: psi4.core.Matrix) → list
  `axpy`(self: psi4.core.Matrix, a: float, X: psi4.core.Matrix) → None

    Add to this matrix another matrix scaled by a

  `back_transform`(*args, **kwargs)

    Overloaded function.

    1. back_transform(self: psi4.core.Matrix, transformer: psi4.core.Matrix) -> None

    Backtransform this with transformer

    2. back_transform(self: psi4.core.Matrix, a: psi4.core.Matrix, transformer: psi4.core.Matrix) -> None

    Backtransform A with transformer

  `chain_dot`(**kwargs)

    Chains dot products together from a series of Psi4 Matrix classes.

    By default there is no transposes, an optional vector of booleans can be passed in.

  `cholesky_factorize`(self: psi4.core.Matrix) → None

    Computes the Cholesky factorization of a real symmetric positive definite matrix

  `clone`(self: psi4.core.Matrix) → psi4.core.Matrix

    Creates exact copy of the matrix and returns it

  `coldim`(self: psi4.core.Matrix) → psi4.core.Dimension

    Returns the columns per irrep array

  `cols`(self: psi4.core.Matrix, h: int=0) → int

    Returns the columns in irrep h

  `copy`(self: psi4.core.Matrix, arg0: psi4.core.Matrix) → None

    Returns a copy of the matrix

  `copy_lower_to_upper`(self: psi4.core.Matrix) → None

    Copy the lower triangle to the upper triangle

  `copy_upper_to_lower`(self: psi4.core.Matrix) → None

    Copy the upper triangle to the lower triangle

  `diagonalize`(self: psi4.core.Matrix, eigvectors: psi4.core.Matrix, eigvalues: psi4.core.Vector, order: psi4.core.DiagonalizeOrder=DiagonalizeOrder.Ascending) → None

    Diagonalizes this matrix, space for the eigvectors and eigvalues must be created by caller. Only for symmetric matrices.

  static `doublet`(A, B, transA, transB)
  classmethod `from_array`(arr, name='New Matrix', dim1=None, dim2=None)

    Converts a numpy array or list of numpy arrays into a Psi4 Matrix (irreped if list).

    Parameters:

    - arr (array or list of arrays) – Numpy array or list of arrays to use as the data for a new core.Matrix
    - name (str) – Name to give the new core.Matrix
    - dim1 (list, tuple, or core.Dimension (optional)) – If a single dense numpy array is given, a dimension can be supplied to apply irreps to this array. Note that this discards all extra information given in the matrix besides the diagonal blocks determined by the passed dimension.
    - dim2 – Same as dim1 only if using a psi4.core.Dimension object.

    Returns: | matrix – Returns the given Psi4 object
    Return type: | `Matrix` or `Vector`

    Notes

    This is a generalized function to convert a NumPy array to a Psi4 object

    Examples

        >>> data = np.random.rand(20)
        >>> vector = array_to_matrix(data)

        >>> irrep_data = [np.random.rand(2, 2), np.empty(shape=(0,3)), np.random.rand(4, 4)]
        >>> matrix = array_to_matrix(irrep_data)
        >>> print matrix.rowspi().to_tuple()
        (2, 0, 4)

  classmethod `from_list`(x)
  classmethod `from_serial`(json_data)

    Converts serialized data to the correct Psi4 data type

  `gemm`(self: psi4.core.Matrix, transa: bool, transb: bool, alpha: float, a: psi4.core.Matrix, b: psi4.core.Matrix, beta: float) → None

    Generalized matrix multiplication argument transa Transpose the left matrix? argument transb Transpose the right matrix? argument alpha Prefactor for the matrix multiplication argument A Left matrix argument B Right matrix argument beta Prefactor for the resulting matrix

  `general_invert`(self: psi4.core.Matrix) → None

    Computes the inverse of any nonsingular matrix using LU factorization

  `get`(*args, **kwargs)

    Overloaded function.

    1. get(self: psi4.core.Matrix, h: int, m: int, n: int) -> float

    Returns a single element of a matrix in subblock h, row m, col n

    2. get(self: psi4.core.Matrix, m: int, n: int) -> float

    Returns a single element of a matrix, row m, col n

  `get_block`(self: psi4.core.Matrix, rows: psi4.core.Slice, cols: psi4.core.Slice) → psi4.core.Matrix

    Get a matrix block

  `hermitivitize`(self: psi4.core.Matrix) → None

    Average off-diagonal element in-place

  `hermitize`(self: psi4.core.Matrix) → None

    Makes a real matrix symmetric by averaging the matrix and its transpose.

  `identity`(self: psi4.core.Matrix) → None

    Sets the matrix to the identity

  `invert`(self: psi4.core.Matrix) → None

    Computes the inverse of a real symmetric positive definite matrix

  `load`(*args, **kwargs)

    Overloaded function.

    1. load(self: psi4.core.Matrix, filename: str) -> None

    Loads a block matrix from an ASCII file (see tests/mints3 for format)

    2. load(self: psi4.core.Matrix, psio: psi4.core.IO, fileno: int, tocentry: str, nso: int) -> bool

    Load a matrix from a PSIO object from fileno with tocentry of size nso

    3. load(self: psi4.core.Matrix, psio: psi4.core.IO, fileno: int, savetype: psi4.core.SaveType=SaveType.LowerTriangle) -> None

    Load a matrix from a PSIO object from fileno and with toc position of the name of the matrix

  `load_mpqc`(self: psi4.core.Matrix, filename: str) → None

    Loads a matrix from an ASCII file in MPQC format

  `name`

    The name of the Matrix. Used in printing.

  `nirrep`(self: psi4.core.Matrix) → int

    Returns the number of irreps

  `np`

    View without only one irrep

  classmethod `np_read`(filename, prefix='')

    Reads the data from a NumPy compress file.

  `np_write`(filename=None, prefix='')

    Writes the irreped matrix to a NumPy zipped file.

    Can return the packed data for saving many matrices into the same file.

  `nph`

    View with irreps.

  `partial_cholesky_factorize`(self: psi4.core.Matrix, delta: float=0.0, throw_if_negative: bool=False) → psi4.core.Matrix

    Computes the fully pivoted partial Cholesky factorization of a real symmetric positive semidefinite matrix, to numerical precision delta

  `power`(self: psi4.core.Matrix, alpha: float, cutoff: float=1e-12) → psi4.core.Dimension

    Takes the matrix to the alpha power with precision cutoff

  `print_atom_vector`(self: psi4.core.Matrix, RMRoutfile: str='outfile') → None

    Print the matrix with atom labels, assuming it is an natom X 3 tensor

  `print_out`(self: psi4.core.Matrix) → None

    Prints the matrix to the output file

  `pseudoinverse`(self: psi4.core.Matrix, condition: float, nremoved: int) → psi4.core.Matrix

    Computes the matrix which is the conditioned pseudoinverse of this matrix

  `remove_symmetry`(self: psi4.core.Matrix, a: psi4.core.Matrix, transformer: psi4.core.Matrix) → None

    Remove symmetry from a matrix A with PetiteList::sotoao()

  `rms`(self: psi4.core.Matrix) → float

    Returns the rms of this matrix

  `rotate_columns`(self: psi4.core.Matrix, h: int, i: int, j: int, theta: float) → None

    Rotates columns i and j in irrep h by angle theta

  `rowdim`(self: psi4.core.Matrix) → psi4.core.Dimension

    Returns the rows per irrep array

  `rows`(self: psi4.core.Matrix, h: int=0) → int

    Returns the rows in irrep h

  `save`(self: psi4.core.Matrix, filename: str, append: bool=True, saveLowerTriangle: bool=True, saveSubBlocks: bool=False) → None

    Saves the matrix in ASCII format to filename, as symmetry blocks or full matrix

  `scale`(self: psi4.core.Matrix, a: float) → None

    Scales the matrix by the floating point value a

  `scale_column`(self: psi4.core.Matrix, h: int, n: int, a: float) → None

    Scales column n of irrep h by a

  `scale_row`(self: psi4.core.Matrix, h: int, m: int, a: float) → None

    Scales row m of irrep h by a

  `schmidt`(self: psi4.core.Matrix) → None

    Calls the libqt schmidt function

  `set`(*args, **kwargs)

    Overloaded function.

    1. set(self: psi4.core.Matrix, val: float) -> None

    Sets every element of a matrix to val

    2. set(self: psi4.core.Matrix, m: int, n: int, val: float) -> None

    Sets a single element of a matrix to val at row m, col n

    3. set(self: psi4.core.Matrix, h: int, m: int, n: int, val: float) -> None

    Sets a single element of a matrix, subblock h, row m, col n, with value val

  `set_block`(self: psi4.core.Matrix, rows: psi4.core.Slice, cols: psi4.core.Slice, block: psi4.core.Matrix) → None

    Set a matrix block

  `shape`

    Shape of the Psi4 data object

  `subtract`(self: psi4.core.Matrix, arg0: psi4.core.Matrix) → None

    Substract a matrix from this matrix

  `sum_of_squares`(self: psi4.core.Matrix) → float

    Returns the sum of the squares of this matrix

  `symmetrize_gradient`(self: psi4.core.Matrix, mol: psi::Molecule) → None

    Symmetrizes a gradient-like matrix (N,3) using information from a given molecule

  `symmetry`(self: psi4.core.Matrix) → int

    Returns the overall symmetry of the matrix

  `to_array`(copy=True, dense=False)

    Converts a Psi4 Matrix or Vector to a numpy array. Either copies the data or simply constructs a view.

    Parameters:

    - matrix (`Matrix` or `Vector`) – Pointers to which Psi4 core class should be used in the construction.
    - copy (bool, optional) – Copy the data if True, return a view otherwise
    - dense (bool, optional) – Converts irreped Psi4 objects to diagonally blocked dense arrays if True. Returns a list of arrays otherwise.

    Returns: | array – Returns either a list of np.array’s or the base array depending on options.
    Return type: | ndarray or list of ndarray

    Notes

    This is a generalized function to convert a Psi4 object to a NumPy array

    Examples

        >>> data = psi4.Matrix(3, 3)
        >>> data.to_array()
        [[ 0.  0.  0.]
         [ 0.  0.  0.]
         [ 0.  0.  0.]]

  `to_serial`()

    Converts an object with a .nph accessor to a serialized dictionary

  `trace`(self: psi4.core.Matrix) → float

    Returns the trace of the matrix

  `transform`(*args, **kwargs)

    Overloaded function.

    1. transform(self: psi4.core.Matrix, transformer: psi4.core.Matrix) -> None

    Transform this matrix with transformer

    2. transform(self: psi4.core.Matrix, a: psi4.core.Matrix, transformer: psi4.core.Matrix) -> None

    Transform A with transformer

  `transpose`(self: psi4.core.Matrix) → psi4.core.Matrix

    Creates a new matrix that is the transpose of this matrix

  `transpose_this`(self: psi4.core.Matrix) → None

    Transpose the matrix in-place

  static `triplet`(A, B, C, transA, transB, transC)
  `vector_dot`(self: psi4.core.Matrix, rhs: psi4.core.Matrix) → float

    Returns the vector dot product of this with rhs

  `zero`(self: psi4.core.Matrix) → None

    Zero all elements of the matrix

  `zero_diagonal`(self: psi4.core.Matrix) → None

    Zero the diagonal of the matrix

  `zero_lower`(self: psi4.core.Matrix) → None

    Zero the lower triangle

  `zero_upper`(self: psi4.core.Matrix) → None

    Zero the upper triangle