How can I determine whether $A\_1,A\_2\in GL(n,\mathbb Z)$ conjugate in $GL(n,\mathbb Z)$ and if they are, how can I find a $P\in GL(n,\mathbb Z)$ for which $A\_2 = P^{-1}.A\_1.P$ ?


In $GL(n,\mathbb Q)$ one could achieve this by checking if the Frobenius normal forms (FNF) are equal and if they are


$\quad\quad FNF\_2 = FNF\_1$


$\Leftrightarrow P\_2^{-1}.A\_2.P\_2=P\_1^{-1}.A\_1.P\_1$ 


$\Leftrightarrow A\_2=M^{-1}.A\_1.M\quad\quad\quad M=P\_1.P\_2^{-1}$ 


I found an [algorithm](http://hal.archives-ouvertes.fr/docs/00/32/37/05/PDF/Ozello.Patrick_1987_these.pdf) which gives the FNF of a matrix with P a matrix of integers. Is there an way of performing subsequent elementary similarity transformations on $P\_i$ (and hence also on $P\_i^{-1}$) until $P\_i\in GL(n,\mathbb Z)$ while also checking whether it is even possible to arrive at such a $P\_i$?



Conjugacy in $GL(n,\mathbb Z)$
[The Conjugacy Problem in $\operatorname{GL}(n, \mathbb{Z})$](https://arxiv.org/abs/1811.06190) by Eick, Hofmann and O'Brien gives an algorithm for solving this problem, which has been implemented in Magma.


