YAP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
WignerD.h
Go to the documentation of this file.
1 /* YAP - Yet another PWA toolkit
2  Copyright 2015, Technische Universitaet Muenchen,
3  Authors: Daniel Greenwald, Johannes Rauch
4 
5  This program is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
40 
41 #ifndef yap_WignerD_h
42 #define yap_WignerD_h
43 
44 #include "Constants.h"
45 
46 #include <complex>
47 
48 namespace yap {
49 
55 const double dFunction(unsigned twoJ, int twoM, int twoN, double beta);
56 
58 inline const std::complex<double> DFunction(unsigned twoJ, int twoM, int twoN, double alpha, double beta, double gamma)
59 { return std::exp(-Complex_i * (alpha * twoM + gamma * twoN) / 2.) * dFunction(twoJ, twoM, twoN, beta); }
60 
61 namespace dMatrix {
62 
65 void cache(unsigned int twoJ);
66 
68 const unsigned cacheSize();
69 
70 }
71 
72 }
73 
74 #endif
constexpr auto Complex_i
complex i
Definition: Constants.h:41
const double dFunction(unsigned twoJ, int twoM, int twoN, double beta)
Definition: WignerD.cxx:29
const std::complex< double > DFunction(unsigned twoJ, int twoM, int twoN, double alpha, double beta, double gamma)
Wigner D-function .
Definition: WignerD.h:58