Rotates the dim x dim matrix 'mat' according to (rot)^dagger.mat.rot, where 'rot' is a unitary matrix

Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|

complex(kind=dp) | :: | mat(dim,dim) | ||||

complex(kind=dp) | :: | rot(dim,dim) | ||||

integer | :: | dim |

```
function utility_rotate(mat, rot, dim)
!==========================================================!
! !
!! Rotates the dim x dim matrix 'mat' according to
!! (rot)^dagger.mat.rot, where 'rot' is a unitary matrix
! !
!===========================================================!
use w90_constants, only: dp
integer :: dim
complex(kind=dp) :: utility_rotate(dim, dim)
complex(kind=dp) :: mat(dim, dim)
complex(kind=dp) :: rot(dim, dim)
utility_rotate = matmul(matmul(transpose(conjg(rot)), mat), rot)
end function utility_rotate
```