%!PS-Adobe-3.0 EPSF-3.0 http://farbe.li.tu-berlin.de/gey1/gey10-7n 20240901
%%BoundingBox: 70 88 422 334

%START PDFDE011.EPS
/pdfmark07 where {pop} {userdict /pdfmark07 /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/gey1/gey1.htm)
 /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1)
 /Subject (goto: http://color.li.tu-berlin.de or http://farbe.li.tu-berlin.de)
 /Keywords (image reproduction, colour devices)
 /Creator (klaus.richter@mac.com)
 /CreationDate (D:2024090112000)
 /ModDate (D:2024090112000)
/DOCINFO pdfmark07
[ /View [ /Fit ]
/DOCVIEW pdfmark07
%END  PDFDE011
 
%BEG gey1/OUTLIN1X_FLVLF07.PS 20240902
%**************************************************************
/indexLFi 16 def %default

%**********************************************************
/1MR-FLVLF {%BEG procedure 1MR-FLVLF 
%definitions of Fast Linear Visual Local File (FLVLF)

%BEG standard definitions of FF_LM_FLVLF                      
/FF_LM_setgrayFLVLF0 {setgray} bind def
/FF_LM_setrgbcolorFLVLF0 {setrgbcolor} bind def
/FF_LM_setcmykcolorFLVLF0 {setcmykcolor} bind def
/FF_LM_transferFLVLF0 {settransfer} bind def
/FF_LM_colortransferFLVLF0 {setcolortransfer} bind def

/setgray {%BEG procedure setgrayFLVLF
          dup dup FF_LM_setrgbcolorFLVLF
         } def %END procedure setgrayFLVLF

/setcmykcolor {%BEG procedure setcmykcolorFLVLF
 /FF_LM_kFLVLF exch def /FF_LM_yFLVLF exch def
 /FF_LM_mFLVLF exch def /FF_LM_cFLVLF exch def
 FF_LM_kFLVLF 0 eq {1 FF_LM_cFLVLF sub 1 FF_LM_mFLVLF sub
                1 FF_LM_yFLVLF sub FF_LM_setrgbcolorFLVLF}
               {1 FF_LM_kFLVLF sub dup dup
                FF_LM_setrgbcolorFLVLF} ifelse
 } def %END procedure setcmykcolorFLVLF

/setrgbcolor {%BEG procedure setrgbcolorFLVLF
 /FF_LM_bFLVLF exch def /FF_LM_gFLVLF exch def
 /FF_LM_rFLVLF exch def
 FF_LM_rFLVLF FF_LM_gFLVLF FF_LM_bFLVLF
 FF_LM_setrgbcolorFLVLF
 } def %BEG procedure setrgbcolorFLVLF

/FF_LM_setrgbcolorFLVLF {%BEG FF_LM_setrgbcolorFLVLF
 /FF_LM_b0FLVLF exch def /FF_LM_g0FLVLF exch def
 /FF_LM_r0FLVLF exch def
 FF_LM_r0FLVLF 0 le {/FF_LM_r0FLVLF 0.0001 def} if
 FF_LM_g0FLVLF 0 le {/FF_LM_g0FLVLF 0.0001 def} if
 FF_LM_b0FLVLF 0 le {/FF_LM_b0FLVLF 0.0001 def} if
 /FF_LM_r1FLVLF FF_LM_r0FLVLF FF_LM_xchartg_gammaFLVLF def
 /FF_LM_g1FLVLF FF_LM_g0FLVLF FF_LM_xchartg_gammaFLVLF def
 /FF_LM_b1FLVLF FF_LM_b0FLVLF FF_LM_xchartg_gammaFLVLF def
 FF_LM_r1FLVLF FF_LM_g1FLVLF FF_LM_b1FLVLF
 FF_LM_setrgbcolorFLVLF0} def %END FF_LM_setrgbcolorFLVLF

/FF_LM_transferFLVLF {%BEG FF_LM_transferFLVLF
 {FF_LM_xchartg_gammaFLVLF}
 FF_LM_transferFLVLF0} def %END FF_LM_transferFLVLF
/settransfer {FF_LM_transferFLVLF} def

/FF_LM_colortransferFLVLF {%BEG FF_LM_colortransferFLVLF
 {FF_LM_xchartg_gammaFLVLF} {FF_LM_xchartg_gammaFLVLF}
 {FF_LM_xchartg_gammaFLVLF}
 FF_LM_colortransferFLVLF0} def
 %END FF_LM_colortransferFLVLF
/setcolortransfer {FF_LM_colortransferFLVLF} def
%END standard definitions of FF_LM_FLVLF
} def %END procedure 1MR-FLVLF 
%definitions of Fast Linear Visual Local File (FLVLF)

%****************************************************************************
/Visev_FLVLF {%BEG procedure Visev_FLVLF
%for visual data with Fast Linear Visual Local File (FLVLF)

/VisevFi 09 array def %for the one real data of visual evaluation
/VisevFx 54 array def %for 6 different example data of visual evaluation
          %0    %1    %2    %3    %4    %5    %6    %7    %8    %Fi j
/VisevFx [0.000 0.015 0.062 0.140 0.250 0.390 0.562 0.765 1.000 %16 08 gamma=2,0
          0.000 0.353 0.500 0.612 0.707 0.790 0.866 0.935 1.000 %17 17 gamma=0,5
          0.000 0.044 0.125 0.229 0.353 0.494 0.649 0.818 1.000 %18 26 gamma=1,5
          0.000 0.250 0.397 0.520 0.630 0.731 0.825 0.915 1.000 %19 35 gamma=0,6667
          0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000 %20 44 gamma=1,0
          0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000 %21 53 experimental
         ] def %5 53
         % the last line shall be replaced by the experimetal data, if available

0 1 8 {/j exch def %j=0,8
       VisevFi j VisevFx indexLFi 16 sub 9 mul j add get put
       } for %j=0,8

/xreh8 10 array def /yreh8 10 array def %re=real,   j=0,8
/xinh8 10 array def /yinh8 10 array def %in=invers, j=0,8
/xrehj 1025 array def /yrehj 1025 array def
/xinhj 1025 array def /yinhj 1025 array def

/xred8 10 array def /yred8 10 array def %re=real,   j=0,8
/xind8 10 array def /yind8 10 array def %in=invers, j=0,8
/xredj 1025 array def /yredj 1025 array def
/xindj 1025 array def /yindj 1025 array def

0 1 8 {/j exch def %j=0,8
       xred8 j j 0.125 mul   put
       yred8 j VisevFi j get put
       xind8 j yred8 j get   put
       yind8 j xred8 j get   put
       
       xreh8 j xred8 j get 255 mul put
       yreh8 j yred8 j get 255 mul put
       xinh8 j yreh8 j get put
       yinh8 j xreh8 j get put
      } for %j=0,8

xred8 9   1 put yred8 9   1 put
xind8 9   1 put yind8 9   1 put
xreh8 9 255 put yreh8 9 255 put
xind8 9 255 put yind8 9 255 put

%j=0,1023
0 1 7   {/k exch def %k=0,8
0 1 127 {/n exch def %n=0,127
         /j k 128 mul n add def
          xredj j j 1023 div put
          yredj j yred8 k 1 add get yred8 k get sub
                  n 128 div mul     yred8 k get add put
          xindj j yredj j get put
          yindj j xredj j get put
         } for %n=0,127
         } for %k=1,8
         
0 1 1023 {/j exch def %j=0,1023
          xrehj j xredj j get 1023 mul put
          yrehj j yredj j get 1023 mul put
          xinhj j yredj j get put
          yinhj j xredj j get put
         } for %j=0,1023

xredj 1024    1 put yredj 1024    1 put
xindj 1024    1 put yindj 1024    1 put
xrehj 1024 1023 put yrehj 1024 1023 put
xinhj 1024 1023 put yinhj 1024 1023 put

} def %END procedure Visev_FLVLF
%for visual data with Fast Linear Visual Local File (FLVLF)

%BEG special definitions of FF_LM_FLVLF
/FF_LM_xchartg_gammaFLVLF {/yed exch def
                           /yeh yed 1023 mul cvi def
                           /xinh yrehj yeh get def
                           xinh 1023 div
                          } def
%END special definitions of FF_LM_FLVLF

%The procedures 1MR-FLVLF, Visev_FLVLF are used only once in the Local File
%The procedure  FF_LM_xchartg_gammaFLVFL is used for any rgb data

/iproc1MR 1 def
%Test if 1MR-FLVLF is available, then use this procedure
%/1MR-FLVGF where {pop 1MR-FLVGF Visev_FLVGF}{1MR-FLVLF Visev_FLVLF} ifelse
iproc1MR 1 eq {1MR-FLVLF Visev_FLVLF} if

%****************************************************************************)
%END gey1/OUTLIN1X_FLVLF07.PS 20240902
                                                                         
/FS {findfont exch scalefont setfont} bind def
/MM {72 25.4 div mul} def /str {8 string } bind def
/A4querL {598 0 translate 90 rotate} 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-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


/tgv {0 0 1 setrgbcolor} 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

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

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

/cviht {dup 0 ge {0.49 add}{0.49 sub} ifelse cvi} def
/cvishow {dup 0 ge {0.5 add} {0.5 sub} ifelse
          cvi 6 string cvs show} def
/cvsshow1 {dup 0 ge {0.05 add} {0.05 sub} ifelse
           10 mul cvi 0.1 mul 7 string cvs show} def
/cvsshow2 {dup 0 ge {0.005 add} {0.005 sub} ifelse
           100 mul cvi 0.01 mul 7 string cvs show} def
/cvsshow3 {dup 0 ge {0.0005 add} {0.0005 sub} ifelse
           1000 mul cvi 0.001 mul 7 string cvs show} def
    
%/cvishow {cvi 6 string cvs show} def
%/cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def
%/cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def
%/cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def

/cvsshow1g {/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 cvishow (,) show                      %nxa=99
             nxb cvishow                               %nxb=1/0
           } def
/cvsshow2g {/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 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 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

%*******************************************************************
%%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
/showfr {2 lanind eq {show} {pop} ifelse} bind def
/showes {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
/showm  {6 lanind eq {show} {pop} ifelse} bind def
 
/nr1 27 array def
/tx1 52 array def

/nr1 [(01) (02) (03) (04) (05) (06) (07) (08) (09) (10)
      (11) (12) (13) (14) (15) (16) (17) (18) (19) (20)
      (21) (22) (23) (24) (25) (26) (27)] def
/tx1 [(A) (B) (C) (D) (E) (F) (G) (H) (I) (J)
      (K) (L) (M) (N) (O) (P) (Q) (R) (S) (T)
      (U) (V) (W) (X) (Y) (Z) (a) (b) (c) (d)
      (e) (f) (g) (h) (i) (j) (k) (l) (m) (n)
      (o) (p) (q) (r) (s) (t) (u) (v) (w) (x)
      (y) (z)] def

/lanind1 1 def /lanind2 1 def /lanindd 01 def /lanindm 01 def
/colorm1 00 def /colorm2 00 def /colormd 01 def /colormm 01 def
/deintp1 00 def /deintp2 00 def /deintpd 01 def /deintpm 01 def
/xcolor1 00 def /xcolor2 00 def /xcolord 01 def /xcolorm 01 def
/xchart1 07 def /xchart2 07 def /xchartd 01 def /xchartm 01 def
/pchart1 00 def /pchart2 00 def /pchartd 01 def /pchartm 03 def
/colsep1 00 def /colsep2 00 def /colsepd 01 def /colsepm 01 def
/pmetam1 00 def /pmetam2 00 def /pmetamd 01 def /pmetamm 01 def
/xchart3 00 def %free
/xchart4 00 def %test charts ISO/IEC 3, 2, 4; CIE R8-09 G, O, H
/xchart5 00 def %free

/lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def
                    /lanindd laninddf def /lanindm lanindmf def} if
/colormf where {pop /colorm1 colormf def /colorm2 colormf def
                    /colormd colormdf def /colormm colormmf def} if
/deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def
                    /deintpd deintpdf def /deintpm deintpmf def} if
/xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def
                    /xcolord xcolordf def /xcolorm xcolormf def} if
/xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def
                    /xchartd xchartdf def /xchartm xchartmf def} if
/xchart3f where {pop /xchart3 xchart3f def} if
/xchart4f where {pop /xchart4 xchart4f def} if
/xchart5f where {pop /xchart5 xchart5f def} if
/pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def
                    /pchartd pchartdf def /pchartm pchartmf def} if
/colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def
                    /colsepd colsepdf def /colsepm colsepmf def} if
/pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def
                    /pmetamd pmetamdf def /pmetamm pmetamf def} if

/lanind lanind1 def %
/colorm colorm1 def %
/deintp deintp1 def %
/xcolor xcolor1 def %
/xchart xchart1 def %
/pchart pchart1 def %
/colsep colsep1 def %
/pmetam pmetam1 def %

/GSS$ where {pop /LSS$ GSS$ def}
            {/LSS$ (1) def} ifelse
/GSC$ where {pop /LSC$ GSC$ def}
            {/LSC$ (N) def} ifelse
/GSX$ where {pop /LSX$ GSX$ def}
            {/LSX$ (0) def} ifelse
/GSY$ where {pop /LSY$ GSY$ def}
            {/LSY$ (0) def} ifelse
/GEX$ where {pop /LEX$ GEX$ def}
            {/LEX$ (P.PS./PDF) def} ifelse
