%!PS-Adobe-3.0 EPSF-3.0 http://farbe.li.tu-berlin.de/her5/her50-4a
%%BoundingBox: 70 85 243 206

%START PDFDE011.EPS
/pdfmark03 where {pop} {userdict /pdfmark03 /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: farbe.li.tu-berlin.de/her5/her5.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:2024120112200)
 /ModDate (D:20241201112200)
/DOCINFO pdfmark03
[ /View [ /Fit ]
/DOCVIEW pdfmark03
%END  PDFDE011
 
/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

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

/TV {120 /Times-ISOL1 FS} bind def
/TS {160 /Times-ISOL1 FS} bind def
/TL {200 /Times-ISOL1 FS} bind def
/TK {250 /Times-ISOL1 FS} bind def
/TM {300 /Times-ISOL1 FS} bind def
/TG {350 /Times-ISOL1 FS} bind def

/TIV {120 /TimesI-ISOL1 FS} bind def
/TIS {160 /TimesI-ISOL1 FS} bind def
/TIL {200 /TimesI-ISOL1 FS} bind def
/TIK {250 /TimesI-ISOL1 FS} bind def
/TIM {300 /TimesI-ISOL1 FS} bind def
/TIG {350 /TimesI-ISOL1 FS} bind def

/TBV {120 /TimesB-ISOL1 FS} bind def
/TBS {160 /TimesB-ISOL1 FS} bind def
/TBL {200 /TimesB-ISOL1 FS} bind def
/TBK {250 /TimesB-ISOL1 FS} bind def
/TBM {300 /TimesB-ISOL1 FS} bind def
/TBG {350 /TimesB-ISOL1 FS} bind def

/TBIV {120 /TimesBI-ISOL1 FS} bind def
/TBIS {160 /TimesBI-ISOL1 FS} bind def
/TBIL {200 /TimesBI-ISOL1 FS} bind def
/TBIK {250 /TimesBI-ISOL1 FS} bind def
/TBIM {300 /TimesBI-ISOL1 FS} bind def
/TBIG {350 /TimesBI-ISOL1 FS} bind def

/SV {120 /Symbol FS} bind def
/SS {160 /Symbol FS} bind def
/SL {200 /Symbol FS} bind def
/SK {250 /Symbol FS} bind def
/SM {300 /Symbol FS} bind def
/SG {350 /Symbol FS} bind def

/CV {120 /Courier FS} bind def
/CS {160 /Courier FS} bind def
/CL {200 /Courier FS} bind def
/CK {250 /Courier FS} bind def
/CM {300 /Courier FS} bind def
/CG {350 /Courier FS} bind def

/CIV {120 /Courier-Oblique FS} bind def
/CIS {160 /Courier-Oblique FS} bind def
/CIL {200 /Courier-Oblique FS} bind def
/CIK {250 /Courier-Oblique FS} bind def
/CIM {300 /Courier-Oblique FS} bind def
/CIG {350 /Courier-Oblique FS} bind def

/CBV {120 /Courier-Bold FS} bind def
/CBS {160 /Courier-Bold FS} bind def
/CBL {200 /Courier-Bold FS} bind def
/CBK {250 /Courier-Bold FS} bind def
/CBM {300 /Courier-Bold FS} bind def
/CBG {350 /Courier-Bold FS} bind def

/CBIV {120 /Courier-BoldOblique FS} bind def
/CBIS {160 /Courier-BoldOblique FS} bind def
/CBIL {200 /Courier-BoldOblique FS} bind def
/CBIK {250 /Courier-BoldOblique FS} bind def
/CBIM {300 /Courier-BoldOblique FS} bind def
/CBIG {350 /Courier-BoldOblique FS} bind def

/nGs {350 /Times-ISOL1 FS  show} bind def
/kGs {350 /TimesI-ISOL1 FS  show} bind def
/bGs {350 /TimesB-ISOL1 FS  show} bind def
/jGs {350 /TimesBI-ISOL1 FS  show} bind def
/sGs {350 /Symbol FS  show} bind def
/iGs {300 /Times-ISOL1 FS 0 -90 rmoveto show 0   90 rmoveto} bind def
/eGs {300 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def
/ibGb {300 /TimesB-ISOL1 FS 0 -90 rmoveto show 0   90 rmoveto} bind def
/ebGb {300 /TimesB-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def
/ipG {300 /Times-ISOL1 FS 50 50 rmoveto (\267) show 50 -50 rmoveto} bind def

%20% kleiner
/nMs {300 /Times-ISOL1 FS  show TM} bind def
/kM2 {300 /TimesI-ISOL1 FS  show TM} bind def
/bM2 {300 /TimesB-ISOL1 FS  show TM} bind def
/jm2 {300 /TimesBI-ISOL1 FS  show TM} bind def
/sMs {300 /Symbol FS  show TM} bind def
/ims {250 /Times-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def
/eMs {250 /Times-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def
/ibMs {250 /TimesB-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def
/ebMs {250 /TimesB-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def
/ipM {250 /Times-ISOL1 FS 40 40 rmoveto (\267) show 40 -40 rmoveto TM} bind def

%40% kleiner
/nKs {250 /Times-ISOL1 FS  show TK} bind def
/kKs {250 /TimesI-ISOL1 FS  show TK} bind def
/bKs {250 /TimesB-ISOL1 FS  show TK} bind def
/jKs {250 /TimesBI-ISOL1 FS  show TK} bind def
/sKs {250 /Symbol FS  show TK} bind def
/iKs {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def
/eKs {200 /Times-ISOL1 FS 0 130 rmoveto show 0 -130 rmoveto TK} bind def
/ibKs {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def
/ebKs {200 /TimesB-ISOL1 FS 0 130 rmoveto show 0 -130 rmoveto TK} bind def
/ipK {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def

%60% kleiner
/nLs {200 /Times-ISOL1 FS  show TS} bind def
/kLs {200 /TimesI-ISOL1 FS  show TS} bind def
/bLs {200 /TimesB-ISOL1 FS  show TS} bind def
/jLs {200 /TimesBI-ISOL1 FS  show TS} bind def
/sLs {200 /Symbol FS  show TS} bind def
/iLs {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def
/eLs {160 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TS} bind def
/ibLs {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def
/ebLs {160 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TS} bind def
/ipL {160 /Times-ISOL1 FS 25 25 rmoveto (\267) show 25 -25 rmoveto TS} bind def

%XCHA02.PS BEG
/rec %x, y width heigth
  {/heigth exch def /width exch def
   moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto
   closepath } bind def

/colrecfi %x y width heigth c m y k
  {setrgbcolor rec fill} bind def

/colrecst %x y width heigth c m y k
  {setrgbcolor rec stroke} bind def

/rem %x, y width heigth
  {/heigth exch 0.5 mul def /width exch 0.5 mul def
   /yleftb exch heigth 0.5 mul add def
   /xleftb exch width  0.5 mul add def
   xleftb yleftb
   moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto
   closepath } bind def

/colremfi %x y width heigth c m y k
  {setrgbcolor rem fill} bind def

/colremst %x y width heigth c m y k
  {setrgbcolor rem stroke} bind def

/tzr {1 0 0} bind def %Reproduktionsfarben
/tzg {0 1 0} bind def
/tzb {0 0 1} bind def
/tzc {0 1 1} bind def
/tzm {1 0 1} bind def
/tzy {1 1 0} bind def
/tzo {1 0 0} bind def %Reproduktionsfarben
/tzl {0 1 0} bind def
/tzv {0 0 1} bind def

/tzn {0.00} bind def %Graureihe
/tzd {0.25} bind def
/tzz {0.50} bind def
/tzh {0.75} bind def
/tzw {1.00} bind def

/tfr {1 0 0 setrgbcolor} bind def %Reproduktionsfarben
/tfg {0 1 0 setrgbcolor} bind def
/tfb {0 0 1 setrgbcolor} bind def
/tfc {0 1 1 setrgbcolor} bind def
/tfm {1 0 1 setrgbcolor} bind def
/tfy {1 1 0 setrgbcolor} bind def
/tfo {1 0 0 setrgbcolor} bind def %Reproduktionsfarben
/tfl {0 1 0 setrgbcolor} bind def
/tfv {0 0 1 setrgbcolor} bind def

/tfrn {0.5 0.0 0.0 setrgbcolor} bind def %Reproduktionsfarben
/tfgn {0.0 0.5 0.0 setrgbcolor} bind def
/tfbn {0.0 0.0 0.5 setrgbcolor} bind def
/tfcn {0.0 0.5 0.5 setrgbcolor} bind def
/tfmn {0.5 0.0 0.5 setrgbcolor} bind def
/tfyn {0.5 0.5 0.0 setrgbcolor} bind def
/tfon {0.5 0.0 0.0 setrgbcolor} bind def %Reproduktionsfarben
/tfln {0.0 0.5 0.0 setrgbcolor} bind def
/tfvn {0.0 0.0 0.5 setrgbcolor} bind def

/tfn {0.00 setgray} bind def %Graureihe
/tfd {0.25 setgray} bind def
/tfz {0.50 setgray} bind def
/tfh {0.75 setgray} bind def
/tfw {1.00 setgray} bind def

/cvishowr {dup 0 ge {0.5 add} {0.5 sub} ifelse
           cvi 6 string cvs show} def

/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

/cvishow0 {cvi 6 string cvs show} def
/cvsshow10 {10 mul cvi 0.1 mul 9 string cvs show} def
/cvsshow20 {100 mul cvi 0.01 mul 9 string cvs show} def
/cvsshow30 {1000 mul cvi 0.001 mul 9 string cvs show} def
/cvsshow40 {10000 mul cvi 0.0001 mul 9 string cvs show} def
/cvsshow50 {100000 mul cvi 0.00001 mul 9 string cvs show} def

/cvsshow0r {10 mul 0.5 add cvi 0.1 mul 10 string cvs show} def
/cvsshow1r {10 mul 0.5 add cvi 0.1 mul %new980310
            dup 0 ge {(  ) show} if
            dup abs 10 lt {(  ) show} if
            10 string cvs show} def
/cvsshow2r {100 mul 0.5 add cvi 0.01 mul %new980310
            dup 0 ge {(  ) show} if
            dup abs 10 lt {(  ) show} if
            10 string cvs show} def
/cvsshow3r {1000 mul 0.5 add cvi 0.001 mul 10 string cvs show} def

%now with cvishow0 instead of cvishow
/cvsshow1x {/nxx exch def                              %example nxx=99.1/99.0
             nxx 10 mul cvi /nxi exch def              %nxi=991/990
             nxi 10 idiv /nxa exch def                 %nxa=99
             nxi nxa 10 mul sub /nxb exch def          %nxb=1/0
             nxa cvishow0 (,) show                      %nxa=99
             nxb cvishow0                               %nxb=1/0
           } def
/cvsshow2x {/nxx exch def                              %example nxx=99.12/99,02/99,00
             nxx 100 mul cvi /nxi exch def             %nxi=9912/9902/00
             nxi 100 idiv /nxa exch def                %nxa=99
             nxi nxa 100 mul sub /nxb exch def         %nxb=12/02/00
             nxa cvishow0 (,) show                      %nxb=99,
             nxb 10 ge {nxb cvishow0} if                %nxb=12
             nxb  1 ge
             nxb  9 le and {(0) show nxb cvishow0} if   %nxb=02
             nxb  0 eq {(00) show} if                  %nxb=00
           } def
/cvsshow3x {/nxx exch def                              %example nxx=99.123/99.012/99.001/99.000
             nxx 1000 mul cvi /nxi exch def            %nxi=99123/99012/99001/99000
             nxi 1000 idiv /nxa exch def               %nxa=99
             nxi nxa 1000 mul sub /nxb exch def        %nxb=123/012/001/000
             nxa cvishow0 (,) show                      %nxb=99,
             nxb 100 ge {nxb cvishow0} if               %nxb=123/012/001/000
             nxb  10 ge
             nxb  99 le and {(0) show nxb cvishow0} if  %nxb=012
             nxb   1 ge
             nxb   9 le and {(00) show nxb cvishow0} if %nxb=001
             nxb   0 eq {(000) show} if                %nxb=000
           } def

%***************************************************
%%EndProlog
gsave

/lanind 1 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 1 def /lanind2 1 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 3 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 %

/ioute 0 def
/ifunc 0 def
/idevi 1 def
/imevi 1 def
/expnr 4 def

colorm 0 eq deintp 0 eq and {/Txx (d) def /Fxx (d) def} if %colorm=0, deintp=0
colorm 0 eq deintp 1 eq and {/Txx (e) def /Fxx (e) def} if %colorm=0, deintp=1
colorm 1 eq deintp 0 eq and {/Txx (dd) def /Fxx (d) def} if %colorm=1, deintp=0
colorm 1 eq deintp 1 eq and {/Txx (de) def /Fxx (e) def} if %colorm=1, deintp=1
xchart 0 eq {/Txx (-) def /Fxx (-) def} if %always independent of intended output

5 /Times-ISOL1 FS
/cvishow {cvi 6 string cvs show} def

gsave
%XCHA01.PS END

/axx  8 array def %x=xchart, final ax,..,cxt
/bxx  8 array def
/cxx  8 array def
/axtx 8 array def
/bxtx 8 array def
/cxtx 8 array def

/bi 1 def

/cvishow0 {cvi 6 string cvs show} def

%pchartl 0/1 left/right
%tchartl 0/4 top/down
/pchartl 0 def
/tchartl 0 def

pchartl 0 eq {%pchart=0 left
%    0    1    2    3    4    5    6    7
/axx  [1.00 2.00 4.00 0.50 1.00 2.00 4.00 0.50 ] def
/bxx  [1.00 2.00 4.00 0.50 1.00 2.00 4.00 0.50 ] def
/cxx  [1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 ] def
/axtx [(1)  (2)  (4)  (0,5)(1)  (2)  (4)  (0,5)] def
/bxtx [(1)  (2)  (4)  (0,5)(1)  (2)  (4)  (0,5)] def
/cxtx [(1)  (1)  (1)  (1)  (1)  (1)  (1)  (1)  ] def
             } if %pchartl=0

pchartl 1 eq {%pchart=1 right
%    0    1    2    3    4    5    6    7
/axx  [1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 ] def
/bxx  [1.00 2.00 4.00 0.50 1.00 2.00 4.00 0.50 ] def
/cxx  [1.00 2.00 4.00 0.50 1.00 2.00 4.00 0.50 ] def
/axtx [(1)  (1)  (1)  (1)  (1)  (1)  (1)  (1)  ] def
/bxtx [(1)  (2)  (4)  (0,5)(1)  (2)  (4)  (0,5)] def
/cxtx [(1)  (2)  (4)  (0,5)(1)  (2)  (4)  (0,5)] def
             } if %pchartl=1

72 90 translate

0.010 MM dup scale

/xbtex0 0 def  %xbtex=0 for files Y1(0/1)-(3/7)n.EPS
xbtex0 1 eq {%xbtex0=1

40 setlinewidth
/ymax1 08550 def
/xmax1 12250 def
1.0 setgray
0 0  moveto xmax1 0 rlineto 0 ymax1 rlineto xmax1 neg 0 rlineto
closepath fill
0 setgray
0 0  moveto xmax1 0 rlineto 0 ymax1 rlineto xmax1 neg 0 rlineto
closepath stroke

TK
0 setgray
150  /Times-ISOL1 FS
150 -140 moveto
%pchartl 0/1 left/right
%tchartl 0/4 top/down
pchartl 0 eq {(her50-) show}
             {(her51-) show} ifelse
tchartl 0 eq {(3n) show}
             {(7n) show} ifelse
} if %xbtex0=1

/xchartl 0 def
3 1 3 {/xchartl exch def %xchartl=0,3
gsave

20 setlinewidth

%  xchartl   0 eq {  100 04480 translate} if
%  xchartl   1 eq { 6150 04480 translate} if
%  xchartl   2 eq {  100 00220 translate} if
%  xchartl   3 eq { 6150 00220 translate} if

0 setgray
150  /Times-ISOL1 FS
050 -140 moveto
pchartl 0 eq {(her50-) show}
             {(her51-) show} ifelse
xchartl 1 add tchartl add cvishow0
(a) show %a

/xwidth 6000 def
/ywidth 4000 def
25 setlinewidth

0.5 setgray
0 0 moveto xwidth     0 rlineto 0 ywidth rlineto
           xwidth neg 0 rlineto closepath fill

0 0 moveto xwidth     0 rlineto 0 ywidth rlineto
           xwidth neg 0 rlineto closepath clip

0 setgray
0 0 moveto xwidth     0 rlineto 0 ywidth rlineto
           xwidth neg 0 rlineto closepath stroke

/ax axx xchartl get def
/cx cxx xchartl get def

tfn %tfw
/xtr0 380 def
/ytr0 350 def

xtr0 ytr0 translate

%*********************************************************************
tfw
30 setlinewidth
 0 0 moveto  5250 0 rlineto  stroke
 0 0 moveto  0 3250 rlineto  stroke
  5250 100 sub 50 moveto 100 -50 rlineto -100 -50 rlineto stroke
 -50 3250 100 sub moveto  50 100 rlineto  50 -100 rlineto stroke 

/tx [(-4) (-3) (-2) (-1) (  0) (  1) (  2) (  3) (  4)] def
/ty [(-3) (-2) (-1) (  0) (  1) (  2) (  3)] def
 
/xz  (x)  def
/xzn (-x) def
ioute 1 eq
expnr 7 ge and {%xchartl>=7
                /xz  (z)  def
                /xzn (-z) def
               } if
              
/KLxr {20 0 rmoveto TBIK xz show
       0 -80 rmoveto TBL (r) show 20 80 rmoveto} def
/LSxr {20 0 rmoveto TBIL xz show
       0 -60 rmoveto TBS (r) show 20 60 rmoveto} def
/SVxr {20 0 rmoveto TBIS xz show
       0 -40 rmoveto TBV (r) show 20 40 rmoveto} def

/KLxrx {20 0 rmoveto TBIK (x) show
        0 -80 rmoveto TBL (r) show 20 80 rmoveto} def
/KLxrz {20 0 rmoveto TBIK (z) show
        0 -80 rmoveto TBL (r) show 20 80 rmoveto} def
/LSxrx {20 0 rmoveto TBIL (x) show
        0 -60 rmoveto TBS (r) show 20 60 rmoveto} def
/LSxrz {20 0 rmoveto TBIL (z) show
        0 -60 rmoveto TBS (r) show 20 60 rmoveto} def
/SVxrx {20 0 rmoveto TBIS (x) show
        0 -40 rmoveto TBV (r) show 20 40 rmoveto} def
/SVxrz {20 0 rmoveto TBIS (z) show
        0 -40 rmoveto TBV (r) show 20 40 rmoveto} def

/100KLxr {0 100 rmoveto KLxr 0 -100 rmoveto} def
/100LSxr {0 080 rmoveto LSxr 0 -080 rmoveto} def
/100SVxr {0 060 rmoveto SVxr 0 -060 rmoveto} def

/KLxrn {20 0 rmoveto TBIK xzn show
        0 -80 rmoveto TBL (r) show 20 80 rmoveto} def
/LSxrn {20 0 rmoveto TBIL xzn show
        0 -60 rmoveto TBS (r) show 20 60 rmoveto} def
/SVxrn {20 0 rmoveto TBIS xzn show
        0 -40 rmoveto TBV (r) show 20 40 rmoveto} def

/KLxrxn {20 0 rmoveto TBIK (xn) show
         0 -80 rmoveto TBL (r) show 20 80 rmoveto} def
/KLxrzn {20 0 rmoveto TBIK (zn) show
         0 -80 rmoveto TBL (r) show 20 80 rmoveto} def
/LSxrxn {20 0 rmoveto TBIL (xn) show
         0 -60 rmoveto TBS (r) show 20 60 rmoveto} def
/LSxrzn {20 0 rmoveto TBIL (zn) show
         0 -60 rmoveto TBS (r) show 20 60 rmoveto} def
/SVxrxn {20 0 rmoveto TBIS (xn) show
         0 -40 rmoveto TBV (r) show 20 40 rmoveto} def
/SVxrzn {20 0 rmoveto TBIS (zn) show
         0 -40 rmoveto TBV (r) show 20 40 rmoveto} def

/100KLxrn {0 100 rmoveto KLxrn 0 -100 rmoveto} def
/100LSxrn {0 080 rmoveto LSxrn 0 -080 rmoveto} def
/100SVxrn {0 060 rmoveto SVxrn 0 -060 rmoveto} def
                          
%!x-Achse: 1 log-Einheiten = 500 Skalen-Einheiten
TBL 
0 1 9 {/i exch def
       /ixt { -150 i 0500 mul add} def
       /ixl {  000 i 0500 mul add} def
        i 8 le {ixt -250 moveto tx i get exec show} if
        ixl 75 moveto 0 -150 rlineto stroke } for

%!y-Achse: 1 log-Einheiten = 500 Skalen-Einheiten
TBL 
0 1 6 {/i exch def
       /iyt {-100 i 0500 mul add} def
       /iyl { 000 i 0500 mul add} def
        -350 iyt moveto ty i get exec show
         -75 iyl moveto 150 0 rlineto stroke } for
 
4300 -260 moveto tfw LSxr
                 TBL (=) show 30 0 rmoveto
                 TBL (log[) show 30 0 rmoveto
                 TBIL (L/L) show
                 0 -50 rmoveto TBS (u) show 0 50 rmoveto
                 TBL (]) show
 
1900  150 moveto (L) TBIL tfw show
TBS 20 -80 rmoveto (u) show 50 80 rmoveto

4300 0300 moveto (L) TBIL tfw show
TBS 20 -80 rmoveto (u) show 00 80 rmoveto
TBL 20 0 (=28) ashow (cd/m) show
TBS 0 80 rmoveto (2) show 0 -80 rmoveto

4600 080 moveto TBIL (L) show

tfl
40 setlinewidth
1600 0 moveto 800 0 rlineto stroke

2200 270 moveto
TBS
(range of office) showen
(Bereich B\374ro\255) showde
2200 100 moveto
(luminance) showen
(Leuchtdichte) showde

xtr0 neg ytr0 neg translate

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

%BEG C01_C08 ********************************************

%original square
tfn %tfw
050 3750 moveto

xchartl 07 le {%xchartl=w00
               tfw
               TBIK
               (F) show
               -50 -80 rmoveto TBL (ac) show 0 80 rmoveto
               TBK (\050) show
               KLxr
               TBK (\051) show 20 0 rmoveto (=) show 20 0 rmoveto
               (unbunte Rezeptorerregung, TUB\255Modell) showde
               (achromatic receptor response, TUB model) showen
              } if %xchartl=w00

%xchartl 01 ge {%xchartl>=1
%               tfy
%               TBK
%               ( & modified) showen
%               ( & modifiziert) showde
%              } if %xchartl>=1

tfn %tfw
%*********************************************************************
%BEG Common text
xtr0 ytr0 translate

TBIK

/iyt0 2900 def %top text line
/iyt1 2300 def %lower yellow text line
/ixt2 2420 def %right red text line
/iyt2 1100 def %right red text line
/ix0   100 def
/ix1   750 def %for F(x)
/ix1a  850 def %for Fn(x)
/ix2   2200 def %text e
/ix3   1700 def

/x_zp (x) def /x_zm (-x) def

ioute 0 eq 
ioute 2 eq or {/e_10 (e) def  /lne_10 1 def} if
ioute 1 eq    {/e_10 (10) def /lne_10 1 def} if

%****************************************
tfw
30 setlinewidth
/jm1 0 def
/jm2 1 def
/iytj 0 def

xchartl 0 eq {/jm2 0 def} 
             {/jm2 0 def} ifelse

jm1 1 jm2 {/j exch def %j=jm1,jm2
           j 0 eq {/iyta 0 def} if
           j 1 eq {/iyta 0 def} if

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

k 0 eq {%k=0
j 0 eq {[       ] 0 setdash tfw} if
j 1 eq {[       ] 0 setdash tfy} if
       } if %k=0

k 1 eq {%k=1
j 0 eq {[100 100] 0 setdash tfn} if
j 1 eq {[100 100] 0 setdash tfn} if
       } if %k=1

%font colour
j 0 eq {tfw} if
j 1 eq {tfy} if

j 0 eq {/ixtx ix0 def
        /iytx iyt0 def} if
j 1 eq {/ixtx ixt2 def
        /iytx iyt2 def} if

/iytxt iytx 050 add j 0 eq {100 add} if def
ixtx 1000 add iytxt iyta add 70 add moveto
1050 ioute 1 eq {200 add} if 0 rlineto stroke

} for %k=0,1

ixtx iytxt moveto
TBIL
(F) show
-30 -80 rmoveto TBS (ac) show 0 80 rmoveto
TBL
(\050) show
LSxr
TBL
(\051) show
TBL
( = b ) show
ixtx 1000 add iytxt 100 add moveto
TBL e_10 show
0 100 rmoveto
SVxr
TBS (/a) show ioute 1 eq {(') show} if 0 -100 rmoveto
TBL ( - ) show
TBL e_10 show
0 100 rmoveto
SVxrn
TBS (/c) show ioute 1 eq {(') show} if 0 -100 rmoveto

ixtx 1000 add iytxt 200 sub moveto
TBL e_10 show
0 100 rmoveto
SVxr
TBS (/a) show ioute 1 eq {(') show} if 0 -100 rmoveto
TBL ( + ) show
TBL e_10 show
0 100 rmoveto
SVxrn
TBS (/c) show ioute 1 eq {(') show} if 0 -100 rmoveto


j 0 eq {%j=0
        tfw
        TBS
        ix3 1200 add iyt0 180 add moveto
        (Standard: ) showde (standard: ) showen
        (a=1,00, c=1,00 e=2,718282) show
        ix3 1200 add iyt0 000 add moveto
        (Aktuell:   ) showde (actual:   ) showen
        (a=) show ax cvsshow2x (, ) show
        (c=) show cx cvsshow2x
        ix3 1200 add iyt0 180 sub moveto
        tfg
        (Aktuell:   ) showde (actual:   ) showen
        (a=) show ax cvsshow2x (, ) show
        (c=) show cx cvsshow2x
       } if %j=0

} for %j=jm1,jm2

idevi 1 eq {%idevi=1

/iyt1t iyt1 330 add def
30 setlinewidth
[ ] 0 setdash
tfg

ix0 iyt1t moveto
TBIL
(F') show
-50 -80 rmoveto TBS (ac) show 0 80 rmoveto
TBL
(\050) show
LSxrx
TBL
(\051) show
TBL
(= 4b / [) show
%TBL (a') show 20 0 rmoveto
%TBL ({) show
TBL e_10 show
0 80 rmoveto SVxr
TBS (/a) show ioute 1 eq {(') show} if
20 -80 rmoveto
TBL (+) show 20 0 rmoveto
TBL e_10 show
0 80 rmoveto TBS (-) show SVxr
TBS (/c) show ioute 1 eq {(') show} if
20 -80 rmoveto
TBL (]) show
0 80 rmoveto TBS (2) show 0 -80 rmoveto
%TBL (]) show

ix0 1250 moveto
TBL (log) show 30 0 rmoveto
TBIL
(F') show
-50 -80 rmoveto TBS (ac) show 0 80 rmoveto
TBL
(\050) show
LSxrx
TBL
(\051) show

ix0 iyt1t 300 sub moveto
TBS
tfg
(a=) show   axx xchartl get cvsshow2x
(; b=) show cxx xchartl get cvsshow2x

1200 iyt1t 300 sub moveto
tfw TBIL (F') show
-30 -80 rmoveto TBS ax cvsshow1x (_) show 
                    cx cvsshow1x 0 80 rmoveto
TBL (\050) show LSxr TBL (\051) show
tfw

} if %idevi=1

tfw
[ ] 0 setdash
0 1500 moveto 4500 0 rlineto stroke
tfl [50 50] 0 setdash 0 2000 moveto 2000 0 rlineto stroke
tfn 200 2070 moveto TBL (Asymptote) show
tfw [ ] 0 setdash 2000 1500 moveto 0 500 rlineto stroke
TBL
tfn

4600         2000 50 sub moveto
tfw TBIL (F) show
-30 -80 rmoveto TBS axx xchartl get cvsshow1x (_) show 
                    cxx xchartl get cvsshow1x 0 80 rmoveto
TBL (\050) show LSxr TBL (\051) show

xtr0 neg ytr0 neg translate

%*********************************************************************
/C0i_FXi {%BEG C0i_FXi

xtr0 ytr0 translate

/xi   51 array def %range -4 bis +4 in steps of
/yi   51 array def %range -1 to +1
/epxi 51 array def
/emxi 51 array def
/esxi 51 array def
/Frui 51 array def

/MULX 500 def
/MULY 500 def
%ioute 0 eq {/e 2.7182818 def}
%           {/e 10.0 def     } ifelse
/e 2.7182818 def

/im 45 def

/j 0 def
0 1 50 {/i exch def %i=0,50
        xi i -4 i 0.2 mul add put
        ioute 0 eq {%ioute=0
        epxi i e xi i get ax div     exp put
        emxi i e xi i get cx div neg exp put
                   }
                   {%ioute=1
        epxi i e xi i get lne_10 div ax div exp put
        emxi i e xi i get lne_10 div cx div neg exp put
                   } ifelse
        esxi i epxi i get emxi i get add put
        Frui i epxi i get emxi i get sub
               epxi i get emxi i get add div bi mul put
       } for %i=0,50

40 setlinewidth
[       ] 0 setdash

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

k 0 eq {%k=0
j 0 eq {[       ] 0 setdash tfw} if
j 1 eq {[       ] 0 setdash tfy} if
} if %k=0

k 1 eq {%k=1
j 0 eq {[100 100] 0 setdash tfn} if
%j 1 eq {[100 100] 0 setdash tfn} if
} if %k=1

0 1 im {/i exch def %i=0,im
        i  0 eq {xi i get MULX mul 2000 add
                 Frui i get MULY mul 1500 add moveto} if
        i  1 ge
        i im 1 sub le and {xi i get MULX mul 2000 add
                           Frui i get MULY mul 1500 add lineto} if
        i im eq {xi i get MULX mul 2000 add
                 Frui i get MULY mul 1500 add lineto stroke} if
       } for %i=0,im

k 1 eq {%k=1
tfy
j 1 eq {%j=1
        /yta Frui 45 get MULY mul 070 add def
        ixt2 2000 add 1500 yta add moveto
        (a=) show ax cvsshow2x
       } if %j=1

j 1 eq {%j=1
        ixt2 2000 add 1500 yta add 0250 sub moveto
        (b=) show bx cvsshow2x
       } if %j=1

       } if %k=1

} for %k=0,1

idevi 1 eq {%idevi=1

%integral dx/(a^2+x^2) = (1/a) arctan (x/a)

/edxi 51 array def
/eqxi 51 array def
/emxi 51 array def
/Frudi 51 array def

0 1 50 {/i exch def %i=0,50
        xi i -4 i 0.2 mul add put

        ioute 0 eq {%ioute=0
        eqxi i e xi i get ax div     exp put
        emxi i e xi i get cx div neg exp put
                   }
                   {%ioute=1
        eqxi i e xi i get lne_10 div ax div exp put
        emxi i e xi i get lne_10 div cx div neg exp put
                   } ifelse

        edxi i eqxi i get    
               emxi i get add 2 exp put
        edxi i 4 edxi i get div put
        Frudi i edxi i get bi mul put
       } for %i=0,50

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

k 0 eq {%k=0
j 0 eq {[       ] 0 setdash tfg} if
j 1 eq {[       ] 0 setdash tfg} if
} if %k=0

k 1 eq {%k=1
j 0 eq {[100 100] 0 setdash tfn} if
%j 1 eq {[100 100] 0 setdash tfn} if
} if %k=1

50 setlinewidth
/im 45 def

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

xchartl 0 eq {tchartl 4 eq {tfg} if} if
xchartl 1 eq {tchartl 4 eq {tfr} if} if
xchartl 2 eq {tchartl 4 eq {tfb} if} if
xchartl 3 eq {tchartl 4 eq {tfy} if} if

0 1 im {/i exch def %i=0,im
        i  0 eq {xi i get MULX mul 2000 add
                 Frudi i get klog 1 eq {log} if MULY mul 1500 add moveto} if
        i  1 ge
        i im 1 sub le and {xi i get MULX mul 2000 add
                           Frudi i get klog 1 eq {log} if MULY mul 1500 add lineto} if
        i im eq {xi i get MULX mul 2000 add
                 Frudi i get klog 1 eq {log} if MULY mul 1500 add lineto stroke} if
       } for %i=0,im

} for %klog=0,1

xchartl 0 eq {tchartl 0 eq {tfw} {tfg} ifelse
              4550 1430 moveto (a=1) show
              3800 0300 moveto (a=1) show
              0700 0500 moveto (c=1) show
             } if

xchartl 1 eq {tchartl 0 eq {tfw} {tfr} ifelse
              4550 1530 moveto (a=2) show
              4000 0550 moveto (a=2) show
              0500 0300 moveto (c=1) show
             } if

xchartl 2 eq {tchartl 0 eq {tfw} {tfb} ifelse
              4550 1530 moveto (a=4) show
              4000 1100 moveto (a=4) show
              0300 0100 moveto (c=1) show
             } if

xchartl 3 eq {tchartl 0 eq {tfw} {tfy} ifelse
              4550 1530 moveto (a=0,5) show
              0700 0500 moveto (c=1) show
              0700 0500 moveto (c=1) show
             } if
} for %k=0,1


[ ] 0 setdash
20 setlinewidth

} if %idevi=1

%slope
/m0 Frui 21 get Frui 19 get sub
    xi   21 get xi   19 get sub div def

%font colour
j 0 eq {tfw} if
j 1 eq {tfy} if
1650 0700 j 180 mul sub moveto
TBIS (m) show
0 -70 rmoveto TBV ax cvsshow1x bi cvishow 0 70 rmoveto
TBS (=) show m0 cvsshow2x

%} for %j=jm1,jm2

tfl
/yshi 1500 def
30 setlinewidth
[100 100] 0 setdash
1600   0 moveto 1600 Frui 16 get MULY mul yshi add lineto stroke
2400 500 moveto 2400 Frui 24 get MULY mul yshi add lineto stroke
1600   0 moveto 0 1000 rlineto stroke
2400 400 moveto 0 1100 rlineto stroke

20 setlinewidth
TBL newpath
tfw 1600 Frui 16 get MULY mul yshi add 70 0 360 arc fill
tfn 1600 Frui 16 get MULY mul yshi add 50 0 360 arc fill
tfn 2400 Frui 24 get MULY mul yshi add 70 0 360 arc fill
tfw 2400 Frui 24 get MULY mul yshi add 50 0 360 arc fill

newpath
tfn 1600 100 add Frui 16 get MULY mul yshi add 200 sub moveto (N) show
tfw 2400 100 add Frui 24 get MULY mul yshi add 130 sub moveto (W) show

xtr0 neg ytr0 neg translate

} def %C0i_FXi %END C0i_FXi

%*********************************************************************
C0i_FXi
%**************************************************************

%  xchartl   0 eq {  100 neg 04480 neg translate} if
%  xchartl   1 eq { 6150 neg 04480 neg translate} if
%  xchartl   2 eq {  100 neg 00220 neg translate} if
%  xchartl   3 eq { 6150 neg 00220 neg translate} if

grestore

} for %xchartl=0,3

showpage
grestore

%%Trailer