22.09.2013 Views

SSL II USER'S GUIDE - Lahey Computer Systems

SSL II USER'S GUIDE - Lahey Computer Systems

SSL II USER'S GUIDE - Lahey Computer Systems

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CHAPTER 1<br />

<strong>SSL</strong> <strong>II</strong> OUTLINE<br />

1.1 BACKGROUND OF DEVELOPMENT<br />

Many years have passed since <strong>SSL</strong> (Scientific Subroutine<br />

Library) was first developed. Due to advancements in<br />

numerical calculation techniques and to increased power<br />

of computers, <strong>SSL</strong> has been updated and new functions<br />

have been added on many occasions. However, users<br />

have further requested the followings:<br />

• Better balance of the functions and uses of individual<br />

subroutines<br />

• That addition of new functions not adversely affect the<br />

organization of the system<br />

• Better documentation of various functions and their<br />

uses<br />

<strong>SSL</strong><strong>II</strong> was developed with these requirements in mind.<br />

1.2 DEVELOPMENT OBJECTIVES<br />

Systematizing<br />

It is important for a library to enable the user to quickly<br />

identify subroutines which will suit his purposes.<br />

<strong>SSL</strong><strong>II</strong> is organized with emphasis on the following<br />

points:<br />

• We classify numerical computations as follows:<br />

A Linear algebra<br />

B Eigenvalues and eigenvectors<br />

C Nonlinear equations<br />

D Extrema<br />

E Interpolations and approximations<br />

F Transforms<br />

G Numerical differentiation and quadrature<br />

H Differential equations<br />

I Special functions<br />

J Pseudo random numbers<br />

These categories are further subdivided for each branch.<br />

The library is made in a hierarchy organization. The<br />

organization allows easier identifying the locations of<br />

individual subroutines.<br />

• Some branches have subdivided functions. We present<br />

not only general purpose-oriented subroutines but also<br />

those which perform as components of the former, so<br />

that the user can use the components when he wishes to<br />

analize the sequence of the computational procedures.<br />

Performance improvement<br />

Through algorithmic and programming revisions,<br />

improvements have been made both in accuracy and<br />

speed.<br />

• The algorithmic methods which are stable and precise<br />

are newly adopted. Some of the standard methods used<br />

in the past are neglected.<br />

• In programming, importance is attached to reducing<br />

execution time. Thus, the subroutines, are written in<br />

FORTRAN to enjoy the optimization of the compiler.<br />

<strong>SSL</strong><strong>II</strong> improves the locality of the virtual storage<br />

system program, but does not decrease the efficiency of<br />

a computer without virtual storage.<br />

Improvement of reliability<br />

In most cases, single and double precision routines are<br />

generated from the same source program.<br />

Maintenance of compatibility<br />

Nowadays, developed softwares are easily transferred<br />

between different type systems. The <strong>SSL</strong> <strong>II</strong> subroutines<br />

are structured to maintain compatibility. A few auxiliary<br />

subroutines which are dependent of the system are<br />

created.<br />

1.3 FEATURES<br />

• <strong>SSL</strong> <strong>II</strong> is a collection of subroutines written in<br />

FORTRAN and desired subroutines are called in user<br />

programs using the CALL statement.<br />

• All subroutines are written without input statements,<br />

user data is assumed to be in main storage.<br />

• Data size is defined with subroutine parameters. No<br />

restrictions are applied to data size within subroutines.<br />

• To save storage space for linear and eigenvalue-<br />

17

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!