summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/dvips/pst-eucl/pst-eucl.pro
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/dvips/pst-eucl/pst-eucl.pro')
-rw-r--r--Master/texmf-dist/dvips/pst-eucl/pst-eucl.pro139
1 files changed, 137 insertions, 2 deletions
diff --git a/Master/texmf-dist/dvips/pst-eucl/pst-eucl.pro b/Master/texmf-dist/dvips/pst-eucl/pst-eucl.pro
index d45dfca68a9..3d2fe93c80c 100644
--- a/Master/texmf-dist/dvips/pst-eucl/pst-eucl.pro
+++ b/Master/texmf-dist/dvips/pst-eucl/pst-eucl.pro
@@ -1,6 +1,6 @@
%!
% PostScript prologue for pst-eucl.tex.
-% Version 1.01 2012/09/21
+% Version 1.02 2012/11/21
% For distribution, see pstricks.tex.
%
/tx@EcldDict 40 dict def tx@EcldDict begin
@@ -69,7 +69,7 @@
%Dc neg dup Db mul exch Da mul 2 copy 0 0
%ABDist dup CR gt { pop pop pop 0 0 0 0 }
%{ ZeroEq { pop pop Db Da } if Atan /alpha exch def
- Dc abs CR gt { 0 0 0 0 }
+ Dc abs CR gt { 0 0 0 0 }
{ Db neg Da neg Atan /alpha exch def
Dc CR div dup dup mul 1 exch sub sqrt exch Atan /beta exch def
alpha beta add dup cos CR mul exch sin CR mul
@@ -129,5 +129,140 @@
} def
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
/fgeval { /x exch def f g sub } bind def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% calculate the line coefficents Ax+By+C=0
+%% x1 y1 x2 y2 -> A B C
+/LineCoefABC {
+ 0 index 3 index sub % A=y2-y1
+ 4 index 3 index sub % B=x1-x2
+ 3 index 5 index mul 6 index 4 index mul sub % C=x2y1-x1y2
+ 7 3 roll pop pop pop pop
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% calculate the 2-order determinant
+%% |a11 a12|
+%% |a21 a22|
+%% a11 a12, a21 a22 -> X
+/DeterminantTwo {
+ 4 1 roll mul 3 1 roll mul exch sub
+} def
+%% calculate the 3-order determinant
+%% |a11 a12 a13|
+%% |a21 a22 a23|
+%% |a31 a32 a33|
+%% 8 7 6 5 4 3 2 1 0
+%% a11 a12 a13, a21 a22 a23, a31 a32 a33 -> X
+/DeterminantThree {
+ % |a22 a23, a32 a33| * (-1)^(1+1)a11
+ 8 index abs 1E-5 lt { %a11=0
+ 0
+ } {
+ 4 index 4 index 3 index 3 index DeterminantTwo
+ 9 index mul
+ } ifelse
+ % |a12 a13, a32 a33| * (-1)^(1+2)a21
+ 6 index abs 1E-5 lt { %a12=0
+ 0 sub
+ } {
+ 8 index 8 index 4 index 4 index DeterminantTwo
+ 7 index mul sub
+ } ifelse
+ % |a12 a13, a22 a23| * (-1)^(1+3)a31
+ 3 index abs 1E-5 lt { %a13=0
+ 0 add
+ } {
+ 8 index 8 index 7 index 7 index DeterminantTwo
+ 4 index mul add
+ } ifelse
+ 10 1 roll pop pop pop pop pop pop pop pop pop
+} def
+%% calculate the 4-order determinant
+%% |a11 a12 a13 a14|
+%% |a21 a22 a23 a24|
+%% |a31 a32 a33 a34|
+%% |a41 a42 a43 a44|
+%% 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
+%% a11 a12 a13 a14, a21 a22 a23 a24, a31 a32 a33 a34, a41 a42 a43 a44 -> X
+/DeterminantFour {
+ % |a22 a23 a24, a32 a33 a34, a42 a43 a44| * (-1)^(1+1)a11
+ 15 index abs 1E-5 lt { %a11=0
+ 0
+ } {
+ 10 index 10 index 10 index 9 index 9 index 9 index 8 index 8 index 8 index DeterminantThree
+ 16 index mul
+ } ifelse
+ % |a12 a13 a14, a32 a33 a34, a42 a43 a44| * (-1)^(1+2)a21
+ 12 index abs 1E-5 lt { %a21=0
+ 0 sub
+ } {
+ 15 index 15 index 15 index 10 index 10 index 10 index 9 index 9 index 9 index DeterminantThree
+ 13 index mul sub
+ } ifelse
+ % |a12 a13 a14, a22 a23 a24, a42 a43 a44| * (-1)^(1+3)a31
+ 8 index abs 1E-5 lt { %a31=0
+ 0 add
+ } {
+ 15 index 15 index 15 index 14 index 14 index 14 index 9 index 9 index 9 index DeterminantThree
+ 9 index mul add
+ } ifelse
+ % |a12 a13 a14, a22 a23 a24, a32 a33 a34| * (-1)^(1+4)a41
+ 4 index abs 1E-5 lt { %a41=0
+ 0 sub
+ } {
+ 15 index 15 index 15 index 14 index 14 index 14 index 13 index 13 index 13 index DeterminantThree
+ 5 index mul sub
+ } ifelse
+ 17 1 roll pop pop pop pop pop pop pop pop
+ pop pop pop pop pop pop pop pop
+} def
+%% calculate the 5-order determinant
+%% |a11 a12 a13 a14 a15|
+%% |a21 a22 a23 a24 a25|
+%% |a31 a32 a33 a34 a35|
+%% |a41 a42 a43 a44 a45|
+%% |a51 a52 a53 a54 a55|
+%% 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
+%% a11 a12 a13 a14 a15, a21 a22 a23 a24 a25, a31 a32 a33 a34 a35, a41 a42 a43 a44 a45, a51 a52 a53 a54 a55-> X
+/DeterminantFive {
+ % |a22 a23 a24 a25, a32 a33 a34 a35, a42 a43 a44 a45, a52 a53 a54 a55| * (-1)^(1+1)a11
+ 24 index abs 1E-5 lt { %a11=0
+ 0
+ } {
+ 18 index 18 index 18 index 18 index 17 index 17 index 17 index 17 index 16 index 16 index 16 index 16 index 15 index 15 index 15 index 15 index DeterminantFour
+ 25 index mul
+ } ifelse
+ % |a12 a13 a14 a15, a32 a33 a34 a35, a42 a43 a44 a45, a52 a53 a54 a55| * (-1)^(1+2)a21
+ 20 index abs 1E-5 lt { %a21=0
+ 0 sub
+ } {
+ 24 index 24 index 24 index 24 index 18 index 18 index 18 index 18 index 17 index 17 index 17 index 17 index 16 index 16 index 16 index 16 index DeterminantFour
+ 21 index mul sub
+ } ifelse
+ % |a12 a13 a14 a15, a22 a23 a24 a25, a42 a43 a44 a45, a52 a53 a54 a55| * (-1)^(1+3)a31
+ 15 index abs 1E-5 lt { %a31=0
+ 0 add
+ } {
+ 24 index 24 index 24 index 24 index 23 index 23 index 23 index 23 index 17 index 17 index 17 index 17 index 16 index 16 index 16 index 16 index DeterminantFour
+ 16 index mul add
+ } ifelse
+ % |a12 a13 a14 a15, a22 a23 a24 a25, a32 a33 a34 a35, a52 a53 a54 a55| * (-1)^(1+4)a41
+ 10 index abs 1E-5 lt { %a41=0
+ 0 sub
+ } {
+ 24 index 24 index 24 index 24 index 23 index 23 index 23 index 23 index 22 index 22 index 22 index 22 index 16 index 16 index 16 index 16 index DeterminantFour
+ 11 index mul sub
+ } ifelse
+ % |a12 a13 a14 a15, a22 a23 a24 a25, a32 a33 a34 a35, a42 a43 a44 a45| * (-1)^(1+5)a51
+ 5 index abs 1E-5 lt { %a51=0
+ 0 add
+ } {
+ 24 index 24 index 24 index 24 index 23 index 23 index 23 index 23 index 22 index 22 index 22 index 22 index 21 index 21 index 21 index 21 index DeterminantFour
+ 6 index mul add
+ } ifelse
+ 26 1 roll pop pop pop pop pop pop pop pop pop pop
+ pop pop pop pop pop pop pop pop pop pop
+ pop pop pop pop pop
+} def
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end
% END ps-euclide.pro