  Structures involving a lattice and join-endomorphisms on it are ubiquitous in
computer science. We study the cardinality of the set $\mathcal{E}(L)$ of all
join-endomorphisms of a given finite lattice $L$. In particular, we show for
$\mathbf{M}_n$, the discrete order of $n$ elements extended with top and
bottom, $| \mathcal{E}(\mathbf{M}_n) | =n!\mathcal{L}_n(-1)+(n+1)^2$ where
$\mathcal{L}_n(x)$ is the Laguerre polynomial of degree $n$. We also study the
following problem: Given a lattice $L$ of size $n$ and a set $S\subseteq
\mathcal{E}(L)$ of size $m$, find the greatest lower bound
${\large\sqcap}_{\mathcal{E}(L)} S$. The join-endomorphism
${\large\sqcap}_{\mathcal{E}(L)} S$ has meaningful interpretations in epistemic
logic, distributed systems, and Aumann structures. We show that this problem
can be solved with worst-case time complexity in $O(mn)$ for distributive
lattices and $O(mn + n^3)$ for arbitrary lattices. In the particular case of
modular lattices, we present an adaptation of the latter algorithm that reduces
its average time complexity. We provide theoretical and experimental results to
support this enhancement. The complexity is expressed in terms of the basic
binary lattice operations performed by the algorithm.
