tidy3d.plugins.autograd.invdes.symmetrize_diagonal#
- class symmetrize_diagonal[source]#
Bases:
Symmetrizes the parameter array by averaging it with its transpose. Can symmetrize along the main diagonal or the anti-diagonal.
- Parameters:
array (NDArray) β The input array to be symmetrized. Must be square.
anti (bool, optional) β If False (default), symmetrizes along the main diagonal (top-left to bottom-right). If True, symmetrizes along the anti-diagonal (top-right to bottom-left).
- Returns:
The array after applying diagonal symmetrization.
- Return type:
NDArray
Example
>>> import autograd.numpy as np >>> from tidy3d.plugins.autograd.invdes.symmetries import symmetrize_diagonal >>> arr = np.asarray([ ... [1, 2], ... [4, 7], ... ]) >>> res = symmetrize_diagonal(arr) >>> res_anti = symmetrize_diagonal(arr, anti=True) >>> assert np.all(np.isclose(res, np.asarray([ ... [1, 3], ... [3, 7] ... ]))) >>> assert np.all(np.isclose(res_anti, np.asarray([ ... [4, 2], ... [4, 4] ... ])))
Inherited Common Usage