%!PS-Adobe-3.0 EPSF-3.0 http://farbe.li.tu-berlin.de/eej0/eej00-6n %%BoundingBox: 70 85 244 206 %START PDFDE011.EPS /pdfmark06 where {pop} {userdict /pdfmark06 /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [/Title (PostScript pictures: farbe.li.tu-berlin.de/eej0/eej0.htm) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://farbe.li.tu-berlin.de or http://color.li.tu-berlin.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@mac.com) /CreationDate (D:2023070112000) /ModDate (D:20230701112000) /DOCINFO pdfmark06 [ /View [ /Fit ] /DOCVIEW pdfmark06 %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 /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 /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 /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 /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 /SS {160 /Symbol FS} bind def /SL {200 1 sub /Symbol FS} bind def /SK {250 1 sub /Symbol FS} bind def /SM {300 1 sub /Symbol FS} bind def /SG {350 1 sub /Symbol FS} bind def /CS {160 /Courier-ISOL1 FS} bind def /CL {200 /Courier-ISOL1 FS} bind def /CK {250 /Courier-ISOL1 FS} bind def /CM {300 /Courier-ISOL1 FS} bind def /CG {350 /Courier-ISOL1 FS} bind def /CBS {160 /CourierB-ISOL1 FS} bind def /CBL {200 /CourierB-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 /nGs {350 /Times-ISOL1 FS show} bind def /kGs {350 /TimesI-ISOL1 FS show} bind def /bGs {350 /TimesB-ISOL1 FS show} bind def /jGs {350 /TimesBI-ISOL1 FS show} bind def /sGs {350 /Symbol FS show} bind def /iGs {300 /Times-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /eGs {300 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ibGb {300 /TimesB-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /ebGb {300 /TimesB-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ipG {300 /Times-ISOL1 FS 50 50 rmoveto (\267) show 50 -50 rmoveto} bind def %20% kleiner /nMs {300 /Times-ISOL1 FS show TM} bind def /kM2 {300 /TimesI-ISOL1 FS show TM} bind def /bM2 {300 /TimesB-ISOL1 FS show TM} bind def /jM2 {300 /TimesBI-ISOL1 FS show TM} bind def /sMs {300 /Symbol FS show TM} bind def /iMs {250 /Times-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /eMs {250 /Times-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ibMs {250 /TimesB-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /ebMs {250 /TimesB-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ipM {250 /Times-ISOL1 FS 40 40 rmoveto (\267) show 40 -40 rmoveto TM} bind def %40% kleiner /nKs {250 /Times-ISOL1 FS show TK} bind def /kKs {250 /TimesI-ISOL1 FS show TK} bind def /bKs {250 /TimesB-ISOL1 FS show TK} bind def /jKs {250 /TimesBI-ISOL1 FS show TK} bind def /sKs {250 /Symbol FS show TK} bind def /iKs {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /eKs {200 /Times-ISOL1 FS 0 130 rmoveto show 0 -130 rmoveto TK} bind def /ibKs {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /ebKs {200 /TimesB-ISOL1 FS 0 130 rmoveto show 0 -130 rmoveto TK} bind def /ipK {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def %60% kleiner /nLs {200 /Times-ISOL1 FS show TS} bind def /kLs {200 /TimesI-ISOL1 FS show TS} bind def /bLs {200 /TimesB-ISOL1 FS show TS} bind def /jLs {200 /TimesBI-ISOL1 FS show TS} bind def /sLs {200 /Symbol FS show TS} bind def /iLs {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /eLs {160 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TS} bind def /ibLs {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /ebLs {160 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TS} bind def /ipL {160 /Times-ISOL1 FS 25 25 rmoveto (\267) show 25 -25 rmoveto TS} bind def %XCHA02.PS BEG /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfi %x y width heigth c m y k {setrgbcolor rec fill} bind def /colrecst %x y width heigth c m y k {setrgbcolor rec stroke} bind def /rem %x, y width heigth {/heigth exch 0.5 mul def /width exch 0.5 mul def /yleftb exch heigth 0.5 mul add def /xleftb exch width 0.5 mul add def xleftb yleftb moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colremfi %x y width heigth c m y k {setrgbcolor rem fill} bind def /colremst %x y width heigth c m y k {setrgbcolor rem stroke} bind def /tzr {1 0 0} bind def %Reproduktionsfarben /tzg {0 1 0} bind def /tzb {0 0 1} bind def /tzc {0 1 1} bind def /tzm {1 0 1} bind def /tzy {1 1 0} bind def /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 /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 /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 %XCHA02.PS BEG /YnW 100 def %TUBJND, CIELAB /Yi 101 array def %101(W)+3*101(R,G,B) /YLogi 101 array def /dYi 101 array def /L*i 101 array def /X00i 101 array def %log(Xi) /Y00i 101 array def %L*i, log(L*i) /Y0ui 101 array def %L*i/Lu, log(L*i/L*u) /Y10i 101 array def %dYi, log(dYi) /Y1ui 101 array def %dYi/dYu, log(dYi/dYu) /Y20i 101 array def %dYi/Yi, log(dYi/Yi) sensitivity /Y2ui 101 array def %(dYi/dYu)/(Yi/Yu), log[(dYi/dYu)/(Yi/Yu)] /Y30i 101 array def %Yi/dYi, log(Yi/dYi) contrast /Y3ui 101 array def %(Yi/Yu)/(dYi/dYu), log[(Yi/Yu)/(dYi/dYu)] /Yx0i 101 array def %one of eight above /MULX 1000 def /MULY 1000 def /ifunc 0 def %0: TUBJND, 1: CIELAB /YLIN 1 def %data for LINLAB, TUBJND, CIELAB /c24 2.4 def %LINYAB /e10D24 1.0 2.4 div def /e14D24 1.4 2.4 div def /c30 3.0 def %CIELAB /e10D30 1.0 3.0 div def /e20D30 2.0 3.0 div def %*************************************************** %ifunc 0 eq {%ifunc=0 %TUBJND /YYL 0.001 def /YFL 0.000001 def /Yu 18.00 def %dY = (s + q * Y)/c = (A1 + A2 * Y) / A0 /JNDC 1.5 def %c=A0 /JNDS 0.0170 def %s=A1 %/JNDQ 0.0058 2.0 mul def %q=A2 error /JNDQ 0.0058 def %q=A2 /JNDA0 JNDC def /JNDA1 JNDS def /JNDA2 JNDQ def /JNDA JNDQ JNDS div def %a=q/s=A2/A1=0,3411 /JNDT JNDC JNDS div def %t=c/s=A0/A1=88,23 /JNDB JNDA Yu mul def %b=q/s*Yu=a*Yu=A2/A1*Yu= /JNDD JNDT JNDA div def %d=t/a=A0/A2=258,6 ifunc 0 eq {%ifunc=0 %dY = (s + q Y)/ c = (A1 + A2 * Y) / A0 %dY = [1 + (q/s) Y] / (c/s) = [1 + a Y] / t = [1 + (A2/A1) * Y] / (A0/A1) %dY = [1 + (q/s)*Yu * (Y/Yu)] * (c/s) = [1 + (a*Yu) (Y/Yu)] /t % = [1 + b (Y/Yu)] / t = [ 1 + A2/A1*Yu*(Y/Yu) ] / (A0/A1) %L*= ln [1 + a Y] * d = ln [1 + (A2/A1) * Y] * (A0/A2) %dL*/dY = 1 / (1 + a*Y) * a * d) = t / (1 + a*Y) = (A0/A2) / [1 + (A2/A1) * Y] %for dL*=1: %dY = (1 + a*Y) / t = [1 + (A2/A1) * Y] / (A0/A1) %s=0.0170=A1 %q=0.0058=A2 %c=Y0=1.5=A0 %a=q/s=0.3411=A2/A1 %b=a*Yu=6.1411=(A2/A1)*Yu %t=c/s=88.23=A0/A1 %d=t/a=258.62=(A0/A1)/(A2/A1)=A0/A2 /Yn 100 def /dYu Yu JNDA mul 1 add JNDT div def %[1 + (A2/A1) * Yu] / (A0/A1) /L*u Yu JNDA mul 1 add ln JNDD mul def %A0/A2 * ln [1 + (A2/A1) * Yu] /iu 40 def %*************************************************** /Yi_L*i_dYi_L_0 {%BEG Yi_L*i_dYi_L_0 L=TUBJND /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put %L*i = A0/A2 * ln [1 + (A2/A1) * Y] L*i i Yi i get JNDA mul 1 add ln JNDD mul put %dYi = [1 + (A2/A1) * Y] / (A0/A1) dYi i Yi i get JNDA mul 1 add JNDT div put } for %i=1,100 } bind def %END Yi_L*i_dYi_L_0 =TUBJND } if %ifunc=0 %*************************************************** ifunc 1 eq {%ifunc=1 /econst 2.71828182 def /W2 2 sqrt def /FL 0.0001 def %Yn=100, L*u=50 %Yu=Yn*[(L*u+16)/116]**3 %dYu=3*[Yn**(1/3)/116*Yu**(2/3)] /Yn 100 def /L*u 50 def /Yu L*u 16 add 116 div 3 exp 100 mul def /dYu Yn e10D30 exp 116 div 3 mul Yu e20D30 exp mul def /iu 40 def /aCIE 3 116 div Yn e20D30 exp mul def /bCIE aCIE iu e20D30 exp mul def /cCIE 3 116 div Yn e10D30 exp mul def /dCIE cCIE iu e20D30 exp mul def /eCIE 116 3 div Yn e20D30 exp mul def /fCIE eCIE iu e20D30 exp mul def %************************************************* /Yi_L*i_dYi_C_0 {%BEG Yi_L*i_dYi_C_0 C=CIELAB /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put L*i i Yi i get YnW div e10D30 exp 116 mul 16 sub put dYi i Yi i get YnW div e20D30 exp c30 mul 100 mul 116 div put } for %i=1,100 } bind def %END Yi_L*i_dYi_C_0 C=CIELAB } if %ifunc=1 /ioutc 1 def /cero_line {%BEG cero_line %1. log line = cero line tfr %-2. MULX mul 1. log MULY mul moveto % 0. MULX mul 1. log MULY mul lineto stroke tfn %tfw %2. log line = +1 line tfg %-2. MULX mul 10. log MULY mul moveto % 0. MULX mul 10. log MULY mul lineto stroke tfn %tfw } bind def %cero line %*************************************************** /Yi_Yxyi {%BEG Yi_Yxyi definition for 4 functions: L*i, dYi, dYi/Yi, Yi/dYi %i=0 not available 1 1 100 {/i exch def %i=1,100 X00i i Yi i get put Y00i i L*i i get put Y0ui i L*i i get L*u div put Y10i i dYi i get put Y1ui i dYi i get dYu div put Y20i i dYi i get Yi i get div put Y2ui i dYi i get Yi i get div dYu Yu div div put Y30i i Yi i get dYi i get div put Y3ui i Yi i get dYi i get div Yu dYu div div put } for %i=1,100 } bind def %END Yi_Yxyi %*************************************************** /Y_curve {%BEG Y_curve 50 setlinewidth 0 1 1 {/je exch def %je=0,1 je 0 eq {1 1 1 setrgbcolor} if je 1 eq {0 0 0 setrgbcolor [100] 0 setdash} if /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 X00i i get log MULX mul Yx0i i get MULY mul i i1 eq {moveto} if i i1 1 add ge i i2 1 sub le and {lineto} if i i2 eq {stroke} if } for %i=i1,i2 } for %je=0,1 /iout 0 def iout 1 eq {%iout=1 50 setlinewidth 0 1 2 {/k exch def %k=0,3 k 0 eq {/i 04 def} if k 1 eq {/i 18 def} if k 2 eq {/i 90 def} if tfb X00i i get log MULX mul Yx0i i get MULY mul 060 0 360 arc fill newpath X00i i get log 0.50 sub MULX mul Yx0i i get ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {0.15 500 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 0.2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.01 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 200 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %TUBJND ifunc 1 eq {%ifunc=1 CIELAB xchartl 0 eq {0.15 50 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.1 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 20 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %CIELAB MULY mul moveto TBK xchartl 0 eq xchartl 6 eq or {Yx0i i get cvsshow1x} {Yx0i i get cvsshow3x} ifelse 0 setgray newpath } for %k=0,2 } if %iout=0 [ ] 0 setdash 0 setgray } bind def %END Y_curve %********************************************************************* /proc_axis1 {%BEG proc_axis1 50 setlinewidth %50 setlinewidth tfn 0 0 moveto 5000 0 rlineto stroke 0 0 moveto 0 3100 rlineto stroke 5000 100 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3100 100 add moveto -50 -100 rlineto 100 0 rlineto closepath fill } bind def %END proc_axis1 %********************************************************************* /proc_axis2 {%BEG proc_axis2 TBL %/tx [(-2) (-1) ( 0) ( 1) ( 2)] def %/txl [( ) (0,1) ( 1) ( 10) (100)] def /tx [(-2) (-1) ( 0) ( 1) ( 2) ( 3)] def /txl [(0,01) (0,1) ( 1) ( 10) (100) (1000)] def %!x-axis: 100 Einheiten = 0600 Skalen-Einheiten 0 1 5 {/i exch def /ixt {-150 i 1000 mul add} def /ixl { 000 i 1000 mul add} def ixt -230 moveto tx i get exec show tfb i 1 ge {ixt i 0 eq {100 sub} if 100 moveto txl i get exec show} if tfn ixl 60 moveto 0 -120 rlineto stroke } for %tfn %tfw %2300 100 moveto TBIL (Y) show (u) ibLs TBL (=18) show tfn /ixtt 5.0 1000 mul def /iytt -200 def ixtt 100 add iytt moveto TBL (log) show 20 0 rmoveto TBIL (Y) show TBL /iytt 050 def ixtt 500 add iytt 050 add moveto tfb TBIL (Y) show tfn %tfn %tfw % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %tfg %[100] 0 setdash % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %[ ] 0 setdash tfn %!y-Achse: 100 S-Einheiten = 1000 Skalen-Einheiten /j1y 2 def %default /j2y 4 def ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {/j1y 4 def /j2y 6 def} if xchartl 2 eq {/j1y 1 def /j2y 3 def} if xchartl 4 eq {/j1y 0 def /j2y 2 def} if xchartl 6 eq {/j1y 4 def /j2y 6 def} if } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=0 CIELAB xchartl 0 eq {/j1y 3 def /j2y 5 def} if xchartl 2 eq {/j1y 2 def /j2y 4 def} if xchartl 4 eq {/j1y 1 def /j2y 3 def} if xchartl 6 eq {/j1y 3 def /j2y 5 def} if } if %ifunc=1 CIELAB TBL %yshift -1000 0 1000 2000 3000 4000 % 0 1 2 3 4 5 6 7 8 /ty [(-3)(-2)(-1) ( 0) ( 1) ( 2) ( 3) ( 4) ( 5)] def /tyl[(0,001)(0,01) (0,1) (1) (10) (100) (1000) (10000) (100000)] def ifunc 0 eq {%ifunc=0 TUBJND /ty0[(0)(500)(1000)(1500)] def /ty1[(0)(1)(2)(3)] def /ty2[(0,0)(0,2)(0,4)(0,6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,00)(0,01)(0,02)(0,03)] def /ty5[(0)(2)(4)(6)] def /ty6[(0)(100)(200)(300)] def /ty7[(0)(1)(2)(3)] def } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=1 CIELAB /ty0[(0)(50)(100)(150)] def /ty1[(0)(1)(2)(3)] def /ty2[(0)(2)(4)(6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,0)(0,1)(0,2)(0,3)] def /ty5[(0)(2)(4)(6)] def /ty6[(0) (20) (40)(60) ] def /ty7[(0)(1)(2)(3)] def } if %ifunc=1 CIELAB /j1y 0 def /j2y 3 def j1y 1 j2y {/j exch def /jyt {-50 j j1y sub 1000 mul add} def /jyl {000 j j1y sub 1000 mul add} def tfb 100 jyt moveto xchartl 0 eq {ty0 j get show} if xchartl 1 eq {ty1 j get show} if xchartl 2 eq {ty2 j get show} if xchartl 3 eq {ty3 j get show} if xchartl 4 eq {ty4 j get show} if xchartl 5 eq {ty5 j get show} if xchartl 6 eq {ty6 j get show} if xchartl 7 eq {ty7 j get show} if tfn -60 jyl moveto 120 0 rlineto stroke } for } bind def %END proc_axis1 %*************************************************** /cvishow {cvi 10 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 10 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 10 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 10 string cvs show} def /cvsshow4 {10000 mul cvi 0.0001 mul 10 string cvs show} def /cvsshow1x {/nxx exch def %example nxx=99.1/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10 mul cvi abs /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 /cvsshow2x {/nxx exch def %example nxx=99.12/99,02/99,00 nxx 0 lt {(-) show} {() show} ifelse nxx 100 mul cvi abs /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 /cvsshow3x {/nxx exch def %example nxx=99.123/99.012/99.001/99.000 nxx 0 lt {(-) show} {() show} ifelse nxx 1000 mul cvi abs /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 /cvsshow4x {/nxx exch def %example nxx=99.123/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10000 mul cvi abs /nxi exch def %nxi=99123/99012/99001/9 nxi 10000 idiv /nxa exch def %nxa=99 nxi nxa 10000 mul sub /nxb exch def %nxb=123/012/001/000 nxa cvishow (,) show %nxb=99, nxb 1000 ge {nxb cvishow} if %nxb=123/012/001/000 nxb 100 ge nxb 999 le and {(0) show nxb cvishow} if %nxb=012 nxb 10 ge nxb 99 le and {(00) show nxb cvishow} if %nxb=012 nxb 1 ge nxb 9 le and {(000) show nxb cvishow} if %nxb=001 nxb 0 eq {(0000) show} if %nxb=000 } def /cvsshow4s {/nxx exch def %example nxx=-0,1234 nxx 0 lt {(-0,) show} {(0,) show} ifelse /nxi nxx 10000 mul cvi abs def %nxi=1234 nxi 1000 ge {nxi cvishow} if %nxb=123/012/001/000 nxi 100 ge nxi 999 le and {(0) show nxi cvishow} if %nxb=123/012/001/000 nxi 10 ge nxi 99 le and {(00) show nxi cvishow} if %nxb=012 nxi 1 ge nxi 9 le and {(000) show nxi cvishow} if %nxb=001 nxi 0 eq {(0000) show} if %nxb=000 } def %*************************************************** %%EndProlog gsave /lanind 1 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 1 def /lanind2 1 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 3 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 0 def} ifelse /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def} {/pchart1 3 def} ifelse /colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def /colsepd colsepdf def} {/colsep1 0 def} ifelse /pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def /pmetamd pmetamdf def} {/pmetam1 0 def} ifelse %either defaul values for xchart=0 or values for xchart=1 /lanind lanind1 def % /colorm colorm1 def % /deintp deintp1 def % /xcolor xcolor1 def % /xchart xchart1 def % /pchart pchart1 def % /colsep colsep1 def % /pmetam pmetam1 def % /ioute 0 def %0 1 01 {/ioute exch def %ioute=0,0 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 (eej00-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 eq {Yi_L*i_dYi_L_0} if ifunc 1 eq {Yi_L*i_dYi_C_0} if Yi_Yxyi /xchartl 3 def %0 1 07 {/xchartl exch def %xchartl=0,07 gsave % 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 4480 translate} if % xchartl 5 eq { 6150 4480 translate} if % xchartl 6 eq { 100 0220 translate} if % xchartl 7 eq { 6150 0220 translate} if 100 /Times-ISOL1 FS 0 setgray 50 -100 moveto (eej00-6n) show %EEA80-4A %xchartl 1 add cvishow %(A) show %A %(_) show xchart 1 add cvishow 20 setlinewidth /xwidth 6000 def /ywidth 4000 def 25 setlinewidth 1 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 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 0 xwidth ywidth 0.0 0.0 0.0 colrecst %frame black tfn %tfw /xtr0 180 def /ytr0 280 def xtr0 ytr0 translate proc_axis1 %BEG C01_C08 ******************************************** tfn %tfw 050 xtr0 sub 3725 ytr0 sub moveto xchartl 00 eq {%xchartl=00 YLIN 0 eq {TBK (log[) show} if TBIK (L*) show TBK ifunc 0 eq {(TUBJND ) show} {(CIELAB ) show} ifelse YLIN 0 eq {TBK (]) show} if 2100 xtr0 sub 3725 ytr0 sub 000 sub moveto TBK (lightness ) showen (Helligkeit ) showde TBIK (L*) show ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse } if %xchartl=00 xchartl 01 eq {%xchartl=01 YLIN 0 eq {TBK (log[) show} if TBIK (L*) show ifunc 0 eq {(TUBJND,r) ibKs} {(CIELAB,r) ibKs} ifelse YLIN 0 eq {TBK (]) show} if 2100 xtr0 sub 3725 ytr0 sub 000 sub moveto TBK (relative lightness normalized to the) showen (relative Helligkeit normiert zur) showde 2100 xtr0 sub 3725 ytr0 sub 250 sub moveto (background lightness ) showen (Umgebungshelligkeit ) showde TBIK (L*) show ifunc 0 eq {(TUBJND,u) ibKs} {(CIELAB,u) ibKs} ifelse } if %xchartl=01 xchartl 02 eq {%xchartl=02 YLIN 0 eq {TBK (log[) show} if SM (D) show 20 0 rmoveto TBIK (Y) show TBK YLIN 0 eq {TBK (]) show} if 1300 xtr0 sub 3725 ytr0 sub 000 sub moveto SM (D) show 20 0 rmoveto TBIK (Y) show ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( tristimulus\255value difference) showen (\255Normfarbwertdifferenz) showde } if %xchartl=02 xchartl 03 eq {%xchartl=03 YLIN 0 eq {TBK (log[) show} if SM (D) show 20 0 rmoveto TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show (u) ibKs YLIN 0 eq {TBK (]) show} if 1250 xtr0 sub 3725 ytr0 sub 000 sub moveto SM (D) show 20 0 rmoveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( tristimulus\255value difference) showen (\255Normfarbwertdifferenz) showde 1250 xtr0 sub 3725 ytr0 sub 250 sub moveto (normalized to ) showen (normiert f\374r ) showde SM (D) show 20 0 rmoveto TBIK (Y) show ifunc 0 eq {(TUBJND,u) ibKs} {(CIELAB,u) ibKs} ifelse } if %xchartl=03 xchartl 04 eq {%xchartl=04 YLIN 0 eq {TBK (log[) show} if SM (D) show TBIK (Y/Y) show YLIN 0 eq {TBK (]) show} if 2000 xtr0 sub 3725 ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( sensitivity) showen (\255Empfindlichkeit) showde } if %xchartl=04 xchartl 05 eq {%xchartl=05 YLIN 0 eq {TBK (log[) show} if TBK (\050) show SM (D) show TBIK (Y/Y) show TBK (\051 / \050) show SM (D) show TBIK (Y) show (u) ibKs TBK (/) show TBIK (Y) show (u) ibKs TBK (\051) show YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub 3725 ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( sensitivity) showen (\255Empfindlichkeit) showde 2700 xtr0 sub 3725 ytr0 sub 250 sub moveto (normalized to [) showen (normiert f\374r [) showde SM (D) show TBIK (Y/Y) show TBK (]) show ifunc 0 eq {(TUBJND,u) ibKs} {(CIELAB,u) ibKs} ifelse } if %xchartl=05 xchartl 06 eq {%xchartl=06 YLIN 0 eq {TBK (log[) show} if TBIK (Y/) show SM (D) show TBIK (Y) show YLIN 0 eq {TBK (]) show} if 2800 xtr0 sub 3725 ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( contrast) showen (\255Kontrast) showde } if %xchartl=06 xchartl 07 eq {%xchartl=07 YLIN 0 eq {TBK (log[) show} if TBK (\050) show TBIK (Y/) show SM (D) show TBIK (Y) show (\051 / \050) show TBIK (Y) show (u) ibKs TBK (/) show SM (D) show TBIK (Y) show (u) ibKs TBK (\051) show YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub 3725 ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( contrast) showen (\255Kontrast) showde 2700 xtr0 sub 3725 ytr0 sub 250 sub moveto (normalized to [) showen (normiert f\374r [) showde TBIK (Y/) show SM (D) show TBIK (Y) show TBK (]) show ifunc 0 eq {(TUBJND,u) ibKs} {(CIELAB,u) ibKs} ifelse } if %xchartl=07 tfn %tfw /y0del 100 def 50 setlinewidth %********************************************************************* /C01_ALOG_L* {%BEG C01_ALOG_L* /Fx0log -2.0 def /Fy0log 0.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def ifunc 0 eq {/MULY iys 500 div def} if %scale=500 ifunc 1 eq {/MULY iys 050 div def} if %scale=050 /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y00i i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def %/iu04 04 def %/iu18 18 def %/iu90 90 def /Y004DYu L*i iu04 get def /Y018DYu L*i iu18 get def /Y090DYu L*i iu90 get def /Y001DYu L*i 1 get def /Y100DYu L*i 100 get def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (threshold) showea (Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C01 /x0 xl0 200 add def tfn x0 ylm 120 add moveto TBL (log) show TBIL (\050L*) show ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs TBL (\051=) show L*i iu get log cvsshow2x /FYiuP1 L*i iu 1 add get def /FYiu L*i iu get def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs TBL (=) show L*u cvishow TBIL (, Y) show (u) ibLs TBL (=) show Yu cvishow xtr neg ytr neg translate %old cero point /y0 3200 def /x1 800 def /y1 3000 def /xdel 800 def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C01 %L*= (t/a) * ln (1 + a Y) /x00t 0600 def /x00e 5400 def /y00t 2900 def /ydel 0270 def ifunc 0 eq {%ifunc=0 %TUBJND x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show x00e y00t moveto TBL ([1a]) show %L*= (t/a) * ln [1 + b(Y/Yu)) x00t y00t ydel 1 mul sub moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t ydel 1 mul sub moveto TBL ([2a]) show x00t 0000 add y00t ydel 2 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 1000 add y00t ydel 2 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 2000 add y00t ydel 2 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 3000 add y00t ydel 2 mul sub moveto TBL (b=) show JNDB cvsshow3x x00e y00t ydel 2 mul sub moveto TBL ([3a]) show } if %infunc=0 TUBJND ifunc 1 eq {%ifunc=1 CIELAB x00t y00t moveto TBIL (L*) show TBL (= 116 ) show TBIL (\050Y/Y) show (n) ibLs TBL (\051) show (1/3) ebLs TBL ( - 16 ) show TBIL (\050Y) show (n) ibLs TBL (=100, 1) show SL ( \243 ) show TBIL (Y) show SL ( \243 ) show TBL (100\051) show x00e y00t moveto TBL ([1a]) show } if %infunc=1 TUBJND } if %ioute=0 tfn %tfw /x0 4400 def /y0 1200 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C01_ALOG_L* %********************************************************************* /C02_ALOG_L*DL*u {%BEG C02_ALOG_L*DTu* /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1 div def %scale=1 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y0ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def %/iu04 04 def %/iu18 18 def %/iu90 90 def /Y004DYu L*i iu04 get L*u div def /Y018DYu L*i iu18 get L*u div def /Y090DYu L*i iu90 get L*u div def /Y001DYu L*i 1 get L*u div def /Y100DYu L*i 100 get L*u div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (threshold) showea (Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C02 /x0 xl0 200 add def tfn x0 ylm 120 add moveto TBL (log[\050) show TBIL (L*) show ifunc 0 eq {(TUBJND,) ibLs} if TBL (/) show TBIL (L*) show ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs TBL (\051]) show TBL (=0) show /FYiuP1 L*i iu 1 add get L*i iu get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs TBL (=) show L*u cvishow TBIL (, Y) show (u) ibLs TBL (=) show Yu cvishow xtr neg ytr neg translate %old cero point /y0 2900 def /x1 800 def /y1 2700 def /xdel 800 def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C02 %L*= (t/a) * ln (1 + a Y) /x00t 0600 def /x00e 5400 def /y00t 2700 def /ydel 0270 def ifunc 0 eq {%ifunc=0 TUBJND x00t y00t moveto TBIL (L*/L*) show (u) iKs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( { ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show TBL ( - ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show (u) iKs TBL (\051 }) show x00e y00t moveto TBL ([1b]) show x00t y00t ydel 1 mul sub moveto TBIL (L*/L*) show (u) iKs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( { ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) iKs TBL (\051]) show TBL ( - ln \050 1 + ) show TBL (b) show TBL (\051 }) show x00e y00t ydel 1 mul sub moveto TBL ([2b]) show x00t 0000 add y00t ydel 2 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 1000 add y00t ydel 2 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 2000 add y00t ydel 2 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 3000 add y00t ydel 2 mul sub moveto TBL (b=) show JNDB cvsshow3x x00e y00t ydel 2 mul sub moveto TBL ([3b]) show } if %infunc=0 TUBJND ifunc 1 eq {%ifunc=1 CIELAB x00t y00t moveto TBIL (L*) show TBL (= 116 ) show TBIL (\050Y/Y) show (n) ibLs TBL (\051) show (1/3) ebLs TBL ( - 16 ) show TBIL (\050Y) show (n) ibLs TBL (=100, 1) show SL ( \243 ) show TBIL (Y) show SL ( \243 ) show TBL (100\051) show x00e y00t moveto TBL ([1b]) show } if %infunc=1 } if %ioute=0 tfn %tfw /x0 4400 def /y0 1200 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C02_ALOG_L*DL*u %********************************************************************* /C03_ALOG_DL {%BEG C03_ALOG_DL /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def ifunc 0 eq {/MULY iys 0.2 div def} if %scale=0.2 ifunc 1 eq {/MULY iys 2.0 div def} if %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y10i i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def %/iu04 04 def %/iu18 18 def %/iu90 90 def /Y004DYu dYi iu04 get def /Y018DYu dYi iu18 get def /Y090DYu dYi iu90 get def /Y001DYu dYi 1 get def /Y100DYu dYi 100 get def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (threshold) showea (Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C03 /x0 xl0 200 add def tfn x0 ylm 120 add moveto TBL (log) show TBIL ((dY)) show TBL (=) show dYi iu get log cvsshow2x /FYiuP1 dYi iu 1 add get def /FYiu dYi iu get def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point /y0 2600 def /ydel 300 def %C03 /x01t 0300 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C03 %L*= (t/a) * ln (1 + a Y) /x00t 0600 def /x00e 5400 def /y00t 3200 def /ydel 0270 def ifunc 0 eq {%ifunc=0 TUBJND x00t y00t moveto TBIL (L*) show (TUBJND,) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show x00e y00t moveto TBL ([1c]) show x00t 0000 add y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 1000 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 2000 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 3000 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00e y00t ydel 1 mul sub moveto TBL ([2c]) show x00t y00t ydel 2 mul sub moveto TBL (tristimulus value ) showen (Normfarbwert\255) showde TBIL (Y) show TBL ( difference) showen (\255Differenz) showde %1 x00t y00t ydel 3 mul sub moveto TBIL (dY) show TBL ( = \050A) show (1) ibLs TBL (+A) show (2) ibLs ipK TBIL (Y) show TBL (\051/A) show (0) ibLs TBL (, see ) showea (, siehe ) showde TBL (CIE 230; Eq. (A.7a)) show x00e y00t ydel 4 mul sub moveto TBL ([3c]) show %2 x00t y00t ydel 4 mul sub moveto TBIL (dY) show TBL ( = \050 s + q) show ipK TBIL (Y) show TBL (\051 / c) show TBL (, see ) showea (, siehe ) showde TBIL (Richter ) show TBL ((1985)) show x00e y00t ydel 3 mul sub moveto TBL ([4c]) show %3 x00t y00t ydel 5 mul sub moveto TBIL (dY) show TBL ( = \050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 / t) show x00e y00t ydel 5 mul sub moveto TBL ([5c]) show %4 x00t y00t ydel 6 mul sub moveto TBIL (dY) show TBL ( = \050) show TBL ( 1 + b) show ipK TBL (\050) show TBIL (Y) show TBL ( / ) show TBIL (Y) show (u) ibLs TBL (\051 ] / t) show x00e y00t ydel 6 mul sub moveto TBL ([6c]) show x00t 0000 add y00t ydel 7 mul sub moveto TBL (A) show (1) ibLs TBL (=s=) show JNDA1 cvsshow4x x00t 1200 add y00t ydel 7 mul sub moveto TBL (A) show (2) ibLs TBL (=q=) show JNDA2 cvsshow4x x00t 2400 add y00t ydel 7 mul sub moveto TBL (A) show (0) ibLs TBL (=c=) show JNDA0 cvsshow1x x00e y00t ydel 7 mul sub moveto TBL ([7c]) show } if %infunc=0 TUBJND ifunc 1 eq {%ifunc=1 CIELAB x00t y00t moveto TBIL (L*) show TBL (= 116 ) show TBIL (\050Y/Y) show (n) ibLs TBL (\051) show (1/3) ebLs TBL ( - 16 ) show TBIL (\050Y) show (n) ibLs TBL (=100, 1) show SL ( \243 ) show TBIL (Y) show SL ( \243 ) show TBL (100\051) show x00e y00t moveto TBL ([1c]) show %2 x00t y00t ydel 1 mul sub moveto TBIL (dY) show TBL ( = ) show TBL (\0503/116\051) show ipK TBIL (\050Y/Y) show (n) ibLs TBL (\051) show (2/3) ebLs x00e y00t ydel 1 mul sub moveto TBL ([2c]) show %3 x00t y00t ydel 2 mul sub moveto TBIL (dY) show TBL ( = a) show ipK TBIL (\050Y/Y) show (n) ibLs TBL (\051) show (2/3) ebLs x00e y00t ydel 2 mul sub moveto TBL ([3c]) show %4 x00t y00t ydel 3 mul sub moveto TBIL (dY) show TBL ( = b) show ipK TBIL (\050Y/Y) show (u) ibLs TBL (\051) show (2/3) ebLs x00e y00t ydel 3 mul sub moveto TBL ([4c]) show x00t y00t ydel 4 mul sub moveto TBL (a = ) show aCIE cvsshow3x x00t 2000 add y00t ydel 4 mul sub moveto TBL (b = ) show bCIE cvsshow3x x00e y00t ydel 4 mul sub moveto TBL ([5c]) show } if %ifunc=1 CIELAB } if %ioute=0 tfn %tfw /x0 4400 def /y0 1000 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C03_ALOG_DL %********************************************************************* /C04_ALOG_DLn {%BEG C04_ALOG_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y1ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def %/iu04 04 def %/iu18 18 def %/iu90 90 def /Y004DYu dYi iu04 get dYu div def /Y018DYu dYi iu18 get dYu div def /Y090DYu dYi iu90 get dYu div def /Y001DYu dYi 1 get dYu div def /Y100DYu dYi 100 get dYu div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 100 add moveto TBL (threshold) showea (Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn xl1 250 sub yl0 200 sub moveto TBIL (Y) show (N) ibLs TBL (=3,6) show xl2 050 add yl2 100 sub moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 000 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C04 /x0 xl0 200 add def tfn x0 ylm 120 add moveto TBL (log[) show TBIL ((dY)) show TBL (/\050) show TBIL (dY) show (u) ibLs TBL (\051]) show TBL (=0) show /FYiuP1 dYi iu 1 add get dYi iu 1 add get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point tfn %tfw /y0 2400 y0del sub def /ydel 300 def %C04 /x01t 0300 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C04 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def /x00e 5400 def /y00t 2950 def /ydel 0270 def ifunc 0 eq {%ifunc=0 TUBJND x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051) show x00e y00t moveto TBL ([1d]) show x00t 0000 add y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 1000 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 2000 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 3000 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00e y00t ydel 1 mul sub moveto TBL ([2d]) show x00t y00t ydel 2 mul sub moveto TBL (normalized tristimulus value ) showen (normierte Normfarbwert\255) showde TBIL (Y) show TBL ( difference) showen (\255Differenz) showde x00t y00t ydel 3 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL ( \051 / \050 ) show TBL (1 + b) show TBL (\051) show x00e y00t ydel 3 mul sub moveto TBL ([3d]) show } if %infunc=0 TUBJND ifunc 1 eq {%ifunc=1 CIELAB x00t y00t moveto TBIL (L*) show TBL (= 116 ) show TBIL (\050Y/Y) show (n) ibLs TBL (\051) show (1/3) ebLs TBL ( - 16 ) show TBIL (\050Y) show (n) ibLs TBL (=100, 1) show SL ( \243 ) show TBIL (Y) show SL ( \243 ) show TBL (100\051) show x00e y00t moveto TBL ([1d]) show %2 x00t y00t ydel 1 mul sub moveto TBIL (dY) show TBL ( = ) show TBL (\0503/116\051) show ipK TBIL (\050Y/Y) show (n) ibLs TBL (\051) show (2/3) ebLs x00e y00t ydel 1 mul sub moveto TBL ([2d]) show %3 x00t y00t ydel 2 mul sub moveto TBIL (dY) show TBL ( = a) show ipK TBIL (\050Y/Y) show (n) ibLs TBL (\051) show (2/3) ebLs x00e y00t ydel 2 mul sub moveto TBL ([3d]) show %4 x00t y00t ydel 3 mul sub moveto TBIL (dY) show TBL ( = b) show ipK TBIL (\050Y/Y) show (u) ibLs TBL (\051) show (2/3) ebLs x00e y00t ydel 3 mul sub moveto TBL ([4d]) show x00t y00t ydel 4 mul sub moveto TBL (a = ) show aCIE cvsshow3x x00t 2000 add y00t ydel 4 mul sub moveto TBL (b = ) show bCIE cvsshow3x x00e y00t ydel 4 mul sub moveto TBL ([5d]) show } if %ifunc=1 CIELAB } if %ioute=0 tfn %tfw /x0 4400 def /y0 1000 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C04_ALOG_DLn %********************************************************************* /C05_ALOG_DL_L {%BEG C05_ALOG_DL_L /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def ifunc 0 eq {/MULY iys 0.01 div def} if %scale=0.01 ifunc 1 eq {/MULY iys 0.10 div def} if %scale=0.10 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point 1 1 100 {/i exch def %i=1,100 Yx0i i Y20i i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def %/iu04 04 def %/iu18 18 def %/iu90 90 def /Y004DYu dYi iu04 get Yi iu04 get div def /Y018DYu dYi iu18 get Yi iu18 get div def /Y090DYu dYi iu90 get Yi iu90 get div def /Y001DYu dYi 1 get Yi 1 get div def /Y100DYu dYi 100 get Yi 100 get div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (threshold) showea (Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C05 /x0 xl0 100 add def tfn x0 ylm 120 add moveto TBL (log\050) show TBIL (dY) show TBL (/) show TBIL (Y) show TBL (\051) show TBL (=) show dYi iu get Yi iu get div log cvsshow2x /FYiuP1 dYi iu 1 add get Yi iu 1 add get div def /FYiu dYi iu get Yi iu get div def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point /y0 2400 y0del sub def /ydel 300 def %C05 /x01t 0200 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C05 %L*= (t/a) * ln (1 + a Y) /x00t 0600 def /x00e 5400 def /y00t 2900 def /ydel 0270 def ifunc 0 eq {%ifunc=0 TUBJND x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show x00e y00t moveto TBL ([1e]) show x00t 0000 add y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 1000 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 2000 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x %x00t 3000 add y00t ydel 1 mul sub moveto %TBL (b=) show JNDB cvsshow3x x00e y00t ydel 1 mul sub moveto TBL ([2e]) show x00t y00t ydel 2 mul sub moveto TBL (tristimulus value ) showen (Hellbezugswert\255) showde TBIL (Y) show TBL ( sensitivity) showen (\255Empfindlichkeit) showde %C05 %(dY/Y) x00t y00t ydel 3 mul sub moveto TBIL (dY/Y) show TBL ( = \050 ) show TBL (1 + a) show ipK TBIL (Y) show TBL (\051 / \050 t) show ipK TBIL (Y) show TBL (\051) show x00e y00t ydel 3 mul sub moveto TBL ([3e]) show } if %infunc=0 ifunc 1 eq {%ifunc=1 CIELAB x00t y00t moveto TBIL (L*) show TBL (= 116 ) show TBIL (\050Y/Y) show (n) ibLs TBL (\051) show (1/3) ebLs TBL ( - 16 ) show TBIL (\050Y) show (n) ibLs TBL (=100, 1) show SL ( \243 ) show TBIL (Y) show SL ( \243 ) show TBL (100\051) show x00e y00t moveto TBL ([1e]) show %2 x00t y00t ydel 1 mul sub moveto TBIL (dY/Y) show TBL ( = ) show TBL (\0503/116\051) show ipK TBIL (Y) show (n) ibLs (1/3) ebLs ipK TBIL (Y) show (-1/3) ebLs x00e y00t ydel 1 mul sub moveto TBL ([2e]) show %3 x00t y00t ydel 2 mul sub moveto TBIL (dY/Y) show TBL ( = c) show ipK TBIL (Y) show (-1/3) ebLs x00e y00t ydel 2 mul sub moveto TBL ([3e]) show %4 x00t y00t ydel 3 mul sub moveto TBIL (dY/Y) show TBL ( = d) show ipK TBIL (\050Y/Y) show (u) ibLs TBL (\051) show (-1/3) ebLs x00e y00t ydel 3 mul sub moveto TBL ([4e]) show x00t y00t ydel 4 mul sub moveto TBL (c = ) show cCIE cvsshow3x x00t 2000 add y00t ydel 4 mul sub moveto TBL (d = ) show dCIE cvsshow3x x00e y00t ydel 4 mul sub moveto TBL ([5e]) show } if %ifunc=1 CIELAB } if %ioute=0 tfn %tfw /x0 4400 def /y0 1800 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C05_ALOG_DL_L %********************************************************************* /C06_ALOG_DL_Ln {%BEG C06_ALOG_DL_Ln /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y2ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def %/iu04 04 def %/iu18 18 def %/iu90 90 def /Y004DYu dYi iu04 get Yi iu04 get div dYu Yu div div def /Y018DYu dYi iu18 get Yi iu18 get div dYu Yu div div def /Y090DYu dYi iu90 get Yi iu90 get div dYu Yu div div def /Y001DYu dYi 1 get Yi 1 get div dYu Yu div div def /Y100DYu dYi 100 get Yi 100 get div dYu Yu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (threshold) showea (Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C06 /x0 xl0 100 add def tfn x0 ylm 120 add moveto TBL (log[) show TBIL ((dY/Y)) show TBL (/\050) show TBIL (dY) show (u) ibLs TBIL (/Y) show (u) ibLs TBL (\051]) show TBL (=0) show /FYiuP1 dYi iu 1 add get Yi iu 1 add get div dYi iu get Yi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point /y0 2400 y0del sub def /ydel 300 def %C06 /x01t 0200 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C06 %L*= (t/a) * ln (1 + a Y) /x00t 0600 def /x00e 5400 def /y00t 2900 def /ydel 0270 def ifunc 0 eq {%ifunc=0 TUBJND x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show x00e y00t moveto TBL ([1f]) show x00t 0000 add y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 1000 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 2000 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x %x00t 3000 add y00t ydel 1 mul sub moveto %TBL (b=) show JNDB cvsshow3x x00e y00t ydel 1 mul sub moveto TBL ([2f]) show x00t y00t ydel 2 mul sub moveto TBL (tristimulus value ) showen (Hellbezugswert\255) showde TBIL (Y) show TBL ( sensitivity) showen (\255Empfindlichkeit) showde %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t y00t ydel 3 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show x00t 300 add y00t ydel 4 mul sub moveto TBL ( = [\050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 4 mul sub moveto TBL ([3f]) show } if %infunc=0 ifunc 1 eq {%ifunc=1 CIELAB x00t y00t moveto TBIL (L*) show TBL (= 116 ) show TBIL (\050Y/Y) show (n) ibLs TBL (\051) show (1/3) ebLs TBL ( - 16 ) show TBIL (\050Y) show (n) ibLs TBL (=100, 1) show SL ( \243 ) show TBIL (Y) show SL ( \243 ) show TBL (100\051) show x00e y00t moveto TBL ([1f]) show %2 x00t y00t ydel 1 mul sub moveto TBIL (dY/Y) show TBL ( = ) show TBL (\0503/116\051) show ipK TBIL (\050Y/Y) show (n) ibLs TBL (\051) show (2/3) ebLs x00e y00t ydel 1 mul sub moveto TBL ([2f]) show %3 x00t y00t ydel 2 mul sub moveto TBIL (dY/Y) show TBL ( = c) show ipK TBIL (Y) show (-1/3) ebLs x00e y00t ydel 2 mul sub moveto TBL ([3f]) show %4 x00t y00t ydel 3 mul sub moveto TBIL (dY/Y) show TBL ( = d) show ipK TBIL (\050Y/Y) show (u) ibLs TBL (\051) show (-1/3) ebLs x00e y00t ydel 3 mul sub moveto TBL ([4f]) show x00t y00t ydel 4 mul sub moveto TBL (c = ) show cCIE cvsshow3x x00t 2000 add y00t ydel 4 mul sub moveto TBL (d = ) show dCIE cvsshow3x x00e y00t ydel 4 mul sub moveto TBL ([5f]) show } if %ifunc=1 CIELAB } if %ioute=0 tfn %tfw /x0 4400 def /y0 1400 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C06_ALOG_DL_Ln %********************************************************************* /C07_ALOG_L_DL {%BEG C07_ALOG_L_DL /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def ifunc 0 eq {/MULY iys 100 div def} if %scale=100 ifunc 1 eq {/MULY iys 020 div def} if %scale=020 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y30i i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def %/iu04 04 def %/iu18 18 def %/iu90 90 def /Y004DYu Yi iu04 get dYi iu04 get div def /Y018DYu Yi iu18 get dYi iu18 get div def /Y090DYu Yi iu90 get dYi iu90 get div def /Y001DYu Yi 1 get dYi 1 get div def /Y100DYu Yi 100 get dYi 100 get div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (threshold) showea (Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C07 /x0 xl0 100 add def tfn x0 ylm 120 add moveto TBL (log[) show TBIL ((Y/dY)) show TBL (/\050) show TBIL (Y) show (u) ibLs TBIL (/dY) show (u) ibLs TBL (\051]) show TBL (=0) show /FYiuP1 Yi iu 1 add get dYi iu 1 add get div Yi iu get dYi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs TBL (=) show L*u cvishow TBIL (, Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, Y) show (u) ibLs TBL (/) show TBIL (dY) show (u) ibLs TBL (=) show Yu dYu div cvishow xtr neg ytr neg translate %old cero point %C07 /y0 2400 y0del sub def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C07 %L*= (t/a) * ln (1 + a Y) /x00t 0600 def /x00e 5400 def /y00t 2950 def /ydel 0270 def ifunc 0 eq {%ifunc=0 TUBJND x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show x00e y00t moveto TBL ([1g]) show x00t 0000 add y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 1000 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 2000 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00e y00t ydel 1 mul sub moveto TBL ([2g]) show x00t y00t ydel 2 mul sub moveto TBL (tristimulus value ) showen (Hellbezugswert\255) showde TBIL (Y) show TBL ( contrast) showen (\25Kontrast) showde %C07 x00t y00t ydel 3 mul sub moveto TBIL (Y/dY) show TBL ( = \050) show TBL (1 + a) show ipK TBIL (Y) show TBL (\051 / \050 t) show ipK TBIL (Y) show TBL (\051) show x00e y00t ydel 3 mul sub moveto TBL ([3g]) show } if %infunc=0 ifunc 1 eq {%ifunc=1 CIELAB x00t y00t moveto TBIL (L*) show TBL (= 116 ) show TBIL (\050Y/Y) show (n) ibLs TBL (\051) show (1/3) ebLs TBL ( - 16 ) show TBIL (\050Y) show (n) ibLs TBL (=100, 1) show SL ( \243 ) show TBIL (Y) show SL ( \243 ) show TBL (100\051) show x00e y00t moveto TBL ([1g]) show %2 x00t y00t ydel 1 mul sub moveto TBIL (Y/dY) show TBL ( = ) show TBL (\0503/116\051) show ipK TBIL (Y) show (n) ibLs (1/3) ebLs TBIL (Y) show (2/3) ebLs x00e y00t ydel 1 mul sub moveto TBL ([2g]) show %3 x00t y00t ydel 2 mul sub moveto TBIL (Y/dY) show TBL ( = e) show ipK TBIL (\050Y/Y) show (u) ibLs TBL (\051) show (2/3) ebLs x00e y00t ydel 2 mul sub moveto TBL ([3g]) show %4 x00t y00t ydel 3 mul sub moveto TBIL (Y/dY) show TBL ( = f) show ipK TBIL (\050Y/Y) show (u) ibLs TBL (\051) show (2/3) ebLs x00e y00t ydel 3 mul sub moveto TBL ([4g]) show x00t y00t ydel 4 mul sub 50 add moveto TBL (e = ) show eCIE cvsshow3x x00t 2000 add y00t ydel 4 mul sub moveto TBL (f = ) show fCIE cvsshow3x x00e y00t ydel 4 mul sub moveto TBL ([5g]) show } if %ifunc=1 CIELAB } if %ioute=0 tfn %tfw /x0 4400 def /y0 1300 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C07_ALOG_L_DL %********************************************************************* /C08_ALOG_L_DLn {%BEG C08_ALOG_L_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1 div def %scale=1 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point 1 1 100 {/i exch def %i=1,100 Yx0i i Y3ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def %/iu04 04 def %/iu18 18 def %/iu90 90 def /Y004DYu Yi iu04 get dYi iu04 get div Yu dYu div div def /Y018DYu Yi iu18 get dYi iu18 get div Yu dYu div div def /Y090DYu Yi iu90 get dYi iu90 get div Yu dYu div div def /Y001DYu Yi 1 get dYi 1 get div Yu dYu div div def /Y100DYu Yi 100 get dYi 100 get div Yu dYu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (threshold) showea (Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C08 /x0 xl0 100 add def tfn x0 ylm 120 add moveto TBL (log[) show TBIL ((Y/dY)) show TBL (/\050) show TBIL (Y) show (u) ibLs TBIL (/dY) show (u) ibLs TBL (\051]) show TBL (=0) show /FYiuP1 Yi iu 1 add get dYi iu 1 add get div Yi iu get dYi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs TBL (=) show L*u cvishow TBIL (, Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, Y) show (u) ibLs TBL (/) show TBIL (dY) show (u) ibLs TBL (=) show Yu dYu div cvishow xtr neg ytr neg translate %old cero point %C08 /y0 2400 y0del sub def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C08 %L*= (t/a) * ln (1 + a Y) /x00t 0600 def /x00e 5400 def /y00t 2900 def /ydel 0270 def ifunc 0 eq {%ifunc=0 TUBJND x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show x00e y00t moveto TBL ([1h]) show x00t 0000 add y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 1000 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 2000 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00e y00t ydel 1 mul sub moveto TBL ([2h]) show x00t y00t ydel 2 mul sub moveto TBL (tristimulus value ) showen (Hellbezugswert\255) showde TBIL (Y) show TBL ( contrast) showen (\25Kontrast) showde %Cr= (Y/dY)/(Yu/dYu) x00t y00t ydel 3 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y) show (u) ibLs TBIL (/dY) show (u) ibLs TBL (\051) show x00t 300 add y00t ydel 4 mul sub moveto TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 ]) show x00e y00t ydel 4 mul sub moveto TBL ([4h]) show } if %infunc=0 ifunc 1 eq {%ifunc=1 CIELAB x00t y00t moveto TBIL (L*) show TBL (= 116 ) show TBIL (\050Y/Y) show (n) ibLs TBL (\051) show (1/3) ebLs TBL ( - 16 ) show TBIL (\050Y) show (n) ibLs TBL (=100, 1) show SL ( \243 ) show TBIL (Y) show SL ( \243 ) show TBL (100\051) show x00e y00t moveto TBL ([1h]) show %2 x00t y00t ydel 1 mul sub moveto TBIL (Y/dY) show TBL ( = ) show TBL (\0503/116\051) show ipK TBIL (Y) show (n) ibLs (1/3) ebLs TBIL (Y) show (2/3) ebLs x00e y00t ydel 1 mul sub moveto TBL ([2h]) show %3 x00t y00t ydel 2 mul sub moveto TBIL (Y/dY) show TBL ( = e) show ipK TBIL (\050Y/Y) show (u) ibLs TBL (\051) show (2/3) ebLs x00e y00t ydel 2 mul sub moveto TBL ([3h]) show %4 x00t y00t ydel 3 mul sub moveto TBIL (Y/dY) show TBL ( = f) show ipK TBIL (\050Y/Y) show (u) ibLs TBL (\051) show (2/3) ebLs x00e y00t ydel 3 mul sub moveto TBL ([4h]) show x00t y00t ydel 4 mul sub moveto TBL (e = ) show eCIE cvsshow3x x00t 2000 add y00t ydel 4 mul sub moveto TBL (f = ) show fCIE cvsshow3x x00e y00t ydel 4 mul sub moveto TBL ([5h]) show } if %ifunc=1 CIELAB } if %ioute=0 tfn %tfw /x0 4300 def /y0 550 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C08_ALOG_L_DL %**************************************************************** %additional blue text /ifbtx 0 def ifbtx 1 eq {%ifbtx=1 tfb /xtfb 40 def xchartl 00 eq {100 3200 xtfb sub moveto TBIL (L*) show ifunc 0 eq {(TUBJND) ibLs} if } if xchartl 01 eq {100 3200 xtfb sub moveto TBIL (L*) show ifunc 0 eq {(TUBJND) ibLs} if TBIL (/L*) show ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs } if xchartl 02 eq {100 3200 xtfb sub moveto SL (D) show TBIL (Y) show } if xchartl 03 eq {100 3200 xtfb sub moveto SL (D) show TBIL (Y) show TBL (/) show SL (D) show TBIL (Y) show (u) ibLs } if xchartl 04 eq {100 3200 xtfb sub moveto TBIL (S) show (r) ibLs TBL (=\050) show SL (D) show TBIL (Y/Y) show TBL (\051) show } if xchartl 05 eq {100 3200 xtfb sub moveto TBIL (S) show (r) ibLs TBL (/) show TBIL (S) show (ru) ibLs TBL (=\050) show SL (D) show TBIL (Y/Y) show TBL (\051/\050) show SL (D) show TBIL (Y) show (u) ibLs TBIL (/Y) show (u) ibLs TBL (\051) show } if xchartl 06 eq {100 3200 xtfb sub moveto TBIL (C) show (r) ibLs TBL (=\050) show TBIL (Y/) show SL (D) show TBIL (Y) show TBL (\051) show } if xchartl 07 eq {100 3200 xtfb sub moveto TBIL (C) show (r) ibLs TBL (/) show TBIL (C) show (ru) ibLs TBL (=\050) show TBIL (Y/) show SL (D) show TBIL (Y) show TBL (\051/\050) show TBIL (Y) show (u) ibLs TBL (/) show SL (D) show TBIL (Y) show (u) ibLs TBL (\051) show } if } if %ifbtx=1 tfn %************************************************************** xchartl 00 eq {C01_ALOG_L*} if xchartl 01 eq {C02_ALOG_L*DL*u} if xchartl 02 eq {C03_ALOG_DL} if xchartl 03 eq {C04_ALOG_DLn} if xchartl 04 eq {C05_ALOG_DL_L} if xchartl 05 eq {C06_ALOG_DL_Ln} if xchartl 06 eq {C07_ALOG_L_DL} if xchartl 07 eq {C08_ALOG_L_DLn} if proc_axis2 %END C01_C08********************************************** %******************************************************** xtr0 neg ytr0 neg translate %************************************************************** %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 4480 neg translate} if % xchartl 5 eq { 6150 neg 4480 neg translate} if % xchartl 6 eq { 100 neg 0220 neg translate} if % xchartl 7 eq { 6150 neg 0220 neg translate} if grestore %} for %xchartl=0,07 showpage grestore %} for %ioute=0,1 %%Trailer