H__PAGEZEROx__TEXT__text__TEXT8m__stubs__TEXT||__stub_helper__TEXT} }__const__TEXT~~__cstring__TEXT@@__unwind_info__TEXT__eh_frame__TEXT8 __DATA__program_vars__DATA(__nl_symbol_ptr__DATA((__got__DATA8 8__la_symbol_ptr__DATAXX!__common__DATA0(H__LINKEDIT  "0  hp "p(hX0P PGH h/< /usr/lib/dyldooAl?=Y#EK$ * 8/usr/lib/libSystem.B.dylib&x(pjHHH}HuHHHH9uH\h'mUHSHHH)H|6EmHtH)HHH[]HH H='mlDUHH1HOHDHOHDHOHDHO fDHH='uG(fDHO0HHH=uG81HfDHW@HDHHwHHtD HHuHWPDJHWXfD HHhu]UHAWAVAUATSHHH8H]H]H5m0HkHHEHH HMHXLpLxAL-BC CI}H5mL]kHEfB<`HmHmHDI}0H5m/kIL9e}H[A\A]A^A_]UHf t%HHH8HHH5Hm0j]UHSHHf}&tHMH4H5+m0HHjH=mHH[]jUHAVSf}*6H]IH5XmL0JjH5mL09jP X ` H5.nLjh p x H5unLiH5nL0if{H5o0LiH=oLiH=p9Lif{.tH=qLiH=urLmiHLH5s0L7if{H5s0LiH=sL iH=Wu9Lif{.tH=GqLhH=^vLhHLH5w0Lhf{ teH5w0Lhf{.tH=pL~hH= yLehHHL H5y0L,h[A^]UHAVSHH5kH0 hH5zH0gH5zH0gH5{H0gH5k|H0gH5|H0g   ( 0 8 H5}HsgX H5~HZgH5~H0Igf}>tH=oHGgLuH=2H*gfA~t I4fA~HH HDI4H5H0fH5(H0ffA~.tH=oHfH=HffA~t I4fA~H#H HDI<H5H0?fH5H0.ffA~.tH=nH+fH=HffA~t I4fA~HH HDLHDH50He[A^]UHSHHH5e0HeH=\HeH=JHseH="0HZeH=AHAeH=VH(eH=GHH[] eUHSHHH5H0dH5H0d :f YY   H5Hyd  H5FHXdH=HH[]WdDUHSHH@H;H6HH5i0 dH H=sddH H=cH H=McH H=EcH H=cH H=֒cH H=xcH H=4_cH H=ÕZFcH H= '-cH H=cH H=UbH H=GWbH H=gbH H=՜IbH H= bH H=~bH H=ҟ ebH H=ɠALbH H=3bH H=obH H=bH H=eaH H= 4aH H=+aH;H5ʧ0aH H=1=aH H=X%saH H=glZaH H=zAaH H=%(aH H=̭aH H=K`H H=$`H H=!`H H=ذ(`H H= `H H=y`H H=``H H=G`H H=.`H H=c `H H=Y_H H=_H H=2_H H=H[]_fUHSHHH;HHH5H 0R_H H=)H[]Q_UHAWAVSH8HUMEII E^YEEE_YEXEA E E^EE^EE^YEYEEEV^YEYEM\MEYEXAf{tCMYEYXUYXQA^AA^AH8[A^A_]UHH0UME E E]EE]EE]YEYEEEi]YEYE\EMYMXff.H0]fUHAWAVAUATSH(H>HIAf E EA]EE\EMfMnE]CYDYEEE\CYYE\EIFMBY Xf. -^IN fByIM9>ZH([A\A]A^A_]DfDUHAWAVAUATSHH}LuH5 0H.\H=;"H3\AFLMM>HDžPLPIGIOBDEBDEIGBDEIG BDEIG(BDxIG0BDpID$HPfA~xf(YUf(YXpf(YXQ^p^x^UEf(YUf(YXMf(YXQ^M^E^UHHǾHZHHǾHZfEAfDfDEf.\vHHǾHgZEf.[vHHǾHH([A\A]A^A_]UHAWAVAUATSHHHUHIIH_HǾ LMHC@N$LkHCBEHU E EEYUYXYXQM^MM^MH=LLHCPB<~:AHCHJB< L5LHCPJcIL9}LH5\EMаLII5LHCPB<~HCXB xAfw~H 4HcHHHHǾ H H HHHHǾ L5iI>L%gI$H509KI>H5+L0%KI>I$H5+0KHCPB<I6~4AL% HCHJB<0JHCPJcIL9I4$}HH=JJHH[A\A]A^A_]'UHAWAVATSHHIu Mv fA<^H|+I9|&Mv fA<^ufA|^1[A\A^A_]L=-I?L%+I$H5h0II?I$H5H0II?I$IH50IIUHAWAVATSHHIu Mv fA<^H|+I9|&Mv fA<^ufA|^1[A\A^A_]L=mI?L%kI$H5@0=II?I$H5˨H0%II?I$IH50 IHUHAWAVAUATSHhLMLILuILxHuI0 H5`LHM9LI9fEE1HuLnHFBE E E0HEE{HEEHEYEECDEEGHf(YMXMMMYMYMMYEYE\HuHFB UYXUEf{t>EYUYXYXQM^MM^MMuH=LnGEfu H=LLGfEL;x~)f{H=}HYHDLGLH5<EMаFL9}H=?LFHuHMH9u4f{$t-f{&tH=$$H= H=L{FH}H5HFu5f{"tH= , LH5UFH=ڦLFIIL;}gHh[A\A]A^A_]UHAWAVAUATSHH>HUHH}A@HL%ftqIFHEMHLfLu ILMgIHL9|M9|IHUINIOH9IOH}HLEL sG2MIL93sH[A\A]A^A_]@UHAWAVAUATSHH>HUHH}A@HLft^IFM HL5fLu ILMgIL9;|M9|IOH}HLLEL FuMIL93}H[A\A]A^A_]DfDUHAWAVAUATSH8MH}H>HIAf E E1DEECEMfMnE DCYDYEEECCYYE\EIFMBY Xf. EIN fByIM9>ZMft%Mfu:H}LHH8[A\A]A^A_]L5IH H50BdBH5HU0LsBu L5jI>L5hIH H5H5^HU0L:Bu#L51I>L5/IH H5zIHHIINEDIINEIINEH[A^A_]UHSHHHAetHމA1H[]fDUHSHHHAltHމA1H[]fDUHSHHHDAttHމqA1H[]fDUHAVSHILAtuC(C(L3HK0HcL4[A^]L[A^]AfDUHSHHH@btHމ@1H[]fDUHSHHHt@qtHމ@1H[]fDUHSHHH4@ptHމa@1H[]fDUHAWAVATSHIL?L=KAtlA t&A%u#L?t uHL?AAw IcAD<D?tAu [A\A^A_]DL[A\A^A_]?fUHAWAVAUATSHLLIAIIHHHELLLfAx t%HH8HHIH50>ID$@McJH5H0LH>H5H>uID$XfBxHH5p>uID$XfBxHH5Mo>uID$XfBxHH5)G>uID$XfBxHH5>uID$XfBxqHH5=uID$XfBxLHH5ş=uID$XfBx'HH5=YID$XfBxLfAx t1HZH8HPHMH5H0=DL0= tL]=L="u1HH;L=IIH5A0<H;IH52HH;L=IIH5ȟ0<H;IH50y<]<DfDHKHLr< t"uID$PB~ID$HJ HuH!HH;Et;;L=I?L=IMH5%H0;;H[A\A]A^A_]DfDUHAWAVATSHIIIL;lu;HMLF8F8HH~@HcHHcV8HF@L L[A\A^A_]1L[A\A^A_];UHMIHѺ4]UHAWAVAUATSHLIIIfA~ It&HH8HHAM8H5d0:AU8B1vIHH;L5IH5S0:H;IAM8H5c0:H[A\A]A^A_]IMLLLH[A\A]A^A_]+DfDUHMIHѺ]UHSHwHcH D<9u)C҃r!Ճ4wHHr 1H[]øDUHAWAVAUATSHIIM IE,$ExIcH oD<D9uAE҃rAA4wMrL=-DHcI<Hx AD< 8˅uуHcLHH[A\A]A^A_]fDUHAVSH0HH5ÜH08X H5OH8H5AH08H5НH0z8H5H0i8f}*LuH57H0I8A EA EA XEEA XE[8EE48E^E7Ym9EEYE7f(YM9EY@9MY 39H5ĞH]7H5H07H5H0o7H5DH0^7H5+H0M7H0[A^]UHSH(H E MY 8Mf(Y 8M77EE@7EE^E6Y\8EEYE6@8Y H5uHMUe6H([]fDUHAWAVAUATSHHAI16HEHdL H}$6H5HDLEDLHM06H5L0 6AtbE1AfDEu0LH55IcH0LH55AAt AE9u L5E1H5L05H5L05H5L0n5H5L0]5H5L0L5H5L0;5H5L0*5H[A\A]A^A_]UHAWAVSHf}$u&H H8H HH5041DH]Ls4H5L4Ht3If{ tHH0H=0L4LH[A^A_]HH;L=IH5TL0f4H;IH5u0R464@UHAVSHDH5H!4Ht1HMIfy tH)H0H=0H/4L[A^]HH8H5d0H33UHAWAVAUATSH]LufA~ HH0H=[03M6E1L%wIFINBDBLIFBTIF B\IF(BdIF0BlIF8BtIF@B|H!H0MoDL'3AD9M}H[A\A]A^A_]fUHHGfG&HGHGHGfG(fG2HG*H?HP HX H` H?Hh Hp Hx H@H HDJWH Hes-8R?H HLJ HLJ Hes-8R?H H HGz?H H?H H?H HI@H HT@H HLJ HLJ HLJ HLJ H H H H H H( H?H0 H333333?H8 H>@H@ HH H@HP Haout.mpH4Ƈ8LJ4aoutLJ4S_1LJ4S_2LJ4S_3Ƈ8LJ4urgtƇ@LJ<urgtƇHLJDurgtƇLƇLƇL Ƈ Ƈ ]UHAVSHIIH|E0I|[A^]70UHAVSHIIH|0I|[A^]0UHH|]/UHH|]/UHH|]/UHH|w]/UHAWAVAUATSHHHUIIMM)J</HEHu"HH3H=ե0/F/IL+mIIMLHf/HMHAJ HuH <H1H=HUHRH+uHH2IGL9&HuHvH~LH>HHL9~M9=H9]7HHuf0HH9~HIM9~HHEHDH[A\A]A^A_]fDUHAWAVAUATSHHHUIIMM)J<IY.HEHu"H;H3H=Ѥ0D.-IL+mIIMLH.HMHAJ HuH H1H=HUHRH+uHHIGL9$HuHvJ<H~H>HHL9~M9HtH;HrHH5hHTH;HRHH5H4H;L-2IUH50H;IUH5HH;L-IUH5HH;L-ީIUH5ːH¨H;L-IUH5ՐHH;L-IUH5ߐkHH;L-IUH5JHbH;L-`IUH502H;IUH500H;IUH5BHH;L-IUH5:0H;IUH50H;IUH51ḨH;L-ʨIUH50H;IUH5`HH;L-IUH5HxH;L-vIUH5ˑHZH;L-XIUH5ՑH<H;L-:IUH5ߑkHH;L-IUH5JHH;HHH50HȦH;HƧHH5HH;HHH5+HH;HHH5PH_H;H]HH5u`H9H;H7HH5:HH;HHH5HH;HHH5ÒHǥH;HŦHH5ӒHX HXHHHĈ [A\A]A^A_]fDUHSHHH)H<rHtH)HH[]H=H H='.fUHSHHH)H<HtH)HH[]HݤH H=K'fUHSHHH)H<HtH)HH[]H}H H='n4fUHSHHHHQHu*H/H H=u' HCHHtHCHHtHC'HuḤH H=HC C(HuHH H= kHC0C8HtHC@4HCHaHuH?H H=Ր HCPj8HFHCXH[]fDUHAWAVAUATSH dHhHxHDžx1fDHMHDHMHDHMHDHMfDHH='uEfDHMHHH=uE1HfDHUHDHHuHtD HHuHUDJHUfD HHhuHHEHHHHH=ÏLhLL}A@ H5LA0 H5LnHDžpHpE1LpL%]fDHEfx t#I<$H:HHp0H5_HLHbtHDHEfx t#I<$HHHp0H5: HHxHƺLHEIAfHLHEf@ ft}I<$HH0H HS HEȋP~9AHEH@B<(I4$$ IHEȋPD9}I<$0H5֎ HE@ ft#I<$HHHp0H5 HDžx$fDfDH HLIH qH HHxHLHL}H} tuEEHcHxHUH H HL?H? l^EEHcHxHUH HcUHEL HHxHLHEI!HEfx t#I<$HџHHp0H5ƍ HLH etH HEfx t#I<$H|HHp0H5H HHxHƺ4LLmMMHL5fA} tzI<$H"H0H5 HEȋ~>AfDHEHB<(I4$ IHEȋD9}I<$0H5p dDHhHxHHMHD)HhHxHHMHD)HhHxHHMHLHDžx1HMHDHMHDHMHDHMfDHH='uEfDHMHHH=uE1HfDHUHDHHuHtD HHuHUDJHUfD HHhuHe pH H H=ËHh' H [A\A]A^A_]UHAWAVAUATSH8LHHHHHH H HMH5}HHH11HAL=jLL-Y@HHLL0\LLuZHL5,LH02HLH0HLH0 HLH0E0HAftLHʚHH;E|HH8HHH5M0HgHH;L5IH5b0WH;H5y0FH;IH5H0+H H=0H8[A\A]A^A_]fUHAWAVSH(HHHEH1H MHDLD0Isf}t)HH8HHH5+H0yLuLL1H $0LIIfA~ t)HUH8HKHH5ɉH0LLV1H 0LIIfA~ t)HH8HHH5kH0LL1H ى0LIYHHHLLwLL+I*TYLL+I*YHJH8H@HH5^LHHH;EuH([A^A_]fUHAWAVATSH]HAHЯDHfܯtBL=ŗI?HHH5`H '`0IH=!`)LЯHLHH(X LpL\H5yL$IMf4tH)H0H=y0L/HHЯH繫HHLDbHH޺X `ȯhȯY &f(Y ȯȯ^ȯ#YYȯf(YXH5nLH0H޺X H5&L0H5(L0Y+ #YH5 )LnH5;)LMH=)LRHH޺X PH5!L0H=,"\LH=s"JLH="0LH=#LH=$VLH=$LH繫HHLH繫HH1LWH繫HHLh@4hO*h^ hmhy hL}AS%mcܥL@{Gz??h㈵>r)???p= ף?k)?9?Ia?Ia㜿9RFߑ? }BQ~?Stokes trajectory [%ld coordinates]: S[%ld]=(%f,%f ,%f), visiblehidden[%s] %s: Parsing '%s' option. %% %% The following external file is included (using the --auxsource option): %s [MetaPost source] %% input %s endfig; end %% %% Draw the $S_1$-, $S_2$- and $S_3$-axis of the Poincare sphere. %% First of all, calculate the transformations of the intersections %% for the unity sphere. %% %% Used variables are similar to the ones described for %% drawing the original coordinate system. %% xtra_behind_distance_x := -%f; xtra_behind_distance_y := -%f; xtra_behind_distance_z := -%f; xtra_outside_distance_x := %f; xtra_outside_distance_y := %f; xtra_outside_distance_z := %f; insidecolval := .85; %% '0.0' <=> 'white'; '1.0' <=> 'black' %% %% Start with drawing the x-axis... %% x_bis_start := radius * xtra_behind_distance_x * cosd(rot_psi + delta_rot_psi) * cosd(rot_phi + delta_rot_phi); y_bis_start := radius * xtra_behind_distance_x * sind(rot_psi + delta_rot_psi); z_bis_start := -radius * xtra_behind_distance_x * cosd(rot_psi + delta_rot_psi) * sind(rot_phi + delta_rot_phi); x_bis_intersect := radius * cosd(rot_psi + delta_rot_psi) * cosd(rot_phi + delta_rot_phi); y_bis_intersect := radius * sind(rot_psi + delta_rot_psi); z_bis_intersect := -radius * cosd(rot_psi + delta_rot_psi) * sind(rot_phi + delta_rot_phi); p := makepath makepen (y_bis_start,z_bis_start)--(y_bis_intersect,z_bis_intersect); draw p dashed evenly withcolor insidecolval [white,black]; p := makepath makepen (y_bis_intersect,z_bis_intersect)-- (xtra_outside_distance_x * y_bis_intersect, xtra_outside_distance_x * z_bis_intersect); drawarrow p; label.bot(btex $%s$ etex, (xtra_outside_distance_x * y_bis_intersect, xtra_outside_distance_x * z_bis_intersect)); %% %% ... then draw the y-axis ... %% x_bis_start := -radius * xtra_behind_distance_y * sind(rot_psi + delta_rot_psi) * cosd(rot_phi + delta_rot_phi); y_bis_start := radius * xtra_behind_distance_y * cosd(rot_psi + delta_rot_psi); z_bis_start := radius * xtra_behind_distance_y * sind(rot_psi + delta_rot_psi) * sind(rot_phi + delta_rot_phi); x_bis_intersect := -radius * sind(rot_psi + delta_rot_psi) * cosd(rot_phi + delta_rot_phi); y_bis_intersect := radius * cosd(rot_psi + delta_rot_psi); z_bis_intersect := radius * sind(rot_psi + delta_rot_psi) * sind(rot_phi + delta_rot_phi); p := makepath makepen (y_bis_intersect,z_bis_intersect)-- (xtra_outside_distance_y * y_bis_intersect, xtra_outside_distance_y * z_bis_intersect); drawarrow p; label.bot(btex $%s$ etex, (xtra_outside_distance_y * y_bis_intersect, xtra_outside_distance_y * z_bis_intersect)); %% %% ... then, finally, draw the z-axis. %% x_bis_start := radius * xtra_behind_distance_z * sind(rot_phi + delta_rot_phi); y_bis_start := 0.0; z_bis_start := radius * xtra_behind_distance_z * cosd(rot_phi + delta_rot_phi); x_bis_intersect := radius * sind(rot_phi + delta_rot_phi); y_bis_intersect := 0.0; z_bis_intersect := radius * cosd(rot_phi + delta_rot_phi); p := makepath makepen (y_bis_intersect,z_bis_intersect)-- (xtra_outside_distance_z * y_bis_intersect, xtra_outside_distance_z * z_bis_intersect); drawarrow p; label.top(btex $%s$ etex, (xtra_outside_distance_z * y_bis_intersect, xtra_outside_distance_z * z_bis_intersect)); %% Used variables: %% %% behind_distance : Specifies the relative distance of the coordi- %% axes to be plotted behind origo (in negative di- %% rection of respective axis. %% %% outside_distance_s1 : The relative distance from origo to the point %% of the arrow head of the coordinate axis S1. %% If this is set to 1.0, the arrow head will %% point directly at the Poincare sphere. %% %% outside_distance_s2 : Same as above, except that this one controls %% the S2 coordinate axis instead. %% %% outside_distance_s3 : Same as above, except that this one controls %% the S3 coordinate axis instead. %% %% insidecolval : Specifies the shade of gray to use for the parts %% of the coordinate axes that are inside the Poin- %% care sphere. Values must be between 0 and 1, %% where: '0.0' <=> 'white'; '1.0' <=> 'black' %% behind_distance_s1 := -%f; behind_distance_s2 := -%f; behind_distance_s3 := -%f; outside_distance_s1 := %f; outside_distance_s2 := %f; outside_distance_s3 := %f; insidecolval := .85; %% '0.0' <=> 'white'; '1.0' <=> 'black' pickup pencircle scaled %f pt; %% %% Start with drawing the x-axis... %% x_bis_start := radius*behind_distance_s1*cosd(rot_psi)*cosd(rot_phi); y_bis_start := radius*behind_distance_s1*sind(rot_psi); z_bis_start := -radius*behind_distance_s1*cosd(rot_psi)*sind(rot_phi); x_bis_intersect := radius*cosd(rot_psi)*cosd(rot_phi); y_bis_intersect := radius*sind(rot_psi); z_bis_intersect := -radius*cosd(rot_psi)*sind(rot_phi); p := makepath makepen (y_bis_intersect,z_bis_intersect)-- (outside_distance_s1*y_bis_intersect, outside_distance_s1*z_bis_intersect); drawarrow p; S_1/S_0S_1 label.%s(btex $%s$ etex, (outside_distance_s1*y_bis_intersect, outside_distance_s1*z_bis_intersect)); %% %% ... then draw the y-axis ... %% x_bis_start := -radius*behind_distance_s2*sind(rot_psi)*cosd(rot_phi); y_bis_start := radius*behind_distance_s2*cosd(rot_psi); z_bis_start := radius*behind_distance_s2*sind(rot_psi)*sind(rot_phi); x_bis_intersect := -radius*sind(rot_psi)*cosd(rot_phi); y_bis_intersect := radius*cosd(rot_psi); z_bis_intersect := radius*sind(rot_psi)*sind(rot_phi); p := makepath makepen (y_bis_intersect,z_bis_intersect)-- (outside_distance_s2*y_bis_intersect, outside_distance_s2*z_bis_intersect); drawarrow p; S_2/S_0S_2 label.%s(btex $%s$ etex, (outside_distance_s2*y_bis_intersect, outside_distance_s2*z_bis_intersect)); %% %% ... then, finally, draw the z-axis. %% x_bis_start := radius*behind_distance_s3*sind(rot_phi); y_bis_start := 0.0; z_bis_start := radius*behind_distance_s3*cosd(rot_phi); x_bis_intersect := radius*sind(rot_phi); y_bis_intersect := 0.0; z_bis_intersect := radius*cosd(rot_phi); p := makepath makepen (y_bis_intersect,z_bis_intersect)-- (outside_distance_s3*y_bis_intersect, outside_distance_s3*z_bis_intersect); drawarrow p; S_3/S_0S_3 label.%s(btex $%s$ etex, (outside_distance_s3*y_bis_intersect, outside_distance_s3*z_bis_intersect)); %% %% Draw the shaded Poincare sphere projected on 2D screen coordinates %% for rho=0.0cm step delta_rho until rhostop: for phi=0.0 step delta_phi until phistop: rhomid := rho + delta_rho/2.0; phimid := phi + delta_phi/2.0; x1 := rho*cosd(phi); y1 := rho*sind(phi); x2 := (rho+delta_rho)*cosd(phi); y2 := (rho+delta_rho)*sind(phi); x3 := (rho+delta_rho)*cosd(phi+delta_phi); y3 := (rho+delta_rho)*sind(phi+delta_phi); x4 := rho*cosd(phi+delta_phi); y4 := rho*sind(phi+delta_phi); p:=makepath makepen ((x1,y1)--(x2,y2)--(x3,y3)--(x4,y4)--(x1,y1)); quot := (rhomid/radius); nx_object := quot*cosd(phimid); ny_object := quot*sind(phimid); nz_object := sqrt(1-quot*quot); prod:=nx_object*nx_source+ny_object*ny_source +nz_object*nz_source; if prod < 0.0: value := c1; else: value := c1 + c2*prod*prod; fi fill p withcolor value[black,white]; endfor endfor %% %% Parameters specifying the location of the light source; for Phong %% shading of the sphere. %% %% phi_source: Angle (in deg.) to light source counterclockwise %% 'from three o'clock', viewed from the observer. %% %% theta_source: Angle (in deg.) between light source and observer, %% seen from the centre of the sphere. %% %% Parameters specifying the shading 'intensity' in terms of maximum %% (for the highlighs) and minimum (for the deep shadowed regions) %% values for the Phong shading. '0.0' <=> 'black'; '1.0' <=> 'white' %% %% upper_value: Maximum value of whiteness. %% lower_value: Minimum value of whiteness. %% phi_source := %f; theta_source := %f; upper_value := %f; lower_value := %f; radius := scalefactor; delta_rho := radius/%f; delta_phi := 360.0/%f; beginfig(1); path p; path equator; transform T; c1:=lower_value; c2:=upper_value-lower_value; nx_source := sind(theta_source)*cosd(phi_source); ny_source := sind(theta_source)*sind(phi_source); nz_source := cosd(theta_source); phistop := 360.0; rhostop := radius - delta_rho/2.0; Usage: %s [options] where [options] include: -h, --help Show this help-message and exit clean. -v, --verbose Toggle verbose mode; show beautiful ASCII. Default: off. -s, --save_memory Toggle memory save mode; spare some RAM. Default: off. -V, --version Show version and exit clean. -f, --inputfile Read input Stokes-parameters from file . The input file may contain an arbitrary number of separate paths, and the format of the file is p [1:st triplet, path 1] [2:nd triplet, path 1] . . . [M:th triplet, path 1] q p [1:st triplet, path 2] . . . [N:th triplet, path 2] q . . . [etc.] Thus, each separate path should be defined by an initial 'p', after which each following row con- tains a triplet of Stokes parameters. After the Stokes parameter triplet, comments and additional information may be written (ignored by program) until linefeed. Finally, each separate path is is ended with a 'q' on a separate line. --paththickness Specifies the thickness in PostScript points (pt) of the path to draw. Default: = 1.0 [pt]. [1 pt == 1/72 inch] --draw_hidden_dashed Toggles between drawing of hidden parts of the specified path with dashed and solid lines. Default: off. (Solid lines) --draw_paths_as_arrows Draw all specified trajectories as arrowed curves, with arrowheads at the and point. This option is useful whenever one wish to, for example, show on the direction of evolution of a certain trajectory, or the direction of rotation of the Stokes vector in a circular path. With this option it is often useful to chop up the trajectory of the original input file into subtrajectories, so as to create multiple arrow heads in the same trajectory. See also the --reverse_arrow_paths option. --reverse_arrow_paths Reverse the direction of all arrows drawn using the --draw_paths_as_arrows option. This is useful if the sampled trajectory data are not ordered in the natural direction of trajectory traversal. --auxsource Causes the auxiliary file to be included at the end of the generated MetaPost source. Useful for including additional comments, labels etc. in the figure. --arrowthickness Analogous to the '--paththickness' option, but with the difference that this one applies to (eventually occuring) the thickness of additional arrows to be drawn with the '--arrow' option. Default: = 0.6 [pt]. --arrowheadangle Specifies the head angle of any arrows used in the mapping of Stokes parameters on the Poincare sphere. Notice that this does not affect the head angles of the arrows of the coordinate axes. Default value: 30 degrees. -b, --bezier Toggle Bezier mode, in which Bezier interpolation is used in order to obtain smooth paths for the input trajectory(-ies), specified with the '-f' option. Otherwise regular piecewise stright-line type lines are used. Default: off. -o, --outputfile Write output MetaPost-code [1] to file . -e, --epsoutput In addition to just generating MetaPost-code for the figure, also try to generate a complete EPS (Encapsulated PostScript) figure, using as the base name for the job. This option relies on system calls for TeX, MetaPost, and DVIPS, and relies on that they are properly installed in the system environment. The EPS output and the intermediate TeX, DVI, and and log files will from the base name be named .eps,.tex,.dvi, and .log, respectively. --psi, --rotatepsi When mapping Poincare-sphere and corresponding coordinate-system (S_1,S_2,S_3), first rotate angle psi == around the 'z'-axis (S_3). Default: -40.0 (Degrees) --phi, --rotatephi When mapping Poincare-sphere and corresponding coordinate-system (S_1,S_2,S_3), after the first rotation (psi above), rotate angle phi == around the 'y'-axis (S_2). Default: 15.0 (Degrees) --rhodivisor Number of segments in radial direction of the 2D- mapped Poincare sphere. Default: 50. --phidivisor Number of segments in tangential direction of the 2D-mapped Poincare sphere. Default: 80. --scalefactor Specifies the radius of the printed Poincare sphere (Encapsulated PostScript) in millimetres. --shading Specifies the minimum () and maximum () whiteness values of the Poincare sphere to draw (using the Phong shading algorithm). Here: == 0.0 corresponds to 'white' == 1.0 corresponds to 'white' Default values: == 0.65, == 0.99 --hiddengraytone Specifies the whiteness to be used in drawing trajectory parts that are hidden behind the Poincare sphere. == 0.0 corresponds to black, == 1.0 corresponds to white, --axislengths Specifies the lengths of negative and positive parts of the coordinate axes, on the form = with 'x' as the s1-axis, 'y' as the s2-axis, and 'z' as the s3-axis. All values are taken relative to the radius of the Poincare sphere; thus =1 correspond to the radius, while =1.5 corre- spond to an axis length such that 50 percent of the axis is showed outside the Poincare sphere. Default: = = = 0.3 (30 %%) = = = 1.5 (150 %%) --axislabels Specifies the labels of the coordinate axes, on the form = where , , and are strings to use for the s1-, s2-, and s3-labels, respectively, and where the strings , , determine the position of respective label, relative the end point of the arrow of respective axis. The label position is determined by the following syntax: lft Left rt Right top Top bot Bottom ulft Upper left urt Upper Right llft Lower left lrt Lower right The label strings should be expressed in plain TeX [2] mathmode syntax. Default: = $S_1$, = $S_2$, = $S_3$ Imortant note: No blank spaces are allowed in the strings. --draw_axes_inside Toggles drawing (with dashed lines) of coordinate axes inside Poincare sphere. Default: off. -n, --normalize Instead of making a trajectory plot of the para- meters (s1,s2,s3), contained in the file speci- fied by the '-f' option, instead use the norma- lized parameter (s1/s0,s2/s0,s3/s0), which for completely polarized light corresponds to a tra- jectory mapped directly on the Poincare sphere, without any deviations fromthe spheres surface. This option is particularly useful when only the state of polarization (and not the intensity) of the light is of interest. --arrow Display an arrow, in Stokes parameter space, from point , at the command-line specified as the triple of floats , to the point , similarly specified as . Useful for pointing out certain operation cycles in polarization domain, or just as an easy direct way of creating paths on the Poincare sphere without having to use external input files. The arrow is drawn as a circular arc onto the Poincare sphere, through the closest path between the points. The '--arrow' statement may appear repeated times,for producing multiple arrows. Currently there is a limit of 24 arrows in one single Poincare map (which should do for most people). The last argument is a pair of float values which determines the style of the drawn arrow. The pair should be specified as on the command-line. The first parameter determines the line-type of the arrow to draw. The rules are: -0.5 <= < 0.5 - Solid line 0.5 <= < 1.5 - Dashed line The second parameter, , determines the black- ness of the arrow to draw, where == 0 corre- sponds to white and == 1 to black. Suffix conventions of the files: .mp - MetaPost source code (ASCII) [1] .tex - TeX source code (ASCII) [2] .dvi - Device independent output file from TeX [2] .ps - PostScript [3] .eps - Encapsulated PostScript [3] References [1] For information on the MetaPost program for typesetting figures, see for example John Hobbys page, at http://cm.bell-labs.com/who/hobby/MetaPost.html. [2] For information on the TeX typesetting system, as well as references to the dvips program, see for example the homepage of the TeX Users Group, at http://www.tug.org. [3] For information on the PostScript programming language, see for example the homepage of Adobe Systems Inc., at http://www.adobe.com/products/postscript/main.html, or 'PostScript Language - Tutorial and Cookbook' (Addison-Wesley, Reading, Massachusetts, 1985), ISBN 0-201-10179-3. Please report bugs to Fredrik Jonsson Copyright (C) 1997-2005, Fredrik Jonsson This is %s v.%s. 1.22Copyright (C) 1997-2005, Fredrik Jonsson %% %% Draw the paths of the arrows specified by the user. %% pickup pencircle scaled 0.5pt; p := makepath makepen ..(%f,%f); drawarrow p scaled radius withcolor %f [white,black]; drawarrow p scaled radius dashed evenly withcolor %f [white,black]; draw p scaled radius withcolor %f [white,black]; draw p scaled radius dashed evenly withcolor %f [white,black]; %s: In get_tickmark_screen_coordinates: %s: Index k=%ld out of valid range! p:=makepath makepen (%f,%f)--(%f,%f); draw p scaled radius; draw p scaled radius withcolor %f [black,white]; label.top label.ulft label.lft label.llft label.bot label.lrt label.rt label.urt%s: add_scanned_labels: Invalid labelpos (%d) detected at label No %ld %s: add_scanned_labels: Labelstring is "$ (btex etex,(%f,%f)*radius); %s: Error in routine point_just_became_visible()! %s: Index %ld is out of range of current trajectory. %s: (Maximum possible index is %ld.) %s: Error in routine point_just_became_hidden()! p := makepath makepen --(%1.4f,%1.4f) drawarrow reverse p scaled radius drawarrow p scaled radius dashed evenly withcolor black; withcolor black; %s: Error in add_scanned_trajectory: Invalid viewtype value! (%d) %lf%s: Error: Faulty S1 in line %ld of trajectory file. %s: Error: Faulty S2 in line %ld of trajectory file. %s: Error: Faulty S3 in line %ld of trajectory file. %s: Scanning label text starting at line %ld of trajectory file %stopulftlftllftbotlrgtrgturgt%s: Invalid string '%s' found at line %ld of trajectory file. %s: Scanned label positioning '%s' at line %ld of trajectory file %s: Error in line %ld of trajectory file. [ch=%c] %s: Use enclosing quote marks (") around label text. %s: Error: Reached end of line %ld without closing quote mark. %s: (Check this label statement.) %s: Scanning label No %d %s: Error in scan_ticklabel routine: %s: Index number %d out of range. %% %% Draw the 'equators' of the Poincare sphere %% equator := halfcircle scaled (2.0*radius); eqcolval := .45; %% '0.0' <=> 'white'; '1.0' <=> 'black' %% %% Draw equator $S_3=0$... %% T := identity yscaled sind(rot_phi) rotated 180.0; draw equator transformed T withcolor eqcolval [white,black]; %% %% ... then equator $S_2=0$... %% T := identity yscaled (cosd(rot_phi)*sind(rot_psi)) rotated (270.0 + alpha); draw equator transformed T withcolor eqcolval [white,black]; %% %% ... and finally equator $S_1=0$. %% T := identity yscaled (cosd(rot_phi)*cosd(rot_psi)) rotated (270.0 - beta); draw equator transformed T withcolor eqcolval [white,black]; %% %% Some handy parameters used in calculations below. %% delta_rot_psi := %f; %% Additional 1st rotation angle round z-axis delta_rot_phi := %f; %% Additional 2nd rotation angle round y-axis delta_alpha := %f; %% == arctan(sin(rot_phi)*tan(rot_psi)) delta_beta := %f; %% == arctan(sin(rot_phi)/tan(rot_psi)) %% %% Draw the additional 'equators' of the Poincare sphere, %% corresponding to a system rotated by the Euler-angles %% delta_psi=, delta_phi= %% equator := halfcircle scaled (2.0*radius); eqcolval := .45; %% '0.0' <=> 'white'; '1.0' <=> 'black' %% %% Draw equator $W_3=0$... %% T := identity yscaled sind(rot_phi+delta_rot_phi) rotated 180.0; draw equator transformed T withcolor eqcolval [white,black]; %% %% ... then equator $W_2=0$... %% T := identity yscaled (cosd(rot_phi + delta_rot_phi) *sind(rot_psi + delta_rot_psi)) rotated (270.0 + delta_alpha); draw equator transformed T withcolor eqcolval [white,black]; %% %% ... and finally equator $W_1=0$. %% T := identity yscaled (cosd(rot_phi + delta_rot_phi) *cosd(rot_psi + delta_rot_psi)) rotated (270.0 - delta_beta); draw equator transformed T withcolor eqcolval [white,black]; scalefactor := %f mm; rot_psi := %f; %% Rotation angle round z-axis (first rotation) rot_phi := %f; %% Rotation angle round y-axis (second rotation) alpha := %f; %% == arctan(sin(rot_phi)*tan(rot_psi)) beta := %f; %% == arctan(sin(rot_phi)/tan(rot_psi)) %% This Filename: %s [MetaPost source] %% Creation time: %s%% %% Copyright (C) 1997-2005, Fredrik Jonsson %% %% Input Filename [Stokes parameters]: %s %% This MetaPost source code was automatically generated by %s %% Full set of command line options that generated this code: %% %s %% %% Description: Map of Stokes parameters, visualized as trajectories %% onto the Poincare sphere. This file contains MetaPost %% source code, to be compiled with John Hobby's MetaPost %% compiler or used with anything that understands MetaPost %% source code. %% %% If you want to create PostScript output, or include the resulting %% output in a TeX document, this example illustrates the procedure, %% assuming 'poincaremap.mp' to be the name of the file containing the %% MetaPost code to be visualized: (commands run on command-line) %% %% mp poincaremap.mp; %% echo "\input epsf\centerline{\epsfbox{poincaremap.1}}\bye" > tmp.tex; %% tex tmp.tex; %% dvips tmp.dvi -o poincaremap.ps; %% %% Here, the first command compiles the MetaPost source code, and leaves %% an Encapsulated PostScript file named 'poincaremap.1', containing TeX %% control codes for characters, etc. This file does not contain any %% definitions for characters or TeX-specific items, and it cannot be %% viewed or printed simply as is stands; it must rather be included into %% TeX code in order to provide something useful. %% The second command creates a temporary minimal TeX-file 'tmp.tex', %% that only includes the previously generated Encapsulated PostScript %% code. %% The third command compiles the TeX-code into device-independent, %% or DVI, output, stored in the file 'tmp.dvi'. %% Finally, the last command converts the DVI output into a free- %% standing PostScript file 'poincaremap.ps', to be printed or viewed %% with some PostScript viewer, such as GhostView. %% %s: No input trajectory file specified. r%s: Couldn't open trajectory file %s for reading %s: Please check -f or --inputfile option arguments %s: Reading Stokes parameters from %s wCouldn't open file %s for output! %s: Writing MetaPost code to %s %s: You specified the following arrows to draw: %s: Arrow No. %d: (%1.2f,%1.2f,%1.2f) --> (%1.2f,%1.2f,%1.2f) [%1.2f,%1.2f] aout.mpaout%s: Allocation failure 1 in cmatrix() %s: Allocation failure 2 in cmatrix() %s: Allocation failure 1 in matrix() %s: Allocation failure 2 in matrix() -v--verbose--save_memory-n--normalize--paththickness%s: Couldn't get path thickness! --draw_hidden_dashed--draw_paths_as_arrows--reverse_arrow_paths--arrowthickness%s: Couldn't get arrow thickness in [pt]! --arrowheadangle%s: Couldn't get arrow head angle in [deg]! -b--bezier-h--help-V--version-f--inputfile-e--epsoutput-o--outputfile--auxsource--psi--rotatepsi%s: Couldn't get value for psi (rotation round z)! --phi--rotatephi%s: Couldn't get value for phi (rotation round y)! --rhodivisor%s: Couldn't get value for rho divisor! --phidivisor%s: Couldn't get value for phi divisor! --scalefactor%s: Couldn't get value for scalefactor! --hiddengraytone%s: Couldn't get whiteness value of hidden parts! --shading%s: Couldn't get lower value of sphere whiteness! %s: Couldn't get upper value of sphere whiteness! --axislengths%s: Couldn't get minimum for s1 axis! %s: Check the '--axislength' option %s: Couldn't get maximum for s1 axis! %s: Couldn't get minimum for s2 axis! %s: Couldn't get maximum for s2 axis! %s: Couldn't get minimum for s3 axis! %s: Couldn't get maximum for s3 axis! --axislabels--draw_axes_inside--xtracoordsys%s: Couldn't get delta_rot_psi! %s: Check the '--xtracoordsys' option %s: (first argument) %s: Couldn't get delta_rot_phi! %s: (second argument) --xtracoordsys_axislabel_x--xtracoordsys_axislabel_y--xtracoordsys_axislabel_z--xtracoordsys_axislengths%s: Couldn't get minimum for x axis! %s: Check the '--xtracoordsys_axislengths' option%s: Couldn't get maximum for x axis! %s: Couldn't get minimum for y axis! %s: Couldn't get maximum for y axis! %s: Couldn't get minimum for z axis! %s: Couldn't get maximum for z axis! --arrow%s: Couldn't get S1 coordinate for starting point of arrow No. %d! %s: Couldn't get S2 coordinate for starting point of arrow No. %d! %s: Couldn't get S3 coordinate for starting point of arrow No. %d! %s: Couldn't get S1 coordinate for ending point of arrow No. %d! %s: Couldn't get S2 coordinate for ending point of arrow No. %d! %s: Couldn't get S3 coordinate for ending point of arrow No. %d! %s: Couldn't get line type of arrow No. %d! %s: Couldn't get blackness of arrow No. %d! %s: Error: Specified option '%s' invalid! Error: Allocation failure in dvector() Error: Allocation failure in lvector() Error: Allocation failure in ivector() Error: Allocation failure in svector() oldahangle:=ahangle; ahangle:=%f; pickup pencircle scaled %f pt; %s: New trajectory detected at line %ld %s: Begin-point label detected at line %ld %s: Parsed begin label string '' [%d characters] %s: Scanning Stokes trajectory starting at line %ld. %s: End of Stokes trajectory detected at line %ld. %s: End-point label detected at line %ld %s: Parsed end label string ' ahangle:=oldahangle; %s: Error! Could not open file %s for reading. %%BoundingBox:%ld%s: Error! End of file reached without finding any %%%%BoundingBox statement! %s: (Does %s really contain Encapsulated PostScript?) mp -job-name %s %s;%s: Executing system command: %s tex -job-name %s '\input epsf\nopagenumbers\centerline{\epsfbox{%s.1}}\bye';dvips -D1200 -E %s.dvi -o %s.eps%s.eps%s: Bounding box of %s: width=%-4.2f mm (%ld pts), height=%-4.2f mm (%ld pts) 44X!a LL|L '@`P #$*+,,-P.1@2`203P334067`8099: ===[]fhzRx , [ ,LH  4|   ,2 ,Q 4M 4Ly ,@ , ,P ,Q 4D0  ,| 4h  4  4" 4T'1  4(H  40, 4, 44@-  4l(0  40  4H1d  42  ,Lh33 ,|x33 ,33 43C ,33 ,D33 ,t33 43 4h4e 47q ,L7 4|7  ,p8 ,`8k 48  4LH9 ,: 4@;Y  4h<  4$ =x 4\ H=  , >q 4 P@) 4 H@) ,4 @@ ,d @ , @ , ? 4 ?C  4, @G  4d A , h\^ , \^ , \^ ,, \J 4\ ^ 4 d 4 f  4 h 08@H}}}}}}}}}}~ ~~~(~2~<~F~P~Z~d~n~x~~~~~"UF`@__DefaultRuneLocaleQr8@___stack_chk_guard@___stderrp@___stdoutp@dyld_stub_binderrX@___maskruner`@___sprintf_chkrh@___stack_chk_failrp@___strcpy_chkrx@_atanr@_cosr@_ctimer@_exitr@_fcloser@_fopenr@_fprintfr@_fputcr@_freer@_fscanfr@_fseekr@_fwriter@_getcr@_mallocr@_memcpyr@_printfr@_sinr@_sscanfr@_strcmpr@_systemr@_tanr@_timer@_ungetc_ start_sredwrite_gevisibleadd_pentickmarkbeginlabel new_trajectory open_ i free_ cmatrix ma lvector NXArg mh_execute_header_progname vectorhowort_out_visible_and_hiddencan_trip_away_path  set_stokes_trajectory_structadaway_comments_and_blanks  isplay_vector stokes_trajectoryparsed_command_line_optionarrow_specs "$included_auxiliary_sourceadditional_coordinate_axesse header $coordinate_axesarrows%*haded_spherephere_shading_specscanned_trajectories /0somehelp_banner2;t_nerate_eps_image screen_coordinatestickmark_screen_coordinates<>?AQsvisible_subtrajectorieshidden_subtrajectoriescanned_ubtrajectorytlabelsickmarksrajectory\^oint_just_became_a rogname visiblehiddeneghnpqfor_label endlabel ticklabel beginlabel stokes_triplettickmark boundingbox tdviron label_of_trajectory wlabel wxxlabel yyzz|thcharacter rse_command_line quators uler_angle_specs infile outfile nitialize_ vector variables stoke_trajectory cmatrix matrix dvector lvector ivector svector Кtrix in Нc v ȢТ@`@` ` @@@P@@@  p005```  0 8 H%908UP/i.8@4`7<MpI @1j:<M;W @`Ln@M|`MPMMpM@v(k`J3k<0kEPxKNS=c HpH~ PC32 PP=`B/B>@tT`:m@<A> BC<;@( Acz`DEF`@mP%9ETfy$,17?IJKOPQRSTUVWXYZ[\]^_`abcdefg@HLMNIJKOPQRSTUVWXYZ[\]^_`abcdef _pvars_NXArgc_NXArgv___progname__mh_execute_header_add_hidden_subtrajectories_add_scanned_labels_add_scanned_tickmarks_add_scanned_trajectory_add_subtrajectory_add_visible_subtrajectories_beginlabel_cmatrix_display_arrow_specs_display_parsed_command_line_option_display_stokes_trajectory_dvector_end_of_trajectory_endlabel_environ_free_cmatrix_free_dvector_free_ivector_free_lvector_free_matrix_free_svector_generate_eps_image_get_screen_coordinates_get_tickmark_screen_coordinates_initialize_stoke_trajectory_initialize_variables_ivector_lvector_main_matrix_new_trajectory_open_infile_open_outfile_parse_command_line_pathcharacter_point_just_became_hidden_point_just_became_visible_progname_readaway_comments_and_blanks_reset_stokes_trajectory_struct_scan_beginlabel_scan_endlabel_scan_for_boundingbox_scan_for_stokes_triplet_scan_for_tickmark_scan_for_tickmarklabel_scan_label_scan_ticklabel_show_banner_showsomehelp_sort_out_visible_and_hidden_strip_away_path_svector_tickmark_tickmarklabel_visible_write_additional_arrows_write_additional_coordinate_axes_write_coordinate_axes_write_equators_write_euler_angle_specs_write_header_write_included_auxiliary_source_write_scanned_trajectories_write_shaded_sphere_write_sphere_shading_specsstart__DefaultRuneLocale___maskrune___sprintf_chk___stack_chk_fail___stack_chk_guard___stderrp___stdoutp___strcpy_chk_atan_cos_ctime_exit_fclose_fopen_fprintf_fputc_free_fscanf_fseek_fwrite_getc_malloc_memcpy_printf_sin_sscanf_strcmp_system_tan_time_ungetcdyld_stub_binder