jinterval library : p rinciples , development , and p erspectives

60
JInterval Library: Principles, Development, and Perspectives Sergei I. Zhilin Altai State University Barnaul, Russia [email protected] Dmitry Ju. Nadezhin Oracle Labs Zelenograd, Russia dmitry.nadezhin@gmai l.com 15’th GAMM-IMACS International Symposium on Scientific Computing, Computer Arithmetic and Verified Numerical Computations Novosibirsk, September 23–29, 2012 SCAN’20 12

Upload: doli

Post on 13-Jan-2016

41 views

Category:

Documents


0 download

DESCRIPTION

15’th GAMM-IMACS International Symposium on Scientific Computing, Computer Arithmetic and Verified Numerical Computations Novosibirsk, September 2 3 – 29, 201 2. SCAN ’2012. Sergei I. Zhilin Altai State University Barnaul, Russia [email protected]. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: JInterval  Library : P rinciples ,  Development , and P erspectives

JInterval Library: Principles, Development, and Perspectives

Sergei I. ZhilinAltai State UniversityBarnaul, [email protected]

Dmitry Ju. NadezhinOracle LabsZelenograd, [email protected]

15’th GAMM-IMACS International Symposium on Scientific Computing, Computer Arithmetic and Verified Numerical Computations

Novosibirsk, September 23–29, 2012SCAN’2012

Page 2: JInterval  Library : P rinciples ,  Development , and P erspectives

Outline

Why Interval Computations in Java Virtual Machine (JVM)? JInterval Evolution Architecture Functionality and Examples Applications Perspectives

Novosibirsk, 26 Sep 2012 SCAN 2012 2 / 60

Page 3: JInterval  Library : P rinciples ,  Development , and P erspectives

WHY INTERVAL COMPUTATIONS IN JVM?JInterval Library: Principles, Development, and Perspectives

Novosibirsk, 26 Sep 2012 SCAN 2012 3 / 60

Page 4: JInterval  Library : P rinciples ,  Development , and P erspectives

Java Is Popular

TIOBE Programming Community Index for September 2012– Calculated by counting hits of the most popular search engines

Novosibirsk, 26 Sep 2012 SCAN 2012 4 / 60

Page 5: JInterval  Library : P rinciples ,  Development , and P erspectives

Java Is Popular

RedMonk’s language ranking for September 2012

Novosibirsk, 26 Sep 2012 SCAN 2012

