# sc_SphericalTransform man page

sc::SphericalTransform — This is a base class for a container for a sparse Cartesian to solid harmonic basis function transformation.

## Synopsis

`#include <transform.h>`

Inherited by **sc::ISphericalTransform**, **sc::SphericalTransformCCA**, **sc::SphericalTransformCints**, and **sc::SphericalTransformV3**.

### Public Member Functions

void **add** (int **a**, int **b**, int **c**, double **coef**, int **pureindex**)

Adds another **SphericalTransformComponent**.

int **cartindex** (int i) const

Returns the Cartesian basis function index of component i.

int **pureindex** (int i) const

Returns the solid harmonic basis function index of component i.

double **coef** (int i) const

Returns the transform coefficient of component i.

int **a** (int i) const

Returns the Cartesian basis function's x exponent of component i.

int **b** (int i) const

Returns the Cartesian basis function's y exponent of component i.

int **c** (int i) const

Returns the Cartesian basis function's z exponent of component i.

int **l** () const

Returns the angular momentum.

int **n** () const

Returns the number of components in the transformation.

virtual **SphericalTransformComponent** * **new_components** ()=0

This must create **SphericalTransformComponent**'s of the appropriate specialization.

### Protected Member Functions

**SphericalTransform** (int **l**, int subl=-1)

This constructs the **SphericalTransform** for the given Cartesian angular momentum l and solid harmonic angular momentum subl.

virtual void **init** ()

This determines all of the components of the transformation.

### Protected Attributes

int **n_**

int **l_**

int **subl_****SphericalTransformComponent** * **components_**

## Detailed Description

This is a base class for a container for a sparse Cartesian to solid harmonic basis function transformation.

## Constructor & Destructor Documentation

### sc::SphericalTransform::SphericalTransform (int l, int subl = -1) [protected]

This constructs the **SphericalTransform** for the given Cartesian angular momentum l and solid harmonic angular momentum subl. Usually, l and subl will be the same. They would differ when the S component of a D Cartesian shell or the P component of an F Cartesian shell is desired, for example (see the natural atomic orbital code for an example of such use). The init member must be called to complete initialization.

## Member Function Documentation

### virtual void sc::SphericalTransform::init () [protected], [virtual]

This determines all of the components of the transformation. It should be possible to implement the **SphericalTransformComponent::init** specialization in such a way that the default **SphericalTransform::init** can be used.

Reimplemented in **sc::ISphericalTransform**.

### virtual SphericalTransformComponent* sc::SphericalTransform::new_components () [pure virtual]

This must create **SphericalTransformComponent**'s of the appropriate specialization.

Implemented in **sc::ISphericalTransformCints**, **sc::ISphericalTransformV3**, **sc::ISphericalTransformCCA**, **sc::SphericalTransformCints**, **sc::SphericalTransformV3**, and **sc::SphericalTransformCCA**.

## Author

Generated automatically by Doxygen for MPQC from the source code.