%!PS-Adobe-3.0 EPSF-3.0 egt50-6n
%%BoundingBox: 70 83 228 206

%START PDFDE011.EPS
/pdfmark06 where {pop} {userdict /pdfmark06 /cleartomark load put} ifelse
/languagelevel where {pop languagelevel} {1} ifelse
2 lt { userdict (<<) cvn ([) cvn load put
       userdict (>>) cvn (]) cvn load put} if
[/Title (PostScript pictures: http://farbe.li.tu-berlin.de/egt5/egt5.htm)
 /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1)
 /Subject (goto: http://farbe.li.tu-berlin.de or http://color.li.tu-berlin.de)
 /Keywords (image reproduction, colour devices)
 /Creator (klaus.richter@mac.com)
 /CreationDate (D:2023070112000)
 /ModDate (D:20230701112000)
/DOCINFO pdfmark06
[ /View [ /FitB ]
/DOCVIEW pdfmark06
%END  PDFDE011

%SETCMYK_OLV.PS
/setcmyk_olvcolor %transfer cmyk to olv
{/ncolor exch def /ycolor exch def
 /mcolor exch def /ccolor exch def
 ncolor 0 eq {1 ccolor sub
              1 mcolor sub
              1 ycolor sub setrgbcolor
             }
             {ccolor 0 eq 
              mcolor 0 eq and
              ycolor 0 eq and {%only black n
                               1 ncolor sub 
                               dup
                               dup
                               setrgbcolor
                              }
                              {%cmy and black n
                               1 ccolor sub 1 ncolor sub mul
                               1 mcolor sub 1 ncolor sub mul
                               1 ycolor sub 1 ncolor sub mul
                               setrgbcolor
                              } ifelse
             } ifelse
} bind def

/FS {findfont exch scalefont setfont} bind def
/MM {72 25.4 div mul} def /str {8 string } bind def

/languagelevel where {pop languagelevel} {1} ifelse
                     /PSL12 exch def
/dictende {counttomark 2 idiv dup dict begin {def}
           repeat pop currentdict end} bind def

/Times-Roman findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/Times-ISOL1 exch definefont pop

/Times-Italic findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/TimesI-ISOL1 exch definefont pop

/Times-Bold findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/TimesB-ISOL1 exch definefont pop

/Times-BoldItalic findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/TimesBI-ISOL1 exch definefont pop

/Courier findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/Courier-ISOL1 exch definefont pop

/Courier-Oblique findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/CourierI-ISOL1 exch definefont pop

/Courier-Bold findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/CourierB-ISOL1 exch definefont pop

/Courier-BoldOblique findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/CourierBI-ISOL1 exch definefont pop

/TG   {350 /Times-ISOL1 FS} bind def
/TM   {280 /Times-ISOL1 FS} bind def
/TK   {240 /Times-ISOL1 FS} bind def
/TS   {200 /Times-ISOL1 FS} bind def
/TL   {160 /Times-ISOL1 FS} bind def

/TIG  {350 /TimesI-ISOL1 FS} bind def
/TIM  {280 /TimesI-ISOL1 FS} bind def
/TIK  {240 /TimesI-ISOL1 FS} bind def
/TIS  {200 /TimesI-ISOL1 FS} bind def
/TIL  {160 /TimesI-ISOL1 FS} bind def

/TBG  {350 /TimesB-ISOL1 FS} bind def
/TBM  {280 /TimesB-ISOL1 FS} bind def
/TBK  {240 /TimesB-ISOL1 FS} bind def
/TBS  {200 /TimesB-ISOL1 FS} bind def
/TBL  {160 /TimesB-ISOL1 FS} bind def

/TBIG {350 /TimesBI-ISOL1 FS} bind def
/TBIM {280 /TimesBI-ISOL1 FS} bind def
/TBIK {240 /TimesBI-ISOL1 FS} bind def
/TBIS {200 /TimesBI-ISOL1 FS} bind def
/TBIL {160 /TimesBI-ISOL1 FS} bind def

/SG {350 /Symbol FS} bind def
/SM {280 /Symbol FS} bind def
/SK {240 /Symbol FS} bind def
/SS {200 /Symbol FS} bind def
/SL {160 /Symbol FS} bind def

%*********************************************************
/proz_param {%proz_param

4600 3800 moveto
TBS (Parame\255) show
4600 3600 moveto
TBS (ter:) show 
xchart4 2 eq
xchart4 4 eq or
xchart4 6 eq or {TBIS ( N) show} if
xchart4 3 eq
xchart4 5 eq or
xchart4 7 eq or {TBIS ( Y) show xcolorl 1 eq {xcol10_BS} if} if

xchart4 6 eq
xchart4 7 eq or {%xchart4=6,7
                 1 0 0 setrgbcolor
                 4100 3400 moveto
                 TBS TELi xchartl get show
                 TBIS (, C) show
                 TBL 0 -50 rmoveto (r) show 0 50 rmoveto
                 TBS ( = ) show Crx show
                 4100 3200 moveto
                 SS (D) show TBIS (h) show
                 TBL 0 -50 rmoveto
                 xchart4 6 eq {(AB,1) show} if
                 xchart4 7 eq {(AB,2) show} if
                     0 50 rmoveto
                 TBS ( = ) show dhAB2 cvishow
                 0 setgray
                } if %xchart4=6,7

/kx kxi xchartl get def
/kxx 445 kx 5 mul add def
4150 300 moveto
TBS (max: ) show kxx cvishow (_770) show
4150 080 moveto
TBS (min: 380_) show kxx cvishow

/index2_7 {%index2_7
xchart4 2 eq
xchart4 3 eq or
xchart4 7 eq or {0 -50 rmoveto TBL (2) show 0 50 rmoveto
                 xcolorl 1 eq {xcol10KBS} if 
                } if
xchart4 4 eq
xchart4 5 eq or {0 -50 rmoveto TBL () show 0 50 rmoveto
                 xcolorl 1 eq {xcol10_BS} if
                } if
xchart4 6 eq    {0 -50 rmoveto TBL (1) show 0 50 rmoveto
                 xcolorl 1 eq {xcol10KBS} if
                } if
          } bind def %index2_7

/index2_7n {%index2_7n
xchart4 2 eq
xchart4 3 eq or
xchart4 7 eq or {0 -50 rmoveto TBL (2,n) show 0 50 rmoveto
                 xcolorl 1 eq {xcol10KBS} if
                } if
xchart4 4 eq
xchart4 5 eq or {0 -50 rmoveto TBL (n) show 0 50 rmoveto
                 xcolorl 1 eq {xcol10_BS} if
                } if
xchart4 6 eq    {0 -50 rmoveto TBL (1,n) show 0 50 rmoveto
                 xcolorl 1 eq {xcol10KBS} if
                } if
          } bind def %index2_7n

/x0p 50 def
x0p 3800 moveto
TBIS (XYZ) show 0 -50 rmoveto TBL (W) show 0 50 rmoveto
xcolorl 1 eq {xcol10KBS} if
TBS (=) show
XK cvsshow2 (, ) show YK cvsshow2 (, ) show ZK cvsshow2

x0p 3550 moveto
TBIS (A) show index2_7
TBS ( = 2,5 ) show
TBIS (C) show 0 -50 rmoveto TBL (c) show 0 50 rmoveto
( \050) show
TBIS (a) show index2_7
TBS ( - ) show
TBIS (a) show index2_7n
TBS (\051 ) show
TBIS (Y) show
xcolorl 1 eq {xcol10_BS} if

x0p 3300 moveto
TBIS (B) show index2_7
TBS ( = 2,5 ) show
TBIS (C) show 0 -50 rmoveto TBL (c) show 0 50 rmoveto
tfr TBIS ( B) show 0 -50 rmoveto TBL (c) show 0 50 rmoveto tfn
TBS ( \050) show
TBIS (b) show index2_7
TBS ( - ) show
TBIS (b) show index2_7n
TBS (\051 ) show
TBIS (Y) show
xcolorl 1 eq {xcol10_BS} if

x0p 3050 moveto
TBIS (a) show index2_7
TBS ( = ) show
TBIS (a) show
0 -50 rmoveto TBL (20) show 0 50 rmoveto
TBS ( [) show
TBIS (\050x) show
xcolorl 1 eq {xcol10_BS} if
TBS (-) show 
TBIS (x) show
0 -50 rmoveto TBL (c) show 0 50 rmoveto
TBIS (\051/y) show
xcolorl 1 eq {xcol10_BS} if
TBS (]) show

x0p 2800 moveto
TBIS (b) show index2_7
TBS ( = ) show
TBIS (b) show
0 -50 rmoveto TBL (20) show 0 50 rmoveto
TBS ( [) show
TBIS (z) show
xcolorl 1 eq {xcol10_BS} if
TBIS
(/y) show
xcolorl 1 eq {xcol10_BS} if
TBS (]) show

x0p 2550 moveto
TBIS (a) show 0 -50 rmoveto TBL (20) show 0 50 rmoveto
TBS ( = 1, ) show
TBIS (b) show 0 -50 rmoveto TBL (20) show 0 50 rmoveto
TBS ( = -0,4) show

x0p 2300 moveto
TBIS (x) show 0 -50 rmoveto TBL (c) show 0 50 rmoveto
TBS ( = ) show xct show (, ) show
tfr TBIS (B) show 0 -50 rmoveto TBL (c) show 0 50 rmoveto
TBS ( = ) show Bct show tfn

/SUMK XK YK add ZK add 0.0001 add def
x0p 2080 moveto
TBIS (n) show
TBS ( = ) show
TELi xchartl get show
(, ) show
TBIS (xy) show 0 -50 rmoveto TBL (W) show 0 50 rmoveto
TBS (=) show
XK SUMK div cvsshow3 (, ) show YK SUMK div cvsshow3

x0p 1820 moveto
TBIS (C) show
TBL 0 -50 rmoveto (AB,) show 0 50 rmoveto
index2_7
TBS (=[) show
TBIS (A) show index2_7
TBL -20 80 rmoveto (2) show 0 -80 rmoveto
TBS (+) show
TBIS (B) show index2_7
TBL -20 80 rmoveto (2) show 0 -80 rmoveto
TBS (]) show
TBL 0 80 rmoveto (1/2) show 0 -80 rmoveto

} bind def %proz_param

%****************************************************************
/proz_opti {%proz_opti
TBS
0 0 0 1 setcmyk_olvcolor
/xchart12 xchart4 12 mul def
xtexti xchart12 0 add get ytexti xchart12 0 add get moveto
TBS
(6 Optimalfarben (o)) showde                                   %0egt51-7 02581
(6 optimal colours (o)) showen                                 %1egt51-7 02581
(6 colores \363ptimos (o)) showes                              %2egt51-7 02581
(6 couleurs optimales (o)) showfr                              %3egt51-7 02581
(6 colori ottimi (o)) showit                                   %4egt51-7 02581
(6 optimal colours (o)) showjp 

TBIS (, Y) show
TBL 0 -60 rmoveto (W) show 0 60 rmoveto
xchartl 1 eq {xcol10KBS} if
TBS KN 0 eq {(=100) show}
            {(=90)  show} ifelse
TBIS (, Y) show TBL
0 -60 rmoveto (N) show 0 60 rmoveto
xchartl 1 eq {xcol10KBS} if
TBS KN 0 eq {(=0)   show}
            {(=3,6) show} ifelse

xtexti xchart12 1 add get ytexti xchart12 1 add get moveto
(6 von maximalem (m)) showde                                    %0egt51-7 03581
(6 of maximum (m)) showen                                       %1egt51-7 03581
(6 de m\341ximo (m)) showes                                     %2egt51-7 03581
(6 de la maximum (m)) showfr                                    %3egt51-7 03581
(6 di massimo (m)) showit                                       %4egt51-7 03581
(6 of maximum (m)) showjp                                       %5egt51-7 03581

TBIS ( C) show TBL 0 -60 rmoveto (AB) show 0 60 rmoveto TBS

( f\374r ) showde                                               %0egt51-7 03581
( for ) showen                                                  %1egt51-7 03581
( bajo ) showes                                                 %2egt51-7 03581
( pour ) showfr                                                 %3egt51-7 03581
( per ) showit                                                  %4egt51-7 03581
( for ) showjp                                                  %5egt51-7 03581

TELi xchartl get show

xtexti xchart12 2 add get ytexti xchart12 2 add get moveto

xchart4 0 eq
xchart4 1 eq or {%xchart4=0,1
(in der Normfarbtafel) showde                                   %0egt51-7 04581
(in the chromaticity diagram) showen                            %1egt51-7 04581
(en el diagrama de chromaticidad) showes                        %2egt51-7 04581
(Dans le diagramme de chromaticit\351) showfr                   %3egt51-7 04581
(nel diagramma di cromaticit\340) showit                        %4egt51-7 04581
(in the chromaticity diagram) showjp                            %5egt51-7 04581
TBIS ( (x, y)) show
             } if %xchart4=0,1

xchart4 2 eq 
xchart4 3 eq or {%xchart4=2,3
(im linearen Farbenraum ) showde                                %0egt51-7 06581
(in linear colour space ) showea                                %1egt51-7 06581
TBS (\050) show TBIS (C) show
TBL 0 -50 rmoveto (AB,2) show 0 50 rmoveto
xcolorl 1 eq {xcol10KBS} if
TBIS (, Y) show
xcolorl 1 eq {xcol10_BS} if
TBS
(\051) show
             } if %xchart4=2,3

xchart4 4 eq 
xchart4 5 eq or {%xchart4=4,5
(in Buntwertdiagramm) showde                                    %0egt51-7 08581
(in chromatic value diagram) showen                             %1egt51-7 08581
(en el diagrama valor crom\341tico) showes                      %2egt51-7 08581
(Dans la valeur chromatique le diagramme) showfr                %3egt51-7 08581
(nel diagramma di valore cromatico) showit                      %4egt51-7 08581
(in chromatic value diagram) showjp                             %5egt51-7 08581
TBIS ( (A, B)) show
             } if %xchart4=4,5

xchart4 6 eq {%xchart4=6
(in Buntwertdiagram) showde                                    %0egt51-7 10581
(in chromatc value diagram) showen                                      %1egt51-7 10581
(en el diagrama croma) showes                                   %2egt51-7 10581
(Dans le diagramme de chroma) showfr                            %3egt51-7 10581
(nel diagramma di chroma) showit                                %4egt51-7 10581
(in chromactic value diagram) showjp                            %5egt51-7 10581
TBIS ( \050A) show
0 -50 rmoveto TBL (1) show 0 50 rmoveto
TBS (, ) show TBIS (B) show 
0 -50 rmoveto TBL (1) show 0 50 rmoveto
TBS (\051) show
             } if %xchart4=6

xchart4 7 eq {%xchart4=7
(in Buntwertdiagram) showde                                    %0egt51-7 11581
(in chromatic value diagram) showen                                      %1egt51-7 11581
(en el diagrama croma) showes                                   %2egt51-7 11581
(Dans le diagramme de chroma) showfr                            %3egt51-7 11581
(nel diagramma di chroma) showit                                %4egt51-7 11581
(in chroma diagram) showjp                                      %5egt51-7 11581
TBIS ( \050A) show
0 -50 rmoveto TBL (2) show 0 50 rmoveto
TBS (, ) show TBIS (B) show
0 -50 rmoveto TBL (2) show 0 50 rmoveto
TBS (\051) show
             } if %xchart4=7

} bind def %proz_opti

%****************************************************************************
/proz_name_range {%proz_name_range
/xchart12 xchart4 12 mul def
xtexti xchart12 3 add get ytexti xchart12 3 add get moveto
TBS
(Name & Spektralbereich) showde                               %0egt51-7 00581
(Name and spectral range) showen                                %1egt51-7 00581
(Nombre y gama espectral) showes                                %2egt51-7 00581
(Nom et la gamma spectrale) showfr                              %3egt51-7 00581
(Nome e la gamma spettrale) showit                              %4egt51-7 00581
(Name and spectral range) showjp                                %5egt51-7 00581

xtexti xchart12 4 add get ytexti xchart12 4 add get moveto
TBIS FARBE 0 get show
TBL 0 -40 rmoveto FARBE 1 get show 0 40 rmoveto
TBIS FARBE 2 get show

xtexti xchart12 5 add get ytexti xchart12 5 add get moveto
TBIS FARBE 3 get show
TBL 0 -40 rmoveto FARBE 4 get show 0 40 rmoveto
TBIS FARBE 5 get show

xtexti xchart12 6 add get ytexti xchart12 6 add get moveto
TBIS FARBE 6 get show
TBL 0 -40 rmoveto FARBE 7 get show 0 40 rmoveto
TBIS FARBE 8 get show

xtexti xchart12 7 add get ytexti xchart12 7 add get moveto
TBIS FARBE 9 get show
TBL 0 -40 rmoveto FARBE 10 get show 0 40 rmoveto
TBIS FARBE 11 get show

xtexti xchart12 8 add get ytexti xchart12 8 add get moveto
TBIS FARBE 12 get show
TBL 0 -40 rmoveto FARBE 13 get show 0 40 rmoveto
TBIS FARBE 14 get show

xtexti xchart12 9 add get ytexti xchart12 9 add get moveto
TBIS FARBE 15 get show
TBL 0 -40 rmoveto FARBE 16 get show 0 40 rmoveto
TBIS FARBE 17 get show

%xtexti xchart12 10 add get ytexti xchart12 10 add get moveto
%TBIS FARBE 18 get show
%TBL 0 -40 rmoveto FARBE 19 get show 0 40 rmoveto
%TBIS FARBE 20 get show

%xtexti xchart12 11 add get ytexti xchart12 11 add get moveto
%TBIS FARBE 21 get show
%TBL 0 -40 rmoveto FARBE 22 get show 0 40 rmoveto
%TBIS FARBE 23 get show
} bind def %proz_name_range

%****************************************************************
/proz_axis_scales4_7 {%proz_axis_scales4_7
%axis and scales
0 0 0 1 setcmyk_olvcolor
-1000 0 moveto 2800  0 rlineto stroke
0 -1880  moveto 0 3600  rlineto stroke
1800 100 sub 50 moveto 100 -50 rlineto
                      -100 -50 rlineto closepath fill
0 50 sub 1800 100 sub moveto 50  100 rlineto
                             50 -100 rlineto closepath fill

/xt10x 5 array def
/yt10x 5 array def

/xt10x [() (    -50) ( ) ( ) (  100)] def
/yt10x [(-100) ( ) ( ) ( ) (100)] def

0 0 0 1 setcmyk_olvcolor
1 1 4 {/i exch def %i=0,4 x-axis
        -1600   i 800   mul add  -75 moveto 0 150 rlineto stroke
        -1800   i 800   mul add -250 moveto
        TBS xt10x i get show
        i 4 eq {-1600 i 800 mul add 0 moveto
               xchart4 4 eq { %xchart4=4
                             -100 200 rmoveto
                             TBIK (A) show
                             xcolorl 1 eq {xcol10_BS} if
                            } if %xchart4=4
               xchart4 5 eq { %xchart4=5
                             -100 200 rmoveto
                             TBIK (A) show 
                             xcolorl 1 eq {xcol10_BS} if
                            } if %xchart4=5
               xchart4 6 eq { %xchart4=6
                             -200 200 rmoveto
                             TBIK (A) show 
                             00 -50 rmoveto TBS (1) show 0 50 rmoveto
                             xcolorl 1 eq {xcol10KBS} if
                            } if %xchart4=6
               xchart4 7 eq { %xchart4=7
                             -200 200 rmoveto
                             TBIK (A) show 
                             00 -50 rmoveto TBS (2) show 0 50 rmoveto
                             xcolorl 1 eq {xcol10KBS} if
                            } if %xchart4=7
               } if

       } for %i=0,4

0 1 4 {/i exch def %i=0,4 y-axis
       -75 -1600 i 800 mul    add moveto 150 0 rlineto stroke
       100 -1650 i 800 mul    add 100 sub moveto
       TBS yt10x i get show
       i 4 eq {0 -1650 i 800 mul add moveto
               xchart4 4 eq { %xchart4=4
                             100 150 rmoveto
                             TBIK (B) show TM
                             xcolorl 1 eq {xcol10_BS} if
                            } if %xchart4=4
               xchart4 5 eq { %xchart4=5
                             100 150 rmoveto
                             TBIK (B) show
                             xcolorl 1 eq {xcol10_BS} if
                             0 1150 add 1600 0200 add moveto
                            } if %xchart4=5
               xchart4 6 eq { %xchart4=6
                             100 150 rmoveto
                             TBIK (B) show
                             -20 -50 rmoveto TBS (1) show 0 50 rmoveto
                             xcolorl 1 eq {xcol10KBS} if
                            } if %xchart4=6
               xchart4 7 eq { %xchart4=7
                             100 150 rmoveto
                             TBIK (B) show
                             -20 -50 rmoveto TBS (2) show 0 50 rmoveto
                             xcolorl 1 eq {xcol10KBS} if
                            } if %xchart4=7
             } if

       } for %i=0,4
} bind def %proz_axis_scales4_7

%***********************************************************
/proz_chromaticity_lines {%BEG proz_chromaticity_lines


/DOW  82 array def
/DOWZ 17 array def
/F02Z 51 array def
/F10Z 51 array def

%TRISTIMULUS VALUES FOR PURPLE COLORS from 'dmyy'KRPROG.FOR
%FOR 02- AND 10-DEGREE-OBSERVER, ILLUMINANT E

0 1 79 {/i exch def %i=0,79 = 380_775
        DOW i 380 i 5 mul add put
       } for %i=0,79

/DOWZ %17 data
[700 -495 -500 -505 -510 -515 -520 -525 -530 
 -535 -540 -545 -550 -555 -560 -565 400] def

/F02Z %3x17 data 700 ... 400
[.01136 .01141 .01158 .01169 .01176 .01182 .01187 .01191 .01195 
 .01199 .01204 .01210 .01219 .01232 .01254 .01300 .01431 
 .00410 .00404 .00383 .00369 .00359 .00352 .00346 .00342 .00337 
 .00331 .00325 .00317 .00306 .00289 .00262 .00205 .00040 
 .00000 .00118 .00507 .00754 .00930 .01064 .01167 .01256 .01346 
 .01445 .01562 .01709 .01910 .02210 .02718 .03765 .06785] def

/F10Z %3x17 data 700 ... 400
[.00958 .01015 .01037 .01053 .01065 .01075 .01085 .01096 .01108 
 .01122 .01139 .01163 .01201 .01268 .01416 .02078 .01911 
 .00372 .00361 .00357 .00355 .00352 .00351 .00349 .00347 .00345 
 .00342 .00339 .00335 .00328 .00316 .00289 .00170 .00200 
 .00000 .00517 .00718 .00858 .00972 .01063 .01150 .01245 .01354 
 .01478 .01635 .01856 .02194 .02795 .04136 .10106 .08601] def

%***************************************************
/FXYZ  240 array def
/XSi   82 array def
/YSi   82 array def
/ZSi   82 array def
/XANSi 82 array def
/YANSi 82 array def
/ZANSi 82 array def
/AANSi 82 array def %actual data for plot, purple colours
/BANSi 82 array def

0 1 239 {/i exch def %i=0,239
         FXYZ i xcolorl 0 eq {F2  i get put}
                             {F10 i get put} ifelse
         } for %i=0,239

/YKSUM 0 def %For CIE Illuminant E
0 1 79 {/i exch def %i=0,1,79
        /YKSUM YKSUM FXYZ 80 i add get add def
} for %i=0,1,79

0 1 79 {/i exch def %i=0,1,79
        XSi i FXYZ  00 i add get YKSUM div 100 mul put
        YSi i FXYZ  80 i add get YKSUM div 100 mul put
        ZSi i FXYZ 160 i add get YKSUM div 100 mul put
        /SUM XSi i get
             YSi i get add
             ZSi i get add 0.0001 add def
        
        XANSi i XSi i get SUM div put
        YANSi i YSi i get SUM div put
        ZANSi i ZSi i get SUM div put
        AANSi i XANSi i get put
        BANSi i YANSi i get put
} for %i=0,1,79

/XZi   17 array def
/YZi   17 array def
/ZZi   17 array def
/XANZi 17 array def
/YANZi 17 array def
/ZANZi 17 array def
/AANZi 17 array def %actual data for plot, purple colours
/BANZi 17 array def

0 1 16 {/i exch def %i=0,16 %for illuminant E: S(lamdda=100)
        XZi i xcolorl 0 eq {F02Z} {F10Z} ifelse                     
              00 i add get YKSUM div 100 mul put
        YZi i xcolorl 0 eq {F02Z} {F10Z} ifelse
              17 i add get YKSUM div 100 mul put
        ZZi i xcolorl 0 eq {F02Z} {F10Z} ifelse
              34 i add get YKSUM div 100 mul put
        /SUM XZi i get
             YZi i get add
             ZZi i get add 0.0001 add def
        XANZi i XZi i get SUM div put
        YANZi i YZi i get SUM div put
        ZANZi i ZZi i get SUM div put
        AANZi i XANZi i get put
        BANZi i YANZi i get put
} for %i=0,16

/xtrans8 600 def
/ytrans8 400 def
xtrans8 ytrans8 translate %for scala and graphic

0 0 moveto  4000 0 rlineto  stroke
0 0 moveto  0 3200 rlineto  stroke

%! 100 S-Einheiten = 2000 Skalen-Einheiten
TBS

   0 -50 moveto  0 100 rlineto  stroke
 800 -50 moveto  0 100 rlineto  stroke
1600 -50 moveto  0 100 rlineto  stroke
2400 -50 moveto  0 100 rlineto  stroke
3200 -50 moveto  0 100 rlineto  stroke
4000 -50 moveto  0 100 rlineto  stroke

-100 -300 moveto (0,0) show
 700 -300 moveto (0,2) show
1500 -300 moveto (0,4) show
2300 -300 moveto (0,6) show
3100 -300 moveto (0,8) show
3900 -300 moveto (1,0) show

%! 100 S-Einheiten = 2000 Skalen-Einheiten

 -50    0 moveto  100 0 rlineto  stroke
 -50  800 moveto  100 0 rlineto  stroke
 -50 1600 moveto  100 0 rlineto  stroke
 -50 2400 moveto  100 0 rlineto  stroke
 -50 3200 moveto  100 0 rlineto  stroke

-450  -80 moveto (0,0) show
-450  720 moveto (0,2) show
-450 1520 moveto (0,4) show
-450 2320 moveto (0,6) show
-450 3120 moveto (0,8) show

TIS
4200  150 moveto (x) show
xcolorl 1 eq {TL 0 -40 rmoveto (10) show 0 40 rmoveto TIS} if
-300 2800 moveto (y) show
xcolorl 1 eq {TL 0 -40 rmoveto (10) show 0 40 rmoveto TIS} if

TBIS
2600 150 moveto
xcolorl 0 eq {(CIE 1931) show} if
xcolorl 1 eq {(CIE 1964) show} if

newpath

/fakt 4000 def

 %old
 %1000 02 01 16 01 .00 .0020              ********************
 %ANF  PROZSPEP3.FOR: MULYA= 4000 BEO=02 xy-Farbtafel IXY0:  600  400
 %600    400 translate
 %693     19 moveto

5 1 60 {/i exch def %i=5,60
        AANSi i get fakt mul
        BANSi i get fakt mul
        i 05 eq {moveto} if
        i 06 ge 
        i 59 le and {lineto} if
        i 60 eq {lineto closepath stroke} if
       } for %i=5,60

/xytshift 320 array def %min 4x65
/xytshift
[
0  000  000 (380) %0
0  000  000 (385) %1
0  000  000 (390) %2
0  000  000 (395) %3
1 -170 -170 (400) %4
0  000  000 (405) %5
0  000  000 (410) %6
0  000  000 (415) %7
0  000  000 (420) %8
0  000  000 (425) %9
0  000  000 (430) %10
0  000  000 (435) %11
0  000  000 (440) %12
0  000  000 (445) %13
1 -300 -050 (450) %14 S
0  000  000 (455) %15
0  000  000 (460) %16
0  000  000 (465) %17
0  000  000 (470) %18
1 -300 -030 (475) %19
0  000  000 (480) %20
0  000  000 (485) %21
1 -330 -050 (490) %22
1 -270  000 (495) %23 M=S
1 -300 -050 (500) %24
1 -300 -050 (505) %25
1 -330 -050 (510) %26 L=S
1 -300  050 (515) %27
1 -100  070 (520) %28
1  100  000 (525) %29
1  000  000 (   ) %30
1  050  000 (535) %31
1  000  000 (   ) %32 M
1  000  000 (   ) %33
1  050  030 (550) %34
1  000  000 (   ) %35
1  050  030 (560) %36
1  000  000 (   ) %37
1  050  030 (570) %38 L
1  000  000 (   ) %39
1  050  030 (580) %40
1  050  050 (   ) %41
1  050  030 (590) %42
1  050  050 (   ) %43
1  050  030 (600) %44
0  000  000 (   ) %45
1  050  070 (610) %46
0  000  000 (   ) %47
1  050  050 (620) %48
0  000  000 (   ) %49
0  000  000 (630) %50
0  000  000 (   ) %51
1  050  030 (640) %52
0  000  000 (645) %53
0  000  000 (650) %54
0  000  000 (655) %55
0  000  000 (660) %56
0  000  000 (665) %57
0  000  000 (670) %58
0  000  000 (675) %59
0  000  000 (680) %60
0  000  000 (685) %61
0  000  000 (690) %62
0  000  000 (695) %63
1  100  -50 (700) %64
] def

0 1 64 {/i exch def %i=5,1,60
        /i40 i 4 mul def
        xytshift i40 get 1 eq {%xytshift=1
        0 0 0 0 setcmykcolor
        AANSi i get fakt mul
        BANSi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANSi i get fakt mul
        BANSi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                              } if %xytshift=1
       } for %i=5,1,60

TBIL
0 1 59 {/i exch def %i=0,65
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshift i40 get 1 eq {%xytshift=1
       AANSi i get fakt mul xytshift i41 get add
       BANSi i get fakt mul xytshift i42 get add
       moveto xytshift i43 get show
       } if %xytshift=1
       } for %i=0,65

newpath /xytshiftZ 320 array def %min 4x65
/xytshiftZ
[
1  100  -50 (700)    %0 see normal
1  050 -100 (495c,E) %1
1  050 -100 (500c,E) %2
0  050 -100 (505c,E) %3
1  100  -60 (510c,E) %4
0  050 -100 (515c,E) %5
0  050 -100 (520c,E) %6
1  050 -100 (525c,E) %7
0  050 -100 (530c,E) %8
0  050 -100 (535c,E) %9
0  050 -100 (540c,E) %10
0  050 -100 (545c,E) %11
1  050 -100 (550c,E) %12
0  050 -100 (555c,E) %13
0  050 -100 (560c,E) %14 S
1  050 -100 (565c,E) %15
0 -100 -150 (400)    %16 see normal
] def

0 1 16 {/i exch def %i=5,5,60
        /i40 i 4 mul def
        xytshiftZ i40 get 1 eq {%xytshiftZ=1
        0 0 0 0 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc fill %400,405,...,700
        0 0 0 1 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc stroke %400,405,...,700
                                } if %xytshiftZ=1
       } for %i=0,1,16
       
TBIL
0 1 16 {/i exch def %i=0,16
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshiftZ i40 get 1 eq {%xytshiftZ=1
       AANZi i get fakt mul xytshiftZ i41 get add
       BANZi i get fakt mul xytshiftZ i42 get add moveto
       xytshiftZ i43 get show
                              } if %xytshiftZ=1
       } for %i=0,16

xtrans8 neg ytrans8 neg translate %for scala and grafic

} bind def %END proz_chromaticity_lines

%*****************************************************************

%%EndProlog
gsave

%lanindL2.EPS START  20000505
/lanind 0 def
/lantex [(G) (E) (S) (F) (I) (J) (M)] def
/showde {0 lanind eq {show} {pop} ifelse} bind def
/showen {1 lanind eq {show} {pop} ifelse} bind def
/showes {2 lanind eq {show} {pop} ifelse} bind def
/showfr {3 lanind eq {show} {pop} ifelse} bind def
/showit {4 lanind eq {show} {pop} ifelse} bind def
/showjp {5 lanind eq {show} {pop} ifelse} bind def
/showea {1 lanind le {show} {pop} ifelse} bind def
 
/lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def
                    /lanindd laninddf def}
               {/lanind1 0 def /lanind2 0 def} ifelse
/colormf where {pop /colorm1 colormf def /colorm2 colormf def
                    /colormd colormdf def}
               {/colorm1 0 def} ifelse
/deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def
                    /deintpd deintpdf def}
               {/deintp1 0 def} ifelse
/xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def
                    /xcolord xcolordf def}
               {/xcolor1 0 def} ifelse
/xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def
                    /xchartd xchartdf def
                    /xchartm xchart2f xchart1f sub 1 add def}
               {/xchart1 0 def /xchartm 1 def} ifelse
/xchart3f where {pop /xchart3 xchart3f def}
                {/xchart3 0 def} ifelse
/xchart4f where {pop /xchart4 xchart4f def}
                {/xchart4 0 def} ifelse
/pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def
                    /pchartd pchartdf def}
               {/pchart1 3 def} ifelse
/colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def
                    /colsepd colsepdf def}
               {/colsep1 0 def} ifelse
/pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def
                    /pmetamd pmetamdf def}
               {/pmetam1 0 def} ifelse

%either defaul values for xchart=0 or values for xchart=1
/lanind lanind1 def %
/colorm colorm1 def %
/deintp deintp1 def %
/xcolor xcolor1 def %
/xchart xchart1 def %
/pchart pchart1 def %
/colsep colsep1 def %
/pmetam pmetam1 def %

colorm 0 eq deintp 0 eq and {/Txx (D) def} if %colorm=0, deintp=0
colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1
colorm 1 eq deintp 0 eq and {/Txx (Dd) def} if %colorm=1, deintp=0
colorm 1 eq deintp 1 eq and {/Txx (De) def} if %colorm=1, deintp=1
xchart 0 eq {/Txx (-) def} if %always independent of intended output

