private bool IsValid(float x, float y, float z, float w)
{
ThrowIfDisposed();
return !Validating.GetInvocationList().Select(h => {
var check = new QuaternionValidationEventArgs(x, y, z, w);
h.DynamicInvoke(new object[] { this, check });
return !check.Valid;
}).Any(failed => failed);
}