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

# sc\_SCMatrixKit(3)

The SCMatrixKit abstract class acts as a factory for producing matrices.

## NAME

sc::SCMatrixKit - The **SCMatrixKit** abstract class acts as a factory for producing matrices.

## SYNOPSIS

`#include <abstract.h>`

Inherits **sc::DescribedClass**.

Inherited by **sc::BlockedSCMatrixKit**, **sc::DistSCMatrixKit**, **sc::LocalSCMatrixKit**, and **sc::ReplSCMatrixKit**.

### Public Member Functions

**SCMatrixKit** (const **Ref**\< **KeyVal** \> &)\
 **Ref**\< **MessageGrp** \> **messagegrp** () const\
 virtual **SCMatrix** \* **matrix** (const **RefSCDimension** &, const **RefSCDimension** &)=0\
 Given the dimensions, create matrices or vectors.  virtual **SymmSCMatrix** \* **symmmatrix** (const **RefSCDimension** &)=0\
 virtual **DiagSCMatrix** \* **diagmatrix** (const **RefSCDimension** &)=0\
 virtual **SCVector** \* **vector** (const **RefSCDimension** &)=0\
 **SCMatrix** \* **restore\_matrix** (**StateIn** &, const **RefSCDimension** &, const **RefSCDimension** &)\
 Given the dimensions and a **StateIn** object, restore matrices or vectors.  **SymmSCMatrix** \* **restore\_symmmatrix** (**StateIn** &, const **RefSCDimension** &)\
 **DiagSCMatrix** \* **restore\_diagmatrix** (**StateIn** &, const **RefSCDimension** &)\
 **SCVector** \* **restore\_vector** (**StateIn** &, const **RefSCDimension** &)\

### Static Public Member Functions

static **SCMatrixKit** \* **default\_matrixkit** ()\
 This returns a **LocalSCMatrixKit**, unless the default has been changed with set\_default\_matrixkit.  static void **set\_default\_matrixkit** (const **Ref**\< **SCMatrixKit** \> &)\

### Protected Attributes

**Ref**\< **MessageGrp** \> **grp\_**\

### Additional Inherited Members

## Detailed Description

The **SCMatrixKit** abstract class acts as a factory for producing matrices.

By using one of these, the program makes sure that all of the matrices are consistent. \

## Member Function Documentation

### virtual SCMatrix \* sc::SCMatrixKit::matrix (const RefSCDimension &, const RefSCDimension &)` [pure virtual]`

Given the dimensions, create matrices or vectors.

Implemented in **sc::BlockedSCMatrixKit**, **sc::DistSCMatrixKit**, **sc::LocalSCMatrixKit**, and **sc::ReplSCMatrixKit**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