gsave
%LANINDL2 END

/cvishow {cvi 6 string cvs show ( ) show} def
/cvsshow1 {10 mul cvi 0.1 mul 9 string cvs show ( ) show} def
/cvsshow2 {100 mul cvi 0.01 mul 9 string cvs show ( ) show} def
/cvsshow3 {1000 mul cvi 0.001 mul 9 string cvs show ( ) show} def
/cvsshow4 {10000 mul cvi 0.0001 mul 9 string cvs show ( ) show} def
/cvsshow5 {100000 mul cvi 0.00001 mul 9 string cvs show ( ) show} def

/TELi 8 array def
/xchart8 0 def %0:Pxx, 1:Dxx default
xchart8 0 eq {%xchart8=0 Pxx
/TELi [(P65) (P60) (P55) (P50) (P45) (P40) (P35) (P30)] def %8 illumin.
             } if %xchart8=0

xchart8 1 eq {%xchart8=1 Dxx
/TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %8 illumin.
             } if %xchart8=1

%contrCc Cc,dh,Cr: 0:1, 6, 25:1, 1:0,666, 12, 8:1, 2:0,333, 18, 2:1
/contrCc 0 def %Cc,dh,Cr: 0:1, 6, 25:1; 1:0,666, 12, 8:1; 2:0,333, 18, 2:1

contrCc 0 eq {%contrCc=0
              /Cc  1.00 def
              /Cct (1,000) def
              /dhAB2 6 def
              /Crx (25:1) def
             } if %contrCc=0

contrCc 1 eq {%contrCc=1
              /Cc  0.666 def
              /Cct (0,666) def
              /dhAB2 12 def
              /Crx (8:1) def
             } if %contrCc=1

contrCc 2 eq {%contrCc=2
              /Cc  0.333 def
              /Cct (0,333) def
              /dhAB2 18 def
              /Crx (2:1) def
             } if %contrCc=2

/SD65 82 array def %380 bis 775 mit deltalambda=05
/SD50 82 array def %380 bis 775 mit deltalambda=05
/SP40 82 array def %380 bis 775 mit deltalambda=05
/SA00 82 array def %380 bis 775 mit deltalambda=05
/SE00 82 array def %380 bis 775 mit deltalambda=05
/SC00 82 array def %380 bis 775 mit deltalambda=05
/SP00 82 array def %380 bis 775 mit deltalambda=05
/SQ00 82 array def %380 bis 775 mit deltalambda=05

/SDAK 82 array def %380 bis 775 mit deltalambda=05
/RA   82 array def %380 bis 770 nm
/F2  240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm
/F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm
/F10  240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm

%C
%C      LITERATURQUELLEN  LICHTARTEN
%C      SA,SC,SD65,  CIE-DOKUMENT NR.15 FARBMESSUNG, 1971
%C                   TABELLE 1.1.1, SEITE 81
%C      SD55,SD75,   CIE-DOKUMENT NR.15 FARBMESSUNG, 1971
%C                   TABELLE 1.1.4, SEITE 85
%C                   LINEAR INTERPOLIERT VON 5 ZU 5NM
%C      SG,SP,SXE,   DIN 5033, BLATT 7 ,SEITE 8-9
%C                   AUSGABE  1966

/SD65 %80 data 5 nm
[50.0  52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 
 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 
 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 
 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 
 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 
 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 
 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 
 46.4 56.6 66.8 65.1] def

/SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS
[24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9
 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2
 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6
102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3
 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4
 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1
 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7
 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used

/SA00 %80 data 5 nm CIE 15.3  Seite 30; aus JE540-1N.PS
[9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99
 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30
 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06
 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44
 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39
 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42
 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12
 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41
 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59
 232.12 234.59 237.01 239.37 0.0] def %0.0 not used

% AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92
%C     PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI-
%C     LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA  
%C     BEI GEGEBENER TEMPERATUR T                                        
%C     VERWENDETE VARIABLE                                               
%C        T                   TEMPERATUR                                 
%C        C2                  PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) 
%C        LAMDA(I)            WELLENLAENGE                               
%C        S(I)                STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS 
%C                                                                       
%C     LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION,       
%C               CA. 1969, SEITE 21 UND TABELLE 1.1.1                    
%C                                                                       
%SDP4 82 array def %380 bis 775 mit deltalambda=05
%      DO 50 I=1,54                                                      
%   50 S(I)=100.
%     1*(560./FLOAT(LAMDA(I)))**5
%     2*(EXP(C2/(560.*10.**(-7)*T))-1.)
%     3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.)

%new CIE 15.3:2004, Eq. (3.1) page 2
%S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560   )} - 1]
%                           /[exp{(c2*10**7)/(TNC*lambda)} - 1]
% exp = e {...} = 2.71 {...} 

%/TNC 2848 def %NLA


/EE 2.718281 def %e=mac pocket calculator
/C2 1.4350000 10 7 exp mul def
/lamd 82 array def

