• No results found

Software Development within the SPP1489: Number Theory

N/A
N/A
Protected

Academic year: 2021

Share "Software Development within the SPP1489: Number Theory"

Copied!
40
0
0

Loading.... (view fulltext now)

Full text

(1)

Introduction Means, tools, technique

Software Development within the SPP1489:

Number Theory

Claus Fieker and

Bill Hart, Tommy Hofmann and

others

September 29, 2015

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(2)

Computer algebra is incomplete without number theory. Applications: (small selection)

absolute factorisation

varieties over C

group representations and character theory residue class fields

Number fields are fundamental base rings for an enormous range of applications!

(3)

Introduction Means, tools, technique

Computer algebra is incomplete without number theory. Applications: (small selection)

absolute factorisation varieties over C

group representations and character theory residue class fields

Number fields are fundamental base rings for an enormous range of applications!

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(4)

Computer algebra is incomplete without number theory. Number theory ala Zassenhaus:

ring of integers (normalisation) unit group

class group (ideal structure) Galois group (automorphisms)

Number theory is also veryactive research in its own right.

class field theory, Langlands modular forms

(5)

Introduction Means, tools, technique

Computer algebra is incomplete without number theory. Number theory ala Zassenhaus:

ring of integers (normalisation) unit group

class group (ideal structure) Galois group (automorphisms)

Number theory is also veryactive research in its own right. class field theory, Langlands

modular forms arithmetic geometry

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(6)

Fact

We cannot do everything in one project

=⇒

Goal

Class groups

Automatically including maximal order and unit group as well and element arithmetic, ideal arithmetic, residue class fields,

conjugates, logarithms,. . .

(7)

Introduction Means, tools, technique

Fact

We cannot do everything in one project

=⇒

Goal

Class groups

Automatically including maximal order and unit group as well and element arithmetic, ideal arithmetic, residue class fields,

conjugates, logarithms,. . .

All of Zassenhaus but Galois groups.

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(8)

Fact

We cannot do everything in one project

=⇒

Goal

Class groups

Automatically including maximal order and unit group as welland element arithmetic, ideal arithmetic, residue class fields,

conjugates, logarithms,. . .

(9)

Introduction Means, tools, technique

Fact

We cannot do everything in one project

=⇒

Goal

Class groups

Automatically including maximal order and unit group as well and element arithmetic, ideal arithmetic, residue class fields,

conjugates, logarithms,. . .

All of Zassenhaus but Galois groups.

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(10)

Fact

We cannot do everything in one project

=⇒

Goal

Class groups

Automatically including maximal order and unit group as well and element arithmetic, ideal arithmetic, residue class fields,

conjugates, logarithms,. . .

(11)

Introduction Means, tools, technique

Why?

need generic rings that are designed for speed (see

benchmarks onwww.nemocas.org)

programming in C/ C++ is cumbersome and extremely error prone

want an interactive environment that can be supplemented easily in C

establish a mid-level programming language for computer algebra, somewhere between Gap and C

need stable, fast number theory (library) for a number of other projects

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(12)

Why?

need generic rings that are designed for speed (see benchmarks onwww.nemocas.org)

programming in C/ C++ is cumbersome and extremely error prone

want an interactive environment that can be supplemented easily in C

establish a mid-level programming language for computer algebra, somewhere between Gap and C

need stable, fast number theory (library) for a number of other projects

(13)

Introduction Means, tools, technique

Why?

need generic rings that are designed for speed (see benchmarks onwww.nemocas.org)

programming in C/ C++ is cumbersome and extremely error prone

want an interactive environment that can be supplemented easily in C

establish a mid-level programming language for computer algebra, somewhere between Gap and C

need stable, fast number theory (library) for a number of other projects

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(14)

Why?

need generic rings that are designed for speed (see benchmarks onwww.nemocas.org)

programming in C/ C++ is cumbersome and extremely error prone

want an interactive environment that can be supplemented easily in C

establish a mid-level programming language for computer algebra, somewhere between Gap and C

need stable, fast number theory (library) for a number of other projects

(15)

Introduction Means, tools, technique

Why?

need generic rings that are designed for speed (see benchmarks onwww.nemocas.org)

programming in C/ C++ is cumbersome and extremely error prone

want an interactive environment that can be supplemented easily in C

establish a mid-level programming language for computer algebra, somewhere between Gap and C

