def lab_to_xyz(l, a=None, b=None, wref=_DEFAULT_WREF):
if type(l) in [list,tuple]:<EOL><INDENT>l, a, b = l<EOL><DEDENT>y = (l + <NUM_LIT:16>) / <NUM_LIT><EOL>x = (a / <NUM_LIT>) + y<EOL>z = y - (b / <NUM_LIT>)<EOL>return tuple((((v > <NUM_LIT>) and [v**<NUM_LIT:3>] or [(v - _sixteenHundredsixteenth) / <NUM_LIT>])[<NUM_LIT:0>] * w for v, w in zip((x, y, z), wref)))<EOL>
Convert the color from CIE L*a*b* to CIE 1931 XYZ.

    Parameters:
      :l:
        The L component [0...100]
      :a:
        The a component [-1...1]
      :b:
        The a component [-1...1]
      :wref:
        The whitepoint reference, default is 2° D65.

    Returns:
      The color as an (x, y, z) tuple in the range:
      x[0...q],
      y[0...1],
      z[0...1]

    >>> '(%g, %g, %g)' % lab_to_xyz(66.9518, 0.43084, 0.739692)
    '(0.48894, 0.365682, 0.0448137)'

    >>> '(%g, %g, %g)' % lab_to_xyz(66.9518, 0.411663, 0.67282, WHITE_REFERENCE['std_D50'])
    '(0.488942, 0.365682, 0.0448137)'