code: def XYZ100_to_sRGB1_linear(XYZ100):
      
      XYZ100 = np.asarray(XYZ100, dtype=float)
      # this is broadcasting matrix * array-of-vectors, where the vector is the
      # last dim
      RGB_linear = np.einsum("...ij,...j->...i", XYZ100_to_sRGB1_matrix, XYZ100 / 100)
      return RGB_linear
docs: Convert XYZ to linear sRGB, where XYZ is normalized so that reference
      white D65 is X=95.05, Y=100, Z=108.90 and sRGB is on the 0-1 scale. Linear
      sRGB has a linear relationship to actual light, so it is an appropriate
      space for simulating light (e.g. for alpha blending).