AICCM uses the linear combination of atomic orbitals (LCAO) approach and uses contracted
gaussian as basis functions.

## Notation

- Unnormalized primitive Cartesian Gaussian function centered at A.

(x-A_x)^n_x

2) A set of functions with the same angular momentum, located at a common center but with different
n form a Cartesian shell. The order of functions that AICCM uses is the same as in LIBINT.

s : s

p : p_x, p_y, p_z

d : d_xx, d_xy, d_xz, d_yy, d_yz, d_zz

f : f_xxx, f_xxy, f_xxz, f_xyy, f_xyz, f_x_zz, f_yyy, f_yyz, f_yyz, f_zzz

When we add a set of d orbitals to the basis set, you might expect that we add five
additional functions - dxy, dxz, dyz, dx2-y2 and dz2. These are called the sperical
harmonic or just spherical d orbitals. However, there is another way.
It is usual to calculate the integrals using the set - dxy, dxz, dyz, dx2, dy2 and dz2.
These 6 orbitals are not independent. There are really only 5 d orbitals.
Combinations of these 6 give the 5 true d orbitals and one - dx2 + dy2 + dz2 which is really
a spherical s-type orbital. This arises since x2 + y2 + z2 = r2.

The d orbitals have the form:

xy exp(-ar2)

for dxy, and so on.

These 6 orbitals are called the cartesian d orbitals and they are used to build the
5 spherical d orbitals if we decide to use the spherical d orbitals. We normally have a
choice and in many cases we decide to use the simpler cartesian d orbitals and this
can be quicker even though the basis set is larger.
They also of course in effect add an additional s orbital which will lower the energy
slightly.

## Automatic Generation of an Auxiliary Basis

Generates an auxiliary function set from the orbital
basis exponents by a geometric progression.
This function is loosely based on the function implemented
in deMon [1]. The things that are different are only
for better readability and to do it in a more pythonic way.
Everything concerning ECP/MCP was
removed since we do not have ECP/MCP support (yet?).
The algorithm is described in the deMon manual [2].

Generate-An with n from 1 to 4 or 2* to 4*:

A1: H-Xe: s

- A2 to A4: H-He: s
- Li-Xe: s, spd
- A2* to A4*: H-He: s, spd
- Li-Xe: s, spd, spdfg

- [1] deMon2k, A.M. Köster, G. Geudtner, P. Calaminici,
- M.E. Casida, V.D. Dominguez, R. Flores-Moreno,
A. Goursot, T. Heine, A. Ipatov, F. Janetzko,
J.M. del Campo, J. U. Reveles, A. Vela, B. Zuniga and
D.R. Salahub, The deMon Developers, CINVESTAV, Mexico (2011).

[2] The deMon2k Users’ Guide Installation and Reference Manual