xchart8 1 eq {%xchart8=1 Dxx
/TNC 4000 def
%********************************************
0 1 79 {%i=0,79
        /i exch def
        /lambda 380 i 5 mul add def
        lamd i lambda put
        /E1 560 lambda div 5 exp def

        /E4 C2 TNC 560    mul div def
        /E5 C2 TNC lambda mul div def

        /E6 EE E4 exp def
        /E7 EE E5 exp def

        SP40 i
        E1 100 mul E6 1 sub 
                   E7 1 sub div mul

        put
       } for %i=0,79


} if %xchart8=1 Dxx

%******************************************
xchart8 0 eq {%xchart8=0 Pxx

%defined only for xchart8=0 Pxx

/TNCj 8 array def
/TNCj [6500 6000 5500 5000 4500 4000 3500 3000] def

/SP65 82 array def %380 bis 775 mit deltalambda=05
/SP60 82 array def %380 bis 775 mit deltalambda=05
/SP55 82 array def %380 bis 775 mit deltalambda=05
/SP50 82 array def %380 bis 775 mit deltalambda=05
/SP45 82 array def %380 bis 775 mit deltalambda=05
/SP40 82 array def %380 bis 775 mit deltalambda=05
/SP35 82 array def %380 bis 775 mit deltalambda=05
/SP30 82 array def %380 bis 775 mit deltalambda=05

0 1 7 {/j exch def %j=0,7
0 1 79 {%i=0,79
        /i exch def
        /lambda 380 i 5 mul add def
        lamd i lambda put
        /E1 560 lambda div 5 exp def

        /E4 C2 TNCj j get 560    mul div def
        /E5 C2 TNCj j get lambda mul div def

        /E6 EE E4 exp def
        /E7 EE E5 exp def

        j 0 eq {SP65 i} if
        j 1 eq {SP60 i} if
        j 2 eq {SP55 i} if
        j 3 eq {SP50 i} if
        j 4 eq {SP45 i} if
        j 5 eq {SP40 i} if
        j 6 eq {SP35 i} if
        j 7 eq {SP30 i} if

        E1 100 mul E6 1 sub
                   E7 1 sub div mul
        put
       } for %i=0,79
       } for %j=0,7
           } if %xchart8=0

