HomeOrderDownloadLinksLegalFeedbackNews

IBM Optimization Library Guide and Reference
Front Matter

Note!

Before using this information and the product it supports, be sure to read the general information under "Notices"


IBM welcomes your comments. Reader's comments may be emailed to osl@us.ibm.com, or you sent comments to:

IBM Corporation, Mail Station P356
522 South Road
Poughkeepsie, NY 12601-5400
United States of America
FAX: (International Access Code)+1+914+435-5094
Internet:

When you send information to IBM, you grant IBM a nonexclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you.


Update to Fifth Edition (October 1997)

This edition applies to the Optimization Library, Version 2. of the IBM Optimization Library licensed program, number 5645-A61 and to all subsequent releases and modifications until otherwise indicated in new editions. In this document, IBM Optimization Library refers to all versions of the library for whatever platform.

Notices

References in this publication to IBM products, programs, or services do not imply that IBM intends to make these available in all countries in which IBM operates. Any reference to an IBM product, program, or service is not intended to state or imply that only IBM's product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any of IBM's intellectual property rights or other legally protectible rights may be used instead of the IBM product, program, or service. Evaluation and verification of operation in conjunction with other products, programs, or services, except those expressly designated by IBM, are the user's responsibility.

IBM may have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to the IBM Director of Commercial Relations, IBM Corporation, Purchase, NY 10577.

A separate license is required for each machine on which the licensed program materials will be used. That is, a separate license for the IBM Optimization Library is required for each machine on which an application program incorporating subroutines from the library is to be run.

Portions of the GENQMD subroutine developed by J. Alan George and Joseph W.H. Liu of the University of Waterloo are incorporated into the Optimization Library and are used with the permission of the authors.


Programming Interface Information

This book is intended to help the customer use the Optimization Library product. It contains information on how to set up, code, and run application programs containing calls to library subroutines. This book documents general-use programming interfaces in Part 3, and associated guidance information in Parts 1 and 2. General-use programming interfaces allow the customer to write programs that make use of the capabilities of Optimization Library modules. However, no macros are provided that assist a customer in writing programs that access these capabilities.


Trademarks and Service Marks

The following terms, denoted by an asterisk (*) in this publication, are trademarks of the IBM Corporation in the United States and/or other countries:

AIX MVS/XA
AIX/ESA OS/2
BookManager Personal System/2
Enterprise System PS/2
ESA RISC System/6000
S/3090 System/370
ES/4381 System/390
ES/9000 Virtual Machine/E
IBM VM/ESA
MVS/ESA VM/XA
MVS/SP 3090

The following terms, denoted by a double asterisk (**) in this publication, are trademarks of other companies as follows:
 
 

Apollo, HP 
Solaris, Sun-4, Sun, and SunOS 
Intel, Pentium, 386, and 486 
IRIX, Silicon Graphics  
Lotus and 1-2-3                  
Microsoft, MS, MS-DOS, and Windows  
Motif  
NDP C-386, NDP Fortran-386, and Microway  
Phar Lap and 386 DOS-Extender  
SPARCstation

Hewlett-Packard Comp  
Sun Microsystems  
Intel Corporation  
Silicon Graphics, Inc. 
Lotus Development Corporation  
Microsoft Corporation  
Open Software Foundation  
Microway, Inc.  
Phar Lap Software, Inc.  
SPARC International, Inc. 


About this Book

The IBM* Optimization Library is a collection of high-performance mathematical subroutines for use by application programs that solve optimization problems. The library can be used with C and FORTRAN programs to find solutions to linear, mixed-integer, and quadratic programming problems. This book is a guide and reference manual for using Optimization Library modules in application programs.

This book includes:

This book is written for a wide set of users: scientists, mathematicians, engineers, statisticians, numerical analysts, computer scientists, operations researchers, and system programmers. It assumes a basic knowledge of mathematical optimization and numerical computation. It also assumes that the user is familiar with FORTRAN or C, and is familiar with the workstation operating systems.

