ergo
integrals_general.cc File Reference
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <errno.h>
#include <memory.h>
#include <time.h>
#include <stdarg.h>
#include "memorymanag.h"
#include "pi.h"
#include "output.h"
#include "utilities.h"
#include "boysfunction.h"
#include "integral_info.h"
#include "integrals_general.h"

Macros

#define K_MAX_DIM   44

Functions

int multiply_polynomials (ergo_real result[], polydeg1struct *polydeg1, int dim, ergo_real a[])
int get_product_simple_prims (const DistributionSpecStruct &primA_in, const DistributionSpecStruct &primB_in, DistributionSpecStruct resultList[], int maxCount, ergo_real threshold)
int get_product_simple_primitives (const BasisInfoStruct &basisInfoA, int iA, const BasisInfoStruct &basisInfoB, int iB, DistributionSpecStruct resultList[], int maxCount, ergo_real threshold)
static ergo_real compute_1d_gaussian_integral_recursive (int n, ergo_real alpha)
ergo_real compute_integral_of_simple_prim (DistributionSpecStruct *distr)
ergo_real get_largest_simple_integral (const BasisInfoStruct &basisInfo)
 Computes the largest integral of any primitive in the basis set, when any x y z factors are ignored.
ergo_real get_max_basis_func_abs_value (const BasisInfoStruct &basisInfo)
 Computes an estimate for the largest absolute value that any basis function takes.
int get_basis_func_extent_list (const BasisInfoStruct &basisInfo, ergo_real *basisFuncExtentList, ergo_real maxAbsValue)
 Computes an "extent" for each basis function in the basis set.

Macro Definition Documentation

#define K_MAX_DIM   44

Function Documentation

static ergo_real compute_1d_gaussian_integral_recursive ( int  n,
ergo_real  alpha 
)
static

References pi.

int get_basis_func_extent_list ( const BasisInfoStruct basisInfo,
ergo_real basisFuncExtentList,
ergo_real  maxAbsValue 
)

Computes an "extent" for each basis function in the basis set.

The "extent" is such that the value of the function is smaller than maxAbsValue at distances beyond the "extent".

References BasisInfoStruct::basisFuncList, DistributionSpecStruct_::coeff, DistributionSpecStruct_::exponent, BasisInfoStruct::noOfBasisFuncs, BasisFuncStruct_::noOfSimplePrimitives, BasisFuncStruct_::simplePrimitiveIndex, and BasisInfoStruct::simplePrimitiveList.

Referenced by compute_extent_for_shells(), compute_operator_matrix_sparse(), compute_T_matrix_sparse(), and get_product_distrs().

ergo_real get_largest_simple_integral ( const BasisInfoStruct basisInfo)

Computes the largest integral of any primitive in the basis set, when any x y z factors are ignored.

This is useful for getting rough estimates of basis function extents.

References A, BasisInfoStruct::basisFuncList, compute_integral_of_simple_prim(), DistributionSpecStruct_::monomialInts, BasisInfoStruct::noOfBasisFuncs, BasisFuncStruct_::noOfSimplePrimitives, BasisFuncStruct_::simplePrimitiveIndex, and BasisInfoStruct::simplePrimitiveList.

Referenced by compute_operator_matrix_sparse(), and compute_T_matrix_sparse().

ergo_real get_max_basis_func_abs_value ( const BasisInfoStruct basisInfo)

Computes an estimate for the largest absolute value that any basis function takes.

Useful as "worst case" when you want to find out the largest contribution to the density that a basis function can be part of.

References BasisInfoStruct::basisFuncList, DistributionSpecStruct_::coeff, BasisInfoStruct::noOfBasisFuncs, BasisFuncStruct_::noOfSimplePrimitives, BasisFuncStruct_::simplePrimitiveIndex, and BasisInfoStruct::simplePrimitiveList.

Referenced by compute_extent_for_shells(), and get_product_distrs().

int multiply_polynomials ( ergo_real  result[],
polydeg1struct polydeg1,
int  dim,
ergo_real  a[] 
)