object oriented programming and mathematics

Similar documents
Algebra Unpacked Content For the new Common Core standards that will be effective in all North Carolina schools in the school year.

How To Find Out How To Build An Elliptic Curve Over A Number Field

EMBEDDING DEGREE OF HYPERELLIPTIC CURVES WITH COMPLEX MULTIPLICATION

Factoring (pp. 1 of 4)

Math Common Core Sampler Test

Alex, I will take congruent numbers for one million dollars please

Basics of Polynomial Theory

Math 1050 Khan Academy Extra Credit Algebra Assignment

How To Prove The Dirichlet Unit Theorem

A New Generic Digital Signature Algorithm

Mathematics Online Instructional Materials Correlation to the 2009 Algebra I Standards of Learning and Curriculum Framework

Study of algorithms for factoring integers and computing discrete logarithms

CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.

Algebra II New Summit School High School Diploma Program

Fundamentals of Java Programming

U.C. Berkeley CS276: Cryptography Handout 0.1 Luca Trevisan January, Notes on Algebra

BookTOC.txt. 1. Functions, Graphs, and Models. Algebra Toolbox. Sets. The Real Numbers. Inequalities and Intervals on the Real Number Line

Diablo Valley College Catalog

ECE 842 Report Implementation of Elliptic Curve Cryptography

Precalculus REVERSE CORRELATION. Content Expectations for. Precalculus. Michigan CONTENT EXPECTATIONS FOR PRECALCULUS CHAPTER/LESSON TITLES

First Steps in Magma. John J. Cannon Catherine Playoust. School of Mathematics and Statistics University of Sydney NSW 2006, Australia

parent ROADMAP MATHEMATICS SUPPORTING YOUR CHILD IN HIGH SCHOOL

Row Ideals and Fibers of Morphisms

Information and Communications Technology Courses at a Glance

Content. Chapter 4 Functions Basic concepts on real functions 62. Credits 11

Current Standard: Mathematical Concepts and Applications Shape, Space, and Measurement- Primary

Chapter 13: Basic ring theory

Mathematics (MAT) MAT 061 Basic Euclidean Geometry 3 Hours. MAT 051 Pre-Algebra 4 Hours

Course MS10975A Introduction to Programming. Length: 5 Days

Mathematics Courses. (All Math courses not used to fulfill core requirements count as academic electives.)

On the complexity of some computational problems in the Turing model

CHAPTER SIX IRREDUCIBILITY AND FACTORIZATION 1. BASIC DIVISIBILITY THEORY

Integer Factorization using the Quadratic Sieve

How To Understand And Solve Algebraic Equations

Constructing Pairing-Friendly Elliptic Curves with Embedding Degree 10

Please start the slide show from the beginning to use links. Click here for active links to various courses

Hilberts Entscheidungsproblem, the 10th Problem and Turing Machines

CRYPTOGRAPHY AND NETWORK SECURITY

2.1 Complexity Classes

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards

Limits and Continuity

Unit 3: Day 2: Factoring Polynomial Expressions

CRYPTOG NETWORK SECURITY

Recent work on Serre s conjectures

Factoring Trinomials: The ac Method

Factoring - Greatest Common Factor

Optimal Algorithm for Algebraic Factoring

FACTORING SPARSE POLYNOMIALS

1 Lecture: Integration of rational functions by decomposition

Mathematics INDIVIDUAL PROGRAM INFORMATION Macomb1 ( )

3. Constructing Nonresidues in Finite Fields and the Extended Riemann Hypothesis. 4. Algorithms for linear algebra problems over principal ideal rings

Algebra I. In this technological age, mathematics is more important than ever. When students

SOLVING POLYNOMIAL EQUATIONS BY RADICALS

APPLICATION FOR PART-TIME EMPLOYMENT AS A TUTOR TUTOR IN THE DOLCIANI MATHEMATICS LEARNING CENTER

CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis. Linda Shapiro Winter 2015

History OOP languages Year Language 1967 Simula Smalltalk

Algebra I Credit Recovery

Numerical Analysis Introduction. Student Audience. Prerequisites. Technology.

Continued Fractions and the Euclidean Algorithm

0.8 Rational Expressions and Equations

Sequence of Mathematics Courses

ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology)

