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

# sc\_ReplSCMatrix(3)

## NAME

sc::ReplSCMatrix

## SYNOPSIS

Inherits **sc::SCMatrix**.

### Public Member Functions

**ReplSCMatrix** (const **RefSCDimension** &, const **RefSCDimension** &, **ReplSCMatrixKit** \*)\
 void **assign\_val** (double)\
 Overridden to implement to assign members.  double **get\_element** (int, int) const\
 Return or modify an element.  void **set\_element** (int, int, double)\
 void **accumulate\_element** (int, int, double)\
 **SCMatrix** \* **get\_subblock** (int, int, int, int)\
 Return a subblock of this.  void **assign\_subblock** (**SCMatrix** \*, int, int, int, int, int=0, int=0)\
 Assign m to a subblock of this.  void **accumulate\_subblock** (**SCMatrix** \*, int, int, int, int, int=0, int=0)\
 Sum m into a subblock of this.  **SCVector** \* **get\_row** (int i)\
 Return a row or column of this.  **SCVector** \* **get\_column** (int i)\
 void **assign\_row** (**SCVector** \*v, int i)\
 Assign v to a row or column of this.  void **assign\_column** (**SCVector** \*v, int i)\
 void **accumulate\_row** (**SCVector** \*v, int i)\
 Sum v to a row or column of this.  void **accumulate\_column** (**SCVector** \*v, int i)\
 void **accumulate\_outer\_product** (**SCVector** \*, **SCVector** \*)\
 Sum into this the products of various vectors or matrices.  void **accumulate\_product\_rr** (**SCMatrix** \*, **SCMatrix** \*)\
 void **accumulate\_product\_rs** (**SCMatrix** \*, **SymmSCMatrix** \*)\
 void **accumulate\_product\_rd** (**SCMatrix** \*, **DiagSCMatrix** \*)\
 void **accumulate** (const **SCMatrix** \*)\
 Sum m into this.  void **accumulate** (const **SymmSCMatrix** \*)\
 void **accumulate** (const **DiagSCMatrix** \*)\
 void **accumulate** (const **SCVector** \*)\
 void **transpose\_this** ()\
 Transpose this.  double **invert\_this** ()\
 Invert this.  void **svd\_this** (**SCMatrix** \*U, **DiagSCMatrix** \*sigma, **SCMatrix** \*V)\
 **Compute** the singular value decomposition for this, possibly destroying this.  double **solve\_this** (**SCVector** \*)\
 double **determ\_this** ()\
 Return the determinant of this. this is overwritten.  double **trace** ()\
 Return the trace.  void **schmidt\_orthog** (**SymmSCMatrix** \*, int)\
 Schmidt orthogonalize this.  int **schmidt\_orthog\_tol** (**SymmSCMatrix** \*, double tol, double \*res=0)\
 Schmidt orthogonalize this.  void **element\_op** (const **Ref**\< **SCElementOp** \> &)\
 Perform the element operation op on each element of this.  void **element\_op** (const **Ref**\< **SCElementOp2** \> &, **SCMatrix** \*)\
 void **element\_op** (const **Ref**\< **SCElementOp3** \> &, **SCMatrix** \*, **SCMatrix** \*)\
 void **vprint** (const char \*title=0, std::ostream &out=**ExEnv::out0**(), int=10) const\
 double \* **get\_data** ()\
 double \*\* **get\_rows** ()\
 **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.  **Ref**\< **ReplSCMatrixKit** \> **skit** ()\

### Protected Member Functions

int **compute\_offset** (int, int) const\
 void **init\_blocklist** ()\
 void **before\_elemop** ()\
 void **after\_elemop** ()\

### Protected Attributes

**Ref**\< **SCMatrixBlockList** \> **blocklist**\
 double \* **matrix**\
 double \*\* **rows**\

### Friends

class **ReplSymmSCMatrix**\
 class **ReplDiagSCMatrix**\
 class **ReplSCVector**\

### Additional Inherited Members

## Member Function Documentation

### void sc::ReplSCMatrix::accumulate (const DiagSCMatrix \*)` [virtual]`

Implements **sc::SCMatrix**.

### void sc::ReplSCMatrix::accumulate (const SCMatrix \* m)` [virtual]`

Sum m into this.

Implements **sc::SCMatrix**.

### void sc::ReplSCMatrix::accumulate (const SCVector \*)` [virtual]`

Implements **sc::SCMatrix**.

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

Implements **sc::SCMatrix**.

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

Implements **sc::SCMatrix**.

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

Implements **sc::SCMatrix**.

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

Sum into this the products of various vectors or matrices.

Implements **sc::SCMatrix**.

### void sc::ReplSCMatrix::accumulate\_product\_rd (SCMatrix \*, DiagSCMatrix \*)` [virtual]`

Reimplemented from **sc::SCMatrix**.

### void sc::ReplSCMatrix::accumulate\_product\_rr (SCMatrix \*, SCMatrix \*)` [virtual]`

Implements **sc::SCMatrix**.

### void sc::ReplSCMatrix::accumulate\_product\_rs (SCMatrix \*, SymmSCMatrix \*)` [virtual]`

Reimplemented from **sc::SCMatrix**.

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

Sum v to a row or column of this.

Implements **sc::SCMatrix**.

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

Sum m into a subblock of this.

Implements **sc::SCMatrix**.

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

Returns iterators for the all blocks used in this matrix.

Implements **sc::SCMatrix**.

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

Implements **sc::SCMatrix**.

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

Assign v to a row or column of this.

Implements **sc::SCMatrix**.

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

Assign m to a subblock of this.

Implements **sc::SCMatrix**.

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

Overridden to implement to assign members.

Reimplemented from **sc::SCMatrix**.

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

Return the determinant of this. this is overwritten.

Implements **sc::SCMatrix**.

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

Perform the element operation op on each element of this.

Implements **sc::SCMatrix**.

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

Implements **sc::SCMatrix**.

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

Implements **sc::SCMatrix**.

### SCVector \* sc::ReplSCMatrix::get\_column (int i)` [virtual]`

Implements **sc::SCMatrix**.

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

Return or modify an element.

Implements **sc::SCMatrix**.

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

Return a row or column of this.

Implements **sc::SCMatrix**.

### SCMatrix \* sc::ReplSCMatrix::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::SCMatrix**.

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

Invert this.

Implements **sc::SCMatrix**.

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

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

Implements **sc::SCMatrix**.

### void sc::ReplSCMatrix::schmidt\_orthog (SymmSCMatrix \*, int n)` [virtual]`

Schmidt orthogonalize this. S is the overlap matrix. n is the number of columns to orthogonalize.

Implements **sc::SCMatrix**.

### int sc::ReplSCMatrix::schmidt\_orthog\_tol (SymmSCMatrix \*, double tol, double \* res = `0`)` [virtual]`

Schmidt orthogonalize this. S is the overlap matrix. tol is the tolerance. The number of linearly independent vectors is returned.

Implements **sc::SCMatrix**.

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

Implements **sc::SCMatrix**.

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

Implements **sc::SCMatrix**.

### void sc::ReplSCMatrix::svd\_this (SCMatrix \* U, DiagSCMatrix \* sigma, SCMatrix \* V)` [virtual]`

**Compute** the singular value decomposition for this, possibly destroying this.

Reimplemented from **sc::SCMatrix**.

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

Return the trace.

Implements **sc::SCMatrix**.

### void sc::ReplSCMatrix::transpose\_this ()` [virtual]`

Transpose this.

Implements **sc::SCMatrix**.

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

Implements **sc::SCMatrix**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
