# Introduction

Brandt modules provide a representation in terms of quaternion ideals of certain cohomology subgroups associated to Shimura curves $X^D_0(N)$ which generalize the classical modular curves $X_0(N)$. The Brandt module datatype is that of a Hecke module – a free module of finite rank with the action of a ring of Hecke operators – which is equipped with a canonical basis (identified with left quaternion ideal classes) and an inner product which is adjoint with respect to the Hecke operators. The machinery of modular symbols, Brandt modules, and, in a future release, a module of singular elliptic curves, form the computational machinery underlying modular forms in Magma.

Brandt modules were implemented by David Kohel, motivated by the article of Mestre and Oesterlé [[Mestre, 1986](../../references.md#cite-mestre86)] on the method of graphs for supersingular elliptic curves, the article of Pizer [[Pizer, 1980](../../references.md#cite-pizer80)] on computing spaces of modular forms using quaternion arithmetic, and grew out of research in the author’s thesis [[Kohel, 1996](../../references.md#cite-kohel96)] on endomorphism ring structure of elliptic curves over finite fields. The Brandt module machinery is described in the article [[Kohel, 2001](../../references.md#cite-kohel01)] and has been used, together with modular symbols, in the computation of component groups of quotients of the Jacobians $J_0(N)$ of classical modular curves [[Kohel and Stein, n.d.](../../references.md#cite-kohste00)].
