%!PS-Adobe-3.0 EPSF-3.0 WG170-7N %%BoundingBox: 70 82 795 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/WE30/) /author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://www.ps.bam.de or http://130.149.60.445/~farbmetrik) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@me.com) /CreationDate (D:2014060112000) /ModDate (D:2014060112000) /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 /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /TS {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 {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 {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 {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 /SSK {140 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SK {250 /Symbol FS} bind def /SM {290 /Symbol FS} bind def /SG {350 /Symbol FS} bind def /CSS {115 /Courier-ISOL1 FS} bind def /CSK {140 /Courier-ISOL1 FS} bind def /CS {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 /CBSS {115 /CourierB-ISOL1 FS} bind def /CBSK {140 /CourierB-ISOL1 FS} bind def /CBS {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 /ns {350 /Times-ISOL1 FS show} bind def /ks {350 /TimesI-ISOL1 FS show} bind def /bs {350 /TimesB-ISOL1 FS show} bind def /js {350 /TimesBI-ISOL1 FS show} bind def /ss {350 /Symbol FS show} bind def /is {300 /Times-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /es {300 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ib {300 /TimesB-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /eb {300 /TimesB-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ip {300 /Times-ISOL1 FS 50 50 rmoveto (\267) show 50 -50 rmoveto} bind def %20% kleiner /ns2 {300 /Times-ISOL1 FS show TM} bind def /ks2 {300 /TimesI-ISOL1 FS show TM} bind def /bs2 {300 /TimesB-ISOL1 FS show TM} bind def /js2 {300 /TimesBI-ISOL1 FS show TM} bind def /ss2 {300 /Symbol FS show TM} bind def /is2 {250 /Times-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /es2 {250 /Times-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ib2 {250 /TimesB-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /eb2 {250 /TimesB-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ip2 {250 /Times-ISOL1 FS 40 40 rmoveto (\267) show 40 -40 rmoveto TM} bind def %40% kleiner /ns4 {250 /Times-ISOL1 FS show TK} bind def /ks4 {250 /TimesI-ISOL1 FS show TK} bind def /bs4 {250 /TimesB-ISOL1 FS show TK} bind def /js4 {250 /TimesBI-ISOL1 FS show TK} bind def /ss4 {250 /Symbol FS show TK} bind def /is4 {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /es4 {200 /Times-ISOL1 FS 0 130 rmoveto show 0 -130 rmoveto TK} bind def /ib4 {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /eb4 {200 /TimesB-ISOL1 FS 0 130 rmoveto show 0 -130 rmoveto TK} bind def /ip4 {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def %60% kleiner /ns6 {200 /Times-ISOL1 FS show TS} bind def /ks6 {200 /TimesI-ISOL1 FS show TS} bind def /bs6 {200 /TimesB-ISOL1 FS show TS} bind def /js6 {200 /TimesBI-ISOL1 FS show TS} bind def /ss6 {200 /Symbol FS show TS} bind def /is6 {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /es6 {160 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TS} bind def /ib6 {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /eb6 {160 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TS} bind def /ip6 {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 /tfrz {0.0 1.0 1.0 0.5 setcmyk_olvcolor} bind def %Reproduktionsfarben /tfgz {1.0 0.0 1.0 0.5 setcmyk_olvcolor} bind def /tfbz {1.0 1.0 0.0 0.5 setcmyk_olvcolor} bind def /tfcz {1.0 0.0 0.0 0.5 setcmyk_olvcolor} bind def /tfmz {0.0 1.0 0.0 0.5 setcmyk_olvcolor} bind def /tfyz {0.0 0.0 1.0 0.5 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 /cvishow {cvi 10 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvsshow4 {10000 mul cvi 0.0001 mul 8 string cvs show} def /Vexp 600 array def /Vexpa 600 array def /Vexpb 600 array def /Yexp 600 array def /alpha 600 array def %*********************************************************** /D13 1 3 div def /D841_108 841 108 div def /D4_29 4 29 div def /D6_29 6 29 div 3 exp def /FL 0.000001 def /FY 0.001 def %Daten XYZ 600 x 21 = 12600, max 600 colours a 21 data /XYZ 12600 array def /iim 308 def /ii2 308 300 sub def /xcmax 07 def %FOR 3 SECTIONS _WN,_RG,_BY /ij0 000 def /ij1 102 def /ij2 ij1 1 add def /ij3 205 def /ij4 ij3 1 add def /ij5 308 def /ncode (_RI) def /ncodeWN (_WN) def /ncodeRG (_RG) def /ncodeBY (_BY) def /NRSER 18000000 def %BEG PROG_03.PS 141122 %******************************************************************** /NR1i 600 array def /NR2i 600 array def /NR3i 600 array def /NR4i 600 array def /NRLi 600 array def /NRAi 600 array def /NRBi 600 array def /NRCi 600 array def /NRHi 600 array def /NRSi 600 array def /d_CIELABi 600 array def /d_CIELCHi 600 array def /d_C94LCHi 600 array def /d_CMCLCHi 600 array def /d_C00LCHi 600 array def /d_C85LCHi 600 array def /d_CM2LCHi 600 array def /d_C77LCHi 600 array def /d_C78LCHi 600 array def /d_C79LCHi 600 array def /d_CIELABmi 600 array def /d_CIELCHmi 600 array def /d_C94LCHmi 600 array def /d_CMCLCHmi 600 array def /d_C00LCHmi 600 array def /d_C85LCHmi 600 array def %******************************************************************** /proc_coldiff {%BEG procedure proc_coldiff %calculates CIE colour data and differences for 10 colour spaces %BEG CIELAB/CIELCH X0 XW div D6_29 gt {/FXXN0 X0 XW div 0.0001 add D13 exp def} {/FXXN0 D841_108 X0 XW div mul D4_29 add def} ifelse Y0 YW div D6_29 gt {/FYYN0 Y0 YW div 0.0001 add D13 exp def} {/FYYN0 D841_108 Y0 YW div mul D4_29 add def} ifelse Z0 ZW div D6_29 gt {/FZZN0 Z0 ZW div 0.0001 add D13 exp def} {/FZZN0 D841_108 Z0 ZW div mul D4_29 add def} ifelse /CIEL*0 116. FYYN0 mul 16. sub def /CIEa*0 500. FXXN0 FYYN0 sub mul def /CIEb*0 200. FYYN0 FZZN0 sub mul def /CIEC*ab0 CIEa*0 dup mul CIEb*0 dup mul add 0.0001 add sqrt def /CIEhab0 CIEb*0 CIEa*0 0.0001 add atan def X1 XW div D6_29 gt {/FXXN1 X1 XW div 0.0001 add D13 exp def} {/FXXN1 D841_108 X1 XW div mul D4_29 add def} ifelse Y1 YW div D6_29 gt {/FYYN1 Y1 YW div 0.0001 add D13 exp def} {/FYYN1 D841_108 Y1 YW div mul D4_29 add def} ifelse Z1 ZW div D6_29 gt {/FZZN1 Z1 ZW div 0.0001 add D13 exp def} {/FZZN1 D841_108 Z1 ZW div mul D4_29 add def} ifelse /CIEL*1 116. FYYN1 mul 16. sub def /CIEa*1 500. FXXN1 FYYN1 sub mul def /CIEb*1 200. FYYN1 FZZN1 sub mul def /CIEC*ab1 CIEa*1 dup mul CIEb*1 dup mul add 0.0001 add sqrt def /CIEhab1 CIEb*1 CIEa*1 0.0001 add atan def %mixed terms with *0 sn *1: /d_CIEL* CIEL*1 CIEL*0 sub def /d_CIEa* CIEa*1 CIEa*0 sub def /d_CIEb* CIEb*1 CIEb*0 sub def d_CIELABi i d_CIEL* dup mul d_CIEa* dup mul add d_CIEb* dup mul add 0.00000001 add sqrt put /a_CIELAB 1.26 def /b_CIELAB 0.55 def d_CIELABmi i d_CIELABi i get b_CIELAB exp a_CIELAB mul put /d_CIEh CIEhab1 CIEhab0 sub def %see CIEDE2000 page 4 CIEC*ab1 CIEC*ab0 mul 0 eq {/d_CIEh 0 def} if %CIEC*ab1 x CIEC*ab0 =0 CIEC*ab1 CIEC*ab0 mul 0 ne d_CIEh 180 gt and {/d_CIEh d_CIEh 360 sub def} if CIEC*ab1 CIEC*ab0 mul 0 ne d_CIEh -180 lt and {/d_CIEh d_CIEh 360 add def} if /d_CIEL CIEL*1 CIEL*0 sub def /d_CIECab CIEC*ab1 CIEC*ab0 sub def /d_CIEHab CIEC*ab1 CIEC*ab0 mul 0.000001 add sqrt 2 mul d_CIEh 0.5 mul sin mul def d_CIELCHi i d_CIEL dup mul d_CIECab dup mul add d_CIEHab dup mul add 0.000001 add sqrt put /a_CIELCH 1.26 def /b_CIELCH 0.55 def d_CIELCHmi i d_CIELCHi i get b_CIELCH exp a_CIELCH mul put %BEG CIELAB/CIELCH %BEG CIE94 /S94L 1 def /S94C 1 0.045 CIEC*ab0 mul add def /S94H 1 0.015 CIEC*ab0 mul add def /K94L 1 def /K94C 1 def /K94H 1 def /LC94*0 CIEL*0 K94L div S94L div def /LC94*1 CIEL*1 K94L div S94L div def /CC94*ab0 CIEC*ab0 K94C div S94C div def /CC94*ab1 CIEC*ab1 K94C div S94C div def d_C94LCHi i CIEL*1 CIEL*0 sub K94L div S94L div dup mul CIEC*ab1 CIEC*ab0 sub K94C div S94C div dup mul add d_CIEHab K94H div S94H div dup mul add 0.00000001 add sqrt put /a_C94LCH 1.41 def /b_C94LCH 0.70 def d_C94LCHmi i d_C94LCHi i get b_C94LCH exp a_C94LCH mul put %END CIE94 %BEG CMC(l:c=1:1) CIEL*0 16 lt {/SCML 0.511 def} {/SCML 0.040975 CIEL*0 mul 0.01765 CIEL*0 mul 1 add div def } ifelse /SCMC 0.0638 CIEC*ab0 mul 0.0131 CIEC*ab0 mul 1 add div 0.638 add def %beg special /FCMC CIEC*ab0 dup mul dup mul CIEC*ab0 dup mul dup mul 1900 add div sqrt def CIEhab0 164 lt CIEhab0 345 gt or {/TCMC CIEhab0 35 add cos 0.4 mul abs 0.36 add def} {/TCMC CIEhab0 168 add cos 0.2 mul abs 0.56 add def} ifelse %end special /SCMH TCMC FCMC mul 1 add FCMC sub SCMC mul def /KCML 1 def %=l /KCMC 1 def %=c /KCMH 1 def %1 /CMCL*0 CIEL*0 KCML div SCML div def /CMCL*1 CIEL*1 KCML div SCML div def /CMCC*ab0 CIEC*ab0 KCMC div SCMC div def /CMCC*ab1 CIEC*ab1 KCMC div SCMC div def d_CMCLCHi i CIEL*1 CIEL*0 sub KCML div SCML div dup mul CIEC*ab1 CIEC*ab0 sub KCMC div SCMC div dup mul add d_CIEHab KCMH div SCMH div dup mul add 0.00000001 add sqrt put /a_CMCLCH 1.34 def /b_CMCLCH 0.66 def d_CMCLCHmi i d_CMCLCHi i get b_CMCLCH exp a_CMCLCH mul put %END CMC(l:c=1:1)=CMC %BEG CM2(l:c=1:2)=CM2 /KM2L 1 def %=l /KM2C 2 def %=c /KM2H 1 def %1 /CM2L*0 CIEL*0 KM2L div SCML div def /CM2L*1 CIEL*1 KM2L div SCML div def /CM2C*ab0 CIEC*ab0 KM2C div SCMC div def /CM2C*ab1 CIEC*ab1 KM2C div SCMC div def d_CM2LCHi i CIEL*1 CIEL*0 sub KM2L div SCML div dup mul CIEC*ab1 CIEC*ab0 sub KM2C div SCMC div dup mul add d_CIEHab KM2H div SCMH div dup mul add 0.00000001 add sqrt put %END CM2(l:c=1:2)=CM2 %BEG CIEDE2000=C00 %beg special equation (7) /CIEC*ab CIEC*ab0 CIEC*ab1 add 0.5 mul def /DEG 1 CIEC*ab 7 exp CIEC*ab 7 exp 25 7 exp add div 0.000001 add sqrt sub 0.5 mul def %end special equation (7) %beg special EQUATION (1) TO (6) %0 /C00L0S CIEL*0 def /C00a0S 1 DEG add CIEa*0 mul def /C00b0S CIEb*0 def /C00C0S C00a0S dup mul C00b0S dup mul add 0.000001 add sqrt def C00C0S 0 eq {/C00h0S 0 def} {/C00h0S C00b0S C00a0S 0.0001 add atan def } ifelse %1 /C00L1S CIEL*1 def /C00a1S 1 DEG add CIEa*1 mul def /C00b1S CIEb*1 def /C00C1S C00a1S dup mul C00b1S dup mul add 0.000001 add sqrt def C00C1S 0 eq {/C00h1S 0 def} {/C00h1S C00b1S C00a1S 0.0001 add atan def } ifelse %end special EQUATION (1) TO (6) %beg special EQUATION (11) TO (14) /d_C00hS0 C00h1S C00h0S sub def %see CIEDE2000 page 4 C00C1S C00C0S mul 0 eq {/d_C00hS 0 def} if %CIEC*ab1 x CIEC*ab0 =0 C00C1S C00C0S mul 0 ne d_C00hS0 abs 180 le and {/d_C00hS d_C00hS0 def} if C00C1S C00C0S mul 0 ne d_C00hS0 180 gt and {/d_C00hS d_C00hS0 360 sub def} if C00C1S C00C0S mul 0 ne d_C00hS0 -180 lt and {/d_C00hS d_C00hS0 360 add def} if %end special EQUATION (11) TO (14) %beg special EQUATION (8) TO (10) /d_C00LS C00L1S C00L0S sub def /d_C00aS C00a1S C00a0S sub def /d_C00bS C00b1S C00b0S sub def /d_C00CS C00C1S C00C0S sub def /d_C00HS C00C0S C00C1S mul 0.000001 add sqrt 2 mul d_C00hS 0.5 mul sin mul def %end special EQUATION (8) TO (10) %beg special EQUATION (23) TO (26) /a_C00hs C00h0S C00h1S add 0.5 mul def /m_C00CS C00C0S C00C1S mul def d_C00hS abs 180 le m_C00CS 0 ne and {/C00hSq a_C00hs def} if d_C00hS abs 180 gt a_C00hs 360 le and m_C00CS 0 ne and {/C00hSq C00h0S C00h1S add 360 add 0.5 mul def} if d_C00hS abs 180 gt a_C00hs 360 ge and m_C00CS 0 ne and {/C00hSq C00h0S C00h1S add 360 sub 0.5 mul def} if m_C00CS 0 eq {/C00hSq C00h0S C00h1S add def } if %end special EQUATION (23) TO (26) %beg special EQUATIONS (16) TO (22) /C00LSq C00L0S C00L1S add 0.5 mul def /C00CSq C00C0S C00C1S add 0.5 mul def /C00SL C00LSq 50 sub dup mul 0.015 mul C00LSq 50 sub dup mul 20 add sqrt div 1 add def /C00SC 0.045 C00CSq mul 1 add def %beg special T, RT, d_D, RC /C00T C00hSq 30 sub cos -0.17 mul C00hSq 2 mul cos 0.24 mul add C00hSq 3 mul 6 add cos 0.32 mul add C00hSq 4 mul 63 sub cos 0.20 mul sub 1 add def /C00SH 0.015 C00CSq mul C00T mul 1 add def /C00RC C00CSq 7 exp C00CSq 7 exp 25 7 exp add 0.000001 add div 0.000001 add sqrt 2 mul def /expDT C00hSq 275 sub 25 div dup mul def /econst 2.718281 def /C00DT 30 econst expDT neg exp mul def /C00RT C00DT 2 mul sin neg C00RC mul def %end special T, RT, d_D, RC %end special EQUATIONS (16) TO (22) %beg special EQUATION (15) /C00KL 1.0 def /C00KC 1.0 def /C00KH 1.0 def /d_C00LSN d_C00LS C00KL div C00SL div def /d_C00CSN d_C00CS C00KC div C00SC div def /d_C00HSN d_C00HS C00KH div C00SH div def d_C00LCHi i d_C00LSN dup mul d_C00CSN dup mul add d_C00HSN dup mul add d_C00CSN d_C00HSN mul C00RT mul add 0.000001 add sqrt put /a_C00LCH 1.43 def /b_C00LCH 0.70 def d_C00LCHmi i d_C00LCHi i get b_C00LCH exp a_C00LCH mul put %end special EQUATION (15) %END CIEDE2000=C00 %BEG LABJND=C85 /X0 XYZ i21 3 add get 0.001 mul def %X0 /Y0 XYZ i21 4 add get 0.001 mul def %Y0 /Z0 XYZ i21 5 add get 0.001 mul def %Z0 /X1 XYZ i21 6 add get 0.001 mul def %X1 /Y1 XYZ i21 7 add get 0.001 mul def %Y1 /Z1 XYZ i21 8 add get 0.001 mul def %Z1 /Yq Y0 Y1 add 0.5 mul def /d_Y Y1 Y0 sub def /a085 X0 Y0 0.000001 add div def /b085 Z0 Y0 0.000001 add div 0.4 mul neg def /a185 X1 Y1 0.000001 add div def /b185 Z1 Y1 0.000001 add div 0.4 mul neg def /an85 XW YW 0.000001 add div def /bn85 ZW YW 0.000001 add div 0.4 mul neg def /d_a085 a085 an85 sub def /d_b085 b085 bn85 sub def /d_a185 a185 an85 sub def /d_b185 b185 bn85 sub def /a0"85 d_a085 d_a085 abs 0.5 mul 1 add div an85 add def /b0"85 d_b085 d_b085 abs 0.5 mul 1 add div bn85 add def /a1"85 d_a185 d_a185 abs 0.5 mul 1 add div an85 add def /b1"85 d_b185 d_b185 abs 0.5 mul 1 add div bn85 add def /d_Y Y1 Y0 sub def /d_a"85 a1"85 a0"85 sub def /d_b"85 b1"85 b0"85 sub def /s85 0.0170 def /q85 0.0058 def /g85 1.0000 def %not used /a0085 1.0 def /b0085 1.8 def /Y0085 1.5 def d_C85LCHi i d_Y dup mul a0085 d_a"85 mul Yq mul dup mul add b0085 d_b"85 mul Yq mul dup mul add 0.000001 add sqrt Y0085 mul q85 Yq mul s85 add div 0.1 mul put /a_C85LCH 1.17 def /b_C85LCH 0.35 def d_C85LCHmi i d_C85LCHi i get b_C85LCH exp a_C85LCH mul put %END LABJND=C85 %BEG LABHNU_1977=C77 /S77L 1 def /S77A 1 def /S77B 1 def /K77L 1 def /K77A 1 def /K77B 1 def %C77a'=(x/y+1/6)**(1/3)/4 %C77b'=-(z/y+1/6)**(1/3)/12 %C77L*=L*CIE %C77a*=500*[C77a'-C77a'n]*Y**(1/3) %C77b*=500*[C77b'-C77b'n]*Y**(1/3) /C77a'0 X0 Y0 FL add div 1 6 div add 0.3333 exp 4 div def /C77a'1 X1 Y1 FL add div 1 6 div add 0.3333 exp 4 div def /C77a'n XW YW FL add div 1 6 div add 0.3333 exp 4 div def /C77b'0 Z0 Y0 FL add div 1 6 div add 0.3333 exp 12 div neg def /C77b'1 Z1 Y1 FL add div 1 6 div add 0.3333 exp 12 div neg def /C77b'n ZW YW FL add div 1 6 div add 0.3333 exp 12 div neg def /C77a*0 C77a'0 C77a'n sub 500 mul Y0 1 3 div exp mul def /C77a*1 C77a'1 C77a'n sub 500 mul Y1 1 3 div exp mul def /C77b*0 C77b'0 C77b'n sub 500 mul Y0 1 3 div exp mul def /C77b*1 C77b'1 C77b'n sub 500 mul Y1 1 3 div exp mul def d_C77LCHi i CIEL*1 CIEL*0 sub K77L div S77L div dup mul C77a*1 C77a*0 sub K77A div S77A div dup mul add C77b*1 C77b*0 sub K77B div S77B div dup mul add 0.00000001 add sqrt put %END LABHNU_1977=C77 %BEG LABHNU1=C78 /S78L 1 def /S78A 1 def /S78B 1 def /K78L 1 def /K78A 1 def /K78B 1 def %C78a'=(x/y+1)/15 %C78b'=-(z/y+1/6)**(1/3)/12 %C78L*=L*CIE %C78a*=500*[C78a'-C78a'n]*Y**(1/3) %C78b*=500*[C78b'-C78b'n]*Y**(1/3) /C78a'0 X0 Y0 FL add div 1 add 15 div def /C78a'1 X1 Y1 FL add div 1 add 15 div def /C78a'n XW YW FL add div 1 add 15 div def /C78b'0 Z0 Y0 FL add div 1 6 div add 0.3333 exp 12 div neg def /C78b'1 Z1 Y1 FL add div 1 6 div add 0.3333 exp 12 div neg def /C78b'n ZW YW FL add div 1 6 div add 0.3333 exp 12 div neg def /C78a*0 C78a'0 C78a'n sub 500 mul Y0 1 3 div exp mul def /C78a*1 C78a'1 C78a'n sub 500 mul Y0 1 3 div exp mul def /C78b*0 C78b'0 C78b'n sub 500 mul Y0 1 3 div exp mul def /C78b*1 C78b'1 C78b'n sub 500 mul Y0 1 3 div exp mul def d_C78LCHi i CIEL*1 CIEL*0 sub K78L div S78L div dup mul C78a*1 C78a*0 sub K78A div S78A div dup mul add C78b*1 C78b*0 sub K78B div S78B div dup mul add 0.00000001 add sqrt put %END LABHNU1_1978-C78 %BEG LABHNU2_1979=C79 /S79L 1 def /S79A 1 def /S79B 1 def /K79L 1 def /K79A 1 def /K79B 1 def %C79a'=(x/y+1/6)**(2/3)/15 %C79b'=-(z/y+1/6)**(1/3)/12 %C79L*=L*CIE %C79a*=500*[C79a'-C79a'n]*Y**(1/3) %C79b*=500*[C79b'-C79b'n]*Y**(1/3) /C79a'0 X0 Y0 FL add div 1 6 div add 0.6667 exp 15 div def /C79a'1 X1 Y1 FL add div 1 6 div add 0.6667 exp 15 div def /C79a'n XW YW FL add div 1 6 div add 0.6667 exp 15 div def /C79b'0 Z0 Y0 FL add div 1 6 div add 0.3333 exp 12 div neg def /C79b'1 Z1 Y1 FL add div 1 6 div add 0.3333 exp 12 div neg def /C79b'n ZW YW FL add div 1 6 div add 0.3333 exp 12 div neg def /C79a*0 C79a'0 C79a'n sub 500 mul Y0 1 3 div exp mul def /C79a*1 C79a'1 C79a'n sub 500 mul Y1 1 3 div exp mul def /C79b*0 C79b'0 C79b'n sub 500 mul Y0 1 3 div exp mul def /C79b*1 C79b'1 C79b'n sub 500 mul Y1 1 3 div exp mul def d_C79LCHi i CIEL*1 CIEL*0 sub K79L div S79L div dup mul C79a*1 C79a*0 sub K79A div S79A div dup mul add C79b*1 C79b*0 sub K79B div S79B div dup mul add 0.00000001 add sqrt put %END LABHNU2_1979=C79 } bind def %END procedure proc_coldiff %******************************************************************** %******************************************************************** /proc_colcode {%BEG procedure proc_colcode %NRXi calculation, XYZ_i21_(16,17)-change based on CIE(Lab*)(1,0) NRLi i CIEL*0 put %116. FYYN mul 16. sub def NRAi i CIEa*0 put %500. FXXN FYYN sub mul def NRBi i CIEb*0 put %200. FYYN FZZN sub mul def NRCi i CIEC*ab0 put %CIEa*0 dup mul %CIEb*0 dup mul add 0.0001 add sqrt def NRHi i CIEhab0 put %CIEb*0 CIEa*0 0.0001 add atan def NR3i i 0 put %default CIEC*ab0 3 le {%CIEC*ab0<=3,>3 NR3i i 1 put } %CIEC*ab0<=3 { %CIEC*ab0>3 CIEhab0 337.5 ge CIEhab0 022.5 lt and {NR3i i 2 put} if CIEhab0 022.5 ge CIEhab0 067.5 lt and {NR3i i 3 put} if CIEhab0 067.5 ge CIEhab0 112.5 lt and {NR3i i 4 put} if CIEhab0 112.5 ge CIEhab0 167.5 lt and {NR3i i 5 put} if CIEhab0 167.5 ge CIEhab0 202.5 lt and {NR3i i 6 put} if CIEhab0 202.5 ge CIEhab0 247.5 lt and {NR3i i 7 put} if CIEhab0 247.5 ge CIEhab0 292.5 lt and {NR3i i 8 put} if CIEhab0 292.5 ge CIEhab0 337.5 lt and {NR3i i 9 put} if } ifelse %CIEC*abm<=3,>3 /d_CIEL10 CIEL*1 CIEL*0 sub def /d_CIEA10 CIEa*1 CIEa*0 sub def /d_CIEB10 CIEb*1 CIEb*0 sub def /d_CIEC10 d_CIEA10 dup mul d_CIEB10 dup mul add FL add sqrt def /d_CIEH10 d_CIEB10 d_CIEA10 FL add atan def d_CIEC10 0.1 le {/d_CIEH10 0 def} if NR4i i 0 put %default d_CIEL10 d_CIEC10 ge {%d_CIEL*>=d_CIEC* or d_CIEL*=d_CIEC* { %d_CIEL*=d_CIEC* or d_CIEL*=0 nx 0.5 ge {%nx>=0.5 /nx nx 0.5 add cvi def nx 9 le {(0) show} if nx 99 le {(0) show} if nx 6 string cvs show } if nx -0.5 le {%nx<=-0.5 /nx nx 0.5 sub cvi def nx abs 99 le {(0) show} if nx 6 string cvs show } if %nx>=0 } def /cvi02xshow {/nx exch def %with round nx abs 0.5 lt {%|nx|<=0.5 ( ) show nx cvi 6 string cvs show } if %nx>=0 nx 0.5 ge {%nx>=0.5 /nx nx 0.5 add cvi def nx 9 le {( ) show} if nx 99 le {( ) show} if nx 6 string cvs show } if nx -0.5 le {%nx<=-0.5 /nx nx 0.5 sub cvi def nx abs 99 le {( ) show} if nx 6 string cvs show } if %nx>=0 } def /cvi03nshow {/nx exch def %with round nx abs 0.5 lt {%nx=0 (000) show nx cvi 7 string cvs show } if %|nx|<=0.5 nx 0.5 ge {%nx>=0.5 /nx nx 0.5 add cvi def nx 9 le {(0) show} if nx 99 le {(0) show} if nx 999 le {(0) show} if nx 7 string cvs show } if nx -0.5 le {%nx<=-0.5 /nx nx 0.5 sub cvi def nx abs 9 le {(0) show} if nx abs 99 le {(0) show} if nx 7 string cvs show } if %nx>=0 } def /cvi03xshow {/nx exch def %with round nx abs 0.5 lt {%|nx|<=0.5 ( ) show nx cvi 7 string cvs show } if %nx>=0 nx 0.5 ge {%nx>=0.5 /nx nx 0.5 add cvi def nx 9 le {( ) show} if nx 99 le {( ) show} if nx 999 le {( ) show} if nx 7 string cvs show } if nx -0.5 le {%nx<=-0.5 /nx nx 0.5 sub cvi def nx abs 9 le {( ) show} if nx abs 99 le {( ) show} if nx 7 string cvs show } if %nx>=0 } def % %remark every new moveto creates a space in macps2pdf! %therefore on any line end a space is produced in macps2pdf %this space will be transferred to a line fees \r. %for macps2pdf output to ascii only " % " = " %\r" is necessary % %END PROG_03.PS 141122 %******************************************************************** %%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 6 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 %********************************************************** /iai -1 def %count d_CIELAB all /i2i -1 def %count d_CIELAB<=XX /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 %******************************************* /XYZ_LABt 21 array def %text for Lab*-header xchart3 1 le {%xchart3<=1 /XYZ_LABt [(%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*)] def } %xchart3<=1 {%xchart3>1 /XYZ_LABt [(%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*)] def } ifelse %xchart3<=1,>1 /xpos_LABt 21 array def %x-position only for LAB-header /xpos_LABt %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %XYZS, XYZ0, XYZ1, DY [0000 0700 1350 2000 2650 3300 3950 4600 5250 5900 %10 %11 %12 %13 %14 %15 %16 DE*(6X)+NR 6550 7050 7550 8050 8550 9050 9550 %17 %18 %19 %20 %21 %22 CODE, L*, a*, b* % 10270 11300 11750 12200 12500] def /xpos_LABd 21 array def %x-position for LAB-data /xpos_LABd %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %XYZS, XYZ0, XYZ1, DY [0000 0700 1350 2000 2650 3300 3950 4600 5250 5900 %10 %11 %12 %13 %14 %15 %16 DE*(6X)+NR 6550 7050 7550 8050 8550 9050 9550 %17 %18 %19 %20 %21 %22 CODE, L*, a*, b*, % 10270 11150 11600 12050 12500] def %********************************************************** /XYZ_LCHt 21 array def %text for LCh*-header xchart3 1 le {%xchart3<=1 /XYZ_LCHt [(%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*) (C*ab) (hab)] def } %xchart3<=1 {%xchart3>1 /XYZ_LCHt [(%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*) (C*ab) (hab)] def } ifelse %xchart3<=1,>1 /XYZ_LCHta 21 array def %text for header: average colour difference xchart3 1 le {%xchart3<=1 /XYZ_LCHta [(%XS) (YS) (ZS) (X0) (Y0) (Z0) (X1) (Y1) (Z1) (DV) (aE*ab) (aE*CH) (aE*94) (aE*CM) (aE*00) (aE*85) (no.) (Code) (L*) (C*ab) (hab)] def } %xchart3<=1 {%xchart3>1 /XYZ_LCHta [(%XS) (YS) (ZS) (X0) (Y0) (Z0) (X1) (Y1) (Z1) (DV) (aE'ab) (aE'CH) (aE'94) (aE'CM) (aE'00) (aE'85) (no.) (Code) (L*) (C*ab) (hab)] def } ifelse %xchart3<=1,>1 /xpos_LCHt 21 array def %x-position only for LCH-header /xpos_LCHt %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %XYZS, XYZ0, XYZ1, DY [0000 0700 1350 2000 2650 3300 3950 4600 5250 5900 %10 %11 %12 %13 %14 %15 %16 DE*(6X)+NR 6550 7050 7550 8050 8550 9050 9550 %17 %18 %19 %20 %21 %22 CODE, L*, C*ab, hab* % 10270 11300 11650 12100 12500] def /xpos_LCHd 21 array def %x-position for LCH-data /xpos_LCHd %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %XYZS, XYZ0, XYZ1, DY [0000 0700 1350 2000 2650 3300 3950 4600 5250 5900 %10 %11 %12 %13 %14 %15 %16 DE*(6X)+NR 6550 7050 7550 8050 8550 9050 9550 %17 %18 %19 %20 %21 %22 CODE, L*, a*, b*, % 10270 11150 11600 12050 12500] def %********************************************************** /XYZS01 90 array def /XYZS01 [ % from Cui Three-terms CIEDE2000 copy.txt % XS YS ZS X0 Y0 Z0 X1 Y1 Z1 %Nr 94.8110 100.0000 107.3040 19.4100 28.4100 11.5766 19.5525 28.6400 10.5791 %01 94.8110 100.0000 107.3040 22.4800 31.6000 38.4800 22.5833 31.3700 36.7901 %02 94.8110 100.0000 107.3040 28.9950 29.5800 35.7500 28.7704 29.7400 35.6045 %03 94.8110 100.0000 107.3040 4.1400 8.5400 8.0300 4.4129 8.5100 8.6453 %04 94.8110 100.0000 107.3040 4.9600 3.7200 19.5900 4.6651 3.8100 17.7848 %05 94.8110 100.0000 107.3040 15.6000 9.2500 5.0200 15.9148 9.1500 4.3872 %06 94.8110 100.0000 107.3040 73.0000 78.0500 81.8000 73.9351 78.8200 84.5156 %07 94.8110 100.0000 107.3040 73.9950 78.3200 85.3060 69.1762 73.4000 79.7130 %08 94.8110 100.0000 107.3040 0.7040 0.7500 0.9720 0.613873 0.6500 0.851025 %09 94.8110 100.0000 107.3040 0.2200 0.2300 0.3250 0.093262 0.1000 0.145292 %10 ] def /CIEDE2000T 220 array def /CIEDE2000T [ % from Cui Three-terms CIEDE2000 copy.txt % line 1: h'm T Dh' DL' DC' DH' SL SC SH DQ RT DE00 %12 + 10 = 22 terms % line 2: q DL'' DC'' DH'' SC' SH' DL00 DC00 DH00 DE00 Difference between 4-term and 3-term %10 terms 132.08 1.3010 -2.25 0.2052 2.4648 -2.0018 1.1427 3.2946 1.9951 0.0000 0.0000 1.2644175 6.40119E-15 0.179608317 2.464820224 -2.001817359 3.294612838 1.995061279 0.179608317 0.748136532 -1.003386402 1.26441753 %01 188.82 0.9402 -2.75 -0.1922 -1.6226 -1.5490 1.1831 2.4549 1.4560 0.0002 0.0000 1.2629988 6.13236E-06 -0.162426622 -1.622644351 -1.549004443 2.454916428 1.455962172 -0.162426622 -0.66097743 -1.063904319 1.262998801 %02 310.03 0.6952 -11.79 0.1391 -1.7538 -1.3995 1.1586 1.3092 1.0717 4.2110 -0.0032 1.8731411 0.003955507 0.120068219 -1.759312192 -1.392549152 1.309239443 1.071656958 0.120068219 -1.343766567 -1.299435554 1.873141138 %03 176.43 1.0168 2.63 -0.0599 -4.2007 1.9430 1.2148 2.9105 1.6476 0.0000 0.0000 1.8644908 1.52711E-07 -0.049297618 -4.200686229 1.943001418 2.910490817 1.647554813 -0.049297618 -1.443291353 1.179324295 1.864490809 %04 291.38 0.3636 -3.91 0.3098 -5.7215 -3.2653 1.4014 3.1597 1.2617 19.5282 -1.2537 2.0372729 0.268583415 0.221063245 -6.382840238 -1.629972018 4.192603661 1.220381046 0.221063245 -1.522404871 -1.335625478 2.037272924 %05 21.88 0.9239 1.78 -0.1897 3.5189 1.6444 1.1943 3.3888 1.7357 0.0000 0.0000 1.4145926 2.18565E-45 -0.15886474 3.518861297 1.644433525 3.388825131 1.73568391 -0.15886474 1.03837205 0.947426842 1.41459257 %06 167.10 1.1546 23.72 0.3501 -0.9751 1.1972 1.6110 1.1329 1.0511 0.0000 0.0000 1.4440459 3.21727E-11 0.21729529 -0.975145931 1.197171208 1.132890254 1.051143632 0.21729529 -0.860759396 1.138922571 1.444045914 %07 218.44 1.3916 -20.39 -2.2876 0.3029 -0.4850 1.5930 1.0620 1.0288 0.1794 0.0000 1.5381213 3.87307E-06 -1.436030927 0.302943876 -0.485013295 1.062026224 1.028770911 -1.436030927 0.285250844 -0.47144927 1.538121348 %08 263.00 0.9556 6.41 -0.9033 -0.2302 0.2622 1.6517 1.1057 1.0337 23.8303 -0.0004 0.6377673 0.001393266 -0.546875864 -0.229800251 0.262474548 1.105685785 1.033664494 -0.546875864 -0.207835041 0.253926249 0.637767321 %09 268.09 0.7827 -15.81 -1.1743 -0.5817 -0.2198 1.7246 1.0383 1.0100 27.7922 0.0000 0.9082424 0.000108395 -0.680917277 -0.581712716 -0.219774853 1.038267732 1.009983453 -0.680917277 -0.560272364 -0.217602429 0.908242411 %10 ] def /CIEDE2000S 360 array def %36x10=360 /CIEDE2000S [ %Desktop/Cui_14_15/Three-terms CIEDE2000_01.txt %DE00 Difference between 4-term and 3-term %pair X10 Y10 Z10 L* "f(X/X0,10)" "f(Y/Y0,10)" "f(Z/Z0,10)" L'm a* b* C*ab %"C*ab,m" G a' C' C'm h' 19.41 28.41 11.5766 60.2574 0.5894 0.6574 0.4761 0 -34.0099 36.2677 49.7194 0 0 -34.0678 49.7590 0 133.21 133.21 19.5525 28.64 10.5791 60.4626 0.5908 0.6592 0.4620 60.3600 -34.1751 39.4387 52.1857 50.9525 0.001702698 -34.2333 52.2238 50.9914 130.96 130.96 %01 22.48 31.6 38.48 63.0109 0.6189 0.6811 0.7105 0 -31.0961 -5.8663 31.6447 0 0 -32.6195 33.1428 0 -169.80 190.20 22.5833 31.37 36.7901 62.8187 0.6199 0.6795 0.6999 62.9148 -29.7946 -4.0864 30.0735 30.8591 0.048988015 -31.2542 31.5202 32.3315 -172.55 187.45%02 28.995 29.58 35.75 61.2901 0.6737 0.6663 0.6932 0 3.7196 -5.3901 6.5490 0 0 5.5668 7.7488 0 -44.08 315.92 28.7704 29.74 35.6045 61.4292 0.6720 0.6675 0.6923 61.3597 2.2480 -4.9620 5.4474 5.9982 0.496617457 3.3643 5.9950 6.8719 -55.86 304.14 %03 4.14 8.54 8.03 35.0831 0.3521 0.4404 0.4214 0 -44.1164 3.7933 44.2792 0 0 -44.3939 44.5557 0 175.12 175.12 4.4129 8.51 8.6453 35.0232 0.3597 0.4399 0.4319 35.0532 -40.0716 1.5901 40.1031 42.1911 0.006290913 -40.3237 40.3550 42.4554 177.74 177.74 %04 4.96 3.72 19.59 22.7233 0.3740 0.3338 0.5673 0 20.0904 -46.6940 50.8326 0 0 20.1424 50.8532 0 -66.67 293.33 4.6651 3.81 17.7848 23.0331 0.3664 0.3365 0.5493 22.8782 14.9730 -42.5619 45.1188 47.9757 0.002588143 15.0118 45.1317 47.9924 -70.57 289.43 %05 15.6 9.25 5.02 36.4612 0.5480 0.4523 0.3603 0 47.8580 18.3852 51.2680 0 0 47.9197 51.3256 0 20.99 20.99 15.9148 9.15 4.3872 36.2715 0.5516 0.4506 0.3445 36.3664 50.5065 21.2231 54.7844 53.0262 0.001289453 50.5717 54.8444 53.0850 22.77 22.77 %06 73 78.05 81.8 90.8027 0.9165 0.9207 0.9135 0 -2.0831 1.4410 2.5329 0 0 -3.1244 3.4407 0 155.24 155.24 73.9351 78.82 84.5156 91.1528 0.9204 0.9237 0.9235 90.9778 -1.6435 0.0447 1.6441 2.0885 0.499915743 -2.4651 2.4655 2.9531 178.96 178.96 %07 73.995 78.32 85.306 90.9257 0.9207 0.9218 0.9264 0 -0.5406 -0.9208 1.0677 0 0 -0.8108 1.2269 0 -131.37 228.63 69.1762 73.4 79.713 88.6381 0.9003 0.9021 0.9057 89.7819 -0.8985 -0.7239 1.1538 1.1108 0.499990756 -1.3477 1.5298 1.3784 -151.76 208.24 %08 0.704 0.75 0.972 6.7748 0.1958 0.1963 0.2085 0 -0.2908 -2.4247 2.4421 0 0 -0.4362 2.4637 0 -100.20 259.80 0.613873 0.65 0.851025 5.8715 0.1883 0.1885 0.1997 6.3231 -0.0985 -2.2286 2.2308 2.3364 0.499875227 -0.1477 2.2335 2.3486 -93.79 266.21 %09 0.22 0.23 0.325 2.0776 0.1560 0.1558 0.1615 0 0.0795 -1.1350 1.1378 0 0 0.1192 1.1412 0 -84.01 275.99 0.093262 0.1 0.145292 0.9033 0.1456 0.1457 0.1485 1.4904 -0.0636 -0.5514 0.5550 0.8464 0.49999643 -0.0954 0.5595 0.8504 -99.82 260.18 %10 ] def %********************************************************** %STOP0 /xchartm 5 def /xchartl xchart def %0 1 xchartm {/xchartl exch def %xchartl=0,5 /iim 9 def %iim x 21 data for CIELAB/CIELCH=1 0 1 iim {/i exch def %i=0,iim /i09 i 09 mul def /i21 i 21 mul def %standard names XYZS01 -> XYZ XYZ i21 0 add XYZS01 i09 0 add get 1000 mul put %XW XYZ i21 1 add XYZS01 i09 1 add get 1000 mul put %YW XYZ i21 2 add XYZS01 i09 2 add get 1000 mul put %ZW XYZ i21 3 add XYZS01 i09 3 add get 1000 mul put %X0 XYZ i21 4 add XYZS01 i09 4 add get 1000 mul put %Y0 XYZ i21 5 add XYZS01 i09 5 add get 1000 mul put %Z0 XYZ i21 6 add XYZS01 i09 6 add get 1000 mul put %X1 XYZ i21 7 add XYZS01 i09 7 add get 1000 mul put %Y1 XYZ i21 8 add XYZS01 i09 8 add get 1000 mul put %Z1 XYZ i21 9 add 1 1000 mul put %DV %code as usual /XW XYZ i21 0 add get 0.001 mul def %XW /YW XYZ i21 1 add get 0.001 mul def %YW /ZW XYZ i21 2 add get 0.001 mul def %ZW /X0 XYZ i21 3 add get 0.001 mul def %X0 /Y0 XYZ i21 4 add get 0.001 mul def %Y0 /Z0 XYZ i21 5 add get 0.001 mul def %Z0 /X1 XYZ i21 6 add get 0.001 mul def %X1 /Y1 XYZ i21 7 add get 0.001 mul def %Y1 /Z1 XYZ i21 8 add get 0.001 mul def %Z1 /DV 1000 def %DV %STOPP %defines all d_CIELABi and others up to d_C85LCHi (i=0,308) proc_coldiff proc_colcode XYZ i21 10 add d_CIELABi i get 1000 mul put %d_CIELAB XYZ i21 11 add d_CIELCHi i get 1000 mul put %d_CIELCH xchart3 0 eq {%xchart3=0 XYZ i21 12 add d_C94LCHi i get 1000 mul put %d_CIE94 XYZ i21 13 add d_CMCLCHi i get 1000 mul put %d_CMC(l:c=1:1) XYZ i21 14 add d_C00LCHi i get 1000 mul put %d_CIEDE2000 XYZ i21 15 add d_C85LCHi i get 1000 mul put %d_LABJND 1985 } if %xchart3=0 xchart3 1 eq {%xchart3=1 XYZ i21 12 add d_CM2LCHi i get 1000 mul put %d_CM2(l:c=1:2) XYZ i21 13 add d_C77LCHi i get 1000 mul put %d_LABHNU_1977 XYZ i21 14 add d_C78LCHi i get 1000 mul put %d_LABHNU1_1978 XYZ i21 15 add d_C79LCHi i get 1000 mul put %d_LABHNU2_1979 } if %xchart3=1 xchart3 2 eq {%xchart3=2 XYZ i21 12 add d_C94LCHmi i get 1000 mul put %d_CIE94m XYZ i21 13 add d_CMCLCHmi i get 1000 mul put %d_CMCm(l:c=1:1) XYZ i21 14 add d_C00LCHmi i get 1000 mul put %d_CIEDE2000m XYZ i21 15 add d_C85LCHmi i get 1000 mul put %d_LABJND 1985m } if %xchart3=2 } for %i=0,iim %now i=iim %STOP1 %all data XYZ (iim x 21 data available %************************************************************** % second part for delta_visual=1 gsave 5 /Times-ISOL1 FS 175 85 moveto (WG170-7N) show 72 90 translate /yhoe 8500 def 0.02 MM dup scale 15 setlinewidth 0.0 0.0 0.0 0.0 setcmyk_olvcolor 0 0 moveto 12700 0 rlineto 0 yhoe rlineto -12700 0 rlineto closepath fill 0.0 0.0 0.0 1.0 setcmyk_olvcolor 0 0 moveto 12700 0 rlineto 0 yhoe rlineto -12700 0 rlineto closepath stroke %************************************************************* CBSK /xp0 0050 def /xp1 6650 def /xdel 620 def /xdel0 650 def /xdel1 550 def /ydel 160 def /yhot yhoe ydel 1 mul sub def /cvi9show {cvi 9 string cvs show} def 0 1 20 {/k exch def %k=0,20 xp0 xpos_LABt k get add yhoe ydel 0.9 mul sub moveto XYZ_LABt k get show } for %k=0,20 ( % ) show %************************************************************* %large loop /i1 0 def /i2 9 def i1 1 i2 {/i exch def %i=i1,i2 /i10 i 10 mul def /i21 i 21 mul def /XW XYZ i21 0 add get 0.001 mul def %XW /YW XYZ i21 1 add get 0.001 mul def %YW /ZW XYZ i21 2 add get 0.001 mul def %ZW /X0 XYZ i21 3 add get 0.001 mul def %X0 /Y0 XYZ i21 4 add get 0.001 mul def %Y0 /Z0 XYZ i21 5 add get 0.001 mul def %Z0 /X1 XYZ i21 6 add get 0.001 mul def %X1 /Y1 XYZ i21 7 add get 0.001 mul def %Y1 /Z1 XYZ i21 8 add get 0.001 mul def %Z1 /DX1_0 X1 X0 sub def /DY1_0 Y1 Y0 sub def /DZ1_0 Z1 Z0 sub def xchart3 0 eq {%xchart3=0 xchart4 0 eq {/d_CXXLCH d_CIELCHi i get def} if xchart4 1 eq {/d_CXXLCH d_C94LCHi i get def} if xchart4 2 eq {/d_CXXLCH d_CMCLCHi i get def} if xchart4 3 eq {/d_CXXLCH d_C00LCHi i get def} if xchart4 4 eq {/d_CXXLCH d_C85LCHi i get def} if } if %xchart3=0 xchart3 1 eq {%xchart3=1 xchart4 0 eq {/d_CXXLCH d_CIELCHi i get def} if xchart4 1 eq {/d_CXXLCH d_CM2LCHi i get def} if xchart4 2 eq {/d_CXXLCH d_C77LCHi i get def} if xchart4 3 eq {/d_CXXLCH d_C78LCHi i get def} if xchart4 4 eq {/d_CXXLCH d_C79LCHi i get def} if } if %xchart3=1 xchart3 2 eq {%xchart3=2 xchart4 0 eq {/d_CXXLCH d_CIELCHmi i get def} if xchart4 1 eq {/d_CXXLCH d_C94LCHmi i get def} if xchart4 2 eq {/d_CXXLCH d_CMCLCHmi i get def} if xchart4 3 eq {/d_CXXLCH d_C00LCHmi i get def} if xchart4 4 eq {/d_CXXLCH d_C85LCHmi i get def} if } if %xchart3=2 %STOP2 /ivis 1 def ivis 1 eq {%ivis=1 %special visual difference, can be 1000 or different (_WI, _LE, _BF) /d_CXXLCH XYZ i21 9 add get 0.001 mul def %visual difference } if %ivis=1 DX1_0 abs FL le %less than FL=0.000001 {/DX1_0 0 def} {/DX1_0 DX1_0 d_CXXLCH FL add div def} ifelse DY1_0 abs FL le {/DY1_0 0 def} {/DY1_0 DY1_0 d_CXXLCH FL add div def} ifelse DZ1_0 abs FL le {/DZ1_0 0 def} {/DZ1_0 DZ1_0 d_CXXLCH FL add div def} ifelse /X1 X0 DX1_0 add def X1 FY lt {/X1 FY def} if %less than XYZ=0.001 /Y1 Y0 DY1_0 add def Y1 FY lt {/Y1 FY def} if /Z1 Z0 DZ1_0 add def Z1 FY lt {/Z1 FY def} if %new XYZ for d_CIEDE2000=1 XYZ i21 06 add X1 1000 mul put %new X1, may be equal for ivis=1 XYZ i21 07 add Y1 1000 mul put %new Y1 XYZ i21 08 add Z1 1000 mul put %new Z1 %STOPG proc_coldiff %STOPG0 proc_colcode %STOPG2 xchart3 0 eq {%xchart3=0,1 XYZ i21 10 add d_CIELABi i get 1000 mul put %d_CIELAB XYZ i21 11 add d_CIELCHi i get 1000 mul put %d_CIELCH XYZ i21 12 add d_C94LCHi i get 1000 mul put %d_CIE94 XYZ i21 13 add d_CMCLCHi i get 1000 mul put %d_CMC(l:c=1:1) XYZ i21 14 add d_C00LCHi i get 1000 mul put %d_CIEDE2000 XYZ i21 15 add d_C85LCHi i get 1000 mul put %d_LABJND 1985 } if %xchart3=0 xchart3 1 eq {%xchart3=1 XYZ i21 10 add d_CIELABi i get 1000 mul put %d_CIELAB XYZ i21 11 add d_CIELCHi i get 1000 mul put %d_CIELCH XYZ i21 12 add d_CM2LCHi i get 1000 mul put %d_CM2(l:c=1:2) XYZ i21 13 add d_C77LCHi i get 1000 mul put %d_LABHNU_1977 XYZ i21 14 add d_C78LCHi i get 1000 mul put %d_LABHNU1_1978 XYZ i21 15 add d_C79LCHi i get 1000 mul put %d_LABHNU2_1979 } if %xchart3=0,1 xchart3 2 eq {%xchart3=2 XYZ i21 10 add d_CIELABmi i get 1000 mul put %d_CIELABm XYZ i21 11 add d_CIELCHmi i get 1000 mul put %d_CIELCHm XYZ i21 12 add d_C94LCHmi i get 1000 mul put %d_CIE94m XYZ i21 13 add d_CMCLCHmi i get 1000 mul put %d_CMCm(l:c=1:1) XYZ i21 14 add d_C00LCHmi i get 1000 mul put %d_CIEDE2000m XYZ i21 15 add d_C85LCHmi i get 1000 mul put %d_LABJND 1985m } if %xchart3=2 XYZ i21 16 add XYZ i21 16 add get i add put %add sample number CBSK /xp0 0050 def /xp1 6650 def /xdel 620 def /xdel0 650 def /xdel1 550 def /ydel 160 def /yhot yhoe ydel 1 mul sub def /cvi9show {cvi 9 string cvs show} def i i1 eq {%i=i1 0 1 20 {/k exch def %k=0,20 xp0 xpos_LABt k get add yhoe ydel 0.9 mul sub moveto XYZ_LABt k get show } for %k=0,20 ( % ) show xp0 yhoe ydel 1.9 mul sub moveto (%CIEXYZ*1000 data for iim=) show iim 1 add cvishow ( colours, CIE data XYZ0 and XYZ1 for delta_) show xchart3 0 eq {%xchart3=0 xchart4 0 eq {(E*ab=) show} if xchart4 1 eq {(E*94=) show} if xchart4 2 eq {(E*MC=) show} if xchart4 3 eq {(E*00=) show} if xchart4 4 eq {(e*85=) show} if } if %xchart3=0 xchart3 1 eq {%xchart3=1 xchart4 0 eq {(E*ab=) show} if xchart4 1 eq {(E*M2=) show} if xchart4 2 eq {(E*77=) show} if xchart4 3 eq {(E*78=) show} if xchart4 4 eq {(e*79=) show} if } if %xchart3=1 xchart3 2 eq {%xchart3=2 xchart4 0 eq {(E'ab=) show} if xchart4 1 eq {(E'94=) show} if xchart4 2 eq {(E'MC=) show} if xchart4 3 eq {(E'00=) show} if xchart4 4 eq {(e'85=) show} if } if %xchart3=2 (delta_) show xchart3 0 eq {%xchart3=0 xchart4 0 eq {(E*CIELAB=CIELCH=1) show} if xchart4 1 eq {(E*CIE94=1) show} if xchart4 2 eq {(E*CMC(l:c=1:1)=1) show} if xchart4 3 eq {(E*CIEDE2000=1) show} if xchart4 4 eq {(E*LABJND_85/10=1) show} if } if %xchart3=0 xchart3 1 eq {%xchart3=1 xchart4 0 eq {(E*CIELAB=CIELCH=1) show} if xchart4 1 eq {(E*CM2(l:c=1:2)=1) show} if xchart4 2 eq {(E*LABHNU_1977=1) show} if xchart4 3 eq {(E*LABHNU1_1978=1) show} if xchart4 4 eq {(E*LABHNU2_1979=1) show} if } if %xchart3=1 xchart3 2 eq {%xchart3=2 xchart4 0 eq {(E'CIELAB=CIELCH=1) show} if xchart4 1 eq {(E'CIE94=1) show} if xchart4 2 eq {(E'CMC(l:c=1:1)=1) show} if xchart4 3 eq {(E'CIEDE2000=1) show} if xchart4 4 eq {(E'LABJND_85/10=1) show} if } if %xchart3=2 (, and visual DV=1 expected for this formula %) show } if %i=i1 CSK %STOPF /i4 i 4 mul def %output of data 0 1 09 {/j exch def %j=0,09 xp0 xpos_LABd j get add yhot ydel i4 i1 sub 2 add mul sub moveto j 0 eq {( ) show} if XYZ i21 j add get 0.001 mul cvi36show } for %j=0,09 10 1 15 {/j exch def %j=10,15 xp0 xpos_LABd j get add yhot ydel i4 i1 sub 2 add mul sub moveto XYZ i21 j add get 0.001 mul cvi34show } for %j=10,15 xp0 xpos_LABd 16 get add yhot ydel i4 i1 sub 2 add mul sub moveto XYZ i21 16 add get cvi9show xp0 xpos_LABd 17 get add yhot ydel i4 i1 sub 2 add mul sub moveto (\050) show XYZ i21 17 add get cvi04show i ij0 ge i ij1 le and {ncodeWN show} if i ij2 ge i ij3 le and {ncodeRG show} if i ij4 ge i ij5 le and {ncodeBY show} if (\051) show xp0 xpos_LABd 18 get add yhot ydel i4 i1 sub 2 add mul sub moveto NRLi i get cvi02xshow xp0 xpos_LABd 19 get add yhot ydel i4 i1 sub 2 add mul sub moveto NRAi i get cvi03xshow xp0 xpos_LABd 20 get add yhot ydel i4 i1 sub 2 add mul sub moveto NRBi i get cvi03xshow xp0 xpos_LABd 21 get add yhot ydel i4 i1 sub 2 add mul sub moveto (%) show xchartl 0 eq {%xchartl=0 /text0 8 array def /text0 [ (X10,0) (Y10,0) (Z10,0) (L*10,0) (f(X10,0)) (f(Y10,0)) (f(Z10,0)) (L'm)] def 0 1 7 {/j exch def %j=0,7 xp0 j 1000 mul add yhot ydel i4 i1 sub 3 add mul sub moveto text0 j get show } for %j=0,7 0 1 7 {/j exch def %j=0,6 xp0 j 1000 mul add yhot ydel i4 i1 sub 4 add mul sub moveto /j18 j def CIEDE2000S i 36 mul j18 add get 1000 mul cvi03xshow } for %j=0,7 xp0 0 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto X0 1000 mul cvi03xshow xp0 1 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto Y0 1000 mul cvi03xshow xp0 2 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto Z0 1000 mul cvi03xshow xp0 3 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto CIEL*0 1000 mul cvi03xshow xp0 4 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto FXXN0 1000 mul cvi03xshow xp0 5 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto FYYN0 1000 mul cvi03xshow xp0 6 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto FZZN0 1000 mul cvi03xshow xp0 7 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto 0 1000 mul cvi03xshow } if %xchartl=0 xchartl 1 eq {%xchartl=1 /text1 8 array def /text1 [ (X10,1) (Y10,1) (Z10,1) (L*10,1) (f(X10,1)) (f(Y10,1)) (f(Z10,1)) (L'm)] def 0 1 7 {/j exch def %j=0,7 xp0 j 1000 mul add yhot ydel i4 i1 sub 3 add mul sub moveto text1 j get show } for %j=0,7 0 1 7 {/j exch def %j=0,6 /j18 18 j add def xp0 j 1000 mul add yhot ydel i4 i1 sub 4 add mul sub moveto CIEDE2000S i 36 mul j18 add get 1000 mul cvi03xshow } for %j=0,7 xp0 0 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto X1 1000 mul cvi03xshow xp0 1 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto Y1 1000 mul cvi03xshow xp0 2 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto Z1 1000 mul cvi03xshow xp0 3 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto CIEL*1 1000 mul cvi03xshow xp0 4 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto FXXN1 1000 mul cvi03xshow xp0 5 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto FYYN1 1000 mul cvi03xshow xp0 6 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto FZZN1 1000 mul cvi03xshow xp0 7 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00LSq 1000 mul cvi03xshow } if %xchartl=1 xchartl 2 eq {%xchartl=2 /text2 12 array def /text2 [ (a*0) (b*0) (C*ab,0) (C*abm,0) (G0) (a'0) (c'0) (c'm0) (h0) (h'0)] def 0 1 9 {/j exch def %j=0,9 xp0 j 1000 mul add yhot ydel i4 i1 sub 3 add mul sub moveto text2 j get show } for %j=0,9 8 1 17 {/j exch def %j=8,17 xp0 j 8 sub 1000 mul add yhot ydel i4 i1 sub 4 add mul sub moveto /j18 j def CIEDE2000S i 36 mul j18 add get 1000 mul cvi03xshow } for %j=8,17 xp0 0 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto CIEa*0 1000 mul cvi03xshow xp0 1 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto CIEb*0 1000 mul cvi03xshow xp0 2 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto CIEC*ab0 1000 mul cvi03xshow xp0 3 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto 0 1000 mul cvi03xshow xp0 4 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto 0 1000 mul cvi03xshow xp0 5 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00a0S 1000 mul cvi03xshow xp0 6 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00C0S 1000 mul cvi03xshow xp0 7 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto 0 1000 mul cvi03xshow xp0 8 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00h0S 1000 mul cvi03xshow xp0 9 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00h0S 1000 mul cvi03xshow } if %xchartl=2 xchartl 3 eq {%xchartl=3 /text3 12 array def /text3 [ (a*1) (b*1) (C*ab,1) (C*abm,1) (G1) (a'1) (c'1) (c'm,1) (h1) (h'1)] def 0 1 9 {/j exch def %j=0,9 xp0 j 1000 mul add yhot ydel i4 i1 sub 3 add mul sub moveto text3 j get show } for %j=0,9 8 1 17 {/j exch def %j=8,17 xp0 j 8 sub 1000 mul add yhot ydel i4 i1 sub 4 add mul sub moveto /j18 18 j add def CIEDE2000S i 36 mul j18 add get 1000 mul cvi03xshow } for %j=8,17 xp0 0 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto CIEa*1 1000 mul cvi03xshow xp0 1 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto CIEb*1 1000 mul cvi03xshow xp0 2 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto CIEC*ab1 1000 mul cvi03xshow xp0 3 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto CIEC*ab 1000 mul cvi03xshow xp0 4 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto DEG 1000 mul cvi03xshow xp0 5 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00a1S 1000 mul cvi03xshow xp0 6 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00C1S 1000 mul cvi03xshow xp0 7 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00CSq 1000 mul cvi03xshow xp0 8 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00h1S 1000 mul cvi03xshow xp0 9 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00h1S 1000 mul cvi03xshow } if %xchartl=3 xchartl 4 eq {%xchartl=4 /text4 12 array def /text4 [ (h'm) (T) (del_h') (del_L') (del_C') (del_H') (SL) (SC) (SH) (del_T) (T) (del_E00)] def 0 1 11 {/j exch def %j=0,11 xp0 j 1000 mul add yhot ydel i4 i1 sub 3 add mul sub moveto text4 j get show } for %j=0,11 0 1 11 {/j exch def %j=0,11 xp0 j 1000 mul add yhot ydel i4 i1 sub 4 add mul sub moveto /j21 j 21 mul def CIEDE2000T i 22 mul j add get 1000 mul cvi03xshow } for %j=0,9 xp0 0 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00hSq 1000 mul cvi03xshow xp0 1 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00T 1000 mul cvi03xshow xp0 2 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto d_C00hS 1000 mul cvi03xshow xp0 3 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto d_C00LS 1000 mul cvi03xshow xp0 4 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto d_C00CS 1000 mul cvi03xshow xp0 5 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto d_C00HS 1000 mul cvi03xshow xp0 6 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00SL 1000 mul cvi03xshow xp0 7 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00SC 1000 mul cvi03xshow xp0 8 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00SH 1000 mul cvi03xshow xp0 9 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00DT 1000 mul cvi03xshow xp0 10 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00RT 1000 mul cvi03xshow xp0 11 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto d_C00LCHi i get 1000 mul cvi03xshow } if %xchartl=4 xchartl 5 eq {%xchartl=5 /text5 10 array def /text5 [ (Teta) (del_L") (del_C") (del_H") (Sc) (SH) (del_L00) (del_C00) (del_H00) (del_E00)] def 0 1 9 {/j exch def %j=0,9 xp0 j 1000 mul add yhot ydel i4 i1 sub 3 add mul sub moveto text5 j get show } for %j=0,9 0 1 9 {/j exch def %j=0,9 xp0 j 1000 mul add yhot ydel i4 i1 sub 4 add mul sub moveto /j21 j 21 mul def CIEDE2000T i 22 mul 12 add j add get 1000 mul cvi03xshow } for %j=0,9 xp0 0 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto %C00DT 1000 mul cvi03xshow (?) show xp0 1 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto d_C00LS 1000 mul cvi03xshow xp0 2 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto d_C00CS 1000 mul cvi03xshow xp0 3 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto d_C00HS 1000 mul cvi03xshow xp0 4 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00SC 1000 mul cvi03xshow xp0 5 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto C00SH 1000 mul cvi03xshow xp0 6 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto d_C00LSN 1000 mul cvi03xshow xp0 7 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto d_C00CSN 1000 mul cvi03xshow xp0 8 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto d_C00HSN 1000 mul cvi03xshow xp0 9 1000 mul add yhot ydel i4 i1 sub 5 add mul sub moveto d_C00LCHi i get 1000 mul cvi03xshow } if %xchartl=5 } for %i1,i2 showpage grestore %} for %xchartl=0,xchartm %%Trailer