JDFTx  1.7.0
scalar.h File Reference

Complex numbers with CPU and GPU operators. More...

#include <cmath>
#include <cstdlib>
#include <vector>

Classes

struct  array< T, N >
 
struct  complex
 Complex number (need to define our own because we need operators for gpu code as well) More...
 

Macros

#define __hostanddev__   inline
 

Functions

template<class T >
ceildiv (T num, T den)
 Ceiling of a positive integer division, templated over int types.
 
template<class T >
floorMultiple (T num, T den)
 Return largest multiple of den smaller than num, templated over int types.
 
__hostanddev__ double real (const complex &c)
 real part
 
__hostanddev__ double imag (const complex &c)
 imaginary part
 
__hostanddev__ double norm (const complex &c)
 absolute value squared
 
__hostanddev__ double abs (const complex &c)
 absolute value
 
__hostanddev__ double arg (const complex &c)
 argument (phase angle)
 
__hostanddev__ complex conj (const complex &c)
 complex conjugate
 
__hostanddev__ double conj (const double &c)
 identity operation provided to ease templating over complex and double
 
__hostanddev__ complex operator+ (double r, const complex &c)
 
__hostanddev__ complex operator- (double r, const complex &c)
 
__hostanddev__ complex operator* (double r, const complex &c)
 
__hostanddev__ complex cis (double x)
 Compute cis(x) = exp(iota x) = cos(x) + iota sin(x)
 

Detailed Description

Complex numbers with CPU and GPU operators.