"use strict";(function(){var dot_product=function dot_product(a,b){var ret=0;var iterable=__range__(0,a.length-1,true);for(var j=0;jranges[i][1]){return false}}return true};var ref_X=.95047;var ref_Y=1;var ref_Z=1.08883;var ref_U=4*ref_X/(ref_X+15*ref_Y+3*ref_Z);var ref_V=9*ref_Y/(ref_X+15*ref_Y+3*ref_Z);var lab_e=.008856;var lab_k=903.3;var f=function f(t){if(t>lab_e){return Math.pow(t,1/3)}else{return 7.787*t+16/116}};var f_inv=function f_inv(t){if(Math.pow(t,3)>lab_e){return Math.pow(t,3)}else{return(116*t-16)/lab_k}};var conv={CIEXYZ:{},CIExyY:{},CIELAB:{},CIELCH:{},CIELUV:{},CIELCHuv:{},sRGB:{},hex:{}};conv["CIEXYZ"]["sRGB"]=function(tuple){var m=[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]];var from_linear=function from_linear(c){var a=.055;if(c<=.0031308){return 12.92*c}else{return 1.055*Math.pow(c,1/2.4)-.055}};var _R=from_linear(dot_product(m[0],tuple));var _G=from_linear(dot_product(m[1],tuple));var _B=from_linear(dot_product(m[2],tuple));return[_R,_G,_B]};conv["sRGB"]["CIEXYZ"]=function(tuple){var _R=tuple[0];var _G=tuple[1];var _B=tuple[2];var to_linear=function to_linear(c){var a=.055;if(c>.04045){return Math.pow((c+a)/(1+a),2.4)}else{return c/12.92}};var m=[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]];var rgbl=[to_linear(_R),to_linear(_G),to_linear(_B)];var _X=dot_product(m[0],rgbl);var _Y=dot_product(m[1],rgbl);var _Z=dot_product(m[2],rgbl);return[_X,_Y,_Z]};conv["CIEXYZ"]["CIExyY"]=function(tuple){var _X=tuple[0];var _Y=tuple[1];var _Z=tuple[2];var sum=_X+_Y+_Z;if(sum===0){return[0,0,_Y]}return[_X/sum,_Y/sum,_Y]};conv["CIExyY"]["CIEXYZ"]=function(tuple){var _x=tuple[0];var _y=tuple[1];var _Y=tuple[2];if(_y===0){return[0,0,0]}var _X=_x*_Y/_y;var _Z=(1-_x-_y)*_Y/_y;return[_X,_Y,_Z]};conv["CIEXYZ"]["CIELAB"]=function(tuple){var _X=tuple[0];var _Y=tuple[1];var _Z=tuple[2];var fx=f(_X/ref_X);var fy=f(_Y/ref_Y);var fz=f(_Z/ref_Z);var _L=116*fy-16;var _a=500*(fx-fy);var _b=200*(fy-fz);return[_L,_a,_b]};conv["CIELAB"]["CIEXYZ"]=function(tuple){var _L=tuple[0];var _a=tuple[1];var _b=tuple[2];var var_y=(_L+16)/116;var var_z=var_y-_b/200;var var_x=_a/500+var_y;var _X=ref_X*f_inv(var_x);var _Y=ref_Y*f_inv(var_y);var _Z=ref_Z*f_inv(var_z);return[_X,_Y,_Z]};conv["CIEXYZ"]["CIELUV"]=function(tuple){var _X=tuple[0];var _Y=tuple[1];var _Z=tuple[2];var var_U=4*_X/(_X+15*_Y+3*_Z);var var_V=9*_Y/(_X+15*_Y+3*_Z);var _L=116*f(_Y/ref_Y)-16;if(_L===0){return[0,0,0]}var _U=13*_L*(var_U-ref_U);var _V=13*_L*(var_V-ref_V);return[_L,_U,_V]};conv["CIELUV"]["CIEXYZ"]=function(tuple){var _L=tuple[0];var _U=tuple[1];var _V=tuple[2];if(_L===0){return[0,0,0]}var var_Y=f_inv((_L+16)/116);var var_U=_U/(13*_L)+ref_U;var var_V=_V/(13*_L)+ref_V;var _Y=var_Y*ref_Y;var _X=0-9*_Y*var_U/((var_U-4)*var_V-var_U*var_V);var _Z=(9*_Y-15*var_V*_Y-var_V*_X)/(3*var_V);return[_X,_Y,_Z]};var scalar_to_polar=function scalar_to_polar(tuple){var _L=tuple[0];var var1=tuple[1];var var2=tuple[2];var _C=Math.pow(Math.pow(var1,2)+Math.pow(var2,2),1/2);var _h_rad=Math.atan2(var2,var1);var _h=_h_rad*360/2/Math.PI;if(_h<0){_h=360+_h}return[_L,_C,_h]};conv["CIELAB"]["CIELCH"]=scalar_to_polar;conv["CIELUV"]["CIELCHuv"]=scalar_to_polar;var polar_to_scalar=function polar_to_scalar(tuple){var _L=tuple[0];var _C=tuple[1];var _h=tuple[2];var _h_rad=_h/360*2*Math.PI;var var1=Math.cos(_h_rad)*_C;var var2=Math.sin(_h_rad)*_C;return[_L,var1,var2]};conv["CIELCH"]["CIELAB"]=polar_to_scalar;conv["CIELCHuv"]["CIELUV"]=polar_to_scalar;var sRGB_prepare=function sRGB_prepare(tuple){tuple=tuple.map(function(n){return round(n,3)});for(var i=0;i1){throw new Error("Illegal sRGB value")}}return tuple.map(function(ch){return Math.round(ch*255)})};conv["sRGB"]["hex"]=function(tuple){var hex="#";tuple=sRGB_prepare(tuple);for(var i=0;iend;ascending?i++:i--){range.push(i)}return range}})();