NEOSHO COUNTY COMMUNITY COLLEGE MASTER COURSE SYLLABUS

An Efficient and Secure Key Management Scheme for Hierarchical Access Control Based on ECC

Arithmetic and Algebra of Matrices

Topological Algebraic Geometry Workshop Oslo, September 4th-8th, Spectra associated with Artin-Schreier curves. Doug Ravenel

Algebra II. Weeks 1-3 TEKS

1.3 Algebraic Expressions

Monogenic Fields and Power Bases Michael Decker 12/07/07

MBA Jump Start Program

How To Factor By Gcf In Algebra 1.5

Mathematics Course 111: Algebra I Part IV: Vector Spaces

Factoring of Prime Ideals in Extensions

Chapter 4, Arithmetic in F [x] Polynomial arithmetic and the division algorithm.

ALGEBRAIC NUMBER THEORY AND QUADRATIC RECIPROCITY

COURSE SYLLABUS. TEXTS *The official list of textbooks and materials for this course are found on Inside NC.

NOTES ON CATEGORIES AND FUNCTORS

FACTORISATION YEARS. A guide for teachers - Years 9 10 June The Improving Mathematics Education in Schools (TIMES) Project

MATHEMATICS. Administered by the Department of Mathematical and Computing Sciences within the College of Arts and Sciences. Degree Requirements

An Introduction to Applied Mathematics: An Iterative Process

Clovis Community College Core Competencies Assessment Area II: Mathematics Algebra

LAKE ELSINORE UNIFIED SCHOOL DISTRICT

Arithmetic algorithms for cryptology 5 October 2015, Paris. Sieves. Razvan Barbulescu CNRS and IMJ-PRG. R. Barbulescu Sieves 0 / 28

Evaluating large degree isogenies and applications to pairing based cryptography

AN INTRODUCTION TO NUMERICAL METHODS AND ANALYSIS

Table of Contents. Bibliografische Informationen digitalisiert durch

Multichoice Quetions 1. Atributes a. are listed in the second part of the class box b. its time is preceded by a colon. c. its default value is

Congruent Number Problem

High School Algebra Reasoning with Equations and Inequalities Solve systems of equations.

SOLVING POLYNOMIAL EQUATIONS

Greatest Common Factor (GCF) Factoring

Notes on Algebraic Structures. Peter J. Cameron

During the three years which I spent at

Factoring - Solve by Factoring

Galois representations with open image

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

Factoring Cubic Polynomials

YOU CAN COUNT ON NUMBER LINES

it is easy to see that α = a

Transcription:

Marc Conrad oop and math 1 Slide 1 object oriented programming and mathematics by Marc Conrad, Southampton Institute. Classical Reasons for using OOP Slide 2 Reusability, Understandability, Data Abstraction, Modularity, Extendability. OOP is a concept to help solve the software crisis, the difficulty to handle more and more complex real world tasks. OOP has not been developed in a mathematical context.

Marc Conrad oop and math 2 Why is OOP useful for Mathematicians? Slide 3 OOP techniques are already widely used in Software Design. Therefore a lot of tools are available (books, courses, UML, CASE,...). and There is a strong correspondence between mathematical principles and OOP principles! Objects and Methods Slide 4 An object is an encapsulation of data values and methods. It consists of an interface and the implementation: The interface provides a collection of methods which can be invoked by other objects. To those, an object is only known by its methods. The implementation contains data and algorithms which are used in order to implement the methods.

Marc Conrad oop and math 3 Objects and Methods (example) Slide 5 algebraic number field Q(α) implementation interface (methods) initialize (e.g. with a polynomial) data compute z = x + y for x, y Q(α) and return minimal polynomial of α algorithms return [Q(α) : Q] Figure 1: An object algebraic number field. Slide 6 Inheritance An object B inherits from an object A means that the methods of object A are also available in B. A is called a parent class of B, B is a child class of A. Inheritance can be described as a is a relationship: B is an A. A collection of objects which are connected by inheritance is called an object hierarchy. B A C D An object hierarchy

