LINDO API 8.0
Copyright (c) 2013
LINDO Systems, Inc. 312.988.7422
1415 North Dayton St. info@lindo.com
Chicago, IL 60622 http://www.lindo.com
Contents
1. Introduction
2. Installation
2.1 Windows Platforms
2.2 Unix/Linux Platforms
3. License Keys
4. Samples
5. Technical Support
6. Contact Information
- - -
1. Introduction
The LINDO Application Programming Interface (API) provides a means for
software developers to incorporate optimization into their own application
programs.
[Powerful Solvers]
LINDO API is designed to solve optimization problems, including linear
programs, quadratic programs, integer programs, and general nonlinear-
nonconvex programs with global optimization and stochastic programming extensions.
[Comprehensive Set of Routines]
LINDO API provides dozens of routines to formulate, solve, query, and modify
optimization problems.
[Parallel Optimization]
LINDO API offers multi-cpu optimization extensions to its solvers to take advantage
of computers with multicore processors.
[MATLAB Interface]
LINDO API functions can be called from within MATLAB via the mxLINDO
interface. With mxLINDO, you can build efficient optimization applications
using MATLAB's programming language with a fraction of the coding required
for lower level languages such as C++ or Visual Basic. Please refer to the
MATLAB\README.TXT file for more information.
[Java Interface (JNI)]
LINDO API includes Java Native Interface (JNI) support for Windows, Solaris,
and Linux platforms. This new feature allows users to call LINDO API from
Java applications, such as applets running from a browser.
[.NET Interface]
LINDO API includes .NET support for Windows. This new feature allows users to
call LINDO API from .NET based distributed applications.
[Extensive Documentation and Help]
The LINDO API User Manual (in printed form and available online in pdf
format) includes detailed function definitions for all routines. Also
included in the manual are sample programs and discussions to assist you in
writing your own applications.
2. Installation
The LINDO API installation directory has the following structure
lindoapi\ ' installation directory
lindoapi\bin\<platform> ' binary directory
lindoapi\matlab ' matlab scripts, functions, etc..
lindoapi\include ' header files
lindoapi\license ' license files
lindoapi\doc ' user manual in pdf format
lindoapi\samples ' samples directory
lindoapi\samples\c\ ' c/c++ samples
lindoapi\samples\delphi\ ' delphi samples
lindoapi\samples\java\ ' java samples (j2sdk and j++)
lindoapi\samples\vb\ ' visual basic samples (windows only)
lindoapi\samples\dotnet\vb' visual basic net samples
lindoapi\samples\dotnet\cs' c# samples
lindoapi\samples\fort\ ' f90 samples (windows only)
lindoapi\samples\mps\ ' test problems in mps format
The platforms supported are listed in the following table.
Operating System / Architecture |
Binary Directory |
Java Native Interface |
Matlab Interface |
Linux 32-bit / x86 |
linux32 |
Yes |
No |
Linux 64-bit / x64 |
linux64 |
Yes |
No |
Mac OSX 32-bit / x86 |
osx32x86 |
Yes |
No |
Mac OSX 64-bit / x64 |
osx64x86 |
No |
No |
Solaris 32-bit / x86 |
solaris32x86 |
Yes |
No |
Solaris 64-bit / x64 |
solaris64x86 |
Yes |
No |
Windows 32-bit / x86 |
win32 |
Yes |
Yes |
Windows 64-bit / x64 |
win64 |
Yes |
No |
2.1. Windows Platforms: No specific installation procedure is required on
Windows platforms. Please refer to lindoapi/samples directory for examples on
building applications.
2.2. Unix/Linux Platforms: Follow the steps below to complete installation on
Unix-like platforms. In this README, it is assumed that the Linux 32-bit version of
LINDO API is being installed. For Solaris and other platforms, these steps
would be identical except for the installation file name.
Step 1. Locate the LAPI-LINUX-IA32-8.0.tar.gz file on your CD.
Step 2. Copy this file into an installation directory of your choice (eg. /opt):
%> cp LAPI-LINUX-IA32-8.0.tar.gz /opt
Step 3. Change working directory to '/opt' and uncompress the file using
‘gzip –d’ command as below. This operation creates LAPI-LINUX-IA32-8.0.tar.
%> gzip –d LAPI-LINUX-IA32-8.0.tar.gz
Step 4. Uncompress that file using ‘tar –xvf’ command as below. This will
create the LINDO API directory ‘lindoapi/’.
%> tar –xvf LAPI-LINUX-IA32-8.0.tar
Step 5. Set $LINDOAPI_HOME environment variable to point to the installation directory.
LINDOAPI_HOME=/opt/lindoapi
export LINDOAPI_HOME
Step 6. Change file permissions and create symbolic links as needed.
Change working directory to ‘$LINDOAPI_HOME/bin/linux32’ and check if LINDO
API’s shared libraries (.so files) and the driver program ‘runlindo’ are all
in executable mode. If not, either run the script 'lsymlink.sh' or change the
mode manually by typing the following commands:
%> chmod 755 liblindo.*
%> chmod 755 liblindojni.*
%> chmod 755 libmosek.so.*
%> chmod 755 runlindo
Create symbolic links to the following library files – symbolic links are
required for makefiles in samples directory.
For Unix-like systems,
%> ln -sf liblindo.so.8.0 liblindo.so
%> ln -sf liblindojni.so.8.0 liblindojni.so
%> ln -sf libmosek.so.6.0 libmosek.so
For Mac-OSX
%> ln -sf liblindo.8.0.dylib liblindo.dylib
%> ln -sf libmosek.6.0.dylib libmosek.dylib
These steps can be performed using the script ‘$LINDOAPI_HOME/bin/<platform>/lsymlink.sh’.
Step 7. (Optional) You can update your library path environment variable although it is not the
recommended way to specify search directories. LINDO API already have the run-time search paths
(RPATH) hardcoded into its libraries. LD_LIBRARY_PATH might only be appropriate as a short
term solution during testing or development. For example, a developer might use it to point to
older versions (prior to v8) of the LINDO API library. Older versions of LINDO API rely on this
environment variable.
LD_LIBRARY_PATH=$LINDOAPI_HOME/bin/<platform>:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
NOTE: Mac-OSX, AIX and HP-UX do not use LD_LIBRARY_PATH. Users of these
systems should apply the following equivalent changes.
Mac-OSX:
DYLD_LIBRARY_PATH=$LINDOAPI_HOME/bin/<platform>:$DYLD_LIBRARY_PATH
export DYLD_LIBRARY_PATH
AIX:
LIBPATH=$LINDOAPI_HOME/bin/<platform>:$LIBPATH
export LIBPATH
HP-UX:
SHLIB_PATH=$LINDOAPI_HOME/bin/<platform>:$SHLIB_PATH
export SHLIB_PATH
Step 8. (Optional) You can set $LINDOAPI_LICENSE_FILE environment
variable to refer to the license file in your installation.
LINDOAPI_LICENSE_FILE = “$LINDOAPI_HOME/license/lndapi80.lic”
export LINDOAPI_LICENSE_FILE
Alternatively, you can execute the shell script ‘lindoapivars.sh’ to
perform the required updates in these environment variables.
To execute this script manually, enter the following at command line
source $LINDOAPI_HOME/bin/<platform>/lindoapivars.sh
To execute this script automatically at logon, append this
line to the end of your startup script (.bashrc or .bash_profile for bash
shell).
Step 8. If you received a license file (lndapi80.lic) with your installation
CD, copy this file into the ‘$LINDOAPI_HOME/license’ directory.
Step 9. You can test your installation by changing directory to
$LINDOAPI_HOME/bin/<platform> and type the following. This should display the
version info on your LINDO API installation.
%> ./runlindo –v
Optionally, you can add “./” to your $PATH variable to avoid having to type
"./" in front of program runlindo from the current working directory.
3. License Keys
In a default installation, the license file (lndapi80.lic) is located under
LINDOAPI\LICENSE directory. The license file initially contains a demo
license, which allows full access to LINDO API with limited problem capacity.
IMPORTANT NOTE (1): If you received a license key from your vendor via e-mail,
you should edit your existing lndapi80.lic file with a text editor and
replace its content with the new key copying and pasting from the email
message. The actual license string lies between ‘>’ characters. If your
vendor sent your license key in the form of a file, simply drop the license
file under your ‘lindoapi\license\’ directory and rename it ‘lndapi80.lic’.
Your license key is unique to your installation and contains information
regarding your version's serial number, size, and supported options. The
license key is case sensitive, so be sure to enter it exactly as listed,
including all hyphens, if you ever have to enter it manually. Given that your
license key is unique to your installation, you should not share it with any
user not licensed to use your copy of the LINDO API.
IMPORTANT NOTE (2): The users who require a license tied to a particular
machine [machine name,user_name,disk id] will be required to send us a
small file containing the target machine's [m,u,d] info. A file called
“userinfo.txt” can be created by typing “runlindo –uinfo” at command line.
The “runlindo” is a command-line application located under lindoapi/bin/<PLATFORM>
directory.
The file “userinfo.txt” needs to be sent to sales@lindo.com in order to obtain
the machine specific license. The information contained within “userinfo.txt”
will be used by LINDO for licensing purposes ONLY.
4. Samples
The LINDOAPI\SAMPLES directory created during the installation contains
several programming examples using a high level language. Please refer to the
SAMPLES\README.TXT file for more information.
5. Technical Support
If you need technical support, contact LINDO Systems with the following
information
1) The serial and version numbers of the LINDO API you are running. The
version number can be obtained by running 'runlindo –v' at command prompt.
2) The steps to reproduce the problem that you have encountered along with
the copies of required input/parameter files.
3) The operating system and version (Win95/NT/XP, Linux, Solaris, or other)
6. Contact Information
You can contact us through e-mail using the following addresses:
General Information and Questions:
webinfo@lindo.com
Sales and ordering:
sales@lindo.com
Technical Support:
tech@lindo.com
through the phone by using the following numbers:
Main Numbers:
(800)441-BEST(2378) or (312)988-7422
Technical Support:
(312)988-9421
Fax:
(312)988-9065
or through snail mail using the following address:
LINDO Systems, Inc.
1415 North Dayton Street
Chicago, IL 60622
USA