(git:ccc2433)
d3_poly.F File Reference

Go to the source code of this file.

Modules

module  d3_poly
 Routines to efficiently handle dense polynomial in 3 variables up to a given degree. Multiplication, partial evaluation, affine transform (change of reference system), differentiation are efficiently implemented. some functions accept or return several polynomial together, these have to have all the same size, and are stored one after the other in an unique 1d array. This gives them an easy handling and even seem to be faster than the transposed layout.
 

Macros

#define IF_CHECK(x, y)   y
 

Functions/Subroutines

subroutine, public d3_poly::init_d3_poly_module ()
 initialization of the cache, is called by functions in this module that use cached values More...
 
pure integer function, public d3_poly::poly_size1 (maxgrad)
 size of a polynomial in x up to the given degree More...
 
pure integer function, public d3_poly::poly_size2 (maxgrad)
 size of a polynomial in x,y up to the given degree More...
 
pure integer function, public d3_poly::poly_size3 (maxgrad)
 size of a polynomial in x,y,z up to the given degree More...
 
pure integer function, public d3_poly::grad_size3 (n)
 max grad for a polynom of the given size More...
 
subroutine, public d3_poly::poly_affine_t3t (p, m, b, pRes, npoly)
 returns in the polynomials pRes the transpose of the affine transformation x -> m*x+b of p More...
 
subroutine, public d3_poly::poly_affine_t3 (p, m, b, pRes, npoly)
 returns in the polynomials pRes the affine transformation x -> m*x+b of p More...
 
subroutine, public d3_poly::poly_p_eval3b (p, size_p, x, pRes, size_pRes, npoly, grad, xi)
 low level routine of poly_p_eval3 without checks More...
 
subroutine, public d3_poly::poly_padd_uneval3b (p, size_p, x, pRes, size_pRes, npoly, grad, xi)
 low level routine of poly_padd_uneval3 without checks More...
 
subroutine, public d3_poly::poly_p_eval2b (p, size_p, x, pRes, size_pRes, npoly, grad, xi)
 low level routine of poly_p_eval2 without checks More...
 
subroutine, public d3_poly::poly_padd_uneval2b (p, size_p, x, pRes, size_pRes, npoly, grad, xi)
 low level routine of poly_p_uneval2 without checks More...
 
subroutine, public d3_poly::poly_cp2k2d3 (poly_cp2k, grad, poly_d3)
 subroutine that converts from the cp2k poly format to the d3 poly format More...
 
subroutine, public d3_poly::poly_d32cp2k (poly_cp2k, grad, poly_d3)
 subroutine that converts from the d3 poly format to the cp2k poly format More...
 

Variables

integer, parameter, public d3_poly::max_grad2 = 5
 
integer, parameter, public d3_poly::max_grad3 = 3
 
integer, parameter, public d3_poly::cached_dim1 = max_grad2 + 1
 
integer, parameter, public d3_poly::cached_dim2 = (max_grad2 + 1)*(max_grad2 + 2)/2
 
integer, parameter, public d3_poly::cached_dim3 = (max_grad3 + 1)*(max_grad3 + 2)*(max_grad3 + 3)/6
 

Macro Definition Documentation

◆ IF_CHECK

#define IF_CHECK (   x,
 
)    y