JInterval Library : P rinciples , Development , and P erspectives
description
Transcript of JInterval Library : P rinciples , Development , and P erspectives
![Page 1: JInterval Library : P rinciples , Development , and P erspectives](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/1.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/7.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/8.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/11.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/13.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/14.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/15.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/16.jpg)
ARCHITECTUREJInterval Library: Principles, Development, and Perspectives
Novosibirsk, 26 Sep 2012 SCAN 2012 16 / 60
![Page 17: JInterval Library : P rinciples , Development , and P erspectives](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/17.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/18.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/20.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/21.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/22.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/23.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/24.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/25.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/26.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/27.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/28.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/29.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/30.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/31.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/32.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/33.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/34.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/35.jpg)
Example 3. (Rump)
Novosibirsk, 26 Sep 2012 SCAN 2012 35 / 60
Compute for , and
![Page 36: JInterval Library : P rinciples , Development , and P erspectives](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/36.jpg)
Example 3. (Rump) using ExtendedRational
Novosibirsk, 26 Sep 2012 SCAN 2012 36 / 60
![Page 37: JInterval Library : P rinciples , Development , and P erspectives](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/37.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/38.jpg)
Example 3. (Rump) using SetInterval
Novosibirsk, 26 Sep 2012 SCAN 2012 38 / 60
![Page 39: JInterval Library : P rinciples , Development , and P erspectives](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/39.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/40.jpg)
Example 4. HBRNK enclosure
Novosibirsk, 26 Sep 2012 SCAN 2012 40 / 60
![Page 41: JInterval Library : P rinciples , Development , and P erspectives](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/41.jpg)
Example 4. HBRNK enclosure using MatlabOps
Novosibirsk, 26 Sep 2012 SCAN 2012 41 / 60
![Page 42: JInterval Library : P rinciples , Development , and P erspectives](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/42.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/43.jpg)
APPLICATIONSJInterval Library: Principles, Development, and Perspectives
Novosibirsk, 26 Sep 2012 SCAN 2012 43 / 60
![Page 44: JInterval Library : P rinciples , Development , and P erspectives](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/44.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/45.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/46.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/47.jpg)
* 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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/48.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/49.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/50.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/51.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/52.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/53.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/54.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/55.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/56.jpg)
PERSPECTIVESJInterval Library: Principles, Development, and Perspectives
Novosibirsk, 26 Sep 2012 SCAN 2012 56 / 60
![Page 57: JInterval Library : P rinciples , Development , and P erspectives](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/57.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/58.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/59.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022062423/568145fc550346895db307dd/html5/thumbnails/60.jpg)
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