Commit 4fcec2f7 authored by Afif Elghraoui's avatar Afif Elghraoui

Imported Upstream version 2.5.10.3+ds

parents
# Object files
*.o
*.ko
*.obj
*.elf
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
# http://www.gnu.org/software/automake
.deps
.dirstamp
Makefile
Makefile.in
/test-driver
# http://www.gnu.org/software/autoconf
/autom4te.cache
/aclocal.m4
/compile
/configure
/depcomp
/install-sh
/ltmain.sh
/m4/*.m4
/missing
/stamp-h1
/config.guess
/config.h*
/config.log
/config.status
/config.sub
language: c
compiler:
- gcc
- clang
before_install:
- sed -i -e 's|AC_PREREQ(2.69)|AC_PREREQ(2.68)|' configure.ac
- sudo apt-get update -qq
install:
- sudo apt-get install -qq libgmp-dev libgmp10
script: >
./bootstrap && ./configure && make -j2 distcheck
This diff is collapsed.
This diff is collapsed.
ACLOCAL_AMFLAGS = -I m4
# These source files are used as is for the library
MAIN_SOURCE_FILES = \
qsopt_ex/allocrus.c \
qsopt_ex/bgetopt.c \
qsopt_ex/eg_io.c \
qsopt_ex/eg_lpnum.c \
qsopt_ex/except.c \
qsopt_ex/urandom.c \
qsopt_ex/zeit.c \
qsopt_ex/names.c \
qsopt_ex/symtab.c \
qsopt_ex/util.c \
qsopt_ex/logging.c \
qsopt_ex/exact.c \
qsopt_ex/reporter.c \
qsopt_ex/eg_exutil.c \
qsopt_ex/eg_macros.c \
qsopt_ex/eg_memslab.c \
qsopt_ex/sortrus_common.c \
qsopt_ex/QSopt_ex_version.c
# Header files
PUBLIC_HEADER_FILES = \
qsopt_ex/bgetopt.h \
qsopt_ex/eg_io.h \
qsopt_ex/eg_lpnum.h \
qsopt_ex/urandom.h \
qsopt_ex/zeit.h \
qsopt_ex/names.h \
qsopt_ex/symtab.h \
qsopt_ex/exact.h \
qsopt_ex/reporter.h \
qsopt_ex/eg_exutil.h \
qsopt_ex/eg_macros.h \
qsopt_ex/eg_memslab.h \
qsopt_ex/eg_mem.h \
qsopt_ex/eg_elist.h \
qsopt_ex/eg_nummacros.h \
qsopt_ex/eg_lpnum.dbl.h \
qsopt_ex/eg_lpnum.mpq.h \
qsopt_ex/eg_lpnum.mpf.h \
qsopt_ex/eg_timer.h \
qsopt_ex/basicdefs.h \
qsopt_ex/stddefs.h \
qsopt_ex/sortrus_common.h \
qsopt_ex/QSopt_ex_version.h \
qsopt_ex/QSopt_ex.h \
qsopt_ex/logging.h
PRIVATE_HEADER_FILES = \
qsopt_ex/allocrus.h \
qsopt_ex/except.h \
qsopt_ex/logging-private.h \
qsopt_ex/logging.h \
qsopt_ex/qs_config.h \
qsopt_ex/trace.h \
qsopt_ex/util.h
# These source files have to be instantiated using the
# type template mechanism
TEMPLATE_SOURCE_FILES = \
qsopt_ex/rawlp.c \
qsopt_ex/mps.c \
qsopt_ex/read_mps.c \
qsopt_ex/lp.c \
qsopt_ex/write_lp.c \
qsopt_ex/read_lp.c \
qsopt_ex/readline.c \
qsopt_ex/lpdata.c \
qsopt_ex/presolve.c \
qsopt_ex/factor.c \
qsopt_ex/basis.c \
qsopt_ex/price.c \
qsopt_ex/dstruct.c \
qsopt_ex/simplex.c \
qsopt_ex/fct.c \
qsopt_ex/ratio.c \
qsopt_ex/lib.c \
qsopt_ex/binary.c \
qsopt_ex/qsopt.c \
qsopt_ex/sortrus.c \
qsopt_ex/dheaps_i.c \
qsopt_ex/priority.c \
qsopt_ex/editor.c \
qsopt_ex/format.c \
qsopt_ex/eg_numutil.c
TEMPLATE_PUBLIC_HEADER_FILES = \
qsopt_ex/write_lp.h \
qsopt_ex/read_lp.h \
qsopt_ex/read_mps.h \
qsopt_ex/readline.h \
qsopt_ex/lpdata.h \
qsopt_ex/presolve.h \
qsopt_ex/factor.h \
qsopt_ex/basis.h \
qsopt_ex/price.h \
qsopt_ex/dstruct.h \
qsopt_ex/simplex.h \
qsopt_ex/fct.h \
qsopt_ex/ratio.h \
qsopt_ex/lib.h \
qsopt_ex/binary.h \
qsopt_ex/qsopt.h \
qsopt_ex/sortrus.h \
qsopt_ex/dheaps_i.h \
qsopt_ex/priority.h \
qsopt_ex/editor.h \
qsopt_ex/format.h \
qsopt_ex/lpdefs.h \
qsopt_ex/qstruct.h \
qsopt_ex/eg_numutil.h
TEMPLATE_PRIVATE_HEADER_FILES = \
qsopt_ex/rawlp.h \
qsopt_ex/mps.h \
qsopt_ex/lp.h
# Define specific template sources
TEMPLATE_SOURCES_DBL = $(TEMPLATE_SOURCE_FILES:.c=_dbl.c)
TEMPLATE_PUBLIC_HEADERS_DBL = \
$(TEMPLATE_PUBLIC_HEADER_FILES:.h=_dbl.h)
TEMPLATE_HEADERS_DBL = \
$(TEMPLATE_PUBLIC_HEADERS_DBL) \
$(TEMPLATE_PRIVATE_HEADER_FILES:.h=_dbl.h)
$(TEMPLATE_SOURCES_DBL): %_dbl.c: %.c Makefile
$(AM_V_GEN)$(MKDIR_P) $(@D) && ( \
echo "/* WARNING! This file was autogenerated from template */" && \
$(SED) -e 's|EGLPNUM_TYPENAME|dbl|g' -e 's|EGLPNUM_TYPE|double|g' $< ) > $@
$(TEMPLATE_HEADERS_DBL): %_dbl.h: %.h Makefile
$(AM_V_GEN)$(MKDIR_P) $(@D) && ( \
echo "/* WARNING! This file was autogenerated from template */" && \
$(SED) -e 's|EGLPNUM_TYPENAME|dbl|g' -e 's|EGLPNUM_TYPE|double|g' $< ) > $@
TEMPLATE_SOURCES_MPQ = $(TEMPLATE_SOURCE_FILES:.c=_mpq.c)
TEMPLATE_PUBLIC_HEADERS_MPQ = \
$(TEMPLATE_PUBLIC_HEADER_FILES:.h=_mpq.h)
TEMPLATE_HEADERS_MPQ = \
$(TEMPLATE_PUBLIC_HEADERS_MPQ) \
$(TEMPLATE_PRIVATE_HEADER_FILES:.h=_mpq.h)
$(TEMPLATE_SOURCES_MPQ): %_mpq.c: %.c Makefile
$(AM_V_GEN)$(MKDIR_P) $(@D) && ( \
echo "/* WARNING! This file was autogenerated from template */" && \
$(SED) -e 's|EGLPNUM_TYPENAME|mpq|g' -e 's|EGLPNUM_TYPE|mpq_t|g' $< ) > $@
$(TEMPLATE_HEADERS_MPQ): %_mpq.h: %.h Makefile
$(AM_V_GEN)$(MKDIR_P) $(@D) && ( \
echo "/* WARNING! This file was autogenerated from template */" && \
$(SED) -e 's|EGLPNUM_TYPENAME|mpq|g' -e 's|EGLPNUM_TYPE|mpq_t|g' $< ) > $@
TEMPLATE_SOURCES_MPF = $(TEMPLATE_SOURCE_FILES:.c=_mpf.c)
TEMPLATE_PUBLIC_HEADERS_MPF = \
$(TEMPLATE_PUBLIC_HEADER_FILES:.h=_mpf.h)
TEMPLATE_HEADERS_MPF = \
$(TEMPLATE_PUBLIC_HEADERS_MPF) \
$(TEMPLATE_PRIVATE_HEADER_FILES:.h=_mpf.h)
$(TEMPLATE_SOURCES_MPF): %_mpf.c: %.c Makefile
$(AM_V_GEN)$(MKDIR_P) $(@D) && ( \
echo "/* WARNING! This file was autogenerated from template */" && \
$(SED) -e 's|EGLPNUM_TYPENAME|mpf|g' -e 's|EGLPNUM_TYPE|mpf_t|g' $< ) > $@
$(TEMPLATE_HEADERS_MPF): %_mpf.h: %.h Makefile
$(AM_V_GEN)$(MKDIR_P) $(@D) && ( \
echo "/* WARNING! This file was autogenerated from template */" && \
$(SED) -e 's|EGLPNUM_TYPENAME|mpf|g' -e 's|EGLPNUM_TYPE|mpf_t|g' $< ) > $@
# Define complete set of template files
TEMPLATE_FILES = \
$(TEMPLATE_SOURCES_DBL) $(TEMPLATE_HEADERS_DBL) \
$(TEMPLATE_SOURCES_MPQ) $(TEMPLATE_HEADERS_MPQ) \
$(TEMPLATE_SOURCES_MPF) $(TEMPLATE_HEADERS_MPF)
# Tell automake that these are generated files
BUILT_SOURCES = $(TEMPLATE_FILES)
AM_CFLAGS = -I$(top_srcdir)/qsopt_ex -I$(top_builddir)/qsopt_ex
# Library files
lib_LTLIBRARIES = libqsopt_ex.la
libqsopt_ex_la_SOURCES = \
$(MAIN_SOURCE_FILES) $(PUBLIC_HEADER_FILES) \
$(PRIVATE_HEADER_FILES)
nodist_libqsopt_ex_la_SOURCES = \
$(TEMPLATE_FILES)
libqsopt_ex_la_CFLAGS = \
$(AM_CFLAGS) $(GMP_CFLAGS)
libqsopt_ex_la_LDFLAGS = \
-no-undefined \
-version-info $(LT_VERSION_INFO) \
$(AM_LDFLAGS)
libqsopt_ex_la_LIBADD = $(GMP_LIBS)
# Library header files
headerdir = $(includedir)/qsopt_ex
header_DATA = \
$(PUBLIC_HEADER_FILES) \
$(TEMPLATE_PUBLIC_HEADERS_DBL) \
$(TEMPLATE_PUBLIC_HEADERS_MPQ) \
$(TEMPLATE_PUBLIC_HEADERS_MPF)
# Program files
bin_PROGRAMS = esolver/esolver
noinst_PROGRAMS = tests/test_qs tests/eg_sloan
tests_test_qs_SOURCES = tests/test_qs.c
tests_test_qs_CFLAGS = $(AM_CFLAGS) $(GMP_CFLAGS)
tests_test_qs_LDADD = $(GMP_LIBS) libqsopt_ex.la
tests_eg_sloan_SOURCES = tests/eg_sloan.c tests/eg_sloan.h
tests_eg_sloan_CFLAGS = $(AM_CFLAGS) $(GMP_CFLAGS)
tests_eg_sloan_LDADD = $(GMP_LIBS) libqsopt_ex.la
esolver_esolver_SOURCES = esolver/esolver.c
esolver_esolver_CFLAGS = $(AM_CFLAGS) $(GMP_CFLAGS)
esolver_esolver_LDADD = $(GMP_LIBS) libqsopt_ex.la
# Tests
LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) \
$(top_srcdir)/tap-driver.sh
TESTS = tests/test_qs
# Additional files to be distributed. Always run `make distcheck`
# to be sure all necessary files are distributed!
EXTRA_DIST = \
README.md NEWS.md Doxyfile License.txt \
$(TEMPLATE_SOURCE_FILES) \
$(TEMPLATE_PUBLIC_HEADER_FILES) \
$(TEMPLATE_PRIVATE_HEADER_FILES)
# Clean files
CLEANFILES = \
$(TEMPLATE_FILES)
2.5.10.3
--------
- All output to stdout/stderr now goes through an internal logging function.
The log messages can optionally be redirected to a user supplied function
(by default they are written to stderr).
- Some headers that are internal to the library are no longer installed.
- Restored possibility of compressing the output files (Denis Rosset).
- Remove unused support for dmalloc.
- Convert demo_qs into test_qs TAP test suite.
2.5.10.2
--------
* (The patch `_p` version notation used in 2.5.10_p1 is not widely supported so
this release simply uses the dot notation.)
* Removes Python module (moved to separate repository at
https://github.com/jonls/python-qsoptex).
* Move library source files into `qsopt_ex` so the header files can be accessed
in the same way as when installed (`<qsopt_ex/XX.h>`).
* Explicitly include the typename of template types when using a macro,
variable or function that is template generated. This removes the
build dependencies on Exuberant Ctags and GNU sed, as well as speeding up
the template generation significantly.
* Remove util.c/util.h from template generation since the majority of symbols
are not template type specific.
2.5.10_p1
---------
* Based on original version v2.5.10 published by Daniel Espinoza et al.
* Changed to autotools-based build system.
* Removed external dependency on EGlib.
* Build library using libtool for portability.
* Add Cython-based Python module to interface with libqsopt_ex.
* Fix sprintf calls with missing format string.
* Add missing header declarations, includes.
* Clean up headers to make external use easier.
* Remove some unused functions/macros that caused compiler warnings/errors.
* Workaround: Writing solution to gz-file was broken; temporarily disabled gzip output.
* Add README file with build instructions and code examples.
* Add Travis CI build script.
QSopt Exact
===========
[![Build Status](https://travis-ci.org/jonls/qsopt-ex.svg?branch=master)](https://travis-ci.org/jonls/qsopt-ex)
Exact linear programming solver. This is a fork of QSopt_ex, originally
released by Daniel Espinoza _et al._
[version 2.5.10](http://www.math.uwaterloo.ca/~bico/qsopt/ex/) under the
GPL 3 (or later). The authors of QSopt_ex also granted a free license to
use the software for research purposes but this license does not extend
to the changes introduced by this project.
The goal of this fork is to update the software, and in particular the
build system, to be more friendly. In addition the external
dependencies have been reduced by removing the dependency on EGlib,
GNU awk and Exuberant Ctags.
Dependencies
------------
- C compiler: Tested with GCC and Clang.
- Libtool: To build QSopt_ex as a library.
- [GNU MP](https://gmplib.org/): Tested with 6.0.0. The original authors
stated that QSopt_ex was tested with the 4.x.x and with 5.0.x version
series. The authors also noted that GNU MP should be compiled using option
`--enable-alloca=malloc-reentrant` but this does not seem to be required
anymore.
- libz: To read/write gz-compresed files.
- libbz2 To read/write bz2-compresed files.
Installing
----------
If you have just cloned the source code with Git, run the `bootstrap`
script to automatically set up the build system.
``` shell
$ ./bootstrap
```
This script calls `autoreconf` and `libtoolize` with the proper
arguments. This will also regenerate the `configure` script. It is
recommended to build out of source directory. This is simply done
by running `configure` from an empty directory.
``` shell
$ mkdir build && cd build
$ ../configure
```
Use `./configure --help` to see available options. Now the test
programs and library can be compiled using `make`. It is possible
to do a parallel build using the `-jX` switch where `X` is the number
of parallel processes.
``` shell
$ make -j4
```
To install the libraries and executables run
``` shell
$ make install
```
This will install into the prefix specified when `configure` was run.
Running the solver
------------------
The exact solver is available though the `esolver` executable. It can be
invoked to solve an LP or MPS format problem.
``` shell
$ ./esolver cycle.mps
```
See `./esolver -h` for more information on command line options.
Using it as a library
---------------------
To see an example of how to use this software as a C library, see the test
[tests/test_qs.c](tests/test_qs.c) or the program
[esolver/esolver.c](esolver/esolver.c).
Python module
-------------
The Python module has moved to a separate repository at
[jonls/python-qsoptex](https://github.com/jonls/python-qsoptex).
#!/bin/sh
# change to root directory
cd $(dirname "$0")
autoreconf --force --install --verbose
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.69)
AC_INIT([QSopt_ex], [2.5.10.3], [https://github.com/jonls/qsopt-ex/issues])
AC_CONFIG_SRCDIR([qsopt_ex/QSopt_ex.h])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
AC_REQUIRE_AUX_FILE([tap-driver.sh])
AM_INIT_AUTOMAKE([foreign subdir-objects dist-xz])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_USE_SYSTEM_EXTENSIONS
### Versioning
# This is the internal library version information used by libtool.
# IT DOES NOT FOLLOW THE NORMAL RELEASE VERSIONING!
# Instead follow these rules from the libtool documentation:
# 1. Update the version information only immediately before a public release of your software.
# 2. If the library source code has changed at all since the last update, then increment revision.
# ("c:r:a" becomes "c:r+1:a")
# 3. If any interfaces have been added, removed, or changed since the last update, increment current,
# and set revision to 0. ("c+1:0:a")
# 4. If any interfaces have been added since the last public release, then increment age.
# 5. If any interfaces have been removed since the last public release, then set age to 0.
m4_define([lt_current],[3])
m4_define([lt_revision],[0])
m4_define([lt_age],[1])
m4_define([lt_version_info],[lt_current:lt_revision:lt_age])
AC_SUBST([LT_VERSION_INFO], [lt_version_info])
### Checks for programs.
AC_PROG_CC
AC_PROG_SED
AC_PROG_LIBTOOL
### Check for debug mode
AC_ARG_ENABLE([debug],
[AS_HELP_STRING([--enable-debug], [enable debug mode @<:@default=yes@:>@])],
[enable_debug=$enable])
AS_IF([test "x$enable_debug" != xno], [
AC_SUBST([ENABLE_DEBUG],[1])
AC_DEFINE([DEBUG], [1], [Enable debug mode])
], [
AC_SUBST([ENABLE_DEBUG],[0])
AC_DEFINE([DEBUG], [0], [Disable debug mode])
])
### Check for verbosity level
AC_ARG_ENABLE([verbose-level],
[AS_HELP_STRING([--enable-verbose-level], [fix verbose-level for compile-time routines @<:@default=100@:>@])],
[],[enable_verbose_level=100])
AC_DEFINE_UNQUOTED([VERBOSE_LEVEL],[$enable_verbose_level],[Compilation-time verbose level])
### Check for libgmp
AC_ARG_VAR([GMP_CFLAGS], [C compiler flags for GMP, overriding automatic detection])
AC_ARG_VAR([GMP_LIBS], [linker flags for GMP, overriding automatic detection])
AS_IF([test -z "$GMP_CFLAGS" -a -z "$GMP_LIBS"], [
AC_CHECK_LIB([gmp], [__gmpz_init], [
GMP_CFLAGS=""
GMP_LIBS="-lgmp"
], [AC_MSG_ERROR([GNU MP not found, see https://gmplib.org/])])
])
### Check for libz
AC_CHECK_LIB([z], [gzopen], [], AC_MSG_NOTICE([compiling without libz]))
### Check for libbz2
AC_CHECK_LIB([bz2], [BZ2_bzopen], [], AC_MSG_NOTICE([compiling without libbz2]))
### Check for math library
AC_SEARCH_LIBS([pow], [m], [], [
AC_MSG_ERROR([unable to find library with math functions (pow)])])
### Check for pthread library
AC_CHECK_LIB([pthread], [pthread_mutex_lock])
### Checks for header files.
AC_HEADER_STDC
AC_HEADER_TIME
AC_CHECK_HEADERS([errno.h float.h getopt.h inttypes.h limits.h math.h setjmp.h signal.h stdarg.h stdint.h stdio.h string.h sys/param.h sys/resource.h sys/time.h sys/times.h sys/utsname.h unistd.h])
### Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_TYPEOF
AC_TYPE_INT16_T
AC_TYPE_INT32_T
AC_TYPE_INT64_T
AC_TYPE_INT8_T
AC_TYPE_SIGNAL
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
AC_TYPE_UINT16_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
AC_TYPE_UINT8_T
### Checks for library functions.
AC_FUNC_MALLOC
AC_FUNC_MEMCMP
AC_FUNC_REALLOC
AC_FUNC_STRTOD
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([floor memset pow sqrt strdup strerror uname posix_memalign sleep getrusage times clock sigaction signal])
### Print output files
AC_CONFIG_FILES([
Makefile
])
AC_OUTPUT
echo "
$PACKAGE_NAME $VERSION
prefix: ${prefix}
compiler: ${CC}
cflags: ${CFLAGS}
ldflags: ${LDFLAGS}
"
This diff is collapsed.
This README is here so that git will keep the m4 directory.
The m4 directory must be here to work around a bug in autotools
where autoreconf fails if it is not present.
/* QSopt_ex.h -- QSopt_ex main header file
* This file is part of QSopt_ex.
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by the
* Free Software Foundation; either version 2.1 of the License, or (at your
* option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* Copyright (c) 2014-2015 Jon Lund Steffensen <jonlst@gmail.com>
*/
#ifndef QSOPT_EX_H
#define QSOPT_EX_H
#include "eg_elist.h"
#include "eg_io.h"
#include "eg_lpnum.h"
#include "eg_macros.h"
#include "eg_mem.h"
#include "eg_memslab.h"
#include "eg_lpnum.dbl.h"
#include "eg_lpnum.mpf.h"
#include "eg_lpnum.mpq.h"
#include "basicdefs.h"
#include "urandom.h"
#include "symtab.h"
#include "reporter.h"
#include "bgetopt.h"
#include "zeit.h"
#include "logging.h"
#include "QSopt_ex_version.h"
/* Double template headers */
#include "qstruct_dbl.h"
#include "editor_dbl.h"
#include "dstruct_dbl.h"
#include "factor_dbl.h"
#include "lpdefs_dbl.h"
#include "readline_dbl.h"
#include "lpdata_dbl.h"
#include "basis_dbl.h"
#include "dheaps_i_dbl.h"
#include "qsopt_dbl.h"
#include "format_dbl.h"
#include "price_dbl.h"
#include "priority_dbl.h"
#include "ratio_dbl.h"
#include "read_lp_dbl.h"
#include "read_mps_dbl.h"
#include "simplex_dbl.h"
#include "write_lp_dbl.h"
#include "lib_dbl.h"
#include "eg_numutil_dbl.h"
/* MPQ template headers */
#include "qstruct_mpq.h"
#include "editor_mpq.h"
#include "dstruct_mpq.h"
#include "factor_mpq.h"
#include "lpdefs_mpq.h"
#include "readline_mpq.h"
#include "lpdata_mpq.h"
#include "basis_mpq.h"
#include "dheaps_i_mpq.h"
#include "qsopt_mpq.h"
#include "format_mpq.h"
#include "price_mpq.h"
#include "priority_mpq.h"
#include "ratio_mpq.h"
#include "read_lp_mpq.h"
#include "read_mps_mpq.h"
#include "simplex_mpq.h"
#include "write_lp_mpq.h"
#include "lib_mpq.h"
#include "eg_numutil_mpq.h"
/* MPF template headers */
#include "qstruct_mpf.h"
#include "editor_mpf.h"
#include "dstruct_mpf.h"
#include "factor_mpf.h"
#include "lpdefs_mpf.h"
#include "readline_mpf.h"
#include "lpdata_mpf.h"
#include "basis_mpf.h"
#include "dheaps_i_mpf.h"
#include "qsopt_mpf.h"
#include "format_mpf.h"
#include "price_mpf.h"
#include "priority_mpf.h"
#include "ratio_mpf.h"
#include "read_lp_mpf.h"
#include "read_mps_mpf.h"
#include "simplex_mpf.h"
#include "write_lp_mpf.h"
#include "lib_mpf.h"
#include "eg_numutil_mpf.h"
#include "exact.h"
#include "eg_exutil.h"
#endif /* !QSOPT_EX_H */
/* QSopt_ex_version.c -- QSopt_ex version information
* This file is part of QSopt_ex.
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by the
* Free Software Foundation; either version 2.1 of the License, or (at your
* option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* Copyright (c) 2014-2015 Jon Lund Steffensen <jonlst@gmail.com>
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <stdio.h>
#include "logging-private.h"
void
QSopt_ex_version(void)
{
QSlog("Using %s %s", PACKAGE_NAME, PACKAGE_VERSION);
}
/* QSopt_ex_version.h -- QSopt_ex version information header