jax.random.orthogonal#
- jax.random.orthogonal(key, n, shape=(), dtype=<class 'float'>, m=None)[source]#
Sample uniformly from the orthogonal group O(n).
If the dtype is complex, sample uniformly from the unitary group U(n).
For unequal rows and columns, this samples a semi-orthogonal matrix instead. That is, if \(A\) is the resulting matrix and \(A^*\) is its conjugate transpose, then:
If \(n \leq m\), the rows are mutually orthonormal: \(A A^* = I_n\).
If \(m \leq n\), the columns are mutually orthonormal: \(A^* A = I_m\).
- Parameters:
key (ArrayLike) – a PRNG key used as the random key.
n (int) – an integer indicating the number of rows.
shape (Shape) – optional, the batch dimensions of the result. Default ().
dtype (DTypeLikeFloat) – optional, a float dtype for the returned values (default float64 if jax_enable_x64 is true, otherwise float32).
m (int | None | None) – an integer indicating the number of columns. Defaults to n.
- Returns:
A random array of shape (*shape, n, n) and specified dtype.
- Return type:
References