Patch title: Release 94 bulk changes
Abstract:
File: /pliant/graphic/color/color.pli
Key:
    Removed line
    Added line
   
abstract
  [Tri values colors conversions] ; eol
  link "extra details" "http://www.cs.rit.edu/~ncs/color/t_c
  [ and ]
  link "sRGB spec" "http://www.w3.org/Graphics/Color/sRGB.ht


abstract
  [Tri values colors conversions] ; eol
  link "extra details" "http://www.cs.rit.edu/~ncs/color/t_c
  [ and ]
  link "sRGB spec" "http://www.w3.org/Graphics/Color/sRGB.ht


function linear v w -> u
function linear1 u -> l
  arg Float u l
  if u>9.03296295513076*0.008856
    l := ((u+0.16)/1.16) ^ 3
  else
    l := u/9.03296295513076

function 'cast ColorXYZ' lab -> xyz
  arg ColorLab lab ; arg ColorXYZ xyz
  xyz X := (linear1 lab:a*1.16/500.0 + lab:L/100.0) * ill_X
  xyz Y := (linear1 lab:L/100) * ill_Y
  xyz Z := (linear1 lab:L/100 - lab:b*1.16/200) * ill_Z


function linear2 v w -> u
  arg Float v w u
  u := v/w

function lab_linear xyz -> lab
  arg ColorXYZ xyz ; arg ColorLab lab
  arg Float v w u
  u := v/w

function lab_linear xyz -> lab
  arg ColorXYZ xyz ; arg ColorLab lab
  lab L := 100*(linear xyz:Y ill_Y)
  lab a := 500*((linear xyz:X ill_X)-(linear xyz:Y ill_Y))
  lab b := 200*((linear xyz:Y ill_Y)-(linear xyz:Z ill_Z))
  lab L := 100*(linear2 xyz:Y ill_Y)
  lab a := 500*((linear2 xyz:X ill_X)-(linear2 xyz:Y ill_Y))
  lab b := 200*((linear2 xyz:Y ill_Y)-(linear2 xyz:Z ill_Z))






export cie_rgb 'cast ColorLab' 'cast ColorLCh' 'cast ColorLa
export cie_rgb 'cast ColorXYZ' 'cast ColorLab' 'cast ColorLCh' 'cast ColorLab' lab_linear



function cmc_distance ref test l c -> d
  arg ColorXYZ ref test ; arg Float l c ; arg Float d
  d := cmc_distance (cast ref ColorLab) (cast test ColorLab)
 
function cmc_distance ref test -> d
  arg ColorXYZ ref test ; arg Float d
  d := cmc_distance (cast ref ColorLab) (cast test ColorLab)
 
export cmc_distance cmc_distance_l_parameter cmc_distance_c_



function cmc_distance ref test l c -> d
  arg ColorXYZ ref test ; arg Float l c ; arg Float d
  d := cmc_distance (cast ref ColorLab) (cast test ColorLab)
 
function cmc_distance ref test -> d
  arg ColorXYZ ref test ; arg Float d
  d := cmc_distance (cast ref ColorLab) (cast test ColorLab)
 
export cmc_distance cmc_distance_l_parameter cmc_distance_c_