1% test symmetry package
2% implementation of theory of linear representations
3% for small groups
4
5availablegroups();
6
7
8{z2,k4,d3,d4,d5,d6,c3,c4,c5,c6,s4,a4}
9
10
11printgroup(D4);
12
13
14{id,rd4,rot2d4,rot3d4,sd4,srd4,sr2d4,sr3d4}
15
16
17generators(D4);
18
19
20{rd4,sd4}
21
22
23charactertable(D4);
24
25
26{{d4,{{id},1},{{rd4,rot3d4},1},{{rot2d4},1},{{sd4,sr2d4},1},{{sr3d4,srd4},1}},
27
28 {d4,{{id},1},{{rd4,rot3d4},1},{{rot2d4},1},{{sd4,sr2d4},-1},{{sr3d4,srd4},-1}},
29
30 {d4,{{id},1},{{rd4,rot3d4},-1},{{rot2d4},1},{{sd4,sr2d4},1},{{sr3d4,srd4},-1}},
31
32 {d4,{{id},1},{{rd4,rot3d4},-1},{{rot2d4},1},{{sd4,sr2d4},-1},{{sr3d4,srd4},1}},
33
34 {d4,{{id},2},{{rd4,rot3d4},0},{{rot2d4},-2},{{sd4,sr2d4},0},{{sr3d4,srd4},0}}}
35
36
37characternr(D4,1);
38
39
40{d4,{{id},1},{{rd4,rot3d4},1},{{rot2d4},1},{{sd4,sr2d4},1},{{sr3d4,srd4},1}}
41
42characternr(D4,2);
43
44
45{d4,{{id},1},{{rd4,rot3d4},1},{{rot2d4},1},{{sd4,sr2d4},-1},{{sr3d4,srd4},-1}}
46
47characternr(D4,3);
48
49
50{d4,{{id},1},{{rd4,rot3d4},-1},{{rot2d4},1},{{sd4,sr2d4},1},{{sr3d4,srd4},-1}}
51
52characternr(D4,4);
53
54
55{d4,{{id},1},{{rd4,rot3d4},-1},{{rot2d4},1},{{sd4,sr2d4},-1},{{sr3d4,srd4},1}}
56
57characternr(D4,5);
58
59
60{d4,{{id},2},{{rd4,rot3d4},0},{{rot2d4},-2},{{sd4,sr2d4},0},{{sr3d4,srd4},0}}
61
62irreduciblereptable(D4);
63
64
65{{d4,
66
67  id=
68
69  [1]
70
71  ,
72
73  rd4=
74
75  [1]
76
77  ,
78
79  rot2d4=
80
81  [1]
82
83  ,
84
85  rot3d4=
86
87  [1]
88
89  ,
90
91  sd4=
92
93  [1]
94
95  ,
96
97  srd4=
98
99  [1]
100
101  ,
102
103  sr2d4=
104
105  [1]
106
107  ,
108
109  sr3d4=
110
111  [1]
112
113  },
114
115 {d4,
116
117  id=
118
119  [1]
120
121  ,
122
123  rd4=
124
125  [1]
126
127  ,
128
129  rot2d4=
130
131  [1]
132
133  ,
134
135  rot3d4=
136
137  [1]
138
139  ,
140
141  sd4=
142
143  [ - 1]
144
145  ,
146
147  srd4=
148
149  [ - 1]
150
151  ,
152
153  sr2d4=
154
155  [ - 1]
156
157  ,
158
159  sr3d4=
160
161  [ - 1]
162
163  },
164
165 {d4,
166
167  id=
168
169  [1]
170
171  ,
172
173  rd4=
174
175  [ - 1]
176
177  ,
178
179  rot2d4=
180
181  [1]
182
183  ,
184
185  rot3d4=
186
187  [ - 1]
188
189  ,
190
191  sd4=
192
193  [1]
194
195  ,
196
197  srd4=
198
199  [ - 1]
200
201  ,
202
203  sr2d4=
204
205  [1]
206
207  ,
208
209  sr3d4=
210
211  [ - 1]
212
213  },
214
215 {d4,
216
217  id=
218
219  [1]
220
221  ,
222
223  rd4=
224
225  [ - 1]
226
227  ,
228
229  rot2d4=
230
231  [1]
232
233  ,
234
235  rot3d4=
236
237  [ - 1]
238
239  ,
240
241  sd4=
242
243  [ - 1]
244
245  ,
246
247  srd4=
248
249  [1]
250
251  ,
252
253  sr2d4=
254
255  [ - 1]
256
257  ,
258
259  sr3d4=
260
261  [1]
262
263  },
264
265 {d4,
266
267  id=
268
269  [1  0]
270  [    ]
271  [0  1]
272
273  ,
274
275  rd4=
276
277  [ 0    1]
278  [       ]
279  [ - 1  0]
280
281  ,
282
283  rot2d4=
284
285  [ - 1   0  ]
286  [          ]
287  [ 0     - 1]
288
289  ,
290
291  rot3d4=
292
293  [0   - 1]
294  [       ]
295  [1   0  ]
296
297  ,
298
299  sd4=
300
301  [1   0  ]
302  [       ]
303  [0   - 1]
304
305  ,
306
307  srd4=
308
309  [0  1]
310  [    ]
311  [1  0]
312
313  ,
314
315  sr2d4=
316
317  [ - 1  0]
318  [       ]
319  [ 0    1]
320
321  ,
322
323  sr3d4=
324
325  [ 0     - 1]
326  [          ]
327  [ - 1   0  ]
328
329  }}
330
331irreduciblerepnr(D4,1);
332
333
334{d4,
335
336 id=
337
338 [1]
339
340 ,
341
342 rd4=
343
344 [1]
345
346 ,
347
348 rot2d4=
349
350 [1]
351
352 ,
353
354 rot3d4=
355
356 [1]
357
358 ,
359
360 sd4=
361
362 [1]
363
364 ,
365
366 srd4=
367
368 [1]
369
370 ,
371
372 sr2d4=
373
374 [1]
375
376 ,
377
378 sr3d4=
379
380 [1]
381
382 }
383
384irreduciblerepnr(D4,2);
385
386
387{d4,
388
389 id=
390
391 [1]
392
393 ,
394
395 rd4=
396
397 [1]
398
399 ,
400
401 rot2d4=
402
403 [1]
404
405 ,
406
407 rot3d4=
408
409 [1]
410
411 ,
412
413 sd4=
414
415 [ - 1]
416
417 ,
418
419 srd4=
420
421 [ - 1]
422
423 ,
424
425 sr2d4=
426
427 [ - 1]
428
429 ,
430
431 sr3d4=
432
433 [ - 1]
434
435 }
436
437irreduciblerepnr(D4,3);
438
439
440{d4,
441
442 id=
443
444 [1]
445
446 ,
447
448 rd4=
449
450 [ - 1]
451
452 ,
453
454 rot2d4=
455
456 [1]
457
458 ,
459
460 rot3d4=
461
462 [ - 1]
463
464 ,
465
466 sd4=
467
468 [1]
469
470 ,
471
472 srd4=
473
474 [ - 1]
475
476 ,
477
478 sr2d4=
479
480 [1]
481
482 ,
483
484 sr3d4=
485
486 [ - 1]
487
488 }
489
490irreduciblerepnr(D4,4);
491
492
493{d4,
494
495 id=
496
497 [1]
498
499 ,
500
501 rd4=
502
503 [ - 1]
504
505 ,
506
507 rot2d4=
508
509 [1]
510
511 ,
512
513 rot3d4=
514
515 [ - 1]
516
517 ,
518
519 sd4=
520
521 [ - 1]
522
523 ,
524
525 srd4=
526
527 [1]
528
529 ,
530
531 sr2d4=
532
533 [ - 1]
534
535 ,
536
537 sr3d4=
538
539 [1]
540
541 }
542
543irreduciblerepnr(D4,5);
544
545
546{d4,
547
548 id=
549
550 [1  0]
551 [    ]
552 [0  1]
553
554 ,
555
556 rd4=
557
558 [ 0    1]
559 [       ]
560 [ - 1  0]
561
562 ,
563
564 rot2d4=
565
566 [ - 1   0  ]
567 [          ]
568 [ 0     - 1]
569
570 ,
571
572 rot3d4=
573
574 [0   - 1]
575 [       ]
576 [1   0  ]
577
578 ,
579
580 sd4=
581
582 [1   0  ]
583 [       ]
584 [0   - 1]
585
586 ,
587
588 srd4=
589
590 [0  1]
591 [    ]
592 [1  0]
593
594 ,
595
596 sr2d4=
597
598 [ - 1  0]
599 [       ]
600 [ 0    1]
601
602 ,
603
604 sr3d4=
605
606 [ 0     - 1]
607 [          ]
608 [ - 1   0  ]
609
610 }
611
612
613
614rr:=mat((1,0,0,0,0),
615        (0,0,1,0,0),
616        (0,0,0,1,0),
617        (0,0,0,0,1),
618        (0,1,0,0,0));
619
620
621      [1  0  0  0  0]
622      [             ]
623      [0  0  1  0  0]
624      [             ]
625rr := [0  0  0  1  0]
626      [             ]
627      [0  0  0  0  1]
628      [             ]
629      [0  1  0  0  0]
630
631
632
633sp:=mat((1,0,0,0,0),
634        (0,0,1,0,0),
635        (0,1,0,0,0),
636        (0,0,0,0,1),
637        (0,0,0,1,0));
638
639
640      [1  0  0  0  0]
641      [             ]
642      [0  0  1  0  0]
643      [             ]
644sp := [0  1  0  0  0]
645      [             ]
646      [0  0  0  0  1]
647      [             ]
648      [0  0  0  1  0]
649
650
651
652rep:={D4,rD4=rr,sD4=sp};
653
654
655rep := {d4,
656
657        rd4=
658
659        [1  0  0  0  0]
660        [             ]
661        [0  0  1  0  0]
662        [             ]
663        [0  0  0  1  0]
664        [             ]
665        [0  0  0  0  1]
666        [             ]
667        [0  1  0  0  0]
668
669        ,
670
671        sd4=
672
673        [1  0  0  0  0]
674        [             ]
675        [0  0  1  0  0]
676        [             ]
677        [0  1  0  0  0]
678        [             ]
679        [0  0  0  0  1]
680        [             ]
681        [0  0  0  1  0]
682
683        }
684
685
686canonicaldecomposition(rep);
687
688
689teta=2*teta1 + teta4 + teta5
690
691
692character(rep);
693
694
695{d4,{{id},5},{{rd4,rot3d4},1},{{rot2d4},1},{{sd4,sr2d4},1},{{sr3d4,srd4},3}}
696
697
698symmetrybasis(rep,1);
699
700
701[1   0 ]
702[      ]
703[    1 ]
704[0  ---]
705[    2 ]
706[      ]
707[    1 ]
708[0  ---]
709[    2 ]
710[      ]
711[    1 ]
712[0  ---]
713[    2 ]
714[      ]
715[    1 ]
716[0  ---]
717[    2 ]
718
719
720symmetrybasis(rep,2);
721
722
723symmetrybasis(rep,3);
724
725
726symmetrybasis(rep,4);
727
728
729[  0   ]
730[      ]
731[  1   ]
732[ ---  ]
733[  2   ]
734[      ]
735[  - 1 ]
736[------]
737[  2   ]
738[      ]
739[  1   ]
740[ ---  ]
741[  2   ]
742[      ]
743[  - 1 ]
744[------]
745[  2   ]
746
747
748symmetrybasis(rep,5);
749
750
751[  0       0   ]
752[              ]
753[  1       - 1 ]
754[ ---    ------]
755[  2       2   ]
756[              ]
757[  1       1   ]
758[ ---     ---  ]
759[  2       2   ]
760[              ]
761[  - 1     1   ]
762[------   ---  ]
763[  2       2   ]
764[              ]
765[  - 1     - 1 ]
766[------  ------]
767[  2       2   ]
768
769
770symmetrybasispart(rep,5);
771
772
773[  0   ]
774[      ]
775[  1   ]
776[ ---  ]
777[  2   ]
778[      ]
779[  1   ]
780[ ---  ]
781[  2   ]
782[      ]
783[  - 1 ]
784[------]
785[  2   ]
786[      ]
787[  - 1 ]
788[------]
789[  2   ]
790
791
792allsymmetrybases(rep);
793
794
795[1   0     0       0       0   ]
796[                              ]
797[    1     1       1       - 1 ]
798[0  ---   ---     ---    ------]
799[    2     2       2       2   ]
800[                              ]
801[    1     - 1     1       1   ]
802[0  ---  ------   ---     ---  ]
803[    2     2       2       2   ]
804[                              ]
805[    1     1       - 1     1   ]
806[0  ---   ---    ------   ---  ]
807[    2     2       2       2   ]
808[                              ]
809[    1     - 1     - 1     - 1 ]
810[0  ---  ------  ------  ------]
811[    2     2       2       2   ]
812
813
814
815
816% Ritz matrix from Stiefel, Faessler p. 200
817m:=mat((eps,a,a,a,a),
818       (a  ,d,b,g,b),
819       (a  ,b,d,b,g),
820       (a  ,g,b,d,b),
821       (a  ,b,g,b,d));
822
823
824     [eps  a  a  a  a]
825     [               ]
826     [ a   d  b  g  b]
827     [               ]
828m := [ a   b  d  b  g]
829     [               ]
830     [ a   g  b  d  b]
831     [               ]
832     [ a   b  g  b  d]
833
834
835
836
837diagonalize(m,rep);
838
839
840[eps      2*a            0           0      0  ]
841[                                              ]
842[2*a  2*b + d + g        0           0      0  ]
843[                                              ]
844[ 0        0        - 2*b + d + g    0      0  ]
845[                                              ]
846[ 0        0             0         d - g    0  ]
847[                                              ]
848[ 0        0             0           0    d - g]
849
850
851
852% eigenvalues are obvious. Eigenvectors may be obtained with
853% the coordinate transformation matrix given by allsymmetrybases.
854
855r1:=mat((0,1,0),
856        (0,0,1),
857        (1,0,0));
858
859
860      [0  1  0]
861      [       ]
862r1 := [0  0  1]
863      [       ]
864      [1  0  0]
865
866
867
868repC3:={C3,rC3=r1};
869
870
871repc3 := {c3,rc3=
872
873          [0  1  0]
874          [       ]
875          [0  0  1]
876          [       ]
877          [1  0  0]
878
879          }
880
881
882mC3:=mat((a,b,c),
883         (c,a,b),
884         (b,c,a));
885
886
887       [a  b  c]
888       [       ]
889mc3 := [c  a  b]
890       [       ]
891       [b  c  a]
892
893
894
895diagonalize(mC3,repC3);
896
897
898[a + b + c              0                          0           ]
899[                                                              ]
900[                  2*a - b - c           sqrt(3)*b - sqrt(3)*c ]
901[    0            -------------         -----------------------]
902[                       2                          2           ]
903[                                                              ]
904[             - sqrt(3)*b + sqrt(3)*c         2*a - b - c      ]
905[    0      --------------------------       -------------     ]
906[                       2                          2           ]
907
908
909
910% note difference between real and complex case
911
912on complex;
913
914
915diagonalize(mC3,repC3);
916
917
918mat((a + b + c,0,0),
919
920        i*sqrt(3)*b - i*sqrt(3)*c + 2*a - b - c
921    (0,-----------------------------------------,0),
922                           2
923
924           - i*sqrt(3)*b + i*sqrt(3)*c + 2*a - b - c
925    (0,0,--------------------------------------------))
926                              2
927
928
929off complex;
930
931
932
933end;
934
935Tested on x86_64-pc-windows CSL
936Time (counter 1): 16 ms
937
938End of Lisp run after 0.01+0.04 seconds
939real 0.20
940user 0.01
941sys 0.06
942