# Hecke

## About

Hecke is a software package for algebraic number theory maintained by Claus Fieker, Carlo Sircana and Tommy Hofmann. It is written in julia and is based on the computer algebra package Nemo.

- https://github.com/thofma/Hecke.jl (Source code)
- http://thofma.github.io/Hecke.jl/latest/ (Online documentation)

So far, Hecke provides the following features:

- Orders (including element and ideal arithmetic) in number fields
- Computation of maximal orders
- Verified residue computations of Dedekind zeta functions
- Class and Unit group computation, S-units, PID testing
- Lattice enumeration
- Sparse linear algebra
- Normal forms for modules over maximal orders
- Extensions of number fields, non-simple extensions of number fields
- Orders and ideals in extensions of fields
- Abelian groups
- Ray class groups, quotients of ray class groups
- Invariant subgroups
- Class Field Theory
- Associative Algebras

## Installation

To use Hecke, a julia version of 1.0 is necessary (the latest stable julia version will do). Please see http://julialang.org/downloads for instructions on how to obtain julia for your system. Once a suitable julia version is installed, use the following steps at the julia prompt to install Hecke:

julia> using Pkg julia> Pkg.add("Hecke")

## Quick start

Here is a quick example of using Hecke:

julia> using Hecke ... Welcome to _ _ _ | | | | | | | |__| | ___ ___| | _____ | __ |/ _ \/ __| |/ / _ \ | | | | __/ (__| < __/ |_| |_|\___|\___|_|\_\___| Version 0.5.0 ... ... which comes with absolutely no warranty whatsoever (c) 2015-2018 by Claus Fieker, Tommy Hofmann and Carlo Sircana julia> Qx, x = PolynomialRing(FlintQQ, "x"); julia> f = x^3 + 2; julia> K, a = NumberField(f, "a"); julia> O = maximal_order(K); julia> O Maximal order of Number field over Rational Field with defining polynomial x^3 + 2 with basis [1,a,a^2]

The documentation of the single functions can also be accessed at the julia prompt. Here is an example:

help?> signature search: signature ---------------------------------------------------------------------------- signature(O::NfMaximalOrder) -> Tuple{Int, Int} | Returns the signature of the ambient number field of \mathcal O.