@@ -56,64 +56,65 @@ cosommc mul midx add /midx exch def sinommc mul midy add /midy exch def h
56
56
dup cosommc mul ctrx add / ctrx exch def sinommc mul ctry add / ctry exch
57
57
def } ifelse / arrow exch def arrow 0 eq { / damping { pop 1 } def } {
58
58
/ damping { ommc sub abs // Degree mul rad mul dup mul dup mul dup
59
- // DampingConst add div } bind def } ifelse / phi ommc dphi sub def / dphi
60
- dphi dup add 2 index length div def // PropagatorThickness setlinewidth 1
61
- setlinecap fromx fromy moveto { cvx exec / phi phi dphi add def } forall
62
- stroke arrow 0 ne { newpath rad 20000 ge { // ArrowLength arrow mul dup
63
- dir cos mul / x exch def dir sin mul / y exch def x .5 mul midx add y .5
64
- mul midy add moveto x / x cosommc // ArrowHeight mul def x add neg y / y
65
- sinommc // ArrowHeight mul def y add neg rlineto x dup add y dup add
66
- rlineto } { ommc dir sub sin 0 le { / arrow arrow neg def } if / rad rad
67
- dup add def / ctrx ctrx dup add midx sub def / ctry ctry dup add midy sub
68
- def / dphi // ArrowLength .5 mul rad atan arrow mul def ommc dphi sub dup
69
- cos rad mul ctrx add / tipx exch def sin rad mul ctry add / tipy exch def
70
- ommc dphi add dup / sinommc exch sin def / cosommc exch cos def rad
71
- // ArrowHeight sub arrowarc arrow 1 eq { arc } { arcn } ifelse rad
72
- // ArrowHeight add arrowarc exch arrow 1 eq { arcn } { arc } ifelse }
73
- ifelse closepath fill } if } bind def / arrowarc { dup cosommc mul ctrx
74
- add / tailx exch def sinommc mul ctry add / taily exch def tailx tipx sub
75
- tipy taily sub dup dup mul 2 index dup mul add dup .25 mul rad dup mul
76
- exch sub exch div sqrt arrow mul dup 3 - 1 roll mul tailx tipx add .5 mul
77
- add / midx exch def mul taily tipy add .5 mul add / midy exch def midx midy
78
- rad tipy midy sub tipx midx sub atan taily midy sub tailx midx sub atan }
79
- bind def / Straight { rad 20000 lt { ctrx ctry rad phi phi dphi add dphi 0
80
- ge { arc } { arcn } ifelse } { phi dphi add dup cos rad mul ctrx add exch
81
- sin rad mul ctry add lineto } ifelse } bind def / Dash { currentpoint
82
- stroke moveto 0 setdash Straight currentpoint stroke moveto [ ] 0 setdash
83
- } bind def / ScalarDash { // ScalarDashing Dash } bind def / GhostDash {
59
+ // DampingConst add div } bind def } ifelse / pcs 0 def dup {
60
+ // FeynArtsDict exch known { / pcs pcs 1 add def } if } forall / phi ommc
61
+ dphi sub def / dphi dphi dup add pcs div def // PropagatorThickness
62
+ setlinewidth 1 setlinecap gsave fromx fromy moveto exec stroke arrow 0 ne
63
+ { newpath rad 20000 ge { // ArrowLength arrow mul dup dir cos mul / x exch
64
+ def dir sin mul / y exch def x .5 mul midx add y .5 mul midy add moveto x
65
+ / x cosommc // ArrowHeight mul def x add neg y / y sinommc // ArrowHeight mul
66
+ def y add neg rlineto x dup add y dup add rlineto } { ommc dir sub sin 0
67
+ le { / arrow arrow neg def } if / rad rad dup add def / ctrx ctrx dup add
68
+ midx sub def / ctry ctry dup add midy sub def / dphi // ArrowLength .5 mul
69
+ rad atan arrow mul def ommc dphi sub dup cos rad mul ctrx add / tipx exch
70
+ def sin rad mul ctry add / tipy exch def ommc dphi add dup / sinommc exch
71
+ sin def / cosommc exch cos def rad // ArrowHeight sub arrowarc arrow 1 eq {
72
+ arc } { arcn } ifelse rad // ArrowHeight add arrowarc exch arrow 1 eq {
73
+ arcn } { arc } ifelse } ifelse closepath fill } if grestore } bind def
74
+ / arrowarc { dup cosommc mul ctrx add / tailx exch def sinommc mul ctry add
75
+ / taily exch def tailx tipx sub tipy taily sub dup dup mul 2 index dup mul
76
+ add dup .25 mul rad dup mul exch sub exch div sqrt arrow mul dup 3 - 1
77
+ roll mul tailx tipx add .5 mul add / midx exch def mul taily tipy add .5
78
+ mul add / midy exch def midx midy rad tipy midy sub tipx midx sub atan
79
+ taily midy sub tailx midx sub atan } bind def / Straight { rad 20000 lt {
80
+ ctrx ctry rad phi phi dphi add dphi 0 ge { arc } { arcn } ifelse } { phi
81
+ dphi add dup cos rad mul ctrx add exch sin rad mul ctry add lineto }
82
+ ifelse / phi phi dphi add def } bind def / Dash { currentpoint stroke
83
+ moveto 0 setdash Straight currentpoint stroke moveto [ ] 0 setdash } bind
84
+ def / ScalarDash { // ScalarDashing Dash } bind def / GhostDash {
84
85
// GhostDashing Dash } bind def / Sine { / a dphi abs // Degree mul rad mul
85
86
def / omega // NCrestsSine a mul round dup 1 lt { pop 1 } if .5 add dup add
86
87
180 mul def 0 1 // NPoints a mul floor div 1 { / n exch def / a phi n dphi
87
88
mul add def rad a damping // SineAmp mul n omega mul sin mul sub dup a cos
88
- mul ctrx add exch a sin mul ctry add lineto } for } bind def / rshift
89
- CyclesAmp SineAmp sub def / phadj rshift CyclesAmp div acos def / sinphadj
90
- phadj sin def / Cycles { / a dphi abs // Degree mul rad mul def / omega
91
- // NCrestsCycles a mul round dup 1 lt { pop 1 } if 180 mul // phadj add dup
92
- add def / phamp // CyclesBreadth 180 mul rad div dphi 0 lt { neg } if def 0
93
- 1 // NPoints a mul dup add floor div 1 { / n exch def n omega mul // phadj
94
- sub dup cos // CyclesAmp mul // rshift sub rad add / a exch def sin n dup
95
- add 1 sub // sinphadj mul sub phamp mul phi add n dphi mul add dup cos a
96
- mul ctrx add exch sin a mul ctry add lineto } for } bind def / lfont
97
- // LabelFont findfont def / sfont / Symbol findfont def / slant // lfont dup
98
- / FontInfo known { / FontInfo get dup / ItalicAngle known { / ItalicAngle get
99
- sin - . 5 mul } { pop 0 } ifelse } { pop 0 } ifelse def / Label { / fsize
100
- exch // LabelFontSize mul def / super . 38 def / putchar { false charpath }
101
- bind def / chardim { flattenpath pathbbox / height exch def 3 - 1 roll sub
102
- / width exch def pop / icorr font // sfont eq { 0 } { // slant height mul }
103
- ifelse def } bind def / font // lfont def newpath 0 0 moveto 4 index exec
104
- flattenpath pathbbox newpath 2 index sub 5 - 1 roll 1 add mul - . 5 mul 6 - 1
105
- roll add 3 - 1 roll sub exch 2 index sub 4 - 1 roll 1 add mul - .5 mul 4 - 1
106
- roll add 3 - 1 roll sub exch moveto / putchar { show } bind def / chardim {
107
- } def / font // lfont def exec newpath } bind def / $ { / font // sfont def }
108
- bind def / # { font fsize scalefont setfont putchar currentpoint / y exch
109
- def / x exch def chardim / font // lfont def } bind def / _ { font fsize . 66
110
- mul scalefont setfont / super . 5 def x . 042 fsize mul add y . 133 fsize mul
111
- sub moveto putchar / font // lfont def } bind def /^ { font fsize . 66 mul
112
- scalefont setfont x . 083 fsize mul add y super fsize mul add moveto
113
- putchar / font // lfont def } bind def / ~ { font fsize scalefont setfont
114
- dup stringwidth height add . 44 fsize mul sub y add exch - . 8 mul width . 45
115
- mul sub icorr add x add exch moveto putchar / font // lfont def } bind def
116
- end
89
+ mul ctrx add exch a sin mul ctry add lineto } for / phi phi dphi add def }
90
+ bind def / rshift CyclesAmp SineAmp sub def / phadj rshift CyclesAmp div
91
+ acos def / sinphadj phadj sin def / Cycles { / a dphi abs // Degree mul rad
92
+ mul def / omega // NCrestsCycles a mul round dup 1 lt { pop 1 } if 180 mul
93
+ // phadj add dup add def / phamp // CyclesBreadth 180 mul rad div dphi 0 lt
94
+ { neg } if def 0 1 // NPoints a mul dup add floor div 1 { / n exch def n
95
+ omega mul // phadj sub dup cos // CyclesAmp mul // rshift sub rad add / a
96
+ exch def sin n dup add 1 sub // sinphadj mul sub phamp mul phi add n dphi
97
+ mul add dup cos a mul ctrx add exch sin a mul ctry add lineto } for / phi
98
+ phi dphi add def } bind def / lfont // LabelFont findfont def / sfont
99
+ / Symbol findfont def / slant // lfont dup / FontInfo known { / FontInfo get
100
+ dup / ItalicAngle known { / ItalicAngle get sin - . 5 mul } { pop 0 } ifelse
101
+ } { pop 0 } ifelse def / Label { / fsize exch // LabelFontSize mul def
102
+ / super . 38 def / putchar { false charpath } bind def / chardim {
103
+ flattenpath pathbbox / height exch def 3 - 1 roll sub / width exch def pop
104
+ / icorr font // sfont eq { 0 } { // slant height mul } ifelse def } bind def
105
+ / font // lfont def newpath 0 0 moveto 4 index exec flattenpath pathbbox
106
+ newpath 2 index sub 5 - 1 roll 1 add mul - .5 mul 6 - 1 roll add 3 - 1 roll
107
+ sub exch 2 index sub 4 - 1 roll 1 add mul - . 5 mul 4 - 1 roll add 3 - 1 roll
108
+ sub exch moveto / putchar { show } bind def / chardim { } def / font // lfont
109
+ def exec newpath } bind def / $ { / font // sfont def } bind def / # { font
110
+ fsize scalefont setfont putchar currentpoint / y exch def / x exch def
111
+ chardim / font // lfont def } bind def / _ { font fsize . 66 mul scalefont
112
+ setfont / super . 5 def x . 042 fsize mul add y . 133 fsize mul sub moveto
113
+ putchar / font // lfont def } bind def /^ { font fsize . 66 mul scalefont
114
+ setfont x . 083 fsize mul add y super fsize mul add moveto putchar / font
115
+ // lfont def } bind def / ~ { font fsize scalefont setfont dup stringwidth
116
+ height add . 44 fsize mul sub y add exch - . 8 mul width . 45 mul sub icorr
117
+ add x add exch moveto putchar / font // lfont def } bind def end
117
118
%%EndResource
118
119
%%EndProlog
119
120
0 commit comments