Marc Conrad oop and math 4 Inheritance (example) algebraic number field Q(α) Slide 7 abelian number field Q(α) ab cyclotomic number field Q(ζ n ) quadratic number field Q( D) Figure 2: An object hierarchy of algebraic number fields. Overriding Slide 8 In an object hierarchy, riding a method means that a method of a parent class A is reimplemented in the child class B. There are two important applications of riding: Implementation of deferred methods. Performance improving of existing methods.

Marc Conrad oop and math 5 Slide 9 Overriding (example) abstract field F Q(α) GF (2 n ) C deferred: 0, 1, +,, x, 1/x. implemented: x y, x/y, x 2, x n,... deferred methods of F are implemented Figure 3: Deferred and implemented methods. Deferred methods (+,,...) are ridden in the child classes. Squaring may be ridden (e.g. in GF (2 n )) in order to increase performance. Polymorphism Slide 10 A polymorphic object is any entity such as a variable or a function argument that is permitted to hold values of different types during the course of execution. Polymorphic references allow the construction of structures which are related to a collection of objects with similar properties. Of special interest is the situation where a polymorphic reference represents an arbitrary object of a given hierarchy.

Marc Conrad oop and math 6 Polymorphism (example): Matrices Slide 11 ring of matrices F n m F (polymorphic) abstract field F Q(α) GF (2 n ) C Figure 4: Matrices, defined an arbitrary field. Polymorphism (example): Polynomials F [X 1,..., X n ] : Slide 12 abstract ring R (polymorphic) abstract field F univariate polynomial ring R[X] Figure 5: Multivariate polynomials by univariate polynomials.

Marc Conrad oop and math 7 Elliptic curves (definition and properties) Slide 13 An elliptic curve a field F is an isomorphism class of models of the form y 2 + a 1 y + a 3 xy = x 3 + a 2 x 2 + a 4 x + a 6 with a i F. Two models are isomorphic, if there is a birational transformation of the form r, s, t F and u F. x = u 2 x + r y = u 3 y + u 2 sx + t with The points on the curve form a group (Mordell-Weil group) where the group law can be given explicitly by rational functions. Object hierarchy of models of an elliptic curve abstract model polymorphic field Slide 14 model finite fields model number fields model other fields...

Marc Conrad oop and math 8 Methods in the model hierarchy Slide 15 abstract: construction by a 1,..., a 6 or by a birational transformation computation of model dependent constants (Tate s values, discriminant) addition of points finite fields: computation of special points, e.g. points of large order algorithm for solving the discrete logarithm problem number fields: computation of torsion points, generators, integral and S-integral points estimates concerning heights Object hierarchy of elliptic curves abstract elliptic curve list of models (polymorphic) Slide 16 elliptic curve finite fields elliptic curve number fields elliptic curve other fields...

Marc Conrad oop and math 9 Methods in the elliptic curve hierarchy Slide 17 abstract: construction by a model, which is then labeled the actual model facilities to manage a list of models and birational transformations between these models computation of model independent constants (e.g. j-invariant) computation of the structure of the point group (as deferred method) finite fields: special models (depending on the characteristic of the field) computation of the number of points of the group number fields: special models (SWNF, minimal models) computation of regulator, conductor, rank,... Object oriented elliptic curves (summary) Slide 18 In order to implement elliptic curves we use an object hierarchy for elliptic curves and an object hierarchy of models. The methods in these hierarchies are: field independent or abstract level and model independent or curve hierarchy field dependent concrete level model dependent model hierarchy

Marc Conrad oop and math 10 Slide 19 Concrete programming languages C++: Java: + widely used, extension of C ( fast implementations). no a priory implementation of polymorphism, riding must be explicitly allowed by the parent class ( virtual methods ). + provides polymorphism and automatic garbage collection, commonly used (but not in mathematical context). slower then C++, no multiple inheritance. Objective-C, Object Pascale, Smalltalk,...: + provide various facilities concerning oop. uncommon in computer algebra, no efficient arithmetics. There is a strong correspondence between object oriented concepts and mathematical structures: Slide 20 OOP Inheritance Overriding Polymorphism Math Specification of structures. A field is a ring with... Abstract definitions for concrete applications. x 2 := xx 3 2 = 9 Use of abstract structures in other structures. A matrix a ring. In computational mathematics object oriented concepts are suited not only for reasons of software design but for principal reasons.