---
name: "sc_BlockedSymmSCMatrix"
section: "3"
platform: "linux"
package: "libsc-doc"
version: "2.3.1-22"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/sc_BlockedSymmSCMatrix"
---

# sc\_BlockedSymmSCMatrix(3)

## NAME

sc::BlockedSymmSCMatrix

## SYNOPSIS

Inherits **sc::SymmSCMatrix**.

### Public Member Functions

**BlockedSymmSCMatrix** (const **RefSCDimension** &, **BlockedSCMatrixKit** \*)\
 void **save** (**StateOut** &)\
 Save and restore this in an implementation independent way.  void **restore** (**StateIn** &)\
 double **get\_element** (int, int) const\
 Return or modify an element.  void **set\_element** (int, int, double)\
 void **accumulate\_element** (int, int, double)\
 void **scale** (double)\
 Multiply all elements by val.  void **assign\_val** (double)\
 Overridden to implement the assign functions.  void **assign\_s** (**SymmSCMatrix** \*m)\
 **SCMatrix** \* **get\_subblock** (int, int, int, int)\
 Return a subblock of this.  **SymmSCMatrix** \* **get\_subblock** (int, int)\
 void **assign\_subblock** (**SCMatrix** \*, int, int, int, int)\
 Assign m to a subblock of this.  void **assign\_subblock** (**SymmSCMatrix** \*, int, int)\
 void **accumulate\_subblock** (**SCMatrix** \*, int, int, int, int)\
 Sum m into a subblock of this.  void **accumulate\_subblock** (**SymmSCMatrix** \*, int, int)\
 **SCVector** \* **get\_row** (int i)\
 Return a row of this.  void **assign\_row** (**SCVector** \*v, int i)\
 Assign v to a row of this.  void **accumulate\_row** (**SCVector** \*v, int i)\
 Sum v to a row of this.  double **invert\_this** ()\
 Invert this.  double **determ\_this** ()\
 Return the determinant of this. this is overwritten.  double **trace** ()\
 Return the trace.  double **solve\_this** (**SCVector** \*)\
 void **gen\_invert\_this** ()\
 double **scalar\_product** (**SCVector** \*)\
 Return the scalar obtained by multiplying this on the left and right by v.  void **diagonalize** (**DiagSCMatrix** \*, **SCMatrix** \*)\
 Diagonalize this, placing the eigenvalues in d and the eigenvectors in m.  void **accumulate** (const **SymmSCMatrix** \*)\
 Sum m into this.  void **accumulate\_symmetric\_outer\_product** (**SCVector** \*)\
 void **accumulate\_symmetric\_product** (**SCMatrix** \*)\
 void **accumulate\_symmetric\_sum** (**SCMatrix** \*)\
 Sum into this the products of various vectors or matrices.  void **accumulate\_transform** (**SCMatrix** \*, **SymmSCMatrix** \*, SCMatrix::Transform=SCMatrix::NormalTransform)\
 void **accumulate\_transform** (**SCMatrix** \*, **DiagSCMatrix** \*, SCMatrix::Transform=SCMatrix::NormalTransform)\
 void **accumulate\_transform** (**SymmSCMatrix** \*, **SymmSCMatrix** \*)\
 void **convert\_accumulate** (**SymmSCMatrix** \*a)\
 void **element\_op** (const **Ref**\< **SCElementOp** \> &)\
 Perform the element operation op on each element of this.  void **element\_op** (const **Ref**\< **SCElementOp2** \> &, **SymmSCMatrix** \*)\
 void **element\_op** (const **Ref**\< **SCElementOp3** \> &, **SymmSCMatrix** \*, **SymmSCMatrix** \*)\
 void **vprint** (const char \*title=0, std::ostream &out=**ExEnv::out0**(), int=10) const\
 **RefSCDimension** **dim** () const\
 **RefSCDimension** **dim** (int) const\
 int **nblocks** () const\
 **RefSymmSCMatrix** **block** (int)\
 **Ref**\< **SCMatrixSubblockIter** \> **local\_blocks** (SCMatrixSubblockIter::Access)\
 Returns iterators for the local (rapidly accessible) blocks used in this matrix.  **Ref**\< **SCMatrixSubblockIter** \> **all\_blocks** (SCMatrixSubblockIter::Access)\
 Returns iterators for the all blocks used in this matrix.

### Friends

class **BlockedSCMatrix**\
 class **BlockedDiagSCMatrix**\
 class **BlockedSCVector**\

### Additional Inherited Members

## Member Function Documentation

### void sc::BlockedSymmSCMatrix::accumulate (const SymmSCMatrix \* m)` [virtual]`

Sum m into this.

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::accumulate\_element (int, int, double)` [virtual]`

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::accumulate\_row (SCVector \* v, int i)` [virtual]`

Sum v to a row of this.

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::accumulate\_subblock (SCMatrix \* m, int, int, int, int)` [virtual]`

