ergo
lebedev_laikov.cc File Reference

Evaluate angular grid of requested order. More...

#include <cmath>
#include "lebedev_laikov.h"
#include "mat_gblas.h"

Macros

#define A   n+=ll_Oh(
 
#define B   ,X+n,Y+n,Z+n,W+n);
 

Functions

int ll_npoint (int lvalue)
 ll_npoint returns number of angular grid points for given L-angular polynomial integration accuracy. More...
 
int ll_order (int npoint)
 ll_order returns order of the smallest angular grid that has at least that many grid points as specified. More...
 
static int ll_Oh (int n, real a, real b, real v, real *x, real *y, real *z, real *w)
 
int ll_sphere (int N, real *X, real *Y, real *Z, real *W)
 ll_sphere fills in arrays X, Y, Z and W with the cartesian coordinates and weights of the grid points. More...
 

Detailed Description

Evaluate angular grid of requested order.

Based on V.I. Lebedev, and D.N. Laikov "A quadrature formula for the sphere of the 131st algebraic order of accuracy" Doklady Mathematics, Vol. 59, No. 3, 1999, pp. 477-481.

Macro Definition Documentation

◆ A

#define A   n+=ll_Oh(

Referenced by _mm_add_p(), _mm_mul_p(), _mm_store_p(), _mm_xor_p(), mat::accumulate(), mat::Matrix< Treal, Telement >::add(), mat::Matrix< Treal >::add(), add_disturbance_to_matrix(), add_square_matrices(), mat::Matrix< Treal, Telement >::assign(), mat::Matrix< Treal >::assign(), assign_from_full_matrix(), mat::Matrix< Treal, Telement >::assignDiffFrobNormsLowestLevel(), mat::Matrix< Treal >::assignDiffFrobNormsLowestLevel(), mat::Matrix< Treal, Telement >::assignFrobNormsLowestLevel(), mat::Matrix< Treal >::assignFrobNormsLowestLevel(), combine_mm_info_for_child_boxes(), compare_matrices(), compute_extent_for_all_basis_funcs_core(), compute_h_core_matrix_simple_dense(), compute_K_by_boxes(), eigvec::compute_rayleigh_quotient(), compute_T_matrix_sparse_linear(), compute_V_and_gradient_linear(), compute_V_matrix_full(), eigvec::computeEigenvectors(), create_mtx_files_with_different_orderings(), create_nuclei_mm_tree(), ddf_get_matrix_from_storage_sparse(), mat::MatrixSymmetric< Treal, Tmatrix >::diff(), mat::MatrixSymmetric< Treal, Tmatrix >::diffIfSmall(), do_interaction_recursive(), do_interaction_recursive_2(), do_multipole_interaction_between_2_boxes_branches(), do_naive_mmul(), do_power_method(), do_truncation(), mat::MatrixSymmetric< Treal, Tmatrix >::eucl_diff(), mat::MatrixSymmetric< Treal, Tmatrix >::euclDiffIfSmall(), mat::EuclTruncationCongrTransMeasure< Tmatrix, TmatrixB, Treal >::euclIfSmall(), MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::exec(), MM_kernel_inner_sse2_A< T_real, T_reg, T_M, T_N, T_K >::exec(), fill_matrix_with_random_numbers(), mat::MatrixGeneral< Treal, Tmatrix >::frob_diff(), mat::MatrixSymmetric< Treal, Tmatrix >::frob_diff(), mat::Matrix< Treal, Telement >::frobDiff(), mat::Matrix< Treal >::frobDiff(), mat::Matrix< Treal, Telement >::frobSquaredDiff(), mat::Matrix< Treal >::frobSquaredDiff(), mat::EuclTruncationSymm< Tmatrix, Treal >::frobThreshLowLevel(), mat::EuclTruncationSymmElementLevel< Tmatrix, Treal >::frobThreshLowLevel(), mat::EuclTruncationGeneral< Tmatrix, Treal >::frobThreshLowLevel(), mat::gemm(), mat::Matrix< Treal, Telement >::gemm(), mat::Matrix< Treal >::gemm(), mat::gemm< double >(), mat::gemm< float >(), gemm_sse(), mat::Matrix< Treal, Telement >::gemm_upper_tr_only(), mat::Matrix< Treal >::gemm_upper_tr_only(), mat::Vector< Treal, Telement >::gemv(), mat::gemv(), mat::Vector< Treal >::gemv(), mat::gemv< double >(), mat::gemv< float >(), generate_multipoles_for_groups(), get_all_eigenvalues_of_matrix(), get_all_generalized_eigenvalues(), get_all_matrix_elements_nosymm(), get_all_matrix_elements_symm(), get_all_nonzeros(), get_basis_func_pair_list_simple(), get_CSR_from_normalMatrix(), get_CSR_from_symmMatrix(), get_density_mat_by_diagonalization(), get_eigs(), get_eucl_norm_try_different_acc(), get_euclidean_norm(), get_largest_eigenvalue(), get_largest_simple_integral(), get_Lowdin_orbitals(), get_matrices_A_and_B(), get_matrix_from_binary(), get_matrix_from_binary_vec(), get_matrix_from_full(), get_multipole_contribs_for_atom(), get_nucl_repulsion_energy_using_multipoles(), get_random_positive_definite_matrix(), SCF_general::GetEuclideanNormOfMatrix(), Molecule::getExtremeInternuclearDistancesQuadratic(), mat::EuclTruncationSymm< Tmatrix, Treal >::getFrobSqNorms(), mat::EuclTruncationSymmElementLevel< Tmatrix, Treal >::getFrobSqNorms(), mat::EuclTruncationGeneral< Tmatrix, Treal >::getFrobSqNorms(), mat::EuclTruncationSymm< Tmatrix, Treal >::getFrobTruncBounds(), mat::EuclTruncationGeneral< Tmatrix, Treal >::getFrobTruncBounds(), mat::EuclTruncationCongrTransMeasure< Tmatrix, TmatrixB, Treal >::getFrobTruncBounds(), MMInteractor::getInteractionMatrix(), Molecule::getNuclearElectricFieldEnergy(), Molecule::getNuclearRepulsionEnergyGradientContribQuadratic(), Molecule::getNuclearRepulsionEnergyQuadratic(), LR::SetOfEqSolver::getResidual(), MMTranslator::getTranslationMatrix(), mat::ggev(), mat::ggev< double >(), mat::ggev< float >(), mat::Matrix< Treal >::inch(), MultipolePrepManager::init(), mat::Interval< ergo_real >::intersect(), eigvec::lanczos_method(), ll_sphere(), lyp_energy(), lyp_first(), lyp_second(), lyp_third(), main(), mainFun(), MM_kernel_inner_sse2_A< T_real, T_reg, T_M, T_N, T_K >::Loop< T_loop_index, T_end >::middle(), mat::MatrixSymmetric< Treal, Tmatrix >::mixed_diff(), MM_kernel_inner_sse2_A< T_real, T_reg, T_M, T_N, T_K >::Loop< T_loop_index, T_end >::multiple_loop(), hermite_conversion_info_struct::multiply_by_hermite_conversion_matrix_from_left(), IntegralInfo::multiply_by_hermite_conversion_matrix_from_left(), hermite_conversion_info_struct::multiply_by_hermite_conversion_matrix_from_right(), IntegralInfo::multiply_by_hermite_conversion_matrix_from_right(), multiply_matrices_general(), multiply_matrices_general_T_1(), mat::MatrixGeneral< Treal, Tmatrix >::operator+=(), mat::MatrixSymmetric< Treal, Tmatrix >::operator+=(), mat::MatrixGeneral< Treal, Tmatrix >::operator-=(), mat::MatrixSymmetric< Treal, Tmatrix >::operator-=(), organize_distributions(), organize_distrs_for_V(), MM_kernel_inner_sse2_A< T_real, T_reg, T_M, T_N, T_K >::Loop< T_loop_index, T_end >::outer(), mat::pocon(), mat::pocon< double >(), mat::pocon< float >(), mat::potrf(), mat::potrf< double >(), mat::potrf< float >(), eigvec::power_method(), print_matrix(), read_matrix(), mat::read_matrix(), mat::read_sparse_matrix(), read_vector(), PurificationGeneral< MatrixType >::readFromTmpFile(), report_max_abs_element_of_matrix(), save_symmetric_matrix(), simple_lanczos::simple_lanczos_get_eigs(), solve_linear_equation_system(), spmat_multiply_matrices(), spmat_sort_elements(), mat::Matrix< Treal, Telement >::ssmm(), mat::Matrix< Treal >::ssmm(), mat::Matrix< Treal, Telement >::ssmm_upper_tr_only(), mat::Matrix< Treal >::ssmm_upper_tr_only(), mat::MatrixSymmetric< Treal, Tmatrix >::ssmmUpperTriangleOnly(), mat::arn::Lanczos< Treal, Tmatrix, Tvector >::step(), mat::arn::LanczosSeveralLargestEig< Treal, Tmatrix, Tvector >::step(), mat::MatrixHierarchicBase< Treal >::swap(), mat::Matrix< Treal, Telement >::sy_trace_ab(), mat::Matrix< Treal >::sy_trace_ab(), mat::Matrix< Treal, Telement >::syAssignDiffFrobNormsLowestLevel(), mat::Matrix< Treal >::syAssignDiffFrobNormsLowestLevel(), mat::Matrix< Treal, Telement >::syAssignFrobNormsLowestLevel(), mat::Matrix< Treal >::syAssignFrobNormsLowestLevel(), mat::Matrix< Treal, Telement >::syFrobDiff(), mat::Matrix< Treal >::syFrobDiff(), mat::Matrix< Treal, Telement >::syFrobSquaredDiff(), mat::Matrix< Treal >::syFrobSquaredDiff(), mat::sygv(), mat::sygv< double >(), mat::sygv< float >(), mat::Matrix< Treal, Telement >::syInch(), mat::Matrix< Treal >::syInch(), mat::Matrix< Treal, Telement >::symm(), mat::symm(), mat::Matrix< Treal >::symm(), mat::symm< double >(), mat::symm< float >(), mat::Vector< Treal, Telement >::symv(), mat::symv(), mat::Vector< Treal >::symv(), mat::symv< double >(), mat::symv< float >(), mat::Matrix< Treal, Telement >::syrk(), mat::syrk(), mat::Matrix< Treal >::syrk(), mat::syrk< double >(), mat::syrk< float >(), mat::Matrix< Treal, Telement >::sysq(), mat::Matrix< Treal >::sysq(), mat::Matrix< Treal, Telement >::sytr_upper_tr_only(), mat::Matrix< Treal >::sytr_upper_tr_only(), test_gesv(), test_potf2_trtri(), thread_func(), mat::MatrixGeneral< Treal, Tmatrix >::trace_ab(), mat::Matrix< Treal, Telement >::trace_ab(), mat::MatrixSymmetric< Treal, Tmatrix >::trace_ab(), mat::Matrix< Treal >::trace_ab(), mat::MatrixGeneral< Treal, Tmatrix >::trace_aTb(), mat::Matrix< Treal, Telement >::trace_aTb(), mat::Matrix< Treal >::trace_aTb(), transform_matrix_from_to< normalMatrix, normalMatrix >(), transform_matrix_from_to< symmMatrix, symmMatrix >(), transform_matrix_from_to< triangMatrix, triangMatrix >(), SCF_restricted::transform_with_invChol(), SCF_restricted::transform_with_S(), translate_multipoles_for_box(), mat::transpose(), mat::Matrix< Treal, Telement >::transpose(), mat::Matrix< Treal >::transpose(), mat::Matrix< Treal, Telement >::trmm(), mat::trmm(), mat::Matrix< Treal >::trmm(), mat::trmm< double >(), mat::trmm< float >(), mat::Matrix< Treal, Telement >::trmm_upper_tr_only(), mat::Matrix< Treal >::trmm_upper_tr_only(), mat::Vector< Treal, Telement >::trmv(), mat::trmv(), mat::Vector< Treal >::trmv(), mat::trmv< double >(), mat::trmv< float >(), mat::Matrix< Treal, Telement >::trsytriplemm(), mat::Matrix< Treal >::trsytriplemm(), mat::trtri(), mat::trtri< double >(), mat::trtri< float >(), mat::Matrix< Treal, Telement >::truncateAccordingToSparsityPattern(), mat::Matrix< Treal >::truncateAccordingToSparsityPattern(), verify_mmul_result(), write_matrix(), write_matrix_in_matrix_market_format(), and PurificationGeneral< MatrixType >::writeToTmpFile().

