[proofplan]
We compute topological entropy from Bowen balls for the quotient metric on $\mathbb{T}^d$. Hyperbolicity gives a real stable-unstable splitting of $\mathbb{R}^d$, and the Bowen ball condition says that the initial unstable displacement must be exponentially small while the stable displacement remains uniformly bounded. A standard Bowen-ball volume comparison then shows that the minimal number of orbit balls of length $n$ needed to cover the torus grows like $|\det(A|_{E^u})|^n$. Finally, linear algebra identifies $|\det(A|_{E^u})|$ with the product of the moduli of the eigenvalues outside the unit circle.
[/proofplan]
[step:Define Bowen balls for a quotient metric on the torus]
Choose any Euclidean norm $|\cdot|$ on $\mathbb{R}^d$. Define the quotient metric $\rho: \mathbb{T}^d \times \mathbb{T}^d \to [0,\infty)$ by
\begin{align*}
\rho(x+\mathbb{Z}^d,y+\mathbb{Z}^d) := \min_{m \in \mathbb{Z}^d} |x-y-m|.
\end{align*}
Since $\mathbb{T}^d$ is compact, this metric induces its standard [quotient topology](/page/Quotient%20Topology).
For $n \in \mathbb{N}$ and $\varepsilon>0$, define the Bowen metric $\rho_n: \mathbb{T}^d \times \mathbb{T}^d \to [0,\infty)$ by
\begin{align*}
\rho_n(p,q) := \max_{\{k \in \{0,\dots,n-1\}\}} \rho(f_A^k(p),f_A^k(q)).
\end{align*}
For $p \in \mathbb{T}^d$, define the length-$n$ Bowen ball of radius $\varepsilon$ centered at $p$ by
\begin{align*}
B_n(p,\varepsilon) := \{q \in \mathbb{T}^d : \rho_n(p,q)<\varepsilon\}.
\end{align*}
Let $r_n(\varepsilon)$ denote the smallest cardinality of a subset $F \subset \mathbb{T}^d$ such that
\begin{align*}
\mathbb{T}^d = \bigcup_{p \in F} B_n(p,\varepsilon).
\end{align*}
By the spanning-set definition of topological entropy,
\begin{align*}
h_{\mathrm{top}}(f_A)=\lim_{\varepsilon \downarrow 0}\limsup_{n\to\infty}\frac{1}{n}\log r_n(\varepsilon).
\end{align*}
This is the definition of topological entropy used below.
[/step]
[step:Split Euclidean space into stable and unstable generalized eigenspaces]
Let $A_{\mathbb{C}}: \mathbb{C}^d \to \mathbb{C}^d$ denote the complex-linear extension of $A$. For each eigenvalue $\lambda \in \mathbb{C}$, let $G_\lambda \subset \mathbb{C}^d$ denote the generalized eigenspace
\begin{align*}
G_\lambda := \ker((A_{\mathbb{C}}-\lambda I)^d).
\end{align*}
Define the complex unstable and stable subspaces by
\begin{align*}
E_{\mathbb{C}}^u := \bigoplus_{\{ \lambda : |\lambda|>1\}} G_\lambda, \quad E_{\mathbb{C}}^s := \bigoplus_{\{ \lambda : |\lambda|<1\}} G_\lambda.
\end{align*}
Because no eigenvalue has modulus $1$, the generalized eigenspace decomposition gives
\begin{align*}
\mathbb{C}^d = E_{\mathbb{C}}^s \oplus E_{\mathbb{C}}^u.
\end{align*}
Both subspaces are invariant under complex conjugation, since $A$ has real entries. Therefore they are complexifications of real $A$-invariant subspaces $E^s,E^u \subset \mathbb{R}^d$, and
\begin{align*}
\mathbb{R}^d = E^s \oplus E^u.
\end{align*}
We use the standard stable-unstable splitting theorem for hyperbolic linear maps: there are constants $C_s,C_u>0$ and numbers $\alpha_s,\alpha_u \in (0,1)$ such that, for every $n \in \mathbb{N}$,
\begin{align*}
|A^n v_s| \leq C_s \alpha_s^n |v_s| \quad \text{for every } v_s \in E^s
\end{align*}
and
\begin{align*}
|A^{-n} v_u| \leq C_u \alpha_u^n |v_u| \quad \text{for every } v_u \in E^u.
\end{align*}
(citing a result not yet in the wiki: Stable-unstable splitting for hyperbolic linear maps.)
[/step]
[step:Compare Bowen-ball volume with unstable Jacobian growth]
Let $\mu$ denote the normalized Haar probability measure on $\mathbb{T}^d$. Define the unstable Jacobian
\begin{align*}
J_u := |\det(A|_{E^u}:E^u \to E^u)|.
\end{align*}
Since $A(E^u)=E^u$ and all eigenvalues of $A|_{E^u}$ have modulus greater than $1$, we have $J_u>1$.
We use the standard Bowen-ball volume comparison for linear toral automorphisms: there exist constants $\varepsilon_0>0$ and $c_1,c_2>0$, depending only on $A$ and the chosen metric $\rho$, such that for every $\varepsilon \in (0,\varepsilon_0]$, every $p \in \mathbb{T}^d$, and every $n \in \mathbb{N}$,
\begin{align*}
c_1(\varepsilon) J_u^{-n} \leq \mu(B_n(p,\varepsilon)) \leq c_2(\varepsilon) J_u^{-n}.
\end{align*}
Here $c_1(\varepsilon)$ and $c_2(\varepsilon)$ are positive constants independent of $p$ and $n$. The reason is that, after lifting to $\mathbb{R}^d$ below the injectivity radius of the quotient map, the Bowen condition requires the unstable component of the initial displacement to lie in a set whose $E^u$-volume is comparable to $J_u^{-n}$, while the stable component remains confined to a fixed bounded set. This is precisely the Bowen-ball volume comparison for linear toral automorphisms. (citing a result not yet in the wiki: Bowen-ball volume comparison for linear toral automorphisms.)
[/step]
[step:Convert Bowen-ball volume estimates into entropy bounds]
Fix $\varepsilon \in (0,\varepsilon_0]$. If $F \subset \mathbb{T}^d$ is an $(n,\varepsilon)$-spanning set, then the Bowen balls $\{B_n(p,\varepsilon):p \in F\}$ cover $\mathbb{T}^d$. Using subadditivity of the measure $\mu$ and the upper Bowen-ball volume estimate,
\begin{align*}
1=\mu(\mathbb{T}^d) \leq \sum_{p \in F}\mu(B_n(p,\varepsilon)) \leq |F| c_2(\varepsilon)J_u^{-n}.
\end{align*}
Taking the infimum over all such spanning sets $F$ gives
\begin{align*}
r_n(\varepsilon) \geq c_2(\varepsilon)^{-1}J_u^n.
\end{align*}
Therefore
\begin{align*}
\liminf_{n\to\infty}\frac{1}{n}\log r_n(\varepsilon) \geq \log J_u.
\end{align*}
For the reverse inequality, let $E_n \subset \mathbb{T}^d$ be a maximal subset with the property that $\rho_n(p,q)\geq \varepsilon/2$ whenever $p,q \in E_n$ and $p \neq q$. Maximality implies that $E_n$ is an $(n,\varepsilon/2)$-spanning set, hence also an $(n,\varepsilon)$-spanning set. The Bowen balls $\{B_n(p,\varepsilon/4):p \in E_n\}$ are pairwise disjoint. Using additivity of $\mu$ on disjoint measurable sets and the lower Bowen-ball volume estimate,
\begin{align*}
1=\mu(\mathbb{T}^d) \geq \sum_{p \in E_n}\mu(B_n(p,\varepsilon/4)) \geq |E_n| c_1(\varepsilon/4)J_u^{-n}.
\end{align*}
Thus
\begin{align*}
r_n(\varepsilon) \leq |E_n| \leq c_1(\varepsilon/4)^{-1}J_u^n.
\end{align*}
Consequently
\begin{align*}
\limsup_{n\to\infty}\frac{1}{n}\log r_n(\varepsilon) \leq \log J_u.
\end{align*}
Combining the lower and upper bounds yields
\begin{align*}
\lim_{n\to\infty}\frac{1}{n}\log r_n(\varepsilon)=\log J_u
\end{align*}
for every sufficiently small $\varepsilon>0$. Taking $\varepsilon \downarrow 0$ in the spanning-set formula for entropy gives
\begin{align*}
h_{\mathrm{top}}(f_A)=\log J_u.
\end{align*}
[guided]
The volume estimate says that every length-$n$ Bowen ball has measure comparable to $J_u^{-n}$. We now turn that geometric fact into an entropy computation. The bridge is simple: if sets of size about $J_u^{-n}$ cover a probability space of total measure $1$, then at least about $J_u^n$ of them are needed; conversely, a maximal separated family produces a cover, and disjoint smaller Bowen balls bound its size from above.
Fix $\varepsilon \in (0,\varepsilon_0]$. Let $F \subset \mathbb{T}^d$ be an $(n,\varepsilon)$-spanning set, meaning that
\begin{align*}
\mathbb{T}^d = \bigcup_{p \in F} B_n(p,\varepsilon).
\end{align*}
Since $\mu$ is a probability measure, $\mu(\mathbb{T}^d)=1$. Since measure is subadditive over countable unions and $F$ is finite for a minimal spanning set on the compact [metric space](/page/Metric%20Space) $\mathbb{T}^d$, we get
\begin{align*}
1=\mu(\mathbb{T}^d) \leq \sum_{p \in F}\mu(B_n(p,\varepsilon)).
\end{align*}
The upper Bowen-ball volume estimate gives $\mu(B_n(p,\varepsilon)) \leq c_2(\varepsilon)J_u^{-n}$ for every $p \in F$, with a constant independent of $p$ and $n$. Therefore
\begin{align*}
1 \leq |F| c_2(\varepsilon)J_u^{-n}.
\end{align*}
Solving this inequality for $|F|$ gives
\begin{align*}
|F| \geq c_2(\varepsilon)^{-1}J_u^n.
\end{align*}
Since $r_n(\varepsilon)$ is the smallest possible cardinality of such a spanning set, the same lower bound holds for $r_n(\varepsilon)$:
\begin{align*}
r_n(\varepsilon) \geq c_2(\varepsilon)^{-1}J_u^n.
\end{align*}
Taking logarithms, dividing by $n$, and letting $n \to \infty$, the fixed multiplicative constant disappears:
\begin{align*}
\liminf_{n\to\infty}\frac{1}{n}\log r_n(\varepsilon) \geq \log J_u.
\end{align*}
For the upper bound, choose $E_n \subset \mathbb{T}^d$ maximal with respect to the property that distinct points are separated in the Bowen metric at scale $\varepsilon/2$:
\begin{align*}
\rho_n(p,q)\geq \varepsilon/2 \quad \text{whenever } p,q \in E_n \text{ and } p \neq q.
\end{align*}
Maximality means that no point of $\mathbb{T}^d$ can be added while preserving this separation. Hence every point of $\mathbb{T}^d$ lies within $\rho_n$-distance less than $\varepsilon/2$ of some point of $E_n$, so $E_n$ is an $(n,\varepsilon/2)$-spanning set. In particular it is also an $(n,\varepsilon)$-spanning set, and therefore
\begin{align*}
r_n(\varepsilon) \leq |E_n|.
\end{align*}
Now distinct points of $E_n$ have $\rho_n$-distance at least $\varepsilon/2$. Therefore the smaller Bowen balls $B_n(p,\varepsilon/4)$ centered at points $p \in E_n$ are pairwise disjoint: if two such balls met, the triangle inequality for $\rho_n$ would put their centers within distance less than $\varepsilon/2$. Additivity of $\mu$ over pairwise disjoint measurable sets gives
\begin{align*}
1=\mu(\mathbb{T}^d) \geq \sum_{p \in E_n}\mu(B_n(p,\varepsilon/4)).
\end{align*}
The lower Bowen-ball volume estimate gives $\mu(B_n(p,\varepsilon/4)) \geq c_1(\varepsilon/4)J_u^{-n}$ for every $p \in E_n$. Hence
\begin{align*}
1 \geq |E_n| c_1(\varepsilon/4)J_u^{-n}.
\end{align*}
Solving for $|E_n|$ yields
\begin{align*}
|E_n| \leq c_1(\varepsilon/4)^{-1}J_u^n.
\end{align*}
Since $r_n(\varepsilon) \leq |E_n|$, we obtain
\begin{align*}
r_n(\varepsilon) \leq c_1(\varepsilon/4)^{-1}J_u^n.
\end{align*}
Taking logarithms, dividing by $n$, and letting $n \to \infty$ gives
\begin{align*}
\limsup_{n\to\infty}\frac{1}{n}\log r_n(\varepsilon) \leq \log J_u.
\end{align*}
The lower and upper estimates match, so
\begin{align*}
\lim_{n\to\infty}\frac{1}{n}\log r_n(\varepsilon)=\log J_u.
\end{align*}
Finally, the definition of topological entropy is obtained by taking the limit as the radius tends to $0$:
\begin{align*}
h_{\mathrm{top}}(f_A)=\lim_{\varepsilon \downarrow 0}\limsup_{n\to\infty}\frac{1}{n}\log r_n(\varepsilon)=\log J_u.
\end{align*}
[/guided]
[/step]
[step:Identify the unstable determinant with the product of expanding eigenvalue moduli]
It remains to compute $J_u$. The complexification of $A|_{E^u}:E^u \to E^u$ is precisely the restriction of $A_{\mathbb{C}}$ to
\begin{align*}
E_{\mathbb{C}}^u=\bigoplus_{\{ \lambda : |\lambda|>1\}}G_\lambda.
\end{align*}
On each generalized eigenspace $G_\lambda$, the matrix of $A_{\mathbb{C}}$ has the single eigenvalue $\lambda$ repeated $\dim_{\mathbb{C}}G_\lambda$ times, counted with algebraic multiplicity. Therefore the determinant of $A_{\mathbb{C}}|_{E_{\mathbb{C}}^u}$ is
\begin{align*}
\det(A_{\mathbb{C}}|_{E_{\mathbb{C}}^u})=\prod_{\{i \in \{1,\dots,d\}:|\lambda_i|>1\}}\lambda_i.
\end{align*}
Because $A|_{E^u}$ is a real [linear map](/page/Linear%20Map) and complexification preserves determinant,
\begin{align*}
\det(A|_{E^u})=\det(A_{\mathbb{C}}|_{E_{\mathbb{C}}^u}).
\end{align*}
Taking absolute values gives
\begin{align*}
J_u=|\det(A|_{E^u})|=\prod_{\{i \in \{1,\dots,d\}:|\lambda_i|>1\}}|\lambda_i|.
\end{align*}
Thus
\begin{align*}
\log J_u=\sum_{\{i \in \{1,\dots,d\}:|\lambda_i|>1\}}\log |\lambda_i|.
\end{align*}
Combining this identity with $h_{\mathrm{top}}(f_A)=\log J_u$ proves the stated entropy formula.
[/step]