There are some sections of this book that may require additional knowledge about the different areas of mathematical programming. If you are interested in learning more about mathematical programming and optimization, you can find a list of suggested readings in the bibliography at the back of this book.


How to Use This Book

"Guide Information", provides guidance information for using Optimization Library modules. It covers the tasks of learning, processing, installing, and diagnosing. The following chapters make up Part 1:

"Application Design Principles", contains information about mathematical programming that is specific to the Optimization Library. It contains the information necessary for you to understand the design principles used in developing the library. The first chapter helps you to become familiar with the necessary terminology and concepts. The succeeding chapters show you how this information relates to all the subroutines.

"Reference", provides reference information that you need to code the subroutine calling sequences. The subroutines are listed in alphabetic order. Each subroutine description begins with a description of the subroutine and any specific information you must have to use it.

Three appendixes are also provided:

Also provided are a glossary of terms and abbreviations and a bibliography of publications on mathematical background and software.


General Information about This Book

The following sections explain terminology, symbols, and the other information you will need to use this book.

Finding a Subroutine Description

All the library subroutines are described in the reference part of this book. The subroutine names are listed individually in the index and in "Optimization Library Subroutines", which contains pointers to detailed descriptions of all the subroutines.

Finding the Names of Related Publications

An overview of the related publications is listed in the bibliography. The bibliography also lists mathematical publications that you may find useful for background information, and it provides the information needed to order each book from an independent source.

Looking Up a Reference

Special references are made throughout this book to mathematical background publications and to several software publications available through IBM and other companies. All the information about these items is listed in the bibliography. Each reference is made by giving the Author's name (or Author's names) which is a hypertext link to the entry in the Bibliography.

Understanding the Terminology

Standard data processing and mathematical terminology is used throughout the documentation. Terminology is generally consistent with that used for VS FORTRAN. Refer to the glossary for definitions of terms used in this document.

Because the library modules can be used with more than one programming language, the terms fullword and doubleword are used in place of the FORTRAN terms single precision and double precision. These terms are consistent with the IBM ESA/390 Principles of Operation manual.


Interpreting the Abbreviated Names

Abbreviated names used in this book are defined below.
 

Short Name 

Full Name 

AIX/6000 

Advanced Interactive Executive/6000 

AIX/ESA 

Advanced Interactive Executive/Enterprise Systems Architecture 

APL2 

A Programming Language 2 

C/370 

IBM C/370 Compiler and Library 

CMS 

Conversational Monitor System 

ESA* 

Enterprise Systems Architecture 

ES/3090* 

IBM Enterprise System/3090* Processor 

ES/9000* 

IBM Enterprise System/9000* Processor 

IAD 

Interactive Debug facility 

ICA 

Intercompilation Analysis 

ISPF 

Interactive System Productivity Facility 

JCL 

Job control language 

LP 

Linear programming 

MIP 

Mixed-integer programming 

MP 

Mathematical programming 

MPSX/370 

Mathematical Program System Extended/370 

MVS/ESA* 

Multiple Virtual Storage/Enterprise Systems Architecture 

MVS/SP* 

Multiple Virtual Storage/System Product 

MVS/XA* 

Multiple Virtual Storage/Extended Architecture 

OS/2 

Operating System/2 

PRPQ 

Programming Request for Price Quotation 

PS/2 

Personal System/2 computer 

PL/I 

Programming Language/I 

QP 

Quadratic programming 

TSO 

Time Sharing Option 

VF 

Vector Facility 

VM/ESA* 

Virtual Machine/Enterprise Systems Architecture 

VM/SP HPO 

Virtual Machine/System Product High Performance Option 

VM/XA* 

Virtual Machine/Extended Architecture* 

VM/XA SP 

Virtual Machine/Extended Architecture System Product 

VS FORTRAN 

Virtual System Formula Translation 

XLC 

C Compiler 

XLF 

FORTRAN Compiler 


Interpreting the Fonts

This book uses a variety of special fonts to distinguish between many mathematical and programming items. These are described below.
 

Special Font 

Example 

Description 

Italic lowercase 
(no subscripts) 

