%!PS-Adobe-3.0 EPSF-3.0 http://farbe.li.tu-berlin.de/hgp0/hgp00-7n %%BoundingBox: 70 85 246 206 %START PDFDE011.EPS /pdfmark07 where {pop} {userdict /pdfmark07 /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [/Title (PostScript pictures: farbe.li.tu-berlin.de/hgp0/hgp0.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:2024100112000) /ModDate (D:20241001112000) /DOCINFO pdfmark07 [ /View [ /Fit ] /DOCVIEW pdfmark07 %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 /Symbol FS} bind def /SK {250 /Symbol FS} bind def /SM {300 /Symbol FS} bind def /SG {350 /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 -80 rmoveto show 0 80 rmoveto} bind def /eGs {300 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ibGb {300 /TimesB-ISOL1 FS 0 -80 rmoveto show 0 80 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 /kMs {300 /TimesI-ISOL1 FS show TM} bind def /bMs {300 /TimesB-ISOL1 FS show TM} bind def /jMs {300 /TimesBI-ISOL1 FS show TM} bind def /sMs {300 /Symbol FS show TM} bind def /iMs {250 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 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 -60 rmoveto show 0 60 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 -50 rmoveto show 0 50 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 -50 rmoveto show 0 50 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 TL} bind def /kLs {200 /TimesI-ISOL1 FS show TL} bind def /bLs {200 /TimesB-ISOL1 FS show TL} bind def /jLs {200 /TimesBI-ISOL1 FS show TL} bind def /sLs {200 /Symbol FS show TL} bind def /iLs {160 /Times-ISOL1 FS 0 -40 rmoveto show 0 40 rmoveto TL} bind def /eLs {160 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TL} bind def /ibLs {160 /TimesB-ISOL1 FS 0 -40 rmoveto show 0 40 rmoveto TL} bind def /ebLs {160 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TL} bind def /ipL {160 /Times-ISOL1 FS 25 25 rmoveto (\267) show 25 -25 rmoveto TL} bind def /jbLs {160 /TimesBI-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TL} bind def %80 smaler index exponent /ebSs {130 /TimesB-ISOL1 FS 0 070 rmoveto show 0 -070 rmoveto TL} bind def /20rm {20 0 rmoveto} def /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 %XCHA01.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 r g b {setrgbcolor rec fill} bind def /colrecst %x y width heigth r g b {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 r g b {setrgbcolor rem fill} bind def /colremst %x y width heigth r g b {setrgbcolor rem stroke} bind def /tfr {1.0 0.0 0.0 setrgbcolor} bind def %Reproduktionsfarben /tfg {0.0 1.0 0.0 setrgbcolor} bind def /tfb {0.0 0.0 1.0 setrgbcolor} bind def /tfc {0.0 1.0 1.0 setrgbcolor} bind def /tfm {1.0 0.0 1.0 setrgbcolor} bind def /tfy {1.0 1.0 0.0 setrgbcolor} bind def /tfw {1.00 1.00 1.00 setrgbcolor} bind def %Graureihe /tfh {0.75 0.75 0.75 setrgbcolor} bind def /tfz {0.50 0.50 0.50 setrgbcolor} bind def /tfd {0.25 0.25 0.25 setrgbcolor} bind def /tfn {0.00 0.00 0.00 setrgbcolor} bind def /YnW 100 def %LABJND, CIELAB /Yi 101 array def %101(W)+3*101(R,G,B) /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 four Y00i, Y10i, Y20i, Y20i /Yxui 101 array def %one of four Y0ui, Y1ui, Y2ui, Y2ui /MULX 1000 def /MULY 1000 def %*************************************************** /proc_toptext {%proc_toptext %jlog 0:without log, 1:with log in main program tfn %tfw /ytr0t0 3750 ytr0 sub def /ytr0t1 ytr0t0 250 sub def /ytr0t2 ytr0t0 500 sub def 050 xtr0 sub 3725 ytr0 sub moveto xchartl 00 eq {%xchartl=01 % jlog 1 eq {(log \050) bKs} if (L*) jKs ifunc 0 eq {(85,2) ibKs} if (/L*) jKs ifunc 0 eq {(85,2,) ibKs} if (u) ibKs % jlog 1 eq {(\051 ) bKs} if 2100 xtr0 sub ytr0t0 moveto TBK ifunc 0 eq {(LABJND) show} if ifunc 1 eq {(CIELAB) show} if ifunc 2 eq {(IECsRGB) show} if ifunc 3 eq {(TUBsRGB) show} if TBK ( lightness ) showen (\255Helligkeit ) showde (L*) jKs ifunc 0 eq {(85,2) ibKs} if TBK ( normalized) showen ( normiert) showde 2100 xtr0 sub ytr0t1 moveto (to the background lightness ) showen (f\374r die UmgebungsHelligkeit ) showde (L*) jKs ifunc 0 eq {(85,2,) ibKs} if (u) ibKs TBK } if %xchartl=00 xchartl 01 eq {%xchartl=01 % jlog 1 eq {(log \050) bKs} if (D) sMs 20 0 rmoveto (Y) jKs (/) bKs (D) sMs (Y) jKs (u) ibKs % jlog 1 eq {(\051 ) bKs} if 1800 xtr0 sub ytr0t0 moveto TBK ifunc 0 eq {(LABJND) show} if ifunc 1 eq {(CIELAB) show} if ifunc 2 eq {(IECsRGB) show} if ifunc 3 eq {(TUBsRGB) show} if TBK ( tristimulus value difference) showen (\255Normfarbwertdifferenz) showde 1800 xtr0 sub ytr0t1 moveto (D) sMs 20rm (Y) jKs TBK ( normalized to ) showen ( normiert f\374r ) showde (D) sMs 20rm (Y) jKs (u) ibKs TBK } if %xchartl=01 xchartl 02 eq {%xchartl=02 % jlog 1 eq {(log [) bKs} if 20 0 rmoveto (\050) bKs (D) sMs (Y/Y) jKs (\051 / \050) bKs (D) sMs (Y/Y) jKs (\051) bKs (u) ibKs % jlog 1 eq {(]) bKs} if 2800 xtr0 sub ytr0t0 moveto TBK ifunc 0 eq {(LABJND) show} if ifunc 1 eq {(CIELAB) show} if ifunc 2 eq {(IECsRGB) show} if ifunc 3 eq {(TUBsRGB) show} if (\255Y) jKs TBK ( sensitivity) showen (\255Empfindlichkeit) showde 2800 xtr0 sub ytr0t1 moveto (normalized to ) showen (normiert f\374r ) showde (\050) bKs (D) sMs (Y/Y) jKs (\051) bKs (u) ibKs } if %xchartl=02 xchartl 03 eq {%xchartl=03 % jlog 1 eq {(log[) bKs} if 20 0 rmoveto (\050) bKs (Y/) jKs (D) sMs (Y) jKs (\051 / \050) show (Y/) bKs (D) sMs (Y) jKs (\051) bKs (u) ibKs (\051) bKs % jlog 1 eq {(]) bKs} if 2800 xtr0 sub ytr0t0 moveto TBK ifunc 0 eq {(LABJND) show} if ifunc 1 eq {(CIELAB) show} if ifunc 2 eq {(IECsRGB) show} if ifunc 3 eq {(TUBsRGB) show} if (\255Y) jKs TBK ( contrast) showen (\255Kontrast) showde 2800 xtr0 sub ytr0t1 moveto (normalized to ) showen (normiert f\374r ) showde (\050) bKs (Y/) jKs (D) sMs (Y) jKs (\051) bKs (u) ibKs } if %xchartl=02 tfn %tfw } bind def %proc_toptext %*************************************************** /prog_L*top {%BEG prog_L*top ifunc=0,1,2,3 /20rm {20 0 rmoveto} def ifunc 0 eq {%ifunc=0 L*-top-equations BEG LABJND_C02_C08 /s0 116 def /n0 1 3 div def /d0 16 def /r0 s0 0.18 n0 exp mul def /g0 r0 r0 d0 sub div def /h0 d0 r0 d0 sub div def x00t y00t moveto (L*/L*) jLs (u) iKs (= \050) bLs (t/a) bLs (\051) bLs TBL ( { ln \050 1 + ) show TBL (a) show ipK (Y) jLs (\051) bLs TBL ( - ln \050 1 + ) show TBL (a) show ipK (Y) jLs (u) iKs TBL (\051 }) show x00e y00t moveto TBL ([1a]) show x00t y00t ydel 1 mul sub moveto (L*/L*) jLs (u) iKs (= \050) bLs (t/a) bLs (\051) bLs TBL ( { ln [ 1 + ) show TBL (b) show ipK (\050) bLs (Y/Y) jLs (u) iKs (\051]) bLs TBL ( - ln \050 1 + ) show TBL (b) show TBL (\051 }) show x00e y00t ydel 1 mul sub moveto TBL ([1b]) show } if %ifunc=0 L*-top-equations END LABJND_C02_C08 ifunc 1 ge {%ifunc>=1 top-eq. BEG CIELAB, IECsRGB, TUBsRGB_C02_C08 ifunc 1 eq {/s1 116 def /n1 1 3 div def /d1 16 def} if ifunc 2 eq {/s1 100 def /n1 1 2.4 div def /d1 0 def} if ifunc 3 eq {/s1 100 def /n1 1 10 ln div def /d1 0 def} if /r1 s1 0.18 n1 exp mul def /g1 r1 r1 d1 sub div def /h1 d1 r1 d1 sub div def x00t y00t moveto (L*) jLs 20rm TBL (=) show 20rm (s ) show (\050Y/Y) jLs (n) ibLs (\051) bLs (n) ebLs TBL (-) show 20rm (d) show x01t y00t moveto (\050Y) jLs (n) ibLs TBL (=100, ) show TBL (Y) jLs (u) ibLs TBL (=18, ) show TBL (s=) show s1 cvishow ifunc 1 eq {(, n=1/3) show} if ifunc 2 eq {(, n=1/2,4) show} if ifunc 3 eq {(, n=1/ln(10)) show} if (, d=) show d1 cvishow (\051) show x00e y00t moveto TBL ([1a]) show x00t y00t 250 sub moveto (L*) jLs 20rm TBL (=) show 20rm (r ) show (\050Y/Y) jLs (u) ibLs (\051) bLs (n) ebLs TBL (-) show 20rm (d) show x01t y00t 250 sub moveto TBL (\050r = s ) show (\050Y) jLs (u) ibLs (/Y) jLs (n) ibLs (\051) bLs (n) ebLs TBL (=) show r1 cvsshow2x TBL (, ) show (L*) jLs (u) ibLs TBL (= r - d\051) show x00e y00t 250 sub moveto TBL ([1b]) show } if %ifunc>=1 %ifunc>=1 top-eq. BEG CIELAB, IECsRGB, TUBsRGB_C02_C08 } bind def %END prog_L*top ifunc=1,2,3 %*************************************************** /prog_L*DL*u_C02 {%BEG prog_L*DL*u_C02 %for ifunc=1,2,3 CIELAB, IECsRGB, TUBsRGB %ioutC02 0/1:no or with output of equations in main program tfr %C02 /y00t 2990 def /ydel 0270 def prog_L*top %ifunc=1,2,3 ALL ifunc 0 eq {%ifunc=0 special BEG LABJND_C02 %2 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 ([1c]) show } if %ifunc=0 special END LABJND_C02 ifunc 1 eq {%ifunc=1 special BEG CIELAB_C02 x00t y00t ydel 2 mul sub moveto (L*/L*) jLs (u) ibLs TBL (=) show 20rm (g) show 20rm (\050Y/Y) jLs (u) ibLs (\051) bLs (n) ebLs TBL (-h) show x01t 400 add y00t ydel 2 mul sub moveto TBL (\050g=r/(r-d)=) show r1 r1 d1 sub div cvsshow2x TBL (, h=d/(r-d)=) show d1 r1 d1 sub div cvsshow2x TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([1c]) show jlog 1 eq {%jlog=1 x00t y00t ydel 3 mul sub moveto TBL (log [\050) show (L*/L*) jLs (u) ibLs TBL 20rm (+) show 20rm (h) show 20rm TBL (\051 / g ] = n log \050) show (Y/Y) jLs (u) ibLs (\051) bLs x00e y00t ydel 3 mul sub moveto TBL ([1d]) show x00t y00t ydel 3.9 mul sub moveto TBL (ln [\050) show (L*/L*) jLs (u) ibLs TBL ( + h) show TBL (\051 / g ] = ln(10) n log \050) show (Y/Y) jLs (u) ibLs (\051) bLs x00e y00t ydel 4.0 mul sub moveto TBL ([1e]) show x00t y00t ydel 5 mul sub moveto TBL (\050) show (L*/L*) jLs (u) ibLs TBL ( + h) show TBL (\051 / g ]) show TBL ( = e) show (ln(10) n log \050) ebLs (Y/Y) jbLs (u) ebSs (\051) ebLs x00e y00t ydel 5 mul sub moveto TBL ([1f]) show } if %jlog=1 } if %ifunc=1 special END CIELAB_C02 ifunc 2 eq {%ifunc=2 special BEG IECsRGB_C02 x00t y00t ydel 2 mul sub moveto (L*/L*) jLs (u) ibLs TBL (=) show (\050Y/Y) jLs (u) ibLs (\051) bLs (n) ebLs x00e y00t ydel 2 mul sub moveto TBL ([1c]) show jlog 1 eq {%jlog=1 x00t y00t ydel 3 mul sub moveto TBL (log \050) show (L*/L*) jLs (u) ibLs TBL (\051 = n log \050) show (Y/Y) jLs (u) ibLs (\051) bLs x00e y00t ydel 3 mul sub moveto TBL ([1d]) show x00t y00t ydel 3.9 mul sub moveto TBL (ln \050) show (L*/L*) jLs (u) ibLs TBL (\051 = ln(10) n log \050) show (Y/Y) jLs (u) ibLs (\051) bLs x00e y00t ydel 4.0 mul sub moveto TBL ([1e]) show x00t y00t ydel 5 mul sub moveto (L*/L*) jLs (u) ibLs TBL ( = e) show (ln(10) n log \050) ebLs (Y/Y) jbLs (u) ebSs (\051) ebLs x00e y00t ydel 5 mul sub moveto TBL ([1f]) show } if %jlog=1 } if %ifunc=2 special END IECsRGB_C02 ifunc 3 eq {%ifunc=3 special BEG TUBsRGB_C02 x00t y00t ydel 2 mul sub moveto (L*/L*) jLs (u) ibLs TBL (=) show (\050Y/Y) jLs (u) ibLs (\051) bLs (1/ln(10)) ebLs TBL ( \050ln(x)=ln(10) log(x)\051) show x00e y00t ydel 2 mul sub moveto TBL ([1c]) show jlog 1 eq {%jlog=1 x00t y00t ydel 3 mul sub moveto TBL (log\050) show (L*/L*) jLs (u) ibLs TBL (\051=(1/ln(10)) log\050) show (Y/Y) jLs (u) ibLs (\051) bLs x00e y00t ydel 3 mul sub moveto TBL ([1d]) show x00t y00t ydel 3.9 mul sub moveto TBL (ln\050) show (L*/L*) jLs (u) ibLs TBL (\051=log\050) show (Y/Y) jLs (u) ibLs (\051) bLs x00e y00t ydel 3.9 mul sub moveto TBL ([1e]) show x00t y00t ydel 5 mul sub moveto (L*/L*) jLs (u) ibLs TBL (= e) show (log\050) ebLs (Y/Y) jbLs (u) ebSs (\051) ebLs x00e y00t ydel 5 mul sub moveto TBL ([1f]) show } if %jlog=1 } if %ifunc=3 special END TUBsRGB_C02 } bind def %END prog_L*DL*u_C02 %*************************************************** /proc_YDYu_C04 {%BEG proc_YDYu_C04 %for ifunc=1,2,3 CIELAB, IECsRGB, TUBsRGB %ioutC04 0/1:no or with output of equations in main program tfr %C04 /y00t 2990 def /ydel 0270 def prog_L*top %for ifunc=1,2,3 ifunc 0 eq {%ifunc=0 BEG special LABJND_C04 %2 x00t y00t ydel 2 mul sub moveto TBL (normalized tristimulus value ) showen (normierte Normfarbwert\255) showde (Y) jLs TBL ( difference) showen (\255Differenz) showde %3 x00t y00t ydel 3 mul sub moveto (dY/dY) jLs (u) ibLs TBL ( = ) show (\050) bLs TBL (1 + a) show ipK (Y) jLs TBL ( \051 / \050 ) show TBL (1 + a) show ipK (Y) jLs (u) ibLs (\051) bLs x00e y00t ydel 3 mul sub moveto TBL ([3d]) show } if %ifunc=0 END special LABJND_C04 ifunc 1 eq {%ifunc=1 special CIELAB_C04 %2 x00t y00t ydel 2 mul sub moveto (dY) jLs TBL ( = [) show (Y) jLs (n) ibLs (/ \050 n s \051] ) bLs (\050Y / Y) jLs (n) ibLs (\051) bLs (1-n) ebLs x00e y00t ydel 2 mul sub moveto TBL ([2c]) show %3 x00t y00t ydel 3 mul sub moveto (dY) jLs (u) ibLs TBL ( = [) show (Y) jLs (n) ibLs TBL (/ \050 n s \051] ) show (\050Y) jLs (u) ibLs ( / Y) jLs (n) ibLs (\051) bLs (1-n) ebLs TBL ( = ) show 100 n1 s1 mul div 18 100 div n1 exp mul cvsshow4x x00e y00t ydel 3 mul sub moveto TBL ([2d]) show %4 x00t y00t ydel 4 mul sub moveto (dY / dY) jLs (u) ibLs TBL ( = ) show (\050Y / Y) jLs (u) ibLs (\051) bLs (1-n) ebLs x00e y00t ydel 4 mul sub moveto TBL ([2e]) show %5 jlog 1 eq {%jlog=1 x00t y00t ydel 5 mul sub moveto TBL (log\050) show (dY / dY) jLs (u) ibLs TBL (\051 = (1-n) log) show (\050Y / Y) jLs (u) ibLs (\051) bLs x00e y00t ydel 5 mul sub moveto TBL ([2f]) show } if %jlog=1 } if %ifunc=1 special END CIELAB_C04 ifunc 2 eq ifunc 3 eq or {%ifunc=2,3 special IECsRGB/TUBsRGB_C04 %2 x00t y00t ydel 2 mul sub moveto (dY) jLs TBL ( = [) show (Y) jLs (n) ibLs (/ \050 n s \051] ) bLs (\050Y / Y) jLs (n) ibLs (\051) bLs (1-n) ebLs x00e y00t ydel 2 mul sub moveto TBL ([2c]) show %3 x00t y00t ydel 3 mul sub moveto (dY) jLs (u) ibLs TBL ( = [) show (Y) jLs (n) ibLs TBL (/ \050 n s \051] ) show (\050Y) jLs (u) ibLs ( / Y) jLs (n) ibLs (\051) bLs (1-n) ebLs TBL ( = ) show 100 n1 s1 mul div 18 100 div n1 exp mul cvsshow4x x00e y00t ydel 3 mul sub moveto TBL ([2d]) show %4 x00t y00t ydel 4 mul sub moveto (dY / dY) jLs (u) ibLs TBL ( = ) show (\050Y / Y) jLs (u) ibLs (\051) bLs (1-n) ebLs x00e y00t ydel 4 mul sub moveto TBL ([2e]) show %5 jlog 1 eq {%jlog=1 x00t y00t ydel 5 mul sub moveto TBL (log\050) show (dY / dY) jLs (u) ibLs TBL (\051 = (1-n) log) show (\050Y / Y) jLs (u) ibLs (\051) bLs x00e y00t ydel 5 mul sub moveto TBL ([2f]) show } if %jlog=1 } if %ifunc=2,3 END IECsRGB/TUBsRGB_C04 } bind def %END proc_YDYu_C04 %*************************************************** /proc_dYDY_C06 {%BEG proc_dYDY_C06 %for ifunc=1,2,3 CIELAB, IECsRGB, TUBsRGB %ioutC06 0/1:no or with output of equations in main program tfr %C06 /y00t 2990 def /ydel 0270 def prog_L*top %for ifunc=0,1,2,3 ifunc 0 eq {%ifunc=0 special BEG LABJND_C06 %2 x00t y00t ydel 2 mul sub moveto TBL (tristimulus value ) showen (Hellbezugswert\255) showde (Y) jLs TBL ( sensitivity) showen (\255Empfindlichkeit) showde %3 %Cr= log[(Y/dY)/(Yu/dYu)] x00t y00t ydel 3 mul sub moveto (\050) bLs (dY/Y) jLs TBL (\051 / \050) show (dY) jLs (u) ibLs (/) bLs (Y) jLs (u) ibLs TBL (\051 ) show %4 x00t 300 add y00t ydel 4 mul sub moveto TBL ( = [\050) show TBL ( 1 + a) show ipK (Y) jLs TBL (\051 / ) show (Y) jLs TBL ( ] / [ \050) show TBL ( 1 + a) show ipK (Y) jLs (u) ibLs TBL (\051 / ) show (Y) jLs (u) ibLs TBL ( ]) show x00e y00t ydel 4 mul sub moveto TBL ([3f]) show } if %ifunc=0 special END LABJND_C06 ifunc 1 eq {%ifunc=1 special BEG CIELAB_C06 %2 x00t y00t ydel 2 mul sub moveto (dY / Y) jLs TBL ( = [ ) bLs (\050) bLs (Y) jLs (n) ibLs (/ \050 n s \051 ] ) bLs (\050Y / Y) jLs (n) ibLs (\051) bLs (1-n) ebLs ( / ) bLs (Y) jLs x00e y00t ydel 2 mul sub moveto TBL ([3c]) show %3 x00t y00t ydel 3 mul sub moveto ((dY / Y)) jLs (u) ibLs ( = [ ) bLs (\050) bLs (Y) jLs (n) ibLs (/ \050 n s \051 ] ) bLs (\050Y) jLs (u) ibLs ( / Y) jLs (n) ibLs (\051) bLs (1-n) ebLs ( / ) bLs (Y) jLs (u) ibLs x00e y00t ydel 3 mul sub moveto TBL ([3d]) show %4 x00t y00t ydel 4 mul sub moveto ((dY / Y)) jLs ( / ) bLs ((dY / Y)) jLs (u) ibLs ( = ) bLs (\050Y / Y) jLs (u) ibLs (\051) bLs (-n) ebLs x00e y00t ydel 4 mul sub moveto TBL ([3e]) show %5 jlog 1 eq {%jlog=1 x00t y00t ydel 5 mul sub moveto (log [) bLs ((dY / Y)) jLs ( / ) bLs ((dY / Y)) jLs (u) ibLs (] = (-n) log) bLs (\050Y / Y) jLs (u) ibLs (\051) bLs x00e y00t ydel 5 mul sub moveto TBL ([3f]) show } if %jlog=1 } if %ifunc=1 special END CIELAB_C06 ifunc 2 eq ifunc 3 eq or {%ifunc=2,3 special BEG IECsRGB/TUBsRGB_C06 %2 x00t y00t ydel 2 mul sub moveto (dY / Y) jLs TBL ( = [ ) bLs (\050) bLs (Y) jLs (n) ibLs (/ \050 n s \051 ] ) bLs (\050Y / Y) jLs (n) ibLs (\051) bLs (1-n) ebLs ( / ) bLs (Y) jLs x00e y00t ydel 2 mul sub moveto TBL ([3c]) show %3 x00t y00t ydel 3 mul sub moveto ((dY / Y)) jLs (u) ibLs ( = [ ) bLs (\050) bLs (Y) jLs (n) ibLs (/ \050 n s \051 ] ) bLs (\050Y) jLs (u) ibLs ( / Y) jLs (n) ibLs (\051) bLs (1-n) ebLs ( / ) bLs (Y) jLs (u) ibLs x00e y00t ydel 3 mul sub moveto TBL ([3d]) show %4 x00t y00t ydel 4 mul sub moveto ((dY / Y)) jLs ( / ) bLs ((dY / Y)) jLs (u) ibLs ( = ) bLs (\050Y / Y) jLs (u) ibLs (\051) bLs (-n) ebLs x00e y00t ydel 4 mul sub moveto TBL ([3e]) show %5 jlog 1 eq {%jlog=1 x00t y00t ydel 5 mul sub moveto (log [) bLs ((dY / Y)) jLs ( / ) bLs ((dY / Y)) jLs (u) ibLs (] = (-n) log) bLs (\050Y / Y) jLs (u) ibLs (\051) bLs x00e y00t ydel 5 mul sub moveto TBL ([3f]) show } if %jlog=1 } if %ifunc=2,3 special END IECsRGB/TUBsRGB_C06 } bind def %END proc_dYDY_C06 %*************************************************** /proc_YDdY_C08 {%BEG proc_YDdY_C08 %for ifunc=1,2,3 CIELAB, IECsRGB, TUBsRGB %ioutC08 0/1:no or with output of equations in main program tfr %C08 /y00t 2990 def /ydel 0270 def prog_L*top %for ifunc=1,2,3 ifunc 0 eq {%ifunc=0 special BEG LABJND_C08 %2 x00t y00t ydel 2 mul sub moveto TBL (tristimulus value ) showen (Hellbezugswert\255) showde (Y) jLs TBL ( contrast) showen (\25Kontrast) showde %3 %Cr= (Y/dY)/(Yu/dYu) x00t y00t ydel 3 mul sub moveto (\050) bLs (Y/dY) jLs TBL (\051 / \050) show (Y) jLs (u) ibLs (dY) jLs (u) ibLs (\051) bLs %4 x00t 300 add y00t ydel 4 mul sub moveto TBL ( = [ ) show (Y) jLs TBL ( / \050) show TBL ( 1 + a) show ipK (Y) jLs TBL (\051 ]) show TBL ( / [ ) show (Y) jLs (u) ibLs TBL ( / \050) show TBL ( 1 + a) show ipK (Y) jLs (u) ibLs TBL (\051 ]) show x00e y00t ydel 4 mul sub moveto TBL ([4h]) show } if %ifunc=0 special END LABJND_C08 ifunc 1 eq {%ifunc=1 special BEG CIELAB_C08 %2 x00t y00t ydel 2 mul sub moveto (Y / dY) jLs ( = ) bLs (Y) jLs ( / { [ ) bLs (\050) bLs (Y) jLs (n) ibLs (/ \050 n s \051 ] ) bLs (\050Y / Y) jLs (n) ibLs (\051) bLs (1-n) ebLs ( }) bLs x00e y00t ydel 2 mul sub moveto TBL ([4c]) show %3 x00t y00t ydel 3 mul sub moveto ((Y / Y)) jLs (u) ibLs ( = ) bLs (Y) jLs (u) ibLs ( / { [ ) bLs (\050) bLs (Y) jLs (n) ibLs (/ \050 n s \051 ] ) bLs (\050Y) jLs (u) ibLs ( / Y) jLs (n) ibLs (\051) bLs (1-n) ebLs ( }) bLs x00e y00t ydel 3 mul sub moveto TBL ([4d]) show %4 x00t y00t ydel 4 mul sub moveto ((Y / dY)) jLs ( / ) bLs ((Y / dY)) jLs (u) ibLs ( = ) bLs (\050Y / Y) jLs (u) ibLs (\051) bLs (n) ebLs x00e y00t ydel 4 mul sub moveto TBL ([4e]) show %5 jlog 1 eq {%jlog=1 x00t y00t ydel 5 mul sub moveto (log [) bLs ((Y / dY)) jLs ( / ) bLs ((Y / dY)) jLs (u) ibLs (] = (n) log) bLs (\050Y / Y) jLs (u) ibLs (\051) bLs x00e y00t ydel 5 mul sub moveto TBL ([4f]) show } if %jlog=1 } if %ifunc=1 special END CIELAB_C08 ifunc 2 eq ifunc 3 eq or {%ifunc=2,3 special BEG IECsRGB/TUBsRGB_C08 %2 x00t y00t ydel 2 mul sub moveto (Y / dY) jLs ( = ) bLs (Y) jLs ( / { [ ) bLs (\050) bLs (Y) jLs (n) ibLs (/ \050 n s \051 ] ) bLs (\050Y / Y) jLs (n) ibLs (\051) bLs (1-n) ebLs ( }) bLs x00e y00t ydel 2 mul sub moveto TBL ([4c]) show %3 x00t y00t ydel 3 mul sub moveto ((Y / Y)) jLs (u) ibLs ( = ) bLs (Y) jLs (u) ibLs ( / { [ ) bLs (\050) bLs (Y) jLs (n) ibLs (/ \050 n s \051 ] ) bLs (\050Y) jLs (u) ibLs ( / Y) jLs (n) ibLs (\051) bLs (1-n) ebLs ( }) bLs x00e y00t ydel 3 mul sub moveto TBL ([4d]) show %4 x00t y00t ydel 4 mul sub moveto ((Y / dY)) jLs ( / ) bLs ((Y / dY)) jLs (u) ibLs ( = ) bLs (\050Y / Y) jLs (u) ibLs (\051) bLs (n) ebLs x00e y00t ydel 4 mul sub moveto TBL ([4e]) show %5 jlog 1 eq {%jlog=1 x00t y00t ydel 5 mul sub moveto (log [) bLs ((Y / dY)) jLs ( / ) bLs ((Y / dY)) jLs (u) ibLs (] = (n) log) bLs (\050Y / Y) jLs (u) ibLs (\051) bLs x00e y00t ydel 5 mul sub moveto TBL ([4f]) show } if %jlog=1 } if %ifunc=2,3 special END IECsRGB/TUBsRGB_C08 } bind def %END proc_YDdY_C08 %*************************************************** %%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 % 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 /cvishow0 {cvi 6 string cvs show} def /kchartl 0 def %0:left page, 1:right page /pchartl 4 def %0:top page, 4:down page %not used /jlog 1 def %0,1 without/with log 72 90 translate 0.010 MM dup scale /xbtex0 0 def %xbtex=0 for files Y1(0/1)-(3/7)n.EPS xbtex0 1 eq {%xbtex0=1 40 setlinewidth /ymax1 08550 def /xmax1 12250 def 1.0 setgray 0 0 moveto xmax1 0 rlineto 0 ymax1 rlineto xmax1 neg 0 rlineto closepath fill 0 setgray 0 0 moveto xmax1 0 rlineto 0 ymax1 rlineto xmax1 neg 0 rlineto closepath stroke TK 0 setgray 150 /Times-ISOL1 FS 150 -140 moveto (hgp00-7n) show } if %xbtex0=1 %for LABJND for general /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 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 /xpos [00000 00000 00000 00000] def /ypos [00000 00000 00000 00000] def /x00t 0400 def %xpos for BEG equations /x01t 1900 def %xpos for shift equations /x00e 5250 def %xpos for Num equations /xchartl 1 def %3 1 3 {/xchartl exch def %xchartl=0,3 /ifuncl 2 def 0 1 3 {/ifuncl exch def %ifuncl=0,3 /ifunc ifuncl def gsave 20 setlinewidth %xpos xchartl get ypos xchartl get translate xpos ifuncl get ypos ifuncl get translate 0 setgray 150 /Times-ISOL1 FS 150 -140 moveto (hgp0) show kchartl cvishow0 (-) show %xchartl 1 add pchartl add cvishow0 ifuncl 1 add pchartl add cvishow0 (a) show %a /xwidth 6000 def /ywidth 4000 def 25 setlinewidth 1 1 1 setrgbcolor 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 setlinewidth 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 20 setlinewidth 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke tfn %tfw /xtr0 380 def /ytr0 280 def xtr0 ytr0 translate %BEG C02, C04, C06, C08 ******************************************** %jlog 0:without log, 1:with log in main program ifunc 0 eq {/n 1 def} if %dummy ifunc 1 eq {/n 1 3.0 div def} if ifunc 2 eq {/n 1 2.4 div def} if ifunc 3 eq {/n 1 10 ln div def} if proc_toptext /y0del 100 def 50 setlinewidth %********************************************************************* /C02_ALOG_L*DL*u {%BEG C02_ALOG_L*DTu* /y0 2900 def /x1 800 def /y1 2700 def /xdel 800 def /ydel 300 def %for ifunc=0,1,2,3 LABJND, CIELAB, IECsRGB, TUBsRGB /ioutC02 1 def %0/1:no or with output of equations in main program ioutC02 1 eq {prog_L*DL*u_C02} if } def %END C02_ALOG_L*DL*u %********************************************************************* /C04_ALOG_DLn {%BEG C04_ALOG_DLn tfn %tfw /y0 2400 y0del sub def /ydel 300 def %C04 /x02t 0900 def /x03t 2300 def /x04t 3300 def %for ifunc=0,1,2,3 LABJND, CIELAB, IECsRGB, TUBsRGB /ioutC04 1 def %0/1:no or with output of equations in main program ioutC04 1 eq {proc_YDYu_C04} if } def %END C04_ALOG_DLn %********************************************************************* /C06_ALOG_DL_Ln {%BEG C06_ALOG_DL_Ln /y0 2400 y0del sub def /ydel 300 def %C06 /x02t 0900 def /x03t 2300 def /x04t 3300 def %for ifunc=0,1,2,3 LABJND, CIELAB, IECsRGB, TUBsRGB /ioutC06 1 def %0/1:no or with output of equations in main program ioutC06 1 eq {proc_dYDY_C06} if } def %END C06_ALOG_DL_Ln %********************************************************************* /C08_ALOG_L_DLn {%BEG C08_ALOG_L_DLn %C08 /y0 2400 y0del sub def /ydel 300 def %for ifunc=0,1,2,3 LABJND, CIELAB, IECsRGB, TUBsRGB /ioutC08 1 def %0/1:no or with output of equations in main program ioutC08 1 eq {proc_YDdY_C08} if } def %END C08_ALOG_L_DL %************************************************************** xchartl 00 eq {C02_ALOG_L*DL*u} if xchartl 01 eq {C04_ALOG_DLn} if xchartl 02 eq {C06_ALOG_DL_Ln} if xchartl 03 eq {C08_ALOG_L_DLn} if %END C01_C08********************************************** %******************************************************** xtr0 neg ytr0 neg translate %************************************************************** %xpos xchartl get neg ypos xchartl get neg translate xpos ifuncl get neg ypos ifuncl get neg translate grestore } for %ifuncl=0,3 %} for %xchartl=0,3 showpage grestore %%Trailer