Sum m into a subblock of this.

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::accumulate\_subblock (SymmSCMatrix \*, int, int)` [virtual]`

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::accumulate\_symmetric\_outer\_product (SCVector \*)` [virtual]`

Reimplemented from **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::accumulate\_symmetric\_product (SCMatrix \*)` [virtual]`

Reimplemented from **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::accumulate\_symmetric\_sum (SCMatrix \*)` [virtual]`

Sum into this the products of various vectors or matrices.

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::accumulate\_transform (SCMatrix \*, DiagSCMatrix \*, SCMatrix::Transform = `SCMatrix::NormalTransform`)` [virtual]`

Reimplemented from **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::accumulate\_transform (SCMatrix \*, SymmSCMatrix \*, SCMatrix::Transform = `SCMatrix::NormalTransform`)` [virtual]`

Reimplemented from **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::accumulate\_transform (SymmSCMatrix \*, SymmSCMatrix \*)` [virtual]`

Reimplemented from **sc::SymmSCMatrix**.

### Ref\< SCMatrixSubblockIter \> sc::BlockedSymmSCMatrix::all\_blocks (SCMatrixSubblockIter::Access)` [virtual]`

Returns iterators for the all blocks used in this matrix.

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::assign\_row (SCVector \* v, int i)` [virtual]`

Assign v to a row of this.

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::assign\_s (SymmSCMatrix \* m)` [virtual]`

Reimplemented from **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::assign\_subblock (SCMatrix \* m, int, int, int, int)` [virtual]`

Assign m to a subblock of this.

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::assign\_subblock (SymmSCMatrix \*, int, int)` [virtual]`

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::assign\_val (double val)` [virtual]`

Overridden to implement the assign functions.

Reimplemented from **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::convert\_accumulate (SymmSCMatrix \* a)` [virtual]`

Reimplemented from **sc::SymmSCMatrix**.

### double sc::BlockedSymmSCMatrix::determ\_this ()` [virtual]`

Return the determinant of this. this is overwritten.

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::diagonalize (DiagSCMatrix \* d, SCMatrix \* m)` [virtual]`

Diagonalize this, placing the eigenvalues in d and the eigenvectors in m.

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::element\_op (const Ref\< SCElementOp \> &)` [virtual]`

Perform the element operation op on each element of this.

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::element\_op (const Ref\< SCElementOp2 \> &, SymmSCMatrix \*)` [virtual]`

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::element\_op (const Ref\< SCElementOp3 \> &, SymmSCMatrix \*, SymmSCMatrix \*)` [virtual]`

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::gen\_invert\_this ()` [virtual]`

Implements **sc::SymmSCMatrix**.

### double sc::BlockedSymmSCMatrix::get\_element (int, int) const` [virtual]`

Return or modify an element.

Implements **sc::SymmSCMatrix**.

### SCVector \* sc::BlockedSymmSCMatrix::get\_row (int i)` [virtual]`

Return a row of this.

Implements **sc::SymmSCMatrix**.

### SymmSCMatrix \* sc::BlockedSymmSCMatrix::get\_subblock (int, int)` [virtual]`

Implements **sc::SymmSCMatrix**.

### SCMatrix \* sc::BlockedSymmSCMatrix::get\_subblock (int br, int er, int bc, int ec)` [virtual]`

Return a subblock of this. The subblock is defined as the rows starting at br and ending at er, and the columns beginning at bc and ending at ec.

Implements **sc::SymmSCMatrix**.

### double sc::BlockedSymmSCMatrix::invert\_this ()` [virtual]`

Invert this.

Implements **sc::SymmSCMatrix**.

### Ref\< SCMatrixSubblockIter \> sc::BlockedSymmSCMatrix::local\_blocks (SCMatrixSubblockIter::Access)` [virtual]`

Returns iterators for the local (rapidly accessible) blocks used in this matrix.

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::restore (StateIn &)` [virtual]`

Reimplemented from **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::save (StateOut &)` [virtual]`

Save and restore this in an implementation independent way.

Reimplemented from **sc::SymmSCMatrix**.

### double sc::BlockedSymmSCMatrix::scalar\_product (SCVector \* v)` [virtual]`

Return the scalar obtained by multiplying this on the left and right by v.

Reimplemented from **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::scale (double)` [virtual]`

Multiply all elements by val.

Reimplemented from **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::set\_element (int, int, double)` [virtual]`

Implements **sc::SymmSCMatrix**.

### double sc::BlockedSymmSCMatrix::solve\_this (SCVector \*)` [virtual]`

Implements **sc::SymmSCMatrix**.

### double sc::BlockedSymmSCMatrix::trace ()` [virtual]`

Return the trace.

Implements **sc::SymmSCMatrix**.

### void sc::BlockedSymmSCMatrix::vprint (const char \* title = `0`, std::ostream & out = ExEnv::out0`()`, int = `10`) const` [virtual]`

Reimplemented from **sc::SymmSCMatrix**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
