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

# sc\_SCElementOp2(3)

The SCElementOp2 class is very similar to the SCElementOp class except that pairs of blocks are treated simultaneously.

## NAME

sc::SCElementOp2 - The **SCElementOp2** class is very similar to the **SCElementOp** class except that pairs of blocks are treated simultaneously.

## SYNOPSIS

`#include <elemop.h>`

Inherits **sc::SavableState**.

Inherited by **sc::BlockedSCElementOp2**, **sc::SCDestructiveElementProduct**, **sc::SCElementScalarProduct**, and **sc::SCFEnergy**.

### Public Member Functions

**SCElementOp2** (**StateIn** &s)\
 virtual int **has\_collect** ()\
 virtual void **defer\_collect** (int)\
 virtual int **has\_side\_effects** ()\
 virtual int **has\_side\_effects\_in\_arg** ()\
 virtual void **collect** (const **Ref**\< **MessageGrp** \> &)\
 virtual void **process** (**SCMatrixBlockIter** &, **SCMatrixBlockIter** &)=0\
 void **process\_base** (**SCMatrixBlock** \*, **SCMatrixBlock** \*)\
 virtual void **process\_spec\_rect** (**SCMatrixRectBlock** \*, **SCMatrixRectBlock** \*)\
 virtual void **process\_spec\_ltri** (**SCMatrixLTriBlock** \*, **SCMatrixLTriBlock** \*)\
 virtual void **process\_spec\_diag** (**SCMatrixDiagBlock** \*, **SCMatrixDiagBlock** \*)\
 virtual void **process\_spec\_vsimp** (**SCVectorSimpleBlock** \*, **SCVectorSimpleBlock** \*)\

### Additional Inherited Members

## Detailed Description

The **SCElementOp2** class is very similar to the **SCElementOp** class except that pairs of blocks are treated simultaneously.

The two matrices involved must have identical storage layout, which will be the case if both matrices are of the same type and dimensions. \

## Author

Generated automatically by Doxygen for MPQC from the source code.
