# sc::SCMatrixBlock Class Reference

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

`#include <block.h>`

Inheritance diagram for sc::SCMatrixBlock:

List of all members.

## 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

## Detailed Description

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

## Member Function Documentation

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.

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.

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.

The documentation for this class was generated from the following file:

- block.h