need stable, fast number theory (library) for a number of other projects

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(16)

Why?

need generic rings that are designed for speed (see benchmarks onwww.nemocas.org)

programming in C/ C++ is cumbersome and extremely error prone

want an interactive environment that can be supplemented easily in C

establish a mid-level programming language for computer algebra, somewhere between Gap and C

need stable, fast number theory (library) for a number of other projects

(17)

Introduction Means, tools, technique

Goal

By next summer competitive, fast class groups in large (degree) fields

Have

So far: fastest available number fields and ideals, skeleton class groupand Euler-product with provable errors, maximal order, sparse linear algebra, lattice enumeration and reduction,. . .

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(18)

Goal

By next summer competitive, fast class groups in large (degree) fields

Have

So far: fastest available number fields and ideals, skeleton class groupand Euler-product with provable errors, maximal order, sparse linear algebra, lattice enumeration and reduction,. . .

(19)

Introduction Means, tools, technique

Goal

By next summer competitive, fast class groups in large (degree) fields

Have

So far: fastest available number fields and ideals, skeleton class group and Euler-product with provable errors, maximal order, sparse linear algebra, lattice enumeration and reduction,. . .

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(20)

The Team:

Bill Hart: ⇒ clean, high-performance code (see Flint), reusable for

as many projects as possible

Me: ⇒ donotwant to use (pure) C/C++, want interactive shell,

not library, can tolerate small portions of C for speed.

(21)

Introduction Means, tools, technique

The Team:

Bill Hart: ⇒ clean, high-performance code (see Flint), reusable for as many projects as possible

Me: ⇒ donotwant to use (pure) C/C++, want interactive shell,

not library, can tolerate small portions of C for speed.

Tommy Hofmann: ⇒clean code for a shortest path to class groups

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(22)

The Team:

Bill Hart: ⇒ clean, high-performance code (see Flint), reusable for as many projects as possible

Me: ⇒ donotwant to use (pure) C/C++, want interactive shell,

not library, can tolerate small portions of C for speed.

(23)

Introduction Means, tools, technique

The Team:

Bill Hart: ⇒ clean, high-performance code (see Flint), reusable for as many projects as possible

Me: ⇒ donotwant to use (pure) C/C++, want interactive shell, not library, can tolerate small portions of C for speed.

Tommy Hofmann: ⇒clean code for a shortest path to class groups

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(24)

The Team:

Bill Hart: ⇒ clean, high-performance code (see Flint), reusable for as many projects as possible

Me: ⇒ donotwant to use (pure) C/C++, want interactive shell, not library, can tolerate small portions of C for speed.

(25)

Introduction Means, tools, technique

The Team:

Bill Hart: ⇒ clean, high-performance code (see Flint), reusable for as many projects as possible

Me: ⇒ donotwant to use (pure) C/C++, want interactive shell, not library, can tolerate small portions of C for speed.

Tommy Hofmann: ⇒clean code for a shortest path to class groups

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(26)

The Team:

Bill Hart: ⇒ clean, high-performance code (see Flint), reusable for as many projects as possible

Me: ⇒ donotwant to use (pure) C/C++, want interactive shell, not library, can tolerate small portions of C for speed.

(27)

Introduction Means, tools, technique

Results I:

antic: a small, extremely fast C-library for basic arithmetic in

number fields (7kloc)

Nemo: a Julia-package wrapping Flint and antic into the

Julia-ecosystem, recursive rings, matrices (20kloc)

hecke: a Julia-package for the “missing” number theory

(13kloc) growing

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(28)

Results I:

antic: a small, extremely fast C-library for basic arithmetic in number fields (7kloc)

Nemo: a Julia-package wrapping Flint and antic into the

Julia-ecosystem, recursive rings, matrices (20kloc)

hecke: a Julia-package for the “missing” number theory

(13kloc)

(29)

Introduction Means, tools, technique

Results I:

antic: a small, extremely fast C-library for basic arithmetic in number fields (7kloc)

Nemo: a Julia-package wrapping Flint and antic into the Julia-ecosystem, recursive rings, matrices (20kloc)

hecke: a Julia-package for the “missing” number theory

(13kloc)

growing

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(30)

Results I:

antic: a small, extremely fast C-library for basic arithmetic in number fields (7kloc)

