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

# sc\_CartesianIter(3)

CartesianIter gives the ordering of the Cartesian functions within a shell for the particular integrals specialization.

## NAME

sc::CartesianIter - **CartesianIter** gives the ordering of the Cartesian functions within a shell for the particular integrals specialization.

## SYNOPSIS

`#include <cartiter.h>`

Inherited by **MPQC::CartesianIterCCA**, **sc::CartesianIterCCA**, **sc::CartesianIterCints**, and **sc::CartesianIterV3**.

### Public Member Functions

**CartesianIter** (int **l**)\
 Initialize an iterator for the given angular momentum.  virtual void **start** ()=0\
 Start the iteration.  virtual void **next** ()=0\
 Move to the next Cartesian function.  virtual **operator int** ()=0\
 Returns nonzero if the iterator currently hold valid data.  int **n** ()\
 Returns the number of Cartesian functions.  int **a** ()\
 Returns the exponent of x.  int **b** ()\
 Returns the exponent of y.  int **c** ()\
 Returns the exponent of z.  int **l** ()\
 Returns the angular momentum.  int **l** (int i)\
 Returns **a()** if i==0, **b()** if i==1, and **c()** if i==2.  int **bfn** ()\
 Returns the number of the current basis function within the shell.

### Protected Attributes

int **a\_**\
 int **b\_**\
 int **c\_**\
 int **l\_**\
 int **bfn\_**\

## Detailed Description

**CartesianIter** gives the ordering of the Cartesian functions within a shell for the particular integrals specialization.

## Member Function Documentation

### int sc::CartesianIter::bfn ()` [inline]`

Returns the number of the current basis function within the shell. This starts at 0 and sequentially increases as **next()** is called.

### virtual void sc::CartesianIter::next ()` [pure virtual]`

Move to the next Cartesian function.

Implemented in **MPQC::CartesianIterCCA**, **sc::CartesianIterCints**, **sc::CartesianIterCCA**, and **sc::CartesianIterV3**.

### virtual sc::CartesianIter::operator int ()` [pure virtual]`

Returns nonzero if the iterator currently hold valid data.

Implemented in **MPQC::CartesianIterCCA**, **sc::CartesianIterCints**, **sc::CartesianIterCCA**, and **sc::CartesianIterV3**.

### virtual void sc::CartesianIter::start ()` [pure virtual]`

Start the iteration.

Implemented in **MPQC::CartesianIterCCA**, **sc::CartesianIterCints**, **sc::CartesianIterCCA**, and **sc::CartesianIterV3**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