n, dspace, rtcod, num 

A calling sequence argument or mathematical variable 

Italic lowercase 
(with subscripts) 

x1 , am n , xj1 j2 

An element of a vector, matrix, or sequence 

Bold italic lowercase 

x, y, z 

A vector or sequence 

Bold italic uppercase 

A, B, C 

A matrix 

Gothic uppercase 

A, B, C, AGB 
EKKSSLV(RTCOD,DSPACE,...) 

//SYSLIB DD ... 

An array 
A FORTRAN statement or 
A JCL statement 
An example 


Interpreting the Special Characters, Symbols, and Expressions

The mathematical and programming notations used in this book are consistent with traditional mathematical and programming usage. These conventions are explained below, along with special abbreviations that are associated with specific values.
 

Item 

Description 

Ai * 

The ith row of A 

A* j 

The jth column of A 

|| x||

The norm of x 

| a | 

The absolute value of a 

a l b

The inner product of vectors a and b 

x1, . . . , xn

Elements from x1 to xn 

i  = 1 , n 

i is assigned the values 1 to n 

y  x 

Vector y is replaced by vector x 

AT ; x T

The transpose of matrix A; the transpose of vector x 

 n 
Sxi 
i=1 


The sum of elements x1 to xn 

A -1 

The inverse of matrix A 

| A

The determinant of matrix A 

m by n matrix A 

Matrix A has m rows and n columns 

m  x  n matrix A 

Matrix A has m rows and n columns 

cB 

The elements of the vector c that are in an index set B, where B denotes the set of indices of the basic variables 

AB 

A square submatrix of the coefficient matrix A whose columns are indexed by the index set B defined above 

AN 

A submatrix of the coefficient matrix A whose columns are indexed by the index set N, where N denotes the set of indices of the nonbasic variables 

N\B 

The set resulting when set B is subtracted from set N. 

Imodelmask 

The 8 bit of the integer control variable Imodelmask is set (so Imodelmask = 256, see "Control Variable Bit Masks" for more information) 

1, 8  Imodelmask 

The 1 and 8 bits of Imodelmask are set, i.e., Imodelmask=257 

RHS 

Right-hand side 


Interpreting the Subroutine Descriptions

This section explains how to interpret the information in the subroutine descriptions in Part 3.

Description

Provides a brief explanation of what the subroutine does. In addition, it may name any prerequisite subroutines and give relevant programming points to consider.

Syntax

Shows the syntax for the FORTRAN and C calling sequences:
 
 
 

FORTRAN 

CALL subroutine-name(argument1,argument2,...)

C 

subroutine-name(argument1,argument2,...); 

 

All library subroutine names begin with EKK, the component identifier, to help prevent naming conflicts. The syntax descriptions show the arguments in the order in which they are coded. You can tell which arguments are used as input and output by looking at the "On Entry" and the "On Return" sections.

Notes:

  1. Because arguments in C are passed by value, all scalar arguments that are returned to your program must be immediately preceded by an ampersand (&). Array arguments may be passed as in FORTRAN. See the subroutine descriptions in Part 3 for information on how each call is coded.

 

On Entry

Lists the arguments that contain values that are passed to the subroutine. Each argument description gives the explanation of the argument, the valid input values, and the type of data required for that argument.
 
 

Note:

Some arguments, such as dspace, the user-provided work area, can be both entry and return arguments. 

On Return

Lists arguments containing values that are passed back to your program from the subroutine, such as a return code. Each argument description gives the meaning of the argument, the return code explanations, and the form of data passed back to your program for the argument. Any arguments not listed in this section are unchanged.
 
 

Note:

Some arguments, such as dspace, the user-provided work area, can be both entry and return arguments. 

Notes

Describe any general programming considerations and restrictions that apply to the arguments or the data for the arguments. References may be made to other parts of the book for further information.

Examples

Gives you a list of the sample programs, provided in Appendix B, that call the subroutine.


[ Top of Page | Previous Page | Next Page | Table of Contents ]

IBM homeOrderPrivacyLegalContact IBM