Development of NZMATH MATSUI Tetsushi Department of Mathematics and - - PowerPoint PPT Presentation

development of nzmath
SMART_READER_LITE
LIVE PREVIEW

Development of NZMATH MATSUI Tetsushi Department of Mathematics and - - PowerPoint PPT Presentation

toc intro concepts dev future demo Development of NZMATH MATSUI Tetsushi Department of Mathematics and Information Sciences Tokyo Metropolitan University ICMS 2006 at Castro Urdiales 2006-09-01 MATSUI Tetsushi Development of NZMATH toc


slide-1
SLIDE 1

toc intro concepts dev future demo

Development of NZMATH

MATSUI Tetsushi

Department of Mathematics and Information Sciences Tokyo Metropolitan University

ICMS 2006 at Castro Urdiales 2006-09-01

MATSUI Tetsushi Development of NZMATH

slide-2
SLIDE 2

toc intro concepts dev future demo

1 Table of Contents 2 Introduction

History Features

3 Concepts 4 Development 5 Future 6 Demonstration

MATSUI Tetsushi Development of NZMATH

slide-3
SLIDE 3

toc intro concepts dev future demo History Features

pre NZMATH

Once upon a time...

MATSUI Tetsushi Development of NZMATH

slide-4
SLIDE 4

toc intro concepts dev future demo History Features

pre NZMATH

Once upon a time... there was a system called SIMATH.

MATSUI Tetsushi Development of NZMATH

slide-5
SLIDE 5

toc intro concepts dev future demo History Features

pre NZMATH

Once upon a time... there was a system called SIMATH.

I talked about it at ICMS 2002 poster session.

MATSUI Tetsushi Development of NZMATH

slide-6
SLIDE 6

toc intro concepts dev future demo History Features

dawn of NZMATH

When the development of SIMATH stopped in 2003, we began to create a new system.

MATSUI Tetsushi Development of NZMATH

slide-7
SLIDE 7

toc intro concepts dev future demo History Features

NZMATH!

We named it NZMATH [

niZimaT].

The name is not an acronym nor related to New Zealand.

MATSUI Tetsushi Development of NZMATH

slide-8
SLIDE 8

toc intro concepts dev future demo History Features

Releases

We have released sevral versions. The latest is 0.5.1 released in August 2006.

MATSUI Tetsushi Development of NZMATH

slide-9
SLIDE 9

toc intro concepts dev future demo History Features

What kind of system NZMATH is?

number theory Python free

MATSUI Tetsushi Development of NZMATH

slide-10
SLIDE 10

toc intro concepts dev future demo History Features

Number Theory

The primary goal of the development is to implement various number theoretic algorithms.

MATSUI Tetsushi Development of NZMATH

slide-11
SLIDE 11

toc intro concepts dev future demo History Features

Python

NZMATH is written in Python and provided as a library for

  • Python. In nzmath package there are more than 20 modules.

MATSUI Tetsushi Development of NZMATH

slide-12
SLIDE 12

toc intro concepts dev future demo History Features

Free

NZMATH is distributed under the BSD license.

MATSUI Tetsushi Development of NZMATH

slide-13
SLIDE 13

toc intro concepts dev future demo

Basic Concepts

1 user / developer fusion 2 speed of development MATSUI Tetsushi Development of NZMATH

slide-14
SLIDE 14

toc intro concepts dev future demo

User / Developer Fusion

Ideally, there should be no distinction between users and developers.

MATSUI Tetsushi Development of NZMATH

slide-15
SLIDE 15

toc intro concepts dev future demo

Choice of Language

The implementation language should be the same language for users.

MATSUI Tetsushi Development of NZMATH

slide-16
SLIDE 16

toc intro concepts dev future demo

Choice of Language

The implementation language should be the same language for users. ⇒ we chose Python.

MATSUI Tetsushi Development of NZMATH

slide-17
SLIDE 17

toc intro concepts dev future demo

Speed of Development

We put emphasis on the development speed of system rather than the execution speed of resulting programs.

MATSUI Tetsushi Development of NZMATH

slide-18
SLIDE 18

toc intro concepts dev future demo

Practices in Development

Some practices seem useful for better development.

MATSUI Tetsushi Development of NZMATH

slide-19
SLIDE 19

toc intro concepts dev future demo

Open Source

We believe that there is no need to restrict usages of the system, and that users should have rights to fork or take over the project, if the development would stall.

MATSUI Tetsushi Development of NZMATH

slide-20
SLIDE 20

toc intro concepts dev future demo

Outsourcing

We have just started to use sourceforge. NZMATH Project Page http://sourceforge.net/projects/nzmath/

MATSUI Tetsushi Development of NZMATH

slide-21
SLIDE 21

toc intro concepts dev future demo

Manual

Manual is maintained on Wiki. NZMATH Wiki http://nzmath.sourceforge.net/wiki/

MATSUI Tetsushi Development of NZMATH

slide-22
SLIDE 22

toc intro concepts dev future demo

Agile Development

tests reviews small releases incremental design

MATSUI Tetsushi Development of NZMATH

slide-23
SLIDE 23

toc intro concepts dev future demo

Test Code Example

class Arith1Test (unittest.TestCase): def testFloorsqrt(self): self.assertEqual(0, arith1.floorsqrt(0)) self.assertEqual(1, arith1.floorsqrt(1)) self.assertEqual(1, arith1.floorsqrt(3)) self.assertEqual(2, arith1.floorsqrt(4)) self.assert_(arith1.floorsqrt(2**60 - 1) ** 2 <= 2**60 - 1) self.assert_(arith1.floorsqrt(2**59 - 1) ** 2 <= 2**59 - 1)

MATSUI Tetsushi Development of NZMATH

slide-24
SLIDE 24

toc intro concepts dev future demo

Agile Development

tests reviews small releases incremental design

MATSUI Tetsushi Development of NZMATH

slide-25
SLIDE 25

toc intro concepts dev future demo

Future Direction of Development

Awaited features. Web user interface Algebraic numbers Speed of execution

MATSUI Tetsushi Development of NZMATH

slide-26
SLIDE 26

toc intro concepts dev future demo

Web UI

There is no particular interface for NZMATH, in other words, the Python interpreter is the only way to use it. Web UI, i.e. a user interface using a web browser is a possible user interfaces other than the Python interpreter.

MATSUI Tetsushi Development of NZMATH

slide-27
SLIDE 27

toc intro concepts dev future demo

Web UI

There is no particular interface for NZMATH, in other words, the Python interpreter is the only way to use it. Web UI, i.e. a user interface using a web browser is a possible user interfaces other than the Python interpreter. We will show you later a demonstration of a Web UI prototype.

MATSUI Tetsushi Development of NZMATH

slide-28
SLIDE 28

toc intro concepts dev future demo

Algebraic Numbers

Algebraic numbers and algebraic number fields are the next main topic of the development. We are working, now.

MATSUI Tetsushi Development of NZMATH

slide-29
SLIDE 29

toc intro concepts dev future demo

Speed of Execution

Though we put priority on speed of development rather than of execution, we are trying to make the program execution as fast as possible.

MATSUI Tetsushi Development of NZMATH

slide-30
SLIDE 30

toc intro concepts dev future demo

Long Term Plans

Elliptic curves over the rational field Analytic number theory tools Connecting to other systems

MATSUI Tetsushi Development of NZMATH

slide-31
SLIDE 31

toc intro concepts dev future demo

End of the slides

Now, let’s take a look at demos.

MATSUI Tetsushi Development of NZMATH

slide-32
SLIDE 32

toc intro concepts dev future demo

End

Thank you.

MATSUI Tetsushi Development of NZMATH