mat2 randomRotation(const in vec2 p)
{
	// We need irrationals for pseudo randomness.
	// Most (all?) known transcendental numbers will (generally) work.
	const vec2 v = vec2(
		23.1406926327792690,	// e^pi (Gelfond's constant)
		2.6651441426902251);	// 2^sqrt(2) (Gelfond-Schneider constant)
	float r = mod(123456789., 1e-7 + 256. * dot(p, v));
	float sinr = sin(r);
	float cosr = cos(r);
	return mat2(cosr, sinr, -sinr, cosr);
}
