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

# sc\_SCMatrixBlock(3)

SCMatrixBlock is the base clase for all types of blocks that comprise matrices and vectors.

## NAME

sc::SCMatrixBlock - **SCMatrixBlock** is the base clase for all types of blocks that comprise matrices and vectors.

## SYNOPSIS

`#include <block.h>`

Inherits **sc::SavableState**.

Inherited by **sc::SCMatrixDiagBlock**, **sc::SCMatrixDiagSubBlock**, **sc::SCMatrixLTriBlock**, **sc::SCMatrixLTriSubBlock**, **sc::SCMatrixRectBlock**, **sc::SCMatrixRectSubBlock**, **sc::SCVectorSimpleBlock**, and **sc::SCVectorSimpleSubBlock**.

### Public Member Functions

**SCMatrixBlock** (**StateIn** &s)\
 void **save\_data\_state** (**StateOut** &s)\
 Save the base classes (with save\_data\_state) and the members in the same order that the **StateIn** CTOR initializes them.  virtual **SCMatrixBlock** \* **deepcopy** () const\
 Return of copy of this.  virtual double \* **dat** ()\
 Return a pointer to the block's data and the number of elements in the block.  virtual int **ndat** () const\
 virtual void **process** (**SCElementOp** \*)=0\
 virtual void **process** (**SCElementOp2** \*, **SCMatrixBlock** \*)=0\
 virtual void **process** (**SCElementOp3** \*, **SCMatrixBlock** \*, **SCMatrixBlock** \*)=0\

### Public Attributes

int **blocki**\
 int **blockj**\

### Additional Inherited Members

## Detailed Description

**SCMatrixBlock** is the base clase for all types of blocks that comprise matrices and vectors.

## Member Function Documentation

### virtual double \* sc::SCMatrixBlock::dat ()` [virtual]`

Return a pointer to the block's data and the number of elements in the block. Some blocks cannot provide this information and a runtime error will be generated if these members are called. These routines are only used internally in the matrix library.

Reimplemented in **sc::SCVectorSimpleBlock**, **sc::SCMatrixRectBlock**, **sc::SCMatrixLTriBlock**, and **sc::SCMatrixDiagBlock**.

### virtual SCMatrixBlock \* sc::SCMatrixBlock::deepcopy () const` [virtual]`

Return of copy of this. A runtime error will be generated for blocks that cannot do a deepcopy. These routines are only used internally in the matrix library.

Reimplemented in **sc::SCVectorSimpleBlock**, **sc::SCMatrixRectBlock**, **sc::SCMatrixLTriBlock**, and **sc::SCMatrixDiagBlock**.

### void sc::SCMatrixBlock::save\_data\_state (StateOut &)` [virtual]`

Save the base classes (with save\_data\_state) and the members in the same order that the **StateIn** CTOR initializes them. This must be implemented by the derived class if the class has data.

Reimplemented from **sc::SavableState**.

Reimplemented in **sc::SCVectorSimpleBlock**, **sc::SCVectorSimpleSubBlock**, **sc::SCMatrixRectBlock**, **sc::SCMatrixRectSubBlock**, **sc::SCMatrixLTriBlock**, **sc::SCMatrixLTriSubBlock**, **sc::SCMatrixDiagBlock**, and **sc::SCMatrixDiagSubBlock**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
