%!PS-Adobe-3.0 EPSF-3.0 http://farbe.li.tu-berlin.de/hgu2/hgu21-7a
%%BoundingBox: 70 85 245 206

%START PDFDE011.EPS
/pdfmark17 where {pop} {userdict /pdfmark17 /cleartomark load put} ifelse
/languagelevel where {pop languagelevel} {1} ifelse
2 lt { userdict (<<) cvn ([) cvn load put
       userdict (>>) cvn (]) cvn load put} if
[/Title (PostScript pictures: http://farbe.li.tu-berlin.de/hgu2/hgu2.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:20241201112000)
/DOCINFO pdfmark17
[ /View [ /FitB ]
/DOCVIEW pdfmark17
%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

/20rm {20 0 rmoveto} 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 0 def /lanind2 0 def} ifelse
/colormf where {pop /colorm1 colormf def /colorm2 colormf def
                    /colormd colormdf def}
               {/colorm1 0 def} ifelse
/deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def
                    /deintpd deintpdf def}
               {/deintp1 0 def} ifelse
/xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def
                    /xcolord xcolordf def}
               {/xcolor1 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
/idepi 1 def %derivation posotive 0:no 1:yes
/ideni 1 def %derivation negative 0:no 1:yes
/iampi 0 def %amplitude positive 0:no, 1:yes
/iamni 0 def %amplitude negative 0:no, 1:yes
/iaspi 0 def %amplitude shift positive 0:n0, 1:yes
/iasni 0 def %amplitude shift negative 0:n0, 1:yes
/expnr 1 def %exponent 1 of a
/iant1 1 def
/iant2 1 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
%75 85 moveto
%lanind cvishow (-) show
%colorm cvishow
%deintp cvishow
%xcolor cvishow
%xchart cvishow
%pchart cvishow
%colsep cvishow (-L) show pmetam cvishow

gsave
%XCHA01.PS END

4 /Times-ISOL1 FS
%74 86 moveto (hgu21-7r) show
%xchart 0 eq {(R) show}
%            {deintp colorm 2 mul add cvishow} ifelse

72 90 translate
0.01 MM dup scale

20 setlinewidth
%0 0 12250 17100 1.0 1.0 1.0 colrecfi %area white grey
%0 0 12250 17100 0.0 0.0 0.0 colrecst %Rahmen Schwarz

%/ifunc 0 def
%ifunc 0 eq {Yi_L*i_dYi_L_0} if
%ifunc 1 eq {Yi_L*i_dYi_C_0} if

%Yi_Yxyi

 /xchartl 6 def
%0 1 07 {/xchartl   exch def %xchartl=0,07

%xchartl 3 le {/idepi 1 def /ideni 1 def}
%             {/idepi 1 def /ideni 1 def} ifelse

gsave
%from BEA80-7N.PS
%  xchartl   0 eq {  100 13000 translate} if
%  xchartl   1 eq { 6150 13000 translate} if
%  xchartl   2 eq {  100 08740 translate} if
%  xchartl   3 eq { 6150 08740 translate} if

%  xchartl   4 eq {  100 04480 translate} if
%  xchartl   5 eq { 6150 04480 translate} if
%  xchartl   6 eq {  100 00220 translate} if
%  xchartl   7 eq { 6150 00220 translate} if

130 /Times-ISOL1 FS
0 setgray
50 -130 moveto (hgu21-) show
xchartl 1 add cvishow
(a) show %a
%(_) show xchart 1 add cvishow

/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

tfn %tfw
/xtr0 380 def
/ytr0 350 def

xtr0 ytr0 translate

%*********************************************************************
tfw
30 setlinewidth
 0 0 moveto  5500 0 rlineto  stroke
 0 0 moveto  0 3250 rlineto  stroke
  5500 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
%ioute 1 eq     %only expnr=1
%expnr 7 ge and {%xchartl>=7
%                /xz (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
             
%!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

/iaxisr 1 def
iaxisr 1 eq 
idepi  1 eq and {%iaxisr=1 & idepi=1
tfg
/ixr 10.25 500 mul def
/iyr 0 def
ixr         iyr  moveto 0 2500 rlineto stroke
ixr 080 sub 1000 moveto 160 0  rlineto stroke
ixr 100 add 1000 50 sub moveto (-0,5) show
ixr 080 sub 1500 moveto 160 0 rlineto stroke
ixr 100 add 1500 50 sub moveto (  0,0) show
ixr 080 sub 2000 moveto 180 0 rlineto stroke
ixr 100 add 2000 50 sub moveto (  0,5) show
ixr 040 sub 2400 moveto 040 100 rlineto 040 -100 rlineto stroke
ixr 350 sub 2500 150 add moveto 
TBIL
(F') show
-50 -80 rmoveto TBS (ab) show 0 80 rmoveto
TBL (\050) show LSxrx TBL (\051) show
tfw
} if %iaxisr=1 % idepi=1

%!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 -60 rmoveto (u) show 50 60 rmoveto

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

4600 080 moveto TBIL (L) show

1670 -240 moveto (x) TBIL tfw show
TBS -20 -60 rmoveto (u) show -20 60 rmoveto TBL (=) show

tfl
40 setlinewidth
1600 0 moveto 800 0 rlineto stroke

2200 240 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

/ianta 0 def
xchartl 07 le {%xchartl=00
               tfw
               TBIK
               (F) show
               -50 -80 rmoveto TBL (ab) show 0 80 rmoveto
               TBK (\050) show
               KLxr
               TBK (\051) show 20 0 rmoveto (=) show 20 0 rmoveto
               (unbunte Rezeptorerregung) showde
               (achromatic receptor response) showen
              } if %xchartl=00


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 180 add 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

%ifunc 0 eq {/x_zp (x) def /x_zm (-x) def}
%           {/x_zp (z) def /x_zm (-z) def /lne_10d 1 10 ln div def} ifelse
/x_zp (x) def /x_zm (-x) def

ioute 0 eq {/e_10 (e) def  /lne_10 1 def}
           {/e_10 (10) def /lne_10 1 def} ifelse

/expnp 10 array def
%       0     1     2     3     4     5     6     7     8     9 
/expnp [1.0   1.0   0.7   0.5   1.0   0.7   0.5   1.0   0.7   0.5] def
/expnk 10 array def
%       0     1     2     3     4     5     6     7     8     9
/expnk [(1,0) (1,0) (0,7) (0,5) (1,0) (0,7) (0,5) (1,0) (0,7) (0,5)] def

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

xchartl 0 eq {/jm2 0 def} 
             {/jm2 1 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

/ianta 0 def
/iytxt iytx 050 add j 0 eq {100 add} if def
ixtx 1030 add
ianta 1 eq {150 add} if

j 0 eq {%j=0
iytxt iyta add 70 add moveto
0970 ioute 1 eq {150 add} if 0 rlineto stroke
} if %j=0

} for %k=0,1

/ianta 0 def
j 0 eq {%j=0
ixtx iytxt moveto
TBIL
(F) show
-30 -80 rmoveto TBS (ab) show 0 80 rmoveto
TBL
(\050) show
LSxr
TBL
(\051) show
TBL
ianta 1 eq {30 0 rmoveto (=) show 30 0 rmoveto (-b) show
            30 0 rmoveto SL (b) show TBL}
           {20 0 rmoveto (=) show 20 0 rmoveto (b) show
            SL (b) show TBL} ifelse
ixtx 1000 add
ianta 1 eq {200 add} if
iytxt 100 add moveto
TBL e_10 show
0 100 rmoveto
SVxr
TBS (/a) show ioute 1 eq {(') show} if -50 -100 rmoveto
TBL ( - ) show
TBL e_10 show
0 100 rmoveto TBS (-) show
SVxr
TBS (/a) show ioute 1 eq {(') show} if 0 -100 rmoveto

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

/iouta 1 def
iouta 1 eq {%iouta
0 180 rmoveto
TBL
ianta 1 eq {100 0 rmoveto (+1,0 =) show 20 0 rmoveto (-b) show
            10 0 rmoveto SL (b) show 10 0 rmoveto TBL}
           {100 0 rmoveto (+1,0 =) show
            40 0 rmoveto (b) show 30 0 rmoveto SL (b) show 30 0 rmoveto TBL
           } ifelse
TBL (tanh[) show LSxr
TBL (/a] +1,0) show
           } if %iouta

ianta 1 eq {ix3 2250 add iyt0 300 add moveto
            TBS
            (antagonistic model) showen
            (antagonistisches Modell) showde
           } if

/asi 8 array def
/bsi 8 array def
/ati 8 array def
/bti 8 array def
%used instead of ai/bi
%     0      1     2     3     4     5     6     7
%b/a   1.00  3.44  2.30  1.75  0.67  0.57  0.43  0.29
/asi [ 1.00  0.29  0.43  0.57  1.50  1.75  2.30  3.44 ] def
/bsi [ 1.00  1.00  1.00  1.00  1.00  1.00  1.00  1.00 ] def
%/ati [(1,00)(2,00)(1,32)(1,40)(1,50)(2,66)(2,82)(3,00)] def
%/bti [(1,00)(1,00)(1,00)(1,00)(1,00)(1,00)(1,00)(1,00)] def

/alpha 1 def
%/ibeta 1 def
/beta 1.00 def
j 0 eq {%j=0, both sides
        tfw
        TBS
        ix3 2250 add 500 add iyt0 300 add moveto
        (standard:) showen
        (Standard:) showde
        ix3 2250 add 500 add iyt0 130 add moveto
        (a=1,00 b=1,00) show
        ioute 1 eq {%ioute=1
                    ix3 2250 add 500 add iyt0 040 sub moveto
                    (a'=a) show 30 0 rmoveto (ln(10)=) show
                    1.0 10 ln mul cvsshow3x
                    (, ) show SS (b) show TBS (=) show
                    beta cvsshow2x
                    } if %ioute=1
        ioute 0 eq {%ioute=0
                    ix3 2250 add 500 add iyt0 040 sub moveto
                    SS (b) show TBS (=) show
                    beta cvsshow2x ( e=2,7182) show
                   } if %ioute=0
       } if %j=0, both sides
} if %j=0

} for %j=jm1,jm2

idepi 1 eq {%idepi=1

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

ix0 iyt1t moveto
TBIL
(F') show
-50 -80 rmoveto TBS (ab) show 0 80 rmoveto
TBL
(\050) show
LSxrx
TBL
(\051) show 20 0 rmoveto
TBL
ianta 1 eq {(=) show 30 0 rmoveto (-4) show 30 0 rmoveto (b) show 
            30 0 rmoveto SL (a) show 30 0 rmoveto 
            TBL (/) show 30 0 rmoveto ([) show}
           {(=) show 30 0 rmoveto (4) show 30 0 rmoveto (b) show
            20 0 rmoveto SL (a) show 20 0 rmoveto
            TBL (/) show 30 0 rmoveto ([) show} ifelse
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 (/a) show ioute 1 eq {(') show} if
20 -80 rmoveto
TBL (}) show
0 80 rmoveto TBS (2) show 0 -80 rmoveto
TBL (]) show

ix3 2000 add iyt1t moveto
TBS
(a=) show asi xchartl get cvsshow2x

%xchartl 1 ge {0 100 rmoveto TBS expnk expnr get show 0 -100 rmoveto} if

TBS
(, b=) show bsi xchartl get cvsshow2x

/ialpha 1 def
/alpha 1.00 def
ialpha 1 eq {%ialpha=1
             ix3 2000 add iyt1t 200 sub moveto
             SS (a) show TBS (=) show alpha cvsshow2x
             (, b/a=) show bsi xchartl get asi xchartl get div cvsshow2x 
             } if
} if %idepi=1

tfw
/ianta 0 def
[ ] 0 setdash
0 1500 moveto 4500 0 rlineto stroke
tfl [50 50] 0 setdash 0 2000 moveto 2000 0 rlineto stroke
%tfn 200 3800 add 2070 ianta 1 eq {1000 sub} if moveto TBL (asymptote) show
tfw [ ] 0 setdash 2000 1500 moveto 0 500 rlineto stroke

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
/Fr1i 51 array def
/Fr2i 51 array def
/Fr3i 51 array def
/Fr4i 51 array def

/ed1i 51 array def
/ed2i 51 array def
/ed3i 51 array def
/edxi 51 array def

/Frudi 51 array def
/Frupi 51 array def
/Frumi 51 array def
/Fru1i 51 array def
/Fru2i 51 array def
/Fru3i 51 array def
/Fru4i 51 array def

/FruMi 51 array def
/Fr1Mi 51 array def
/Fr2Mi 51 array def
/Fr3Mi 51 array def
/Fr4Mi 51 array def

/FrupMi 51 array def
/FrumMi 51 array def
/Fru1Mi 51 array def
/Fru2Mi 51 array def
/Fru3Mi 51 array def
/Fru4Mi 51 array def

/Fruri 51 array def
/Fr1ri 51 array def
/Fr2ri 51 array def
/Fr3ri 51 array def
/Fr4ri 51 array def

/Fai 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
/xdif 0.4 def %=21*0,2-19*0,2

/as asi xchartl get def
/bs bsi xchartl get def
/bsdas bs as div def
/fakbs 1 def

/ass as expnp expnr get exp lne_10 mul def

%in case of normalisation to u:
/i 20 def
xi i -4 i 0.2 mul add put
ioute 0 eq {%ioute=0
epxi i e xi i get as div     exp put
emxi i e xi i get as div neg exp put
           }
           {%ioute=1
epxi i e xi i get lne_10 div as div exp put
emxi i e xi i get lne_10 div as div neg exp put
           } ifelse
esxi i epxi i get emxi i get add put
/Fr1u epxi i get
      epxi i get emxi i get add div bs mul def
/Fr2u emxi i get neg
      epxi i get emxi i get add div bs mul def
/Fruu epxi i get emxi i get sub
      epxi i get emxi i get add div bs mul def

/frua 1.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 as div     exp put            %epxi=[e^(x/a) ]/2
        emxi i e xi i get as div neg exp put            %emxi=[e^-(x/a)]/2
                   }
                   {%ioute=1                            %alternate
        epxi i e xi i get lne_10 div as div exp put     %epxi=[e^(x/a') ]/2
        emxi i e xi i get lne_10 div as div neg exp put %emxi=[e^-(x/a')]/2
                   } ifelse
        esxi i epxi i get emxi i get add put            %esx=epxi+emxi
        Fr1i i epxi i get                               %Fr1i=epxi/esxi*bs
               epxi i get emxi i get add div bs mul frua add put 
        Fr2i i emxi i get neg                           %Fr2i=emxi/esxi*bs
               epxi i get emxi i get add div bs mul frua add put
        Frui i epxi i get emxi i get sub                %Frui=(epxi-emxi)
               epxi i get emxi i get add div bs mul frua add put %      /esxi*bs
        Frupi i 4 bsdas mul                             %Frupi=4*bs/as
                esxi i get 2 exp div put                %      /(esxi)^2
        Frumi i 4 bsdas mul neg                         %Frumi=-4*bs/as
                esxi i get 2 exp div put                %      /(esxi)^2
        Fru1i i Frui i get                              %Fru1i=Frui+Fr1i
                Fr1i i get add   put 
        Fru2i i Frui i get                              %Fru2i=Frui+Fr2i
                Fr2i i get add   put
        Fru3i i Frui  i get                             %Fru3i=Frui+Frupi
                Frupi i get add   put
        Fru4i i Frui  i get                             %Fru4i=Frui+Frumi
                Frumi i get add   put

        Fr1ri i Fr1i i get Fr1u div put
        Fr2ri i Fr2i i get Fr2u div put
%        Fruri i Frui i get Fruu div put %cero division

%for x=Y/Yu it is xi=20
        i 21 eq {/mFr1 Fr1i 21 get Fr1i 19 get sub xdif div def
                 /mFr2 Fr2i 21 get Fr2i 19 get sub xdif div def
                 /mFru Frui 21 get Frui 19 get sub xdif div def

                 /mFrupi Frupi 21 get Frupi 19 get sub xdif div def
                 /mFrumi Frumi 21 get Frumi 19 get sub xdif div def
                 /mFru1i Fru1i 21 get Fru1i 19 get sub xdif div def
                 /mFru2i Fru2i 21 get Fru2i 19 get sub xdif div def
                 /mFru3i Fru3i 21 get Fru3i 19 get sub xdif div def
                 /mFru4i Fru4i 21 get Fru4i 19 get sub xdif div def
%                 /mFrur Fruri 21 get Fruri 19 get sub xdif div def
                } if
       } for %i=0,50


%STOP1

40 setlinewidth
[       ] 0 setdash

0 1 2 {/m exch def %m=0,2

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

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

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

m 0 eq {1 0 0 setrgbcolor} if
m 1 eq {0 1 0 setrgbcolor} if
m 2 eq {1 1 0 setrgbcolor} if

/beta 1.00 def

0 1 im {/i exch def %i=0,im

        m 0 eq {Fai i Fr1i i get put} if
        m 1 eq {Fai i Fr2i i get put} if
        m 2 eq {Fai i Frui i get put} if

        i  0 eq {xi i get MULX mul 2000 add
                 ianta 1 eq {Fai i get neg beta mul}
                            {Fai i get     beta mul} ifelse
                MULY mul 1500 add moveto} if
        i  1 ge
        i im 1 sub le and {xi i get MULX mul 2000 add
                           ianta 1 eq {Fai i get neg beta mul}
                                      {Fai i get     beta mul} ifelse
                           MULY mul 1500 add lineto} if
        i im eq {xi i get MULX mul 2000 add
                 ianta 1 eq {Fai i get neg beta mul}
                            {Fai i get     beta mul} ifelse
                 MULY mul 1500 add lineto stroke} if
       } for %i=0,im

} for %k=0,1

} for %m=0,2

%***************************************************************
idepi 1 eq 
ideni 1 eq or {%ide(p/n)i=1
%output derivation

/alpha 1.00 def
newpath
0 1 1 {/k exch def %k=0,1 YR,YG

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

k 0 eq {[       ] 0 setdash m 0 eq {tfr}{tfg} ifelse} if
k 1 eq {[100 100] 0 setdash tfn} if
k 2 eq {[       ] 0 setdash m 0 eq {tfr}{tfg} ifelse} if
k 3 eq {[100 100] 0 setdash tfy} if

50 setlinewidth
/im 45 def
0 1 im {/i exch def %i=0,im
        i  0 eq {xi i get MULX mul 2000 add
                 m 0 eq {Frupi}{Frumi} ifelse i get
                 k 2 ge {2 mul} if alpha mul
                 MULY mul 1500 add moveto} if
        i  1 ge
        i im 1 sub le and {xi i get MULX mul 2000 add
                           m 0 eq {Frupi}{Frumi} ifelse i get 
                           k 2 ge {2 mul} if alpha mul
                           MULY mul 1500 add lineto} if
        i im eq {xi i get MULX mul 2000 add
                 m 0 eq {Frupi}{Frumi} ifelse i get
                 k 2 ge {2 mul} if alpha mul
                 MULY mul 1500 add lineto stroke} if
       } for %i=0,im

} for %m=0,1

} for %k=0,3

0 setgray
[ ] 0 setdash
20 setlinewidth

%ixt2 50 add 2250 moveto
%tfw TBS (mFrupi=) show mFrupi cvsshow2 ( ) show
%tfw TBS (mFrumi=) show mFrumi cvsshow2 ( ) show

} if %ide(p/n)i=1

%************************************************************
iampi 1 eq 
iamni 1 eq or {%iam(p/n)i=1
%output amplitude modulation positive (p) or negative (N)

/alpha 1.00 def
[100] 0 setdash

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

m 0 eq {1 0 0}{0 1 0} ifelse setrgbcolor

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

} for %m=0,1

[ ] 0 setdash
20 setlinewidth

ixt2 50 add 2050 moveto
tfw TBS (mFru3i=) show mFru3i cvsshow2 ( ) show
tfw TBS (mFru4i=) show mFru4i cvsshow2 ( ) show

} if %iam(p/n)i=1

%************************************************************
iaspi 1 eq
iasni 1 eq or {%ias(p/n)i=1
%output amplitude shift positive (p) or negative (N)

/alpha 1.00 def
[100] 0 setdash

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

m 0 eq {1 0 0}{0 1 0} ifelse setrgbcolor

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

0 setgray

} for %m=0,1

[ ] 0 setdash
20 setlinewidth

ixt2 50 add 2050 moveto
tfw TBS (mFru1i=) show mFru1i cvsshow2 ( ) show
tfw TBS (mFru2i=) show mFru2i cvsshow2 ( ) show

} if %ias(p/n)i=1

%************************************************************
%output
ixt2 50 add 1850 moveto
tfw TBS (a=)   show as    cvsshow2x ( ) show
tfw TBS (b=)   show bs    cvsshow2x ( ) show
tfw TBS (b/a=) show bsdas cvsshow2x ( ) show

ixt2 50 add 1050 moveto
tfr TBS (m) show TBV 0 -30 rmoveto (R+) show 0 30 rmoveto
    TBS (=) show mFr1 cvsshow2x ( ) show
tfg TBS (m) show TBV 0 -30 rmoveto (G-) show 0 30 rmoveto
    TBS (=) show mFr2 cvsshow2x ( ) show
tfy TBS (m) show TBV 0 -30 rmoveto (Y+) show 0 30 rmoveto
    TBS (=) show mFru cvsshow2x ( ) show

%ixt2 50 add 0400 moveto
%tfr TBS (m) show TBV 0 -30 rmoveto (R+) show 0 30 rmoveto
%    TBS (=) show mFrM1 cvsshow2x ( ) show
%tfg TBS (m) show TBV 0 -30 rmoveto (G-) show 0 30 rmoveto
%    TBS (=) show mFrM2 cvsshow2x ( ) show
%tfy TBS (m) show TBV 0 -30 rmoveto (Y+) show 0 30 rmoveto
%    TBS (=) show mFrMu cvsshow2x ( ) show

%tfn TBS (m) show TBV 0 -30 rmoveto (Y+) show 0 30 rmoveto
%    TBS (=) show mFru2Ni cvsshow2x ( ) show

%************************************************************
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

[ ] 0 setdash
20 setlinewidth

TBL %last circles
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 230 sub Frui 16 get MULY mul yshi add 010 add moveto (N) show
tfw 2400 100 sub Frui 24 get MULY mul yshi add 100 add moveto (W) show

xtr0 neg ytr0 neg translate

} def %C0i_FXi %END C0i_FXi

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

%special space for 'xm03'PROZ0.COM 2x before/after xchartl

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

%  xchartl    4 eq {  100 neg 04480 neg translate} if
%  xchartl    5 eq { 6150 neg 04480 neg translate} if
%  xchartl    6 eq {  100 neg 00220 neg translate} if
%  xchartl    7 eq { 6150 neg 00220 neg translate} if
  
grestore

%} for %xchartl=0,07

showpage
grestore

             
%%Trailer