diff options
Diffstat (limited to 'Master/texmf-dist/dvips/pstricks')
-rw-r--r-- | Master/texmf-dist/dvips/pstricks/pst-tools.pro | 216 | ||||
-rw-r--r-- | Master/texmf-dist/dvips/pstricks/pstricks.pro | 91 |
2 files changed, 16 insertions, 291 deletions
diff --git a/Master/texmf-dist/dvips/pstricks/pst-tools.pro b/Master/texmf-dist/dvips/pstricks/pst-tools.pro deleted file mode 100644 index d463d158ff1..00000000000 --- a/Master/texmf-dist/dvips/pstricks/pst-tools.pro +++ /dev/null @@ -1,216 +0,0 @@ -% $Id: pst-tools.pro 622 2012-01-01 15:36:14Z herbert $ -% -%% PostScript tools prologue for pstricks.tex. -%% Version 0.02, 2012/01/01 -%% -%% This program can be redistributed and/or modified under the terms -%% of the LaTeX Project Public License Distributed from CTAN archives -%% in directory macros/latex/base/lppl.txt. -% -% -/Pi2 1.57079632679489661925640 def -/factorial { % n on stack, returns n! - dup 0 eq { 1 }{ - dup 1 gt { dup 1 sub factorial mul } if } - ifelse } def -% -/MoverN { % m n on stack, returns the binomial coefficient m over n - 2 dict begin - /n exch def /m exch def - n 0 eq { 1 }{ - m n eq { 1 }{ - m factorial n factorial m n sub factorial mul div } ifelse } ifelse - end -} def -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% subroutines for complex numbers, given as an array [a b] -% which is a+bi = Real+i Imag -% -/cxadd { % [a1 b1] [a2 b2] = [a1+a2 b1+b2] - dup 0 get % [a1 b1] [a2 b2] a2 - 3 -1 roll % [a2 b2] a2 [a1 b1] - dup 0 get % [a2 b2] a2 [a1 b1] a1 - 3 -1 roll % [a2 b2] [a1 b1] a1 a2 - add % [a2 b2] [a1 b1] a1+a2 - 3 1 roll % a1+a2 [a2 b2] [a1 b1] - 1 get % a1+a2 [a2 b2] b1 - exch 1 get % a1+a2 b1 b2 - add 2 array astore -} def -% -/cxneg { % [a b] - dup 1 get % [a b] b - exch 0 get % b a - neg exch neg % -a -b - 2 array astore -} def -% -/cxsub { cxneg cxadd } def % same as negative addition -% -% [a1 b1][a2 b2] = [a1a2-b1b2 a1b2+b1a2] = [a3 b3] -/cxmul { % [a1 b1] [a2 b2] - dup 0 get % [a1 b1] [a2 b2] a2 - exch 1 get % [a1 b1] a2 b2 - 3 -1 roll % a2 b2 [a1 b1] - dup 0 get % a2 b2 [a1 b1] a1 - exch 1 get % a2 b2 a1 b1 - dup % a2 b2 a1 b1 b1 - 5 -1 roll dup % b2 a1 b1 b1 a2 a2 - 3 1 roll mul % b2 a1 b1 a2 b1a2 - 5 -2 roll dup % b1 a2 b1a2 b2 a1 a1 - 3 -1 roll dup % b1 a2 b1a2 a1 a1 b2 b2 - 3 1 roll mul % b1 a2 b1a2 a1 b2 a1b2 - 4 -1 roll add % b1 a2 a1 b2 b3 - 4 2 roll mul % b1 b2 b3 a1a2 - 4 2 roll mul sub % b3 a3 - exch 2 array astore -} def -% -% [a b]^2 = [a^2-b^2 2ab] = [a2 b2] -/cxsqr { % [a b] square root - dup 0 get exch 1 get % a b - dup dup mul % a b b^2 - 3 -1 roll % b b^2 a - dup dup mul % b b^2 a a^2 - 3 -1 roll sub % b a a2 - 3 1 roll mul 2 mul % a2 b2 - 2 array astore -} def -% -/cxsqrt { % [a b] -% dup cxnorm sqrt /r exch def -% cxarg 2 div RadtoDeg dup cos r mul exch sin r mul cxmake2 - cxlog % log[a b] - 2 cxrdiv % log[a b]/2 - aload pop exch % b a - 2.781 exch exp % b exp(a) - exch cxconv exch % [Re +iIm] exp(a) - cxrmul % -} def -% -/cxarg { % [a b] - aload pop % a b - exch atan % arctan b/a - DegtoRad % arg(z)=atan(b/a) -} def -% -% log[a b] = [a^2-b^2 2ab] = [a2 b2] -/cxlog { % [a b] - dup % [a b][a b] - cxnorm % [a b] |z| - log % [a b] log|z| - exch % log|z|[a b] - cxarg % log|z| Theta - cxmake2 % [log|z| Theta] -} def -% -% square of magnitude of complex number -/cxnorm2 { % [a b] - dup 0 get exch 1 get % a b - dup mul % a b^2 - exch dup mul add % a^2+b^2 -} def -% -/cxnorm { % [a b] - cxnorm2 sqrt -} def -% -/cxconj { % conjugent complex - dup 0 get exch 1 get % a b - neg 2 array astore % [a -b] -} def -% -/cxre { 0 get } def % real value -/cxim { 1 get } def % imag value -% -% 1/[a b] = ([a -b]/(a^2+b^2) -/cxrecip { % [a b] - dup cxnorm2 exch % n2 [a b] - dup 0 get exch 1 get % n2 a b - 3 -1 roll % a b n2 - dup % a b n2 n2 - 4 -1 roll exch div % b n2 a/n2 - 3 1 roll div % a/n2 b/n2 - neg 2 array astore -} def -% -/cxmake1 { 0 2 array astore } def % make a complex number, real given -/cxmake2 { 2 array astore } def % dito, both given -% -/cxdiv { cxrecip cxmul } def -% -% multiplikation by a real number -/cxrmul { % [a b] r - exch aload pop % r a b - 3 -1 roll dup % a b r r - 3 1 roll mul % a r b*r - 3 1 roll mul % b*r a*r - exch 2 array astore % [a*r b*r] -} def -% -% division by a real number -/cxrdiv { % [a b] r - 1 exch div % [a b] 1/r - cxrmul -} def -% -% exp(i theta) = cos(theta)+i sin(theta) polar<->cartesian -/cxconv { % theta - RadtoDeg dup sin exch cos cxmake2 -} def - -%%%%% ### bubblesort ### -%% syntax : array bubblesort --> array2 trie par ordre croissant -%% code de Bill Casselman -%% http://www.math.ubc.ca/people/faculty/cass/graphics/text/www/ -/bubblesort { % on stack must be an array [ ... ] -4 dict begin - /a exch def - /n a length 1 sub def - n 0 gt { - % at this point only the n+1 items in the bottom of a remain to - % the sorted largest item in that blocks is to be moved up into - % position n - n { - 0 1 n 1 sub { - /i exch def - a i get a i 1 add get gt { - % if a[i] > a[i+1] swap a[i] and a[i+1] - a i 1 add - a i get - a i a i 1 add get - % set new a[i] = old a[i+1] - put - % set new a[i+1] = old a[i] - put - } if - } for - /n n 1 sub def - } repeat - } if - a % return the sorted array -end -} def -% -/concatstringarray{ % [(a) (b) ... (z)] --> (ab...z) 20100422 - 0 1 index { length add } forall - string - 0 3 2 roll - { 3 copy putinterval length add }forall - pop -} bind def -% -/dot2comma {% on stack a string (...) - 2 dict begin - /Output exch def - 0 1 Output length 1 sub { - /Index exch def - Output Index get 46 eq { Output Index 44 put } if - } for - Output - end -} def -% -%-----------------------------------------------------------------------------% -% END pst-tools.pro diff --git a/Master/texmf-dist/dvips/pstricks/pstricks.pro b/Master/texmf-dist/dvips/pstricks/pstricks.pro index 282032abc0d..007f1ddfc47 100644 --- a/Master/texmf-dist/dvips/pstricks/pstricks.pro +++ b/Master/texmf-dist/dvips/pstricks/pstricks.pro @@ -1,7 +1,7 @@ -% $Id: pstricks.pro 700 2012-08-13 21:04:25Z herbert $ +% $Id: pstricks.pro 714 2012-10-16 14:28:29Z herbert $ % %% PostScript prologue for pstricks.tex. -%% Version 1.16, 2012/09/07 +%% Version 1.15, 2012/10/16 %% %% This program can be redistributed and/or modified under the terms %% of the LaTeX Project Public License Distributed from CTAN archives @@ -14,21 +14,6 @@ systemdict /.setopacityalpha known not {/.setopacityalpha { pop } def } if systemdict /.setblendmode known not {/.setblendmode { pop } def } if systemdict /.setshapealpha known not {/.setshapealpha { pop } def } if % -/PtoC { 2 copy cos mul 3 1 roll sin mul } def % Polar to Cartesian -/setRand { realtime srand } def -/Rand { rand 4294967295 div } def % a real random number -/Pyth { dup mul exch dup mul add sqrt } def % Pythagoras, expects 2 parameter -/Pyth2 { % Pythagoras, xA yA xB yB - 3 -1 roll % xA xB yB yA - sub % xA xB yB-yA - 3 1 roll % yB-yA xA xB - sub % yB-yA xA-xB - Pyth } def -/RadtoDeg { 180 mul Pi div } bind def % convert from radian to degrees -/DegtoRad { Pi mul 180 div } bind def % viceversa -/Acos {dup dup mul neg 1 add dup 0 lt { % arc cos, returns 0 when negative root - pop pop 0 }{ sqrt exch atan} ifelse } def -% /tx@Dict 200 dict def % the main PSTricks dictionary tx@Dict begin /ADict 25 dict def % The arrow dictionaray @@ -44,16 +29,24 @@ tx@Dict begin /Sqrt { dup 0 lt { pop 0 } { sqrt } ifelse } def % return 0 for negative arguments /Atan { /atan load stopped { pop pop 0 } if } def % return 0 if atan not known /ATAN1 {neg -1 atan 180 sub } def % atan(x) (only one parameter) -/Div { % control the division - dup 0 eq { pop 0 lt { -1e30 } % -y/0 - { 1e30 } ifelse } % +y/0 - { div } ifelse } def +/Div { dup 0 eq { pop } { div } ifelse } def % control the division /tan { dup cos abs 1.e-10 lt { pop 1.e10 } % return 1.e10 as infinit { dup sin exch cos div } ifelse % default sin/cos } def /Tan { dup sin exch cos Div } def % sin(x)/cos(x) x in degrees +/Acos {dup dup mul neg 1 add dup 0 lt { % arc cos, returns 0 when negative root + pop pop 0 }{ sqrt exch atan} ifelse } def /NET { neg exch neg exch T } def % change coordinate system to the negative one +/Pyth { dup mul exch dup mul add sqrt } def % Pythagoras, expects 2 parameter +/Pyth2 { % Pythagoras, xA yA xB yB + 3 -1 roll % xA xB yB yA + sub % xA xB yB-yA + 3 1 roll % yB-yA xA xB + sub % yB-yA xA-xB + Pyth } def +/PtoC { 2 copy cos mul 3 1 roll sin mul } def % Polar to Cartesian +/Rand { rand 4294967295 div } def % a real random number %----------------- hv added 20050516 --------------- /PiDiv2 1.57079632680 def /Pi 3.14159265359 def @@ -61,6 +54,8 @@ tx@Dict begin /Euler 2.71828182846 def %/e Euler bind def % +/RadtoDeg { 180 mul Pi div } bind def % convert from radian to degrees +/DegtoRad { Pi mul 180 div } bind def % viceversa %----------------- hv end--------------------------- /PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def } def % @@ -1100,60 +1095,6 @@ dup angle0 sub dup abs 180 gt { 180 add 360 div floor 360 mul sub } { pop } ifel /IfVisible true def } def % -%%%%%%%%%%%%%%%%% tools %%%%%%%%%%%%%%%%%%%%%%%%% -%%%%% ### bubblesort ### -%% syntax : array bubblesort --> array2 trie par ordre croissant -%% code de Bill Casselman -%% http://www.math.ubc.ca/people/faculty/cass/graphics/text/www/ -/bubblesort { -4 dict begin - /a exch def - /n a length 1 sub def - n 0 gt { - % at this point only the n+1 items in the bottom of a remain to - % the sorted largest item in that blocks is to be moved up into - % position n - n { - 0 1 n 1 sub { - /i exch def - a i get a i 1 add get gt { - % if a[i] > a[i+1] swap a[i] and a[i+1] - a i 1 add - a i get - a i a i 1 add get - % set new a[i] = old a[i+1] - put - % set new a[i+1] = old a[i] - put - } if - } for - /n n 1 sub def - } repeat - } if - a -end -} def -% -% -/concatstringarray{ % [(a) (b) ... (z)] --> (ab...z) 20100422 - 0 1 index { length add } forall - string - 0 3 2 roll - { 3 copy putinterval length add }forall - pop -} bind def -% -/dot2comma {% on stack a string (...) - 2 dict begin - /Output exch def - 0 1 Output length 1 sub { - /Index exch def - Output Index get 46 eq { Output Index 44 put } if - } for - Output - end -} def -% end %-----------------------------------------------------------------------------% % |