/GEY$ where {pop /LEY$ GEY$ def}
            {/LEY$ (P.DAT) def} ifelse
/IMES where {pop %/IMES IMES def
            }
            {/IMES 0 def} ifelse
%A4querL

/xcharx 1 def %0:cmyn, rgb, k, and w values, 1: rgb and w values
      
/colorml colorm def
%0 1 1 {/colorml exch def %colorml=0,1

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

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

/pchartl pchart def
%0 1 2 {/pchartl exch def %pchartl=0,2

colorml 0 eq deintp 0 eq and {/TxS () def /Txx (dd) def /Fxx (d) def} if
colorml 0 eq deintp 1 eq and {/TxS () def /Txx (de) def /Fxx (e) def} if
colorml 1 eq deintp 0 eq and {/TxS () def /Txx (dd) def /Fxx (d) def} if
colorml 1 eq deintp 1 eq and {/TxS () def /Txx (de) def /Fxx (e) def} if
%xchart 0 eq {/Txx (-) def /Fxx (-) def} if

%pchartl 0 eq {%pchartl=0 Y10-7n_AL49_JSO_1P1S.EPS

/TK {200 /Times-ISOL1 FS} bind def
/TS {200 /Times-ISOL1 FS} bind def

%***********************************************************************************
72 90 translate

%gsave

0.005 MM dup scale

20 setlinewidth
%0 0 24600 17100 0.0 0.0 0.0 0.0 colrecfi %area white grey
%0 0 24600 17100 0.0 0.0 0.0 1.0 colrecst %Rahmen Schwarz
1 setgray
0 0 moveto 24600 0 rlineto 0 17100 rlineto
       24600 neg 0 rlineto closepath fill

TK
0 setgray
/xbtex0 0 def
xbtex0 1 eq {%xbtex0=1
400 /Times-ISOL1 FS
600 -400 moveto
(gey10-7n) show %(n) show %n
%xchart 1 add cvishow
} if %xbtex0=1

/indexSi 17 def %default S=start

%BEG special definitions of Global File (GF) gamma & xyreh_1024
/GammaSi 21 array def
/GammaSi %rel. gamma according to ISO 9241-306:2018
%0     1     2     3     4     5     6     7
[0.475 0.550 0.625 0.700 0.775 0.849 0.924 1.000
%8     9     10    11    12    13    14    15
 1.000 1.081 1.176 1.290 1.428 1.600 1.818 2.105
%16    17    18    19    20
 2.000 0.500 1.500 0.666 1.000] def

/GammaS GammaSi indexSi get def

/kchartl 0 def
/xchartl xchart def
0 1 00 {/kchartl exch def %kchartl=0,01
/ktrans 12480 kchartl mul def
7 1 07 {/xchartl exch def %xchartl=0,07
/xchart 7 def %for GammaS change

20 setlinewidth

  xchartl   0 eq {  100 ktrans add 13000 translate} if
  xchartl   1 eq { 6150 ktrans add 13000 translate} if
  xchartl   2 eq {  100 ktrans add 08740 translate} if
  xchartl   3 eq { 6150 ktrans add 08740 translate} if

  xchartl   4 eq {  100 ktrans add 04480 translate} if
  xchartl   5 eq { 6150 ktrans add 04480 translate} if
  xchartl   6 eq {  600 ktrans add 00770 translate} if
  xchartl   7 eq {  600 ktrans add 00770 translate} if

4.0 dup scale

0 setgray
120 /Times-ISOL1 FS
050 -120 moveto
(gey10-7n) show 
%kchartl 0 eq {(gey10-) show}{(gey11-) show} ifelse 
%xchartl 1 add cvishow
%(A) show %A

/ioutg 1 def
ioutg 1 eq {%ioutg=1
/kheigh 120 def
/kheigk 100 def
/TIKN {kheigh /Times-ISOL1 FS} bind def
/TIKI {kheigh /TimesI-ISOL1 FS} bind def
/RIKN {kheigh /Times-Roman FS} bind def
/TIKK {kheigk /Times-ISOL1 FS} bind def

TIKN
(, Gammawerte: ) showde
(, Gamma values: ) showen
TIKI
(g) show
TIKK 0 -25 rmoveto (rel) show 0 25 rmoveto
TIKN
(=) show GammaS cvsshow3g (, ) show

TIKI
(g) show
TIKK 0 -25 rmoveto (IEC-sRGB) show 0 25 rmoveto
TIKN
(=2,4) show (, ) show

TIKI
(g) show
TIKK 0 -25 rmoveto (a) show 0 25 rmoveto
TIKN
(=) show
2.4 GammaS mul cvsshow3g (, ) show

%TIKI
%(g) show
%0 -25 rmoveto TIKK (P) show 0 25 rmoveto
%TIKN
%(=) show
%GammaS cvsshow3g (, ) show
%TIKI
%(C) show
%/xchartP xchart 1 add def
%TIKK 0 -25 rmoveto (YP) show xchartP cvishow 0 25 rmoveto
%xchartP 8 ge {%xchartP>=8
%              TIKN (=) show
%              TIKI (C) show
%              TIKK 0 -25 rmoveto (YN) show 8 xchartP 8 sub sub
%              cvishow 0 25 rmoveto
%             } if %xchartP>=8
TIKN (nur ) showde (only ) showen
TIKI (rgb* & w*) show
TIKN
(\255Daten, 1080 Farben) showde
( data, 1080 colours) showen
} if %ioutg=1

30 setlinewidth
[ ] 0 setdash

%0.0 0.0 0.0 0.5 setcmykcolor
1 1 0 setrgbcolor
0 0  moveto 5400 0 rlineto 0 4000 rlineto -5400 0 rlineto
closepath fill
0 setgray 
150  /Times-ISOL1 FS

gsave %start because of clip

0.084 MM dup scale

40 setlinewidth
/ymax1 16900 def
/xmax1 24600 def
0.5 GammaS exp setgray
0 0  moveto xmax1 0 rlineto 0 ymax1 rlineto xmax1 neg 0 rlineto
closepath fill
0 GammaS exp setgray
0 0  moveto xmax1 0 rlineto 0 ymax1 rlineto xmax1 neg 0 rlineto
closepath stroke

/fakt 1 def
/iyt 32 fakt mul def %text size
/iyd 35 fakt mul def %line difference

xcharx 1 le {%xcharx<=1


} if %xcharx<=1

/xs 900 3 div 2 mul def /ys xs def /d2 xs 2 div def /d8 xs 8 div def

/xmin 650 3 div 2.2 mul def
/ymax 15800 def
%xcharx 0 eq {/xd 800 3 div 2 mul def /yd 800 3 div 2 mul def}
%            {/xd 900 3 div 2 mul def /yd 900 3 div 2 mul def} ifelse
/xd 900 3 div 2 mul def /yd 900 3 div 2 mul def
/xsd xs xd sub 0.5 mul def
/ysd xs xd sub 0.5 mul def
/xd2 xd 0.50 mul def
/xd4 xd 0.25 mul def

20 setlinewidth

500 3 div 2 mul /Times-ISOL1 FS
1 setgray
1 1 27 {/i exch def %i=1,27
  /x xs 0.15 mul def
  /y 27.6 ys mul ys i mul sub def
  x y moveto nr1 i 1 sub get show
} for %i=1,27

1 1 40 {/i exch def %i=1,36
  /x xs i mul 000 add def
  /y 27.5 ys mul def
  x y moveto tx1 i 1 sub get show
} for %i=1,36
%(   # ) show

0 setgray

/RGB*R0 1080 array def
/RGB*G0 1080 array def
/RGB*B0 1080 array def

/rgbcmyk 10000 array def %8640=8*1080: n rgb, cmyk
/n00 -1 def
TS

/IMODE 0 def %input rgb for output LAB*
%row no.1 and 2: 9xrgb
/imax 08 def
/jmax 08 def
/kmax 08 def
/TKK2 {200 3 div 2 mul /Times-ISOL1 FS} bind def
TKK2
0 1 kmax {/k exch def %beg k=0,08
          /k0 k 3 idiv def
          /k1 k k0 3 mul sub def
          /xadd k1 xs 9 mul mul def
          /yadd k0 xs 9 mul mul def
0 1 jmax {/j exch def %beg j=0,jmax
0 1 imax {/i exch def %beg i=0,imax
          /n1079 i j 9 mul add k 81 mul add def
          /xa xmin j xs mul add xadd add xsd add def
          /ya ymax i ys mul sub yadd sub ysd add def
          /r k kmax div def /g j jmax div def /b i imax div def
          RGB*R0 n1079 r put
          RGB*G0 n1079 g put
          RGB*B0 n1079 b put

xcharx 0 eq {%xcharx=0
             r GammaS exp g GammaS exp b GammaS exp setrgbcolor
             xa ya xd dup rec fill
             1 r GammaS exp sub 
             1 g GammaS exp sub
             1 b GammaS exp sub 0 setcmykcolor
             xa xd4 add ya xd4 add xd2 dup rec fill
            } if %xcharx=0

xcharx 1 eq {%xcharx=1
             r GammaS exp g GammaS exp b GammaS exp setrgbcolor
             xa ya xd dup rec fill
            } if %xcharx=1
            
         } for %end i=0,jmax
         } for %end j=0,jmax
         } for %end k=0,kmax

%3x rgbcmy
/id 1 8 div def
/rijn 81 array def %for intermediate storage
/gijn 81 array def /bijn 81 array def
/lmax 2 def
/n1079 728 def
0 1 lmax {/l exch def %beg k=0,kmax
          /xadd 3 xs 9 mul mul def
          /yadd l ys 9 mul mul def

%for intermediate storage of l=0,lmax
0 1 01 {/jchart exch def %jchart=0,1
        /xcharxj l jchart 3 mul add def
0 1 08 {/j exch def %j=0,7
        /im 8 j sub def
jchart 1 im {/i exch def %i=0,8
        /ia 1 id j mul sub def
        /argb ia def /brgb ia i id mul sub def
        xcharxj 0 eq {/r argb def /g brgb def /b brgb def} if
        xcharxj 1 eq {/r argb def /g argb def /b brgb def} if
        xcharxj 2 eq {/r brgb def /g argb def /b brgb def} if
        xcharxj 3 eq {/r brgb def /g argb def /b argb def} if
        xcharxj 4 eq {/r brgb def /g brgb def /b argb def} if
        xcharxj 5 eq {/r argb def /g brgb def /b argb def} if
        jchart 0 eq {/in i j add def /jn j def}
                    {/in j def /jn i j add def} ifelse
                     rijn in 9 mul jn add r put
                     gijn in 9 mul jn add g put
                     bijn in 9 mul jn add b put
        } for %i=0,7
        } for %j=0,8
        } for %jchart=0,1
        
%for output of l=0,lmax
0 1 08   {/j exch def %j=0,8
0 1 08   {/i exch def %i=0,8
          /n1079 n1079 1 add def
          /r rijn i j 9 mul add get def
          /g gijn i j 9 mul add get def
          /b bijn i j 9 mul add get def
          /xa xmin xs j mul add xadd add xsd add def
          /ya ymax xs i mul sub yadd sub ysd add def

xcharx 0 eq {%xcharx=0
             r GammaS exp g GammaS exp b GammaS exp setrgbcolor
             xa ya xd dup rec fill
             1 r GammaS exp sub
             1 g GammaS exp sub
             1 b GammaS exp sub 0 setcmykcolor
             xa xd4 add ya xd4 add xd2 dup rec fill
            } if %xcharx=0

xcharx 1 eq {%xcharx=1
             r GammaS exp g GammaS exp b GammaS exp setrgbcolor
             xa ya xd dup rec fill
            } if %xcharx=1

          } for %i=0,7
          } for %j=0,8
          } for %end l=0,lmax
        
%6wrgbcmy
/n1079 971 def
/lmax 03 def %4 rows with geys
/kmax 1 def %9 or 16 steps
0 1 kmax {/k exch def %
          k 0 eq {/jmax 08 def} {/jmax 15 def} ifelse
0 1 lmax {/l exch def %beg l=0,lmax
          /xadd 36 l add xs mul def
          /yadd k 9 xs mul mul def
          /j1 l 36 add def
          /j1$ tx1 j1 get def
0 1 jmax {/j exch def %j=0,08
          /n1079 n1079 1 add def
          /i1 j k 9 mul add 1 add def %9 steps, 16 steps
          /argb j jmax div def
          /xa xmin xadd add xsd add def
          /ya ymax xs j mul sub yadd sub ysd add def
          /r argb def /g argb def /b argb def

xcharx 0 eq {%xcharx=0
             l 0 eq {0 0 0 1 r GammaS exp sub setcmykcolor} if
             l 1 eq {r GammaS exp setgray} if
             l 2 eq {1 r GammaS exp sub 
                     1 g GammaS exp sub
                     1 b GammaS exp sub 0 setcmykcolor} if
             l 3 eq {r GammaS exp g GammaS exp b GammaS exp setrgbcolor} if
             xa ya xd dup rec fill
             1 r GammaS exp sub
             1 g GammaS exp sub
             1 b GammaS exp sub 0 setcmykcolor
             xa xd4 add ya xd4 add xd2 dup rec fill
            } if %xcharx=0

xcharx 1 eq {%xcharx=1
             r GammaS exp g GammaS exp b GammaS exp setrgbcolor
             xa ya xd dup rec fill
            } if %xcharx=1

         } for %j=0,jmax
         } for %l=0,lmax
         } for %k=0,kmax
       
%basic colours 1072 - 1080
/basrgb 24 array def
/basrgb
[0 0 0 1 1 1
 1 0 0 0 1 1
 1 1 0 0 0 1
 0 1 0 1 0 1
] def
/n1079 1071 def
0 1 07   {/i exch def %i=0,7
          /n1079 n1079 1 add def
          /i3 i 3 mul def
          /xadd 36 xs mul def
          /yadd 25 xs mul def
          i 0 eq {/l 0 def /j 0 def /j1$ (k) def /i1 26 def} if
          i 1 eq {/l 0 def /j 1 def /j1$ (k) def /i1 27 def} if
          i 2 eq {/l 1 def /j 0 def /j1$ (l) def /i1 26 def} if
          i 3 eq {/l 1 def /j 1 def /j1$ (l) def /i1 27 def} if
          i 4 eq {/l 2 def /j 0 def /j1$ (m) def /i1 26 def} if
          i 5 eq {/l 2 def /j 1 def /j1$ (m) def /i1 27 def} if
          i 6 eq {/l 3 def /j 0 def /j1$ (n) def /i1 26 def} if
          i 7 eq {/l 3 def /j 1 def /j1$ (n) def /i1 27 def} if
          /xa xmin xs l mul add xadd add xsd add def
          /ya ymax xs j mul sub yadd sub ysd add def
          /r basrgb i3       get def
          /g basrgb i3 1 add get def
          /b basrgb i3 2 add get def

xcharx 0 eq {%xcharx=0
             r GammaS exp g GammaS exp b GammaS exp setrgbcolor
             xa ya xd dup rec fill
             1 r GammaS exp sub
             1 g GammaS exp sub
             1 b GammaS exp sub 0 setcmykcolor
             xa xd4 add ya xd4 add xd2 dup rec fill
            } if %xcharx=0

xcharx 1 eq {%xcharx=1
             r GammaS exp g GammaS exp b GammaS exp setrgbcolor
             xa ya xd dup rec fill
            } if %xcharx=1

      } for %i=0,7

xchart 4 eq
xchart 7 eq or {%xchart=4 or 7
150 setlinewidth
1 GammaS exp 0 0 setrgbcolor
/xtransr 0100 def
/ytransr 0650 def
/xwdtr 24600 xtransr 2 mul add def
/ywdtr ymax1 ytransr add xtransr add def
xchart 4 eq {[400] 400 setdash} if
%xtransr neg ytransr neg moveto xwdtr 0 rlineto 0 ywdtr rlineto xwdtr neg 0 rlineto
%closepath stroke
xchart 4 eq {[ ] 0 setdash} if
} if %xchart=4 or 7

grestore %end because of clip

  xchartl    0 eq {  100 ktrans add neg 13000 neg translate} if
  xchartl    1 eq { 6150 ktrans add neg 13000 neg translate} if
  xchartl    2 eq {  100 ktrans add neg 08740 neg translate} if
  xchartl    3 eq { 6150 ktrans add neg 08740 neg translate} if

  xchartl    4 eq {  100 ktrans add neg 04480 neg translate} if
  xchartl    5 eq { 6150 ktrans add neg 04480 neg translate} if
  xchartl    6 eq {  600 ktrans add neg 00620 neg translate} if
  xchartl    7 eq {  600 ktrans add neg 00620 neg translate} if

} for %xchartl=0,07

} for %kchartl=0,01

showpage
grestore

%} for %output with langind end
%%Trailer