◆ B

#define B   ,X+n,Y+n,Z+n,W+n);

Referenced by _mm_add_p(), _mm_mul_p(), _mm_xor_p(), mat::Matrix< Treal, Telement >::add(), mat::Matrix< Treal >::add(), add_disturbance_to_matrix(), add_square_matrices(), mat::Matrix< Treal, Telement >::assignDiffFrobNormsLowestLevel(), mat::Matrix< Treal >::assignDiffFrobNormsLowestLevel(), becke_fourth(), combine_mm_info_for_child_boxes(), compare_matrices(), create_nuclei_mm_tree(), mat::MatrixSymmetric< Treal, Tmatrix >::diff(), mat::MatrixSymmetric< Treal, Tmatrix >::diffIfSmall(), do_interaction_recursive(), do_interaction_recursive_2(), do_multipole_interaction_between_2_boxes_branches(), do_naive_mmul(), mat::MatrixSymmetric< Treal, Tmatrix >::eucl_diff(), mat::MatrixSymmetric< Treal, Tmatrix >::euclDiffIfSmall(), mat::EuclTruncationCongrTransMeasure< Tmatrix, TmatrixB, Treal >::euclIfSmall(), MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::exec(), MM_kernel_inner_sse2_A< T_real, T_reg, T_M, T_N, T_K >::exec(), mat::MatrixGeneral< Treal, Tmatrix >::frob_diff(), mat::MatrixSymmetric< Treal, Tmatrix >::frob_diff(), mat::Matrix< Treal, Telement >::frobDiff(), mat::Matrix< Treal >::frobDiff(), mat::Matrix< Treal, Telement >::frobSquaredDiff(), mat::Matrix< Treal >::frobSquaredDiff(), mat::gemm(), mat::Matrix< Treal, Telement >::gemm(), mat::Matrix< Treal >::gemm(), mat::gemm< double >(), mat::gemm< float >(), gemm_sse(), mat::Matrix< Treal, Telement >::gemm_upper_tr_only(), mat::Matrix< Treal >::gemm_upper_tr_only(), get_all_generalized_eigenvalues(), get_matrices_A_and_B(), get_multipole_contribs_for_atom(), get_nucl_repulsion_energy_using_multipoles(), Molecule::getExtremeInternuclearDistancesQuadratic(), mat::EuclTruncationCongrTransMeasure< Tmatrix, TmatrixB, Treal >::getFrobTruncBounds(), MMInteractor::getInteractionMatrix(), Molecule::getNuclearRepulsionEnergyGradientContribQuadratic(), Molecule::getNuclearRepulsionEnergyQuadratic(), MMTranslator::getTranslationMatrix(), mat::ggev(), mat::ggev< double >(), mat::ggev< float >(), mat::Interval< ergo_real >::intersect(), ll_sphere(), lyp_energy(), lyp_first(), lyp_second(), lyp_third(), main(), mainFun(), mat::MatrixSymmetric< Treal, Tmatrix >::mixed_diff(), MM_kernel_inner_sse2_A< T_real, T_reg, T_M, T_N, T_K >::Loop< T_loop_index, T_end >::multiple_loop(), multiply_matrices_general(), multiply_matrices_general_T_1(), spmat_multiply_matrices(), mat::Matrix< Treal, Telement >::ssmm(), mat::Matrix< Treal >::ssmm(), mat::Matrix< Treal, Telement >::ssmm_upper_tr_only(), mat::Matrix< Treal >::ssmm_upper_tr_only(), mat::MatrixSymmetric< Treal, Tmatrix >::ssmmUpperTriangleOnly(), mat::MatrixHierarchicBase< Treal >::swap(), mat::Matrix< Treal, Telement >::sy_trace_ab(), mat::Matrix< Treal >::sy_trace_ab(), mat::Matrix< Treal, Telement >::syAssignDiffFrobNormsLowestLevel(), mat::Matrix< Treal >::syAssignDiffFrobNormsLowestLevel(), mat::Matrix< Treal, Telement >::syFrobDiff(), mat::Matrix< Treal >::syFrobDiff(), mat::Matrix< Treal, Telement >::syFrobSquaredDiff(), mat::Matrix< Treal >::syFrobSquaredDiff(), mat::sygv(), mat::sygv< double >(), mat::sygv< float >(), mat::Matrix< Treal, Telement >::symm(), mat::symm(), mat::Matrix< Treal >::symm(), mat::symm< double >(), mat::symm< float >(), test_potf2_trtri(), thread_func(), mat::MatrixGeneral< Treal, Tmatrix >::trace_ab(), mat::Matrix< Treal, Telement >::trace_ab(), mat::MatrixSymmetric< Treal, Tmatrix >::trace_ab(), mat::Matrix< Treal >::trace_ab(), mat::MatrixGeneral< Treal, Tmatrix >::trace_aTb(), mat::Matrix< Treal, Telement >::trace_aTb(), mat::Matrix< Treal >::trace_aTb(), transform_matrix_from_to< normalMatrix, normalMatrix >(), transform_matrix_from_to< symmMatrix, symmMatrix >(), transform_matrix_from_to< triangMatrix, triangMatrix >(), translate_multipoles_for_box(), mat::Matrix< Treal, Telement >::trmm(), mat::trmm(), mat::Matrix< Treal >::trmm(), mat::trmm< double >(), mat::trmm< float >(), mat::Matrix< Treal, Telement >::trmm_upper_tr_only(), mat::Matrix< Treal >::trmm_upper_tr_only(), verify_mmul_result(), and vwn_en_pot().