Popularity Rank on Github.com (by # of projects)

Popu

larit

y Ra

nk o

n St

ackO

verfl

ow.c

om (b

y #

of ta

gs)

5 / 60

Page 6: JInterval  Library : P rinciples ,  Development , and P erspectives

Java Is Popular

Bookscan's reports on the top 3,000 titles sold

Novosibirsk, 26 Sep 2012 SCAN 2012 6 / 60

Page 7: JInterval  Library : P rinciples ,  Development , and P erspectives

Gap between Interval and Applied Software

Java is an attractive and widely adopted technology for applied software development– Cross-platform portability of applications– General purpose object-oriented language – Almost any language can generate Java bytecodes– Advanced tools for distributed systems development– Huge amount of applied libraries

Interval analysis and interval computations have proved to be useful in numerous real-world applications

Interval software in Java is of fragmentary character Creation of systematic full-featured high-level interval library for

Java brings interval tools closer to developers of applied software

Novosibirsk, 26 Sep 2012 SCAN 2012 7 / 60

Page 8: JInterval  Library : P rinciples ,  Development , and P erspectives

Interval Computations in Java

Pro:• Portability of Java Virtual Machine (JVM)• Safe memory management

(no memory leaks and pointer errors)• Network-aware environment• Parallel and distributed computing

(threads, RMI)• Strict model of security • Standard API for GUI, graphics, DBMS, …• Widely adopted

– Embedded systems, browsers, …– Development, teaching, …

Con:• Low performance

– Virtual machine– Interpretation is slow– Overhead cost of safe memory management

• Language restrictions– No primitive structure type– No operator overloading– No traditional multidimesional arrays– No full compliance with IEEE 754*

• Relatively small number of scientific libraries on Java

• Scientific computing traditions: Fortran, С/С++

Novosibirsk, 26 Sep 2012 SCAN 2012

Is Java suitable for scientific computing?

*Kahan W., Darcy J.D. How Java’s Floating-Point Hurts Everyone Everywhere//ACM 1998 Workshop on Java forHigh–Performance Network Computing, Stanford University, March 1998, http://www.cs.berkeley.edu/~wkahan/JAVAhurt.pdf

8 / 60

Page 9: JInterval  Library : P rinciples ,  Development , and P erspectives

Interval Java Libraries

IA_math, 1997– Classic IA, classic interval elementary functions– Timothy J. Hickey, – Brandeis University, Boston, USA– interval.sourceforge.net/interval/

Java-XSC, 1999 – Classic IA, rectangular complex IA, classic interval elementary functions,

classic and complex interval vectors and matrices– Benjamin R.C. Bedregal, Jose E.M. Dutra – Universidade Federal do Rio Grande do Norte, Natal, Brazil – www.dimap.ufrn.br/~java-xsc/jxsc2007.html

Novosibirsk, 26 Sep 2012 SCAN 2012 9 / 60

Page 10: JInterval  Library : P rinciples ,  Development , and P erspectives

JINTERVAL EVOLUTIONJInterval Library: Principles, Development, and Perspectives

Novosibirsk, 26 Sep 2012 SCAN 2012 10 / 60

Page 11: JInterval  Library : P rinciples ,  Development , and P erspectives

Stages of JInterval Evolution

Sep 2008 JInterval is started as undergraduate student project ”Childhood” at Altai State University (Barnaul, Russia)

http://code.google.com/p/javaintervalmathasu/

Aug 2009 Dmitry Nadezhin (Sun Labs, Zelenograd, Russia) “Boyhood” joins the project

http://kenai.com/projects/jinterval

Jan 2012 Developing reference implementation and “Youth” test suite for P1788 becomes Priority #1

http://java.net/projects/jinterval orhttp://jinterval.java.net

Novosibirsk, 26 Sep 2012 SCAN 2012 11 / 60

Page 12: JInterval  Library : P rinciples ,  Development , and P erspectives

JInterval (Boyhood): A Priori Requirements

The library

1. Must be clear and easy to use

2. Should provide flexibility in the choice of interval algebra for computations

3. Should provide flexibility to extend its functionality

4. Should provide flexibility in choosing precision of interval boundaries and associated rounding policies

5. Must be portable

6. Should provide high performance7. Must be open source

Novosibirsk, 26 Sep 2012 SCAN 2012 12 / 60

Prio

rity

Page 13: JInterval  Library : P rinciples ,  Development , and P erspectives

JInterval (Boyhood): Architecture

“Fast” branch: – Interval bounds: double, nearest rounding– IA: set-based, Kaucher, complex rectangular, complex circular, complex ring,

complex polar– Interval elementary functions, vectors, matrices – ILS: Gauss, Gauss-Seidel, subdifferential Newton, NonNeg, Shaidurov

“Rational bounds” branch: – Interval bounds: smart rational/double, arbitrary precision, rounding policies,

contexts – IA: set-based– Interval elementary functions, vectors, matrices

Generic interfaces on top of branches

Novosibirsk, 26 Sep 2012 SCAN 2012 13 / 60

Page 14: JInterval  Library : P rinciples ,  Development , and P erspectives

JInterval (Boyhood): Type Hierarchy

Novosibirsk, 26 Sep 2012 SCAN 2012 14 / 60

Interval

ClassicRealInterval ComplexInterval

RealInterval

DoubleIntervalDoubleInterval

RationalIntervalRationalInterval

ComplexIntervalCircleComplexIntervalCircle

ComplexIntervalRectangleComplexIntervalRectangle

ComplexIntervalPolarComplexIntervalPolar

ComplexIntervalRingComplexIntervalRing

Page 15: JInterval  Library : P rinciples ,  Development , and P erspectives

JInterval (Boyhood): Lessons Learned

Novosibirsk, 26 Sep 2012 SCAN 2012 15 / 60

Problem Possible Solution

Java syntax is not expressive enough for calculations

Developing Scala API for a new JInterval implementation

JInterval is not compliant with the project of interval standard IEEE P1788

Redesign the library according to IEEE P1788

Low performance Using optional plugins for native code of high precision arithmetic and interval linear algebra algorithms through JNA

Java

r = x.add(y.multiply(z));

Scala

r = x + y*z

Page 16: JInterval  Library : P rinciples ,  Development , and P erspectives

ARCHITECTUREJInterval Library: Principles, Development, and Perspectives

Novosibirsk, 26 Sep 2012 SCAN 2012 16 / 60

Page 17: JInterval  Library : P rinciples ,  Development , and P erspectives

Class Diagram (package net.java.jinterval.interval)

Novosibirsk, 26 Sep 2012 SCAN 2012 17 / 60

Page 18: JInterval  Library : P rinciples ,  Development , and P erspectives

Key-role Interfaces

Novosibirsk, 26 Sep 2012 SCAN 2012 18 / 60

Types graph follows the flavor structure of P1788

Java interfaces:– Interval

Common methods for all flavors

– SetInterval Extends Interval with methods for

flavor ‘Set Interval’

– KaucherIntervalExtends Interval with methods for

flavor ‘Kaucher interval’

– ClassicInterval Extends all flavors, because can be

mapped to related flavor intervals

Page 19: JInterval  Library : P rinciples ,  Development , and P erspectives

Interface Interval: common methods of all flavors

Novosibirsk, 26 Sep 2012 SCAN 2012 19 / 60

Interval defines common methods of all interval flavors

Defines numerical and boolean operations only

Page 20: JInterval  Library : P rinciples ,  Development , and P erspectives

IntervalContext: interval operations interface

Novosibirsk, 26 Sep 2012 SCAN 2012 20 / 60

Generic interface IntervalContext defines signature for interval-valued methods

Page 21: JInterval  Library : P rinciples ,  Development , and P erspectives

KaucherIntervalContext: interval flavor interface

Novosibirsk, 26 Sep 2012 SCAN 2012 21 / 60

KaucherIntervalContext extends IntervalContextand binds type variable I to Kaucher interval flavor

Page 22: JInterval  Library : P rinciples ,  Development , and P erspectives

Implementation of interval contexts

There may be several implementations for flavor contexts– SetIntervalContextInfSupBase and SetIntervalContextInfSup are two tightest implementations of set interval operations and functions (P1788 Level 2, InfSup_F).

Novosibirsk, 26 Sep 2012 SCAN 2012 22 / 60

Page 23: JInterval  Library : P rinciples ,  Development , and P erspectives

Factory classes for interval contexts

Novosibirsk, 26 Sep 2012 SCAN 2012 23 / 60

Factory classes create particular instances of interval contexts– SetIntervalContexts– KaucherIntervalContexts

Page 24: JInterval  Library : P rinciples ,  Development , and P erspectives

Exact context

Novosibirsk, 26 Sep 2012 SCAN 2012 24 / 60

Static method getExact() creates the exact context All operations in the exact context return intervals with rational

bounds – P1788 Level 1 results or throw IrrationalException

Page 25: JInterval  Library : P rinciples ,  Development , and P erspectives

InfSup_F contexts

Novosibirsk, 26 Sep 2012 SCAN 2012 25 / 60

Static method getInfSup(BinaryValueSet numberFormat) creates the InfsSup_F contexts with binary floating-point interval representations (BINARY32, BINARY64, BINARY128, …, BINARY1024)

Page 26: JInterval  Library : P rinciples ,  Development , and P erspectives

jintervalAggregator of JInterval

Core Module Dependencies Graph

Novosibirsk, 26 Sep 2012 SCAN 2012 26 / 60

jinterval-irInterval regression solverjinterval-irInterval regression solver

jinterval-ilsInterval linear equation system solverjinterval-ilsInterval linear equation system solver

jinterval-interval-java Intervals, IAs, interval elem. functionsjinterval-interval-java Intervals, IAs, interval elem. functions

jinterval-rational-java Rational numbersjinterval-rational-java Rational numbers

fortress-roundingRounding class from Fortressfortress-roundingRounding class from Fortress

boehm-crealsBoehm’s constructive realsboehm-crealsBoehm’s constructive reals

mpfr-adapterJNA adapter for native GNU MPFRmpfr-adapterJNA adapter for native GNU MPFR

commons-math3Apache Commons Math 3.0commons-math3Apache Commons Math 3.0

lpsolveJava port of lp_solvelpsolveJava port of lp_solve

jnaJava access to native librariesjnaJava access to native libraries

large-test-javaJInterval testslarge-test-javaJInterval tests

commons-compressApache Commons Compress 1.4commons-compressApache Commons Compress 1.4

External dependenciesExternal dependenciesJInterval packagesJInterval packages

Page 27: JInterval  Library : P rinciples ,  Development , and P erspectives

FUNCTIONALITY AND EXAMPLESJInterval Library: Principles, Development, and Perspectives

Novosibirsk, 26 Sep 2012 SCAN 2012 27 / 60

Page 28: JInterval  Library : P rinciples ,  Development , and P erspectives

Functionality of JInterval (Youth)

Rational arithmetic– flexible inner representation

(rational, binary32, binary64, binary128,…)

– exact and approximate operations

Extended Rational arithmetic– Rational + {-∞ , +∞}

Interval Arithmetic– Set-based– Kaucher

Elementary Functions– According to P1788

Dense Vectors and Matrices– Rational, extended rational– Interval

Solvers– ILS Solvers

• Hansen-Bliek-Rohn-Ning-Kearfott enclosure +Gauss-Seidel

• Subdifferential Newton– Interval linear regression solver

• Data consistency check• Outlier detection• Object status detection• Interval prediction

Novosibirsk, 26 Sep 2012 SCAN 2012 28 / 60

Page 29: JInterval  Library : P rinciples ,  Development , and P erspectives

Example 1.1. Contexts and Simple Expressions

Novosibirsk, 26 Sep 2012 SCAN 2012 29 / 60

x+y = [3.0,5.0]x/y = [0.333251953125,1.0]x+y = [3.0,5.0]x/y = [0.333251953125,1.0]

, , , .

Page 30: JInterval  Library : P rinciples ,  Development , and P erspectives

Example 1.2. Contexts and Simple Expressions

Novosibirsk, 26 Sep 2012 SCAN 2012 30 / 60

x+y = [3.0,5.0]x/y = [0.3333333134651184,1.0]x+y = [3.0,5.0]x/y = [0.3333333134651184,1.0]

, , , .

Page 31: JInterval  Library : P rinciples ,  Development , and P erspectives

Example 1.3. Contexts and Simple Expressions

Novosibirsk, 26 Sep 2012 SCAN 2012 31 / 60

x+y = [3.0,5.0]x/y = [+0x15555555555555555555555555555p-114,+0x1p0] ([0.3333333333333333,1.0])

x+y = [3.0,5.0]x/y = [+0x15555555555555555555555555555p-114,+0x1p0] ([0.3333333333333333,1.0])

, , , .

Page 32: JInterval  Library : P rinciples ,  Development , and P erspectives

Example 1.4. Contexts and Simple Expressions

Novosibirsk, 26 Sep 2012 SCAN 2012 32 / 60

x+y = [3.0,5.0]x/y = [+0x1/0x3*2^0,+0x1p0]([0.3333333333333333,1.0])x+y = [3.0,5.0]x/y = [+0x1/0x3*2^0,+0x1p0]([0.3333333333333333,1.0])

, , , .

Page 33: JInterval  Library : P rinciples ,  Development , and P erspectives

Example 2.1. Decorations

Novosibirsk, 26 Sep 2012 SCAN 2012 33 / 60

sqrt([0.0,1.0]) = [0.0,1.0] COM

sqrt([-1.0,1.0]) = [0.0,1.0] CON

sqrt([-2.0,-1.0]) = [EMPTY] NDF

sqrt([EMPTY]) = [EMPTY] SAF

sqrt([0.0,1.0]) = [0.0,1.0] COM

sqrt([-1.0,1.0]) = [0.0,1.0] CON

sqrt([-2.0,-1.0]) = [EMPTY] NDF

sqrt([EMPTY]) = [EMPTY] SAF

Page 34: JInterval  Library : P rinciples ,  Development , and P erspectives

Example 2.2. Decorations

Novosibirsk, 26 Sep 2012 SCAN 2012 34 / 60

1/[0.0,0.0] = [EMPTY] NDF

1/[0.0,1.0] = [1.0,Infinity] CON

1/[4.9E-324,1.0] = [1.0,Infinity] SAF

x = [0.0,Infinity] SAF y = 1/x = [0.0,Infinity] CON

1/[0.0,0.0] = [EMPTY] NDF

1/[0.0,1.0] = [1.0,Infinity] CON

1/[4.9E-324,1.0] = [1.0,Infinity] SAF

x = [0.0,Infinity] SAF y = 1/x = [0.0,Infinity] CON

Page 35: JInterval  Library : P rinciples ,  Development , and P erspectives

Example 3. (Rump)

Novosibirsk, 26 Sep 2012 SCAN 2012 35 / 60

Compute for , and

Page 36: JInterval  Library : P rinciples ,  Development , and P erspectives

Example 3. (Rump) using ExtendedRational

Novosibirsk, 26 Sep 2012 SCAN 2012 36 / 60

Page 37: JInterval  Library : P rinciples ,  Development , and P erspectives

Example 3. (Rump) using ExtendedRational

Novosibirsk, 26 Sep 2012 SCAN 2012 37 / 60

=== BINARY16 ===r=NaN=== BINARY32 ===r=1.172603964805603 +0x9617e3p-23=== BINARY64 ===r=-1.1805916207174113E21 -0x1p70=== BINARY128 ===r=1.1726039400531787 +0x12c2fc595b06beb74a518f018c093p-112=== BINARY256 ===r=-0.8273960599468214 -0x69e81d3527ca0a45ad7387f39fb6bbbee6d0899f57af4ec62443141c771p-235=== Exact ===r=-0.8273960599468214 -0xd5ef/0x1029*2^-4

=== BINARY16 ===r=NaN=== BINARY32 ===r=1.172603964805603 +0x9617e3p-23=== BINARY64 ===r=-1.1805916207174113E21 -0x1p70=== BINARY128 ===r=1.1726039400531787 +0x12c2fc595b06beb74a518f018c093p-112=== BINARY256 ===r=-0.8273960599468214 -0x69e81d3527ca0a45ad7387f39fb6bbbee6d0899f57af4ec62443141c771p-235=== Exact ===r=-0.8273960599468214 -0xd5ef/0x1029*2^-4

Page 38: JInterval  Library : P rinciples ,  Development , and P erspectives

Example 3. (Rump) using SetInterval

Novosibirsk, 26 Sep 2012 SCAN 2012 38 / 60

Page 39: JInterval  Library : P rinciples ,  Development , and P erspectives

Example 3. (Rump) using SetInterval

Novosibirsk, 26 Sep 2012 SCAN 2012 39 / 60

=== BINARY16 ===i = [-Infinity,Infinity]=== BINARY32 ===i = [-6.972078301255262E30,6.972078905718172E30]=== BINARY64 ===i = [-8.264141345021879E21,5.902958103587058E21]=== BINARY128 ===i = [-0xffb4f40e9a93e50522d6b9c3f9dp-98,+0x12c2fc595b06beb74a518f018c093p-112] ([-1022.8273960599469,1.1726039400531787])=== BINARY256 ===i = [-0x69e81d3527ca0a45ad7387f39fb6bbbee6d0899f57af4ec62443141c771p-235, -0xd3d03a6a4f94148b5ae70fe73f6d777dcda1133eaf5e9d8c48862838ee1p-236] ([-0.8273960599468214,-0.8273960599468213])=== Exact ===i = [-0xd5ef/0x1029*2^-4,-0xd5ef/0x1029*2^-4] ([-0.8273960599468214,-0.8273960599468213])

Page 40: JInterval  Library : P rinciples ,  Development , and P erspectives

Example 4. HBRNK enclosure

Novosibirsk, 26 Sep 2012 SCAN 2012 40 / 60

Page 41: JInterval  Library : P rinciples ,  Development , and P erspectives

Example 4. HBRNK enclosure using MatlabOps

Novosibirsk, 26 Sep 2012 SCAN 2012 41 / 60

Page 42: JInterval  Library : P rinciples ,  Development , and P erspectives

Example 5. Gauss-Seidel Solver

Novosibirsk, 26 Sep 2012 SCAN 2012

A:/| [2.0,4.0] [-2.0,0.0] || [-1.0,0.0] [2.0,4.0] |\

b:/| [1.0,2.0] || [-2.0,2.0] |\

x:/| [-1.0,4.0] || [-1.5,3.0] |\

A:/| [2.0,4.0] [-2.0,0.0] || [-1.0,0.0] [2.0,4.0] |\

b:/| [1.0,2.0] || [-2.0,2.0] |\

x:/| [-1.0,4.0] || [-1.5,3.0] |\

42 / 60

Page 43: JInterval  Library : P rinciples ,  Development , and P erspectives

APPLICATIONSJInterval Library: Principles, Development, and Perspectives

Novosibirsk, 26 Sep 2012 SCAN 2012 43 / 60

Page 44: JInterval  Library : P rinciples ,  Development , and P erspectives

P1788 Test framework

Novosibirsk, 26 Sep 2012 SCAN 2012 44 / 60

FilibFilib

CXSCCXSC

PROFILPROFIL

BoostBoost

MPFIMPFILauncherLauncher

<NONAME><NONAME>

TestSet2.datTestSet2.dat

TestSet1.datTestSet1.dat

ReporttestFilibtestFilib

testCXSCtestCXSC

testPROFILtestPROFIL

testBoosttestBoost

testMPFItestMPFI

test<NONAME>test<NONAME>

TestSet3.datTestSet3.datIntervalLibrariesIntervalLibraries AdaptersAdapters

Page 45: JInterval  Library : P rinciples ,  Development , and P erspectives

P1788 Test framework

Novosibirsk, 26 Sep 2012 SCAN 2012 45 / 60

FilibFilib

CXSCCXSC

PROFILPROFIL

BoostBoost

MPFIMPFILauncherLauncher

<NONAME><NONAME>

TestSet1.datTestSet1.dat

TestSet3.datTestSet3.dat

TestSet2.datTestSet2.dat

ReporttestFilibtestFilib

testCXSCtestCXSC

testPROFILtestPROFIL

testBoosttestBoost

testMPFItestMPFI

test<NONAME>test<NONAME>

IntervalLibrariesIntervalLibraries AdaptersAdapters

Page 46: JInterval  Library : P rinciples ,  Development , and P erspectives

P1788 Test framework

Novosibirsk, 26 Sep 2012 SCAN 2012 46 / 60

FilibFilib

CXSCCXSC

PROFILPROFIL

BoostBoost

MPFIMPFILauncherLauncher

<NONAME><NONAME>

TestSet2.datTestSet2.dat

TestSet1.datTestSet1.dat

TestSet3.datTestSet3.dat

ReporttestFilibtestFilib

testCXSCtestCXSC

testPROFILtestPROFIL

testBoosttestBoost

testMPFItestMPFI

test<NONAME>test<NONAME>

IntervalLibrariesIntervalLibraries AdaptersAdapters

Page 47: JInterval  Library : P rinciples ,  Development , and P erspectives

* div[1,2] [0,1][1,2] [0,0]* sqrt[-Infinity,0][-Infinity,Infinity]* pown[0,0] 0

* div[1,2] [0,1][1,2] [0,0]* sqrt[-Infinity,0][-Infinity,Infinity]* pown[0,0] 0

P1788 Test framework. Sample RuntestDemo.dattestDemo.dat

== Filib 3.0.2div [1.0,2.0] [0.0,1.0] = [1.0,Infinity] : [1.0,Infinity] Okdiv [1.0,2.0] [0.0,0.0] = [EMPTY] : [1.7976931348623157E308,Infinity] NOT TIGHT!sqrt [-Infinity,0.0] = [0.0,0.0] : [0.0,0.0] Oksqrt [-Infinity,Infinity] = [0.0,Infinity] : [-4.9E-324,Infinity] NOT TIGHT!pown [0.0,0.0] 0 = [1.0,1.0] : [1.0,1.0] Ok==

== Boost 1.48.0div [1.0,2.0] [0.0,1.0] = [1.0,Infinity] : [1.0,Infinity] Okdiv [1.0,2.0] [0.0,0.0] = [EMPTY] : [EMPTY] Oksqrt [-Infinity,0.0] = [0.0,0.0] : [0.0,0.0] Oksqrt [-Infinity,Infinity] = [0.0,Infinity] : [0.0,Infinity] Okpown [0.0,0.0] 0 = [1.0,1.0] : [EMPTY] CONTAINMENT FAILURE!!!==

== MPFI 1.5.1div [1.0,2.0] [0.0,1.0] = [1.0,Infinity] : [1.0,Infinity] Okdiv [1.0,2.0] [0.0,0.0] = [EMPTY] : [-Infinity,Infinity] NOT TIGHT!sqrt [-Infinity,0.0] = [0.0,0.0] : [EMPTY] CONTAINMENT FAILURE!!!sqrt [-Infinity,Infinity] = [0.0,Infinity] : [EMPTY] CONTAINMENT FAILURE!!!Library has no Operation "pown" in line 7 : * pown==

== Filib 3.0.2div [1.0,2.0] [0.0,1.0] = [1.0,Infinity] : [1.0,Infinity] Okdiv [1.0,2.0] [0.0,0.0] = [EMPTY] : [1.7976931348623157E308,Infinity] NOT TIGHT!sqrt [-Infinity,0.0] = [0.0,0.0] : [0.0,0.0] Oksqrt [-Infinity,Infinity] = [0.0,Infinity] : [-4.9E-324,Infinity] NOT TIGHT!pown [0.0,0.0] 0 = [1.0,1.0] : [1.0,1.0] Ok==

== Boost 1.48.0div [1.0,2.0] [0.0,1.0] = [1.0,Infinity] : [1.0,Infinity] Okdiv [1.0,2.0] [0.0,0.0] = [EMPTY] : [EMPTY] Oksqrt [-Infinity,0.0] = [0.0,0.0] : [0.0,0.0] Oksqrt [-Infinity,Infinity] = [0.0,Infinity] : [0.0,Infinity] Okpown [0.0,0.0] 0 = [1.0,1.0] : [EMPTY] CONTAINMENT FAILURE!!!==

== MPFI 1.5.1div [1.0,2.0] [0.0,1.0] = [1.0,Infinity] : [1.0,Infinity] Okdiv [1.0,2.0] [0.0,0.0] = [EMPTY] : [-Infinity,Infinity] NOT TIGHT!sqrt [-Infinity,0.0] = [0.0,0.0] : [EMPTY] CONTAINMENT FAILURE!!!sqrt [-Infinity,Infinity] = [0.0,Infinity] : [EMPTY] CONTAINMENT FAILURE!!!Library has no Operation "pown" in line 7 : * pown==

ReportReport

Novosibirsk, 26 Sep 2012 SCAN 2012 47 / 60

Page 48: JInterval  Library : P rinciples ,  Development , and P erspectives

KNIME

KNIME— open source data mining platform

Novosibirsk, 26 Sep 2012 SCAN 2012 48 / 60

Page 49: JInterval  Library : P rinciples ,  Development , and P erspectives

KNIME Interval Tools

KNIME— open source data mining platform

Novosibirsk, 26 Sep 2012 SCAN 2012 49 / 60

Page 50: JInterval  Library : P rinciples ,  Development , and P erspectives

KNIME Nodes for Interval Regression

Novosibirsk, 26 Sep 2012 SCAN 2012 50 / 60

Builds linear interval regression model Y = f(X, A)

Interval Regression( Learner)

IR Outlier Detector

Calculates interval prediction Y* for X* using model Y = F(X, A)

Detects outliers (observations with underestimated error bound)

Interval Regression( Predictor)

IR Consistency

Checks consistency of input data and sets flow control variable

for IF switch

Page 51: JInterval  Library : P rinciples ,  Development , and P erspectives

KNIME Nodes for ILS Solving

In previous version of “Interval Tools”:

Novosibirsk, 26 Sep 2012 SCAN 2012 51 / 60

Computes inner/outer estimate of united/tolerable solution set and visualizes* 2D/3D united solution set

*Kraemer W. Computing and visualizing solutions sets of interval linear systems, Serdica J. Computing 1(4) 2007, 455-468.

ILS Solver

Page 52: JInterval  Library : P rinciples ,  Development , and P erspectives

KNIME Nodes for ILS Solving

Novosibirsk, 26 Sep 2012 SCAN 2012 52 / 60

Methods for united solution set estimation: – Outer:

Hansen-Bliek-Rohn-Ning-Kearfott enclosure + Gauss-Seidel

– Inner: Subdifferential Newton

Computes outer and inner estimates for united solution set of ILS Ax=b

ILS Solver ILS United Solution Set View

Visualizes 2D or 3D united solution set

Method: – I. A. Sharaya’s

algorithm for visualization of AE-solution sets

Under construction

Page 53: JInterval  Library : P rinciples ,  Development , and P erspectives

KNIME Workflow for Image Recognition

Novosibirsk, 26 Sep 2012 SCAN 2012 53 / 60

Prolubnikov A.V., Silitskiy S.A. On solving the problem of numeric matrices recognition using estimates of solution sets of interval systems of equations // Comp. Math. Proceedings of XIV Baikal International School-Seminar “Methods of optimization and its applications” Irkutsk-Baikal, July 2-8 июля 2008. Vol. 3. – Irkutsk: ISEM SB RAS, 2008. – pp. 152-157. (in Russian)

Read reference images

Read imageto recognize

Convert to matrices

Convert to matrices

Join Build interval matrices

Get A1, b

Get A2, b

Solve A1*x=b

Solve A2*x=b

Solve non-interval ILS

Join

JoinCalc metrics

Metrics values

Metrics histogram

Page 54: JInterval  Library : P rinciples ,  Development , and P erspectives

KNIME Workflow for Image Recognition

Novosibirsk, 26 Sep 2012 SCAN 2012 54 / 60

Prolubnikov A.V., Silitskiy S.A. On solving the problem of numeric matrices recognition using estimates of solution sets of interval systems of equations // Comp. Math. Proceedings of XIV Baikal International School-Seminar “Methods of optimization and its applications” Irkutsk-Baikal, July 2-8 июля 2008. Vol. 3. – Irkutsk: ISEM SB RAS, 2008. – pp. 152-157. (in Russian)

Read reference images

Read imageto recognize

Convert to matrices

Convert to matrices

Join Build interval matrices

Get A1, b

Get A2, b

Solve A1*x=b

Solve A2*x=b

Solve non-interval ILS

Join

JoinCalc metrics

Metrics values

Metrics histogram

Page 55: JInterval  Library : P rinciples ,  Development , and P erspectives

Mobile Application “Affiche”

Modeling positional uncertainties for GPS+GSM navigation using circular complex arithmetic

Novosibirsk, 26 Sep 2012 SCAN 2012 55 / 60

Page 56: JInterval  Library : P rinciples ,  Development , and P erspectives

PERSPECTIVESJInterval Library: Principles, Development, and Perspectives

Novosibirsk, 26 Sep 2012 SCAN 2012 56 / 60

Page 57: JInterval  Library : P rinciples ,  Development , and P erspectives

Future Directions

Holding P1788 compliance of JInterval Developing optional plugins for platform-dependent effective

implementations of inner layers through JNI– MPFR for fast multiple precision floating-point arithmetic– BLAS for fast linear algebra operations

Developing API for access to JInterval from other programming languages – Scala– …

High-level functionality replenishment

Novosibirsk, 26 Sep 2012 SCAN 2012 57 / 60

Page 58: JInterval  Library : P rinciples ,  Development , and P erspectives

High-Level Functionality Replenishment

Enhancing MatlabOps ILS tolerable solution set estimators ILS AE-solution set visualization (I. Sharaya) Global Optimization Solver (N. Panov – S. Shary)

– Randomized Branch & Bound– Interval simulating annealing – Interval Genetic algorithm– Multi-method algorithm

ODE Solver (D. Nadezhin)

Novosibirsk, 26 Sep 2012 SCAN 2012 58 / 60

Page 59: JInterval  Library : P rinciples ,  Development , and P erspectives

How to Get and Contribute to JInterval?

java.net/projects/jintervalSource codes (SVN)JavaDocWikiTutorialDevelopers’ forumMail lists

Novosibirsk, 26 Sep 2012 SCAN 2012 59 / 60

Page 60: JInterval  Library : P rinciples ,  Development , and P erspectives

Acknowledgements

Maksim V. Danilov Kirill S. Dronov Walter Krämer Nikita V. Panov Gregor Paw Anton E. Sartakov Andrey S. Samoilov Sergey P. Shary Irina A. Sharaya Egor N. Tepikin Leo N. Tolstoy IEEE Interval Standard Working Group – P1788

Novosibirsk, 26 Sep 2012 SCAN 2012 60 / 60