12 if (l == 0)
throw std::runtime_error(
"No l=0 implementation");
14 auto sqrt2 = std::numbers::sqrt2;
16 auto size = 2 * l + 1;
17 auto Ylm = nda::zeros<dcomplex>(size, size);
21 Ylm(1, 0) = 1.0 / sqrt2;
22 Ylm(2, 0) = I / sqrt2;
24 Ylm(1, 2) = -1.0 / sqrt2;
25 Ylm(2, 2) = I / sqrt2;
29 Ylm(0, 0) = I / sqrt2;
30 Ylm(1, 1) = I / sqrt2;
32 Ylm(3, 1) = 1 / sqrt2;
33 Ylm(4, 1) = 1 / sqrt2;
34 Ylm(0, 4) = -I / sqrt2;
35 Ylm(1, 3) = I / sqrt2;
36 Ylm(3, 3) = -1.0 / sqrt2;
37 Ylm(4, 4) = 1.0 / sqrt2;
41 Ylm(0, 0) = 1.0 / sqrt2;
42 Ylm(1, 1) = 1.0 / sqrt2;
43 Ylm(2, 2) = 1.0 / sqrt2;
44 Ylm(0, 6) = 1.0 / sqrt2;
45 Ylm(1, 5) = 1.0 / sqrt2;
46 Ylm(2, 4) = 1.0 / sqrt2;
48 Ylm(4, 2) = I / sqrt2;
49 Ylm(5, 1) = I / sqrt2;
50 Ylm(6, 0) = I / sqrt2;
51 Ylm(4, 4) = I / sqrt2;
52 Ylm(5, 5) = -I / sqrt2;
53 Ylm(6, 6) = I / sqrt2;