private void ParseHash(string hash)
{
_Hash = hash;
for (int i = 0; i < 14; i++)
{
int hex;
if (!int.TryParse(hash.Substring(i * 5, 5), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out hex))
throw new ArgumentException("Invalid hash specified", nameof(hash));
double value = (ushort)hex / Math.Pow(10.0, hex >> 17);
if ((hex & (1 << 16)) != 0)
value = -value;
if (i < 7)
_SrgbHuPhash[i] = value;
else
_HclpHuPhash[i - 7] = value;
}
}