Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thofma/Hecke.jl
Computational algebraic number theory
https://github.com/thofma/Hecke.jl
algebraic-number-theory class-field-theory computer-algebra discrete-mathematics julia math number-theory
Last synced: about 2 months ago
JSON representation
Computational algebraic number theory
- Host: GitHub
- URL: https://github.com/thofma/Hecke.jl
- Owner: thofma
- License: other
- Created: 2015-05-17T14:01:45.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-05-21T19:15:46.000Z (4 months ago)
- Last Synced: 2024-05-22T17:52:05.256Z (4 months ago)
- Topics: algebraic-number-theory, class-field-theory, computer-algebra, discrete-mathematics, julia, math, number-theory
- Language: Julia
- Homepage:
- Size: 65.5 MB
- Stars: 202
- Watchers: 12
- Forks: 57
- Open Issues: 41
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Citation: CITATION.bib
Awesome Lists containing this project
README
# Hecke
**Builds**
[![Docs dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://thofma.github.io/Hecke.jl/dev)
[![Docs stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://thofma.github.io/Hecke.jl/stable)
[![Build status](https://github.com/thofma/Hecke.jl/workflows/Run%20long%20tests/badge.svg?branch=master)](https://github.com/thofma/Hecke.jl/actions?query=workflow%3A%22Run-tests%22+branch%3Amaster)
[![Codecov](https://codecov.io/github/thofma/Hecke.jl/coverage.svg?branch=master&token=)](https://codecov.io/gh/thofma/Hecke.jl)## About
Hecke is a software package for algebraic number theory maintained by Claus Fieker and Tommy Hofmann.
It is written in [julia](https://www.julialang.org) and is based on the computer algebra packages [Nemo](https://github.com/Nemocas/Nemo.jl) and [AbstractAlgebra](https://github.com/Nemocas/AbstractAlgebra.jl).
Hecke is part of the [OSCAR](https://www.oscar-system.org/) project and the development is supported by the Deutsche Forschungsgemeinschaft DFG within the Collaborative Research Center TRR 195.- (Source code)
- (Online documentation)So far, Hecke provides the following features:
- Number fields (absolute, relative, simple and non-simple)
- Orders and ideals in number fields
- Class and unit group computations of orders
- Lattice enumeration
- Sparse linear algebra
- Class field theory
- Abelian groups
- Associative algebras
- Ideals and orders in (semisimple) associative algebras
- Locally free class groups of orders in semisimple algebras
- Quadratic and Hermitian forms and lattices## Installation
To use Hecke, a julia version of 1.0 is necessary (the latest stable julia version will do).
Please see 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
julia> using Pkg
julia> Pkg.add("Hecke")
```## Citing Hecke
If your research depends on computations done with Hecke, please consider giving us a formal citation:
- Claus Fieker, William Hart, Tommy Hofmann and Fredrik Johansson, [Nemo/Hecke: Computer Algebra and Number Theory Packages
for the Julia Programming Language](https://doi.acm.org/10.1145/3087604.3087611). In: Proceedings of ISSAC '17, pages 157–164, New York, NY, USA, 2017. ACM.```bib
@inproceedings{nemo,
author = {Fieker, Claus and Hart, William and Hofmann, Tommy and Johansson, Fredrik},
title = {Nemo/Hecke: Computer Algebra and Number Theory Packages for the Julia Programming Language},
booktitle = {Proceedings of the 2017 ACM on International Symposium on Symbolic and Algebraic Computation},
series = {ISSAC '17},
year = {2017},
pages = {157--164},
numpages = {8},
url = {https://doi.acm.org/10.1145/3087604.3087611},
doi = {10.1145/3087604.3087611},
publisher = {ACM},
address = {New York, NY, USA},
}
```## Quick start
Here is a quick example of using Hecke:
```julia
julia> using HeckeWelcome to
_ _ _
| | | | | |
| |__| | ___ ___| | _____
| __ |/ _ \/ __| |/ / _ \
| | | | __/ (__| < __/
|_| |_|\___|\___|_|\_\___|Version 0.22.8...
... which comes with absolutely no warranty whatsoever
(c) 2015-2024 by Claus Fieker, Tommy Hofmann and Carlo Sircanajulia> Qx, x = polynomial_ring(FlintQQ, "x");
julia> f = x^3 + 2;
julia> K, a = number_field(f, "a");
julia> O = maximal_order(K);
julia> O
Maximal order of Number field of degree 3 over QQ
with basis AbsSimpleNumFieldElem[1, a, a^2]
```## Documentation
The online documentation can be found here:
- [stable](https://thofma.github.io/Hecke.jl/stable/)
- [dev](https://thofma.github.io/Hecke.jl/dev/)