%!PS-Adobe-3.0 EPSF-3.0 igb00-3N
%%BoundingBox: 70 85 243 206

%START PDFDE011.EPS
/pdfmark14 where {pop} {userdict /pdfmark14 /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/igb0/igb0.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:2024120112000)
 /ModDate (D:2024120112000)
/DOCINFO pdfmark14
[ /View [ /Fit ]
/DOCVIEW pdfmark14
%END  PDFDE011

/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-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

/TK {250 /Times-ISOL1 FS} bind def
/TM {300 /Times-ISOL1 FS} bind def
/TG {350 /Times-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

/TBK {250 /TimesB-ISOL1 FS} bind def
/TBM {300 /TimesB-ISOL1 FS} bind def
/TBG {350 /TimesB-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

/CBK {250 /CourierB-ISOL1 FS} bind def
/CBM {300 /CourierB-ISOL1 FS} bind def
/CBG {350 /CourierB-ISOL1 FS} bind def

/SK {250 /Symbol FS} bind def
/SM {300 /Symbol FS} bind def
/SG {350 /Symbol FS} bind def

/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

/rem %x0, y0 width heigth
  {/heigth exch def /width exch def /y0 exch def /x0 exch def
   x0 width 0.5 mul add y0 heigth 0.5 mul add moveto
   width 0 rlineto 0 heigth rlineto width neg 0 rlineto
   closepath } 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} def
/cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def
/cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def
/cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def
/cvsshow1g {/nxx exch def                              %example nxx=99,1/99,0
             nxx 0 lt {(-) show /nxx nxx abs def} if
             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 cvishow (,) show                      %nxa=99
             nxb cvishow                               %nxb=1/0
           } def
/cvsshow2g {/nxx exch def                              %example nxx=99.12/99,02/99,00
             nxx 0 lt {(-) show /nxx nxx abs def} if
             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 cvishow (,) show                      %nxb=99,
             nxb 10 ge {nxb cvishow} if                %nxb=12
             nxb  1 ge
             nxb  9 le and {(0) show nxb cvishow} if   %nxb=02
             nxb  0 eq {(00) show} if                  %nxb=00
           } def
/cvsshow3g {/nxx exch def                              %example nxx=99.123/99.012/99.001/99.000
             nxx 0 lt {(-) show /nxx nxx abs def} if
             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 cvishow (,) show                      %nxb=99,
             nxb 100 ge {nxb cvishow} if               %nxb=123/012/001/000
             nxb  10 ge
             nxb  99 le and {(0) show nxb cvishow} if  %nxb=012
             nxb   1 ge
             nxb   9 le and {(00) show nxb cvishow} if %nxb=001
             nxb   0 eq {(000) show} if                %nxb=000
           } def

/tfw {1 setgray} def
/tfn {0 setgray} def
/tfo {1 0 0 setrgbcolor} def
/tfl {0 1 0 setrgbcolor} def
/tfv {0 0 1 setrgbcolor} def
/tfc {0 1 1 setrgbcolor} def
/tfm {1 0 1 setrgbcolor} def
/tfy {1 1 0 setrgbcolor} def

%*********************************************************************
/proc_colors {%BEG proc_colors
ifarb 0 eq {%ifarb=0 N_W
/colors2 [{rgb 0 get rgb 0 get rgb 0 get}
          {rgb 1 get rgb 1 get rgb 1 get}
          {rgb 2 get rgb 2 get rgb 2 get}
          {rgb 3 get rgb 3 get rgb 3 get}
          {rgb 4 get rgb 4 get rgb 4 get}
          {rgb 5 get rgb 5 get rgb 5 get}
          {rgb 6 get rgb 6 get rgb 6 get}
          {rgb 7 get rgb 7 get rgb 7 get}
          {rgb 8 get rgb 8 get rgb 8 get}]def
          %N00w_02w_04w_06w_08w_10w_12w_14w_16w=W
           } if %ifarb=0

ifarb 1 eq {%ifarb=1 N_R
/colors2 [{rgb 0 get rgb 0 get rgb 0 get}
          {rgb 1 get rgb 0 get rgb 0 get}
          {rgb 2 get rgb 0 get rgb 0 get}
          {rgb 3 get rgb 0 get rgb 0 get}
          {rgb 4 get rgb 0 get rgb 0 get}
          {rgb 5 get rgb 0 get rgb 0 get}
          {rgb 6 get rgb 0 get rgb 0 get}
          {rgb 7 get rgb 0 get rgb 0 get}
          {rgb 8 get rgb 0 get rgb 0 get}]def
          %N00r_02r_04r_06r_08r_10r_12r_14r_16r=R
           } if %ifarb=1

ifarb 2 eq {%ifarb=2 N_G
/colors2 [{rgb 0 get rgb 0 get rgb 0 get}
          {rgb 0 get rgb 1 get rgb 0 get}
          {rgb 0 get rgb 2 get rgb 0 get}
          {rgb 0 get rgb 3 get rgb 0 get}
          {rgb 0 get rgb 4 get rgb 0 get}
          {rgb 0 get rgb 5 get rgb 0 get}
          {rgb 0 get rgb 6 get rgb 0 get}
          {rgb 0 get rgb 7 get rgb 0 get}
          {rgb 0 get rgb 8 get rgb 0 get}]def
          %N00g_02g_04g_06g_08g_10g_12g_14g_16g=G
           } if %ifarb=2

ifarb 3 eq {%ifarb=3 N_B
/colors2 [{rgb 0 get rgb 0 get rgb 0 get}
          {rgb 0 get rgb 0 get rgb 1 get}
          {rgb 0 get rgb 0 get rgb 2 get}
          {rgb 0 get rgb 0 get rgb 3 get}
          {rgb 0 get rgb 0 get rgb 4 get}
          {rgb 0 get rgb 0 get rgb 5 get}
          {rgb 0 get rgb 0 get rgb 6 get}
          {rgb 0 get rgb 0 get rgb 7 get}
          {rgb 0 get rgb 0 get rgb 8 get}]def
          %N00b_02b_04b_06b_08b_10b_12b_14b_16b=B
           } if %ifarb=3

ifarb 4 eq {%ifarb=4 N_Y
/colors2 [{rgb 0 get rgb 0 get rgb 0 get}
          {rgb 1 get rgb 1 get rgb 0 get}
          {rgb 2 get rgb 2 get rgb 0 get}
          {rgb 3 get rgb 3 get rgb 0 get}
          {rgb 4 get rgb 4 get rgb 0 get}
          {rgb 5 get rgb 5 get rgb 0 get}
          {rgb 6 get rgb 6 get rgb 0 get}
          {rgb 7 get rgb 7 get rgb 0 get}
          {rgb 8 get rgb 8 get rgb 0 get}]def
          %N00y_02y_04y_06y_08y_10y_12y_14y_16y=Y
           } if %ifarb=4

ifarb 5 eq {%ifarb=5 N_C
/colors2 [{rgb 0 get rgb 0 get rgb 0 get}
          {rgb 0 get rgb 1 get rgb 1 get}
          {rgb 0 get rgb 2 get rgb 2 get}
          {rgb 0 get rgb 3 get rgb 3 get}
          {rgb 0 get rgb 4 get rgb 4 get}
          {rgb 0 get rgb 5 get rgb 5 get}
          {rgb 0 get rgb 6 get rgb 6 get}
          {rgb 0 get rgb 7 get rgb 7 get}
          {rgb 0 get rgb 8 get rgb 8 get}]def
          %N00c_02c_04c_06c_08c_10c_12c_14c_16c=C
           } if %ifarb=5

ifarb 6 eq {%ifarb=6 N_M
/colors2 [{rgb 0 get rgb 0 get rgb 0 get}
          {rgb 1 get rgb 0 get rgb 1 get}
          {rgb 2 get rgb 0 get rgb 2 get}
          {rgb 3 get rgb 0 get rgb 3 get}
          {rgb 4 get rgb 0 get rgb 4 get}
          {rgb 5 get rgb 0 get rgb 5 get}
          {rgb 6 get rgb 0 get rgb 6 get}
          {rgb 7 get rgb 0 get rgb 7 get}
          {rgb 8 get rgb 0 get rgb 8 get}]def
          %N00m_02m_04m_06m_08m_10m_12m_14m_16mM
           } if %ifarb=6

ifarb 7 eq {%ifarb=7 R_W
/colors2 [{rgb 8 get rgb 0 get rgb 0 get}
          {rgb 8 get rgb 1 get rgb 1 get}
          {rgb 8 get rgb 2 get rgb 2 get}
          {rgb 8 get rgb 3 get rgb 3 get}
          {rgb 8 get rgb 4 get rgb 4 get}
          {rgb 8 get rgb 5 get rgb 5 get}
          {rgb 8 get rgb 6 get rgb 6 get}
          {rgb 8 get rgb 7 get rgb 7 get}
          {rgb 8 get rgb 8 get rgb 8 get}]def
          %R00w_02w_04w_06w_08w_10w_12w_14w_16w=W
           } if %ifarb=7

ifarb 8 eq {%ifarb=8 G_W
/colors2 [{rgb 0 get rgb 8 get rgb 0 get}
          {rgb 1 get rgb 8 get rgb 1 get}
          {rgb 2 get rgb 8 get rgb 2 get}
          {rgb 3 get rgb 8 get rgb 3 get}
          {rgb 4 get rgb 8 get rgb 4 get}
          {rgb 5 get rgb 8 get rgb 5 get}
          {rgb 6 get rgb 8 get rgb 6 get}
          {rgb 7 get rgb 8 get rgb 7 get}
          {rgb 8 get rgb 8 get rgb 8 get}]def
          %G00w_02w_04w_06w_08w_10w_12w_14w_16w=W
           } if %ifarb=8

ifarb 9 eq {%ifarb=9 B_W
/colors2 [{rgb 0 get rgb 0 get rgb 8 get}
          {rgb 1 get rgb 1 get rgb 8 get}
          {rgb 2 get rgb 2 get rgb 8 get}
          {rgb 3 get rgb 3 get rgb 8 get}
          {rgb 4 get rgb 4 get rgb 8 get}
          {rgb 5 get rgb 5 get rgb 8 get}
          {rgb 6 get rgb 6 get rgb 8 get}
          {rgb 7 get rgb 7 get rgb 8 get}
          {rgb 8 get rgb 8 get rgb 8 get}]def
          %B00w_02w_04w_06w_08w_10w_12w_14w_16w=W
           } if %ifarb=9

ifarb 10 eq {%ifarb=10 Y_W
/colors2 [{rgb 8 get rgb 8 get rgb 0 get}
          {rgb 8 get rgb 8 get rgb 1 get}
          {rgb 8 get rgb 8 get rgb 2 get}
          {rgb 8 get rgb 8 get rgb 3 get}
          {rgb 8 get rgb 8 get rgb 4 get}
          {rgb 8 get rgb 8 get rgb 5 get}
          {rgb 8 get rgb 8 get rgb 6 get}
          {rgb 8 get rgb 8 get rgb 7 get}
          {rgb 8 get rgb 8 get rgb 8 get}]def
          %Y00w_02w_04w_06w_08w_10w_12w_14w_16w=W
           } if %ifarb=10

ifarb 11 eq {%ifarb=11 C_W
/colors2 [{rgb 0 get rgb 8 get rgb 8 get}
          {rgb 1 get rgb 8 get rgb 8 get}
          {rgb 2 get rgb 8 get rgb 8 get}
          {rgb 3 get rgb 8 get rgb 8 get}
          {rgb 4 get rgb 8 get rgb 8 get}
          {rgb 5 get rgb 8 get rgb 8 get}
          {rgb 6 get rgb 8 get rgb 8 get}
          {rgb 7 get rgb 8 get rgb 8 get}
          {rgb 8 get rgb 8 get rgb 8 get}]def
          %C00w_02w_04w_06w_08w_10w_12w_14w_16w=W
           } if %ifarb=11

ifarb 12 eq {%ifarb=12 M_W
/colors2 [{rgb 8 get rgb 0 get rgb 8 get}
          {rgb 8 get rgb 1 get rgb 8 get}
          {rgb 8 get rgb 2 get rgb 8 get}
          {rgb 8 get rgb 3 get rgb 8 get}
          {rgb 8 get rgb 4 get rgb 8 get}
          {rgb 8 get rgb 5 get rgb 8 get}
          {rgb 8 get rgb 6 get rgb 8 get}
          {rgb 8 get rgb 7 get rgb 8 get}
          {rgb 8 get rgb 8 get rgb 8 get}]def
          %M00w_02w_04w_06w_08w_10w_12w_14w_16w=W
           } if %ifarb=12

} bind def %END proc_colors

%***************************************************************
/proc_diagram {%BEG proc_diagram

ks1 1 ks2 {/ks exch def %ks=ks1,ks2

ks 0 eq {tfl} if
ks 1 eq {tfo} if
ks 2 eq {tfy} if
ks 3 eq {tfn} if
ks 4 eq {tfw} if

ks 2 le {%ks<=2
xchart 0 eq {%xchart=0
0 1 8 {/i exch def %i=0,8
       ks 0 eq {xpi i get ypti i get} if
       ks 1 eq {xpi i get yp1di i get} if
       ks 2 eq {xpi i get yp1hi i get} if
       i 0 eq {moveto} if
       i 1 ge 
       i 7 le and {lineto} if
       i 8 eq {lineto stroke} if
      } for %i=0,8
      } if %xchart=0
      } if %ks<=2

ks 0 eq
ks 3 eq or
ks 4 eq or {%ks=0,3,4
xchart 1 eq 
xchart 2 eq or {%xchart=1,2
0 1 8 {/i exch def %i=0,8
       xpi i get ks 0 eq {ypti  i get} if
                 ks 3 eq {yp0di i get} if
                 ks 4 eq {yp0hi i get} if
       i 0 eq {moveto} if
       i 1 ge
       i 7 le and {lineto} if
       i 8 eq {lineto stroke} if
      } for %i=0,8
      } if %xchart=1,2
      } if %ks=0,3,4

ks 0 eq {%ks=0 green
         1 1 7 {/i exch def %i=1,7
                xpi i get ypti i get 70 0 360 arc fill
               } for %i=1,7
        } if %ks=0

xchart 0 eq {%xchart=0
ks 1 eq {%ks=1 red
         1 1 7 {/i exch def %i=1,7
                /yp yp1di i get def /yv yv1di i get def
                newpath
                xpi i get yp 70 0 360 arc fill
                newpath
                xpi i get 250 add yp 100 sub moveto
                xvi i get cvsshow2g (, ) show yv 0.005 add cvsshow2g
               } for %i=1,7
        } if %ks=1
ks 2 eq {%ks=2 yellow
         1 1 7 {/i exch def %i=1,7
                /yp yp1hi i get def /yv yv1hi i get def
                newpath
                xpi i get yp 70 0 360 arc fill
                newpath
                xpi i get 1500 sub yp 100 sub moveto
                xvi i get cvsshow2g (, ) show yv 0.005 add cvsshow2g
               } for %i=1,7
        } if %ks=2
       } if %xchart=0

xchart 1 eq {%xchart=1
ks 3 eq {%ks=3
         2 1 2 {tfn /i exch def %i=2,2
                /yp yp0di i get def /yv yv0di i get def
                newpath
                xpi i get yp 70 0 360 arc fill
                newpath
                xpi i get 250 add yp 100 sub moveto
                xvi i get cvsshow2g (, ) show yv 0.005 add cvsshow2g
               } for %i=2,2
         6 1 6 {tfw /i exch def %i=6,6
                /yp yp0hi i get def /yv yv0hi i get def
                newpath
                xpi i get yp 70 0 360 arc fill
                newpath
                xpi i get 250 add yp 100 sub moveto
                xvi i get cvsshow2g (, ) show yv 0.005 add cvsshow2g
               } for %i=6,6
        } if %ks=3
ks 4 eq {%ks=4
         2 1 2 {tfw /i exch def %i=2,2
                /yp yp0hi i get def /yv yv0hi i get def
                newpath
                xpi i get yp 70 0 360 arc fill
                newpath
                xpi i get 1500 sub yp 100 sub moveto
                xvi i get cvsshow2g (, ) show yv 0.005 add cvsshow2g
               } for %i=2,2
         6 1 6 {tfn /i exch def %i=6,6
                /yp yp0di i get def /yv yv0di i get def
                newpath
                xpi i get yp 70 0 360 arc fill
                newpath
                xpi i get 1500 sub yp 100 sub moveto
                xvi i get cvsshow2g (, ) show yv 0.005 add cvsshow2g
               } for %i=6,6
        } if %ks=4
       } if %xchart=1

xchart 2 eq {%xchart=2
ks 3 eq {%ks=3
         1 1 3 {tfn /i exch def %i=1,3
                /yp yp0di i get def /yv yv0di i get def
                newpath
                xpi i get yp 70 0 360 arc fill
                newpath
                xpi i get 250 add yp 100 sub moveto
                xvi i get cvsshow2g (, ) show yv 0.005 add cvsshow2g
               } for %i=1,3
         5 1 7 {tfw /i exch def %i=5,7
                /yp yp0hi i get def /yv yv0hi i get def
                newpath
                xpi i get yp 70 0 360 arc fill
                newpath
                xpi i get 250 add yp 100 sub moveto
                xvi i get cvsshow2g (, ) show yv 0.005 add cvsshow2g
               } for %i=1,3
        } if %ks=3
ks 4 eq {%ks=4
         1 1 3 {tfw /i exch def %i=1,3
                /yp yp0hi i get def /yv yv0hi i get def
                newpath
                xpi i get yp 70 0 360 arc fill
                newpath
                xpi i get 1500 sub yp 100 sub moveto
                xvi i get cvsshow2g (, ) show yv 0.005 add cvsshow2g
               } for %i=1,3
         5 1 7 {tfn /i exch def %i=5,7
                /yp yp0di i get def /yv yv0di i get def
                newpath
                xpi i get yp 70 0 360 arc fill
                newpath
                xpi i get 1500 sub yp 100 sub moveto
                xvi i get cvsshow2g (, ) show yv 0.005 add cvsshow2g
               } for %i=5,7
        } if %ks=4
       } if %xchart=2

      } for %ks=ks1,ks2

} bind def %END proc_diagram        

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

/lanind 0 def
/lantex [(G) (E) (S) (N) (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
/showm {6 lanind eq {show} {pop} ifelse} bind def
/lanindg where {pop /lanind1 lanindg def /lanind2 lanindg def}
               {/lanind1 0 def /lanind2 0 def} ifelse
/colormg where {pop /colorm1 colormg def /colorm2 colormg def}
               {/colorm1 0 def /colorm2 0 def} ifelse
/xcolorg where {pop /xcolor1 xcolorg def /xcolor2 xcolorg def}
               {/xcolor1 0 def /xcolor2 0 def} ifelse
/xchartg where {pop /xchart1 xchartg def /xchart2 xchartg def}
               {/xchart1 0 def /xchart2 0 def} ifelse
/lanind lanind1 def %lanind1 1 lanind2 {/lanind exch def %output showpage
/colorm colorm1 def %colorm1 1 colorm2 {/colorm exch def %output showpage
/xcolor xcolor1 def %xcolor1 1 xcolor2 {/xcolor exch def %output showpage
/xchart xchart1 def %xchart1 1 xchart2 {/xchart exch def %output showpage

gsave

/cvishow0 {cvi 6 string cvs show} def

/pchartl 1 def %0:left page, 1:right page
/tchartl 0 def %0:top  page, 4:down  page
/pchart pchartl def
/tchart tchartl def
/evpr 0 def %0: evaluate (e), 1: produce (p)

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 eq {(igb00-) show}
             {(igb01-) show} ifelse
tchartl 0 eq {(3n) show}
             {(7n) show} ifelse
} if %xbtex0=1

/ifarb 0 def
/isize 0.50 def %1.00, 0.90, 0.50, 0.25

/xchartl 0 def
3 1 3 {/xchartl exch def %xchartl=0,3
/xchart xchartl def
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 {(igb00-) show}
             {(igb01-) show} ifelse
xchartl 1 add tchartl add cvishow0
(a) show %a

(, image ) showen (, Bild ) showde
xchartl 1 add cvishow0

xchart 2 le {%xchart<=2
evpr 0 eq {(, evaluate (e) visual scaling between ) showen
           (, evaluiere (e) visuelle Skalierung zwischen ) showde}
          {(, produce (p) equal visual difference between ) showen
           (, produziere (p) gleiche Differenz zwischen ) showde
          } ifelse
} if %xchart<=2

xchart 0 eq {%xchart=0
/colseen 14 array def
/colseen [%BEG colseren
(Black N - White W)                (Black N - Red Rn - Red R)
(Black N - Green Gn - Green G)     (Black N - Blue Bn - Blue B)
(Black N - Yellow Yn - Yellow Y)   (Black N - Cyan Cn - Cyan C) 
(Black N - Magenta Mn - Magenta M) (Red R - Red Rw - White W)
(Green G - Green Gw - White W)     (Blue B - Blue Bw - White W)
(Yellow Y - Yellow Yw - White W)   (Cyan C - Cyan Cw - White W)
(Magenta M - Magenta Mw - White W)
] def %END colseen
/colsede 14 array def
/colsede [%BEG colsede
(Schwarz N - Wei\337 W)              (Schwarz N - Rot Rn - Rot R)
(Schwarz N - Gr\374n Gn - Gr\374n G) (Schwarz N - Blau Bn - Blau B)
(Schwarz N - Gelb Yn - Gelb Y)       (Schwarz N - Cyan Cn - Cyan C)
(Schwarz N - Magenta Mn - Magenta M) (Rot R - Rot Rw - Wei\337 W)
(Gr\374n G - Gr\374n Gw - Wei\337 W) (Blau B - Blau Bw - Wei\337 W)
(Gelb Y - Gelb Yw - Wei\337 W)       (Cyan C - Cyan Cw - Wei\337 W)
(Magenta M - Magenta Mw - Wei\337 W)
] def %END colsede
colseen ifarb get showen
colsede ifarb get showde
} if %xchart=0

xchart 1 eq {%xchart=1
(two of five steps) showen
(zwei von f\374nf Stufen) showde
} if %xchart=1

xchart 2 eq {%xchart=2
(four of nine steps) showen
(vier von neun Stufen) showde
} if %xchart=2

xchart 3 eq {%xchart=3
evpr 0 eq {(, evaluate (e) visual threshold (+0,04?) ) showen 
           (of 9 steps; all equal?) showen
           (, evaluiere (e) Sehschwelle (+0,04?) ) showde
           (von 9 Stufen; alle gleich?) showde
          }
          {(, produce (p) visual threshold (+0,04?) ) showen
           (of 9 steps; all equal?) showen
           (, produziere (p) Sehschwelle (+0,04?) ) showde
           (von 9 Stufen; alle gleich?) showde
          } ifelse
} if %xchart=3

%**************************************************************
%definition of slope and color series
/nnexp 0 def %0:nn=1.5000/0.6667, 1:1.3333/0.7500
nnexp 0 eq {/nn 1.5000 def} if %1.33 (more dark)/1.50
nnexp 1 eq {/nn 1.3333 def} if

(, ) show
150 /Symbol FS (g) show
120 /Times-ISOL1 FS 0 -40 rmoveto (rel) show 0 40 rmoveto
150 /Times-ISOL1 FS 
nnexp 0 eq {(=0,67) show} if
nnexp 1 eq {(=0,75) show} if

/rgb 9 array def
0 1 8 {/i exch def %i=0,8
       /id8 0.125 i mul def
       rgb i id8 put
      } for %i=0,8

%inverse data, see heg0l0np.pdf, change the above 7 data
%rgb 1 0.115 put
%rgb 2 0.202 put
%rgb 3 0.299 put
%rgb 4 0.390 put
%rgb 5 0.538 put
%rgb 6 0.690 put
%rgb 7 0.844 put

%n>1 darker output, n<1 lighter output
%0 1 8 {/i exch def %i=0,8
%       /id8 0.125 i mul def
%       rgb i id8 1.5 exp put
%      } for %i=0,8

/cvishow {cvi 6 string cvs show} def

proc_colors
%************************************************

%special format with scale for about 6x4cm
0.425 dup scale
20 setlinewidth
%xwidth=9*1400=1400
%white frame=350=1400*0.25
%grey  frame=350=1400*0.25

/s0      1400 def
/s0d2 s0 0.50 mul def
/s0d4 s0 0.25 mul def
/xwidth  s0 10.0 mul def %format about 3:2
/ywidth  s0 6.67 mul def
/xwidthm xwidth 0.5 mul def %mean xwidth

%grey frame (u), start left down
/x0u s0d4 def %left xy down
/y0u s0d4 def
/x1u xwidth s0d4 sub def
/y1u y0u def
/x2u x1u def
/y2u ywidth s0d4 sub def
/x3u x0u def
/y3u y2u def

/xpmi 9 array def %horizontal from left (0) to right (8)
/ypmj 4 array def %vertical from top (3) to down (0)

/xp3m x3u s0 0.75 mul add def
/yp3m y3u s0 0.75 mul sub def

/xp2m x3u s0 0.75 mul add def
/yp2m y3u s0 2.00 mul sub def

/xp1m x0u s0 0.75 mul add def
/yp1m y0u s0 1.95 mul add def

/xp0m x0u s0 0.75 mul add def
/yp0m y0u s0 0.75 mul add def

0 1 08 {/i exch def %i=0,8
        xpmi i xp0m s0 i mul add put
       } for %i=0,8

ypmj 3 yp3m put
ypmj 2 yp2m put
ypmj 1 yp1m put
ypmj 0 yp0m put

/x00 xpmi 3 get def %3 steps
/x01 xpmi 2 get def %5 steps
/x02 xpmi 0 get def %9 steps
/x03 xpmi 2 get def %1 step

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

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

xchart 0 eq {0.5 nn exp setgray}{0.5 setgray} ifelse
x0u y0u moveto x1u y1u lineto x2u y2u lineto
               x3u y3u lineto closepath fill

/tfnw {tfw} def

%%%%%%%%%%%   oberer Schriftzug %%%%%%%%%%%%%%%%

/sd  1400 def
/sd0 000 def
/dd0 270 def
/sda 0200 def

/xt   400 200 add def
/yte  100 def

/y00t 150 def
/y01t 450 def

xchart 0 eq {/jd 4 def /ixk x00 def /jm 1 def} if
xchart 1 eq {/jd 2 def /ixk x01 def /jm 2 def} if
xchart 2 eq {/jd 1 def /ixk x02 def /jm 4 def} if
xchart 3 eq {/jd 1 def /ixk x02 def /jm 4 def} if %identical xchart=2

%for index
/inx {TBK 0 -40 rmoveto show 0 40 rmoveto TBM} def

/lindat 9 array def
/lindaa 9 array def
/lindac 9 array def
/lindad 9 array def %d=large dark, large (1. standard) correction
/lindah 9 array def %h=large light (hell), large (1. standard) corection
/lind0d 9 array def %s=small, 2. correction
/lind0h 9 array def %i=inverse, 2. correction
/linx0d 9 array def %scaled data
/linx0h 9 array def %inverse scaled data

/lind1d 9 array def %lindad+lind0d, d=dark, small (2. professional) correction
/lind1h 9 array def %lindah+lind0h, h=light (hell), small (2. professional) correction

%standard data
%        0     1     2     3     4     5     6     7     8
/lindat [0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000] def
%adjusted data
/lindaa [0.000 0.135 0.300 0.450 0.600 0.700 0.800 0.900 1.000] def
%calculated from adjusted data
/lindac [0.000 0.115 0.202 0.299 0.390 0.538 0.690 0.844 1.000] def

0 1 8 {/i exch def %i=0,8
%       lindad i lindat i get 1 nn div exp put  %0.7071, nn=2 (i=4) %lighter
%       lindah i lindat i get nn exp put        %0.2500, nn=2 (i=4) %darker
       lindah i lindat i get 1 nn div exp put  %nn=0.750 (i=4) %lighter
       lindad i lindat i get nn exp put        %nn=1.333 (i=4) %darker
      } for %i=0,8

%        0 N   1     2 D    3     4 U   5     6 H   7     8 W
%for 1,5/0.666
%lindat [0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000] def
%lindad [0.000 0.040 0.120 0.220 0.350 0.490 0.640 0.810 1.000] def
%lindah [0.000 0.240 0.390 0.520 0.620 0.730 0.820 0.910 1.000] def
%for 1.333/0.750
%lindat [0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000] def

%lindad [0.000 0.060 0.160 0.270 0.400 0.540 0.680 0.840 1.000] def
%lindah [0.000 0.210 0.350 0.480 0.600 0.700 0.810 0.900 1.000] def

%lind1d [0.000 0.085 0.210 0.295 0.500 0.515 0.630 0.815 1.000] def
%lind1h [0.000 0.235 0.400 0.505 0.500 0.675 0.760 0.875 1.000] def

/lind0d [0.000 0.110 0.200 0.350 0.500 0.650 0.800 0.900 1.000] def
/lind0h [0.000 0.140 0.300 0.400 0.500 0.600 0.700 0.850 1.000] def

0 1 8 {/i exch def %i=0,8
       lind1h i lindah i get lind0h i get lindat i get sub add put
       lind1d i lindad i get lind0d i get lindat i get sub add put
       linx0h i lindat i get put
       linx0d i lindat i get put
      } for %i=0,8

linx0h 1 lind0h 1 get lind0h 0 get sub
         lind0h 2 get lind0h 0 get sub div put
linx0h 2 lind0h 2 get lind0h 0 get sub
         lind0h 4 get lind0h 0 get sub div put
linx0h 3 lind0h 3 get lind0h 2 get sub
         lind0h 4 get lind0h 2 get sub div put
linx0h 4 0.00 put
linx0h 5 lind0h 5 get lind0h 4 get sub
         lind0h 6 get lind0h 4 get sub div put
linx0h 6 lind0h 6 get lind0h 4 get sub
         lind0h 8 get lind0h 4 get sub div put
linx0h 7 lind0h 7 get lind0h 6 get sub
         lind0h 8 get lind0h 6 get sub div put

linx0d 1 lind0d 1 get lind0d 0 get sub
         lind0d 2 get lind0d 0 get sub div put
linx0d 2 lind0d 2 get lind0d 0 get sub
         lind0d 4 get lind0d 0 get sub div put
linx0d 3 lind0d 3 get lind0d 2 get sub
         lind0d 4 get lind0d 2 get sub div put
linx0d 4 0.00 put
linx0d 5 lind0d 5 get lind0d 4 get sub
         lind0d 6 get lind0d 4 get sub div put
linx0d 6 lind0d 6 get lind0d 4 get sub
         lind0d 8 get lind0d 4 get sub div put
linx0d 7 lind0d 7 get lind0d 6 get sub
         lind0d 8 get lind0d 6 get sub div put

20 setlinewidth
%forth line from bottom = top line, always full square
/nrtxt 1 def %0:no nrtxt, 1:with nrtxt
/s s0 def
/iy0 ypmj 3 get s 0.5 mul sub def
TBM
0 1 8 {/i exch def %i=0,8
        /lan4 xchart 0 eq {lindad i get def}        %top for 0
                          {lindat i get def} ifelse %top for 1_3
        lan4 dup dup setrgbcolor
        /ix0 xpmi i get s 0.5 mul sub def
        ix0 iy0 s s rec fill

        nrtxt 1 eq {%nrtxt=1
                    i 4 le {tfw}{tfn} ifelse
                    ix0 50 add iy0 1150 add moveto i cvishow
                    i 1 ge
                    i 7 le and {xchart 0 eq {(0) show} if  %top for 0
                                xchart 1 ge {(1) show} if  %top for 1_3
                               } if
                   } if %nrtxt=1
       } for %i=0,8
tfw
/ix0 xpmi 4 get s 0.5 mul sub def
ix0 iy0       moveto s 0 rlineto stroke
ix0 iy0 s add moveto s 0 rlineto stroke

%to be calculated for image 3 from image 0, 1, and 2
%data from heg0/heg0l0np.pdf 250115


%third line: 3, 5, 9 steps, second from top ypmj=2, with gamma correction
/s s0 isize mul def
/iy0 ypmj 2 get s 0.5 mul sub def
0 jd 8 {/i exch def %i=0,jd,8
        /lin3 lindat i get def
         lin3 dup dup setrgbcolor
        jd 4 eq {%jd=4
                 i jd eq {/lin4g lindad 4 get def  %special top dark grey 4 
                          lin4g dup dup setrgbcolor
                         } if
                 /ix0 xpmi 3 i 4 idiv add get s 0.5 mul sub def
                } if %jd=4
        jd 2 eq {%jd=2
                 /ix0 xpmi 2 i 2 idiv add get s 0.5 mul sub def
                } if %jd=2
        jd 1 eq {%jd=1
                 /ix0 xpmi i get s 0.5 mul sub def
                } if %jd=1
        ix0 iy0 s s rec fill
        nrtxt 1 eq {%nrtxt=1
                    i 4 le {tfw}{tfn} ifelse
                    ix0 50 add
                    pchart 0 eq {iy0 s add 250 sub moveto i cvishow}
                                {iy0       250 sub moveto i cvishow} ifelse
                    i 4 eq      {evpr 0 eq xchart 0 eq and {(0) show}
                                                           {(1) show} ifelse
                                } if
                    i 1 ge
                    i 7 le and
                    i 4 ne and {(1) show} if
                   } if %nrtxt=1
       } for %i=0,jd,8

tfw
/ix0 xpmi 4 get s 0.5 mul sub def
ix0 iy0       moveto s 0 rlineto stroke
ix0 iy0 s add moveto s 0 rlineto stroke


%rectangle (r)
/x0r x0u s0 3 mul add def
/y0r y0u s0d4 add def
/x1r x0r s0 3 mul add def
/y1r y0r def
/x2r x1r def
/y2r y1r s0 3 mul add def
/x3r x0r def
/y3r y2r def

/xwr 4400 def
/ywr 0300 def

%test square xchart=0,1,2
xchart 2 le {%xchartl<=2

tfn
TBM
x0r y0r moveto x1r y1r lineto x2r y2r lineto
               x3r y3r lineto closepath stroke


xchart 0 eq {%xchart=0
             tfw
             x0r y0r moveto x2r y2r lineto stroke
            } if %xchart=0

/xpi 9 array def %p=position
/ypi 9 array def
/xvi 9 array def %v=value
/yvi 9 array def

/ypti 9 array def
/ypadi 9 array def
/ypahi 9 array def
/yp0di 9 array def
/yp0hi 9 array def
/yp1di 9 array def
/yp1hi 9 array def

/yvti 9 array def
/yvadi 9 array def
/yvahi 9 array def
/yv0di 9 array def
/yv0hi 9 array def
/yv1di 9 array def
/yv1hi 9 array def

%$STOP0A

0 1 8 {/i exch def %i=0,8
       xpi i x0r x2r x0r sub 0.125 i mul  mul add put
       ypti  i y0r y2r y0r sub lindat i get mul add put
       ypadi i y0r y2r y0r sub lindad i get mul add put
       ypahi i y0r y2r y0r sub lindah i get mul add put
       yp0di i y0r y2r y0r sub lindat i get mul add put
       yp0hi i y0r y2r y0r sub lindat i get mul add put
       yp1di i y0r y2r y0r sub lindad i get mul add put
       yp1hi i y0r y2r y0r sub lindah i get mul add put

       xvi i 0.125 i mul put
       yvti i lindat i get put
       yvadi i lindad i get put
       yvahi i lindah i get put
       yv0di i lindat i get put
       yv0hi i lindat i get put
       yv1di i lindad i get put
       yv1hi i lindah i get put
      } for %i=0,8

%ks1 and ks2 for proc_diagram
xchart 0 eq {/ks1 0 def /ks2 2 def} if
xchart 1 eq {/ks1 0 def /ks2 4 def} if
xchart 2 eq {/ks1 0 def /ks2 4 def} if

%STOP1

proc_diagram %proc_diagram

%STOP2

xchart 0 eq {/ia1 4 def /ia2 4 def /iad 1 def} if
xchart 1 eq {/ia1 2 def /ia2 6 def /iad 2 def} if
xchart 2 eq {/ia1 1 def /ia2 7 def /iad 1 def} if

%vertical arrow
ia1 iad ia2 {/ia exch def %ia=ia1,iad,ia2
             xchart 0 eq {/ypda yp1di ia get def /yvda yv1di ia get def
                          /ypha yp1hi ia get def /yvha yv1hi ia get def} if
             xchart 1 ge {/ypda yp0di ia get def /yvda yv0di ia get def
                          /ypha yp0hi ia get def /yvha yv0hi ia get def} if
             tfn
             xpi ia get ypda moveto
             xpi ia get ypha lineto stroke

             xchart 0 eq {%xchart=0
             tfw
             xpi ia get ypda        moveto
             xpi ia get ypti ia get lineto 
             50 neg 150 neg rlineto
             50     150     rlineto
             50     150 neg rlineto stroke
                         } if %xchart=0

%             tfo
%             xpi ia get ypii ia get moveto
%             xpi ia get ypti ia get lineto stroke
%             ypii ia get ypti ia get sub 0 gt 
%              {50 neg 150     rlineto
%               50     150 neg rlineto
%               50     150      rlineto
%              } if
%             ypii ia get ypti ia get sub 0 lt
%              {50 neg 150 neg rlineto
%               50     150     rlineto
%               50     150 neg rlineto stroke
%              } if
            } for %ia=ia1,iad,ia2

} if %xchart=0/1/2
%end diagram

/xv4 0.125 4 mul def
/yv4d lindad 4 get def
/yv4h lindah 4 get def

xchart 2 le {%xchart<=2
tfn
x0r 3000 sub y3r 80 sub moveto (Output (9 steps)) showen 
                               (Ausgabe (9 Stufen)) showde
x1r 400 add y0r 200 sub moveto (Input (9 steps)) showen
                               (Eingabe (9 Stufen)) showde
tfw
x0r 3000 sub y3r 380 sub moveto (adjusted spacing) showen
                                (justierte Stufung) showde
x0r 3000 sub y3r 680 sub moveto (0 <= ) show TBIM (rgb*) show
                                TBK 0 -50 rmoveto (out) show 0 50 rmoveto
                                TBM ( <= 1) show
tfn
x1r 400 add y0r 400 add moveto (equally spaced) showen
                               (gleichabs\344ndig gestuft) showde
x1r 400 add y0r 100 add moveto (0 <= ) show TBIM (rgb*) show
                               TBK 0 -50 rmoveto (in) show 0 50 rmoveto
                               TBM ( <= 1) show
tfw
/ymr y3r y0r add 0.5 mul def
x0r 350 sub y0r 80 sub moveto (0) show
x0r 550 sub ymr 80 sub moveto (0,5) show
x0r 350 sub y3r 80 sub moveto (1) show

tfn
/xmr x1r x0r add 0.5 mul def
x0r 050 add y0r 300 sub moveto (0) show
xmr 050 add y0r 300 sub moveto (0,5) show
x1r 050 add y0r 300 sub moveto (1) show

/sx 3 s0 mul 8 div def
0 1 8 {/i exch def
       x0r 150 sub y0r i sx mul add moveto 150 0 rlineto stroke
       x0r i sx mul add y0r moveto 0 -150 rlineto stroke
      } for 

tfw
x2r 400 add y3r 0180 sub moveto xwr 0 rlineto 0 ywr rlineto
                            xwr neg 0 rlineto closepath fill
tfn
x2r 500 add y3r 0130 sub moveto 
(go to next image ) showen (gehe zu neuem Bild ) showde
xchart 2 add cvishow
 } if %xchart<=2

xchart 0 eq {%xchart=0
tfw
x2r 500 add y3r 0130 sub 1000 sub moveto
(one experimental value: ) showen 
(Ein experimenteller Wert: ) showde
x2r 500 add y3r 0130 sub 1300 sub moveto
tfw
evpr 0 eq {TBM (e) show (08) inx TBM (=) show yv4d cvsshow2g}
          {TBM (p) show (08) inx TBM (=) show yv4h cvsshow2g} ifelse

tfw
x2r 500 add y3r 0130 sub 1600 sub moveto
(real gamma value: ) showen
(realer Gammawert: ) showde
tfw
x2r 500 add y3r 0130 sub 1900 sub moveto
SK (g) show 0 -50 rmoveto TBK (rel) show 0 50 rmoveto
TBM (= log [0,50] / log [e) show (08) inx (] =) show
evpr 0 eq {0.50 log yv4d log div cvsshow3g}
          {0.50 log yv4h log div cvsshow3g} ifelse

tfw
x2r 500 add y3r 0130 sub 2200 sub moveto
(inverse gamma value: ) showen
(inverse Gammawert: ) showde
tfw
x2r 500 add y3r 0130 sub 2500 sub moveto
SK (g) show 0 -50 rmoveto TBK (inv) show 0 50 rmoveto 
TBM (= log [e) show (08) inx
TBM (] / log [0,50] =) show
evpr 0 eq {yv4d}{yv4h} ifelse 
log 0.50 log div cvsshow3g

tfl
x2r 500 add y3r 0130 sub 2800 sub moveto
TBM (The software ) showen (Die Software ) showde
TBIM (GammaAdjuster ) show

x2r 500 add y3r 0130 sub 3100 sub moveto
TBM (reaches equal differences for ) showen 
    (erreicht gleiche Differenzen f\374r ) showde

x2r 500 add y3r 0130 sub 3400 sub moveto
SK (g) show 0 -50 rmoveto TBK (inv) show 0 50 rmoveto
TBM (=) show 
evpr 0 eq {yv4d}{yv4h} ifelse 
log 0.50 log div cvsshow3g


x2r 500 add y3r 0130 sub 1800 add moveto
TBM (The gamma value ) showen (Der Gammawert ) showde
SK (g) show 0 -50 rmoveto TBK (inv) show 0 50 rmoveto
TBM (=) show
evpr 0 eq {yv4d}{yv4h} ifelse
log 0.50 log div cvsshow3g

x2r 500 add y3r 0130 sub 1500 add moveto
TBM (of the software ) showen (der Software ) showde
TBIM (GammaAdjuster ) show

x2r 500 add y3r 0130 sub 1200 add moveto
TBM (reaches equal differences ) showen
    (erreicht gleiche Differenzen ) showde

x2r 500 add y3r 0130 sub 0900 add moveto
(and corresponds to ) showen
(und entspricht ) showde
evpr 0 eq {TBM (e) show (08) inx TBM (=) show yv4d cvsshow2g (.) show}
          {TBM (p) show (08) inx TBM (=) show yv4h cvsshow2g (.) show} ifelse

            } if %xchart=0

xchart 1 eq {%xchart=1
tfn
x2r 500 add y3r 0130 sub 1000 sub moveto
(two experimental values: ) showen
(Zwei experimentelle Werte: ) showde
x2r 500 add y3r 0130 sub 1300 sub moveto
tfw
evpr 0 eq {TBM (e) show (04) inx (, e) show (48) inx}
          {TBM (p) show (04) inx (, p) show (48) inx} ifelse
            } if %xchart=1

xchart 2 eq {%xchart=2
tfn
x2r 500 add y3r 0130 sub 1000 sub moveto
(four experimental values: ) showen
(Vier experimentelle Werte: ) showde
x2r 500 add y3r 0130 sub 1300 sub moveto
tfw
evpr 0 eq {TBM (e) show (02) inx
             (, e) show (24) inx
             (, e) show (46) inx
             (, e) show (68) inx}
          {TBM (p) show (02) inx
             (, p) show (24) inx
             (, p) show (46) inx
             (, p) show (68) inx} ifelse
tfw
x2r 400 add y3r 0180 sub 2000 sub moveto 
xwr 0 rlineto 0 ywr rlineto
xwr neg 0 rlineto closepath fill
tfn
x2r 500 add y3r 0130 sub 2000 sub moveto
(save 7 data above as text) showen
(speichere 7 obere Daten als Text) showde

            } if %xchart=2

%            } if %xchart<=2

%texts xchart=0 to 3

TBM
tfn

/ioutx 0 def
ioutx 1 eq {%ioutx=1
xchart 0 eq {%xchart=0

/xm1 xwidthm 1.4 s0 mul sub def
/xm0 2000 def
tfw
xm0 y3u 270 sub  moveto
(A choose of a value different "0.50" ) showen
(changes the grey sample and surround.) showen
(Eine Wertewahl verschieden von "0.50" ) showde
(\344ndert das graue Muster und Umfeld.) showde

xm0 y3u 270 sub 300 sub moveto 
(Beginners often have difficulties to choose ) showen
(on an appropriate value.) showen
(Beginner haben oft Schwierigkeiten ) showde
(mit einer geeigneten Wertewahl.) showde

xm0 y3u 270 sub 600 sub moveto
(Therefore it is recommended for beginners ) showen
(to proceed with image 2.) showen
(Es wird daher f\374r Beginner empfohlen ) showde
(mit Bild 2 fortzufahren.) showde

xm0 y3u 270 sub 900 sub moveto
(After a restart of the experiment, ) showen
(a value different "0.50" may be used.) showen
(Nach Neustart des Experiments, k\366nnte ) showde
(eine Wertewahl verschieden "0,50" erfolgen.) showde
} if %xchart=0
} if %ioutx=1

xchart 0 eq {%xchart=0
tfw
500 y3u 270 sub  moveto
(9 step series, sample and surround mean grey U40 is too dark, ) showen
evpr 0 eq {(evaluate scaling of U40 ) showen}
          {(adjust U40 to U41 with ) showen} ifelse
(9stufige Serie, Muster & Umfeld Mittelgrau U40 zu dunkel, ) showde
evpr 0 eq {(evaluiere Skalierung von U40 mit ) showde}
          {(justiere U40 nach U41 mit ) showde} ifelse
evpr 0 eq {TBM (e) show (08) inx TBM (<0,50.) show}
          {TBM (p) show (08) inx TBM (>0,50.) show} ifelse
             } if %xchart=0

xchart 1 eq
xchart 2 eq or
xchart 3 eq or {%xchart=1,2,3
tfw
500 y3u 270 sub  moveto
(9 step series, sample and surround mean Grey is U41, ) showen
(all samples are lighter based on ) showen
(9stufige Serie, Muster und Umfeld Mittelgrau ist U41, ) showde
(alle Muster sind heller mit ) showde
evpr 0 eq {TBM (e) show (08) inx TBM (=) show
           yv4d cvsshow2g (.) show}
          {TBM (p) show (08) inx TBM (=) show
           yv4h cvsshow2g (.) show} ifelse
               } if %xchart=1,2,3

%colour surround
xchart 0 eq {%xchart=0
             500 ypmj 1 get moveto
             (surround Grey: U40) showen
             (Umfeld Grau: U40) showde
            } if %xchart=0

xchart 1 eq
xchart 2 eq or {%xchart=1,2
                500 ypmj 1 get moveto
                (surround Grey: U41) showen
                (Umfeld Grau: U41) showde

                500 ypmj 1 get 300 sub moveto
                (based on the value ) showen
                (basierend auf Wert ) showde

                500 ypmj 1 get 600 sub moveto
                evpr 0 eq {TBM (e) show (08) inx TBM (=) show 
                           yv4d cvsshow2g (.) show}
                          {TBM (p) show (08) inx TBM (=) show 
                           yv4h cvsshow2g (.) show} ifelse
               } if %xchart=1,2

xchart 0 eq
xchart 1 eq or
xchart 2 eq or {%xchart=0,1,2
tfw
/xm2 xwidthm 1.8 s0 mul sub 200 sub def
xm2 0500 sub xchart 0 eq {2500 sub} if y3u 250 sub s0 sub s0d4 sub moveto
evpr 0 eq {(evaluate the scaling for ) showen
           (evaluiere die Skalierung f\374r ) showde}
          {(  adjust visual equal difference for ) showen
           (produziere visuell gleiche Differenz f\374r ) showde} ifelse

xchart 0 eq {evpr 0 eq {(the presented Grey U40 ) showen
                        (das vorhandene Grau U40 ) showde}
                       {(the intended Grey U41 ) showen
                        (angestrebtes Grau U41 ) showde} ifelse
             (between White W and Black N) showen
             (zwischen Wei\337 W und Schwarz N) showde 
            } if
xchart 1 eq {(zwei von 5 Stufen) showde (two of 5 steps) showen} if
xchart 2 eq {(vier von 9 Stufen) showde (four of 9 steps) showen} if

/ylk y3u 300 sub s0 2 mul sub s0d4 2 mul sub def
xchart 0 eq {/l0 3 def /l1 3 def} if
xchart 1 eq {/l0 2 def /l1 4 def} if
xchart 2 eq {/l0 0 def /l1 6 def} if

/epshow {evpr 0 eq {(e) show}{(p) show} ifelse} def 

l0 2 l1 {/l exch def %l=l1,l2
         tfn
         x3u l 0.5 add s0 mul add 400 add ylk moveto (0) show
         x3u l 1.5 add s0 mul add 350 sub ylk moveto
         tfw 
         xchart 0 eq {TBM epshow (08) inx TBM (=) show} if %xchart=0

         xchart 1 eq {%xchart=1
                      TBM epshow l 2 eq {(04)} if
                                 l 4 eq {(48)} if 
                                 inx TBM (=) show
                     } if %xchart=1
         xchart 2 eq {%xchart=2
                      TBM epshow l 0 eq {(02)} if
                                 l 2 eq {(24)} if
                                 l 4 eq {(46)} if
                                 l 6 eq {(68)} if
                                 inx TBM (=) show
                     } if %xchart=2
         tfw
         0 -50 rlineto 850 0 rlineto 0 300 rlineto
                 850 neg 0 rlineto closepath fill
         newpath
         x3u l 1.5 add s0 mul add 350 sub 600 add ylk moveto

         tfn %(0,50) show

         evpr 0 eq {%evpr=0,1
         xchart 0 eq {l 3 eq {lindad 4 get 0.005 add cvsshow2g} if %l=3->4
                     } if
         xchart 1 eq {l 2 eq {(0,50) show} if     %l=2,4->2,6
                      l 4 eq {(0,50) show} if         
                     } if
         xchart 2 eq {(0,50) show} if %l=0,2,4,6->1,3,5,7

         100 0 rmoveto (?) show
         %100 100 rmoveto SK (\331) show 0 -100 rmoveto
         %-150 -50 rmoveto SK (\332) show 0   50 rmoveto
                   }%evpr=0
                   {%evpr=1
         xchart 0 eq {l 3 eq {lindah 4 get 0.005 add cvsshow2g} if %l=3->4
                     } if
         xchart 1 eq {l 2 eq {(0,50) show} if     %l=2,4->
                      l 4 eq {(0,50) show} if
                     } if
         xchart 2 eq {(0,50) show} if %l=0,2,4,6->1,

         100 100 rmoveto SK (\331) show 0 -100 rmoveto
         -150 -50 rmoveto SK (\332) show 0   50 rmoveto
                   } ifelse %evpr=1

         tfn
         TBM
         x3u l 2.5 add s0 mul add 000 sub l l1 eq {100 add} if 
         ylk moveto (1) show
         l l1 ne {( /) show} if
        } for %l=l0,l1       

} if %xchart=0,1,2

%first time to use xchart=3
xchart 3 eq {%xchart=3

tfw
1000 y3u 250 sub s0 sub s0d4 sub moveto
(9 step series based on all visual adjustments used for ) showen
(output linearization) showen
(9stufige Serie basierend auf allen visuellen Einstellungen benutzt ) showde
(f\374r Ausgabelinearisierung) showde

TBM
tfw
/x1f x0u s0d4 add def
/y1f y3u 250 sub s0 2.25 mul sub def
0 1 8 {/i exch def %i=0,8
        tfw x1f i s0 mul add 350 add y1f 300 sub 050 sub moveto
        i 1 ge
        i 7 le and {-100 0 rmoveto TBM (c) show
                    TBK 0 -40 rmoveto i cvishow 0 40 rmoveto
                    TBM (=) show
                   } if
        lindat i get cvsshow2g
       } for %i=0,8

tfn
500 y3r 0080 sub moveto
(produced (p) visual experimental data adjusted above) showen
(produzierte (p) visuelle experimentelle Daten oben angen\344hert) showde


500 y3r 0380 sub moveto
%(a1=i08, b1=i04*a1, b3=i48(1-b2)+b2, c2=b1, c4=b2, c6=c3) show
TBM
(a) show (1) inx
(=i) show (08) inx
(, b) show (1) inx
(=i) show (04) inx
(*a) show (1) inx
(, b) show (3) inx
(=i) show (48) inx
(\0501-b) show (2) inx
(\051+b) show (2) inx
(, c) show (2) inx
(=b) show (1) inx
(, c) show (4) inx
(=b) show (2) inx
(, c) show (6) inx
(=b) show (3) inx

500 y3r 0680 sub moveto
%(c1=i02*b1, c3=i24(b2-b2)+b1, c5=i46(b3-b2)+b2, c7=i68(1-b3)+b3) show
TBM
(c) show (1) inx
(=i) show (02) inx
(*b) show (1) inx
(, c) show (3) inx
(=i) show (24) inx
(\050b) show (2) inx
(-b) show (2) inx
(\051+b) show (1) inx
(, c) show (5) inx
(=i) show (46) inx
(\050b) show (3) inx
(-b) show (2) inx
(\051+b) show (2) inx
(, c) show (7) inx
(=i) show (68) inx
(\0501-b) show (3) inx
(\051+b) show (3) inx

tfw
x2r 400 add y3r 0180 sub moveto xwr 0 rlineto 0 ywr rlineto
                                xwr neg 0 rlineto closepath fill
tfn
x2r 500 add y3r 0130 sub moveto (save 7 data above as text) showen
                                (speichere 7 obere Daten als Text) showde

%9 step series
tfw
x2r 400 add y3r 0680 sub moveto xwr 0 rlineto 0 ywr rlineto
                                xwr neg 0 rlineto closepath fill
tfn
x2r 500 add y3r 0630 sub moveto (save 9 data below as text) showen
                                (speichere 9 untere Daten als Text) showde

tfw
x2r 400 add y3r 3880 sub moveto xwr 0 rlineto 0 ywr 2 mul rlineto
                                xwr neg 0 rlineto closepath fill
tfn
x2r 500 add y3r 3530 sub moveto (adjust and proof threshold of) showen
                                (justiere und pr\374fe Schwellen) showde
x2r 500 add y3r 3830 sub moveto (the linearized output) showen
                                (der linearisierten Ausgabe) showde

tfw
x2r 400 add y3r 4380 sub moveto xwr 0 rlineto 0 ywr rlineto
                                xwr neg 0 rlineto closepath fill
tfn
x2r 500 add y3r 4330 sub moveto (restart with image 1) showen
                                (Neustart mit Bild 1) showde

%second line
/s s0 isize mul def
/iy0 ypmj 1 get s 0.5 mul sub 50 sub def
0 1 8 {/i exch def %i=0,jd,8
        /li0 0 def
        /li1 lindat i get def
        ifarb 0 eq {li1 li1 li1 setrgbcolor} if %N
        ifarb 1 eq {li1 0   0   setrgbcolor} if %R
        ifarb 2 eq {0   li1 0   setrgbcolor} if %G
        ifarb 3 eq {0   0   li1 setrgbcolor} if %B
        ifarb 4 eq {li1 li1 0   setrgbcolor} if %Y
        ifarb 5 eq {0   li1 li1 setrgbcolor} if %C
        ifarb 6 eq {li1 0   li1 setrgbcolor} if %M

        /ix0 xpmi i get s 0.5 mul sub def
        ix0 iy0 s s rec fill
        nrtxt 1 eq {%nrtxt=1
                    i 4 le {tfw}{tfn} ifelse
                    ix0 50 add
                    pchart 0 eq {iy0 s 0.5 mul add 250 sub moveto i cvishow}
                                {iy0               250 sub moveto i cvishow} ifelse
                    i 4 eq     {(1) show} if
                    i 1 ge
                    i 7 le and
                    i 4 ne and {(1) show} if
                   } if %nrtxt=1

        /li2 i 7 le {li1 0.04 add def}
                    {li1 0.04 sub def} ifelse
        ifarb 0 eq {li2 li2 li2 setrgbcolor} if %N
        ifarb 1 eq {li2 0   0   setrgbcolor} if %R
        ifarb 2 eq {0   li2 0   setrgbcolor} if %G
        ifarb 3 eq {0   0   li2 setrgbcolor} if %B
        ifarb 4 eq {li2 li2 0   setrgbcolor} if %Y
        ifarb 5 eq {0   li2 li2 setrgbcolor} if %C
        ifarb 6 eq {li2 0   li2 setrgbcolor} if %M

        /ix0 xpmi i get s 0.5 mul sub def
        /sh s 0.5 mul def
        ix0 iy0 sh add moveto s 0 rlineto 0 sh rlineto
                          s neg 0 rlineto closepath fill
       } for %i=0,jd,8
tfw
/ix0 xpmi 4 get s 0.5 mul sub def
ix0 iy0       moveto s 0 rlineto stroke
ix0 iy0 s add moveto s 0 rlineto stroke

%down sample grey
/s s0 isize mul def
/iy0 ypmj 0 get s 0.5 mul sub 200 sub def
0.25 dup dup setrgbcolor
/ix0 xpmi 2 get s 0.5 mul sub def
ix0 iy0 s s rec fill
nrtxt 1 eq {%nrtxt=1 %special number
            tfw
            xchart 1 le {ix0 50 add iy0 0450 add moveto (23) show}
                        {ix0 50 add iy0 0250 sub moveto (23) show} ifelse
           } if %nrtxt=1

%+0,06 used, not +0,04
0.25 0.06 add dup dup setrgbcolor
/sh s 0.5 mul def
ix0 iy0 sh add moveto s 0 rlineto 0 sh rlineto
                  s neg 0 rlineto closepath fill


20 setlinewidth
TBM
tfnw
/jd 1 def /ixk x02 def /jm 4 def %9 steps

%below (dec) and top linearized series
/x1f x0u s0d4 add def
/y1f y0u 2000 add def
%/y1f ypmj 0 get s 0.5 mul sub 200 sub def
/y2f y1f s0 add def
0 1 8 {/i exch def %i=0,8
        i 8 div dup dup setrgbcolor
        tfn x1f i s0 mul add 400 add y1f 300 sub 30 add moveto
%        lindat i get cvsshow2g
        tfw
        i 1 ge
        i 7 le and {-100 0 rmoveto TBM (c) show
                    TBK 0 -40 rmoveto i cvishow 0 40 rmoveto
                    TBM (=) show
                   } if
        lindat i get cvsshow2g

        tfw
        x1f i s0 mul add 200 add y1f 1500 add moveto
        0 -75 rlineto 1000 0 rlineto 0 300 rlineto
                  1000 neg 0 rlineto closepath fill
        newpath

        tfn
        x1f i s0 mul add 200 add y1f 1500 add moveto
           i 7 le {(+0,04) show}  {(-0,04) show}   ifelse

        evpr 0 eq {100   0 rmoveto (?) show}
                  {100 100 rmoveto SK (\331) show 0 -100 rmoveto
                   -150 -50 rmoveto SK (\332) show 0   50 rmoveto
                  } ifelse
        TBM
       } for %i=0,8

%decription of grey sample
/x3f x0u s0d4 add def
/y3f y0u 1700 add s0 sub 200 sub def
/i 2 def
        tfn 
        x3f i 1 add s0 mul add 80 add y3f 800 add moveto
        lindat 2 get cvsshow2g
        tfw
        x3f i 1 add s0 mul add 80 add 600 add y3f 800 add moveto
        0 -75 rlineto 1000 0 rlineto 0 300 rlineto
                  1000 neg 0 rlineto closepath fill
        newpath

        tfn
        x3f i 1 add s0 mul add 80 add 600 add y3f 800 add moveto
        (+0,06) show
        evpr 0 eq {100   0 rmoveto (?) show}
                  {100 100 rmoveto SK (\331) show 0 -100 rmoveto
                   -150 -50 rmoveto SK (\332) show 0   50 rmoveto
                  } ifelse
        TBM
        tfw (  adjust threshold) showen 
            (  justiere Schwelle) showde

        tfn x3f i 1 add s0 mul add 80 add y3f 500 add moveto
        lindat 2 get cvsshow2g
        ( +0,00) show
        evpr 0 eq {100   0 rmoveto (?) show}
                  {100 100 rmoveto SK (\331) show 0 -100 rmoveto
                   -150 -50 rmoveto SK (\332) show 0   50 rmoveto
                  } ifelse
        TBM

        tfn (  no change) showen (  unge\344ndert) showde

        tfn x3f i 2 sub s0 mul add 40 add y3f 900 add moveto
        (grey example) showen (Graubeispiel) showde

        tfw x3f i 2 sub s0 mul add 40 add y3f 600 add moveto
        (difference visible?) showen (Differenz sichtbar?) showde

} if %xchart=3

%  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