SOSpin is hosted by Hepforge, IPPP Durham
SOSpin  1.0.0
so10.cpp
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // SOSpin Library
3 // Copyright (C) 2015 SOSpin Project
4 //
5 // Authors:
6 //
7 // Nuno Cardoso (nuno.cardoso@tecnico.ulisboa.pt)
8 // David Emmanuel-Costa (david.costa@tecnico.ulisboa.pt)
9 // Nuno Gonçalves (nunogon@deec.uc.pt)
10 // Catarina Simoes (csimoes@ulg.ac.be)
11 //
12 // ----------------------------------------------------------------------------
13 // This file is part of SOSpin Library.
14 //
15 // SOSpin Library is free software: you can redistribute it and/or modify
16 // it under the terms of the GNU General Public License as published by
17 // the Free Software Foundation, either version 3 of the License, or any
18 // later version.
19 //
20 // SOSpin Library is distributed in the hope that it will be useful,
21 // but WITHOUT ANY WARRANTY; without even the implied warranty of
22 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 // GNU General Public License for more details.
24 //
25 // You should have received a copy of the GNU General Public License
26 // along with SOSpin Library. If not, see <http://www.gnu.org/licenses/>.
27 // ----------------------------------------------------------------------------
28 
29 // SO10.cpp created on 24/03/2015
30 //
31 // This file contains the functions necessary to do things
32 // in the SOSpin Library.
33 //
34 // Revision 1.1 24/03/2015 23:19:29 david
35 // Some index corrections 27/03/2015 CS
36 // License updated
37 //
38 
45 #include "tools/so10.h"
46 
47 #include "son.h"
48 
49 using namespace std;
50 
51 namespace sospin {
52 
122  Braket GammaH(int n) {
123  if (getDim() != 10) {
124  cout << "Error: This function is only available for SO(10)...\nExiting." << endl;
125  exit(1);
126  }
127  Braket gamma;
128  switch (n) {
129  case 0:
130  gamma = free(0, H, identity);
131  Field(H, 0, 0, ASYM);
132  break;
133  case 1:
134  gamma = free(-1, sqrt(2) * H01(r1), b(r1));
135  gamma += free(1, sqrt(2) * H10(r1), bt(r1));
136  Field(H, 0, 1, ASYM);
137  Field(H, 1, 0, ASYM);
138  break;
139  case 2:
140  gamma = free(-2, i_ * sqrt(2) * H02(r1, r2) / 2, -b(r1) * b(r2));
141  gamma += free(2, i_ * sqrt(2) * H20(r1, r2) / 2, -bt(r1) * bt(r2));
142  gamma += free(0, i_ * (sqrt(2) * H11(r1, r2) + 1 / 5 * d_(r1, r2) * sqrt(10) * H), -bt(r1) * b(r2));
143  gamma += free(0, i_ * sqrt(10) * H / 2, identity);
144  Field(H, 0, 0, ASYM);
145  Field(H, 1, 1, ASYM);
146  Field(H, 2, 0, ASYM);
147  Field(H, 0, 2, ASYM);
148  break;
149  case 3: //Nath and the minus sign in David normalization ATENCAO AO PSIp E PSIm
150  gamma = free(-3, 1 / 6 * (e_(r1, r2, r3, r4, r5) * H20(r4, r5) / sqrt(3)), b(r1) * b(r2) * b(r3));
151  gamma += free(3, 1 / 6 * (e_(r1, r2, r3, r4, r5) * H02(r4, r5) / sqrt(3)), bt(r1) * bt(r2) * bt(r3));
152  gamma += free(-1, (2 * H12(r1, r2, r3) + d_(r1, r2) * H01(r3) - d_(r1, r3) * H01(r2)) / (2 * sqrt(3)), bt(r1) * b(r2) * b(r3));
153  gamma += free(1, (2 * H21(r1, r2, r3) + d_(r1, r3) * H10(r2) - d_(r2, r3) * H10(r1)) / (2 * sqrt(3)), bt(r1) * bt(r2) * b(r3));
154  gamma += free(-1, 2 * H01(r1) / sqrt(3), -b(r1));
155  gamma += free(1, 2 * H10(r1) / sqrt(3), bt(r1));
156  newId("r4");
157  newId("r5");
158  Field(H, 1, 0, ASYM);
159  Field(H, 0, 1, ASYM);
160  Field(H, 2, 0, ASYM);
161  Field(H, 0, 2, ASYM);
162  Field(H, 2, 1, ASYM);
163  Field(H, 1, 2, ASYM);
164  break;
165  case 4:
166  gamma = free(2, sqrt(2) / 6 * (H31(r1, r2, r3, r4) / sqrt(3) + 1 / 3 * (d_(r3, r4) * H20(r1, r2) - d_(r2, r4) * H20(r1, r3) + d_(r1, r4) * H20(r2, r3))), bt(r1) * bt(r2) * bt(r3) * b(r4));
167  gamma += free(-2, sqrt(2) / 6 * (H13(r1, r2, r3, r4) / sqrt(3) + 1 / 3 * (d_(r1, r4) * H02(r2, r3) - d_(r1, r3) * H02(r2, r4) + d_(r1, r2) * H02(r3, r4))), -bt(r1) * b(r2) * b(r3) * b(r4));
168  gamma += free(4, sqrt(6) / 72 * e_(r1, r2, r3, r4, r5) * H01(r5), bt(r1) * bt(r2) * bt(r3) * bt(r4));
169  gamma += free(-4, sqrt(6) / 72 * e_(r1, r2, r3, r4, r5) * H10(r5), b(r1) * b(r2) * b(r3) * b(r4));
170  gamma += free(2, sqrt(2) / 4 * H20(r1, r2), -bt(r1) * bt(r2));
171  gamma += free(-2, sqrt(2) / 4 * H02(r1, r2), b(r1) * b(r2));
172  gamma += free(0, H * sqrt(5) / (2 * sqrt(3)), identity);
173  gamma += free(0, (sqrt(2) / 2 * H11(r1, r2) + 2 * d_(r1, r2) * H / sqrt(15)), -bt(r1) * b(r2));
174  gamma += free(0, (1 / 4 * (H22(r1, r2, r3, r4) * sqrt(2) / sqrt(3) + sqrt(2) / 3 * (d_(r1, r4) * H11(r2, r3) - d_(r1, r3) * H11(r2, r4) + d_(r2, r3) * H11(r1, r4) - d_(r2, r4) * H11(r1, r3)) + (d_(r1, r4) * d_(r2, r3) - d_(r1, r3) * d_(r2, r4)) * H / sqrt(15))), bt(r1) * bt(r2) * b(r3) * b(r4));
175  newId("r5");
176  Field(H, 0, 0, ASYM);
177  Field(H, 1, 0, ASYM);
178  Field(H, 0, 1, ASYM);
179  Field(H, 1, 1, ASYM);
180  Field(H, 2, 0, ASYM);
181  Field(H, 0, 2, ASYM);
182  Field(H, 2, 2, ASYM);
183  Field(H, 3, 1, ASYM);
184  Field(H, 1, 3, ASYM);
185  break;
186  case 5: /* verified 27/03/2015 */
187  gamma = free(-5, 1 / 60 * e_(r1, r2, r3, r4, r5) * H / sqrt(15), b(r1) * b(r2) * b(r3) * b(r4) * b(r5));
188  gamma += free(0, 1 / 60 * e_(r1, r2, r3, r4, r5) * H / sqrt(15), bt(r1) * bt(r2) * bt(r3) * bt(r4) * bt(r5));
189  gamma += free(1, 1 / 2 * H10(r1) * sqrt(2) / sqrt(5), bt(r1));
190  gamma += free(1, 2 / 3 * sqrt(2) * H10(r1) / sqrt(5), -bt(r1) * bt(rn) * b(rn));
191  gamma += free(1, 1 / 6 * sqrt(2) * H10(r1) / sqrt(5), bt(r1) * bt(rn) * b(rn) * bt(rm) * b(rm));
192  gamma += free(-1, 1 / 2 * sqrt(2) * H01(r1) / sqrt(5), b(r1));
193  gamma += free(-1, 2 / 3 * sqrt(2) * H01(r1) / sqrt(5), -bt(rn) * b(rn) * b(r1));
194  gamma += free(-1, 1 / 6 * sqrt(2) * H01(r1) / sqrt(5), bt(rn) * b(rn) * bt(rm) * b(rm) * b(r1));
195  gamma += free(3, 1 / 12 * sqrt(2) / sqrt(15) * e_(r1, r2, r3, r4, r5) * H02(r4, r5), bt(r1) * bt(r2) * bt(r3));
196  gamma += free(3, 1 / 12 * sqrt(2) / sqrt(15) * e_(r1, r2, r3, r4, r5) * H02(r4, r5), -bt(r1) * bt(r2) * bt(r3) * bt(rn) * b(rn));
197  gamma += free(-3, 1 / 12 * sqrt(2) / sqrt(15) * e_(r1, r2, r3, r4, r5) * H20(r4, r5), b(r1) * b(r2) * b(r3));
198  gamma += free(-3, 1 / 12 * sqrt(2) / sqrt(15) * e_(r1, r2, r3, r4, r5) * H20(r4, r5), -bt(rn) * b(rn) * b(r1) * b(r2) * b(r3));
199  gamma += free(1, sqrt(2) * H21(r1, r2, r3) / sqrt(15), bt(r1) * bt(r2) * b(r3));
200  gamma += free(1, 1 / 2 * sqrt(2) * H21(r1, r2, r3) / sqrt(15), -bt(r1) * bt(r2) * b(r3) * bt(rn) * b(rn));
201  gamma += free(-1, sqrt(2) * H12(r1, r2, r3) / sqrt(15), bt(r1) * b(r2) * b(r3));
202  gamma += free(-1, 1 / 2 * sqrt(2) * H12(r1, r2, r3) / sqrt(15), -bt(rn) * b(rn) * bt(r1) * b(r2) * b(r3));
203  gamma += free(3, 1 / 24 * sqrt(2) / sqrt(15) * e_(r1, r2, r3, r4, rn) * Hs02(rn, rm), bt(r1) * bt(r2) * bt(r3) * bt(r4) * b(rm));
204  gamma += free(-3, 1 / 24 * sqrt(2) / sqrt(15) * e_(r2, r3, r4, rm, rn) * Hs20(rn, r1), bt(r1) * b(r2) * b(r3) * b(r4) * b(rm));
205  gamma += free(1, 1 / 6 * H32(r1, r2, r3, r4, rm) / sqrt(15), bt(r1) * bt(r2) * bt(r3) * b(r4) * b(rm));
206  gamma += free(-1, 1 / 6 * H23(r1, r2, r3, r4, rm) / sqrt(15), bt(r1) * bt(r2) * b(r3) * b(r4) * b(rm));
207  newId("rn");
208  newId("rm");
209  Field(H, 0, 0, ASYM);
210  Field(H, 1, 0, ASYM);
211  Field(H, 0, 1, ASYM);
212  Field(H, 0, 2, SYM);
213  Field(H, 2, 0, SYM);
214  Field(H, 0, 2, ASYM);
215  Field(H, 2, 0, ASYM);
216  Field(H, 1, 2, ASYM);
217  Field(H, 2, 1, ASYM);
218  Field(H, 2, 3, ASYM);
219  Field(H, 3, 2, ASYM);
220  break;
221  default:
222  cout << "Gamma function not implemented for " << n << ".\nExiting..." << endl;
223  exit(1);
224  break;
225  }
226  return gamma;
227  }
228 
253  if (getDim() != 10) {
254  cout << "This is only for SO(10)...\nExiting..." << endl;
255  exit(10);
256  }
257  Braket exp;
258  switch (mode) {
259  case bra:
260  exp = bra(0, M(A), identity);
261  exp += bra(2, 1 / 2 * M20(A, o, p), b(p) * b(o));
262  exp += bra(4, 1 / 24 * e_(o, p, q, r, s) * Mb01(A, o), b(s) * b(r) * b(q) * b(p));
263  newId("A");
264  break;
265  case ket:
266  exp = ket(0, M(B), identity);
267  exp += ket(2, 1 / 2 * M20(B, j, k), bt(j) * bt(k));
268  exp += ket(4, 1 / 24 * e_(j, k, l, m, n) * Mb01(B, j), bt(k) * bt(l) * bt(m) * bt(n));
269  newId("B");
270  break;
271  default:
272  cout << "Expression mode not supported: " << mode << endl;
273  exit(1);
274  break;
275  }
276  Field(M, 0, 0, ASYM_WITH_FLAVOR);
277  Field(M, 2, 0, ASYM_WITH_FLAVOR);
278  Field(Mb, 0, 1, ASYM_WITH_FLAVOR);
279  return exp;
280  }
281 
305  Braket psi_16p(OPMode mode, string id) {
306  if (getDim() != 10) {
307  cout << "This is only for SO(10)...\nExiting..." << endl;
308  exit(10);
309  }
310  Braket exp;
311  switch (mode) {
312  case bra:
313  exp = bra(0, M(A), identity);
314  exp += Braket(2, "1/2 * M20(A," + makeId(id, 1) + "," + makeId(id, 2) + ")", bb(makeId(id, 2)) * bb(makeId(id, 1)), bra);
315  exp += Braket(4, "1/24 * e_(" + makeId(id, 1) + "," + makeId(id, 2) + "," + makeId(id, 3) + "," + makeId(id, 4) + "," + makeId(id, 5) + ") * Mb01(A," + makeId(id, 1) + ")", \
316  bb(makeId(id, 5)) * bb(makeId(id, 4)) * bb(makeId(id, 3)) * bb(makeId(id, 2)), bra);
317  newId("A");
318  break;
319  case ket:
320  exp = ket(0, M(B), identity);
321  exp += Braket(2, "1/2 * M20(B," + makeId(id, 1) + "," + makeId(id, 2) + ")", bbt(makeId(id, 1)) * bbt(makeId(id, 2)), ket);
322  exp += Braket(4, "1/24 * e_(" + makeId(id, 1) + "," + makeId(id, 2) + "," + makeId(id, 3) + "," + makeId(id, 4) + "," + makeId(id, 5) + ") * Mb01(B," + makeId(id, 1) + ")", \
323  bbt(makeId(id, 2)) * bbt(makeId(id, 3)) * bbt(makeId(id, 4)) * bbt(makeId(id, 5)), ket);
324  newId("B");
325  break;
326  default:
327  cout << "Expression mode not supported: " << mode << endl;
328  exit(1);
329  break;
330  }
331  Field(M, 0, 0, ASYM_WITH_FLAVOR);
332  Field(M, 2, 0, ASYM_WITH_FLAVOR);
333  Field(Mb, 0, 1, ASYM_WITH_FLAVOR);
334  return exp;
335 
336  }
337 
358  Braket psi_16m(OPMode mode) { /* CS corrected some indices! 27/03/2015 */
359  if (getDim() != 10) {
360  cout << "This is only for SO(10)...\nExiting..." << endl;
361  exit(10);
362  }
363  Braket exp;
364  switch (mode) {
365  case bra:
366  exp = bra(1, N10(A, o), b(o));
367  exp += bra(3, 1 / 12 * e_(o, p, q, r, s) * Nb02(A, o, p), b(s) * b(r) * b(q));
368  exp += bra(5, 1 / 120 * e_(o, p, q, r, s) * N(A), b(s) * b(r) * b(q) * b(p) * b(o));
369  newId("A");
370  break;
371  case ket:
372  exp = ket(1, N10(B, j), bt(j));
373  exp += ket(3, 1 / 12 * e_(j, k, l, m, n) * Nb02(B, j, k), bt(l) * bt(m) * bt(n));
374  exp += ket(5, 1 / 120 * e_(j, k, l, m, n) * N(B), bt(j) * bt(k) * bt(l) * bt(m) * bt(n));
375  newId("B");
376  break;
377  default:
378  cout << "Expression mode not supported: " << mode << endl;
379  exit(1);
380  break;
381  }
382  Field(N, 1, 0, ASYM_WITH_FLAVOR);
383  Field(Nb, 0, 2, ASYM_WITH_FLAVOR);
384  Field(N, 0, 0, ASYM_WITH_FLAVOR);
385  return exp;
386  }
387 
411  Braket psi_16m(OPMode mode, string id) {
412  if (getDim() != 10) {
413  cout << "This is only for SO(10)...\nExiting..." << endl;
414  exit(10);
415  }
416  Braket exp;
417  switch (mode) {
418  case bra:
419  exp = bra(1, N10(A, o), b(o));
420  exp += Braket(3, "1/12 * e_(" + makeId(id, 1) + "," + makeId(id, 2) + "," + makeId(id, 3) + "," + makeId(id, 4) + "," + makeId(id, 5)+\
421  ") * Nb02(A," + makeId(id, 1) + "," + makeId(id, 2) + ")", bb(makeId(id, 5)) * bb(makeId(id, 4)) * bb(makeId(id, 3)), bra);
422  exp += Braket(5, "1/120 * e_(" + makeId(id, 1) + "," + makeId(id, 2) + "," + makeId(id, 3) + "," + makeId(id, 4) + "," + makeId(id, 5)+\
423  ") * N(A)", bb(makeId(id, 5)) * bb(makeId(id, 4)) * bb(makeId(id, 3)) * bb(makeId(id, 2)) * bb(makeId(id, 1)), bra);
424  newId("A");
425  break;
426  case ket:
427  exp = ket(1, N10(B, j), bt(j));
428  exp += Braket(3, "1/12 * e_(" + makeId(id, 1) + "," + makeId(id, 2) + "," + makeId(id, 3) + "," + makeId(id, 4) + "," + makeId(id, 5) + ") * Nb02(B," + makeId(id, 1) + "," + makeId(id, 2) + ")", \
429  bbt(makeId(id, 3)) * bbt(makeId(id, 4)) * bbt(makeId(id, 5)), ket);
430  exp += Braket(5, "1/120 * e_(" + makeId(id, 1) + "," + makeId(id, 2) + "," + makeId(id, 3) + "," + makeId(id, 4) + "," + makeId(id, 5) + ") * N(B)", \
431  bbt(makeId(id, 1)) * bbt(makeId(id, 2)) * bbt(makeId(id, 3)) * bbt(makeId(id, 4)) * bbt(makeId(id, 5)), ket);
432  newId("B");
433  break;
434  default:
435  cout << "Expression mode not supported: " << mode << endl;
436  exit(1);
437  break;
438  }
439  Field(N, 1, 0, ASYM_WITH_FLAVOR);
440  Field(Nb, 0, 2, ASYM_WITH_FLAVOR);
441  Field(N, 0, 0, ASYM_WITH_FLAVOR);
442  return exp;
443  }
444 
445 
446 
447  // 144+
475  if (getDim() != 10) {
476  cout << "This is only for SO(10)...\nExiting..." << endl;
477  exit(10);
478  }
479  Braket exp;
480  switch (mode) {
481  case bra:
482  exp = bra(1, P10(A, n)*2 / sqrt(5), identity);
483  exp += bra(3, (1 / 12 * e_(o, p, q, r, s) * P13(A, n, q, r, s) - 1 / 12 * e_(o, p, n, r, s) * P02(A, r, s) * sqrt(6 / 5)), b(p) * b(o));
484  exp += bra(5, 1 / 24 * e_(o, p, q, r, s) * P11(A, n, o), b(s) * b(r) * b(q) * b(p));
485  exp += bra(-1, P01(A, n), identity);
486  exp += bra(1, (P21(A, o, p, n)/2 + (d_(o, n) * P10(A, p) - d_(p, n) * P10(A, o))/ (4*sqrt(5))), b(p) * b(o));
487  exp += bra(3, (1 / 48 * e_(o, p, q, r, s) * (P02(A, o, n) * sqrt(6 / 5) + Ps02(A, o, n) * sqrt(2))), b(s) * b(r) * b(q) * b(p));
488  newId("A");
489  break;
490  case ket:
491  exp = ket(1, P10(B, n)*2 / sqrt(5), identity);
492  exp += ket(3, (1 / 12 * e_(i, j, k, l, m) * P13(B, n, k, l, m) - 1 / 12 * e_(i, j, n, l, m) * P02(B, l, m) * sqrt(6 / 5)), bt(i) * bt(j));
493  exp += ket(5, 1 / 24 * e_(i, j, k, l, m) * P11(B, n, i), bt(j) * bt(k) * bt(l) * bt(m));
494  exp += ket(-1, P01(B, n), identity);
495  exp += ket(1, (P21(B, i, j, n)/2 + (d_(i, n) * P10(B, j) - d_(j, n) * P10(B, i))/ (4*sqrt(5))), bt(i) * bt(j));
496  exp += ket(3, 1 / 48 * e_(i, j, k, l, m)*(P02(B, i, n) * sqrt(6 / 5) + Ps02(B, i, n) * sqrt(2)), bt(j) * bt(k) * bt(l) * bt(m));
497  newId("B");
498  break;
499  default:
500  cout << "Expression mode not supported: " << mode << endl;
501  exit(1);
502  break;
503  }
504  newId("n");
505  Field(P, 1, 0, ASYM_WITH_FLAVOR);
506  Field(P, 1, 3, ASYM_WITH_FLAVOR);
507  Field(P, 0, 2, ASYM_WITH_FLAVOR);
508  Field(P, 1, 1, ASYM_WITH_FLAVOR);
509  Field(P, 0, 1, ASYM_WITH_FLAVOR);
510  Field(P, 0, 2, SYM_WITH_FLAVOR);
511  Field(P, 2, 1, ASYM_WITH_FLAVOR);
512  return exp;
513  }
514 
515 
516 
517  // 144-
549  if (getDim() != 10) {
550  cout << "This is only for SO(10)...\nExiting..." << endl;
551  exit(10);
552  }
553  Braket exp;
554  switch (mode) {
555  case bra:
556 
557  exp = bra(1, 1 / 120 * e_(o, p, q, r, s) * Q10(A, n), b(o) * b(p) * b(q) * b(r) * b(s));
558  exp += bra(4, 1 / 12 * e_(o, p, q, r, s) *(Q12(A, n, o, p) + 1 / (2*sqrt(5))* (d_(n, o) * Q01(A, p) - d_(n, p) * Q01(A, o))), b(s) * b(r) * b(q));
559  exp += bra(2, (1 / 2 * Q20(A, o, n) * sqrt(6 / 5) + 1 / 2 * Qs20(A, o, n) * sqrt(2)), b(o));
560  exp += bra(0, Q11(A, o, n), b(o));
561  exp += bra(2, 1 / 72 * e_(o,p, qq, rr, ss) * (e_(o, p, q, r, s) * Q31(A, q, r, s, n) - e_(o, p, n, r, s) * Q20(A, r, s) * sqrt(6 / 5)), b(ss) * b(rr) * b(qq));
562  exp += bra(-1, 1 / 120 * e_(o, p, q, r, s) * Q01(A, n)*2 / sqrt(5), b(o) * b(p) * b(q) * b(r) * b(s));
563  newId("A");
564  break;
565  case ket:
566  exp = ket(1, Q10(B, n) / 120 * e_(i, j, k, l, m), bt(i) * bt(j) * bt(k) * bt(l) * bt(m));
567  exp += ket(4, 1 / 12 * e_(i, j, k, l, m) * (Q12(B, n, i, j) + 1 / (2*sqrt(5)) *( d_(n, i) * Q01(B, j) - d_(n, j) * Q01(B, i))), bt(k) * bt(l) * bt(m));
568  exp += ket(2, (1 / 2 * ( Q20(B, i, n) * sqrt(6 / 5) + Qs20(B, i, n) * sqrt(2))), bt(i));
569  exp += ket(-1, 1 / 120 * e_(i, j, k, l, m) * Q01(B, n)*2 / sqrt(5), bt(i) * bt(j) * bt(k) * bt(l) * bt(m));
570  exp += ket(2, 1 / 72 * e_(i, j, kk, ll, mm) *(e_(i, j, k, l, m) * Q31(B, k, l, m, n) - e_(i, j, n, l, m) * Q20(B, l, m)*sqrt(6/5)), bt(kk) * bt(ll) * bt(mm));
571  exp += ket(0, Q11(B, i, n), bt(i));
572  newId("B");
573  break;
574  default:
575  cout << "Expression mode not supported: " << mode << endl;
576  exit(1);
577  break;
578  }
579  newId("n");
580  Field(Q, 1, 0, ASYM_WITH_FLAVOR);
581  Field(Q, 0, 1, ASYM_WITH_FLAVOR);
582  Field(Q, 1, 1, ASYM_WITH_FLAVOR);
583  Field(Q, 2, 0, ASYM_WITH_FLAVOR);
584  Field(Q, 2, 0, SYM_WITH_FLAVOR);
585  Field(Q, 1, 2, ASYM_WITH_FLAVOR);
586  Field(Q, 3, 1, ASYM_WITH_FLAVOR);
587  return exp;
588  }
589 
590 }
Definition: enum.h:54
Braket psi_16p(OPMode mode, string id)
Constructs the ket and bra in the 16th SO(10) representation.
Definition: so10.cpp:305
int getDim()
Get the group dimension.
Definition: son.cpp:64
Braket psi_144p(OPMode mode)
Constructs the ket and bra in the 144th-bar SO(10) representation.
Definition: so10.cpp:474
Definition: enum.h:78
#define bt(a)
C++ Macro for DList b\dagger operator.
Definition: son.h:93
Store expression...
Definition: braket.h:198
#define free(i, a, b)
C++ Macro for none expression.
Definition: son.h:133
enum OPMode_s OPMode
Braket GammaH(int n)
Gamma's.
Definition: so10.cpp:122
Braket psi_144m(OPMode mode)
Constructs the ket and bra in the 144th SO(10) representation.
Definition: so10.cpp:548
Definition: enum.h:77
Braket psi_16m(OPMode mode, string id)
Constructs the ket and bra in the 16th-bar SO(10) representation.
Definition: so10.cpp:411
string makeId(string a, int id)
return in string format "a+id"
Definition: index.cpp:67
#define bbt(a)
C++ Macro for DList b\dagger operator.
Definition: son.h:81
Main Sospin header file. Includes C++ macros, to simplify expression writing, B operator, Verbosity level and memory usage.
#define Field(a, b, c, d)
C++ Macro to declare field properties none expression.
Definition: son.h:144
#define b(a)
C++ Macro for DList b operator.
Definition: son.h:87
void newId(string i)
Store new index of type "string".
Definition: index.cpp:125
Specific functions for SO(10) group.
Definition: enum.h:53
#define identity
C++ Macro for DList identity/one.
Definition: son.h:104
#define bb(a)
C++ Macro for DList b operator.
Definition: son.h:75