#define CINT_VERSION "6.1.1"
#define CINT_SOVERSION 6
#ifdef I8
#include <stdint.h>
#define FINT int64_t
#else
#define FINT int
#endif
#ifdef CACHE_SIZE_I8
#include <stdint.h>
#define CACHE_SIZE_T int64_t
#else
#define CACHE_SIZE_T FINT
#endif
#define PTR_EXPCUTOFF 0
#define PTR_COMMON_ORIG 1
#define PTR_RINV_ORIG 4
#define PTR_RINV_ZETA 7
#define PTR_RANGE_OMEGA 8
#define PTR_F12_ZETA 9
#define PTR_GTG_ZETA 10
#define NGRIDS 11
#define PTR_GRIDS 12
#define PTR_ENV_START 20
#define CHARGE_OF 0
#define PTR_COORD 1
#define NUC_MOD_OF 2
#define PTR_ZETA 3
#define PTR_FRAC_CHARGE 4
#define RESERVE_ATMSLOT 5
#define ATM_SLOTS 6
#define ATOM_OF 0
#define ANG_OF 1
#define NPRIM_OF 2
#define NCTR_OF 3
#define KAPPA_OF 4
#define PTR_EXP 5
#define PTR_COEFF 6
#define RESERVE_BASLOT 7
#define BAS_SLOTS 8
#define POSX 0
#define POSY 1
#define POSZ 2
#define POS1 3
#define POSXX 0
#define POSYX 1
#define POSZX 2
#define POS1X 3
#define POSXY 4
#define POSYY 5
#define POSZY 6
#define POS1Y 7
#define POSXZ 8
#define POSYZ 9
#define POSZZ 10
#define POS1Z 11
#define POSX1 12
#define POSY1 13
#define POSZ1 14
#define POS11 15
#define TSRX 0
#define TSRY 1
#define TSRZ 2
#define TSRXX 0
#define TSRXY 1
#define TSRXZ 2
#define TSRYX 3
#define TSRYY 4
#define TSRYZ 5
#define TSRZX 6
#define TSRZY 7
#define TSRZZ 8
#define MXRYSROOTS 32
#define ANG_MAX 15
#define LMAX1 16
#define CART_MAX 136
#define SHLS_MAX 1048576
#define NPRIM_MAX 64
#define NCTR_MAX 64
#define POINT_NUC 1
#define GAUSSIAN_NUC 2
#define FRAC_CHARGE_NUC 3
#define bas(SLOT,I) bas[BAS_SLOTS * (I) + (SLOT)]
#define atm(SLOT,I) atm[ATM_SLOTS * (I) + (SLOT)]
#if !defined HAVE_DEFINED_CINTOPT_H
#define HAVE_DEFINED_CINTOPT_H
typedef struct {
double rij[3];
double eij;
double cceij;
} PairData;
typedef struct {
FINT **index_xyz_array; FINT **non0ctr;
FINT **sortedidx;
FINT nbas;
double **log_max_coeff;
PairData **pairdata; } CINTOpt;
#define HAVE_DEFINED_CINTENVVARS_H
typedef struct {
FINT *atm;
FINT *bas;
double *env;
FINT *shls;
FINT natm;
FINT nbas;
FINT i_l;
FINT j_l;
FINT k_l;
FINT l_l;
FINT nfi; FINT nfj;
union {FINT nfk; FINT grids_offset;};
union {FINT nfl; FINT ngrids;};
FINT nf; FINT rys_order; FINT x_ctr[4];
FINT gbits;
FINT ncomp_e1; FINT ncomp_e2; FINT ncomp_tensor;
FINT li_ceil; FINT lj_ceil;
FINT lk_ceil;
FINT ll_ceil;
FINT g_stride_i; FINT g_stride_k; FINT g_stride_l; FINT g_stride_j; FINT nrys_roots;
FINT g_size;
FINT g2d_ijmax;
FINT g2d_klmax;
double common_factor;
double expcutoff;
double rirj[3]; double rkrl[3];
double *rx_in_rijrx;
double *rx_in_rklrx;
double *ri;
double *rj;
double *rk;
union {double *rl; double *grids;};
FINT (*f_g0_2e)();
void (*f_g0_2d4d)();
void (*f_gout)();
CINTOpt *opt;
int *idx;
double ai[1];
double aj[1];
double ak[1];
double al[1];
double fac[1];
double rij[3];
double rkl[3];
} CINTEnvVars;
#endif
FINT CINTlen_cart(const FINT l);
FINT CINTlen_spinor(const FINT bas_id, const FINT *bas);
FINT CINTcgtos_cart(const FINT bas_id, const FINT *bas);
FINT CINTcgtos_spheric(const FINT bas_id, const FINT *bas);
FINT CINTcgtos_spinor(const FINT bas_id, const FINT *bas);
FINT CINTcgto_cart(const FINT bas_id, const FINT *bas);
FINT CINTcgto_spheric(const FINT bas_id, const FINT *bas);
FINT CINTcgto_spinor(const FINT bas_id, const FINT *bas);
FINT CINTtot_pgto_spheric(const FINT *bas, const FINT nbas);
FINT CINTtot_pgto_spinor(const FINT *bas, const FINT nbas);
FINT CINTtot_cgto_cart(const FINT *bas, const FINT nbas);
FINT CINTtot_cgto_spheric(const FINT *bas, const FINT nbas);
FINT CINTtot_cgto_spinor(const FINT *bas, const FINT nbas);
void CINTshells_cart_offset(FINT ao_loc[], const FINT *bas, const FINT nbas);
void CINTshells_spheric_offset(FINT ao_loc[], const FINT *bas, const FINT nbas);
void CINTshells_spinor_offset(FINT ao_loc[], const FINT *bas, const FINT nbas);
double *CINTc2s_bra_sph(double *sph, FINT nket, double *cart, FINT l);
double *CINTc2s_ket_sph(double *sph, FINT nket, double *cart, FINT l);
double *CINTc2s_ket_sph1(double *sph, double *cart, FINT lds, FINT ldc, FINT l);
double CINTgto_norm(FINT n, double a);
void CINTinit_2e_optimizer(CINTOpt **opt, FINT *atm, FINT natm,
FINT *bas, FINT nbas, double *env);
void CINTinit_optimizer(CINTOpt **opt, FINT *atm, FINT natm,
FINT *bas, FINT nbas, double *env);
void CINTdel_2e_optimizer(CINTOpt **opt);
void CINTdel_optimizer(CINTOpt **opt);
FINT cint2e_cart(double *opijkl, FINT *shls,
FINT *atm, FINT natm, FINT *bas, FINT nbas, double *env,
CINTOpt *opt);
void cint2e_cart_optimizer(CINTOpt **opt, FINT *atm, FINT natm,
FINT *bas, FINT nbas, double *env);
FINT cint2e_sph(double *opijkl, FINT *shls,
FINT *atm, FINT natm, FINT *bas, FINT nbas, double *env,
CINTOpt *opt);
void cint2e_sph_optimizer(CINTOpt **opt, FINT *atm, FINT natm,
FINT *bas, FINT nbas, double *env);
FINT cint2e(double *opijkl, FINT *shls,
FINT *atm, FINT natm, FINT *bas, FINT nbas, double *env,
CINTOpt *opt);
void cint2e_optimizer(CINTOpt **opt, FINT *atm, FINT natm,
FINT *bas, FINT nbas, double *env);
#ifndef __cplusplus
#include <complex.h>
void CINTc2s_ket_spinor_sf1(double complex *gspa, double complex *gspb, double *gcart,
FINT lds, FINT ldc, FINT nctr, FINT l, FINT kappa);
void CINTc2s_iket_spinor_sf1(double complex *gspa, double complex *gspb, double *gcart,
FINT lds, FINT ldc, FINT nctr, FINT l, FINT kappa);
void CINTc2s_ket_spinor_si1(double complex *gspa, double complex *gspb, double *gcart,
FINT lds, FINT ldc, FINT nctr, FINT l, FINT kappa);
void CINTc2s_iket_spinor_si1(double complex *gspa, double complex *gspb, double *gcart,
FINT lds, FINT ldc, FINT nctr, FINT l, FINT kappa);
#endif