Nemo: a Julia-package wrapping Flint and antic into the Julia-ecosystem, recursive rings, matrices (20kloc)

hecke: a Julia-package for the “missing” number theory

(13kloc)

(31)

Introduction Means, tools, technique

Results I:

antic: a small, extremely fast C-library for basic arithmetic in number fields (7kloc)

Nemo: a Julia-package wrapping Flint and antic into the Julia-ecosystem, recursive rings, matrices (20kloc)

hecke: a Julia-package for the “missing” number theory (13kloc)

growing

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(32)

Results II: Have

anticis the fastest library for arithmetic in number fields available - faster than Magma and pari.

Have

Generic, recursive, rings inNemo are faster than everything else

(Sage, Magma, pari) Have

Ideal arithmetic inhecke is orders of magnitude faster than

(33)

Introduction Means, tools, technique

Results II: Have

anticis the fastest library for arithmetic in number fields available - faster than Magma and pari.

Have

Generic, recursive, rings inNemo are faster than everything else (Sage, Magma, pari)

Have

Ideal arithmetic inhecke is orders of magnitude faster than

Magma and pari

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(34)

Results II: Have

anticis the fastest library for arithmetic in number fields available - faster than Magma and pari.

Have

Generic, recursive, rings inNemo are faster than everything else (Sage, Magma, pari)

Have

Ideal arithmetic inhecke is orders of magnitude faster than Magma and pari

(35)

Introduction Means, tools, technique

Julia:

JIT (Just-In-Time) compiled language interactive shell

modern language features fast on trivial operations

easy integration of existing C-libraries (easy) access to C++-libraries garbage collected

(strongly) typed

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(36)

What is actually there?

git repositories for Nemo, hecke and antic basic rings: Z,Q,Fq,Qp

polynomial rings and residue class rings linear algebra over basic rings

number fields orders and ideals

maximal orders and ideals

factor base and relations for the class group Euler product with error guarantees

processing of unit group sparse linear algebra

(37)

Introduction Means, tools, technique

What is missing (for now)? top-level class group fast(er) maximal order fast(er) factorisation

quality control: documentation, profiling and testing use of subfields, Brauer characters

p-adic techniques parallelisation

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(38)

Dreaming:

(good) linear algebra over number fields non-commutative orders

function fields class field theory

strong integration of (Gap, Polymake, Singular) into Julia strong integration of Julia into Gap, Polymake and Singular Galois groups and automorphisms

Galois cohomology representation theory the rest

(39)

Introduction Means, tools, technique

Julia: http://www.julialang.org Nemo: http://www.nemocas.org

hecke http://github.com/thofma/hecke

Claus FiekerandBill Hart, Tommy Hofmannandothers Software Development within the SPP1489: Number Theory

(40)

Julia:

julia> using hecke

julia> K, a = MaximalRealSubfield(43, "a") julia> O = hecke.NfMaximalOrder(K,

hecke.FakeFmpqMat(MatrixSpace(ZZ, 21, 21)(1), fmpz(1)));

julia> set_verbose_level(:ClassGroup, 2) julia> L = lll(O)

julia> @time c = hecke.class_group(L, bound = 200, method=1);

References

Related documents

States, the basic financial statements of the Board of Trustees of the Classical Academy Charter School of Clifton (the “Charter School”) in the County of Passaic, State of New

This plane produces the equivalence of the carbonyl ligands, the P-donor atoms of the dppm ligand and the Cp tt ligands, but the protons in each cyclopentadienyl

To provide early season protection of seedlings against injury by Whitefly, Aphids, Leafhoppers (including to reduce potential for spread of Curly top and Yellow mosaic virus due

This paper reports the experiences of faculty members in a fully online master’s program as they seek to validate student feedback on their online learning experiences by conducting

Quarter 2 – Module 5: Secants, Tangents, Segments and Sectors of a Circle First Edition, 2020.. Republic Act 8293, section 176 states that: No copyright shall subsist in any work

organization that educates and empowers nonprofit board members in sound financial, administrative and organizational stewardship. Often nonprofit organizations provide little or

Objectives...Page 7 Mentee Roles and Responsibilities...Page 8 Recommendations/Guidelines for Mentee...Page 9-10 Mentor Roles and Responsibilities...Page 11

In sensor mode, Brushless DC motors usually consist of three main parts: a Stator, a Rotor and Hall Sensors..