%!PS-Adobe-3.0 EPSF-3.0 VG610-7N %%BoundingBox: 70 82 785 580 %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: http://130.149.60.45/~farbmetrik/VG61/) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://www.ps.bam.de or http://130.149.60.45/~farbmetrik) /Keywords (image reproduction, colour devices, colour vision) /Creator (klaus.richter@me.com) /CreationDate (D:2015020112000) /ModDate (D:2015020112000) /DOCINFO pdfmark07 [ /View [ /FitB ] /DOCVIEW pdfmark07 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def % !AUSTAUSCH Times-Roman -> Times-Roman-ISOLatin1=Times-I /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 %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 c m y k {setcmyk_olvcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmyk_olvcolor 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 {setcmykcolor rem fill} bind def /colremst %x y width heigth c m y k {setcmykcolor rem stroke} bind def /tzr {0.0 1.0 1.0 0.0} bind def %Reproduktionsfarben /tzg {1.0 0.0 1.0 0.0} bind def /tzb {1.0 1.0 0.0 0.0} bind def /tzc {1.0 0.0 0.0 0.0} bind def /tzm {0.0 1.0 0.0 0.0} bind def /tzy {0.0 0.0 1.0 0.0} bind def /tzn {0.0 0.0 0.0 1.00} bind def %Graureihe /tzd {0.0 0.0 0.0 0.75} bind def /tzz {0.0 0.0 0.0 0.50} bind def /tzh {0.0 0.0 0.0 0.25} bind def /tzw {0.0 0.0 0.0 0.00} bind def /tfr {0.0 1.0 1.0 0.0 setcmyk_olvcolor} bind def %Reproduktionsfarben /tfg {1.0 0.0 1.0 0.0 setcmyk_olvcolor} bind def /tfb {1.0 1.0 0.0 0.0 setcmyk_olvcolor} bind def /tfc {1.0 0.0 0.0 0.0 setcmyk_olvcolor} bind def /tfm {0.0 1.0 0.0 0.0 setcmyk_olvcolor} bind def /tfy {0.0 0.0 1.0 0.0 setcmyk_olvcolor} bind def /tfn {0.0 0.0 0.0 1.00 setcmyk_olvcolor} bind def %Graureihe /tfd {0.0 0.0 0.0 0.75 setcmyk_olvcolor} bind def /tfz {0.0 0.0 0.0 0.50 setcmyk_olvcolor} bind def /tfh {0.0 0.0 0.0 0.25 setcmyk_olvcolor} bind def /tfw {0.0 0.0 0.0 0.00 setcmyk_olvcolor} bind def /IXYZ0 357 array def %min 21x17 /IXYZ0 [%BEG IXYZ0 %Original file from CUI: one unit of power CIEDE2000.xlz %%XS YS ZS X0 Y0 Z0 X1 Y1 Z1 DV dE*ab DE*CH dE*CP dE*CP dE*00 DE*CP Code L* a* b* %143 0001000 1 1; constants in file, value not known 0095040 0100000 0108880 0001070 0001126 0001226 0001188 0001249 0001375 0001000 00930 00930 01000 01000 00600 01000 10110000 (10002_WN) 10 0 0 0095040 0100000 0108880 0001813 0001908 0002078 0001965 0002062 0002266 0001000 00840 00840 01000 01000 00600 01000 10110000 (15002_WN) 15 0 0 0095040 0100000 0108880 0002840 0002989 0003254 0003013 0003158 0003471 0001000 00730 00730 01000 01000 00600 01000 10110000 (20002_WN) 20 0 0 0095040 0100000 0108880 0004196 0004415 0004807 0004421 0004639 0005098 0001000 00740 00740 01000 01000 00600 01000 10110000 (25002_WN) 25 0 0 0095040 0100000 0108880 0005926 0006235 0006789 0006198 0006512 0007161 0001000 00730 00730 01000 01000 00600 01000 10110000 (30002_WN) 30 0 0 0095040 0100000 0108880 0008076 0008498 0009253 0008381 0008809 0009687 0001000 00690 00690 01000 01000 00600 01000 10110000 (35002_WN) 35 0 0 0095040 0100000 0108880 0010692 0011250 0012250 0011022 0011586 0012746 0001000 00650 00650 01000 01000 00600 01000 10110000 (40002_WN) 40 0 0 0095040 0100000 0108880 0013820 0014541 0015833 0014162 0014893 0016390 0001000 00620 00620 01000 01000 00600 01000 10110000 (45002_WN) 45 0 0 0095040 0100000 0108880 0017505 0018418 0020054 0017861 0018792 0020680 0001000 00600 00600 01000 01000 00600 01000 10110000 (50002_WN) 50 0 0 0095040 0100000 0108880 0021792 0022929 0024966 0022262 0023420 0025730 0001000 00620 00620 01000 01000 00600 01000 10110000 (55002_WN) 55 0 0 0095040 0100000 0108880 0026728 0028123 0030620 0027339 0028766 0031554 0001000 00660 00660 01000 01000 00600 01000 10110000 (60002_WN) 60 0 0 0095040 0100000 0108880 0032358 0034047 0037070 0033127 0034864 0038191 0001000 00700 00700 01000 01000 00600 01000 10110000 (65002_WN) 65 0 0 0095040 0100000 0108880 0038728 0040749 0044367 0039677 0041767 0045688 0001000 00750 00750 01000 01000 00600 01000 10110000 (70002_WN) 70 0 0 0095040 0100000 0108880 0045883 0048278 0052565 0047047 0049527 0054103 0001000 00800 00800 01000 01000 00600 01000 10110000 (75002_WN) 75 0 0 0095040 0100000 0108880 0053869 0056681 0061714 0055280 0058185 0063507 0001000 00850 00850 01000 01000 00600 01000 10110000 (80002_WN) 80 0 0 0095040 0100000 0108880 0062733 0066007 0071868 0064405 0067780 0073948 0001000 00900 00900 01000 01000 00600 01000 10110000 (85002_WN) 85 0 0 0095040 0100000 0108880 0072518 0076303 0083079 0074481 0078376 0085455 0001000 00960 00960 01000 01000 00600 01000 10110000 (90002_WN) 90 0 0 ] def %END IXYZ0 /IXYZ1 357 array def %min 21x17 /IXYZ1 [%BEG IXYZ1 %UE980-7T.TXT; output of ..-7R.PS with MACPS2PDF -> PS2ACII ON ME17GL 141121: ..-7R.log -> .TXT %%XS YS ZS X0 Y0 Z0 X1 Y1 Z1 DV dE*ab dE*CH dE*94 dE*CM dE*00 dE*85 no. Code L* a* b* % %CIEXYZ*1000 data for all colours (a), iim=309, Color difference data for \Delta E*LCH=\Delta E*CIELAB=CIELCH=1 % 0095040 0100000 0108880 0001070 0001126 0001226 0001199 0001262 0001373 0001000 01001 01001 01001 01959 00630 00852 18110000 (10009_WN) 10 0 0 % 0095040 0100000 0108880 0001813 0001908 0002078 0001996 0002100 0002286 0001000 01001 01001 01001 01960 00662 01004 18110001 (15009_WN) 15 0 0 % 0095040 0100000 0108880 0002840 0002989 0003254 0003085 0003246 0003534 0001000 01001 01001 01001 01507 00697 01099 18110002 (20009_WN) 20 0 0 % 0095040 0100000 0108880 0004196 0004415 0004807 0004512 0004747 0005168 0001000 01001 01001 01001 01264 00735 01143 18110003 (25002_WN) 25 0 0 % 0095040 0100000 0108880 0005926 0006235 0006789 0006322 0006652 0007243 0001000 01001 01001 01001 01101 00779 01149 18110004 (30002_WN) 30 0 0 % 0095040 0100000 0108880 0008076 0008498 0009253 0008562 0009009 0009809 0001000 01001 01001 01001 00985 00829 01130 18110005 (35002_WN) 35 0 0 % 0095040 0100000 0108880 0010692 0011250 0012250 0011277 0011865 0012919 0001000 01001 01001 01001 00897 00886 01096 18110006 (40002_WN) 40 0 0 % 0095040 0100000 0108880 0013820 0014541 0015833 0014512 0015269 0016625 0001000 01000 01000 01000 00830 00955 01055 18110007 (45002_WN) 45 0 0 % 0095040 0100000 0108880 0017505 0018418 0020054 0018313 0019269 0020980 0001000 01000 01000 01000 00775 00999 01010 18110008 (50002_WN) 50 0 0 % 0095040 0100000 0108880 0021792 0022929 0024966 0022727 0023913 0026036 0001000 01000 01000 01000 00731 00940 00965 18110009 (55002_WN) 55 0 0 % 0095040 0100000 0108880 0026728 0028123 0030620 0027798 0029249 0031846 0001000 01000 01000 01000 00694 00873 00920 18110010 (60002_WN) 60 0 0 % 0095040 0100000 0108880 0032358 0034047 0037070 0033572 0035324 0038461 0001000 01000 01000 01000 00662 00817 00878 18110011 (65002_WN) 65 0 0 % 0095040 0100000 0108880 0038728 0040749 0044367 0040096 0042188 0045934 0001000 01000 01000 01000 00636 00769 00838 18110012 (70002_WN) 70 0 0 % 0095040 0100000 0108880 0045883 0048278 0052565 0047413 0049888 0054318 0001000 01000 01000 01000 00612 00726 00800 18110013 (75002_WN) 75 0 0 % 0095040 0100000 0108880 0053869 0056681 0061714 0055571 0058472 0063664 0001000 01000 01000 01000 00592 00688 00765 18110014 (80002_WN) 80 0 0 % 0095040 0100000 0108880 0062733 0066007 0071868 0064615 0067988 0074025 0001000 01000 01000 01000 00574 00654 00732 18110015 (85002_WN) 85 0 0 % 0095040 0100000 0108880 0072518 0076303 0083079 0074591 0078484 0085453 0001000 01000 01000 01000 00558 00623 00702 18110016 (90002_WN) 90 0 0 % ] def %END IXYZ1 /IXYZ2 357 array def %min 21x17 /IXYZ2 [%BEG IXYZ2 %UE990-7T.TXT; output of ..-7R.PS with MACPS2PDF -> PS2ACII ON ME17GL 141121: ..-7R.log -> .TXT %%XS YS ZS X0 Y0 Z0 X1 Y1 Z1 DV dE*ab dE*CH dE*94 dE*CM dE*00 dE*85 no. Code L* a* b* % %CIEXYZ*1000 data for all colours (a), iim=309, Color difference data for \Delta E*C00=\Delta E*CIEDE2000=1 % 0095040 0100000 0108880 0001070 0001126 0001226 0001275 0001341 0001460 0001000 01554 01554 01554 03042 00981 01338 19110000 (10009_WN) 10 0 0 % 0095040 0100000 0108880 0001813 0001908 0002078 0002089 0002198 0002393 0001000 01489 01489 01489 02914 00987 01501 19110001 (15009_WN) 15 0 0 % 0095040 0100000 0108880 0002840 0002989 0003254 0003191 0003357 0003655 0001000 01420 01420 01420 02137 00990 01562 19110002 (20009_WN) 20 0 0 % 0095040 0100000 0108880 0004196 0004415 0004807 0004625 0004866 0005298 0001000 01349 01349 01349 01703 00993 01541 19110003 (25002_WN) 25 0 0 % 0095040 0100000 0108880 0005926 0006235 0006789 0006434 0006770 0007371 0001000 01277 01277 01277 01404 00995 01465 19110004 (30002_WN) 30 0 0 % 0095040 0100000 0108880 0008076 0008498 0009253 0008662 0009114 0009923 0001000 01202 01202 01202 01183 00997 01357 19110005 (35002_WN) 35 0 0 % 0095040 0100000 0108880 0010692 0011250 0012250 0011351 0011943 0013004 0001000 01126 01126 01126 01010 00998 01233 19110006 (40002_WN) 40 0 0 % 0095040 0100000 0108880 0013820 0014541 0015833 0014544 0015303 0016662 0001000 01046 01046 01046 00868 00999 01103 19110007 (45002_WN) 45 0 0 % 0095040 0100000 0108880 0017505 0018418 0020054 0018313 0019269 0020980 0001000 01000 01000 01000 00775 00999 01010 19110008 (50002_WN) 50 0 0 % 0095040 0100000 0108880 0021792 0022929 0024966 0022786 0023975 0026104 0001000 01063 01063 01063 00777 00998 01025 19110009 (55002_WN) 55 0 0 % 0095040 0100000 0108880 0026728 0028123 0030620 0027952 0029411 0032023 0001000 01142 01142 01142 00793 00997 01051 19110010 (60002_WN) 60 0 0 % 0095040 0100000 0108880 0032358 0034047 0037070 0033843 0035609 0038771 0001000 01220 01220 01220 00808 00995 01070 19110011 (65002_WN) 65 0 0 % 0095040 0100000 0108880 0038728 0040749 0044367 0040506 0042620 0046404 0001000 01296 01296 01296 00824 00994 01084 19110012 (70002_WN) 70 0 0 % 0095040 0100000 0108880 0045883 0048278 0052565 0047989 0050493 0054977 0001000 01371 01371 01371 00839 00993 01095 19110013 (75002_WN) 75 0 0 % 0095040 0100000 0108880 0053869 0056681 0061714 0056341 0059281 0064545 0001000 01446 01446 01446 00856 00993 01104 19110014 (80002_WN) 80 0 0 % 0095040 0100000 0108880 0062733 0066007 0071868 0065609 0069033 0075163 0001000 01520 01520 01520 00873 00992 01111 19110015 (85002_WN) 85 0 0 % 0095040 0100000 0108880 0072518 0076303 0083079 0075842 0079800 0086886 0001000 01594 01594 01594 00890 00991 01116 19110016 (90002_WN) 90 0 0 % ] def %END IXYZ2 /Yi 404 array def %101(W)+3*101(R,G,B) /dYi 404 array def /L*i 404 array def /L*iW 404 array def %needed? /L*iR 404 array def /L*iG 404 array def /L*iB 404 array def /YnW 100 def %CIELAB /YnR 21 def /YnG 72 def /YnB 07 def /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 /MULX 1000 def /MULY 1000 def /econst 2.71828182 def /W2 2 sqrt def /FL 0.0001 def /ioutc 0 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 tfw %2. log line = +1 line tfg -2. MULX mul 10. log MULY mul moveto 0. MULX mul 10. log MULY mul lineto stroke tfw } bind def %cero line %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 18 def %************************************************* /Yi_L*i_dYi_C_0 {%BEG Yi_L*i_dYi_C_0 C=CIELAB 0 1 100 {/i exch def %i=0,100 /ik i k 101 mul add def k 0 eq {1 1 1 setrgbcolor Yi ik i YnW mul 100. div put L*i ik Yi ik get YnW div e10D30 exp 116 mul 16 sub put dYi ik Yi ik get YnW div e20D30 exp c30 mul 100 mul 116 div put } if k 1 eq {1 0 0 setrgbcolor Yi ik i YnR mul 100. div put L*i ik Yi ik get YnR div e10D30 exp 116 mul 16 sub put dYi ik Yi ik get YnR div e20D30 exp c30 mul 100 mul 116 div put } if k 2 eq {0 1 0 setrgbcolor Yi ik i YnG mul 100. div put L*i ik Yi ik get YnG div e10D30 exp 116 mul 16 sub put dYi ik Yi ik get YnG div e20D30 exp c30 mul 100 mul 116 div put } if k 3 eq {0 0 1 setrgbcolor Yi ik i YnB mul 100. div put L*i ik Yi ik get YnB div e10D30 exp 116 mul 16 sub put dYi ik Yi ik get YnB div e20D30 exp c30 mul 100 mul 116 div put } if } for %i=0,100 } bind def %END Yi_L*i_dYi_C_0 C=CIELAB %*************************************************** /Yi_L*i_dYi_S_0 {%BEG Yi_L*i_dYi_S_0 S=LINYAB /ee 2.7182818 def /ALOG10E ee log def /B11 -2 def /B21 1 def /B12 1. def /B22 1.4 def /W2 2 sqrt def /YU 18 def /CL 1. def /CM 1. def /ALOGYU YU log def /B31 YU def /B32 YU def % % q1=1.+1./(1+W2*HI) % Qlm=l/ln(W2)*q1-m % 1 2 3 3 21 %% HI1=10**(ALOG10E*B21*(ALOG10(YI)-B31)) % HI1=(YI/YU)**(ALOG10E*B21) % Q11=1.+1./(1+W2*HI1) % VI1=B11*(CL/ALOG(W2)*ALOG(Q11)-CM) % %% HI2=10**(ALOG10E*B22*(ALOG10(YI)-B32)) % HI2=(YI/YU)**ALOG10E*B22 % Q12=1.+1./(1+W2*HI2) % VI2=B12*(CL/ALOG(W2)*ALOG(Q12)-CM) % % dQ/dz=d(1./[1+W2*z])/dz (z=(YI/YU)**k, k=ALOG10E*B21) % =(-1)*[1+W2*z]**(-2)*W2 % dz/dY=k*(YI/YU)**(k-1)*(1/YU) % % R*=Reponse functions normalized, page 122, picture 4-52 1 1 100 {/i exch def %i=0,100 /ik i k 101 mul add def Yi ik i YnW mul 100. div put /Yilog Yi ik get log def /K1 ALOG10E B21 mul def /HI1 Yi ik get B31 div K1 exp def /Q11 1. W2 HI1 mul 1 add div 1 add def /VI1 CL W2 ln div Q11 ln mul CM sub B11 mul def /dQ11dHI1 W2 HI1 mul 1 add -2. exp -1. mul W2 mul def /dHI1dY Yi ik get B31 div K1 1 sub exp K1 mul B31 div def /dQ11dY dQ11dHI1 dHI1dY mul def /K2 ALOG10E B22 mul def /HI2 Yi ik get B32 div K2 exp def /Q12 1. W2 HI2 mul 1 add div 1 add def /VI2 CL W2 ln div Q12 ln mul CM sub B12 mul def /dQ12dHI2 W2 HI2 mul 1 add -2. exp -1. mul W2 mul def /dHI2dY Yi ik get B32 div K2 1 sub exp K2 mul B32 div def /dQ12dY dQ12dHI2 dHI2dY mul -1 mul def /ioutx 0 def ioutx 1 eq {%ioutx=1 TS -2000 3700 i 040 mul sub moveto i i 3 idiv 3 mul eq { Yi ik get cvsshow2 (, ) show Yilog cvsshow2 (, ) show HI1 cvsshow2 (, ) show Q11 cvsshow2 (, ) show VI1 cvsshow2 (, ) show 1. dQ11dY div cvsshow2 1. dQ12dY div cvsshow2 } if } if %ioutx=1 L*i 0 L*i 1 get put k 0 eq {1 1 1 setrgbcolor L*i ik 10 VI1 exp 100 mul put dYi ik 1. dQ11dY div abs 100 div put } if k 1 eq {0 0 0 setrgbcolor L*i ik 10 VI2 exp 100 mul put dYi ik 1. dQ12dY div abs 100 div put } if k 2 eq {0 1 0 setrgbcolor L*i ik 10 VI1 VI2 add exp 100 mul put % dYi ik 1. L*i ik get % ik 2 ge {%ik>=2 % L*i ik 1 sub get sub FL add div put % } % { % L*i ik get 0.5 mul sub FL add div put % } ifelse % dYi ik 1. dQ11dY div 1 dQ12dY div add abs 100 div put } if } for %i=0,100 } bind def %END Yi_L*i_dYi_S_0 S=LINYAB %%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 5 /Times-ISOL1 FS 175 85 moveto (VG610-7N) show %xchart 0 eq {(R) show} % {deintp colorm 2 mul add cvishow} ifelse 72 90 translate 0.01 MM dup scale 40 setlinewidth 20 setlinewidth 0 0 25000 17100 0.0 0.0 0.0 0.0 colrecfi %area white grey 0 0 25000 17100 0.0 0.0 0.0 1.0 colrecst %Rahmen Schwarz /xchartl xchart def 0 1 15 {/xchartl exch def %xchartl=0,15 gsave xchartl 0 eq { 100 13000 translate} if xchartl 1 eq { 6100 13000 translate} if xchartl 2 eq { 100 08750 translate} if xchartl 3 eq { 6100 08750 translate} if xchartl 4 eq { 100 4500 translate} if xchartl 5 eq { 6100 4500 translate} if xchartl 6 eq { 100 0250 translate} if xchartl 7 eq { 6100 0250 translate} if xchartl 8 eq {13500 13000 translate} if xchartl 9 eq {19500 13000 translate} if xchartl 10 eq {13500 08750 translate} if xchartl 11 eq {19500 08750 translate} if xchartl 12 eq {13500 4500 translate} if xchartl 13 eq {19500 4500 translate} if xchartl 14 eq {13500 0250 translate} if xchartl 15 eq {19500 0250 translate} if 150 /Times-ISOL1 FS 0 setgray 300 -150 moveto xchartl 7 le {(VG610-) show} {(VG611-) show} ifelse xchartl 0 ge xchartl 7 le and {xchartl 1 add cvishow} if xchartl 8 ge xchartl 15 le and {xchartl 7 sub cvishow} if (N) show %N (_) show xchart 1 add cvishow /xwidth 5400 def /ywidth 4000 def 0.0 0.0 0.0 0.5 setcmykcolor 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 0 xwidth ywidth 0.0 0.0 0.0 1.0 colrecst %frame black tfw /xtr0 680 def /ytr0 280 def xtr0 ytr0 translate 50 setlinewidth 0 0 moveto 4500 0 rlineto stroke 0 0 moveto 0 3000 rlineto stroke 40 setlinewidth /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 %********************************************************************* 40 setlinewidth tfn 0 0 moveto 4000 250 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 4000 250 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /tx [(-2) (-1) ( 0) ( 1) ( 2)] def /txl [( ) (0,1) ( 1) ( 10) (100)] def %!x-Achse: 100 Einheiten = 0600 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1000 mul add} def /ixl { 000 i 1000 mul add} def ixt -250 moveto tx i get exec show i 1 ge {ixt 100 moveto txl i get exec show} if ixl 60 moveto 0 -120 rlineto stroke } for tfw 3300 100 moveto TBIL (Y) show (u) ibLs TBL (=18) show tfn /ixtt 4 1000 mul def /iytt -200 def ixtt 200 add iytt moveto TBL (log\050) show TBIL (Y) show TBL (\051) show /iytt 050 def ixtt 200 add iytt moveto TBIL (Y) show tfw 2000 0 moveto 1900 0 rlineto stroke tfg [100] 0 setdash 2000 0 moveto 1900 0 rlineto stroke [ ] 0 setdash tfn %!y-Achse: 100 S-Einheiten = 1000 Skalen-Einheiten /j1y 1 def %default /j2y 4 def xchartl 0 eq xchartl 10 eq or {/j1y 2 def /j2y 5 def} if xchartl 4 eq xchartl 12 eq or {/j1y 0 def /j2y 3 def} if xchartl 7 eq xchartl 15 eq or {/j1y 0 def /j2y 3 def} if TBL %yshift -1000 0 1000 2000 3000 4000 /ty [( -2)( -1) ( 0) ( 1) ( 2) ( 3)] def /tyl[(0,01)(0,1) (1) (10) (100) (1000) ] 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 -370 jyt moveto ty j get show j j1y 1 add ge {050 jyt moveto tyl j get show} if -60 jyl moveto 120 0 rlineto stroke } for %******************************************************** %BEG C01_C08 ******************************************** 20 setlinewidth tfw 050 xtr0 sub 3725 ytr0 sub moveto xchartl 00 eq {%xchartl=00 TBM (log \050) show TBIM (L*) show TBM (\051 ) show (CIELAB lightness) showen (CIELAB Helligkeit) showde } if %xchartl=00 xchartl 01 eq {%xchartl=01 TBM (log \050) show TBIM (L*/L*) show (u) ibMs TBM (\051 ) show (CIELAB lightness) showen (CIELAB Helligkeit) showde } if %xchartl=01 xchartl 02 eq {%xchartl=02 TBM (log ) show SM (D) show 20 0 rmoveto TBIM (Y ) show TBM (CIE tristimulus value difference) showen (CIE\255Normfarbwertdifferenz) showde } if %xchartl=02 xchartl 03 eq {%xchartl=03 TBM (log\050) show SM (D) show 20 0 rmoveto TBIM (Y) show TBM (/) show SM (D) show TBIM (Y) show (u) ibMs TBM (\051 ) show (CIE tristimulus difference) showen (CIE\255Normfarbdifferenz) showde } if %xchartl=03 xchartl 04 eq {%xchartl=04 TBM (log \050) show SM (D) show TBIM (Y/Y\051 ) show TBM (CIE tristimulus values) showen (CIE\255Normfarbwerte) showde } if %xchartl=04 xchartl 05 eq {%xchartl=05 TBM (log [\050) show SM (D) show TBIM (Y/Y) show TBM (\051 / \050) show SM (D) show TBIM (Y) show (u) ibMs TBM (/) show TBIM (Y) show (u) ibMs TBM (\051] ) show (CIE values) showen (CIE\255Normfarbwerte) showde } if %xchartl=05 xchartl 06 eq {%xchartl=06 TBM (log \050) show TBIM (Y/) show SM (D) show TBIM (Y) show TBM (\051 ) show (CIE contrast) showen (CIE\255Kontrast) showde } if %xchartl=06 xchartl 07 eq {%xchartl=07 TBM (log [\050) show TBIM (Y/) show SM (D) show TBIM (Y) show (\051 / \050) show TBIM (Y) show (u) ibMs TBM (/) show SM (D) show TBIM (Y) show (u) ibMs TBM (\051] ) show (CIE contrast) showen (CIE\255Kontrast) showde } if %xchartl=07 %********************************************************************* /C01_ALOG_T* {%BEG C01_ALOG_T* /Fx0log -2.0 def /Fy0log 0.0 def /xtr 2000 def /ytr 0000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point 0 1 0 {/k exch def %k=0,0:W,R,G,B Yi_L*i_dYi_C_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul L*i ik get log 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 k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 L*i iu get log MULY mul 100 add moveto TBL (log) show TBIL (\050L*) show (u) ibLs TBL (\051=) show L*i iu get log cvsshow2 /FY20 L*i 20 get def /FYiu L*i iu get def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point } if %k=0 } for %k=0,0 [100] 0 setdash Fx0log MULX mul L*u log MULY mul moveto iu log MULX mul L*u log MULY mul lineto iu log MULX mul Fy0log MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %old cero point tfw /Y001DYu L*i 1 get def /Y100DYu L*i 100 get def 0 Y001DYu log MULY mul moveto %1 add because y-cero point=+1000 0 Y100DYu log MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log MULY mul moveto 0 Y100DYu log MULY mul lineto stroke [ ] 0 setdash tfw %/L*D L*i iu get def %0300 L*D log MULY mul 100 add moveto %TBL (log[) show TBIL (L*) show (u) ibLs TBL (]) show %TBL (=) show L*D log cvsshow2 %TBL TBIL (, L*) show (u) ibLs %TBL (=) show L*u cvishow /x0 0500 def /y0 3000 def /x1 800 def /y1 3000 def /xdel 800 def /ydel 300 def x0 y0 moveto TBL (CIELAB lightness for all colours) showen (CIELAB\255Helligkeit f\374r alle Farben) showde TBIL (, L*) show (W) ibLs TBL (=100:) show %L*= 116(Y/Yn)**(1/3)-16 x1 y0 0.9 ydel mul sub moveto TBIL (L*) show TBL ( = 116 \050) show TBIL (Y/Y) show (n) ibLs TBL (\051) show (1/3) ebLs TBL ( - 16) show TBL ( \050) show TBIL (Y) show (n) ibLs TBL (=100, ) show TBIL ( Y ) show TBL (> 1\051) show tfw /x0 3600 def /y0 0850 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END C01_ALOG_T* %********************************************************************* /C02_ALOG_T*DT*u {%BEG C02_ALOG_T*DTu* /Fx0log -2.0 def /Fy0log -1.0 def /xtr 2000 def /ytr 1000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point 0 1 0 {/k exch def %k=0,0:W,R,G,B Yi_L*i_dYi_C_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul L*i ik get L*u div log 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 k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 ytr 100 add moveto TBL (log[) show TBIL ((L*)) show TBL (/\050) show TBIL (L*) show (u) ibLs TBL (\051]) show TBL (=0) show /FY20 L*i 20 get L*i iu get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point } if %k=0 } for %k=0,0 /i1 18 def [100] 0 setdash Fx0log MULX mul L*i i1 get L*u div log MULY mul moveto i1 log MULX mul L*i i1 get L*u div log MULY mul lineto i1 log MULX mul Fy0log MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %old cero point tfw /Y001DYu L*i 1 get L*i i1 get div def /Y100DYu L*i 100 get L*i i1 get div def 0 Y001DYu log ytrl add MULY mul moveto %1 add because y-cero point=+1000 0 Y100DYu log ytrl add MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log ytrl add MULY mul moveto 0 Y100DYu log ytrl add MULY mul lineto stroke [ ] 0 setdash tfw /x0 0500 def /y0 2700 def /x1 800 def /y1 2700 def /xdel 800 def /ydel 300 def x0 y0 ydel add moveto (relative normalized CIELAB data) showen (relative normierte CIELAB\255Daten) showde x0 y0 moveto TBL (CIELAB lightness for all colours) showen (CIELAB\255Helligkeit f\374r alle Farben) showde TBIL (, L*) show (W) ibLs TBL (=100:) show %L*= 116(Y/Yn)**(1/3)-16 x1 y0 0.9 ydel mul sub moveto TBIL (L*) show TBL ( = 116 \050) show TBIL (Y/Y) show (n) ibLs TBL (\051) show (1/3) ebLs TBL ( - 16) show TBL ( \050) show TBIL (Y) show (n) ibLs TBL (=100, ) show TBIL ( Y ) show TBL (> 1\051) show tfw /x0 3600 def /y0 0850 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END C02_ALOG_T*DT*u %********************************************************************* /C03_ALOG_DL {%BEG C03_ALOG_DL /xtr 2000 def /ytr 1000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point %L*=116*(Y/100)**(1/3)-16. %delta_L*/delta_Y=116*(1/3)*(Y/100)**(-2/3)*(1/100) %delta_Y=1/[116*(1/3)*(Y/100)**(-2/3)*(1/100)]=3*100/116*(Y/100)**(2/3) %delta_Y=3*100/116*(Y/Yn)**(2/3) 0 1 0 {/k exch def %k=0,0:W,R,G,B Yi_L*i_dYi_C_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul dYi ik get log 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 k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 ytr 100 add moveto TBL (log) show TBIL ((dY)) show TBL (=) show dYi iu get cvsshow2 /FY20 dYi 20 get def /FYiu dYi iu get def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point } if %k=0 } for %k=0,0 tfw [100] 0 setdash /rYdY dYi iu get def -2. MULX mul rYdY log MULY mul moveto iu log MULX mul rYdY log MULY mul lineto iu log MULX mul -1. MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %old cero point tfw /Y001DYu dYi 1 get def /Y100DYu dYi 100 get def 0 Y001DYu log ytrl add MULY mul moveto %1 add because y-cero point=+1000 0 Y100DYu log ytrl add MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log ytrl add MULY mul moveto 0 Y100DYu log ytrl add MULY mul lineto stroke [ ] 0 setdash /x0 0500 def /y0 2800 def /ydel 300 def tfw x0 y0 moveto %L*= 116(Y/Yn)**(1/3)-16 TBIL (L*) show TBL ( = 116 \050) show TBIL (Y/Y) show (n) ibLs TBL (\051) show (1/3) ebLs TBL ( - 16) show x0 y0 ydel 1 mul sub moveto TBL (log) show TBIL ((dY)) show x0 600 add y0 ydel 1 mul sub moveto TBL ( = log\050 3 \050) show TBIL (Y) show (n) ibLs TBL(/116\051 \051) show TBL ( + (2/3) log\050) show TBIL (Y/Y) show (n) ibLs TBL (\051) show x0 600 add y0 ydel 2 mul sub moveto TBL ( = log\0503\050) show TBIL (Y) show (n) ibLs (1/3) ebLs TBL(\051/116\051) show TBL ( + (2/3) log\050) show TBIL (Y) show TBL (\051) show tfw /x0 3600 def /y0 0850 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END C03_ALOG_DL %********************************************************************* /C04_ALOG_DLn {%BEG C04_ALOG_DLn /xtr 2000 def /ytr 1000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point %L*=116*(Y/100)**(1/3)-16. %delta_L*/delta_Y=116*(1/3)*(Y/100)**(-2/3)*(1/100) %delta_Y=1/[116*(1/3)*(Y/100)**(-2/3)*(1/100)]=3*100/116*(Y/100)**(2/3) %delta_Y=3*100/116*(Y/Yn)**(2/3) 0 1 0 {/k exch def %k=0,0:W,R,G,B Yi_L*i_dYi_C_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul dYi ik get dYu div log 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 k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 ytr 100 add moveto TBL (log[) show TBIL ((dY)) show TBL (/\050) show TBIL (dY) show (u) ibLs TBL (\051]) show TBL (=0) show /FY20 dYi 20 get dYi iu get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point } if %k=0 } for %k=0,0 tfw [100] 0 setdash /rYdY 1. def -2. MULX mul rYdY log MULY mul moveto iu log MULX mul rYdY log MULY mul lineto iu log MULX mul -1. MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %new cero point tfw /Y001DYu dYi 1 get dYu div def /Y100DYu dYi 100 get dYu div def 0 Y001DYu log ytrl add MULY mul moveto %1 add because y-cero point=+1000 0 Y100DYu log ytrl add MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log ytrl add MULY mul moveto 0 Y100DYu log ytrl add MULY mul lineto stroke [ ] 0 setdash tfw /x0 0500 def /y0 2500 def /ydel 300 def x0 y0 ydel add moveto (relative normalized CIELAB data) showen (relative normierte CIELAB\255Daten) showde tfw x0 y0 moveto %L*= 116(Y/Yn)**(1/3)-16 TBIL (L*) show TBL ( = 116 \050) show TBIL (Y/Y) show (n) ibLs TBL (\051) show (1/3) ebLs TBL ( - 16) show x0 y0 ydel 1 mul sub moveto TBL (log) show TBIL ((dY)) show x0 600 add y0 ydel 1 mul sub moveto TBL ( = log\050 3 \050) show TBIL (Y) show (n) ibLs TBL(/116\051 \051) show TBL ( + (2/3) log\050) show TBIL (Y/Y) show (n) ibLs TBL (\051) show x0 600 add y0 ydel 2 mul sub moveto TBL ( = log\0503\050) show TBIL (Y) show (n) ibLs (1/3) ebLs TBL(\051/116\051) show TBL ( + (2/3) log\050) show TBIL (Y) show TBL (\051) show tfw /x0 3600 def /y0 0850 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END C04_ALOG_DLn %********************************************************************* /C05_ALOG_DL_L {%BEG C05_ALOG_DL_L /xtr 2000 def /ytr 2000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point %L*=116*(Y/100)**(1/3)-16. %delta_L*/delta_Y=116*(1/3)*(Y/100)**(-2/3)*(1/100) %delta_Y=1/[116*(1/3)*(Y/100)**(-2/3)*(1/100)]=3*100/116*(Y/100)**(2/3) %delta_Y=3*100/116*(Y/Yn)**(2/3) 0 1 0 {/k exch def %k=0,0:W,R,G,B Yi_L*i_dYi_C_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul dYi i get Yi i get div log 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 k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 dYi iu get Yi iu get div log 2 add MULY mul 100 add 350 sub moveto %under line TBL (log[) show TBIL ((dY)) show TBL (/) show TBIL (Y) show TBL (]) show TBL (=) show dYi iu get Yi iu get div log cvsshow2 /FY20 dYi 20 get Yi 20 get div def /FYiu dYi iu get Yi iu get div def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point } if %k=0 } for %k=0,0 tfw /i1 18 def [100] 0 setdash /rYdY dYi i1 get Yi i1 get div def -2. MULX mul rYdY log MULY mul moveto i1 log MULX mul rYdY log MULY mul lineto i1 log MULX mul -2. MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %old cero point tfw /Y001DYu dYi 1 get Yi 1 get div def /Y100DYu dYi 100 get Yi 100 get div def 0 Y001DYu log 2 add MULY mul moveto %1 add because y-cero point=+2000 0 Y100DYu log 2 add MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log 2 add MULY mul moveto 0 Y100DYu log 2 add MULY mul lineto stroke [ ] 0 setdash tfw /x0 0800 def /y0 2800 def /ydel 300 def x0 y0 moveto TBL (CIELAB sensitivity:) showen (CIELAB Empfindlichkeit:) showde %log[(dY/Y)] x0 y0 0.9 ydel mul sub moveto TBL (log[\050) show SL (D) show TBIL (Y/Y) show TBL (\051 = log\0503 \050) show TBIL (Y) show (n) ibLs (1/3) ebLs TBL (\051/116\051) show TBL ( - (1/3) log) show TBIL (Y) show tfw /x0 3600 def /y0 1550 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END C05_ALOG_DL_L %********************************************************************* /C06_ALOG_DL_Ln {%BEG C06_ALOG_DL_Ln /xtr 2000 def /ytr 1000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point %L*=116*(Y/100)**(1/3)-16. %delta_L*/delta_Y=116*(1/3)*(Y/100)**(-2/3)*(1/100) %delta_Y=1/[116*(1/3)*(Y/100)**(-2/3)*(1/100)]=3*100/116*(Y/100)**(2/3) %delta_Y=3*100/116*(Y/Yn)**(2/3) 0 1 0 {/k exch def %k=0,0:W,R,G,B Yi_L*i_dYi_C_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul dYi ik get Yi ik get div dYu Yu div div log 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 k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 ytr 100 add 350 sub 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 /FY20 dYi 20 get Yi 20 get div dYi iu get Yi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point } if %k=0 } for %k=0,0 tfw /i1 18 def [100] 0 setdash /rYdY Yi i1 get dYi i1 get div Yu dYu div div e10D30 exp def -2. MULX mul rYdY log MULY mul moveto iu log MULX mul rYdY log MULY mul lineto iu log MULX mul -1. MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %old cero point tfw /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 0 Y001DYu log ytrl add MULY mul moveto %1 add because y-cero point=+1000 0 Y100DYu log ytrl add MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log ytrl add MULY mul moveto 0 Y100DYu log ytrl add MULY mul lineto stroke [ ] 0 setdash tfw /x0 0800 def /y0 3000 def /ydel 300 def x0 y0 moveto (relative normalized CIELAB sensitivity) showen (relative normierte CIELAB\255Empfindlichkeit) showde %Cr= log[(Y/dY)/(Yu/dYu)] x0 y0 0.9 ydel mul sub moveto TBL (log[\050) show SL (D) show TBIL (Y/Y) show TBL (\051/\050) show SL (D) show TBIL (Y) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051] ) show TBL ( = log\050) show TBIL (Y) show TBL (/) show TBIL (Y) show (u) ibLs TBL (\051) show (-1/3) ebLs tfw /x0 3600 def /y0 1600 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END C06_ALOG_DL_Ln %********************************************************************* /C07_ALOG_L_DL {%BEG C07_ALOG_L_DL /xtr 2000 def /ytr 1000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point %L*=116*(Y/100)**(1/3)-16. %delta_L*/delta_Y=116*(1/3)*(Y/100)**(-2/3)*(1/100) %delta_Y=1/[116*(1/3)*(Y/100)**(-2/3)*(1/100)]=3*100/116*(Y/100)**(2/3) %delta_Y=3*100/116*(Y/Yn)**(2/3) 0 1 0 {/k exch def %k=0,0:W,R,G,B Yi_L*i_dYi_C_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul Yi ik get dYi ik get div log 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 k 0 eq {%k=0 xtr neg ytr neg translate %new cero point tfw 0400 Yi iu get dYi iu get div log ytrl add MULY mul 100 add moveto TBL (log\050) show TBIL (Y/dY) show TBL (\051) show TBL (=) show Yi iu get dYi iu get div log cvsshow2 /FY20 Yi 20 get dYi 20 get div def /FYiu Yi iu get dYi iu get div def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point } if %k=0 } for %k=0,0 tfw /i1 18 def [100] 0 setdash /rYdY Yi i1 get dYi i1 get div def -2. MULX mul rYdY log MULY mul moveto i1 log MULX mul rYdY log MULY mul lineto i1 log MULX mul -1. MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %old cero point tfw /Y001DYu Yi 1 get dYi 1 get div def /Y100DYu Yi 100 get dYi 100 get div def 0 Y001DYu log MULY mul moveto %1 add because y-cero point=+1000 0 Y100DYu log MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log MULY mul moveto 0 Y100DYu log MULY mul lineto stroke [ ] 0 setdash tfw /x0 0400 def /y0 3000 def /ydel 300 def x0 y0 moveto TBL (log) show TBIL ((Y/dY)) show x0 750 add y0 moveto TBL ( = log[\0501/3\051) show TBL ( \050116/) show TBIL (Y) show (n) ibLs TBL (\051]) show TBL ( + (1/3) log\050) show TBIL (Y/Y) show (n) ibLs TBL (\051) show x0 750 add y0 ydel 1 mul sub moveto TBL ( = log[(1/3) \050116/\050) show TBIL (Y) show (n) ibLs (1/3) ebLs TBL (\051]) show TBL ( + (1/3) log\050) show TBIL (Y) show TBL (\051) show tfw /x0 3600 def /y0 0850 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END C07_ALOG_L_DL %********************************************************************* /C08_ALOG_L_DLn {%BEG C08_ALOG_L_DLn /xtr 2000 def /ytr 2000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point %L*=116*(Y/100)**(1/3)-16. %delta_L*/delta_Y=116*(1/3)*(Y/100)**(-2/3)*(1/100) %delta_Y=1/[116*(1/3)*(Y/100)**(-2/3)*(1/100)]=3*100/116*(Y/100)**(2/3) %delta_Y=3*100/116*(Y/Yn)**(2/3) 0 1 0 {/k exch def %k=0,0:W,R,G,B Yi_L*i_dYi_C_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul Yi ik get dYi ik get div Yu dYu div div log 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 k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 ytr 100 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 /FY20 Yi 20 get dYi 20 get div Yi iu get dYi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point } if %k=0 } for %k=0,0 tfw [100] 0 setdash /rYdY 1 def -2. MULX mul rYdY log MULY mul moveto iu log MULX mul rYdY log MULY mul lineto iu log MULX mul -1. MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %old cero point tfw /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 0 Y001DYu log ytrl add MULY mul moveto %log-shift=1 for ytr=+1000 0 Y100DYu log ytrl add MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log ytrl add MULY mul moveto 0 Y100DYu log ytrl add MULY mul lineto stroke [ ] 0 setdash /x0 0400 def /y0 3000 def /ydel 300 def tfw x0 y0 moveto (relative normalized CIELAB contrast sensitivity) showen (relative normierte CIELAB\255Kontrastempfindlichkeit) showde %Cr= log[(Y/dY)/(Yu/dYu)] x0 y0 0.9 ydel mul sub moveto TBL (log[\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 TBL ( = log\050) show TBIL (Y/Y) show (u) ibLs TBL (\051) show (1/3) ebLs x0 y0 1.9 ydel mul sub moveto TBIL (L*) show (u) ibLs TBL (=) show L*u cvishow TBIL (, Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2 tfw /x0 3600 def /y0 0850 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END C08_ALOG_L_DL %**************************************************************** xchartl 00 eq {-650 3200 moveto TBL (log\050) show TBIL (L*) show TBL (\051) show 100 3200 moveto TBIL (L*) show } if xchartl 01 eq {100 3200 moveto TBIL (L*/L*) show (u) ibLs } if xchartl 02 eq {-650 3200 moveto TBL (log\050) show SL (D) show TBIL (Y) show TBL (\051) show 100 3200 moveto SL (D) show TBIL (Y) show } if xchartl 03 eq {100 3200 moveto SL (D) show TBIL (Y) show TBL (/) show SL (D) show TBIL (Y) show (u) ibLs } if xchartl 04 eq {-650 3200 moveto TBL (log\050) show TBIL (S) show (r) ibLs TBL (\051) show 100 3200 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 moveto TBIL (S) show (r) ibLs TBL (/) show TBIL (S) show (ru) ibLs TBL (=\050) show SL (D) show TBIL (Y/Y) show TBL (/) show SL (D) show TBIL (Y/Y) show (u) ibLs TBL (\051) show } if xchartl 06 eq {-650 3200 moveto TBL (log\050) show TBIL (C) show (r) ibLs TBL (\051) show 100 3200 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 {-650 3200 moveto TBL (log\050) show TBIL (C) show (r) ibLs TBL (\051) show 100 3200 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 %************************************************************** xchartl 00 eq {C01_ALOG_T*} if xchartl 01 eq {C02_ALOG_T*DT*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 %END C01_C08********************************************** %******************************************************** %BEG S01_S08 ******************************************** %xchartl=00_07 -> xchartp=00_07 xchartl 8 ge {%xchartl>=8 /xchartp xchartl 8 sub def 20 setlinewidth tfw 050 xtr0 sub 3725 ytr0 sub moveto xchartp 00 eq {%xchartp=00 TBM (log \050) show TBIM (L*) show TBM (\051 ) show (LINYAB lightness) showen (LINYAB Helligkeit) showde } if %xchartp=00 xchartp 01 eq {%xchartp=01 TBM (log \050) show TBIM (L*/L*) show (u) ibMs TBM (\051 ) show (LINYAB lightness) showen (LINYAB Helligkeit) showde } if %xchartp=01 xchartp 02 eq {%xchartp=02 TBM (log ) show SM (D) show 20 0 rmoveto TBIM (Y ) show TBM (CIE tristimulus value difference) showen (CIE\255Normfarbwertdifferenz) showde } if %xchartp=02 xchartp 03 eq {%xchartp=03 TBM (log\050) show SM (D) show 20 0 rmoveto TBIM (Y) show TBM (/) show SM (D) show TBIM (Y) show (u) ibMs TBM (\051 ) show (CIE tristimulus difference) showen (CIE\255Normfarbdifferenz) showde } if %xchartp=03 xchartp 04 eq {%xchartp=04 TBM (log \050) show SM (D) show TBIM (Y/Y\051 ) show TBM (CIE tristimulus values) showen (CIE\255Normfarbwerte) showde } if %xchartp=04 xchartp 05 eq {%xchartp=05 TBM (log [\050) show SM (D) show TBIM (Y/Y) show TBM (\051 / \050) show SM (D) show TBIM (Y) show (u) ibMs TBM (/) show TBIM (Y) show (u) ibMs TBM (\051] ) show (CIE values) showen (CIE\255Normfarbwerte) showde } if %xchartp=05 xchartp 06 eq {%xchartp=06 TBM (log \050) show TBIM (Y/) show SM (D) show TBIM (Y) show TBM (\051 ) show (CIE contrast) showen (CIE\255Kontrast) showde } if %xchartp=06 xchartp 07 eq {%xchartp=07 TBM (log [\050) show TBIM (Y/) show SM (D) show TBIM (Y) show (\051 / \050) show TBIM (Y) show (u) ibMs TBM (/) show SM (D) show TBIM (Y) show (u) ibMs TBM (\051] ) show (CIE contrast) showen (CIE\255Kontrast) showde } if %xchartp=07 %********************************************************************* /S01_ALOG_T* {%BEG S01_ALOG_T* /Fx0log -2.0 def /Fy0log 0.0 def /xtr 2000 def /ytr 0000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point 0 1 2 {/k exch def %k=0,2:m,p,s Yi_L*i_dYi_S_0 %STOPB 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul L*i ik get log 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 %tfw %k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 L*i iu k 101 mul add get log MULY mul 100 add k 300 mul sub moveto TBL (log) show TBIL (\050L*) show (u) ibLs TBL (\051=) show L*i iu get log cvsshow2 /FY20 L*i 20 k 101 mul add get def /FYiu L*i iu k 101 mul add get def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 k 101 mul add get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point % } if %k=0 } for %k=0,2 tfw [100] 0 setdash Fx0log MULX mul L*u log MULY mul moveto iu log MULX mul L*u log MULY mul lineto iu log MULX mul Fy0log MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %old cero point tfw /Y001DYu L*i 1 get def /Y100DYu L*i 100 get def 0 Y001DYu log MULY mul moveto %1 add because y-cero point=+1000 0 Y100DYu log MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log MULY mul moveto 0 Y100DYu log MULY mul lineto stroke [ ] 0 setdash tfw %/L*D L*i iu get def %0300 L*D log MULY mul 100 add moveto %TBL (log[) show TBIL (L*) show (u) ibLs TBL (]) show %TBL (=) show L*D log cvsshow2 %TBL TBIL (, L*) show (u) ibLs %TBL (=) show L*u cvishow /x0 0500 def /y0 2900 def /x1 800 def /y1 2900 def /xdel 800 def /ydel 300 def x0 y0 ydel 0.9 mul add moveto TBL (LINYAB lightness for all colours) showen (LINYAB\255Helligkeit f\374r alle Farben) showde TBIL (, L*) show (W) ibLs TBL (=100:) show %L*= 100[1+1/(1+W2*Yir**kj)} x0 y0 moveto TBIL (L*) show TBL ( = 100[1+1/\0501 + W) show (2) ibLs TBIL ( (Y/Y)) show (u) ibLs -30 0 rmoveto (k) ebLs TBL (\051]) show TBL ( \050) show TBIL (Y) show (n) ibLs TBL (=100, ) show TBIL ( Y ) show TBL (> 1\051) show x0 y0 ydel 0.9 mul sub moveto TBIL (k) show (1) ibLs TBL (= 1,0 log(e), ) show tfn TBIL (k) show (2) ibLs TBL (= 1,4 log(e), ) show tfw TBIL (W) show (2) ibLs TBL (=1,4) show tfw /x0 3600 def /y0 0850 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END S01_ALOG_T* %********************************************************************* /S02_ALOG_T*DT*u {%BEG S02_ALOG_T*DTu* /Fx0log -2.0 def /Fy0log -1.0 def /xtr 2000 def /ytr 1000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point 0 1 2 {/k exch def %k=0,2:m,p,s Yi_L*i_dYi_S_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul L*i ik get L*i iu get div log 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 %k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 ytr 100 add k 300 mul sub moveto TBL (log[) show TBIL ((L*)) show TBL (/\050) show TBIL (L*) show (u) ibLs TBL (\051]) show TBL (=0) show /FY20 L*i 20 k 101 mul add get L*i iu k 101 mul add get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 k 101 mul add get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point % } if %k=0 } for %k=0,3 tfw /i1 18 def [100] 0 setdash Fx0log MULX mul L*i i1 get L*u div log MULY mul moveto i1 log MULX mul L*i i1 get L*u div log MULY mul lineto i1 log MULX mul Fy0log MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %old cero point tfw /Y001DYu L*i 1 get L*i i1 get div def /Y100DYu L*i 100 get L*i i1 get div def 0 Y001DYu log ytrl add MULY mul moveto %1 add because y-cero point=+1000 0 Y100DYu log ytrl add MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log ytrl add MULY mul moveto 0 Y100DYu log ytrl add MULY mul lineto stroke [ ] 0 setdash tfw /x0 0700 def /y0 2900 def /x1 800 def /y1 2900 def /xdel 800 def /ydel 300 def x0 y0 ydel 0.9 mul add moveto TBL (LINYAB lightness for all colours) showen (LINYAB\255Helligkeit f\374r alle Farben) showde TBIL (, L*) show (W) ibLs TBL (=100:) show %L*= 100[1+1/(1+W2*Yir**kj)} x0 y0 moveto TBIL (L*) show TBL ( = 100[1+1/\0501 + W) show (2) ibLs TBIL ( (Y/Y)) show (u) ibLs -30 0 rmoveto (k) ebLs TBL (\051]) show TBL ( \050) show TBIL (Y) show (n) ibLs TBL (=100, ) show TBIL ( Y ) show TBL (> 1\051) show x0 y0 ydel 0.9 mul sub moveto TBIL (k) show (1) ibLs TBL (= 1,0 log(e), ) show tfn TBIL (k) show (2) ibLs TBL (= 1,4 log(e), ) show tfw TBIL (W) show (2) ibLs TBL (=1,4) show tfw /x0 3600 def /y0 0850 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END S02_ALOG_T*DT*u %********************************************************************* /S03_ALOG_DL {%BEG S03_ALOG_DL /xtr 2000 def /ytr 1000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point %L*=100*(Y/100)**(1/2,4) %delta_L*/delta_Y=100*(1/2,4)*(Y/100)**(-1,4/2,4)*(1/100) %delta_Y=1/[100*(1/2,4)*(Y/100)**(-1,4/2,4)*(1/100)] %delta_Y=2,4*100/100*(Y/100)**(1,4/2,4) %delta_Y=2,4*100/100*(Y/Yn)**(1,4/2,4) 0 1 2 {/k exch def %k=0,2:m,p,s %only W Yi_L*i_dYi_S_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul dYi ik get log 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 %k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 ytr 100 add k 300 mul sub moveto TBL (log) show TBIL ((dY)) show TBL (=) show dYi iu k 101 mul add get cvsshow2 /FY20 dYi 20 k 101 mul add get def /FYiu dYi iu k 101 mul add get def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point % } if %k=0 } for %k=0,3 tfw [100] 0 setdash /rYdY dYi iu get def -2. MULX mul rYdY log MULY mul moveto iu log MULX mul rYdY log MULY mul lineto iu log MULX mul -1. MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %old cero point tfw /Y001DYu dYi 1 get def /Y100DYu dYi 100 get def 0 Y001DYu log ytrl add MULY mul moveto %1 add because y-cero point=+1000 0 Y100DYu log ytrl add MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log ytrl add MULY mul moveto 0 Y100DYu log ytrl add MULY mul lineto stroke [ ] 0 setdash tfw /x0 0500 def /y0 2900 def /x1 800 def /y1 2900 def /xdel 800 def /ydel 300 def %L*= 100[1+1/(1+W2*Yir**kj)} x0 y0 0.9 ydel mul add moveto TBIL (L*) show TBL ( = 100[1+1/\0501 + W) show (2) ibLs TBIL ( x) show (k) ebLs TBL (\051]) show TBL ( \050) show TBIL (x) show TBL (=) show TBIL (Y/Y) show (u) ibLs TBIL (, Y) show (u) ibLs TBL (=18, ) show TBIL ( Y) show TBL (>1\051) show %x =(YI/YU) %dx/dY=(1/YU) %z =x**k %dz/dx=k*x**(k-1) %dz/dY=dz/dx*dx/dY=k*x**(k-1)*(1/YU) %dY =(-1)*[1+W2*z]**(-2)*W2*k*(YI/YU)**(k-1)*(1/YU) % =-W2*k/YU [1+W2*x**k]*[x**(k-1)] x0 y0 moveto TBL (log) show TBIL ((dY)) show TBL ( = - k W) show (2) ibLs TBIL (/Y) show (u) ibLs TBL ([1+W) show (2) ibLs TBIL (x) show (k) ebLs TBL (]) show (-2) ebLs TBIL ( x) show ((k-1)) ebLs x0 y0 ydel 0.9 mul sub moveto TBIL (k) show (1) ibLs TBL (= 1,0 log(e), ) show tfn TBIL (k) show (2) ibLs TBL (= 1,4 log(e), ) show tfw TBIL (W) show (2) ibLs TBL (=1,4) show tfw /x0 3600 def /y0 0850 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END S03_ALOG_DL %********************************************************************* /S04_ALOG_DLn {%BEG S04_ALOG_DLn /xtr 2000 def /ytr 1000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point %L*=100*(Y/100)**(1/2,4) %delta_L*/delta_Y=100*(1/2,4)*(Y/100)**(-1,4/2,4)*(1/100) %delta_Y=1/[100*(1/2,4)*(Y/100)**(-1,4/2,4)*(1/100)] %delta_Y=2,4*100/100*(Y/100)**(1,4/2,4) %delta_Y=2,4*100/100*(Y/Yn)**(1,4/2,4) 0 1 2 {/k exch def %k=0,2:m,p,s %only W Yi_L*i_dYi_S_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul dYi ik get dYu div log 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 %k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 ytr 100 add k 300 mul sub moveto TBL (log[) show TBIL ((dY)) show TBL (/\050) show TBIL (dY) show (u) ibLs TBL (\051]) show TBL (=0) show /FY20 dYi 20 k 101 mul add get dYi iu k 101 mul add get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 k 101 mul add get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point % } if %k=0 } for %k=0,3 tfw [100] 0 setdash /rYdY 1. def -2. MULX mul rYdY log MULY mul moveto iu log MULX mul rYdY log MULY mul lineto iu log MULX mul -1. MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %new cero point tfw /Y001DYu dYi 1 get dYu div def /Y100DYu dYi 100 get dYu div def 0 Y001DYu log ytrl add MULY mul moveto %1 add because y-cero point=+1000 0 Y100DYu log ytrl add MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log ytrl add MULY mul moveto 0 Y100DYu log ytrl add MULY mul lineto stroke [ ] 0 setdash tfw /x0 0800 def /y0 2900 def /ydel 300 def %L*= 100[1+1/(1+W2*Yir**kj)} x0 y0 0.9 ydel mul add moveto TBIL (L*) show TBL (=100[1+1/\0501+W) show (2) ibLs TBIL ( x) show (k) ebLs TBL (\051]) show TBL (, \050) show TBIL (x) show TBL (=) show TBIL (Y/Y) show (u) ibLs TBIL (, Y) show (u) ibLs TBL (=18, ) show TBIL (Y) show TBL (>1\051) show %x =(YI/YU) %dx/dY=(1/YU) %z =x**k %dz/dx=k*x**(k-1) %dz/dY=dz/dx*dx/dY=k*x**(k-1)*(1/YU) %dY =(-1)*[1+W2*z]**(-2)*W2*k*(YI/YU)**(k-1)*(1/YU) % =-W2*k/YU [1+W2*x**k]*[x**(k-1)] %dYu=-W2*k/YU [1+W2] x0 y0 moveto TBL (log) show TBIL ((dY)) show TBL ( = - k W) show (2) ibLs TBIL (/Y) show (u) ibLs TBL ([1+W) show (2) ibLs TBIL (x) show (k) ebLs TBL (]) show (-2) ebLs TBIL ( x) show ((k-1)) ebLs x0 y0 ydel 0.9 mul sub moveto TBIL (k) show (1) ibLs TBL (= 1,0 log(e), ) show tfn TBIL (k) show (2) ibLs TBL (= 1,4 log(e), ) show tfw TBIL (W) show (2) ibLs TBL (=1,4) show x0 y0 ydel 1.8 mul sub moveto %dYu=-W2*k/YU [1+W2] TBL (log) show TBIL (\050dY) show (u) ibLs TBL (\051 = - k W) show (2) ibLs TBIL (/Y) show (u) ibLs TBL ([1+W) show (2) ibLs TBL (]) show (-2) ebLs tfw /x0 3600 def /y0 0850 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END S04_ALOG_DLn %********************************************************************* /S05_ALOG_DL_L {%BEG S05_ALOG_DL_L /xtr 2000 def /ytr 2000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point %L*=100*(Y/100)**(1/2,4) %delta_L*/delta_Y=100*(1/2,4)*(Y/100)**(-1,4/2,4)*(1/100) %delta_Y=1/[100*(1/2,4)*(Y/100)**(-1,4/2,4)*(1/100)] %delta_Y=2,4*100/100*(Y/100)**(1,4/2,4) %delta_Y=2,4*100/100*(Y/Yn)**(1,4/2,4) 0 1 2 {/k exch def %k=0,2:m,p,s %only W Yi_L*i_dYi_S_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul dYi ik get Yi ik get div log 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 %k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 dYi iu get Yi iu get div log 2 add MULY mul 100 add 350 sub k 300 mul sub moveto %under line TBL (log[) show TBIL ((dY)) show TBL (/) show TBIL (Y) show TBL (]) show TBL (=) show dYi iu get Yi iu get div log cvsshow2 /FY20 dYi 20 k 101 mul add get Yi 20 k 101 mul add get div def /FYiu dYi iu get Yi iu get div def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 k 101 mul add get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point % } if %k=0 } for %k=0,0 tfw /i1 18 def [100] 0 setdash /rYdY dYi i1 get Yi i1 get div def -2. MULX mul rYdY log MULY mul moveto i1 log MULX mul rYdY log MULY mul lineto i1 log MULX mul -2. MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %old cero point tfw /Y001DYu dYi 1 get Yi 1 get div def /Y100DYu dYi 100 get Yi 100 get div def 0 Y001DYu log 2 add MULY mul moveto %1 add because y-cero point=+2000 0 Y100DYu log 2 add MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log 2 add MULY mul moveto 0 Y100DYu log 2 add MULY mul lineto stroke [ ] 0 setdash tfw /x0 0800 def /y0 2700 def /ydel 300 def x0 y0 ydel 0.9 mul add moveto TBL (LINYAB sensitivity:) showen (LINYAB Empfindlichkeit:) showde %x =(YI/YU) %dx/dY=(1/YU) %z =x**k %dz/dx=k*x**(k-1) %dz/dY=dz/dx*dx/dY=k*x**(k-1)*(1/YU) %dY =(-1)*[1+W2*z]**(-2)*W2*k*(YI/YU)**(k-1)*(1/YU) % =-W2*k/YU [1+W2*x**k]*[x**(k-1)] %dYu=-W2*k/YU [1+W2] x0 y0 moveto TBL (log) show TBIL ((dY)) show TBL ( = - k W) show (2) ibLs TBIL (/Y) show (u) ibLs TBL ([1+W) show (2) ibLs TBIL (x) show (k) ebLs TBL (]) show (-2) ebLs TBIL ( x) show ((k-1)) ebLs x0 y0 ydel 0.9 mul sub moveto TBIL (k) show (1) ibLs TBL (= 1,0 log(e), ) show tfn TBIL (k) show (2) ibLs TBL (= 1,4 log(e), ) show tfw TBIL (W) show (2) ibLs TBL (=1,4) show x0 y0 ydel 1.8 mul sub moveto %dYu=-W2*k/YU [1+W2] TBL (log) show TBIL (\050dY) show (u) ibLs TBL (\051 = - k W) show (2) ibLs TBIL (/Y) show (u) ibLs TBL ([1+W) show (2) ibLs TBL (]) show (-2) ebLs tfw /x0 3600 def /y0 1550 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END S05_ALOG_DL_L %********************************************************************* /S06_ALOG_DL_Ln {%BEG S06_ALOG_DL_Ln /xtr 2000 def /ytr 1000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point %L*=100*(Y/100)**(1/2,4) %delta_L*/delta_Y=100*(1/2,4)*(Y/100)**(-1,4/2,4)*(1/100) %delta_Y=1/[100*(1/2,4)*(Y/100)**(-1,4/2,4)*(1/100)] %delta_Y=2,4*100/100*(Y/100)**(1,4/2,4) %delta_Y=2,4*100/100*(Y/Yn)**(1,4/2,4) 0 1 2 {/k exch def %k=0,2:m,p,s %only W Yi_L*i_dYi_S_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul dYi ik get Yi ik get div dYu Yu div div log 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 %k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 ytr 100 add 350 sub k 300 mul sub 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 /FY20 dYi 20 k 101 mul add get Yi 20 k 101 mul add get div dYi iu get Yi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 k 101 mul add get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point % } if %k=0 } for %k=0,3 tfw /i1 18 def [100] 0 setdash /rYdY Yi i1 get dYi i1 get div Yu dYu div div e10D24 exp def -2. MULX mul rYdY log MULY mul moveto iu log MULX mul rYdY log MULY mul lineto iu log MULX mul -1. MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %old cero point tfw /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 0 Y001DYu log ytrl add MULY mul moveto %1 add because y-cero point=+1000 0 Y100DYu log ytrl add MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log ytrl add MULY mul moveto 0 Y100DYu log ytrl add MULY mul lineto stroke [ ] 0 setdash tfw /x0 0800 def /y0 2700 def /ydel 300 def x0 y0 ydel 0.9 mul add moveto (relative normalized LINYAB sensitivity) showen (relative normierte LINYAB\255Empfindlichkeit) showde %x =(YI/YU) %dx/dY=(1/YU) %z =x**k %dz/dx=k*x**(k-1) %dz/dY=dz/dx*dx/dY=k*x**(k-1)*(1/YU) %dY =(-1)*[1+W2*z]**(-2)*W2*k*(YI/YU)**(k-1)*(1/YU) % =-W2*k/YU [1+W2*x**k]*[x**(k-1)] %dYu=-W2*k/YU [1+W2] x0 y0 moveto TBL (log) show TBIL ((dY)) show TBL ( = - k W) show (2) ibLs TBIL (/Y) show (u) ibLs TBL ([1+W) show (2) ibLs TBIL (x) show (k) ebLs TBL (]) show (-2) ebLs TBIL ( x) show ((k-1)) ebLs x0 y0 ydel 0.9 mul sub moveto TBIL (k) show (1) ibLs TBL (= 1,0 log(e), ) show tfn TBIL (k) show (2) ibLs TBL (= 1,4 log(e), ) show tfw TBIL (W) show (2) ibLs TBL (=1,4) show x0 y0 ydel 1.8 mul sub moveto %dYu=-W2*k/YU [1+W2] TBL (log) show TBIL (\050dY) show (u) ibLs TBL (\051 = - k W) show (2) ibLs TBIL (/Y) show (u) ibLs TBL ([1+W) show (2) ibLs TBL (]) show (-2) ebLs tfw /x0 3600 def /y0 1600 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END S06_ALOG_DL_Ln %********************************************************************* /S07_ALOG_L_DL {%BEG S07_ALOG_L_DL /xtr 2000 def /ytr 1000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point %L*=100*(Y/100)**(1/2,4) %delta_L*/delta_Y=100*(1/2,4)*(Y/100)**(-1,4/2,4)*(1/100) %delta_Y=1/[100*(1/2,4)*(Y/100)**(-1,4/2,4)*(1/100)] %delta_Y=2,4*100/100*(Y/100)**(1,4/2,4) %delta_Y=2,4*100/100*(Y/Yn)**(1,4/2,4) 0 1 2 {/k exch def %k=0,2:m,p,s %only W Yi_L*i_dYi_S_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul Yi ik get dYi ik get div log 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 %k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 Yi iu get dYi iu get div log ytrl add MULY mul 100 add k 300 mul sub moveto TBL (log\050) show TBIL (Y/dY) show TBL (\051) show TBL (=) show Yi iu get dYi iu get div log cvsshow2 /FY20 Yi 20 k 101 mul add get dYi 20 k 101 mul add get div def /FYiu Yi iu get dYi iu get div def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point % } if %k=0 } for %k=0,3 tfw /i1 18 def [100] 0 setdash /rYdY Yi i1 get dYi i1 get div def -2. MULX mul rYdY log MULY mul moveto i1 log MULX mul rYdY log MULY mul lineto i1 log MULX mul -1. MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %old cero point tfw /Y001DYu Yi 1 get dYi 1 get div def /Y100DYu Yi 100 get dYi 100 get div def 0 Y001DYu log MULY mul moveto %1 add because y-cero point=+1000 0 Y100DYu log MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log MULY mul moveto 0 Y100DYu log MULY mul lineto stroke [ ] 0 setdash tfw /x0 0400 def /y0 1000 def /ydel 300 def %x =(YI/YU) %dx/dY=(1/YU) %z =x**k %dz/dx=k*x**(k-1) %dz/dY=dz/dx*dx/dY=k*x**(k-1)*(1/YU) %dY =(-1)*[1+W2*z]**(-2)*W2*k*(YI/YU)**(k-1)*(1/YU) % =-W2*k/YU [1+W2*x**k]*[x**(k-1)] %dYu=-W2*k/YU [1+W2] x0 y0 moveto TBL (log) show TBIL ((dY)) show TBL ( = - k W) show (2) ibLs TBIL (/Y) show (u) ibLs TBL ([1+W) show (2) ibLs TBIL (x) show (k) ebLs TBL (]) show (-2) ebLs TBIL ( x) show ((k-1)) ebLs x0 y0 ydel 0.9 mul sub moveto TBIL (k) show (1) ibLs TBL (= 1,0 log(e), ) show tfn TBIL (k) show (2) ibLs TBL (= 1,4 log(e), ) show tfw TBIL (W) show (2) ibLs TBL (=1,4) show x0 y0 ydel 1.8 mul sub moveto %dYu=-W2*k/YU [1+W2] TBL (log) show TBIL (\050dY) show (u) ibLs TBL (\051 = - k W) show (2) ibLs TBIL (/Y) show (u) ibLs TBL ([1+W) show (2) ibLs TBL (]) show (-2) ebLs tfw /x0 3600 def /y0 0850 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END S07_ALOG_L_DL %********************************************************************* /S08_ALOG_L_DLn {%BEG S08_ALOG_L_DLn /xtr 2000 def /ytr 2000 def /ytrl ytr 1000 div def %log shift xtr ytr translate %new cero point %L*=100*(Y/100)**(1/2,4) %delta_L*/delta_Y=100*(1/2,4)*(Y/100)**(-1,4/2,4)*(1/100) %delta_Y=1/[100*(1/2,4)*(Y/100)**(-1,4/2,4)*(1/100)] %delta_Y=2,4*100/100*(Y/100)**(1,4/2,4) %delta_Y=2,4*100/100*(Y/Yn)**(1,4/2,4) 0 1 2 {/k exch def %k=0,2:m,p,s %only W Yi_L*i_dYi_S_0 40 setlinewidth /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 /ik i k 101 mul add def Yi ik get log MULX mul Yi ik get dYi ik get div Yu dYu div div log 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 %k 0 eq {%k=0 xtr neg ytr neg translate %new cero point 0300 ytr 100 add k 300 mul sub 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 /FY20 Yi 20 k 101 mul add get dYi 20 k 101 mul add get div Yi iu get dYi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FY20 log FYiu log sub Yi 20 get log Yi iu get log sub div cvsshow2 xtr ytr translate %new cero point % } if %k=0 } for %k=0,0 tfw [100] 0 setdash /rYdY 1 def -2. MULX mul rYdY log MULY mul moveto iu log MULX mul rYdY log MULY mul lineto iu log MULX mul -1. MULY mul lineto stroke [ ] 0 setdash ioutc 1 eq {cero_line} if xtr neg ytr neg translate %old cero point tfw /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 0 Y001DYu log ytrl add MULY mul moveto %log-shift=1 for ytr=+1000 0 Y100DYu log ytrl add MULY mul lineto stroke tfg [100] 0 setdash 0 Y001DYu log ytrl add MULY mul moveto 0 Y100DYu log ytrl add MULY mul lineto stroke [ ] 0 setdash /x0 500 def /y0 1000 def /ydel 300 def tfw x0 y0 ydel 0.9 mul add moveto (relative normalized LINYAB contrast sensitivity) showen (relative normierte LINYAB\255Kontrastempfindlichkeit) showde %x =(YI/YU) %dx/dY=(1/YU) %z =x**k %dz/dx=k*x**(k-1) %dz/dY=dz/dx*dx/dY=k*x**(k-1)*(1/YU) %dY =(-1)*[1+W2*z]**(-2)*W2*k*(YI/YU)**(k-1)*(1/YU) % =-W2*k/YU [1+W2*x**k]*[x**(k-1)] %dYu=-W2*k/YU [1+W2] x0 y0 moveto TBL (log) show TBIL ((dY)) show TBL ( = - k W) show (2) ibLs TBIL (/Y) show (u) ibLs TBL ([1+W) show (2) ibLs TBIL (x) show (k) ebLs TBL (]) show (-2) ebLs TBIL ( x) show ((k-1)) ebLs x0 y0 ydel 0.9 mul sub moveto TBIL (k) show (1) ibLs TBL (= 1,0 log(e), ) show tfn TBIL (k) show (2) ibLs TBL (= 1,4 log(e), ) show tfw TBIL (W) show (2) ibLs TBL (=1,4) show x0 y0 ydel 1.8 mul sub moveto %dYu=-W2*k/YU [1+W2] TBL (log) show TBIL (\050dY) show (u) ibLs TBL (\051 = - k W) show (2) ibLs TBIL (/Y) show (u) ibLs TBL ([1+W) show (2) ibLs TBL (]) show (-2) ebLs tfw /x0 3600 def /y0 0850 def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfw x0 y0 0.7 ydel mul sub moveto TBL (application) showen TS (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen TS (bereich) showde } def %END S08_ALOG_L_DL %**************************************************************** xchartp 00 eq {-650 3200 moveto TBL (log\050) show TBIL (L*) show TBL (\051) show 100 3200 moveto TBIL (L*) show } if xchartp 01 eq {100 3200 moveto TBIL (L*/L*) show (u) ibLs } if xchartp 02 eq {-650 3200 moveto TBL (log\050) show SL (D) show TBIL (Y) show TBL (\051) show 100 3200 moveto SL (D) show TBIL (Y) show } if xchartp 03 eq {100 3200 moveto SL (D) show TBIL (Y) show TBL (/) show SL (D) show TBIL (Y) show (u) ibLs } if xchartp 04 eq {-650 3200 moveto TBL (log\050) show TBIL (S) show (r) ibLs TBL (\051) show 100 3200 moveto TBIL (S) show (r) ibLs TBL (=\050) show SL (D) show TBIL (Y/Y) show TBL (\051) show } if xchartp 05 eq {100 3200 moveto TBIL (S) show (r) ibLs TBL (/) show TBIL (S) show (ru) ibLs TBL (=\050) show SL (D) show TBIL (Y/Y) show TBL (/) show SL (D) show TBIL (Y/Y) show (u) ibLs TBL (\051) show } if xchartp 06 eq {-650 3200 moveto TBL (log\050) show TBIL (C) show (r) ibLs TBL (\051) show 100 3200 moveto TBIL (C) show (r) ibLs TBL (=\050) show TBIL (Y/) show SL (D) show TBIL (Y) show TBL (\051) show } if xchartp 07 eq {-650 3200 moveto TBL (log\050) show TBIL (C) show (r) ibLs TBL (\051) show 100 3200 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 %************************************************************** xchartp 00 eq {S01_ALOG_T*} if xchartp 01 eq {S02_ALOG_T*DT*u} if xchartp 02 eq {S03_ALOG_DL} if xchartp 03 eq {S04_ALOG_DLn} if xchartp 04 eq {S05_ALOG_DL_L} if xchartp 05 eq {S06_ALOG_DL_Ln} if xchartp 06 eq {S07_ALOG_L_DL} if xchartp 07 eq {S08_ALOG_L_DLn} if } if %xchartl>=8 %END S01_S08*************************************************** 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 { 6100 neg 13000 neg translate} if xchartl 2 eq { 100 neg 08750 neg translate} if xchartl 3 eq { 6100 neg 08750 neg translate} if xchartl 4 eq { 100 neg 4500 neg translate} if xchartl 5 eq { 6100 neg 4500 neg translate} if xchartl 6 eq { 100 neg 0250 neg translate} if xchartl 7 eq { 6100 neg 0250 neg translate} if xchartl 8 eq {13500 neg 13000 neg translate} if xchartl 9 eq {19500 neg 13000 neg translate} if xchartl 10 eq {13500 neg 08750 neg translate} if xchartl 11 eq {19500 neg 08750 neg translate} if xchartl 12 eq {13500 neg 4500 neg translate} if xchartl 13 eq {19500 neg 4500 neg translate} if xchartl 14 eq {13500 neg 0250 neg translate} if xchartl 15 eq {19500 neg 0250 neg translate} if grestore } for %xchartl=0,15 showpage grestore %%Trailer