Function Documentation

◆ ll_npoint()

int ll_npoint ( int  lvalue)

ll_npoint returns number of angular grid points for given L-angular polynomial integration accuracy.

Parameters
lvalue: grid complete through this value of angular momentum quantum number l.
Returns
value : number of points in sought Lebedev-Laikov grid.

Referenced by RadialGrid::setAngularFixed().

◆ ll_Oh()

static int ll_Oh ( int  n,
real  a,
real  b,
real  v,
real x,
real y,
real z,
real w 
)
static

References template_blas_sqrt().

◆ ll_order()

int ll_order ( int  npoint)

ll_order returns order of the smallest angular grid that has at least that many grid points as specified.

Referenced by RadialGrid::setAngularFixed().

◆ ll_sphere()

int ll_sphere ( int  N,
real X,
real Y,
real Z,
real W 
)

ll_sphere fills in arrays X, Y, Z and W with the cartesian coordinates and weights of the grid points.

Parameters
None of the possible values returned by ll_npoint().
Xx cartesian coordinates of the grid points.
Yy cartesian coordinates of the grid points.
Zz cartesian coordinates of the grid points.
Wassociated weights.
Returns
number of actually generated points (0 for unknown value of N).

References A, and B.

Referenced by Stream::saveAtomGridInBox().