%*************************************************
/SE00 %80 data 5 nm
[100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used

/SC00 %80 data 5 nm
[ 33.00  39.92  47.40  55.17  63.30  71.81  80.60  89.53  98.10 105.80
 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09
 123.90 122.92 120.70 116.90 112.10 106.98 102.30  98.81  96.90  96.78
  98.00  99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15
  97.80  95.43  93.20  91.22  89.70  88.83  88.40  88.19  88.10  88.06
  88.00  87.86  87.80  87.99  88.20  88.20  87.90  87.22  86.30  85.30
  84.00  82.21  80.20  78.24  76.30  74.36  72.40  70.40  68.30  66.30
  64.40  62.80  61.50  60.20  59.20  58.50  58.10  58.00  58.20  58.50
 ] def %0.0 not used
 
0 1 79 {/i exch def %i=0,79
        /lamda 380 i 5 mul add def
        SP00 i SE00 i get lamda 560 div mul put
        SQ00 i SE00 i get 1120 lamda sub 560 div mul put
       } for %i=0,79

%C      LITERATURQUELLEN  SPEKTRALWERTE
%C       F2          CIE-DOKUMENT NR.15 FARBMESSUNG, 1971
%C                   TABELLE 2.1, SEITE 93-102

/F2  %3x80 data
[.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 
 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 
 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 
 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 
 .7621
 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 
 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 
 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 
 .004109 .002899 .002049 .001440 .0009999 .0006901 
 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 
 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 
 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 
 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 
 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 
 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 
 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 
 .01192 .00821 .005723 .004102 .002929 .002091 .001484 
 .001047 .00074 .00052 .0003611 .0002492 .0001719 
 .00012 .0000848 .00006 .0000424 .00003 .0000212 
 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 
 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 
 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 
 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 
 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 
 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 
 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10
 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20
 0.0 0.0 0.0 0.0 0.0 0.0 %26
] def

/F10 %3x80 data
[.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 
 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323
  .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177
  .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 
 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 
 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 
 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 
 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 
 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 
 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 
 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 
 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 
 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 
 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 
 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 
 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 
 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 
 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 
 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 
 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 
 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 
 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 
 .001091 
 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10
 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20
 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30
 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40
 0.0 0.0 0.0 0.0 %44
] def

%calculation of transformation data
/FARBE 30 array def
/FARBE [(R) (m) ( 570_770) %00
        (Y) (m) ( 520_770) %01
        (G) (m) ( 470_570) %02
        (C) (m) ( 380_570) %03
        (B) (m) ( 380_520) %04
        (M) (m) ( 570_470) %05
        (G) (o) ( 520_570) %06
        (M) (o) ( 570_520) %07
        (W) (0) ( 380_770) %08
        (N) (0) ( 380_770) %09
       ] def

/xshift 10 array def %max 6 device + 4 elementary
/yshift 10 array def
/colori 10 array def

/RX0 720 array def %9x80
/RX0 [

%(%Rm      00 570_770)
%380 %385 %390 %395 %400 %405 %410 %415 %420 %425
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%430 %435 %440 %445 %450 %455 %460 %465 %470 %475
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%480 %485 %490 %495 %500 %505 %510 %515 %520 %525
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%530 %535 %540 %545 %550 %555 %560 %565 %570 %575
0036 0036 0036 0036 0036 0036 0036 0036 0468 0900

%580 %585 %590 %595 %600 %605 %610 %615 %620 %625
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%630 %635 %640 %645 %650 %655 %660 %665 %670 %675
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%680 %685 %690 %695 %700 %705 %710 %715 %720 %725
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%730 %735 %740 %745 %750 %755 %760 %765 %770 %775
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%(%Ym    01 520_770)
%380 %385 %390 %395 %400 %405 %410 %415 %420 %425
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%430 %435 %440 %445 %450 %455 %460 %465 %470 %475
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%480 %485 %490 %495 %500 %505 %510 %515 %520 %525
0036 0036 0036 0036 0036 0036 0036 0036 0468 0900
%530 %535 %540 %545 %550 %555 %560 %565 %570 %575
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%580 %585 %590 %595 %600 %605 %610 %615 %620 %625
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%630 %635 %640 %645 %650 %655 %660 %665 %670 %675
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%680 %685 %690 %695 %700 %705 %710 %715 %720 %725
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%730 %735 %740 %745 %750 %755 %760 %765 %770 %775
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%(%Gm      02 470_570)
%380 %385 %390 %395 %400 %405 %410 %415 %420 %425
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%430 %435 %440 %445 %450 %455 %460 %465 %470 %475
0036 0036 0036 0036 0036 0036 0036 0036 0468 0900

%480 %485 %490 %495 %500 %505 %510 %515 %520 %525
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%530 %535 %540 %545 %550 %555 %560 %565 %570 %575
0900 0900 0900 0900 0900 0900 0900 0900 0468 0036

%580 %585 %590 %595 %600 %605 %610 %615 %620 %625
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%630 %635 %640 %645 %650 %655 %660 %665 %670 %675
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%680 %685 %690 %695 %700 %705 %710 %715 %720 %725
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%730 %735 %740 %745 %750 %755 %760 %765 %770 %775
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%(%Cm     03 380_570)
%380 %385 %390 %395 %400 %405 %410 %415 %420 %425
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%430 %435 %440 %445 %450 %455 %460 %465 %470 %475
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%480 %485 %490 %495 %500 %505 %510 %515 %520 %525
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%530 %535 %540 %545 %550 %555 %560 %565 %570 %575
0900 0900 0900 0900 0900 0900 0900 0900 0468 0036

%580 %585 %590 %595 %600 %605 %610 %615 %620 %625
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%630 %635 %640 %645 %650 %655 %660 %665 %670 %675
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%680 %685 %690 %695 %700 %705 %710 %715 %720 %725
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%730 %735 %740 %745 %750 %755 %760 %765 %770 %775
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%(%Bm    04 380_520)
%380 %385 %390 %395 %400 %405 %410 %415 %420 %425
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%430 %435 %440 %445 %450 %455 %460 %465 %470 %475
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%480 %485 %490 %495 %500 %505 %510 %515 %520 %525
0900 0900 0900 0900 0900 0900 0900 0900 0468 0036
%530 %535 %540 %545 %550 %555 %560 %565 %570 %575
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%580 %585 %590 %595 %600 %605 %610 %615 %620 %625
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%630 %635 %640 %645 %650 %655 %660 %665 %670 %675
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%680 %685 %690 %695 %700 %705 %710 %715 %720 %725
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%730 %735 %740 %745 %750 %755 %760 %765 %770 %775
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%(%Mm     05 570_470)
%380 %385 %390 %395 %400 %405 %410 %415 %420 %425
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%430 %435 %440 %445 %450 %455 %460 %465 %470 %475
0900 0900 0900 0900 0900 0900 0900 0900 0468 0036

%480 %485 %490 %495 %500 %505 %510 %515 %520 %525
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%530 %535 %540 %545 %550 %555 %560 %565 %570 %575
0036 0036 0036 0036 0036 0036 0036 0036 0468 0900

%580 %585 %590 %595 %600 %605 %610 %615 %620 %625
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%630 %635 %640 %645 %650 %655 %660 %665 %670 %675
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%680 %685 %690 %695 %700 %705 %710 %715 %720 %725
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%730 %735 %740 %745 %750 %755 %760 %765 %770 %775
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%(%Go      06 520_570)
%380 %385 %390 %395 %400 %405 %410 %415 %420 %425
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%430 %435 %440 %445 %450 %455 %460 %465 %470 %475
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%480 %485 %490 %495 %500 %505 %510 %515 %520 %525
0036 0036 0036 0036 0036 0036 0036 0036 0468 0900
%530 %535 %540 %545 %550 %555 %560 %565 %570 %575
0900 0900 0900 0900 0900 0900 0900 0900 0468 0036

%580 %585 %590 %595 %600 %605 %610 %615 %620 %625
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%630 %635 %640 %645 %650 %655 %660 %665 %670 %675
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%680 %685 %690 %695 %700 %705 %710 %715 %720 %725
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%730 %735 %740 %745 %750 %755 %760 %765 %770 %775
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%(%Mo      07 570_520)
%380 %385 %390 %395 %400 %405 %410 %415 %420 %425
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%430 %435 %440 %445 %450 %455 %460 %465 %470 %475
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%480 %485 %490 %495 %500 %505 %510 %515 %520 %525
0900 0900 0900 0900 0900 0900 0900 0900 0468 0036
%530 %535 %540 %545 %550 %555 %560 %565 %570 %575
0036 0036 0036 0036 0036 0036 0036 0036 0468 0900

%580 %585 %590 %595 %600 %605 %610 %615 %620 %625
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%630 %635 %640 %645 %650 %655 %660 %665 %670 %675
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%680 %685 %690 %695 %700 %705 %710 %715 %720 %725
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%730 %735 %740 %745 %750 %755 %760 %765 %770 %775
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%(%W0(r=0,900) 08 380_770)
%380 %385 %390 %395 %400 %405 %410 %415 %420 %425
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%430 %435 %440 %445 %450 %455 %460 %465 %470 %475
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%480 %485 %490 %495 %500 %505 %510 %515 %520 %525
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%530 %535 %540 %545 %550 %555 %560 %565 %570 %575
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%580 %585 %590 %595 %600 %605 %610 %615 %620 %625
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%630 %635 %640 %645 %650 %655 %660 %665 %670 %675
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%680 %685 %690 %695 %700 %705 %710 %715 %720 %725
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900
%730 %735 %740 %745 %750 %755 %760 %765 %770 %775
0900 0900 0900 0900 0900 0900 0900 0900 0900 0900

%(%N0(r=0,036) 09 380_770)
%380 %385 %390 %395 %400 %405 %410 %415 %420 %425
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%430 %435 %440 %445 %450 %455 %460 %465 %470 %475
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%480 %485 %490 %495 %500 %505 %510 %515 %520 %525
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%530 %535 %540 %545 %550 %555 %560 %565 %570 %575
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%580 %585 %590 %595 %600 %605 %610 %615 %620 %625
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%630 %635 %640 %645 %650 %655 %660 %665 %670 %675
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

%680 %685 %690 %695 %700 %705 %710 %715 %720 %725
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036
%730 %735 %740 %745 %750 %755 %760 %765 %770 %775
0036 0036 0036 0036 0036 0036 0036 0036 0036 0036

] def


/xcol10_BS {TBL 0 -50 rmoveto  (10) show 0 50 rmoveto TBS} bind def
/xcol10KBS {TBL 0 -50 rmoveto (,10) show 0 50 rmoveto TBS} bind def

/xcolorl xcolor def
0 1 0 {/xcolorl exch def %xcolorl=0,0


xcolorl 1 eq {0 1 239 {/i exch def %i=0,239
                       F2 i F10 i get put
                      } for %i=0,239
           } if

/YKSUM 0 def %For CIE Illuminant E
0 1 79 {/i exch def %i=0,1,79
        /YKSUM YKSUM F2  80 i add get add def
} for %i=0,1,79

/F2N 240 array def
0 1 79 {/i exch def %i=0,1,79
        F2N  00 i add F2  00 i add get YKSUM div 100 mul put
        F2N  80 i add F2  80 i add get YKSUM div 100 mul put
        F2N 160 i add F2 160 i add get YKSUM div 100 mul put
} for %i=0,1,79

/FXN 82 array def %FXN 0 = F2N imax
/FYN 82 array def
/FZN 82 array def
%defines FXN, FYN, FZN 0 to 79
0 1 79 {/i exch def %i=0,79
        FXN i F2N 000 i add get put
        FYN i F2N 080 i add get put
        FZN i F2N 160 i add get put
} for %i=0,79

%special wavelength range with complementary colours for E?
/FXD 63 array def
/FYD 63 array def
/FZD 63 array def
/DOW 63 array def

00 1 60 {/i exch def %i=0,60 %range 400..700nm
         FXD i FXN 005 i add get put
         FYD i FYN 005 i add get put
         FZD i FZN 005 i add get put
         DOW i 400 i 5 mul add put %range 400 to 700
        } for %i=0,60

%for interpolation
FXD 61 FXD 60 get put
FYD 61 FYD 60 get put
FZD 61 FZD 60 get put

FXD 62 FXD 60 get put
FYD 62 FYD 60 get put
FZD 62 FZD 60 get put

/FAD 63 array def
/FBD 63 array def
/FCD 63 array def

20 setlinewidth
/xdel  1005 def
/ydel   395 def
/x0  050 def
/x1 -150 def

/Xi 82 array def %80 spectral colours 380 to 775nm
/Yi 82 array def
/Zi 82 array def
/XANi 82 array def
/YANi 82 array def
/ZANi 82 array def

/AANi  82 array def %actual data for plot, spectral colours
/BANi  82 array def

/FXNZ  17 array def
/FYNZ  17 array def
/FZNZ  17 array def
/XZi   17 array def
/YZi   17 array def
/ZZi   17 array def
/XANZi 17 array def
/YANZi 17 array def
/ZANZi 17 array def

/AANZi  17 array def %actual data for plot, purple colours
/BANZi  17 array def

/XRj 10 array def %10 spectral or max 10 device colours
/YRj 10 array def
/ZRj 10 array def
/XANRj 10 array def
/YANRj 10 array def
/ZANRj 10 array def

/XSj 10 array def %10 spectral or max 10 device atagonistic colours
/YSj 10 array def
/ZSj 10 array def
/XANSj 10 array def
/YANSj 10 array def
/ZANSj 10 array def

/XCj 10 array def %10 spectral from continuous colours
/YCj 10 array def
/ZCj 10 array def
/XANCj 10 array def
/YANCj 10 array def
/ZANCj 10 array def

/XAj 10 array def %10 spectral from continuous colours
/YAj 10 array def
/ZAj 10 array def
/XANAj 10 array def
/YANAj 10 array def
/ZANAj 10 array def


/RAk 82 array def

7 1 7 {/xchart4 exch def %xchart4=0,7

/xchartl xchart def
2 1 2 {/xchartl exch def %xchartl=0,7

%/KN 0 def %for normalization 1,000
/KN 1 def %for normalization 0,900

gsave

5 /Times-ISOL1 FS
/cvishow {cvi 6 string cvs show} def
%75 85 moveto
%lanind cvishow (-) show
%colorm cvishow
%deintp cvishow
%xcolorl cvishow
%xchart cvishow
%pchart cvishow
%colsep cvishow (-L) show pmetam cvishow

/tfr {1 0 0 setrgbcolor} def
/tfn {0 setgray} def
/tfw {1 setgray} def

5 /Times-ISOL1 FS
72 85 moveto
(egt50-6n) show

72 90 translate

0.010 MM dup scale

25 setlinewidth
0 0 0 0 setcmyk_olvcolor
0 0 moveto 5400     0 rlineto 0 4000 rlineto
           5400 neg 0 rlineto closepath fill

0 0  moveto  5400 0 rlineto 0 4000 rlineto
            -5400 0 rlineto closepath clip

0 0 0 1 setcmyk_olvcolor
0 0 moveto 5400     0 rlineto 0 4000 rlineto
           5400 neg 0 rlineto closepath stroke

%calculation of XW,YW,ZW for 8 illuminants Dxx or Pxx
0 1 79 {/i exch def %i=0,79
        SDAK i xchart8 0 eq {%xchart8=0 Pxx
               xchartl 0 eq {SP65 i get put} if
               xchartl 1 eq {SP60 i get put} if
               xchartl 2 eq {SP55 i get put} if
               xchartl 3 eq {SP50 i get put} if
               xchartl 4 eq {SP45 i get put} if
               xchartl 5 eq {SP40 i get put} if
               xchartl 6 eq {SP35 i get put} if
               xchartl 7 eq {SP30 i get put} if
                            }%xchart8=0 Pxx
                            {%xchart8=1 Dxx
               xchartl 0 eq {SD65 i get put} if
               xchartl 1 eq {SD50 i get put} if
               xchartl 2 eq {SP40 i get put} if
               xchartl 3 eq {SA00 i get put} if
               xchartl 4 eq {SE00 i get put} if
               xchartl 5 eq {SC00 i get put} if
               xchartl 6 eq {SP00 i get put} if
               xchartl 7 eq {SQ00 i get put} if
                            } ifelse %xchart8=1 Dxx
       } for %i=0,79

/YKSUM 0 def
0 1 79 {/i exch def %i=0,1,79
        /YKSUM YKSUM SDAK i get F2  80 i add get mul add def
} for %i=0,1,79

0 1 79 {/i exch def %i=0,1,79
        F2N  00 i add SDAK i get F2  00 i add get mul YKSUM div 100 mul put
        F2N  80 i add SDAK i get F2  80 i add get mul YKSUM div 100 mul put
        F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put
} for %i=0,1,79

%XW,YW,ZW for white
/XW 0 def
/YW 0 def
/ZW 0 def
0 1 079 {/i exch def %i=0,79
         /XW XW F2N  00 i add get add def
         /YW YW F2N  80 i add get add def
         /ZW ZW F2N 160 i add get add def
        } for %i=0,79

/SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00
/XANW XW SUMW div def
/YANW YW SUMW div def
/ZANW ZW SUMW div def

/AANW XW YW 0.0001 add div def
/BANW ZW YW 0.0001 add div 0.4 mul neg def

%************************************************
%XYZRj for 10 reflections

0 1 09 {/j exch def %j=0,9 %10 Reflections
        /jx j 80 mul def
           0 1 79 {/i exch def %i=0,79
                   RAk i RX0 jx i add get 1000 div put
                  } for %i=0,79

          /XR 0 def
          /YR 0 def
          /ZR 0 def
          0 1 079 {/i exch def %i=0,79
                   /XR XR F2N  00 i add get RAk i get mul add def
                   /YR YR F2N  80 i add get RAk i get mul add def
                   /ZR ZR F2N 160 i add get RAk i get mul add def
                  } for %i=0,79

         XRj j XR put
         YRj j YR put
         ZRj j ZR put
         
         /SUMR XR YR add ZR add def
         XANRj j XR SUMR 0.0001 add div put
         YANRj j YR SUMR 0.0001 add div put
         ZANRj j ZR SUMR 0.0001 add div put

        } for %j=0,9

%*******************************************

0 1 62 {/i exch def %i=0,62
        FAD i FXD i get put
        FBD i FYD i get put
        FCD i FZD i get put
       } for %i=0,62

%      FXU(1)=FF(2)*U(3)-FF(3)*U(2)
%      FXU(2)=FF(3)*U(1)-FF(1)*U(3)
%      FXU(3)=FF(1)*U(2)-FF(2)*U(1)

%      SUBROUTINE DOWEL (F,FXU,IMAX,IO)
%      DIMENSION F(99,3),FXU(3)
%      I=1
%      T2=F(1,1)*FXU(1)+F(1,2)*FXU(2)+F(1,3)*FXU(3)
%      IF(T2) 1,1,4
%    1 T1=T2
%      I=I+1
%      T2=F(I,1)*FXU(1)+F(I,2)*FXU(2)+F(I,3)*FXU(3)
%      IF(T2) 1,1,2
%    2 IF(T1) 3,3,1
%    3 IO=I-1
%      RETURN
%    4 T1=F(IMAX,1)*FXU(1)+F(IMAX,2)*FXU(2)+F(IMAX,3)*FXU(3)
%      IF(T1) 5,5,1
%    5 IO=IMAX
%      RETURN
%      END

%*********************************************************
/proc_ABC_KNP_FWERTiX
{%BEG proc_ABC_KNP_FWERT

%input FAD,FBD,FCD, KNP
%output FWERTiX/Y/Z (i=1,4)

    kNP 1 ge {/FWERT1X FAD kNP 1 sub get def
              /FWERT1Y FBD kNP 1 sub get def
              /FWERT1Z FCD kNP 1 sub get def}
             {/FWERT1X FAD 0 get def %again 400nm for i=0
              /FWERT1Y FBD 0 get def
              /FWERT1Z FCD 0 get def} ifelse

    /FWERT2X FAD kNP get def
    /FWERT2Y FBD kNP get def
    /FWERT2Z FCD kNP get def

    /FWERT3X FAD kNP 1 add get def
    /FWERT3Y FBD kNP 1 add get def
    /FWERT3Z FCD kNP 1 add get def

    /FWERT4X FAD kNP 2 add get def
    /FWERT4Y FBD kNP 2 add get def
    /FWERT4Z FCD kNP 2 add get def

} bind def %END proc_ABC_KNP_FWERTiX

%*********************************************************
/proc_XIE_TN1
{%BEG proc_XIE_TN1

%input XIE, FWERTiX/Y/Z (i=1,4)
%output TN1

/A1N XIE       1 XIE sub mul XIE 2 sub mul 6 div   def
/A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def
/A3N XIE 1 add XIE       mul 2 XIE sub mul 0.5 mul def
/A4N XIE 1 add XIE       mul XIE 1 sub mul 6 div   def
/FNX A1N FWERT1X mul
     A2N FWERT2X mul add
     A3N FWERT3X mul add
     A4N FWERT4X mul add def
/FNY A1N FWERT1Y mul
     A2N FWERT2Y mul add
     A3N FWERT3Y mul add
     A4N FWERT4Y mul add def
/FNZ A1N FWERT1Z mul
     A2N FWERT2Z mul add
     A3N FWERT3Z mul add
     A4N FWERT4Z mul add def
/TNX FNX FXU1 mul
     FNY FXU2 mul add
     FNZ FXU3 mul add def

} bind def %END proc_XIE_TN1

%*********************************************************

/WEL1 60 array def %irregular definition
/WEL2 60 array def %irregular definition
      %0   1   2   3   4   5   6   7   8   9
/WEL1 [405 435 450 460 465 470 475 480 485 490
       495 500 510 520 530 540 545 550 555 560
      ] def

0 1 19 {/k exch def %k=0,19 %wavelength 405..700nm

        /j  WEL1 k get 400 sub 5 idiv def
        /LP k def
        /LPP 20.5 k add def

       /FF1 FXD j get def %start at 405..700nm
       /FF2 FYD j get def
       /FF3 FZD j get def

       /U1 XW def
       /U2 YW def
       /U3 ZW def
       
       /FXU1 FF2 U3 mul FF3 U2 mul sub def
       /FXU2 FF3 U1 mul FF1 U3 mul sub def
       /FXU3 FF1 U2 mul FF2 U1 mul sub def

/INP -1 def
/IPN -1 def
%assumption jump from TN to TP from negativ to positiv
       0 1 60 {/i exch def %i=1,60
               /TN FAD i get FXU1 mul
                   FBD i get FXU2 mul add
                   FCD i get FXU3 mul add def

               /TP FAD i 1 add get FXU1 mul
                   FBD i 1 add get FXU2 mul add
                   FCD i 1 add get FXU3 mul add def
               TN 0 le TP 0 gt and {/INP i def exit} if
              } for %i=1,60

       0 1 60 {/i exch def %i=1,60
               /TN FAD i get FXU1 mul
                   FBD i get FXU2 mul add
                   FCD i get FXU3 mul add neg def
               /TP FAD i 1 add get FXU1 mul
                   FBD i 1 add get FXU2 mul add
                   FCD i 1 add get FXU3 mul add neg def
               TN 0 le TP 0 gt and {/IPN i def exit} if
              } for %i=1,60

%*********************************************************
/kNP INP def

kNP 0 ge {%kNP>=0

proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4)

/XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2
/XIE2 1 def

0 1 9 {/mk exch def %mk=0,9
       /XIE XIE1 XIE2 add 0.5 mul def
       proc_XIE_TN1  %input XIE, ouput TN1
       TNX 0 le {/XIE1 XIE def /TN1 TNX def}
                {/XIE2 XIE def /TP1 TNX def} ifelse
      } for %mk=0,9

/XIE XIE1 XIE2 add 0.5 mul def
/DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def
/XIENP XIE def

       } if %kNP>=0

%*********************************************************
/kNP IPN def

kNP 0 ge {%kNP>=0

proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4)

/XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2
/XIE2 1 def
/FXU1 FXU1 neg def
/FXU2 FXU2 neg def
/FXU3 FXU3 neg def

0 1 9 {/mk exch def %mk=0,9
       /XIE XIE1 XIE2 add 0.5 mul def
       proc_XIE_TN1  %input XIE, ouput TN1
       TNX 0 le {/XIE1 XIE def /TN1 TNX def}
                {/XIE2 XIE def /TP1 TNX def} ifelse
      } for %mk=0,9

/XIE XIE1 XIE2 add 0.5 mul def
/DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def
/XIEPN XIE def

       } if %kNP>=0

%*********************************************************
0 1 79 {/i exch def %i=0,79
        RA i 0.036 put
       } for %i=0,79

INP -1 eq {/i1 0 def}                %380nm
          {/i1 INP 5 add def} ifelse %405..700nm

IPN -1 eq {/i2 79 def}               %770nm
          {/i2 IPN 5 add def} ifelse %405..700nm

i2 i1 ge {%i1<i2
          i1 1 i2 {/i exch def %i=i1,i2
                   RA i 0.900 put
                  } for %i=i1,i2
         }%i1<i2
         {%i1>i2
          i1 1 79 {/i exch def %i=i1,79
                   RA i 0.900 put
                  } for %i=i1,79
          0  1 i2 {/i exch def %i=0,i2
                   RA i 0.900 put
                  } for %i=0,i2
                  
         } ifelse %i1>i2

%correction (0.900+0.036)/2=0.648
i2 i1 ge {%i1<i2
          RA i1 0.468 put
          RA i2 0.468 XIEPN 0.5 sub add put
         }%i1<i2
         {%i1>i2
          RA i1 0.468 put
          RA i2 0.468 XIEPN 0.5 sub add put
         } ifelse %i1>i2

%***************************************************
/X 0 def
/Y 0 def
/Z 0 def
0 1 079 {/i exch def %i=0,79
         /X X F2N  00 i add get RA i get mul add def
         /Y Y F2N  80 i add get RA i get mul add def
         /Z Z F2N 160 i add get RA i get mul add def
        } for %i=0,79

/SUM X Y add Z add def
/XAN X SUM 0.0001 add div def
/YAN Y SUM 0.0001 add div def
/ZAN Z SUM 0.0001 add div def

%*************************************************

0 0 0 1 setcmyk_olvcolor

0 1 1 {/Icom exch def %Icom=0,1

Icom 0 eq {%Icom=0,1
           Xi k X put
           Yi k Y put
           Zi k Z put
           XANi k XAN put
           YANi k YAN put
           ZANi k ZAN put
          }%Icom=0
          {%Icom=1
           /kP 20 k add def
           Xi kP XW X sub put
           Yi kP YW Y sub put
           Zi kP ZW Z sub put
           /SUMi Xi kP get
                 Yi kP get add
                 Zi kP get add def
           XANi kP Xi kP get SUMi 0.0001 add div put
           YANi kP Yi kP get SUMi 0.0001 add div put
           ZANi kP Zi kP get SUMi 0.0001 add div put
          } ifelse %Icom=1

} for %Icom=0,1

KN 1 eq {%KN=1 change instead of normalization 1,000
         Xi k  Xi k  get 0.9000 mul put
         Yi k  Yi k  get 0.9000 mul put
         Zi k  Zi k  get 0.9000 mul put
         Xi kP Xi kP get 0.9000 mul put
         Yi kP Yi kP get 0.9000 mul put
         Zi kP Zi kP get 0.9000 mul put
        } if %KN=1

} for %k=0,19

%**********************************************************************
%XW,YW,ZW and XK,YK,ZK for white
/XW 0 def
/YW 0 def
/ZW 0 def
0 1 079 {/i exch def %i=0,79
         /XW XW F2N  00 i add get add def
         /YW YW F2N  80 i add get add def
         /ZW ZW F2N 160 i add get add def
        } for %i=0,79

KN 0 eq {%KN=0 %normalization
         /XK XW def
         /YK YW def
         /ZK ZW def
        }%KN=0
        {%KN=1
         /XK XW 0.9000 mul def
         /YK YW 0.9000 mul def
         /ZK ZW 0.9000 mul def
        } ifelse %KN=1

/SUMK XK YK add ZK add def %for D65, D50, P40, A00, E00
/XANK XK SUMK div def
/YANK YK SUMK div def
/ZANK ZK SUMK div def

/LP LP 1 add def

/xtexti 96 array def
/ytexti 96 array def
/xtexti [
%T00 T10  T20   T30   T40  T41   T50  T51   T60  T61  T70  T71
%0   1    2     3     4    5     6    7     8    9    10   11
1700 2000 2000  3000  3200 4300  3200 4300  3200 4300 3200 4300 %0 (x,y)
1700 2000 2000  3000  3200 4300  3200 4300  3200 4300 3200 4300 %1 (x,y)
0050 0050 0050  0050  0050 1300  0050 1300  0050 1300 0050 1300 %2 (A2,B2)
0050 0050 0050  0050  0050 1300  0050 1300  0050 1300 0050 1300 %3 (A2,B2)
0050 0050 0050  0050  0050 1300  0050 1300  0050 1300 0050 1300 %4 (A,B)
0050 0050 0050  0050  0050 1300  0050 1300  0050 1300 0050 1300 %5 (A,B)
0050 0050 0050  0050  0050 1300  0050 1300  0050 1300 0050 1300 %6 (A1,B1)
0050 0050 0050  0050  0050 1300  0050 1300  0050 1300 0050 1300 %7 (A2,B2)
] def
/ytexti [ 
3800 3580 3360  3140  2920 2920  2700 2700  2480 2480 2260 2260 %0 (x,y)
3800 3580 3360  3140  2920 2920  2700 2700  2480 2480 2260 2260 %1 (x,y)
0500 0290 0080  1600  1380 1380  1160 1160  0940 0940 0720 0720 %3 (A2,B2)
0500 0290 0080  1600  1380 1380  1160 1160  0940 0940 0720 0720 %4 (A2,B2)
0500 0290 0080  1600  1380 1380  1160 1160  0940 0940 0720 0720 %4 (A,B)
0500 0290 0080  1600  1380 1380  1160 1160  0940 0940 0720 0720 %5 (A,B)
0500 0290 0080  1600  1380 1380  1160 1160  0940 0940 0720 0720 %6 (A1,B1)
0500 0290 0080  1600  1380 1380  1160 1160  0940 0940 0720 0720 %7 (A2,B2)
] def

xchart4 0 eq 
xchart4 1 eq or {%xchart4=0,1

4600 1600 moveto
TBS (Parame\255) show
4600 1400 moveto
TBS (ter:) show TBIS
xchart4 0 eq {( N) show} if
xchart4 1 eq {( Y) show} if

proz_chromaticity_lines

       } if %xchart4=0,1

%***********************************************************

/icolor 9 array def
         %Rm %Ym %Gm %Cm %Bm %Mm %Go %Mo %W
/icolor [20  10  06  00  30  26  06  26  40] def

/imshow {-20 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def
/ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def

%*************************************************
%allways
/kxi  8 array def
/xci  8 array def
/Bci  8 array def
/xcti 8 array def
/Bcti 8 array def

%     0    1    2    3    4    5    6    7
%    (P65)(P60)(P55)(P50)(P45)(P40)(P35)(P30)
%or  (D65)(D50)(P40)(A00)(E00)(C00)(P00)(Q00)
/kxi [9    9    10   10   10   10   11   12] def
/kx kxi xchartl get def

xchart4 0 eq
xchart4 1 eq or 
xchart4 4 eq or
xchart4 5 eq or {%xchart4=0,1 (x,y); 4,5 (A, B)
%       (P65)   (P60)   (P55)   (P50)   (P45)   (P40)   (P35)   (P30)
%or     (D65)   (D50)   (P40)   (A00)   (E00)   (C00)   (P00)   (Q00)
%       0       1       2       3       4       5       6       7
/xci  [ 0.000   0.000   0.000   0.000   0.000   0.000   0.000   0.000 ] def
/xcti [(0,000) (0,000) (0,000) (0,000) (0,000) (0,000) (0,000) (0,000)] def
/Bci  [ 1.000   1.000   1.000   1.000   1.000   1.000   1.000   1.000 ] def
/Bcti [(1,000) (1,000) (1,000) (1,000) (1,000) (1,000) (1,000) (1,000)] def
             } if %xchart4=1

xchart4 6 eq {%xchart4=6 (A1, B1)
%       (P65)   (P60)   (P55)   (P50)   (P45)   (P40)   (P35)   (P30)
%or     (D65)   (D50)   (P40)   (A00)   (E00)   (C00)   (P00)   (Q00)
%       0       1       2       3       4       5       6       7
/xci  [ 0.110   0.110   0.110   0.110   0.110   0.110   0.110   0.110 ] def
/xcti [(0,110) (0,110) (0,110) (0,110) (0,110) (0,110) (0,110) (0,110)] def
/Bci  [ 1.000   1.000   1.000   1.000   1.000   1.000   1.000   1.000 ] def
/Bcti [(1,000) (1,000) (1,000) (1,000) (1,000) (1,000) (1,000) (1,000)] def
             } if %xchart4=6

xchart4 2 eq
xchart4 3 eq or 
xchart4 7 eq or {%xchart4=2,3,7
%       (P65)   (P60)   (P55)   (P50)   (P45)   (P40)   (P35)   (P30)
%or     (D65)   (D50)   (P40)   (A00)   (E00)   (C00)   (P00)   (Q00)
%       0       1       2       3       4       5       6       7
/xci  [ 0.110   0.110   0.110   0.110   0.110   0.110   0.110   0.110 ] def
/xcti [(0,110) (0,110) (0,110) (0,110) (0,110) (0,110) (0,110) (0,110)] def
/Bci  [0.750   0.840   0.900   1.000     1.100   1.300   1.650   2.300 ] def
/Bcti [(0,750) (0,840) (0,900) (1,000)  (1,100) (1,300) (1,650) (2,300)] def
             } if %xchart4=2,3,7

/xc  xci  xchartl get def
/xct xcti xchartl get def
/Bc  Bci  xchartl get def
/Bct Bcti xchartl get def

/j24 2 def %j24 amount of colours 0:06, 1:08, 2:10

xchart4 0 eq 
xchart4 1 eq or {%xchart4=0,1 %only for (x,y)

/fakt 4000 def

proz_name_range

proz_opti

600 400 translate %for scala and graphic

0 1 39 {/i exch def %i=0,39
        /An XANi i get def
        /Bn YANi i get def
        An fakt mul
        Bn fakt mul 
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39

XANW fakt mul YANW fakt mul 90 0 360 arc stroke

%XANW fakt mul 200 sub
%YANW fakt mul 250 sub moveto
%TBS TELi xchartl get show

TBIS
0 1 j24 {/j exch def %j=0,j24
j 0 eq {/i  0 def} if %Cm-Rm
j 1 eq {/i  5 def} if %Gm-Mm
j 2 eq {/i 13 def} if %Ym-Bm
j 3 eq {/i kx def} if %Max-Min
j 4 eq {%new only for i=40
        /i 40 def /k 6 def %Go
        Xi i XRj k get put
        Yi i YRj k get put
        Zi i ZRj k get put
       } if

/SUM Xi i get
     Yi i get add
     Zi i get add 0.0001 add def
XANCj j  Xi i get SUM div put
YANCj j  Yi i get SUM div put
ZANCj j  Zi i get SUM div put

/An XANCj j get def
/Bn YANCj j get def

/AnY An fakt mul def                           %xan
/BnY Bn fakt mul def                           %yan

/Paramshow {Yi i get cvishow} bind def
j 0 eq {AnY 400 sub BnY 050 sub moveto 
        xchart4 0 eq {(C) show imshow} if
        xchart4 1 eq {Paramshow} if
        1 0 0 0 setcmykcolor} if %Cm
j 1 eq {AnY 400 sub BnY 050 sub moveto
        xchart4 0 eq {(G) show imshow} if
        xchart4 1 eq {Paramshow} if
        1 0 1 0 setcmykcolor} if %Gm
j 2 eq {AnY 100 sub BnY 250 sub moveto
        xchart4 0 eq {(Y) show imshow} if
        xchart4 1 eq {Paramshow} if
        0 0 1 0 setcmykcolor} if %Ym
j 3 eq {AnY 300 sub BnY 250 sub moveto
        xchart4 0 eq {(max) show} if
        xchart4 1 eq {Paramshow} if
        0.3 0 1 0 setcmykcolor} if %Ymax
j 4 eq {AnY 320 sub BnY 000 add moveto
        xchart4 0 eq {(G) show ioshow} if
        xchart4 1 eq {Paramshow} if
        1 0.5 1 0 setcmykcolor} if %Go
        
newpath
AnY BnY 90 0 360 arc fill
0 setgray
newpath
AnY BnY 90 0 360 arc stroke

} for %j=0,j24


%continue %j=0,j24 for antagonistic (A) colours

0 1 j24 {/j exch def %j=0,j24
j 0 eq {/i  0 def} if %Cm-Rm
j 1 eq {/i  5 def} if %Gm-Mm
j 2 eq {/i 13 def} if %Ym-Bm
j 3 eq {/i kx def} if %Max-Min
j 4 eq {%new only for i=40
        /i 40 def /k 6 def %Mo
        Xi i XRj k get put %special
        Yi i YRj k get put
        Zi i ZRj k get put
       } if

/SUM XK Xi i get sub
     YK Yi i get sub add
     ZK Zi i get sub add 0.0001 add abs def
XANAj j  XK Xi i get sub SUM div put
YANAj j  YK Yi i get sub SUM div put
ZANAj j  ZK Zi i get sub SUM div put

/An XANAj j get def
/Bn YANAj j get def

/AnY An fakt mul def                           %xan
/BnY Bn fakt mul def                           %yan

/Paramshow {YK Yi i get sub cvishow} bind def
j 0 eq {AnY 150 add BnY 150 sub moveto
        xchart4 0 eq {(R) show imshow} if
        xchart4 1 eq {Paramshow} if
        0 1 1 0 setcmykcolor} if %Rm
j 1 eq {AnY 150 add BnY 050 sub moveto
        xchart4 0 eq {(M) show imshow} if
        xchart4 1 eq {Paramshow} if
        0 1 0 0 setcmykcolor} if %Mm
j 2 eq {AnY 350 sub BnY 100 add moveto
        xchart4 0 eq {(B) show imshow} if
        xchart4 1 eq {Paramshow} if
        1 1 0 0 setcmykcolor} if %Bm
j 3 eq {AnY 150 sub BnY 250 sub moveto
        xchart4 0 eq {(min) show} if
        xchart4 1 eq {Paramshow} if
        0.7 1 0 0 setcmykcolor} if %Ymin
j 4 eq {AnY 350 sub BnY 050 sub moveto
        xchart4 0 eq {(M) show ioshow} if
        xchart4 1 eq {Paramshow} if
        0 0.5 0 0 setcmykcolor} if %Mo

newpath
AnY BnY 90 0 360 arc fill
0 setgray
newpath
AnY BnY 90 0 360 arc stroke

} for %j=0,j24

-600 -400 translate %for scala and grafic

} if %xchart4=0,1

%**************************************************************
xchart4 2 eq
xchart4 3 eq or {%xchart4=2,3 %only for (A2,B2)


/fakt 20 def
/a2 1.00 def
/b2 -0.4 def

proz_name_range

proz_opti

proz_param

newpath
/xt2 3900 def
/yt2 1200 def
xt2 yt2 translate

%red cylinder CAB=62
1 0 0 setrgbcolor
[100] 0 setdash
062 fakt mul 100 fakt mul moveto
062 fakt mul 000 fakt mul lineto stroke
-62 fakt mul 100 fakt mul moveto
-62 fakt mul 000 fakt mul lineto stroke
060 fakt mul 102 fakt mul moveto (62) show
-64 fakt mul 102 fakt mul moveto (-62) show
[ ] 0 setdash
0 setgray

%axis and scales
0 0 0 1 setcmyk_olvcolor
-1200 0 moveto 2500 0 rlineto stroke

0  -400 moveto 0 3000  rlineto stroke

1300 100 sub  50 moveto 100 -50 rlineto
                       -100 -50 rlineto closepath fill
-50 2600 100 sub moveto 50  100 rlineto
                        50 -100 rlineto closepath fill

/xt10x 5 array def
/yt10x 5 array def

/xt10x [(-50) ( ) (  50)] def
/yt10x [(0)   ( ) (100)] def

0 0 0 1 setcmyk_olvcolor
0 1 2 {/i exch def %i=0,2 x-axis
        -1000   i 1000   mul add  -75 moveto 0 150 rlineto stroke
        -1200   i 1000   mul add -300 moveto
        TBS xt10x i get show
        i 2 eq {-1000 i 1000 mul add 0 moveto
                -200 200 rmoveto
                TBIK (C) show 
                00 -50 rmoveto TBS (AB,2) show 0 50 rmoveto
                xcolorl 1 eq {xcol10KBS} if
               } if
       } for %i=0,2

0 1 2 {/i exch def %i=0,2 y-axis
       -75   0000 i 1000 mul add moveto 150 0 rlineto stroke
       0100 i 1000 mul 100 sub i 0 eq {100 sub} if moveto
       TBS yt10x i get show
       i 2 eq {0 0200 i 1000 mul add moveto
               100 150 rmoveto
               TBIK (Y) show
               xcolorl 1 eq {xcol10KBS} if
              } if
       } for %i=0,2

newpath
TBS
0 setgray
0  3.6 fakt mul 90 0 360 arc fill            %N
newpath
6 fakt mul  4 fakt mul moveto (3,6) show
2 fakt mul 52 fakt mul moveto (50)  show

1 setgray
0 90.0 fakt mul 90 0 360 arc fill   %W

0 setgray
0 90.0 fakt mul 90 0 360 arc stroke %W
newpath
5 fakt mul 80 fakt mul moveto (90) show
newpath

2 fakt mul 35 fakt mul moveto (46,8) show

/Anj  10 array def
/Bnj  10 array def
/AnYj 10 array def
/BnYj 10 array def
/dABj 10 array def
/CABj 10 array def
/Yj   10 array def
/Cfj  10 array def
/Yfj  10 array def

%10 chromatic colours from continuous colours
TBIS
0 1 j24 {/j exch def %j=0,j24
j 0 eq {/i  0 def} if %Cm-Rm
j 1 eq {/i  5 def} if %Gm-Mm
j 2 eq {/i 13 def} if %Ym-Bm
j 3 eq {/i kx def} if %Max-Min
j 4 eq {/i 40 def /k 6 def %Go
        Xi i XRj k get put %special
        Yi i YRj k get put
        Zi i ZRj k get put
       } if

/SUM Xi i get
     Yi i get add
     Zi i get add 0.0001 add def
XANCj j Xi i get SUM div put
YANCj j Yi i get SUM div put
ZANCj j Zi i get SUM div put

Anj j XANCj j get xc sub YANCj j get 0.0001 add div          %2.5(a-an)Y
      XANK        xc sub YANK        0.0001 add div sub put
Bnj j ZANCj j get        YANCj j get 0.0001 add div          %2.5(b-bn)Y
      ZANK               YANK        0.0001 add div sub 0.4 mul neg 
      Bc mul put

Yj   j           Yi i get              put
AnYj j Anj j get Yi i get mul fakt mul Cc mul put
BnYj j Bnj j get Yi i get mul fakt mul Cc mul put

%dABj, CABj used later
dABj j Anj  j get dup mul
       Bnj  j get dup mul add 0.0001 add sqrt put
CABj j dABj j get Yi i get mul put

1 0 0 setrgbcolor
0 0 moveto Anj  j get fakt mul
           Bnj  j get fakt mul rlineto
0 setgray

%      Cm Gm Ym Ymax Rm Mm Bm Bmin] 
/Vorp [-1 -1 1  1    1  1  -1 -1  ] def

%only j=0,3
Cfj j CABj j get fakt mul Vorp j get mul 2.5 mul put
Yfj j Yj   j get fakt mul put
/Cf Cfj j get def
/Yf Yfj j get def
/Paramshow {Yi i get cvishow} bind def

j 0 eq {Cf 330 sub Yf 120 sub moveto
        xchart4 2 eq {(C) show imshow} if %j=0
        xchart4 3 eq {Paramshow} if
        1 0 0 0 setcmykcolor} if %Cm
j 1 eq {Cf 370 sub Yf 000 sub moveto 
        xchart4 2 eq {(G) show imshow} if %j=1
        xchart4 3 eq {Paramshow} if
        1 0 1 0 setcmykcolor} if %Gm
j 2 eq {Cf 120 add Yf 50 sub moveto
        xchart4 2 eq {(Y) show imshow} if %j=2
        xchart4 3 eq {Paramshow} if
        0 0 1 0 setcmykcolor} if %Ym
j 3 eq {Cf 150 sub Yf 150 add moveto
        xchart4 2 eq {(max) show} if      %j=3
        xchart4 3 eq {Paramshow} if
        0.3 0 1 0 setcmykcolor} if %Ymax
%j 4 eq {Cf 100 sub Yf 250 sub moveto
%        xchart4 2 eq {(G) show ioshow} if
%        xchart4 3 eq {Paramshow} if
%        1 0.5 1 0 setcmykcolor} if %Go
newpath
Cf Yf 90 0 360 arc fill
0 setgray
newpath
Cf Yf 90 0 360 arc stroke

/SUM XK Xi i get sub
     YK Yi i get sub add
     ZK Zi i get sub add 0.0001 add def
XANCj j XK Xi i get sub SUM div put
YANCj j YK Yi i get sub SUM div put
ZANCj j ZK Zi i get sub SUM div put

/jp j 4 add def
Anj jp XANCj j get xc sub YANCj j get 0.0001 add div          %(a-an)
       XANK        xc sub YANK        0.0001 add div sub put
Bnj jp ZANCj j get YANCj j get 0.0001 add div          %(b-bn)
       ZANK        YANK        0.0001 add div sub 0.4 mul neg 
       Bc mul put

Yj   jp            YK Yi i get sub              put
AnYj jp Anj jp get YK Yi i get sub mul fakt mul Cc mul put            %(a-an)Y
BnYj jp Bnj jp get YK Yi i get sub mul fakt mul Cc mul put            %(b-bn)Y

%dABjp, CABjp used later
dABj jp Anj  jp get dup mul
        Bnj  jp get dup mul add 0.0001 add sqrt put
CABj jp dABj jp get YK Yi i get sub mul put

%only j=0,3 Vorp 4..7
Cfj jp CABj jp get fakt mul Vorp jp get mul 2.5 mul put
Yfj jp Yj   jp get fakt mul put
/Cf Cfj jp get def
/Yf Yfj jp get def 
/Paramshow {YK Yi i get sub cvishow} bind def
j 0 eq {Cf 00 add Yf 150 add moveto
        xchart4 2 eq {(R) show imshow} if %j=4
        xchart4 3 eq {Paramshow} if
        0 1 1 0 setcmykcolor} if %Rm
j 1 eq {Cf 100 sub Yf 250 sub moveto
        xchart4 2 eq {(M) show imshow} if %j=5
        xchart4 3 eq {Paramshow} if
        0 1 0 0 setcmykcolor} if %Mm
j 2 eq {Cf 350 sub Yf 50 sub moveto
        xchart4 2 eq {(B) show imshow} if %j=6
        xchart4 3 eq {Paramshow} if
        1 1 0 0 setcmykcolor} if %Bm
j 3 eq {Cf 150 sub Yf 230 sub moveto
        xchart4 2 eq {(min) show} if      %j=7
        xchart4 3 eq {Paramshow} if
        0.7 1 0 0 setcmykcolor} if %Bmin
%j 4 eq {Cf 100 sub Yf 150 add moveto
%        xchart4 2 eq {(M) show ioshow} if
%        xchart4 3 eq {Paramshow} if
%        0 0.5 0 0 setcmykcolor} if %Mo
newpath
Cf Yf 90 0 360 arc fill
0 setgray
newpath
Cf Yf 90 0 360 arc stroke

} for %j=0,3

0 setgray

%0 90 fakt mul moveto
%50 fakt mul 45 fakt mul lineto stroke

/Cf1 Cfj 3 get def
/Yf1 Yfj 3 get def
0 90 fakt mul moveto
Cf1 Yf1 lineto
0 3.6 fakt mul lineto stroke

/Cf2 Cfj 7 get def
/Yf2 Yfj 7 get def
0 90 fakt mul moveto
Cf2 Yf2 lineto
0 3.6 fakt mul lineto stroke

[100] 0 setdash
Cfj 0 get Yfj 0 get moveto Cfj 4 get Yfj 4 get lineto stroke
Cfj 1 get Yfj 1 get moveto Cfj 5 get Yfj 5 get lineto stroke
Cfj 2 get Yfj 2 get moveto Cfj 6 get Yfj 6 get lineto stroke
Cfj 3 get Yfj 3 get moveto Cfj 7 get Yfj 7 get lineto stroke

%Cf1 Yf1 moveto Cf2 Yf2 lineto stroke


xt2 neg yt2 neg translate

} if %xchart4=2,3

%*******************************************************
xchart4 4 eq
xchart4 5 eq or {%xchart4=4,5 %only for (A,B)

/fakt 40 def
/a2 1.00 def
/b2 -0.4 def

proz_name_range

proz_opti

proz_param

3500 2100 translate %for text and grafic

proz_axis_scales4_7

0 1 39 {/i exch def %i=0,39
        /An  XANi i get YANi i get 0.0001 add div def
        /Bn  ZANi i get YANi i get 0.0001 add div 0.4 mul neg def
        /AnK XK         YK         0.0001 add div def
        /BnK ZK         YK         0.0001 add div 0.4 mul neg def
        /AnY An AnK sub Yi i get mul def
        /BnY Bn BnK sub Yi i get mul def
        AnY fakt mul
        BnY fakt mul
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39

XANW       YANW       0.0001 add div                 %(a-an)YW
XANK       YANK       0.0001 add div sub
YW mul fakt mul Cc mul
ZANW       YANW       0.0001 add div                 %(b-an)YW
ZANK       YANK       0.0001 add div sub 0.4 mul neg
YW mul fakt mul Cc mul
90 0 360 arc stroke

%0 080 add
%0 080 add moveto
%TBS TELi xchartl get show

%10 chromatic colours from continuous colours
TBIS
0 1 j24 {/j exch def %j=0,j24
j 0 eq {/i  0 def} if %Cm-Rm
j 1 eq {/i  5 def} if %Gm-Mm
j 2 eq {/i 13 def} if %Ym-Bm
j 3 eq {/i kx def} if %Max-Min
j 4 eq {/i 40 def /k 6 def %Go
        Xi i XRj k get put %special
        Yi i YRj k get put
        Zi i ZRj k get put
       } if

/SUM Xi i get
     Yi i get add
     Zi i get add 0.0001 add def
XANCj j Xi i get SUM div put
YANCj j Yi i get SUM div put
ZANCj j Zi i get SUM div put

/An XANCj j get YANCj j get 0.0001 add div          %2.5(a-an)Y
    XANK        YANK        0.0001 add div sub def
/Bn ZANCj j get YANCj j get 0.0001 add div          %2.5(b-bn)Y
    ZANK        YANK        0.0001 add div sub 0.4 mul neg def

/AnY An Yi i get mul fakt mul def
/BnY Bn Yi i get mul fakt mul def

%dAB, CAB not used
/dAB An dup mul
     Bn dup mul add 0.0001 add sqrt def
/CAB dAB Yi i get mul def

/Paramshow {Yi i get cvishow} bind def
j 0 eq {AnY 350 sub BnY 050 sub moveto
        xchart4 4 eq {(C) show imshow} if
        xchart4 5 eq {Paramshow} if
        1 0 0 0 setcmykcolor} if %Cm
j 1 eq {AnY 370 sub BnY 050 sub moveto 
        xchart4 4 eq {(G) show imshow} if
        xchart4 5 eq {Paramshow} if
        1 0 1 0 setcmykcolor} if %Gm
j 2 eq {AnY 050 sub BnY 150 add moveto
        xchart4 4 eq {(Y) show imshow} if
        xchart4 5 eq {Paramshow} if
        0 0 1 0 setcmykcolor} if %Ym
j 3 eq {AnY 100 sub BnY 300 sub moveto
        xchart4 4 eq {(max) show} if
        xchart4 5 eq {Paramshow} if
        0.3 0 1 0 setcmykcolor} if %Ymax
j 4 eq {AnY 100 sub BnY 250 sub moveto
        xchart4 4 eq {(G) show ioshow} if
        xchart4 5 eq {Paramshow} if
        1 0.5 1 0 setcmykcolor} if %Go
newpath
AnY BnY 90 0 360 arc fill
0 setgray
newpath
AnY BnY 90 0 360 arc stroke

/SUM XK Xi i get sub
     YK Yi i get sub add
     ZK Zi i get sub add 0.0001 add def

XANCj j XK Xi i get sub SUM div put
YANCj j YK Yi i get sub SUM div put
ZANCj j ZK Zi i get sub SUM div put

/An XANCj j get YANCj j get 0.0001 add div          %(a-an)
    XANK        YANK        0.0001 add div sub def
/Bn ZANCj j get YANCj j get 0.0001 add div          %(b-bn)
    ZANK        YANK        0.0001 add div sub 0.4 mul neg def

/AnY An YK Yi i get sub mul fakt mul def                   %(a-an)Y
/BnY Bn YK Yi i get sub mul fakt mul def                   %(b-bn)Y

%dAB, CAB not used
/dAB An dup mul
     Bn dup mul add 0.0001 add sqrt def
/CAB dAB YK Yi i get sub mul def

/Paramshow {YK Yi i get sub cvishow} bind def
j 0 eq {AnY 120 add BnY 050 sub moveto
        xchart4 4 eq {(R) show imshow} if
        xchart4 5 eq {Paramshow} if
        0 1 1 0 setcmykcolor} if %Rm
j 1 eq {AnY 120 add BnY 050 sub moveto
        xchart4 4 eq {(M) show imshow} if
        xchart4 5 eq {Paramshow} if
        0 1 0 0 setcmykcolor} if %Mm
j 2 eq {AnY 200 sub BnY 250 sub moveto
        xchart4 4 eq {(B) show imshow} if
        xchart4 5 eq {Paramshow} if
        1 1 0 0 setcmykcolor} if %Bm
j 3 eq {AnY 100 sub BnY 150 add moveto
        xchart4 4 eq {(min) show} if
        xchart4 5 eq {Paramshow} if
        0.7 1 0 0 setcmykcolor} if %Bmin
j 4 eq {AnY 100 sub BnY 150 add moveto
        xchart4 4 eq {(M) show ioshow} if
        xchart4 5 eq {Paramshow} if
        0 0.5 0 0 setcmykcolor} if %Mo
newpath
AnY BnY 90 0 360 arc fill
0 setgray
newpath
AnY BnY 90 0 360 arc stroke
} for %j=0,j24

} if %xchart4=4,5

%**************************************************************
xchart4 6 eq
xchart4 7 eq or {%xchart4=6,7 %only for (A1,B1)

/fakt 40 def
/a2 1.00 def
/b2 -0.4 def

proz_name_range

proz_opti

proz_param

3500 2100 translate %for text and grafic

proz_axis_scales4_7

0 1 39 {/i exch def %i=0,39
        /An  XANi i get xc sub YANi i get 0.0001 add div def
        /Bn  ZANi i get        YANi i get 0.0001 add div 0.4 mul neg
         Bc mul def
        /AnK XANK       xc sub YANK       0.0001 add div def
        /BnK ZANK              YANK       0.0001 add div 0.4 mul neg 
         Bc mul def
        /AnY An AnK sub Yi i get mul Cc mul def
        /BnY Bn BnK sub Yi i get mul Cc mul def
        AnY fakt mul
        BnY fakt mul
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39

XANW xc sub YANW       0.0001 add div                 %(a-an)YW
XANK xc sub YANK       0.0001 add div sub
YW mul fakt mul Cc mul
ZANW        YANW       0.0001 add div                 %(b-an)YW
ZANK        YANK       0.0001 add div sub 0.4 mul neg
Bc mul YW mul fakt mul Cc mul
90 0 360 arc stroke

%0 080 add
%0 080 add moveto
%TBS TELi xchartl get show

%10 chromatic colours from continuous colours
TBIS
0 1 j24 {/j exch def %j=0,j24
j 0 eq {/i  0 def} if %Cm-Rm
j 1 eq {/i  5 def} if %Gm-Mm
j 2 eq {/i 13 def} if %Ym-Bm
j 3 eq {/i kx def} if %Max-Min
j 4 eq {/i 40 def /k 6 def %Go
        Xi i XRj k get put %special
        Yi i YRj k get put
        Zi i ZRj k get put
       } if

/SUM Xi i get
     Yi i get add
     Zi i get add 0.0001 add def
XANCj j Xi i get SUM div put
YANCj j Yi i get SUM div put
ZANCj j Zi i get SUM div put

/An XANCj j get xc sub YANCj j get 0.0001 add div          %2.5(a-an)Y
    XANK        xc sub YANK        0.0001 add div sub def
/Bn ZANCj j get        YANCj j get 0.0001 add div          %2.5(b-bn)Y
    ZANK               YANK        0.0001 add div sub 0.4 mul neg 
    Bc mul def

/AnY An Yi i get mul fakt mul Cc mul def
/BnY Bn Yi i get mul fakt mul Cc mul def

%dAB, CAB not used
/dAB An dup mul
     Bn dup mul add 0.0001 add sqrt def
/CAB dAB Yi i get mul def

/Paramshow {Yi i get cvishow} bind def
j 0 eq {AnY 350 sub BnY 050 sub moveto
        xchart4 6 eq {(C) show imshow} if
        xchart4 7 eq {Paramshow} if
        1 0 0 0 setcmykcolor} if %Cm
j 1 eq {AnY 370 sub BnY 050 sub moveto 
        xchart4 6 eq {(G) show imshow} if
        xchart4 7 eq {Paramshow} if
        1 0 1 0 setcmykcolor} if %Gm
j 2 eq {AnY 050 sub BnY 150 add moveto
        xchart4 6 eq {(Y) show imshow} if
        xchart4 7 eq {Paramshow} if
        0 0 1 0 setcmykcolor} if %Ym
j 3 eq {AnY 100 sub BnY 300 sub moveto
        xchart4 6 eq {(max) show} if
        xchart4 7 eq {Paramshow} if
        0.3 0 1 0 setcmykcolor} if %Ymax
j 4 eq {AnY 100 sub BnY 250 sub moveto
        xchart4 6 eq {(G) show ioshow} if
        xchart4 7 eq {Paramshow} if
        1 0.5 1 0 setcmykcolor} if %Go
newpath
AnY BnY 90 0 360 arc fill
0 setgray
newpath
AnY BnY 90 0 360 arc stroke

j 3 lt {%j<3
%TBS AnY BnY moveto (Test_2948) show

0 1 0 setrgbcolor
0 0 moveto AnY BnY rlineto stroke
/CrAB AnY dup mul BnY dup mul add 0.0001 add sqrt def
/alp1 BnY AnY atan def
%TBS AnY BnY moveto (Test_2884 ) show alp1 cvishow ( ) show
%CrAB fakt div cvishow

1 0 0 setrgbcolor
/alp2 alp1 dhAB2 add def
/AnY2 alp2 cos CrAB mul def
/BnY2 alp2 sin CrAB mul def
0 0 moveto AnY2 BnY2 rlineto stroke
/CrAB2 AnY2 dup mul BnY2 dup mul add 0.0001 add sqrt def
%TBS AnY2 BnY2 moveto (Test_2891 ) show alp2 cvishow ( ) show
%CrAB2 fakt div cvishow
0 setgray
} if %j<3

/SUM XK Xi i get sub
     YK Yi i get sub add
     ZK Zi i get sub add 0.0001 add def
XANCj j XK Xi i get sub SUM div put
YANCj j YK Yi i get sub SUM div put
ZANCj j ZK Zi i get sub SUM div put

/An XANCj j get xc sub YANCj j get 0.0001 add div          %(a-an)
    XANK        xc sub YANK        0.0001 add div sub def
/Bn ZANCj j get YANCj j get 0.0001 add div          %(b-bn)
    ZANK        YANK        0.0001 add div sub 0.4 mul neg 
    Bc mul def

/AnY An YK Yi i get sub mul fakt mul Cc mul def                   %(a-an)Y
/BnY Bn YK Yi i get sub mul fakt mul Cc mul def                   %(b-bn)Y

%dAB, CAB not used
/dAB An dup mul
     Bn dup mul add 0.0001 add sqrt def
/CAB dAB YK Yi i get sub mul def

/Paramshow {YK Yi i get sub cvishow} bind def
j 0 eq {AnY 120 add BnY 050 sub moveto
        xchart4 6 eq {(R) show imshow} if
        xchart4 7 eq {Paramshow} if
        0 1 1 0 setcmykcolor} if %Rm
j 1 eq {AnY 120 add BnY 050 sub moveto
        xchart4 6 eq {(M) show imshow} if
        xchart4 7 eq {Paramshow} if
        0 1 0 0 setcmykcolor} if %Mm
j 2 eq {AnY 200 sub BnY 250 sub moveto
        xchart4 6 eq {(B) show imshow} if
        xchart4 7 eq {Paramshow} if
        1 1 0 0 setcmykcolor} if %Bm
j 3 eq {AnY 100 sub BnY 150 add moveto
        xchart4 6 eq {(min) show} if
        xchart4 7 eq {Paramshow} if
        0.7 1 0 0 setcmykcolor} if %Bmin
j 4 eq {AnY 100 sub BnY 150 add moveto
        xchart4 6 eq {(M) show ioshow} if
        xchart4 7 eq {Paramshow} if
        0 0.5 0 0 setcmykcolor} if %Mo
newpath
AnY BnY 90 0 360 arc fill
0 setgray
newpath
AnY BnY 90 0 360 arc stroke

j 3 lt {%j<3
%TBS AnY BnY moveto (Test_2948) show

0 1 0 setrgbcolor
0 0 moveto AnY BnY rlineto stroke
/CrAB AnY dup mul BnY dup mul add 0.0001 add sqrt def
/alp1 BnY AnY atan def
%TBS AnY BnY moveto (Test_2951 ) show alp1 cvishow ( ) show
%CrAB fakt div cvishow

1 0 0 setrgbcolor
/alp2 alp1 dhAB2 add def
/AnY2 alp2 cos CrAB mul def
/BnY2 alp2 sin CrAB mul def
0 0 moveto AnY2 BnY2 rlineto stroke
/CrAB2 AnY2 dup mul BnY2 dup mul add 0.0001 add sqrt def
%TBS AnY2 BnY2 moveto (Test_2959 ) show alp2 cvishow ( ) show
%CrAB2 fakt div cvishow
0 setgray
} if %j<3

} for %j=0,j24

} if %xchart4=6,7

showpage
grestore

} for %xchartl=0,7

} for %xchart4=0,7

} for %xcolorl=0,0

%%Trailer