High Performance Plasticity  0.5.0
gshCUDA.h File Reference

Header file for generalized spherical harmonic basis. More...

#include <hpp/config.h>
#include <cuComplex.h>
#include <hpp/cudaUtils.h>
Include dependency graph for gshCUDA.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  hpp::GSHCoeffsCUDA< T >
 

Namespaces

 hpp
 

Functions

template<typename T >
__host__ __device__ GSHCoeffsCUDA< T > hpp::operator+ (const GSHCoeffsCUDA< T > &coeffs1, const GSHCoeffsCUDA< T > &coeffs2)
 
template<typename T >
__host__ __device__ void hpp::operator+= (GSHCoeffsCUDA< T > &A, const GSHCoeffsCUDA< T > &B)
 
template<typename T >
__host__ __device__ GSHCoeffsCUDA< T > hpp::operator/ (const GSHCoeffsCUDA< T > &coeffs, T val)
 
template<typename T >
__device__ GSHCoeffsCUDA< T > hpp::warpReduceSumGSHCoeffs (GSHCoeffsCUDA< T > coeffs)
 
template<typename T >
__device__ GSHCoeffsCUDA< T > hpp::blockReduceSumGSHCoeffs (GSHCoeffsCUDA< T > val)
 
template<typename T >
__global__ void hpp::BLOCK_REDUCE_KEPLER_GSH_COEFFS (GSHCoeffsCUDA< T > *in, GSHCoeffsCUDA< T > *out, int nTerms)
 

Detailed Description

Header file for generalized spherical harmonic basis.

The complex generalized spherical harmonic coefficients for real data.

Author
Michael Malahe

For real data, there is the guarantee that C[l,-m,-n] = (-1)^{(m+n)} C[l,m,n]*. So, we only store the upper triangular values for m and n, such that n>=m. These values are then flattened in row major order.

Template Parameters
Thereal scalar type