From aae51190a03b96c8a1ac3c78ae68f8d98feb9fd0 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 13 Jan 2019 09:08:03 -0400 Subject: make shared library / drivers buildable in 32bit architectures. To ensure maximum make dialect portability, use variables that can be overridden, rather than some conditional structure. --- makefile | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/makefile b/makefile index 439bd12..9fcee00 100644 --- a/makefile +++ b/makefile @@ -196,8 +196,17 @@ SOMINOR ?=.0.0 SHLIB ?=$(SONAME)$(SOMINOR) SHLINK ?=liblrs.so -SHLIBOBJ=lrslong1-shr.o lrslong2-shr.o lrslib1-shr.o lrslib2-shr.o \ - lrslibgmp-shr.o lrsgmp-shr.o lrsdriver-shr.o +# for 32 bit architectures +# BITS=-DB32 +# SHLIBOBJ2= + +# for 64 bit architectures +BITS=-DB128 +SHLIBOBJ2=lrslib2-shr.o lrslong2-shr.o + +SHLIBOBJ=lrslong1-shr.o lrslib1-shr.o \ + lrslibgmp-shr.o lrsgmp-shr.o lrsdriver-shr.o \ + ${SHLIBOBJ2} SHLIBBIN=lrs-shared redund-shared lrsnash-shared @@ -216,15 +225,23 @@ ${SHLINK}: ${SONAME} all-shared: ${SHLIBBIN} -lrs-shared: ${SHLINK} lrs.o - $(CC) lrs.o -o $@ -L . -llrs +lrs-shared: ${SHLINK} lrs-shared.o + $(CC) $^ -o $@ -L . -llrs -redund-shared: ${SHLINK} redund.o - $(CC) redund.o -o $@ -L . -llrs +redund-shared: ${SHLINK} redund-shared.o + $(CC) $^ -o $@ -L . -llrs lrsnash-shared: ${SHLINK} lrsnash.c $(CC) -DGMP -DMA lrsnash.c lrsnashlib.c -I${INCLUDEDIR} -o $@ -L . -llrs -lgmp +# driver object files + +lrs-shared.o: lrs.c + $(CC) ${CFLAGS} -DMA ${BITS} -L${LIBDIR} -c -o $@ lrs.c + +redund-shared.o: redund.c + $(CC) ${CFLAGS} -DMA ${BITS} -L${LIBDIR} -c -o $@ redund.c + # build object files for the shared library lrslib1-shr.o: lrslib.c lrslib.h -- cgit v1.2.3 From 437a864d91d7afe57175ea60de47e15c54ad9b9a Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 13 Jan 2019 09:36:32 -0400 Subject: disable 128bit arithmetic on debian builds of 32bit architectures --- debian/rules | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/debian/rules b/debian/rules index ba7556e..cdd8be5 100755 --- a/debian/rules +++ b/debian/rules @@ -9,11 +9,17 @@ CPPFLAGS=$(shell dpkg-buildflags --get CPPFLAGS) LDFLAGS=$(shell dpkg-buildflags --get LDFLAGS) export CFLAGS CPPFLAGS LDFLAGS +ifeq ($(shell dpkg-architecture -qDEB_HOST_ARCH_BITS),32) +BUILDARGS=SHLIBOBJ2="" BITS=-DB32 +else +BUILDARGS= +endif + override_dh_auto_build: lrslib.1 nash.1 - make prefix=/usr DESTDIR=$(CURDIR)/debian/tmp all-shared + make prefix=/usr DESTDIR=$(CURDIR)/debian/tmp $(BUILDARGS) all-shared override_dh_auto_install: - make prefix=/usr DESTDIR=$(CURDIR)/debian/tmp install + make prefix=/usr DESTDIR=$(CURDIR)/debian/tmp $(BUILDARGS) install %: dh $@ -- cgit v1.2.3 From cf777340e84f657fefd82f1601789c06a73746ab Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 13 Jan 2019 09:40:44 -0400 Subject: split symbols file into 32 bit and 64 bit part --- debian/liblrs0.symbols | 111 +---------------------------------------- debian/liblrs0.symbols.extra64 | 110 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+), 110 deletions(-) create mode 100644 debian/liblrs0.symbols.extra64 diff --git a/debian/liblrs0.symbols b/debian/liblrs0.symbols index 0d0e234..7475b74 100644 --- a/debian/liblrs0.symbols +++ b/debian/liblrs0.symbols @@ -1,332 +1,223 @@ liblrs.so.0 liblrs0 #MINVER# atoaa_1@Base 0.70 - atoaa_2@Base 0.70 atoaa_gmp@Base 0.70 atomp_1@Base 0.70 - atomp_2@Base 0.70 atomp_gmp@Base 0.70 checkcobasic_1@Base 0.70 - checkcobasic_2@Base 0.70 checkcobasic_gmp@Base 0.70 checkindex_1@Base 0.70 - checkindex_2@Base 0.70 checkindex_gmp@Base 0.70 checkredund_1@Base 0.70 - checkredund_2@Base 0.70 checkredund_gmp@Base 0.70 comprod_1@Base 0.70 - comprod_2@Base 0.70 comprod_gmp@Base 0.70 copy_dict_1@Base 0.70 - copy_dict_2@Base 0.70 copy_dict_gmp@Base 0.70 dan_selectpivot_1@Base 0.70 - dan_selectpivot_2@Base 0.70 dan_selectpivot_gmp@Base 0.70 digits_overflow_1@Base 0.70 - digits_overflow_2@Base 0.70 digits_overflow_gmp@Base 0.70 divrat_1@Base 0.70 - divrat_2@Base 0.70 divrat_gmp@Base 0.70 gcd_1@Base 0.70 - gcd_2@Base 0.70 getabasis_1@Base 0.70 - getabasis_2@Base 0.70 getabasis_gmp@Base 0.70 getfactorial_1@Base 0.70 - getfactorial_2@Base 0.70 getnextoutput_1@Base 0.70 - getnextoutput_2@Base 0.70 getnextoutput_gmp@Base 0.70 ismin_1@Base 0.70 - ismin_2@Base 0.70 ismin_gmp@Base 0.70 lcm_1@Base 0.70 - lcm_2@Base 0.70 lcm_gmp@Base 0.70 lexmin_1@Base 0.70 - lexmin_2@Base 0.70 lexmin_gmp@Base 0.70 linint_gmp@Base 0.70 linrat_1@Base 0.70 - linrat_2@Base 0.70 linrat_gmp@Base 0.70 lprat_1@Base 0.70 - lprat_2@Base 0.70 lprat_gmp@Base 0.70 lreadrat_1@Base 0.70 - lreadrat_2@Base 0.70 lreadrat_gmp@Base 0.70 lrs1_main@Base 0.70 - lrs2_main@Base 0.70 lrs_alloc_dat_1@Base 0.70 - lrs_alloc_dat_2@Base 0.70 lrs_alloc_dat_gmp@Base 0.70 lrs_alloc_dic_1@Base 0.70 - lrs_alloc_dic_2@Base 0.70 lrs_alloc_dic_gmp@Base 0.70 lrs_alloc_mp_matrix_1@Base 0.70 - lrs_alloc_mp_matrix_2@Base 0.70 lrs_alloc_mp_matrix_gmp@Base 0.70 lrs_alloc_mp_t_1@Base 0.70 - lrs_alloc_mp_t_2@Base 0.70 lrs_alloc_mp_vector_1@Base 0.70 - lrs_alloc_mp_vector_2@Base 0.70 lrs_alloc_mp_vector_gmp@Base 0.70 lrs_cache_to_file_1@Base 0.70 - lrs_cache_to_file_2@Base 0.70 lrs_cache_to_file_gmp@Base 0.70 lrs_cfp@Base 0.51 lrs_checkbound_1@Base 0.70 - lrs_checkbound_2@Base 0.70 lrs_checkbound_gmp@Base 0.70 lrs_clear_mp_matrix_1@Base 0.70 - lrs_clear_mp_matrix_2@Base 0.70 lrs_clear_mp_matrix_gmp@Base 0.70 lrs_clear_mp_vector_1@Base 0.70 - lrs_clear_mp_vector_2@Base 0.70 lrs_clear_mp_vector_gmp@Base 0.70 lrs_close_1@Base 0.70 - lrs_close_2@Base 0.70 lrs_close_gmp@Base 0.70 lrs_close_outputblock_1@Base 0.70 - lrs_close_outputblock_2@Base 0.70 lrs_close_outputblock_gmp@Base 0.70 lrs_degenerate_1@Base 0.70 - lrs_degenerate_2@Base 0.70 lrs_degenerate_gmp@Base 0.70 lrs_digits@Base 0.51 lrs_digits_1@Base 0.70 - lrs_digits_2@Base 0.70 lrs_estimate_1@Base 0.70 - lrs_estimate_2@Base 0.70 lrs_estimate_gmp@Base 0.70 lrs_exit_1@Base 0.70 - lrs_exit_2@Base 0.70 lrs_exit_gmp@Base 0.70 lrs_file_to_cache_1@Base 0.70 - lrs_file_to_cache_2@Base 0.70 lrs_file_to_cache_gmp@Base 0.70 lrs_free_all_memory_1@Base 0.70 - lrs_free_all_memory_2@Base 0.70 lrs_free_all_memory_gmp@Base 0.70 lrs_free_dat_1@Base 0.70 - lrs_free_dat_2@Base 0.70 lrs_free_dat_gmp@Base 0.70 lrs_free_dic2_1@Base 0.70 - lrs_free_dic2_2@Base 0.70 lrs_free_dic2_gmp@Base 0.70 lrs_free_dic_1@Base 0.70 - lrs_free_dic_2@Base 0.70 lrs_free_dic_gmp@Base 0.70 lrs_getdic_1@Base 0.70 - lrs_getdic_2@Base 0.70 lrs_getdic_gmp@Base 0.70 lrs_getdigits_1@Base 0.70 - lrs_getdigits_2@Base 0.70 lrs_getdigits_gmp@Base 0.70 lrs_getfirstbasis_1@Base 0.70 - lrs_getfirstbasis_2@Base 0.70 lrs_getfirstbasis_gmp@Base 0.70 lrs_getinput_1@Base 0.70 - lrs_getinput_2@Base 0.70 lrs_getinput_gmp@Base 0.70 lrs_getnextbasis_1@Base 0.70 - lrs_getnextbasis_2@Base 0.70 lrs_getnextbasis_gmp@Base 0.70 lrs_getray_1@Base 0.70 - lrs_getray_2@Base 0.70 lrs_getray_gmp@Base 0.70 lrs_getsolution_1@Base 0.70 - lrs_getsolution_2@Base 0.70 lrs_getsolution_gmp@Base 0.70 lrs_getvertex_1@Base 0.70 - lrs_getvertex_2@Base 0.70 lrs_getvertex_gmp@Base 0.70 lrs_ifp@Base 0.51 lrs_init_1@Base 0.70 - lrs_init_2@Base 0.70 lrs_init_gmp@Base 0.70 lrs_leaf_1@Base 0.70 - lrs_leaf_2@Base 0.70 lrs_leaf_gmp@Base 0.70 lrs_lpoutput_1@Base 0.70 - lrs_lpoutput_2@Base 0.70 lrs_lpoutput_gmp@Base 0.70 lrs_main_1@Base 0.70 - lrs_main_2@Base 0.70 lrs_main_gmp@Base 0.70 lrs_mp_init_1@Base 0.70 - lrs_mp_init_2@Base 0.70 lrs_mp_init_gmp@Base 0.70 lrs_ofp@Base 0.51 lrs_open_outputblock_1@Base 0.70 - lrs_open_outputblock_2@Base 0.70 lrs_open_outputblock_gmp@Base 0.70 lrs_overflow_1@Base 0.70 - lrs_overflow_2@Base 0.70 lrs_overflow_gmp@Base 0.70 lrs_print_header_1@Base 0.70 - lrs_print_header_2@Base 0.70 lrs_print_header_gmp@Base 0.70 lrs_printcobasis_1@Base 0.70 - lrs_printcobasis_2@Base 0.70 lrs_printcobasis_gmp@Base 0.70 lrs_printoutput_1@Base 0.70 - lrs_printoutput_2@Base 0.70 lrs_printoutput_gmp@Base 0.70 lrs_printrow_1@Base 0.70 - lrs_printrow_2@Base 0.70 lrs_printrow_gmp@Base 0.70 lrs_printtotals_1@Base 0.70 - lrs_printtotals_2@Base 0.70 lrs_printtotals_gmp@Base 0.70 lrs_ratio_1@Base 0.70 - lrs_ratio_2@Base 0.70 lrs_ratio_gmp@Base 0.70 lrs_read_dat_1@Base 0.70 - lrs_read_dat_2@Base 0.70 lrs_read_dat_gmp@Base 0.70 lrs_read_dic_1@Base 0.70 - lrs_read_dic_2@Base 0.70 lrs_read_dic_gmp@Base 0.70 lrs_record_digits@Base 0.51 lrs_record_digits_1@Base 0.70 - lrs_record_digits_2@Base 0.70 lrs_return_unexplored_1@Base 0.70 - lrs_return_unexplored_2@Base 0.70 lrs_return_unexplored_gmp@Base 0.70 lrs_set_digits_1@Base 0.70 - lrs_set_digits_2@Base 0.70 lrs_set_digits_gmp@Base 0.70 lrs_set_obj_1@Base 0.70 - lrs_set_obj_2@Base 0.70 lrs_set_obj_gmp@Base 0.70 lrs_set_obj_mp_1@Base 0.70 - lrs_set_obj_mp_2@Base 0.70 lrs_set_obj_mp_gmp@Base 0.70 lrs_set_row_1@Base 0.70 - lrs_set_row_2@Base 0.70 lrs_set_row_gmp@Base 0.70 lrs_set_row_mp_1@Base 0.70 - lrs_set_row_mp_2@Base 0.70 lrs_set_row_mp_gmp@Base 0.70 lrs_solve_lp_1@Base 0.70 - lrs_solve_lp_2@Base 0.70 lrs_solve_lp_gmp@Base 0.70 lrs_solvelp_1@Base 0.70 - lrs_solvelp_2@Base 0.70 lrs_solvelp_gmp@Base 0.70 lrs_stdin_to_file_1@Base 0.70 - lrs_stdin_to_file_2@Base 0.70 lrs_stdin_to_file_gmp@Base 0.70 lrsgmp_main@Base 0.70 makenewargv@Base 0.70 mptodouble_1@Base 0.70 - mptodouble_2@Base 0.70 mptoi_1@Base 0.70 - mptoi_2@Base 0.70 mulrat_1@Base 0.70 - mulrat_2@Base 0.70 mulrat_gmp@Base 0.70 myrandom_1@Base 0.70 - myrandom_2@Base 0.70 myrandom_gmp@Base 0.70 notimpl_1@Base 0.70 - notimpl_2@Base 0.70 notimpl_gmp@Base 0.70 phaseone_1@Base 0.70 - phaseone_2@Base 0.70 phaseone_gmp@Base 0.70 pimat_1@Base 0.70 - pimat_2@Base 0.70 pimat_gmp@Base 0.70 pivot_1@Base 0.70 - pivot_2@Base 0.70 pivot_gmp@Base 0.70 pmp_1@Base 0.70 - pmp_2@Base 0.70 pmp_gmp@Base 0.70 prat_1@Base 0.70 - prat_2@Base 0.70 prat_gmp@Base 0.70 primalfeasible_1@Base 0.70 - primalfeasible_2@Base 0.70 primalfeasible_gmp@Base 0.70 printA_1@Base 0.70 - printA_2@Base 0.70 printA_gmp@Base 0.70 print_basis_1@Base 0.70 - print_basis_2@Base 0.70 print_basis_gmp@Base 0.70 rattodouble_1@Base 0.70 - rattodouble_2@Base 0.70 rattodouble_gmp@Base 0.70 readfacets_1@Base 0.70 - readfacets_2@Base 0.70 readfacets_gmp@Base 0.70 readlinearity_1@Base 0.70 - readlinearity_2@Base 0.70 readlinearity_gmp@Base 0.70 readmp_1@Base 0.70 - readmp_2@Base 0.70 readmp_gmp@Base 0.70 readrat_1@Base 0.70 - readrat_2@Base 0.70 readrat_gmp@Base 0.70 reduce_1@Base 0.70 - reduce_2@Base 0.70 reduce_gmp@Base 0.70 reducearray_1@Base 0.70 - reducearray_2@Base 0.70 reducearray_gmp@Base 0.70 reduceint_1@Base 0.70 - reduceint_2@Base 0.70 reduceint_gmp@Base 0.70 redund1_main@Base 0.70 - redund2_main@Base 0.70 redund_main_1@Base 0.70 - redund_main_2@Base 0.70 redund_main_gmp@Base 0.70 redundgmp_main@Base 0.70 removecobasicindex_1@Base 0.70 - removecobasicindex_2@Base 0.70 removecobasicindex_gmp@Base 0.70 reorder1_1@Base 0.70 - reorder1_2@Base 0.70 reorder1_gmp@Base 0.70 reorder_1@Base 0.70 - reorder_2@Base 0.70 reorder_gmp@Base 0.70 rescaledet_1@Base 0.70 - rescaledet_2@Base 0.70 rescaledet_gmp@Base 0.70 rescalevolume_1@Base 0.70 - rescalevolume_2@Base 0.70 rescalevolume_gmp@Base 0.70 resize_1@Base 0.70 - resize_2@Base 0.70 resize_gmp@Base 0.70 restartpivots_1@Base 0.70 - restartpivots_2@Base 0.70 restartpivots_gmp@Base 0.70 reverse_1@Base 0.70 - reverse_2@Base 0.70 reverse_gmp@Base 0.70 selectpivot_1@Base 0.70 - selectpivot_2@Base 0.70 selectpivot_gmp@Base 0.70 storesign_gmp@Base 0.70 stringcpy_1@Base 0.70 - stringcpy_2@Base 0.70 stringcpy_gmp@Base 0.70 update_1@Base 0.70 - update_2@Base 0.70 update_gmp@Base 0.70 updatevolume_1@Base 0.70 - updatevolume_2@Base 0.70 updatevolume_gmp@Base 0.70 xcalloc_1@Base 0.70 - xcalloc_2@Base 0.70 xcalloc_gmp@Base 0.70 +(arch-bits=64)#include "liblrs0.symbols.extra64" diff --git a/debian/liblrs0.symbols.extra64 b/debian/liblrs0.symbols.extra64 new file mode 100644 index 0000000..21a9f00 --- /dev/null +++ b/debian/liblrs0.symbols.extra64 @@ -0,0 +1,110 @@ + atoaa_2@Base 0.70 + atomp_2@Base 0.70 + checkcobasic_2@Base 0.70 + checkindex_2@Base 0.70 + checkredund_2@Base 0.70 + comprod_2@Base 0.70 + copy_dict_2@Base 0.70 + dan_selectpivot_2@Base 0.70 + digits_overflow_2@Base 0.70 + divrat_2@Base 0.70 + gcd_2@Base 0.70 + getabasis_2@Base 0.70 + getfactorial_2@Base 0.70 + getnextoutput_2@Base 0.70 + ismin_2@Base 0.70 + lcm_2@Base 0.70 + lexmin_2@Base 0.70 + linrat_2@Base 0.70 + lprat_2@Base 0.70 + lreadrat_2@Base 0.70 + lrs_alloc_dat_2@Base 0.70 + lrs_alloc_dic_2@Base 0.70 + lrs_alloc_mp_matrix_2@Base 0.70 + lrs_alloc_mp_t_2@Base 0.70 + lrs_alloc_mp_vector_2@Base 0.70 + lrs_cache_to_file_2@Base 0.70 + lrs_checkbound_2@Base 0.70 + lrs_clear_mp_matrix_2@Base 0.70 + lrs_clear_mp_vector_2@Base 0.70 + lrs_close_2@Base 0.70 + lrs_close_outputblock_2@Base 0.70 + lrs_degenerate_2@Base 0.70 + lrs_digits_2@Base 0.70 + lrs_estimate_2@Base 0.70 + lrs_exit_2@Base 0.70 + lrs_file_to_cache_2@Base 0.70 + lrs_free_all_memory_2@Base 0.70 + lrs_free_dat_2@Base 0.70 + lrs_free_dic2_2@Base 0.70 + lrs_free_dic_2@Base 0.70 + lrs_getdic_2@Base 0.70 + lrs_getdigits_2@Base 0.70 + lrs_getfirstbasis_2@Base 0.70 + lrs_getinput_2@Base 0.70 + lrs_getnextbasis_2@Base 0.70 + lrs_getray_2@Base 0.70 + lrs_getsolution_2@Base 0.70 + lrs_getvertex_2@Base 0.70 + lrs_init_2@Base 0.70 + lrs_leaf_2@Base 0.70 + lrs_lpoutput_2@Base 0.70 + lrs_main_2@Base 0.70 + lrs_mp_init_2@Base 0.70 + lrs_open_outputblock_2@Base 0.70 + lrs_overflow_2@Base 0.70 + lrs_print_header_2@Base 0.70 + lrs_printcobasis_2@Base 0.70 + lrs_printoutput_2@Base 0.70 + lrs_printrow_2@Base 0.70 + lrs_printtotals_2@Base 0.70 + lrs_ratio_2@Base 0.70 + lrs_read_dat_2@Base 0.70 + lrs_read_dic_2@Base 0.70 + lrs_record_digits_2@Base 0.70 + lrs_return_unexplored_2@Base 0.70 + lrs_set_digits_2@Base 0.70 + lrs_set_obj_2@Base 0.70 + lrs_set_obj_mp_2@Base 0.70 + lrs_set_row_2@Base 0.70 + lrs_set_row_mp_2@Base 0.70 + lrs_solve_lp_2@Base 0.70 + lrs_solvelp_2@Base 0.70 + lrs_stdin_to_file_2@Base 0.70 + mptodouble_2@Base 0.70 + mptoi_2@Base 0.70 + mulrat_2@Base 0.70 + myrandom_2@Base 0.70 + notimpl_2@Base 0.70 + phaseone_2@Base 0.70 + pimat_2@Base 0.70 + pivot_2@Base 0.70 + pmp_2@Base 0.70 + prat_2@Base 0.70 + primalfeasible_2@Base 0.70 + printA_2@Base 0.70 + print_basis_2@Base 0.70 + rattodouble_2@Base 0.70 + readfacets_2@Base 0.70 + readlinearity_2@Base 0.70 + readmp_2@Base 0.70 + readrat_2@Base 0.70 + reduce_2@Base 0.70 + reducearray_2@Base 0.70 + reduceint_2@Base 0.70 + redund_main_2@Base 0.70 + removecobasicindex_2@Base 0.70 + reorder1_2@Base 0.70 + reorder_2@Base 0.70 + rescaledet_2@Base 0.70 + rescalevolume_2@Base 0.70 + resize_2@Base 0.70 + restartpivots_2@Base 0.70 + reverse_2@Base 0.70 + selectpivot_2@Base 0.70 + stringcpy_2@Base 0.70 + update_2@Base 0.70 + updatevolume_2@Base 0.70 + xcalloc_2@Base 0.70 + redund2_main@Base 0.70 + lrs2_main@Base 0.70 -- cgit v1.2.3 From c83260a70a0615069a1b608fe3fd71bee8b71bb6 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 13 Jan 2019 09:45:53 -0400 Subject: changelog stanza for 0.70-2 --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index 559dfcd..a22142f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +lrslib (0.70-2) experimental; urgency=medium + + * Drop build of 128 bit arithmetic on 32 bit arches. (Closes: #919086). + + -- David Bremner Sun, 13 Jan 2019 10:56:58 -0400 + lrslib (0.70-1) experimental; urgency=medium * Major new upstream release. -- cgit v1.2.3 From 4376870d17b952908f1080af9256ad89711a5872 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 13 Jan 2019 09:08:03 -0400 Subject: make shared library / drivers buildable in 32bit architectures. To ensure maximum make dialect portability, use variables that can be overridden, rather than some conditional structure. --- makefile | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/makefile b/makefile index 439bd12..9fcee00 100644 --- a/makefile +++ b/makefile @@ -196,8 +196,17 @@ SOMINOR ?=.0.0 SHLIB ?=$(SONAME)$(SOMINOR) SHLINK ?=liblrs.so -SHLIBOBJ=lrslong1-shr.o lrslong2-shr.o lrslib1-shr.o lrslib2-shr.o \ - lrslibgmp-shr.o lrsgmp-shr.o lrsdriver-shr.o +# for 32 bit architectures +# BITS=-DB32 +# SHLIBOBJ2= + +# for 64 bit architectures +BITS=-DB128 +SHLIBOBJ2=lrslib2-shr.o lrslong2-shr.o + +SHLIBOBJ=lrslong1-shr.o lrslib1-shr.o \ + lrslibgmp-shr.o lrsgmp-shr.o lrsdriver-shr.o \ + ${SHLIBOBJ2} SHLIBBIN=lrs-shared redund-shared lrsnash-shared @@ -216,15 +225,23 @@ ${SHLINK}: ${SONAME} all-shared: ${SHLIBBIN} -lrs-shared: ${SHLINK} lrs.o - $(CC) lrs.o -o $@ -L . -llrs +lrs-shared: ${SHLINK} lrs-shared.o + $(CC) $^ -o $@ -L . -llrs -redund-shared: ${SHLINK} redund.o - $(CC) redund.o -o $@ -L . -llrs +redund-shared: ${SHLINK} redund-shared.o + $(CC) $^ -o $@ -L . -llrs lrsnash-shared: ${SHLINK} lrsnash.c $(CC) -DGMP -DMA lrsnash.c lrsnashlib.c -I${INCLUDEDIR} -o $@ -L . -llrs -lgmp +# driver object files + +lrs-shared.o: lrs.c + $(CC) ${CFLAGS} -DMA ${BITS} -L${LIBDIR} -c -o $@ lrs.c + +redund-shared.o: redund.c + $(CC) ${CFLAGS} -DMA ${BITS} -L${LIBDIR} -c -o $@ redund.c + # build object files for the shared library lrslib1-shr.o: lrslib.c lrslib.h -- cgit v1.2.3 From 158bd2e5aa1088377406d113b8f7754101d8ceeb Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 13 Jan 2019 11:07:38 -0400 Subject: Commit patch queue (exported by git-debrebase) [git-debrebase make-patches: export and commit patches] --- ...-library-drivers-buildable-in-32bit-archi.patch | 62 ++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 63 insertions(+) create mode 100644 debian/patches/0001-make-shared-library-drivers-buildable-in-32bit-archi.patch create mode 100644 debian/patches/series diff --git a/debian/patches/0001-make-shared-library-drivers-buildable-in-32bit-archi.patch b/debian/patches/0001-make-shared-library-drivers-buildable-in-32bit-archi.patch new file mode 100644 index 0000000..585ef5d --- /dev/null +++ b/debian/patches/0001-make-shared-library-drivers-buildable-in-32bit-archi.patch @@ -0,0 +1,62 @@ +From: David Bremner +Date: Sun, 13 Jan 2019 09:08:03 -0400 +Subject: make shared library / drivers buildable in 32bit architectures. + +To ensure maximum make dialect portability, use variables that can be +overridden, rather than some conditional structure. +--- + makefile | 29 +++++++++++++++++++++++------ + 1 file changed, 23 insertions(+), 6 deletions(-) + +diff --git a/makefile b/makefile +index 439bd12..9fcee00 100644 +--- a/makefile ++++ b/makefile +@@ -196,8 +196,17 @@ SOMINOR ?=.0.0 + SHLIB ?=$(SONAME)$(SOMINOR) + SHLINK ?=liblrs.so + +-SHLIBOBJ=lrslong1-shr.o lrslong2-shr.o lrslib1-shr.o lrslib2-shr.o \ +- lrslibgmp-shr.o lrsgmp-shr.o lrsdriver-shr.o ++# for 32 bit architectures ++# BITS=-DB32 ++# SHLIBOBJ2= ++ ++# for 64 bit architectures ++BITS=-DB128 ++SHLIBOBJ2=lrslib2-shr.o lrslong2-shr.o ++ ++SHLIBOBJ=lrslong1-shr.o lrslib1-shr.o \ ++ lrslibgmp-shr.o lrsgmp-shr.o lrsdriver-shr.o \ ++ ${SHLIBOBJ2} + + SHLIBBIN=lrs-shared redund-shared lrsnash-shared + +@@ -216,15 +225,23 @@ ${SHLINK}: ${SONAME} + + all-shared: ${SHLIBBIN} + +-lrs-shared: ${SHLINK} lrs.o +- $(CC) lrs.o -o $@ -L . -llrs ++lrs-shared: ${SHLINK} lrs-shared.o ++ $(CC) $^ -o $@ -L . -llrs + +-redund-shared: ${SHLINK} redund.o +- $(CC) redund.o -o $@ -L . -llrs ++redund-shared: ${SHLINK} redund-shared.o ++ $(CC) $^ -o $@ -L . -llrs + + lrsnash-shared: ${SHLINK} lrsnash.c + $(CC) -DGMP -DMA lrsnash.c lrsnashlib.c -I${INCLUDEDIR} -o $@ -L . -llrs -lgmp + ++# driver object files ++ ++lrs-shared.o: lrs.c ++ $(CC) ${CFLAGS} -DMA ${BITS} -L${LIBDIR} -c -o $@ lrs.c ++ ++redund-shared.o: redund.c ++ $(CC) ${CFLAGS} -DMA ${BITS} -L${LIBDIR} -c -o $@ redund.c ++ + # build object files for the shared library + + lrslib1-shr.o: lrslib.c lrslib.h diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..424c2f7 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +0001-make-shared-library-drivers-buildable-in-32bit-archi.patch -- cgit v1.2.3 From 74f1dcedaeeab65b85e6c83dd937b9ca789f6bd3 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 13 Jan 2019 22:02:11 -0400 Subject: changelog stanza for 0.70-3 --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index a22142f..8a64b1b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +lrslib (0.70-3) unstable; urgency=medium + + * upload to unstable + + -- David Bremner Sun, 13 Jan 2019 22:00:52 -0400 + lrslib (0.70-2) experimental; urgency=medium * Drop build of 128 bit arithmetic on 32 bit arches. (Closes: #919086). -- cgit v1.2.3 From 9d2643e9a941ec8f22e7a20d40d3296c91651e65 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 13 Jan 2019 22:12:01 -0400 Subject: Pass cflags from dpkg-buildflags to make Among other things, this (mostly) repairs the dbgsym packages --- debian/changelog | 3 ++- debian/rules | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 8a64b1b..996e4af 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,9 @@ lrslib (0.70-3) unstable; urgency=medium * upload to unstable + * pass dpkg-buildflags to make (fix generation of dbgsym packages) - -- David Bremner Sun, 13 Jan 2019 22:00:52 -0400 + -- David Bremner Sun, 13 Jan 2019 22:12:46 -0400 lrslib (0.70-2) experimental; urgency=medium diff --git a/debian/rules b/debian/rules index cdd8be5..50eaf93 100755 --- a/debian/rules +++ b/debian/rules @@ -4,7 +4,7 @@ DOCBASEURL=http://cgm.cs.mcgill.ca/%7Eavis/C/lrslib/USERGUIDE.html DB2MAN=/usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl XP=xsltproc --nonet -CFLAGS=$(shell dpkg-buildflags --get CFGLAGS) +CFLAGS=$(shell dpkg-buildflags --get CFLAGS) CPPFLAGS=$(shell dpkg-buildflags --get CPPFLAGS) LDFLAGS=$(shell dpkg-buildflags --get LDFLAGS) export CFLAGS CPPFLAGS LDFLAGS @@ -16,7 +16,7 @@ BUILDARGS= endif override_dh_auto_build: lrslib.1 nash.1 - make prefix=/usr DESTDIR=$(CURDIR)/debian/tmp $(BUILDARGS) all-shared + make prefix=/usr DESTDIR=$(CURDIR)/debian/tmp CFLAGS="$(CFLAGS)" $(BUILDARGS) all-shared override_dh_auto_install: make prefix=/usr DESTDIR=$(CURDIR)/debian/tmp $(BUILDARGS) install -- cgit v1.2.3 From 0b6abd32bc2be68d3335c2047588404bfd5f4821 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 13 Jan 2019 22:17:58 -0400 Subject: use CFLAGS when building lrsnash-shared This is needed to have debug symbols --- makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/makefile b/makefile index 9fcee00..93c36a8 100644 --- a/makefile +++ b/makefile @@ -232,7 +232,7 @@ redund-shared: ${SHLINK} redund-shared.o $(CC) $^ -o $@ -L . -llrs lrsnash-shared: ${SHLINK} lrsnash.c - $(CC) -DGMP -DMA lrsnash.c lrsnashlib.c -I${INCLUDEDIR} -o $@ -L . -llrs -lgmp + $(CC) ${CFLAGS} -DGMP -DMA lrsnash.c lrsnashlib.c -I${INCLUDEDIR} -o $@ -L . -llrs -lgmp # driver object files -- cgit v1.2.3 From 9acafa18b2ba3ff71b74947c04bee7742b924526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jelmer=20Vernoo=C4=B3?= Date: Wed, 20 Nov 2019 08:56:27 +0000 Subject: Fix Vcs-Git and Vcs-Browser URLs. --- debian/changelog | 6 ++++++ debian/control | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 559dfcd..ddc7fbe 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +lrslib (0.70-2) UNRELEASED; urgency=medium + + * Fix Vcs-Git and Vcs-Browser URLs. + + -- Jelmer Vernooij Wed, 20 Nov 2019 08:55:59 +0000 + lrslib (0.70-1) experimental; urgency=medium * Major new upstream release. diff --git a/debian/control b/debian/control index 646249c..1d94c72 100644 --- a/debian/control +++ b/debian/control @@ -5,8 +5,8 @@ Maintainer: David Bremner Build-Depends: debhelper (>= 10), libgmp-dev, xsltproc, docbook-xsl, docbook-xml Standards-Version: 3.9.4 Homepage: http://cgm.cs.mcgill.ca/~avis/C/lrs.html -Vcs-Git: https://salsa.debian.org/git/science-team/lrslib/ -Vcs-Browser: https://salsa.debian.org/git/science-team/lrslib.git +Vcs-Git: https://salsa.debian.org/science-team/lrslib/ +Vcs-Browser: https://salsa.debian.org/science-team/lrslib.git Package: lrslib Architecture: any -- cgit v1.2.3 From 3d8a4ff2df746bd509cf873ce80b29c876821429 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 13 Jan 2019 09:08:03 -0400 Subject: make shared library / drivers buildable in 32bit architectures. To ensure maximum make dialect portability, use variables that can be overridden, rather than some conditional structure. --- makefile | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/makefile b/makefile index aef418d..d501294 100644 --- a/makefile +++ b/makefile @@ -186,8 +186,17 @@ SOMINOR ?=.0.0 SHLIB ?=$(SONAME)$(SOMINOR) SHLINK ?=liblrs.so -SHLIBOBJ=lrslong1-shr.o lrslong2-shr.o lrslib1-shr.o lrslib2-shr.o \ - lrslibgmp-shr.o lrsgmp-shr.o lrsdriver-shr.o +# for 32 bit architectures +# BITS=-DB32 +# SHLIBOBJ2= + +# for 64 bit architectures +BITS=-DB128 +SHLIBOBJ2=lrslib2-shr.o lrslong2-shr.o + +SHLIBOBJ=lrslong1-shr.o lrslib1-shr.o \ + lrslibgmp-shr.o lrsgmp-shr.o lrsdriver-shr.o \ + ${SHLIBOBJ2} SHLIBBIN=lrs-shared lrsnash-shared @@ -206,13 +215,18 @@ ${SHLINK}: ${SONAME} all-shared: ${SHLIBBIN} -lrs-shared: ${SHLINK} lrs.o - $(CC) lrs.o -o $@ -L . -llrs +lrs-shared: ${SHLINK} lrs-shared.o + $(CC) $^ -o $@ -L . -llrs lrsnash-shared: ${SHLINK} lrsnash.c $(CC) -DGMP -DMA lrsnash.c lrsnashlib.c -I${INCLUDEDIR} -o $@ -L . -llrs -lgmp +# driver object files + +lrs-shared.o: lrs.c + $(CC) ${CFLAGS} -DMA ${BITS} -L${LIBDIR} -c -o $@ lrs.c + # build object files for the shared library lrslib1-shr.o: lrslib.c lrslib.h -- cgit v1.2.3 From 1b2cb3cd693401e7b21512dc084d4bf6abadac44 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 13 Jan 2019 22:17:58 -0400 Subject: use CFLAGS when building lrsnash-shared This is needed to have debug symbols --- makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/makefile b/makefile index d501294..0ac9276 100644 --- a/makefile +++ b/makefile @@ -220,7 +220,7 @@ lrs-shared: ${SHLINK} lrs-shared.o lrsnash-shared: ${SHLINK} lrsnash.c - $(CC) -DGMP -DMA lrsnash.c lrsnashlib.c -I${INCLUDEDIR} -o $@ -L . -llrs -lgmp + $(CC) ${CFLAGS} -DGMP -DMA lrsnash.c lrsnashlib.c -I${INCLUDEDIR} -o $@ -L . -llrs -lgmp # driver object files -- cgit v1.2.3 From 79fb2157c488dd25dbc3136a1d5cfed9310ede54 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Fri, 22 May 2020 14:18:59 -0300 Subject: bump SONAME relies on SONAME being set correctly in upstream makefile --- debian/control | 4 +- debian/liblrs0.install | 1 - debian/liblrs0.symbols | 223 ---------------------------- debian/liblrs1.install | 1 + debian/liblrs1.symbols | 383 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 386 insertions(+), 226 deletions(-) delete mode 100644 debian/liblrs0.install delete mode 100644 debian/liblrs0.symbols create mode 100644 debian/liblrs1.install create mode 100644 debian/liblrs1.symbols diff --git a/debian/control b/debian/control index 1d94c72..7c7c29b 100644 --- a/debian/control +++ b/debian/control @@ -23,7 +23,7 @@ Description: package to enumerate vertices and extreme rays of a convex polyhedr arithmetic, and it consumes memory proportional to the input, no matter how large the output is. -Package: liblrs0 +Package: liblrs1 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: package to enumerate vertices and extreme rays (shared libraries) @@ -43,7 +43,7 @@ Description: package to enumerate vertices and extreme rays (shared libraries) Package: liblrs-dev Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, liblrs0 (=${binary:Version}) +Depends: ${shlibs:Depends}, ${misc:Depends}, liblrs1 (=${binary:Version}) Breaks: liblrsgmp-dev (<< 0.70) Replaces: liblrsgmp-dev (<< 0.70) Section: libdevel diff --git a/debian/liblrs0.install b/debian/liblrs0.install deleted file mode 100644 index a03dda9..0000000 --- a/debian/liblrs0.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/liblrs.so.0* diff --git a/debian/liblrs0.symbols b/debian/liblrs0.symbols deleted file mode 100644 index 7475b74..0000000 --- a/debian/liblrs0.symbols +++ /dev/null @@ -1,223 +0,0 @@ -liblrs.so.0 liblrs0 #MINVER# - atoaa_1@Base 0.70 - atoaa_gmp@Base 0.70 - atomp_1@Base 0.70 - atomp_gmp@Base 0.70 - checkcobasic_1@Base 0.70 - checkcobasic_gmp@Base 0.70 - checkindex_1@Base 0.70 - checkindex_gmp@Base 0.70 - checkredund_1@Base 0.70 - checkredund_gmp@Base 0.70 - comprod_1@Base 0.70 - comprod_gmp@Base 0.70 - copy_dict_1@Base 0.70 - copy_dict_gmp@Base 0.70 - dan_selectpivot_1@Base 0.70 - dan_selectpivot_gmp@Base 0.70 - digits_overflow_1@Base 0.70 - digits_overflow_gmp@Base 0.70 - divrat_1@Base 0.70 - divrat_gmp@Base 0.70 - gcd_1@Base 0.70 - getabasis_1@Base 0.70 - getabasis_gmp@Base 0.70 - getfactorial_1@Base 0.70 - getnextoutput_1@Base 0.70 - getnextoutput_gmp@Base 0.70 - ismin_1@Base 0.70 - ismin_gmp@Base 0.70 - lcm_1@Base 0.70 - lcm_gmp@Base 0.70 - lexmin_1@Base 0.70 - lexmin_gmp@Base 0.70 - linint_gmp@Base 0.70 - linrat_1@Base 0.70 - linrat_gmp@Base 0.70 - lprat_1@Base 0.70 - lprat_gmp@Base 0.70 - lreadrat_1@Base 0.70 - lreadrat_gmp@Base 0.70 - lrs1_main@Base 0.70 - lrs_alloc_dat_1@Base 0.70 - lrs_alloc_dat_gmp@Base 0.70 - lrs_alloc_dic_1@Base 0.70 - lrs_alloc_dic_gmp@Base 0.70 - lrs_alloc_mp_matrix_1@Base 0.70 - lrs_alloc_mp_matrix_gmp@Base 0.70 - lrs_alloc_mp_t_1@Base 0.70 - lrs_alloc_mp_vector_1@Base 0.70 - lrs_alloc_mp_vector_gmp@Base 0.70 - lrs_cache_to_file_1@Base 0.70 - lrs_cache_to_file_gmp@Base 0.70 - lrs_cfp@Base 0.51 - lrs_checkbound_1@Base 0.70 - lrs_checkbound_gmp@Base 0.70 - lrs_clear_mp_matrix_1@Base 0.70 - lrs_clear_mp_matrix_gmp@Base 0.70 - lrs_clear_mp_vector_1@Base 0.70 - lrs_clear_mp_vector_gmp@Base 0.70 - lrs_close_1@Base 0.70 - lrs_close_gmp@Base 0.70 - lrs_close_outputblock_1@Base 0.70 - lrs_close_outputblock_gmp@Base 0.70 - lrs_degenerate_1@Base 0.70 - lrs_degenerate_gmp@Base 0.70 - lrs_digits@Base 0.51 - lrs_digits_1@Base 0.70 - lrs_estimate_1@Base 0.70 - lrs_estimate_gmp@Base 0.70 - lrs_exit_1@Base 0.70 - lrs_exit_gmp@Base 0.70 - lrs_file_to_cache_1@Base 0.70 - lrs_file_to_cache_gmp@Base 0.70 - lrs_free_all_memory_1@Base 0.70 - lrs_free_all_memory_gmp@Base 0.70 - lrs_free_dat_1@Base 0.70 - lrs_free_dat_gmp@Base 0.70 - lrs_free_dic2_1@Base 0.70 - lrs_free_dic2_gmp@Base 0.70 - lrs_free_dic_1@Base 0.70 - lrs_free_dic_gmp@Base 0.70 - lrs_getdic_1@Base 0.70 - lrs_getdic_gmp@Base 0.70 - lrs_getdigits_1@Base 0.70 - lrs_getdigits_gmp@Base 0.70 - lrs_getfirstbasis_1@Base 0.70 - lrs_getfirstbasis_gmp@Base 0.70 - lrs_getinput_1@Base 0.70 - lrs_getinput_gmp@Base 0.70 - lrs_getnextbasis_1@Base 0.70 - lrs_getnextbasis_gmp@Base 0.70 - lrs_getray_1@Base 0.70 - lrs_getray_gmp@Base 0.70 - lrs_getsolution_1@Base 0.70 - lrs_getsolution_gmp@Base 0.70 - lrs_getvertex_1@Base 0.70 - lrs_getvertex_gmp@Base 0.70 - lrs_ifp@Base 0.51 - lrs_init_1@Base 0.70 - lrs_init_gmp@Base 0.70 - lrs_leaf_1@Base 0.70 - lrs_leaf_gmp@Base 0.70 - lrs_lpoutput_1@Base 0.70 - lrs_lpoutput_gmp@Base 0.70 - lrs_main_1@Base 0.70 - lrs_main_gmp@Base 0.70 - lrs_mp_init_1@Base 0.70 - lrs_mp_init_gmp@Base 0.70 - lrs_ofp@Base 0.51 - lrs_open_outputblock_1@Base 0.70 - lrs_open_outputblock_gmp@Base 0.70 - lrs_overflow_1@Base 0.70 - lrs_overflow_gmp@Base 0.70 - lrs_print_header_1@Base 0.70 - lrs_print_header_gmp@Base 0.70 - lrs_printcobasis_1@Base 0.70 - lrs_printcobasis_gmp@Base 0.70 - lrs_printoutput_1@Base 0.70 - lrs_printoutput_gmp@Base 0.70 - lrs_printrow_1@Base 0.70 - lrs_printrow_gmp@Base 0.70 - lrs_printtotals_1@Base 0.70 - lrs_printtotals_gmp@Base 0.70 - lrs_ratio_1@Base 0.70 - lrs_ratio_gmp@Base 0.70 - lrs_read_dat_1@Base 0.70 - lrs_read_dat_gmp@Base 0.70 - lrs_read_dic_1@Base 0.70 - lrs_read_dic_gmp@Base 0.70 - lrs_record_digits@Base 0.51 - lrs_record_digits_1@Base 0.70 - lrs_return_unexplored_1@Base 0.70 - lrs_return_unexplored_gmp@Base 0.70 - lrs_set_digits_1@Base 0.70 - lrs_set_digits_gmp@Base 0.70 - lrs_set_obj_1@Base 0.70 - lrs_set_obj_gmp@Base 0.70 - lrs_set_obj_mp_1@Base 0.70 - lrs_set_obj_mp_gmp@Base 0.70 - lrs_set_row_1@Base 0.70 - lrs_set_row_gmp@Base 0.70 - lrs_set_row_mp_1@Base 0.70 - lrs_set_row_mp_gmp@Base 0.70 - lrs_solve_lp_1@Base 0.70 - lrs_solve_lp_gmp@Base 0.70 - lrs_solvelp_1@Base 0.70 - lrs_solvelp_gmp@Base 0.70 - lrs_stdin_to_file_1@Base 0.70 - lrs_stdin_to_file_gmp@Base 0.70 - lrsgmp_main@Base 0.70 - makenewargv@Base 0.70 - mptodouble_1@Base 0.70 - mptoi_1@Base 0.70 - mulrat_1@Base 0.70 - mulrat_gmp@Base 0.70 - myrandom_1@Base 0.70 - myrandom_gmp@Base 0.70 - notimpl_1@Base 0.70 - notimpl_gmp@Base 0.70 - phaseone_1@Base 0.70 - phaseone_gmp@Base 0.70 - pimat_1@Base 0.70 - pimat_gmp@Base 0.70 - pivot_1@Base 0.70 - pivot_gmp@Base 0.70 - pmp_1@Base 0.70 - pmp_gmp@Base 0.70 - prat_1@Base 0.70 - prat_gmp@Base 0.70 - primalfeasible_1@Base 0.70 - primalfeasible_gmp@Base 0.70 - printA_1@Base 0.70 - printA_gmp@Base 0.70 - print_basis_1@Base 0.70 - print_basis_gmp@Base 0.70 - rattodouble_1@Base 0.70 - rattodouble_gmp@Base 0.70 - readfacets_1@Base 0.70 - readfacets_gmp@Base 0.70 - readlinearity_1@Base 0.70 - readlinearity_gmp@Base 0.70 - readmp_1@Base 0.70 - readmp_gmp@Base 0.70 - readrat_1@Base 0.70 - readrat_gmp@Base 0.70 - reduce_1@Base 0.70 - reduce_gmp@Base 0.70 - reducearray_1@Base 0.70 - reducearray_gmp@Base 0.70 - reduceint_1@Base 0.70 - reduceint_gmp@Base 0.70 - redund1_main@Base 0.70 - redund_main_1@Base 0.70 - redund_main_gmp@Base 0.70 - redundgmp_main@Base 0.70 - removecobasicindex_1@Base 0.70 - removecobasicindex_gmp@Base 0.70 - reorder1_1@Base 0.70 - reorder1_gmp@Base 0.70 - reorder_1@Base 0.70 - reorder_gmp@Base 0.70 - rescaledet_1@Base 0.70 - rescaledet_gmp@Base 0.70 - rescalevolume_1@Base 0.70 - rescalevolume_gmp@Base 0.70 - resize_1@Base 0.70 - resize_gmp@Base 0.70 - restartpivots_1@Base 0.70 - restartpivots_gmp@Base 0.70 - reverse_1@Base 0.70 - reverse_gmp@Base 0.70 - selectpivot_1@Base 0.70 - selectpivot_gmp@Base 0.70 - storesign_gmp@Base 0.70 - stringcpy_1@Base 0.70 - stringcpy_gmp@Base 0.70 - update_1@Base 0.70 - update_gmp@Base 0.70 - updatevolume_1@Base 0.70 - updatevolume_gmp@Base 0.70 - xcalloc_1@Base 0.70 - xcalloc_gmp@Base 0.70 -(arch-bits=64)#include "liblrs0.symbols.extra64" diff --git a/debian/liblrs1.install b/debian/liblrs1.install new file mode 100644 index 0000000..df8d81c --- /dev/null +++ b/debian/liblrs1.install @@ -0,0 +1 @@ +usr/lib/liblrs.so.1* diff --git a/debian/liblrs1.symbols b/debian/liblrs1.symbols new file mode 100644 index 0000000..2f90856 --- /dev/null +++ b/debian/liblrs1.symbols @@ -0,0 +1,383 @@ +liblrs.so.1 liblrs1 #MINVER# + atoaa_1@Base 0.71~4641 + atoaa_2@Base 0.71~4641 + atoaa_gmp@Base 0.71~4641 + atomp_1@Base 0.71~4641 + atomp_2@Base 0.71~4641 + atomp_gmp@Base 0.71~4641 + checkcobasic_1@Base 0.71~4641 + checkcobasic_2@Base 0.71~4641 + checkcobasic_gmp@Base 0.71~4641 + checkindex_1@Base 0.71~4641 + checkindex_2@Base 0.71~4641 + checkindex_gmp@Base 0.71~4641 + checkredund_1@Base 0.71~4641 + checkredund_2@Base 0.71~4641 + checkredund_gmp@Base 0.71~4641 + comprod_1@Base 0.71~4641 + comprod_2@Base 0.71~4641 + comprod_gmp@Base 0.71~4641 + copy_dict_1@Base 0.71~4641 + copy_dict_2@Base 0.71~4641 + copy_dict_gmp@Base 0.71~4641 + cpmp_1@Base 0.71~4641 + cpmp_2@Base 0.71~4641 + cpmp_gmp@Base 0.71~4641 + cprat_1@Base 0.71~4641 + cprat_2@Base 0.71~4641 + cprat_gmp@Base 0.71~4641 + dan_selectpivot_1@Base 0.71~4641 + dan_selectpivot_2@Base 0.71~4641 + dan_selectpivot_gmp@Base 0.71~4641 + digits_overflow_1@Base 0.71~4641 + digits_overflow_2@Base 0.71~4641 + digits_overflow_gmp@Base 0.71~4641 + divrat_1@Base 0.71~4641 + divrat_2@Base 0.71~4641 + divrat_gmp@Base 0.71~4641 + extractcols_1@Base 0.71~4641 + extractcols_2@Base 0.71~4641 + extractcols_gmp@Base 0.71~4641 + gcd_1@Base 0.71~4641 + gcd_2@Base 0.71~4641 + getabasis_1@Base 0.71~4641 + getabasis_2@Base 0.71~4641 + getabasis_gmp@Base 0.71~4641 + getfactorial_1@Base 0.71~4641 + getfactorial_2@Base 0.71~4641 + getnextoutput_1@Base 0.71~4641 + getnextoutput_2@Base 0.71~4641 + getnextoutput_gmp@Base 0.71~4641 + ismin_1@Base 0.71~4641 + ismin_2@Base 0.71~4641 + ismin_gmp@Base 0.71~4641 + lcm_1@Base 0.71~4641 + lcm_2@Base 0.71~4641 + lcm_gmp@Base 0.71~4641 + lexmin_1@Base 0.71~4641 + lexmin_2@Base 0.71~4641 + lexmin_gmp@Base 0.71~4641 + linextractcols_1@Base 0.71~4641 + linextractcols_2@Base 0.71~4641 + linextractcols_gmp@Base 0.71~4641 + linint_gmp@Base 0.71~4641 + linrat_1@Base 0.71~4641 + linrat_2@Base 0.71~4641 + linrat_gmp@Base 0.71~4641 + lprat_1@Base 0.71~4641 + lprat_2@Base 0.71~4641 + lprat_gmp@Base 0.71~4641 + lreadrat_1@Base 0.71~4641 + lreadrat_2@Base 0.71~4641 + lreadrat_gmp@Base 0.71~4641 + lrs1_main@Base 0.71~4641 + lrs2_main@Base 0.71~4641 + lrs_alloc_dat_1@Base 0.71~4641 + lrs_alloc_dat_2@Base 0.71~4641 + lrs_alloc_dat_gmp@Base 0.71~4641 + lrs_alloc_dic_1@Base 0.71~4641 + lrs_alloc_dic_2@Base 0.71~4641 + lrs_alloc_dic_gmp@Base 0.71~4641 + lrs_alloc_mp_matrix_1@Base 0.71~4641 + lrs_alloc_mp_matrix_2@Base 0.71~4641 + lrs_alloc_mp_matrix_gmp@Base 0.71~4641 + lrs_alloc_mp_t_1@Base 0.71~4641 + lrs_alloc_mp_t_2@Base 0.71~4641 + lrs_alloc_mp_vector_1@Base 0.71~4641 + lrs_alloc_mp_vector_2@Base 0.71~4641 + lrs_alloc_mp_vector_gmp@Base 0.71~4641 + lrs_alloc_restart@Base 0.71~4641 + lrs_cache_to_file_1@Base 0.71~4641 + lrs_cache_to_file_2@Base 0.71~4641 + lrs_cache_to_file_gmp@Base 0.71~4641 + lrs_cfp@Base 0.51 + lrs_checkbound_1@Base 0.71~4641 + lrs_checkbound_2@Base 0.71~4641 + lrs_checkbound_gmp@Base 0.71~4641 + lrs_clear_mp_matrix_1@Base 0.71~4641 + lrs_clear_mp_matrix_2@Base 0.71~4641 + lrs_clear_mp_matrix_gmp@Base 0.71~4641 + lrs_clear_mp_vector_1@Base 0.71~4641 + lrs_clear_mp_vector_2@Base 0.71~4641 + lrs_clear_mp_vector_gmp@Base 0.71~4641 + lrs_close_1@Base 0.71~4641 + lrs_close_2@Base 0.71~4641 + lrs_close_gmp@Base 0.71~4641 + lrs_close_outputblock_1@Base 0.71~4641 + lrs_close_outputblock_2@Base 0.71~4641 + lrs_close_outputblock_gmp@Base 0.71~4641 + lrs_degenerate_1@Base 0.71~4641 + lrs_degenerate_2@Base 0.71~4641 + lrs_degenerate_gmp@Base 0.71~4641 + lrs_digits@Base 0.51 + lrs_digits_1@Base 0.71~4641 + lrs_digits_2@Base 0.71~4641 + lrs_estimate_1@Base 0.71~4641 + lrs_estimate_2@Base 0.71~4641 + lrs_estimate_gmp@Base 0.71~4641 + lrs_exit_1@Base 0.71~4641 + lrs_exit_2@Base 0.71~4641 + lrs_exit_gmp@Base 0.71~4641 + lrs_file_to_cache_1@Base 0.71~4641 + lrs_file_to_cache_2@Base 0.71~4641 + lrs_file_to_cache_gmp@Base 0.71~4641 + lrs_free_all_memory_1@Base 0.71~4641 + lrs_free_all_memory_2@Base 0.71~4641 + lrs_free_all_memory_gmp@Base 0.71~4641 + lrs_free_dat_1@Base 0.71~4641 + lrs_free_dat_2@Base 0.71~4641 + lrs_free_dat_gmp@Base 0.71~4641 + lrs_free_dic2_1@Base 0.71~4641 + lrs_free_dic2_2@Base 0.71~4641 + lrs_free_dic2_gmp@Base 0.71~4641 + lrs_free_dic_1@Base 0.71~4641 + lrs_free_dic_2@Base 0.71~4641 + lrs_free_dic_gmp@Base 0.71~4641 + lrs_getdic_1@Base 0.71~4641 + lrs_getdic_2@Base 0.71~4641 + lrs_getdic_gmp@Base 0.71~4641 + lrs_getdigits_1@Base 0.71~4641 + lrs_getdigits_2@Base 0.71~4641 + lrs_getdigits_gmp@Base 0.71~4641 + lrs_getfirstbasis_1@Base 0.71~4641 + lrs_getfirstbasis_2@Base 0.71~4641 + lrs_getfirstbasis_gmp@Base 0.71~4641 + lrs_getinput_1@Base 0.71~4641 + lrs_getinput_2@Base 0.71~4641 + lrs_getinput_gmp@Base 0.71~4641 + lrs_getnextbasis_1@Base 0.71~4641 + lrs_getnextbasis_2@Base 0.71~4641 + lrs_getnextbasis_gmp@Base 0.71~4641 + lrs_getray_1@Base 0.71~4641 + lrs_getray_2@Base 0.71~4641 + lrs_getray_gmp@Base 0.71~4641 + lrs_getsolution_1@Base 0.71~4641 + lrs_getsolution_2@Base 0.71~4641 + lrs_getsolution_gmp@Base 0.71~4641 + lrs_getvertex_1@Base 0.71~4641 + lrs_getvertex_2@Base 0.71~4641 + lrs_getvertex_gmp@Base 0.71~4641 + lrs_ifp@Base 0.51 + lrs_init_1@Base 0.71~4641 + lrs_init_2@Base 0.71~4641 + lrs_init_gmp@Base 0.71~4641 + lrs_leaf_1@Base 0.71~4641 + lrs_leaf_2@Base 0.71~4641 + lrs_leaf_gmp@Base 0.71~4641 + lrs_lpoutput_1@Base 0.71~4641 + lrs_lpoutput_2@Base 0.71~4641 + lrs_lpoutput_gmp@Base 0.71~4641 + lrs_main_1@Base 0.71~4641 + lrs_main_2@Base 0.71~4641 + lrs_main_gmp@Base 0.71~4641 + lrs_mp_init_1@Base 0.71~4641 + lrs_mp_init_2@Base 0.71~4641 + lrs_mp_init_gmp@Base 0.71~4641 + lrs_ofp@Base 0.51 + lrs_open_outputblock_1@Base 0.71~4641 + lrs_open_outputblock_2@Base 0.71~4641 + lrs_open_outputblock_gmp@Base 0.71~4641 + lrs_overflow_1@Base 0.71~4641 + lrs_overflow_2@Base 0.71~4641 + lrs_overflow_gmp@Base 0.71~4641 + lrs_post_output_1@Base 0.71~4641 + lrs_post_output_2@Base 0.71~4641 + lrs_post_output_gmp@Base 0.71~4641 + lrs_print_header_1@Base 0.71~4641 + lrs_print_header_2@Base 0.71~4641 + lrs_print_header_gmp@Base 0.71~4641 + lrs_printcobasis_1@Base 0.71~4641 + lrs_printcobasis_2@Base 0.71~4641 + lrs_printcobasis_gmp@Base 0.71~4641 + lrs_printoutput_1@Base 0.71~4641 + lrs_printoutput_2@Base 0.71~4641 + lrs_printoutput_gmp@Base 0.71~4641 + lrs_printrow_1@Base 0.71~4641 + lrs_printrow_2@Base 0.71~4641 + lrs_printrow_gmp@Base 0.71~4641 + lrs_printtotals_1@Base 0.71~4641 + lrs_printtotals_2@Base 0.71~4641 + lrs_printtotals_gmp@Base 0.71~4641 + lrs_ratio_1@Base 0.71~4641 + lrs_ratio_2@Base 0.71~4641 + lrs_ratio_gmp@Base 0.71~4641 + lrs_read_dat_1@Base 0.71~4641 + lrs_read_dat_2@Base 0.71~4641 + lrs_read_dat_gmp@Base 0.71~4641 + lrs_read_dic_1@Base 0.71~4641 + lrs_read_dic_2@Base 0.71~4641 + lrs_read_dic_gmp@Base 0.71~4641 + lrs_record_digits@Base 0.51 + lrs_record_digits_1@Base 0.71~4641 + lrs_record_digits_2@Base 0.71~4641 + lrs_reset_1@Base 0.71~4641 + lrs_reset_2@Base 0.71~4641 + lrs_reset_gmp@Base 0.71~4641 + lrs_return_unexplored_1@Base 0.71~4641 + lrs_return_unexplored_2@Base 0.71~4641 + lrs_return_unexplored_gmp@Base 0.71~4641 + lrs_run_1@Base 0.71~4641 + lrs_run_2@Base 0.71~4641 + lrs_run_gmp@Base 0.71~4641 + lrs_set_digits_1@Base 0.71~4641 + lrs_set_digits_2@Base 0.71~4641 + lrs_set_digits_gmp@Base 0.71~4641 + lrs_set_obj_1@Base 0.71~4641 + lrs_set_obj_2@Base 0.71~4641 + lrs_set_obj_gmp@Base 0.71~4641 + lrs_set_obj_mp_1@Base 0.71~4641 + lrs_set_obj_mp_2@Base 0.71~4641 + lrs_set_obj_mp_gmp@Base 0.71~4641 + lrs_set_row_1@Base 0.71~4641 + lrs_set_row_2@Base 0.71~4641 + lrs_set_row_gmp@Base 0.71~4641 + lrs_set_row_mp_1@Base 0.71~4641 + lrs_set_row_mp_2@Base 0.71~4641 + lrs_set_row_mp_gmp@Base 0.71~4641 + lrs_setup_1@Base 0.71~4641 + lrs_setup_2@Base 0.71~4641 + lrs_setup_R_1@Base 0.71~4641 + lrs_setup_R_2@Base 0.71~4641 + lrs_setup_R_gmp@Base 0.71~4641 + lrs_setup_gmp@Base 0.71~4641 + lrs_solve_lp_1@Base 0.71~4641 + lrs_solve_lp_2@Base 0.71~4641 + lrs_solve_lp_gmp@Base 0.71~4641 + lrs_solvelp_1@Base 0.71~4641 + lrs_solvelp_2@Base 0.71~4641 + lrs_solvelp_gmp@Base 0.71~4641 + lrs_stdin_to_file_1@Base 0.71~4641 + lrs_stdin_to_file_2@Base 0.71~4641 + lrs_stdin_to_file_gmp@Base 0.71~4641 + lrs_warning_1@Base 0.71~4641 + lrs_warning_2@Base 0.71~4641 + lrs_warning_gmp@Base 0.71~4641 + lrsgmp_main@Base 0.71~4641 + lrsv2_main_1@Base 0.71~4641 + lrsv2_main_2@Base 0.71~4641 + lrsv2_main_gmp@Base 0.71~4641 + makenewargv@Base 0.71~4641 + mpgetstr10_1@Base 0.71~4641 + mpgetstr10_2@Base 0.71~4641 + mptodouble_1@Base 0.71~4641 + mptodouble_2@Base 0.71~4641 + mptoi_1@Base 0.71~4641 + mptoi_2@Base 0.71~4641 + mulrat_1@Base 0.71~4641 + mulrat_2@Base 0.71~4641 + mulrat_gmp@Base 0.71~4641 + myrandom_1@Base 0.71~4641 + myrandom_2@Base 0.71~4641 + myrandom_gmp@Base 0.71~4641 + notimpl_1@Base 0.71~4641 + notimpl_2@Base 0.71~4641 + notimpl_gmp@Base 0.71~4641 + phaseone_1@Base 0.71~4641 + phaseone_2@Base 0.71~4641 + phaseone_gmp@Base 0.71~4641 + pimat_1@Base 0.71~4641 + pimat_2@Base 0.71~4641 + pimat_gmp@Base 0.71~4641 + pivot_1@Base 0.71~4641 + pivot_2@Base 0.71~4641 + pivot_gmp@Base 0.71~4641 + plrs_readrat_1@Base 0.71~4641 + plrs_readrat_2@Base 0.71~4641 + plrs_readrat_gmp@Base 0.71~4641 + pmp_1@Base 0.71~4641 + pmp_2@Base 0.71~4641 + pmp_gmp@Base 0.71~4641 + prat_1@Base 0.71~4641 + prat_2@Base 0.71~4641 + prat_gmp@Base 0.71~4641 + primalfeasible_1@Base 0.71~4641 + primalfeasible_2@Base 0.71~4641 + primalfeasible_gmp@Base 0.71~4641 + printA_1@Base 0.71~4641 + printA_2@Base 0.71~4641 + printA_gmp@Base 0.71~4641 + print_basis_1@Base 0.71~4641 + print_basis_2@Base 0.71~4641 + print_basis_gmp@Base 0.71~4641 + ran_selectpivot_1@Base 0.71~4641 + ran_selectpivot_2@Base 0.71~4641 + ran_selectpivot_gmp@Base 0.71~4641 + rattodouble_1@Base 0.71~4641 + rattodouble_2@Base 0.71~4641 + rattodouble_gmp@Base 0.71~4641 + readfacets_1@Base 0.71~4641 + readfacets_2@Base 0.71~4641 + readfacets_gmp@Base 0.71~4641 + readlinearity_1@Base 0.71~4641 + readlinearity_2@Base 0.71~4641 + readlinearity_gmp@Base 0.71~4641 + readmp_1@Base 0.71~4641 + readmp_2@Base 0.71~4641 + readmp_gmp@Base 0.71~4641 + readrat_1@Base 0.71~4641 + readrat_2@Base 0.71~4641 + readrat_gmp@Base 0.71~4641 + readredund_1@Base 0.71~4641 + readredund_2@Base 0.71~4641 + readredund_gmp@Base 0.71~4641 + readremain_1@Base 0.71~4641 + readremain_2@Base 0.71~4641 + readremain_gmp@Base 0.71~4641 + reduce_1@Base 0.71~4641 + reduce_2@Base 0.71~4641 + reduce_gmp@Base 0.71~4641 + reducearray_1@Base 0.71~4641 + reducearray_2@Base 0.71~4641 + reducearray_gmp@Base 0.71~4641 + reduceint_1@Base 0.71~4641 + reduceint_2@Base 0.71~4641 + reduceint_gmp@Base 0.71~4641 + redund_print_1@Base 0.71~4641 + redund_print_2@Base 0.71~4641 + redund_print_gmp@Base 0.71~4641 + redund_run_1@Base 0.71~4641 + redund_run_2@Base 0.71~4641 + redund_run_gmp@Base 0.71~4641 + removecobasicindex_1@Base 0.71~4641 + removecobasicindex_2@Base 0.71~4641 + removecobasicindex_gmp@Base 0.71~4641 + reorder1_1@Base 0.71~4641 + reorder1_2@Base 0.71~4641 + reorder1_gmp@Base 0.71~4641 + reorder_1@Base 0.71~4641 + reorder_2@Base 0.71~4641 + reorder_gmp@Base 0.71~4641 + rescaledet_1@Base 0.71~4641 + rescaledet_2@Base 0.71~4641 + rescaledet_gmp@Base 0.71~4641 + rescalevolume_1@Base 0.71~4641 + rescalevolume_2@Base 0.71~4641 + rescalevolume_gmp@Base 0.71~4641 + resize_1@Base 0.71~4641 + resize_2@Base 0.71~4641 + resize_gmp@Base 0.71~4641 + restartpivots_1@Base 0.71~4641 + restartpivots_2@Base 0.71~4641 + restartpivots_gmp@Base 0.71~4641 + reverse_1@Base 0.71~4641 + reverse_2@Base 0.71~4641 + reverse_gmp@Base 0.71~4641 + selectpivot_1@Base 0.71~4641 + selectpivot_2@Base 0.71~4641 + selectpivot_gmp@Base 0.71~4641 + storesign_gmp@Base 0.71~4641 + stringcpy_1@Base 0.71~4641 + stringcpy_2@Base 0.71~4641 + stringcpy_gmp@Base 0.71~4641 + update_1@Base 0.71~4641 + update_2@Base 0.71~4641 + update_R_1@Base 0.71~4641 + update_R_2@Base 0.71~4641 + update_R_gmp@Base 0.71~4641 + update_gmp@Base 0.71~4641 + updatevolume_1@Base 0.71~4641 + updatevolume_2@Base 0.71~4641 + updatevolume_gmp@Base 0.71~4641 + xcalloc_1@Base 0.71~4641 + xcalloc_2@Base 0.71~4641 + xcalloc_gmp@Base 0.71~4641 -- cgit v1.2.3 From d92757488479bf73321a2f86fbcd4c2fcfd8c8cb Mon Sep 17 00:00:00 2001 From: David Bremner Date: Fri, 22 May 2020 14:24:52 -0300 Subject: add extra link for redund --- debian/lrslib.links | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/lrslib.links b/debian/lrslib.links index 60c7548..7a5be63 100644 --- a/debian/lrslib.links +++ b/debian/lrslib.links @@ -1,3 +1,4 @@ usr/share/man/man1/lrslib.1 usr/share/man/man1/lrs.1 usr/share/man/man1/lrslib.1 usr/share/man/man1/redund.1 usr/share/man/man1/nash.1 usr/share/man/man1/lrsnash.1 +usr/bin/lrs usr/bin/redund -- cgit v1.2.3 From c3bebbddb7b7d9a861c2fd532c19f4c0e76f946d Mon Sep 17 00:00:00 2001 From: David Bremner Date: Thu, 4 Jun 2020 10:53:36 -0300 Subject: upload to experimental and NEW --- debian/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 9e97910..39a9414 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -lrslib (0.71-1) UNRELEASED; urgency=medium +lrslib (0.71-1) experimental; urgency=medium [ Jelmer Vernooij ] * Fix Vcs-Git and Vcs-Browser URLs. @@ -6,7 +6,7 @@ lrslib (0.71-1) UNRELEASED; urgency=medium [ David Bremner ] * Update to new upstream version 0.71. - -- David Bremner Thu, 04 Jun 2020 10:26:09 -0300 + -- David Bremner Thu, 04 Jun 2020 10:53:01 -0300 lrslib (0.70-3) unstable; urgency=medium -- cgit v1.2.3 From 62dc2a591571cb37363ef01ddbe7d305165d2cf9 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Thu, 4 Jun 2020 10:54:28 -0300 Subject: Commit patch queue (exported by git-debrebase) [git-debrebase make-patches: export and commit patches] --- ...-library-drivers-buildable-in-32bit-archi.patch | 55 ++++++++++++++++++++++ ...2-use-CFLAGS-when-building-lrsnash-shared.patch | 22 +++++++++ debian/patches/series | 2 + 3 files changed, 79 insertions(+) create mode 100644 debian/patches/0001-make-shared-library-drivers-buildable-in-32bit-archi.patch create mode 100644 debian/patches/0002-use-CFLAGS-when-building-lrsnash-shared.patch create mode 100644 debian/patches/series diff --git a/debian/patches/0001-make-shared-library-drivers-buildable-in-32bit-archi.patch b/debian/patches/0001-make-shared-library-drivers-buildable-in-32bit-archi.patch new file mode 100644 index 0000000..1b7227e --- /dev/null +++ b/debian/patches/0001-make-shared-library-drivers-buildable-in-32bit-archi.patch @@ -0,0 +1,55 @@ +From: David Bremner +Date: Sun, 13 Jan 2019 09:08:03 -0400 +Subject: make shared library / drivers buildable in 32bit architectures. + +To ensure maximum make dialect portability, use variables that can be +overridden, rather than some conditional structure. +--- + makefile | 22 ++++++++++++++++++---- + 1 file changed, 18 insertions(+), 4 deletions(-) + +diff --git a/makefile b/makefile +index aef418d..d501294 100644 +--- a/makefile ++++ b/makefile +@@ -186,8 +186,17 @@ SOMINOR ?=.0.0 + SHLIB ?=$(SONAME)$(SOMINOR) + SHLINK ?=liblrs.so + +-SHLIBOBJ=lrslong1-shr.o lrslong2-shr.o lrslib1-shr.o lrslib2-shr.o \ +- lrslibgmp-shr.o lrsgmp-shr.o lrsdriver-shr.o ++# for 32 bit architectures ++# BITS=-DB32 ++# SHLIBOBJ2= ++ ++# for 64 bit architectures ++BITS=-DB128 ++SHLIBOBJ2=lrslib2-shr.o lrslong2-shr.o ++ ++SHLIBOBJ=lrslong1-shr.o lrslib1-shr.o \ ++ lrslibgmp-shr.o lrsgmp-shr.o lrsdriver-shr.o \ ++ ${SHLIBOBJ2} + + SHLIBBIN=lrs-shared lrsnash-shared + +@@ -206,13 +215,18 @@ ${SHLINK}: ${SONAME} + + all-shared: ${SHLIBBIN} + +-lrs-shared: ${SHLINK} lrs.o +- $(CC) lrs.o -o $@ -L . -llrs ++lrs-shared: ${SHLINK} lrs-shared.o ++ $(CC) $^ -o $@ -L . -llrs + + + lrsnash-shared: ${SHLINK} lrsnash.c + $(CC) -DGMP -DMA lrsnash.c lrsnashlib.c -I${INCLUDEDIR} -o $@ -L . -llrs -lgmp + ++# driver object files ++ ++lrs-shared.o: lrs.c ++ $(CC) ${CFLAGS} -DMA ${BITS} -L${LIBDIR} -c -o $@ lrs.c ++ + # build object files for the shared library + + lrslib1-shr.o: lrslib.c lrslib.h diff --git a/debian/patches/0002-use-CFLAGS-when-building-lrsnash-shared.patch b/debian/patches/0002-use-CFLAGS-when-building-lrsnash-shared.patch new file mode 100644 index 0000000..3868c93 --- /dev/null +++ b/debian/patches/0002-use-CFLAGS-when-building-lrsnash-shared.patch @@ -0,0 +1,22 @@ +From: David Bremner +Date: Sun, 13 Jan 2019 22:17:58 -0400 +Subject: use CFLAGS when building lrsnash-shared + +This is needed to have debug symbols +--- + makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/makefile b/makefile +index d501294..0ac9276 100644 +--- a/makefile ++++ b/makefile +@@ -220,7 +220,7 @@ lrs-shared: ${SHLINK} lrs-shared.o + + + lrsnash-shared: ${SHLINK} lrsnash.c +- $(CC) -DGMP -DMA lrsnash.c lrsnashlib.c -I${INCLUDEDIR} -o $@ -L . -llrs -lgmp ++ $(CC) ${CFLAGS} -DGMP -DMA lrsnash.c lrsnashlib.c -I${INCLUDEDIR} -o $@ -L . -llrs -lgmp + + # driver object files + diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..00cebf5 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,2 @@ +0001-make-shared-library-drivers-buildable-in-32bit-archi.patch +0002-use-CFLAGS-when-building-lrsnash-shared.patch -- cgit v1.2.3 From ec0f5f34b07afe0289e8196562240fac7e3f69cc Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sat, 6 Jun 2020 12:32:26 -0300 Subject: wrap-and-sort --- debian/control | 13 ++++++++----- debian/copyright | 2 +- debian/dirs | 1 - debian/liblrs-dev.install | 2 +- debian/lrslib.links | 2 +- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/debian/control b/debian/control index 7c7c29b..a2163f7 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,11 @@ Source: lrslib Section: math Priority: optional Maintainer: David Bremner -Build-Depends: debhelper (>= 10), libgmp-dev, xsltproc, docbook-xsl, docbook-xml +Build-Depends: debhelper (>= 10), + docbook-xml, + docbook-xsl, + libgmp-dev, + xsltproc Standards-Version: 3.9.4 Homepage: http://cgm.cs.mcgill.ca/~avis/C/lrs.html Vcs-Git: https://salsa.debian.org/science-team/lrslib/ @@ -10,7 +14,7 @@ Vcs-Browser: https://salsa.debian.org/science-team/lrslib.git Package: lrslib Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} Description: package to enumerate vertices and extreme rays of a convex polyhedron A convex polyhedron is the set of points satisfying a finite family of linear inequalities. The study of the vertices and extreme rays @@ -25,7 +29,7 @@ Description: package to enumerate vertices and extreme rays of a convex polyhedr Package: liblrs1 Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} Description: package to enumerate vertices and extreme rays (shared libraries) A convex polyhedron is the set of points satisfying a finite family of linear inequalities. The study of the vertices and extreme rays @@ -40,10 +44,9 @@ Description: package to enumerate vertices and extreme rays (shared libraries) . This package contains the (required) shared library. - Package: liblrs-dev Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, liblrs1 (=${binary:Version}) +Depends: liblrs1 (=${binary:Version}), ${misc:Depends}, ${shlibs:Depends} Breaks: liblrsgmp-dev (<< 0.70) Replaces: liblrsgmp-dev (<< 0.70) Section: libdevel diff --git a/debian/copyright b/debian/copyright index 47c5f60..d2bb66f 100644 --- a/debian/copyright +++ b/debian/copyright @@ -32,7 +32,7 @@ Files: rat2float.c Copyright: © 2006-2015 Copyright David Bremner, David Avis License: GPL-2+ -Files: debian/* +Files: debian/* Copyright: © 2008-2015, David Bremner License: GPL-2+ On Debian systems, you can find the full license text for the GPL-2 at /usr/share/common-licenses/GPL-2 diff --git a/debian/dirs b/debian/dirs index 74c5069..e772481 100644 --- a/debian/dirs +++ b/debian/dirs @@ -1,2 +1 @@ usr/bin - diff --git a/debian/liblrs-dev.install b/debian/liblrs-dev.install index 9a3b78d..b2b2740 100644 --- a/debian/liblrs-dev.install +++ b/debian/liblrs-dev.install @@ -1,2 +1,2 @@ -usr/lib/liblrs.so usr/include +usr/lib/liblrs.so diff --git a/debian/lrslib.links b/debian/lrslib.links index 7a5be63..03b461d 100644 --- a/debian/lrslib.links +++ b/debian/lrslib.links @@ -1,4 +1,4 @@ +usr/bin/lrs usr/bin/redund usr/share/man/man1/lrslib.1 usr/share/man/man1/lrs.1 usr/share/man/man1/lrslib.1 usr/share/man/man1/redund.1 usr/share/man/man1/nash.1 usr/share/man/man1/lrsnash.1 -usr/bin/lrs usr/bin/redund -- cgit v1.2.3 From ad9bf6b215720affc8511a349eb1d3178a6b2751 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sat, 6 Jun 2020 12:40:45 -0300 Subject: bump policy level *cough* only seven years late --- debian/changelog | 6 ++++++ debian/control | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 39a9414..96604d0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +lrslib (0.71-2) experimental; urgency=medium + + * Assert compliance with policy 4.5 + + -- David Bremner Sat, 06 Jun 2020 12:40:37 -0300 + lrslib (0.71-1) experimental; urgency=medium [ Jelmer Vernooij ] diff --git a/debian/control b/debian/control index a2163f7..a6580db 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Build-Depends: debhelper (>= 10), docbook-xsl, libgmp-dev, xsltproc -Standards-Version: 3.9.4 +Standards-Version: 4.5.0 Homepage: http://cgm.cs.mcgill.ca/~avis/C/lrs.html Vcs-Git: https://salsa.debian.org/science-team/lrslib/ Vcs-Browser: https://salsa.debian.org/science-team/lrslib.git -- cgit v1.2.3 From a5c0e2b01504b64cbce53b1cd96a0232d51e960b Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sat, 6 Jun 2020 12:42:33 -0300 Subject: Use new debhelper compat mechanism and level 13 --- debian/changelog | 3 ++- debian/compat | 1 - debian/control | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 debian/compat diff --git a/debian/changelog b/debian/changelog index 96604d0..e41c8ca 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,9 @@ lrslib (0.71-2) experimental; urgency=medium * Assert compliance with policy 4.5 + * Use debhelper-compat = 13 - -- David Bremner Sat, 06 Jun 2020 12:40:37 -0300 + -- David Bremner Sat, 06 Jun 2020 12:43:29 -0300 lrslib (0.71-1) experimental; urgency=medium diff --git a/debian/compat b/debian/compat deleted file mode 100644 index f599e28..0000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -10 diff --git a/debian/control b/debian/control index a6580db..90bcc6d 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: lrslib Section: math Priority: optional Maintainer: David Bremner -Build-Depends: debhelper (>= 10), +Build-Depends: debhelper-compat (= 13), docbook-xml, docbook-xsl, libgmp-dev, -- cgit v1.2.3 From b4e29359b6500fe9929cc732d1949f32efd090e2 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sat, 6 Jun 2020 12:47:02 -0300 Subject: new binary package mplrs --- debian/changelog | 4 +++- debian/control | 18 ++++++++++++++++++ debian/lrslib.install | 3 ++- debian/mplrs.install | 1 + debian/rules | 2 +- 5 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 debian/mplrs.install diff --git a/debian/changelog b/debian/changelog index e41c8ca..b7bea66 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,8 +2,10 @@ lrslib (0.71-2) experimental; urgency=medium * Assert compliance with policy 4.5 * Use debhelper-compat = 13 + * Build-depend on mpi-default-dev + * New binary package mplrs - -- David Bremner Sat, 06 Jun 2020 12:43:29 -0300 + -- David Bremner Sun, 07 Jun 2020 12:34:29 -0300 lrslib (0.71-1) experimental; urgency=medium diff --git a/debian/control b/debian/control index 90bcc6d..e8299ea 100644 --- a/debian/control +++ b/debian/control @@ -6,6 +6,7 @@ Build-Depends: debhelper-compat (= 13), docbook-xml, docbook-xsl, libgmp-dev, + mpi-default-dev, xsltproc Standards-Version: 4.5.0 Homepage: http://cgm.cs.mcgill.ca/~avis/C/lrs.html @@ -27,6 +28,23 @@ Description: package to enumerate vertices and extreme rays of a convex polyhedr arithmetic, and it consumes memory proportional to the input, no matter how large the output is. +Package: mplrs +Architecture: any +Depends: ${misc:Depends}, ${shlibs:Depends} +Description: package to enumerate vertices and extreme rays of a convex polyhedron (parallel binary) + A convex polyhedron is the set of points satisfying a finite family + of linear inequalities. The study of the vertices and extreme rays + of such systems is important and useful in e.g. mathematics and + optimization. In a dual interpretation, finding the vertices of a + (bounded) polyhedron is equivalent to finding the convex hull + (bounding inequalities) of an (arbitrary dimensional) set of points. + Lrs (lexicographic reverse search) has two important features that + can be very important for certain applications: it works in exact + arithmetic, and it consumes memory proportional to the input, no + matter how large the output is. + . + This package contains the parallel binary mplrs for use with mpi + Package: liblrs1 Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends} diff --git a/debian/lrslib.install b/debian/lrslib.install index e772481..e0c5301 100644 --- a/debian/lrslib.install +++ b/debian/lrslib.install @@ -1 +1,2 @@ -usr/bin +usr/bin/lrs +usr/bin/lrsnash diff --git a/debian/mplrs.install b/debian/mplrs.install new file mode 100644 index 0000000..474eafe --- /dev/null +++ b/debian/mplrs.install @@ -0,0 +1 @@ +mplrs usr/bin diff --git a/debian/rules b/debian/rules index 50eaf93..cae16e7 100755 --- a/debian/rules +++ b/debian/rules @@ -16,7 +16,7 @@ BUILDARGS= endif override_dh_auto_build: lrslib.1 nash.1 - make prefix=/usr DESTDIR=$(CURDIR)/debian/tmp CFLAGS="$(CFLAGS)" $(BUILDARGS) all-shared + make prefix=/usr DESTDIR=$(CURDIR)/debian/tmp CFLAGS="$(CFLAGS)" $(BUILDARGS) all-shared mplrs override_dh_auto_install: make prefix=/usr DESTDIR=$(CURDIR)/debian/tmp $(BUILDARGS) install -- cgit v1.2.3 From 4b4f80a7603c78436f3dfc93a2a0b85da56fe31c Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 7 Jun 2020 12:57:31 -0300 Subject: partial update to debian/copyright --- debian/copyright | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/copyright b/debian/copyright index d2bb66f..ed6a281 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,7 +1,7 @@ Source: http://cgm.cs.mcgill.ca/~avis/C/lrs.html Files: * -Copyright: © Copyright 1999-2015 David Avis +Copyright: © Copyright 1999-2020 David Avis License: GPL-2+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -33,6 +33,6 @@ Copyright: © 2006-2015 Copyright David Bremner, David Avis License: GPL-2+ Files: debian/* -Copyright: © 2008-2015, David Bremner +Copyright: © 2008-2020, David Bremner License: GPL-2+ On Debian systems, you can find the full license text for the GPL-2 at /usr/share/common-licenses/GPL-2 -- cgit v1.2.3 From 5d2e90ed446950d95f26ee795e677487f48181ae Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 7 Jun 2020 14:57:40 -0300 Subject: spelling fixes for lrslib manual --- debian/lrslib.1.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/debian/lrslib.1.xml b/debian/lrslib.1.xml index 667d4f8..7302ed7 100644 --- a/debian/lrslib.1.xml +++ b/debian/lrslib.1.xml @@ -10,7 +10,7 @@ lrslib -Convert between represetations of convex polyhedra. +Convert between representations of convex polyhedra. @@ -215,7 +215,7 @@ special character such as "*" or "#". dualperturb If lrs is executed with the maximize or minimize option, the reverse search tree is rooted at an optimum vertex for this - function.If there are mulitiple + function.If there are multiple optimum vertices, the output will often not be complete. This option gives a small perturbation to the objective to avoid this. A warning message is given if @@ -252,7 +252,7 @@ special character such as "*" or "#". For input V-representation, indices of all input vertices/rays that lie on the facet that is about to be output. - A starred indexindicates that this vertex  is also in the cobasis, but is not + A starred index indicates that this vertex  is also in the cobasis, but is not contained in the facet. It arises due to the lifting operation used with input V-representations. @@ -261,7 +261,7 @@ special character such as "*" or "#". #incidence
- The same as printcobasis. Included for compatability with + The same as printcobasis. Included for compatibility with cdd.
-- cgit v1.2.3 From e2167fc42452eef645deecd230a26892ccff2a88 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 7 Jun 2020 17:52:26 -0300 Subject: upload 0.71-3: add manpage for mplrs --- debian/changelog | 6 +++ debian/clean | 1 + debian/mplrs.1.xml | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++ debian/mplrs.manpages | 1 + debian/rules | 2 +- 5 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 debian/mplrs.1.xml create mode 100644 debian/mplrs.manpages diff --git a/debian/changelog b/debian/changelog index b7bea66..d2710b0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +lrslib (0.71-3) experimental; urgency=medium + + * Add manpage for mplrs + + -- David Bremner Sun, 07 Jun 2020 17:52:05 -0300 + lrslib (0.71-2) experimental; urgency=medium * Assert compliance with policy 4.5 diff --git a/debian/clean b/debian/clean index 190caec..0e8fd2b 100644 --- a/debian/clean +++ b/debian/clean @@ -1,2 +1,3 @@ nash.1 lrslib.1 +mplrs.1 diff --git a/debian/mplrs.1.xml b/debian/mplrs.1.xml new file mode 100644 index 0000000..e904f23 --- /dev/null +++ b/debian/mplrs.1.xml @@ -0,0 +1,121 @@ + + + + + MPLRS + 1 + May 2020 + mplrs 0.71 + + + mplrs + Convert between representations of convex polyhedra (parallel version). + + + + + mpirun + -np + num_proc + mplrs + + infile + + + outfile + + option + + + + + +DESCRIPTION + + A polyhedron can be described by a list of inequalities + (H-representation) or as by a list of its + vertices and extreme rays + (V-representation). lrs is a C program that + converts a H-representation of a polyhedron to its + V-representation, and vice versa.  These problems are known + respectively at the vertex enumeration and + convex hull problems. + + + + + + + USAGE + + The number of processors num_proc + specified to mpirun should be 4 or higher + + Unlike lrs 1, mplrs does + not support options after the end statement of the input file. + + + OPTIONS + + mplrs supports the following options. + + 2 the depth of the original tree search to populate the job queue L + 50 (*scale) a producer stops and returns all subtrees that are not leaves to L after generating  maxc nodes    + 0 a producer returns all subtrees that are not leaves at depth maxd. Zero if not used + 3 if job queue |L|<np*lmin then the maxd parameter is set for all producers + lmin if job queue |L|>np*lmax then then maxc is replaced by maxc*scale + 100used by lmax + store parallelization data in <file> for use by gnuplot, see below + /tmp/ store a temporary file for each process. Should be specified if /tmp not writeable. Using " -temp  ./ " will write temporary files to the current directory + store frequency data in <file> for use by gnuplot, see below + terminate mplrs if a file with name <stopfile> is created in the current directory + if mplrs is terminated by -stop or -time then it can be restarted using this <checkpoint file> and -restart + restart mplrs using previously created <checkpoint file>. If used with -checkp file names should be different! + terminate mplrs after <seconds> of elapsed time + don't output vertices/rays/facets, just count them + 500 controls maximum size of worker output buffers + smaller values increase "streaminess" of the output while larger values send larger blocks of output + exit after approximately <n> cobases have been computed (no guarantee about how many vertices/rays/facets computed) + perform redundancy check of input file (also see redund ) + + The parameters and + give interesting information about the degree of + parallelization. + + + + + + EXAMPLE + + Input file mp5.ine is run with 8 processors. The output file mp5.mplrs + is in the distribution. This produced 378 subtrees that were + enumerated in parallel using 6 producer cores,  1 core controlling the + run and 1 core collecting the output. + + + + mai20% mpirun -np 8 mplrs mp5.ine mp5.mplrs + *mplrs:lrslib v.6.0 2015.7.13(lrsgmp.h)8 processes + *Copyright (C) 1995,2015, David Avis   avis@cs.mcgill.ca + *Input taken from mp5.ine + *Output written to: mp5.mplrs + *Starting depth of 2 maxcobases=50 maxdepth=0 lmin=3 lmax=3 scale=100 + *Phase 1 time: 0 seconds. + *Total number of jobs: 378, L became empty 4 times + *Totals: vertices=32 rays=0 bases=9041 integer-vertices=16 + *Elapsed time: 1 seconds. + 2.285u 0.137s 0:01.86 129.5%    0+0k 0+9976io 36pf+0w + + + + + +SEE ALSO + + lrs1 + + + + diff --git a/debian/mplrs.manpages b/debian/mplrs.manpages new file mode 100644 index 0000000..c5930ec --- /dev/null +++ b/debian/mplrs.manpages @@ -0,0 +1 @@ +mplrs.1 diff --git a/debian/rules b/debian/rules index cae16e7..9c6d952 100755 --- a/debian/rules +++ b/debian/rules @@ -15,7 +15,7 @@ else BUILDARGS= endif -override_dh_auto_build: lrslib.1 nash.1 +override_dh_auto_build: lrslib.1 nash.1 mplrs.1 make prefix=/usr DESTDIR=$(CURDIR)/debian/tmp CFLAGS="$(CFLAGS)" $(BUILDARGS) all-shared mplrs override_dh_auto_install: -- cgit v1.2.3 From 34e453bc841a5405108b470d81fe14bd12e4545c Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 21 Jun 2020 08:43:29 -0300 Subject: new man pages from upstream svn r4729 --- debian/man/lrs.1 | 499 +++++++++++++++++++++++++++++++++++++++++++++++++++ debian/man/lrslib.5 | 100 +++++++++++ debian/man/lrsnash.1 | 156 ++++++++++++++++ debian/man/mplrs.1 | 143 +++++++++++++++ 4 files changed, 898 insertions(+) create mode 100644 debian/man/lrs.1 create mode 100644 debian/man/lrslib.5 create mode 100644 debian/man/lrsnash.1 create mode 100644 debian/man/mplrs.1 diff --git a/debian/man/lrs.1 b/debian/man/lrs.1 new file mode 100644 index 0000000..58913e3 --- /dev/null +++ b/debian/man/lrs.1 @@ -0,0 +1,499 @@ +'\" t +.\" Title: LRS +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 06/08/2020 +.\" Manual: lrslib 0.42b +.\" Source: July 2009(rev. June 2020) +.\" Language: English +.\" +.TH "LRS" "1" "2020.6.10" "July 2009" "lrs 7\&.1" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +lrs - Convert between representations of convex polyhedra, remove redundant inequalities, +convex hull computation, volume, triangulation, solution to linear programs in exact precision. +.SH "SYNOPSIS" +.HP \w'\fBlrs\fR\ [input-file] [output-file]\ 'u +\fBlrs\fR\ \fI[input-file] [output-file]\fR +.HP \w'\fBredund\fR\ [input-file] [output-file]\ 'u +\fBredund\fR\ \fI[input-file] [output-file]\fR +.HP \w'\fBhvref/xref\fR\ [input-file] \ 'u +\fBhvref/xvref\fR\ \fI[input-file]\fR +.SH "DESCRIPTION" +.PP +These programs are part of and must be compiled with +\fIlrslib\fR which is a C library. +All computations are done in exact arithmetic. +.PP +A polyhedron can be described by a list of inequalities (\fIH\-representation)\fR +or as by a list of its vertices and extreme rays (\fIV\-representation)\fR\&. +.PP +\fIlrs\fR +converts an H\-representation of a polyhedron to its V\-representation and vice versa, +known respectively as the +\fIvertex enumeration\fR +and +\fIfacet enumeration\fR problems\& (see Example (1) below). +For V-representations the volume can be computed and a triangulation +produced. +lrs can also be used to solve a linear program, remove linearities from a system, +and extract a subset of columns. +.PP +\fIredund\fR +removes redundant inequalities in an input H-representation and outputs the remaining inequalities\&. +For a V-representation it +outputs all extreme points and extreme rays, often called the +\fIconvex hull\fR problem. +Both outputs can be piped directly into \fIlrs\fR. +\fIredund\fR is a link to \fIlrs\fR which performs these functions via +the \fBredund\fR and \fBredund_list\fR options. See Example (2) below. +.PP +\fIhvref/xvref\fR\ produce a cross reference list between H- and V-representations. +See \fBUTILITIES\fR. +.PP +\fImplrs\fR +is Skip Jordan's parallel wrapper based on MPI for \fIlrs/redund\fR using the same +input and output formats. +See: \m[blue]\fBman mplrs \fR +\m[] +.PP +Fukuda\*(Aqs +\m[blue]\fBFAQ page\fR\m[]\&\s-2\u[1] +contains a more detailed introduction to the problem, along with many useful tips for the new user\&. +User's guide for \m[blue]\fBlsrslib\fR\m[]\u[8] + +.SH "FILE FORMATS" +.PP +File formats were developed jointly with Komei Fukuda and are compatible with +\m[blue]\fBcdd/cddlib\fR\m[]\&\s-2\u[2]\d\s+2\&. +.br +The input for +\fIlrs/redund\fR +is an H\- or V\-representation of a polyhedron\&. + + name + H-representation [\fIor\fR V-representation] + {options} + {linearities} + begin + m n rational [\fIor\fR integer] + {input matrix} + end + {options} + +\fIname\fR +is a user supplied name for the polyhedron\&.\ \& Comments may appear before the begin or after the end and +should begin with a special character such as "*"\&. +.PP +If the representation is not specified H\-representation is assumed. +The input coefficients are read in free format, and are not checked for type\&. Coefficients are separated by white space\&. m is the number of rows and n the number of columns of the input matrix\&. +.SS "H\-representation" +.PP +m is the number of input rows, each being an inequality or equation. +.br +n is the number of input columns and d=n-1 is the dimension of the input. +.br +An inequality or equation of the form: +.PP +b + a_1 x_1 + \&.\&.\&. + a_d x_d >=\ \& 0\& +.PP +b + a_1 x_1 + \&.\&.\&. + a_d x_d =\ \& 0\& +.PP +is input as the line: +.PP +b \ a_1 \&.\&.\&. a_d +.PP +The coefficients can be entered as integers or rationals in the format x/y\&. +To distinguish an equation a \fBlinearity\fR option must be supplied +before the \fBbegin\fR line (see below). +.SS "V\-representation" +.PP +m is the number of input rows, each being a vertex, ray or line. +.br +n is the number of input columns and d=n-1 is dimension of the input. +.br +Each vertex is given in the form: +.PP +1 \ v_1 \ \ v_1 \&.\&.\&.\ v_d +.PP +Each ray is given in the form: +.PP +0\ \&\ \& r_1 \&\ \& +r_2\&.\&.\&.\ \&\ \& r_d +.PP +where +r_1 \ \&.\&.\&.\ \&\ \& r_d is a point on the ray\&. +.PP +There must be at least one vertex in each file\&. For bounded polyhedra there will be no rays entered\&. The coefficients can be entered as integers or rationals in the format x/y\&. +An input line can be specified as a ray and then included in the \fBlinearity\fR option (see below). +.PP +\fBNote for cdd users\fR: +Note the input files for +\fIlrs\fR +are read in free format. +\fIlrs\fR +will look for exactly m*n rationals or integers separated by white space (blank, carriage return, tab etc\&.). +\fIlrs\fR +will not "drop" extra columns of input if n is less than the number of columns supplied\&. + +.SH "OPTIONS" +.PP +Almost all options are placed +\fBafter\fR +the end statement, maintaining compatibility with +\fIcdd\fR\&. Where this is not the case, it will be mentioned explicitly\&. +.PP +\fBallbases\fR +This option instructs +\fIlrs\fR +to list each vertex (or facet) for each of its bases\&. +This option is often combined with printcobasis\&. +.PP +\fBbound\ \& x \fR +(H\-representation only). Either the maximize or minimize option should be selected\&. x is an integer or rational\&. For maximization (resp\&. minimization) the reverse search tree is truncated\ \& whenever the current objective value is less (resp\&. more) than x\&. +.PP +\fBcache n\fR \ \ \ \ (default n=50) +.br +\fIlrs\fR +stores the latest\ \& n dictionaries in the reverse search tree\&. This speeds up the backtracking step, but requires more memory\&. +.PP +\fBdebug\ \& startingcobasis endingcobasis\fR +.br +Print out cryptic but detailed trace, dictionaries etc\&. starting at #B=startingcobasis and ending at #B=endingcobasis\&. \fBdebug 0 0\fR gives a complete trace\&. +.PP +\fBdigits n\fR (lrsmp arithmetic only - placed before the begin statement) +.br +n is the maximum number of decimal digits to be used\&. If this is exceeded the program terminates with a message +and can usually be restarted with the \fbrestart\fR option. The default is set to 100 digits\&. +At the end of a run a message is given informing the user of the maximum integer size encountered\&. +.PP +\fBdualperturb\fR +If lrs is executed with the \fBmaximize\fR or \fBminimize\fR option, the reverse search tree is rooted at an optimum vertex for this function\&. +If there are multiple optimum vertices, the output will often not be complete\&. This option gives a small perturbation to the objective to avoid this\&. A warning message is given if the starting dictionary is dual degenerate\&. +.PP +\fBestimates k\fR +.br +Estimate the output size\&. Used in conjunction with \fBmaxdepth\fR. +See: \m[blue]\fBEstimation\fR\m[]\&\s-2\u[3]\d\s+2 + +.PP +\fBextract [ k i_1 i_2 ... i_k ] \fR (new in v7.1) +.br +\fI(H-representation)\fR A preprocessing step to remove linearities (if any) +in an H-representation and resize the A matrix. +The output as a valid lrs input file. The resulting file will not contain any equations +but may not be full dimensional as there may be additional linearities in the +remaining inequalities. Options in the input file are stripped. +The user can specify the k columns i_1 i_2 ... i_k to retain +otherwise if k=0 the columns are considered in the order 1,2,..n-1. +Linear dependent columns are skipped and additional indices are taken from 1,2,...,n-1 as necessary. +If there are no linearities in the input file the given columns are retained +and the other ones are deleted. +.br +\fI(V-representation)\fR Extract the given columns from the input file outputing a valid lrs input file. +Options are stripped. +.PP +\fBgeometric\ \&\ \&\fR +(H\-representation\ \& or voronoi option only) Each ray is printed together with the vertex with which it is incident\&. +.PP +\fBincidence\fR +This option automatically switches on \fBprintcobasis\fR. +For input H\-representation, indices of all input inequalities that contain the vertex/ray that is about to be output\&. +For input V\-representation, indices of all input vertices/rays that lie on the facet that is +about to be output\&. A starred index indicates that this vertex\ \& is also in the cobasis, +but is not contained in the facet\&. It arises due to the lifting operation used with input V\-representations\&. +.PP +\fBlinearity\ \& k\ \& i_1 \ i_2 \ \&... \ i_k \fR +.br +(H-representation) The k rows i_1 \ i_2 \ \&... \ i_k \fR \ of the input file +represent equations\&. +(V-representation) The k rows, which should have a zero in column 1, represent lines +in space (rather than rays). +.PP +\fBlponly\fR Solve the LP given by the input H-representation with objective function specified +by the \fBmaximize\fR or \fBminimize\fR options and terminate. Use with \fBverbose\fR option +to get dual variables. See: +\m[blue]\fBLinear Programming\fR\m[]\&\s-2\u[4]\d\s+2 +.PP +\fBmaxdepth k\fR +.br +The search will be truncated at depth k\&. All bases with depth less than or equal to k will be computed\&.\ \& k is\ \& a non\-negative integer, and this option is used for estimates \- see +\m[blue]\fBEstimation\fR\m[]\&\s-2\u[3]\d\s+2 +\fBNote\fR: For H\-representations, rays at depth k will not be reported\&. For V\-representations, facets at depth k will not be reported\&. +.PP +\fBmaximize\ \& b \ a_1 \&.\&.\&. a_{n-1} \fR\ \& +(H\-representation\ \& only) +.br +\fBminimize\ \& b \ a_1 \&.\&.\&. a_{n-1} \fR\ \& +(H\-representation\ \& only) +.br +The starting vertex maximizes (or minimizes) the function +\ b + a_1 x_1+ \&.\&.\&. + a_{n-1} x_{n-1}. +.br +The \fBdualperturb\fR option may be needed to avoid dual degeneracy\&. +.PP +\fBmaxoutput n\fR +.br +Limits number of output lines produced (either vertices+rays or facets) to n +.PP +\fBmindepth k\fR +.br +Backtracking will be terminated at depth k. +.PP +\fBnonnegative\fR +(This option must come before the begin statement - H\-representation only) \ \& Bug: Can only be used if the origin is a vertex of the polyhedron\ \& +For problems where the input is an H\-representation of the form b+Ax>=0, x>=0 (ie\&. all variables non\-negative, all constraints inequalities) it is not necessary to give the non\-negative constraints explicitly if the nonnegative option is used\&. +This option cannot be used for V\-representations, or with the linearity option (in which case the linearities will be treated as inequalities)\&. This option may be used with redund , but the implied nonnegativity constraints are not tested themselves for redundancy\&. +.PP +\fBprintcobasis\ k\fR +.br +Every k-th cobasis is printed. +If k is omitted, the cobasis is printed for each vertex/ray/facet that is output\&. For a long run it is useful to print the cobasis occasionally so that the program can be restarted if necessary\&. +\fIH\-representation\fR: the cobasis is a list the indices of the inequalities from the input file that define the current vertex or ray\&. +For rays the cobasis is the cobasis of the vertex from which the ray emanates\&. One of the indices is starred, this indicates the inequality to be dropped from the cobasis to define the ray\&. +If the \fBallbases\fR option is used, all cobases will be printed\&. +\fIV\-representation\fR: the cobasis is a list of the input vertices/rays that define the current facet\&. See option +\fBincidence\fR +for more information\&. +.PP +\fBprintslack\fR +(H\-representation only) A list of the indices of the input inequalities that are satisfied +strictly for the current vertex, ie\&. corresponding slack variable is positive\&. If nonnegative is set, the list will also include indices n+i for each decision variable x_i +which is positive\&. +.PP +\fBredund start end \fR (new in v7.1) +.br +Check input lines with line numbers from start to end and remove any redundant lines. +.br +\fBredund 0 0\fR will check all input lines. See \m[blue]\fBredund\fR\m[]\&\s-2\u[7]\d\s+2 +.PP +\fBredund_list k i_1 i_2 ... i_k\fR (new in v7.1) +.br +Check the k input line numbers with indices i_1 i_2 ... i_k +and remove any redundant lines. See \m[blue]\fBredund\fR\m[]\&\s-2\u[7]\d\s+2 +.PP +\fBrestart\ \& V# R# B# depth {facet #s or vertex/ray #s\fR} +.br +\fIlrs\fR +can be restarted from any known cobasis\&. The calculation will proceed to normal termination\&. All of the information is contained in the output from a +\fBprintcobasis\fR +option\&.\ \& The +\fBorder of the indices is very important,\fR +enter them exactly as they appear in the output from the previously terminated run\&. +.PP Note that if some cobasic index is followed by a "*",\ \& then the index only, without the "*", is included in the restart line\&. \fBCaution:\fR When restarting, output from the restart dictionary may be duplicated, and the final totals of number of vertices/rays/facets may reflect this\&. +.PP +\fBstartingcobasis i_1 \ i_2 \ ... \ i_{n-1}\fR +.br +lrs will start from the given cobasis which which +is a list of the inequalities (for H\-representation) or vertices/rays (for V\-representation) +that define it. If it is invalid, or this option is not specified, +\fIlrs\fR +will find its own starting cobasis\&. +.PP +\fBtruncate\fR \ +The reverse search tree is truncated(pruned)\ \& whenever a new vertex is encountered\&. Note: This does note necessarily produce the set of all vertices adjacent to the optimum vertex in the polyhedron, but just a subset of them\&. +.PP +\fBverbose\fR +Print slightly more detailed information about the run\&. +.PP +\fBvolume\fR +(V\-representation only) +Compute the volume and, if the \fBverbose\fR option is also included, +output a \fBtriangulation\fR. See +\m[blue]\fBVolume Computation\fR\m[]\&\s-2\u[5]\d\s+2 +.PP +\fBvoronoi\fR +(V\-representation\ \& only \- place immediately after end statement) +.br +Compute Voronoi diagram \- see +\m[blue]\fBVoronoi Diagrams\fR\m[]\&\s-2\u[6]\d\s+2 +.SH "ARITHMETIC" +From version 7.1 \fIlrs/redund/mplrs\fR use hybrid arithmetic with overflow checking, +starting in 64bit integers, moving to 128bit (if available) and then GMP. +Overflow checking is conservative to improve performance: +eg. with 64 bit arithmetic, a*b triggers overflow if either a or b is at least 2^31, +and a+b triggers an overflow if either a or b is at least 2^62. +Typically problems that can be solved in 64bits run 3-4 times faster than with GMP +and inputs solvable in 128bits run twice as fast as GMP. +.PP +Various arithmetic versions are available +and can be built from the makefile: +.PP +\fBlrs1\fR Fixed length 64 bit integer arithmetic, terminates on overflow. +.PP +\fBlrs2\fR Fixed length 128 bit integer arithmetic, terminates on overflow. +.PP +\fBlrsmp\fR Built in extended precision integer arithmetic, uses \fBdigits\fR option above. +.PP +\fBlrsgmp\fR GNU MP which must be installed first from https://gmplib.org/. +.PP +\fBlrsflint\fR FLINT hybrid arithmetic which must be installed first from +http://www.flintlib.org/ + +.SH "EXAMPLES" +.PP +(1) Convert the H-representation of a cube given cube by 6 the six inequalities +.br +-1 <= x_i <= 1 , i=1,2,3 into its V-representation consisting of 8 vertices. +.PP + % cat cube.ine + cube.ine + H-representation + begin + 6 4 rational + 1 1 0 0 + 1 0 1 0 + 1 0 0 1 + 1 -1 0 0 + 1 0 0 -1 + 1 0 -1 0 + end + + % lrs cube.ine + + *lrs:lrslib v.6.3 2018.4.11(64bit,lrslong.h,overflow checking) + *Input taken from file cube.ine + cube.ine + V-representation + begin + ***** 4 rational + 1 1 1 1 + 1 -1 1 1 + 1 1 -1 1 + 1 -1 -1 1 + 1 1 1 -1 + 1 -1 1 -1 + 1 1 -1 -1 + 1 -1 -1 -1 + end + *Totals: vertices=8 rays=0 bases=8 integer_vertices=8 +.PP +(2) Compute the extreme points of a set of 10 points in R^3 +.PP + % cat c.ext + V-representation + begin + 10 4 rational + 1 1 1 1 + 1 0 1 1 + 1 1/2 0 1/3 + 1 1 1 0 + 1 0 1 0 + 1 1 0 0 + 1 0 0 0 + 1 0 1/3 1/4 + 1 1 0 1 + 1 0 0 1 + end + + % redund c.ext + + *redund:lrslib v.7.2 2020.6.8(64bit,lrslong.h,hybrid arithmetic) + *Input taken from c.ext + V-representation + begin + 8 4 rational + 1 1 1 1 + 1 0 1 1 + 1 1 1 0 + 1 0 1 0 + 1 1 0 0 + 1 0 0 0 + 1 1 0 1 + 1 0 0 1 + end + *Input had 10 rows and 4 columns + * 2 redundant row(s) found: + 3 8 + +.SH "UTILITIES" +.PP +\fBhvref/xref\fR Cross reference listing between V- and H-representations (new in v7.1) + +In the example below we start from an H-representation of cube.ine but the same +steps apply to the V-representation cube.ext. +It is recommended to first remove any redundancies from the input file using redund. + +1. Add \fBprintcobasis\fR and \fBincidence\fR options to cube.ine + +% lrs cube.ine cube.ext +.br +% xref cube.ext + +2. Edit the output file cube.ext.x to insert a second line that contains two integers + +rows maxindex + +where rows >= # output lines in cube.ext.x + maxindex >= # input lines in cube.ine + +or just use 0 0 and run hvref, the output will tell you which values to use. + +% hvref cube.ext.x + + +.SH "NOTES" +.IP " 1." 4 +FAQ page +.RS 4 +\%https://inf.ethz.ch/personal/fukudak/polyfaq/polyfaq.html +.RE +.IP " 2." 4 +cdd +.RS 4 +\%https://inf.ethz.ch/personal/fukudak/cdd_home/ +.RE +.IP " 3." 4 +Estimation. +.RS 4 +\%http://cgm.cs.mcgill.ca/%7Eavis/C/lrslib/USERGUIDE.html#Estimation +.RE +.IP " 4." 4 +Linear Programming +.RS 4 +\%http://cgm.cs.mcgill.ca/%7Eavis/C/lrslib/USERGUIDE.html#Linear%20Programming +.RE +.IP " 5." 4 +Volume Computation. +.RS 4 +\%http://cgm.cs.mcgill.ca/%7Eavis/C/lrslib/USERGUIDE.html#Volume%20Computation +.RE +.IP "6." 4 +Voronoi Diagrams. +.RS 4 +\%http://cgm.cs.mcgill.ca/%7Eavis/C/lrslib/USERGUIDE.html#Voronoi%20Diagrams +.RE +.IP "7." 4 +redund: extreme point enumeration and eliminating redundant inequalities +.RS 4 +\%http://cgm.cs.mcgill.ca/%7Eavis/C/lrslib/USERGUIDE.html#redund +.RE +.IP "8." 4 +User's guide for lrslib +.RS 4 +\%http://cgm.cs.mcgill.ca/%7Eavis/C/lrslib/USERGUIDE.html +.RE +.SH AUTHOR +David Avis +.SH "SEE ALSO" +.BR mplrs (1), +.BR lrslib (1), +.BR lrsnash (1) diff --git a/debian/man/lrslib.5 b/debian/man/lrslib.5 new file mode 100644 index 0000000..f8a7e77 --- /dev/null +++ b/debian/man/lrslib.5 @@ -0,0 +1,100 @@ +'\" t +.\" Title: LRSLIB +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 06/10/2020 +.\" Manual: lrslib 0.42b +.\" Source: July 2009(rev. June 2020) +.\" Language: English +.\" +.TH "LRSLIB" "1" "2020.06.10" "July 2009" "lrslib 7\&.1" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +lrslib: Convert between representations of convex polyhedra, remove redundant inequalities, +convex hull computation, solve linear programs in exact precision, +compute Nash-equibria in 2-person games\&. +.SH "SYNOPSIS" +.HP \w'\fBlrs\fR\ [input-file] [output-file]\ 'u +\fBlrs\fR\ \fI[input-file] [output-file]\fR +.HP \w'\fBredund\fR\ [input-file] [output-file]\ 'u +\fBredund\fR\ \fI[input-file] [output-file]\fR +.HP \w'\fBmpirun\fR -np \fInum_proc\fR \fBmplrs\fR\ \fIinput-file [output-file] [options...]\fR\ 'u +\fBmpirun\fR -np \fInum-proc\fR \fBmplrs\fR\ \fIinput-file [output-file] [options]\fR +.HP \w'\fBlrsnash\fR\ [input-file] \ 'u +\fBlrsnash\fR\ \fI[options] [input-file] \fR +.HP \w'\fBhvref/xref\fR\ [input-file] \ 'u +\fBhvref/xvref\fR\ \fI[input-file]\fR +.SH "DESCRIPTION" +.PP +A polyhedron can be described by a list of inequalities (\fIH\-representation)\fR +or as by a list of its vertices and extreme rays (\fIV\-representation)\fR\&. +\fIlrslib\fR is a C library containing programs to manipulate these representations. +All computations are done in exact arithmetic. +.PP +\fIlrs\fR +converts an H\-representation of a polyhedron to its V\-representation and vice versa, +known respectively as the +\fIvertex enumeration\fR +and +\fIfacet enumeration\fR problems\& (see Example (1) below). +lrs can also be used to solve a linear program, remove linearities from a system, +and extract a subset of columns. +.PP +\fIredund\fR +removes redundant inequalities in an input H-representation and outputs the remaining inequalities\&. +For a V-representation input it +outputs all extreme points and extreme rays. Both outputs can be piped directly into \fIlrs\fR. +\fIredund\fR is a link to \fIlrs\fR which performs these functions via +the \fBredund\fR and \fBredund_list\fR options. +.PP +\fImplrs\fR +is Skip Jordan's parallel wrapper for \fIlrs/redund\fR. +.PP +\fIlrsnash\fR +is Terje Lensberg's application of \fIlrs\fR for finding Nash-equilibria +in 2-person games\&. +.PP +\fIhvref/xvref\fR\ produce a cross reference list between H- and V-representations. +.SH "ARITHMETIC" +From version 7.1 \fIlrs/redund/mplrs\fR use hybrid arithmetic with overflow checking, +starting in 64bit integers, moving to 128bit (if available) and then GMP. +Overflow checking is conservative to improve performance: +eg. with 64 bit arithmetic, a*b triggers overflow if either a or b is at least 2^31, +and a+b triggers an overflow if either a or b is at least 2^62. +Typically problems that can be solved in 64bits run 3-4 times faster than with GMP +and inputs solvable in 128bits run twice as fast as GMP. +.PP +Various arithmetic versions are available +and can be built from the makefile: + +.SH "NOTES" +.PP +User's guide for lrslib +.RS 4 +\%http://cgm.cs.mcgill.ca/~avis/C/lrslib/USERGUIDE.html +.RE +.SH AUTHOR +David Avis +.SH "SEE ALSO" +.BR lrs (1), +.BR mplrs (1), +.BR lrsnash (1), + diff --git a/debian/man/lrsnash.1 b/debian/man/lrsnash.1 new file mode 100644 index 0000000..625ff72 --- /dev/null +++ b/debian/man/lrsnash.1 @@ -0,0 +1,156 @@ +'\" t +.\" Title: LRSNASH +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 06/08/2020 +.\" Manual: lrslib 7.1 +.\" Source: June 2020 +.\" Language: English +.\" +.TH "LRSNASH" "1" "06/08/2020" "July 2020" "lrslib 7\&.1" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie (.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +lrsnash: \ +Compute Nash-equibria in 2-person games\&. +.SH "SYNOPSIS" +.HP \w'\fBlrsnash\fR \ [options...] [input-file] \ 'u +\fBlrsnash\fR \ [options...] [input-file] +.HP \w'\fBlrsnash1\fR\ [options...] [input-file] \ 'u +\fBlrsnash1\fR\ [options...] [input-file] +.HP \w'\fBlrsnash2\fR\ [options...] [input-file] \ 'u +\fBlrsnash2\fR\ [options...] [input-file] +.HP \w'\fBnashdemo\fR\ \ 'u +\fBnashdemo\fR\ +.PP +options: + -v, --verbose Prints a trace of the solution process + -d, --debug Dumps lots of information for debugging + -p, --printgame Prints the payoff matrix for the game + -s, --standard Promise that input files have standard structure + -o, --outfile Send output to + -h, --help Prints this text + Short options can be grouped, as in '-ps' and '-do out.txt' + + +.SH DESCRIPTION +.PP +These C programs are distributed as part of the \m[blue]\fBlsrslib\fR\m[]\u[2] package +and must be compiled with it. + +Alice has a payoff matrix A and Bob has a playoff matrix B, both of dimension m by n. +Alice assigns probabilities x to the rows and Bob y to the columns. +Alice receives payoff x^T A y and Bob receives x^T B y. +A Nash equilibriam +occurs for pairs x,y for which neither player can improve their expected payoff +by unilateraly changing strategies. + +.PP +\fIlrsnash\fR +is an application of \fIlrs\fR for finding Nash-equilibria +in 2-person matrix games +using a method described in \u[1]. It uses GMP exact extended precision arithmetic. + +\fIlrsnash1\fR +is the same as \fIlrsnash\fR +except that it uses 64 bit exact arithmetic and terminates if overflow is detected. +It is about 3-4 times faster. + +\fIlrsnash2\fR +is the same as \fIlrsnash\fR +except that it uses 128 bit exact arithmetic and terminates if overflow is detected. +It is about twice as fast. It requires a C +compiler with __int128 support (eg. gcc v. 4.6.0 or later). + +\fInashdemo\fR +is a simple template for \fIlrsnash\fR. +It builds two 3x4 matrices A and B and computes their equilibria. + +The running time may be significantly different depending on the order of the +two matrices in the input. For large problems it may be advantageous to +run \fIlrsnash\fR twice in parallel with the matrices +in different orders. +There is also a more complex legacy input format recognized by +\fIlrsnash\fR that is described in \u[1]. + +.SH FILE FORMATS +.PP +The input file consists of two integers m and n on line 1 +followed by two mxn payoff matrices A and B: + + m n + A (row by row) + B (row by row) + +.SH EXAMPLE +The input file game has two 3x2 payoff matrices: + + %cat game + + 3 2 + + 0 6 + 2 5 + 3 3 + + 1 0 + 0 2 + 4 3 + + % lrsnash game + + 2 1/3 2/3 4 + 1 2/3 1/3 0 2/3 + + 2 2/3 1/3 3 + 1 0 1/3 2/3 8/3 + + 2 1 0 3 + 1 0 0 1 4 + + *Number of equilibria found: 3 + *Player 1: vertices=5 bases=5 pivots=8 + *Player 2: vertices=3 bases=1 pivots=8 + +\fBInterpretation\fR +There are 3 Nash equilibria. For the first one: + + 2 1/3 2/3 4 +.br +Bob(player 2) plays column 1 and 2 with probablilities y=(1/3, 2/3) +and the payoff to Alice(player 1) is 4. + + 1 2/3 1/3 0 2/3 +.br +Alice plays rows 1,2,3 with probabilities x=(2/3, 1/3, 0) and the payoff to Bob is 2/3. + +.SH NOTES +.IP 1. 4 +D. Avis, G. Rosenberg, R. Savani, B. von Stengel, \fIEnumeration of Nash Equilibria for Two-Player Games\fR, +Economic Theory 42(2009) 9-37 +.IP 2. 4 +User's guide for lrslib +.RS 4 +\%http://cgm.cs.mcgill.ca/%7Eavis/C/lrslib/USERGUIDE.html +.RE +.SH AUTHORS +David Avis and Terje Lensberg +.SH "SEE ALSO" +.BR lrslib (1) diff --git a/debian/man/mplrs.1 b/debian/man/mplrs.1 new file mode 100644 index 0000000..d50981c --- /dev/null +++ b/debian/man/mplrs.1 @@ -0,0 +1,143 @@ +'\" t +.\" Title: MPLRS +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.79.1 +.\" Date: 06/07/2020 +.\" Manual: mplrs 0.71 +.\" Source: May 2020 +.\" Language: English +.\" +.TH "MPLRS" "1" "06/07/2020" "May 2020" "mplrs 7\&.1" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +mplrs \- Convert between representations of convex polyhedra (parallel version)\&. +.SH "SYNOPSIS" +.HP \w'\fB\ mpirun\ \fR\fBmplrs\fR\ 'u +\fB mpirun \fR \-np \fInum_proc\ \fR\fBmplrs\fR \fIinfile\fR [\fIoutfile\fR] [\fIoption\fR...] +.br + +.SH "DESCRIPTION" +.PP +A polyhedron can be described by a list of inequalities (\fIH\-representation)\fR +or as by a list of its vertices and extreme rays (\fIV\-representation)\fR\&. +\fIlrs\fR +is a C program that converts a H\-representation of a polyhedron to its V\-representation, and vice versa\&.\ \& These problems are known respectively at the +\fIvertex enumeration\fR +and +\fIconvex hull problems\fR\&. +.PP +.SH "USAGE" +.PP +The number of processors +\fInum_proc\fR +specified to +\fBmpirun\fR +should be 4 or higher Unlike lrs +(1), +\fBmplrs\fR +does not support options after the end statement of the input file\&. +.SS "OPTIONS" +.PP +\fBmplrs\fR +supports the following options\&. +.RS 4 +\fB\-id \fR [2] the depth of the original tree search to populate the job queue L +.RE +.RS 4 +\fB\-maxc \fR[50 (*scale)] a producer stops and returns all subtrees that are not leaves to L after generating\ \& maxc nodes\ \&\ \&\ \& +.RE +.RS 4 +\fB\-maxd \fR[0] a producer returns all subtrees that are not leaves at depth maxd\&. Zero if not used +.RE +.RS 4 +\fB\-lmin \fR[3] if job queue |L|\fR[lmin] if job queue |L|>np*lmax then then maxc is replaced by maxc*scale +.RE +.RS 4 +\fB\-scale \fR[100]used by lmax +.RE +.RS 4 +\fB\-hist \fRstore parallelization data in for use by gnuplot, see below +.RE +.RS 4 +\fB\-temp \fR[/tmp/] store a temporary file for each process\&. Should be specified if /tmp not writeable\&. Using " \-temp\ \& \&./ " will write temporary files to the current directory +.RE +.RS 4 +\fB\-freq \fR store frequency data in for use by gnuplot, see below +.RE +.RS 4 +\fB\-stop \fR terminate mplrs if a file with name is created in the current directory +.RE +.RS 4 +\fB\-checkp \fR if mplrs is terminated by \-stop or \-time then it can be restarted using this and \-restart +.RE +.RS 4 +\fB\-restart \fR restart mplrs using previously created \&. If used with \-checkp file names should be different! +.RE +.RS 4 +\fB\-time \fR terminate mplrs after of elapsed time +.RE +.RS 4 +\fB\-countonly\fR don\*(Aqt output vertices/rays/facets, just count them +.RE +.RS 4 +\fB\-maxbuf \fR[500] controls maximum size of worker output buffers +.RE +.RS 4 +\fB\-stopafter \fR exit after approximately cobases have been computed (no guarantee about how many vertices/rays/facets computed) +.RE +.RS 4 +\fB\-redund\fR perform redundancy check of input file (also see redund ) +.RE +The parameters +\fB\-hist\fR +and +\fB\-freq\fR +give interesting information about the degree of parallelization\&. +.SH "EXAMPLE" +.PP +Input file mp5\&.ine is run with 8 processors\&. The output file mp5\&.mplrs is in the distribution\&. This produced 378 subtrees that were enumerated in parallel using 6 producer cores,\ \& 1 core controlling the run and 1 core collecting the output\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf + mai20% mpirun \-np 8 mplrs mp5\&.ine mp5\&.mplrs + *mplrs:lrslib v\&.6\&.0 2015\&.7\&.13(lrsgmp\&.h)8 processes + *Copyright (C) 1995,2015, David Avis\ \&\ \& avis@cs\&.mcgill\&.ca + *Input taken from mp5\&.ine + *Output written to: mp5\&.mplrs + *Starting depth of 2 maxcobases=50 maxdepth=0 lmin=3 lmax=3 scale=100 + *Phase 1 time: 0 seconds\&. + *Total number of jobs: 378, L became empty 4 times + *Totals: vertices=32 rays=0 bases=9041 integer\-vertices=16 + *Elapsed time: 1 seconds\&. + 2\&.285u 0\&.137s 0:01\&.86 129\&.5%\ \&\ \&\ \& 0+0k 0+9976io 36pf+0w + +.fi +.if n \{\ +.RE +.\} +.SH "SEE ALSO" +.BR lrs (1), +.BR lrslib (1) -- cgit v1.2.3 From e1347e7fb5de20355a872fa1e4681031d9385b8d Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 21 Jun 2020 08:47:17 -0300 Subject: use upstream manpages David A prefers to use *roff. --- debian/control | 5 +- debian/lrslib.1.xml | 445 ------------------------------------------------- debian/lrslib.links | 4 +- debian/lrslib.manpages | 6 +- debian/mplrs.1.xml | 121 -------------- debian/mplrs.manpages | 2 +- debian/nash.1.xml | 140 ---------------- debian/rules | 5 +- 8 files changed, 8 insertions(+), 720 deletions(-) delete mode 100644 debian/lrslib.1.xml delete mode 100644 debian/mplrs.1.xml delete mode 100644 debian/nash.1.xml diff --git a/debian/control b/debian/control index e8299ea..dc51d2c 100644 --- a/debian/control +++ b/debian/control @@ -3,11 +3,8 @@ Section: math Priority: optional Maintainer: David Bremner Build-Depends: debhelper-compat (= 13), - docbook-xml, - docbook-xsl, libgmp-dev, - mpi-default-dev, - xsltproc + mpi-default-dev Standards-Version: 4.5.0 Homepage: http://cgm.cs.mcgill.ca/~avis/C/lrs.html Vcs-Git: https://salsa.debian.org/science-team/lrslib/ diff --git a/debian/lrslib.1.xml b/debian/lrslib.1.xml deleted file mode 100644 index 7302ed7..0000000 --- a/debian/lrslib.1.xml +++ /dev/null @@ -1,445 +0,0 @@ - - - - -LRSLIB -1 -July 2009 -lrslib 0.42b - - -lrslib -Convert between representations of convex polyhedra. - - - - - lrs input.ine - - - lrs input.ine | lrsbuffer - - - - lrsfourier file.ine [fileout] - - - - redund input.ine - - - - -DESCRIPTION - - A polyhedron can be described by a list of inequalities - (H-representation) or as by a list of its - vertices and extreme rays - (V-representation). lrs is a C program that - converts a H-representation of a polyhedron to its - V-representation, and vice versa.  These problems are known - respectively at the vertex enumeration and - convex hull problems. - Fukuda's - FAQ page -   contains a more detailed introduction to the problem, along - with many useful tips for the new user. - - - lrsbuffer can remove some duplicate output. - redund finds redundant inequalities in the input. - - - -File Formats - - File formats were developed jointly with Komei Fukuda and are - compatible with cdd. - - - The input for lrs is a H- or V- representation - of a polytope. - - -name -{representation line} -{options} -{linearities} -begin - m n rational -{input matrix} -end -{options} - - name is a user supplied name for the - polytope.  Comments may appear before the begin or after the -end, and to avoid interpretation as an option, should begin with a -special character such as "*" or "#". - - - - name is a user supplied name for the - polytope.  representation line is either "H-representation" or "V-representation". - If is omitted, H-representation is assumed.  The input coefficients are read - in free format, and are not checked for type. Coefficients are - separated by white space. m is the number of rows and n the number of columns of the input matrix. - - - - H-representation - - The integer  m is the number of - inequalities,  and the integer n is the dimension of the input - +1. A list of inequalities contains - the coefficients of inequalities of the form - - - a0 + - a1x1+ ... + - an-1 xn-1 >=  - 0. - - - This inequality is input as the line - - - a0 a1... - an-1 - - - The coefficients can be entered as integers or rationals in the - format x/y. - - - - V-representation - - The integer  m is the number of vertices and rays,  and - the integer n is the dimension of the input +1. - Each vertex is given in the form - - - 1   v0   v - 1...   vn-1 -   - - - Each ray is given in the form - - - 0   r0   r - 1...   rn-1 - - - where r0   r - 1...   - rn-1is a point on the ray. - - - There must be at least one vertex in each file. For bounded - polyhedra there will be no rays entered. - The coefficients can be entered as - integers or rationals in the format x/y. - - - Note for cdd users: - lrs uses essentially the same file format as - cdd. Files prepared for - cdd should work with little or no - modification. Note that  the V-representation corresponds to - the "hull" option in cdd. Options - specific to cdd can be left in the input files - and will be ignored by lrs.  Note the - input files for lrs are read in free format, - after the line - m n rational, lrs - will look for exactly m*n rationals or integers separated by white - space (blank,  carriage return, tab etc.). - lrs will not "drop" extra columns of - input if n is less than the number of columns supplied. - - - - - Basic Options - - Almost all options are placed - after the end statement, - maintaining compatibility with cdd. Where this - is not the case, it will be mentioned explicitly. - - - - allbases - This option instructs lrs to list each vertex - (or facet) for each of its bases. - Output Duplication - . This option is often - combined with printcobasis. - - - bound  x - Use with H-representation  - for lrs or nash - Either the maximize or minimize option should be selected. x is an - integer or rational. For maximization - (resp. minimization) the reverse search tree is truncated  - whenever the current objective value is less (resp. more) than x. - - - cache n - lrs stores the latest  n dictionaries in - the reverse search tree. This speeds up the backtracking step, but - requires more memory. - - - debug  startingbasis endingbasis -
- Print out cryptic but detailed trace, dictionaries etc. starting at - #B=startingbasis and ending at #B=endingbasis. - debug 0 0 gives a complete trace. -
-
- - digits n - placed before the begin statement - n is the maximum number of decimal digits to be used. If this is - exceeded the program terminates with a message (it can  - usually be restarted).   The default is set to about 100 - digits. At the end of a run a message is given informing the user - of the maximum integer size encountered. This may be used to - optimize memory usage and speed on subsequent runs (if doing - estimation for example). - - - dualperturb - If lrs is executed with the maximize or minimize option, the - reverse search tree is rooted at an optimum vertex for this - function.If there are multiple - optimum vertices, the output will often not be complete. This - option gives a small perturbation to the objective to avoid - this. A warning message is given if - the starting dictionary is dual degenerate. - - - estimates k - Estimate the output size. Used in conjunction with maxdepth - see - Estimation. -   - - - geometric   - // H-representation  or voronoi option only // - With this option, each ray is printed together with the vertex with - which it is incident. For more information see Geometric Rays in - Hints and Comments . - - - incidence -
- This option automatically switches on - printcobasis , so see below for - a description of this option first. - Can be used with printcobasis n. - (Ver 4.2b) - - For input H-representation, indices of all input inequalities that - contain the vertex/ray that is about to be output. For a simplicial - face, there is no new output, since these indices are already - listed. Otherwise, the additional tight inequalities are listed - after a colon. - - - For input V-representation, indices of all input vertices/rays that - lie on the facet that is about to be output. - A starred index indicates that this vertex  is also in the cobasis, but is not - contained in the facet. It arises due to the lifting operation used - with input V-representations. - -
-
- - #incidence -
- The same as printcobasis. Included for compatibility with - cdd. -
-
- - linearity  k  i1i2 i ... ik -
- The input contains k linearities in rows - i1i2i ... ikof - the input file are equations. See - Linearities. -
-
- - maxdepth k - The search will be truncated at depth k. All bases with depth less - than or equal to k will be computed.  k is  a - non-negative integer, and this option is used for estimates - see - Estimation. - - Note: For H-representations, - rays at depth k will not be reported. For V-representations, facets - at depth k will not be reported. - - - maximize a0 a1... an-1  - // H-representation  only // - - - minimize  a0 a1... an-1 - // H-representation  only // - - If used with lrs the starting vertex maximizes (or minimizes) the - function  a0 + - a1x1+ ... + - an-1 - xn-1.The - dualperturb option may be needed to avoid dual - degeneracy.See Nash Equilibria - and  - Linear Programming - - - maxoutput n - - Limits number of output lines produced (either vertices+rays or - facets) to - n - - -mindepth k -  Backtracking will be terminated at depth k, for k a - non-negative integer. This can be used for running reverse search - on subtrees as separate processes, e.g. in a distributed computing - environment. - - - nonnegative - // This option must come before the begin statement// - - //H-representation only //   - Bug: Can only be used if the origin is a vertex of the polyhedron  -
- For problems where the input is an H-representation of the form - b+Ax>=0, x>=0 (ie. all variables non-negative, all - constraints inequalities) it is not necessary to give the - non-negative constraints explicitly if the nonnegative option is - used. This option cannot be used for V-representations, or with the - linearity option (in which case the linearities will be treated as - inequalities). This option may be used with redund , but the - implied nonnegativity constraints are not tested themselves for - redundancy. To test everything it is necessary to enter the - nonnegativity constraints explicitly in the input file. (In Ver - 4.1, the origin must be a vertex). -
-
- - - printcobasis  k;Modified - in lrs 4.0 - Every k'th cobasis is printed. If k is omitted, the cobasis is - printed for each vertex/ray/facet that is output. For a long run it - is useful to print the cobasis occasionally so that the program can - be restarted if necessary. - H-representation: If the - input is an H-representation the cobasis is a list the indices of - the inequalities from the input file that define the current vertex - or ray. See - option  incidence above for - more information. For rays, a - cobasis is also printed. In this case the cobasis is the cobasis of - the vertex from which the ray emanates. One of the indices is - starred, this indicates the inequality to be dropped from the - cobasis to define the ray. Alternatively, if the - allbasesoption is used, all - cobases will be printed out. - V-representation: If the input - is a V-representation, the cobasis is a list of the input vertices - /rays that define the current facet. See option - incidence above for more - information. To initiate - lrs from this facet all 4 indices must be - given in this order (omit the *). - - - - printslack New - in Ver - 4.2 ; // - Use with H-representation - // - lrs prints a list of the indices of the input inequalities that are - satisfied strictly for the current vertex, ie. corresponding slack - variable is positive. If nonnegative - is set, the list will also include indices n+i for each decision - variable xi which is - positive. - project - Used by lrsfourier - only. - - - restart  V# R# B# depth {facet #s or vertex/ray #s} - Modified in lrs4.0 - lrs can be restarted from any known cobasis. - The calculation will proceed to normal termination. All of the - information is contained in the output from a - printcobasis option.  The - order of the indices is very important, - enter them exactly as they appear in the output from the previously - aborted run. - - Note that if some cobasic index is followed by a - "*",  then the index only, without the - "*", is included in the restart line. - - Caution: When restarting, output - from the restart dictionary may be duplicated, and the final totals - of number of vertices/rays/facets may reflect this. - - - - startingcobasis i1i2i ... in-1 - This allows the user to specify a known cobasis for beginning the - reverse search. - i1i2i ... in-1 - is a list of the inequalities (for H-representation) or - vertices/rays (for V-representation) that define a cobasis. If it - is invalid, or this option is not specified, - lrs will find its own starting cobasis. -
- The reverse search tree is truncated(pruned)  whenever a new - vertex is encountered. Note: This does note necessarily produce the - set of all vertices adjacent to the optimum vertex in the - polyhedron, but just a subset of them. -
-
- - verbose -
- Print slightly more detailed information about the run. -
-
- - volume - // V-representation  only // - Compute volume - see section - Volume Computation. - - - voronoi - // V-representation  only - place immediately after end - statement // - Compute Voronoi diagram - see section - Voronoi Diagrams. - -
-
- - -
- diff --git a/debian/lrslib.links b/debian/lrslib.links index 03b461d..bf323ea 100644 --- a/debian/lrslib.links +++ b/debian/lrslib.links @@ -1,4 +1,2 @@ usr/bin/lrs usr/bin/redund -usr/share/man/man1/lrslib.1 usr/share/man/man1/lrs.1 -usr/share/man/man1/lrslib.1 usr/share/man/man1/redund.1 -usr/share/man/man1/nash.1 usr/share/man/man1/lrsnash.1 + diff --git a/debian/lrslib.manpages b/debian/lrslib.manpages index 5a8d407..42081c5 100644 --- a/debian/lrslib.manpages +++ b/debian/lrslib.manpages @@ -1,2 +1,4 @@ -lrslib.1 -nash.1 +debian/man/lrslib.5 +debian/man/lrsnash.1 +debian/man/lrs.1 + diff --git a/debian/mplrs.1.xml b/debian/mplrs.1.xml deleted file mode 100644 index e904f23..0000000 --- a/debian/mplrs.1.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - - MPLRS - 1 - May 2020 - mplrs 0.71 - - - mplrs - Convert between representations of convex polyhedra (parallel version). - - - - - mpirun - -np - num_proc - mplrs - - infile - - - outfile - - option - - - - - -DESCRIPTION - - A polyhedron can be described by a list of inequalities - (H-representation) or as by a list of its - vertices and extreme rays - (V-representation). lrs is a C program that - converts a H-representation of a polyhedron to its - V-representation, and vice versa.  These problems are known - respectively at the vertex enumeration and - convex hull problems. - - - - - - - USAGE - - The number of processors num_proc - specified to mpirun should be 4 or higher - - Unlike lrs 1, mplrs does - not support options after the end statement of the input file. - - - OPTIONS - - mplrs supports the following options. - - 2 the depth of the original tree search to populate the job queue L - 50 (*scale) a producer stops and returns all subtrees that are not leaves to L after generating  maxc nodes    - 0 a producer returns all subtrees that are not leaves at depth maxd. Zero if not used - 3 if job queue |L|<np*lmin then the maxd parameter is set for all producers - lmin if job queue |L|>np*lmax then then maxc is replaced by maxc*scale - 100used by lmax - store parallelization data in <file> for use by gnuplot, see below - /tmp/ store a temporary file for each process. Should be specified if /tmp not writeable. Using " -temp  ./ " will write temporary files to the current directory - store frequency data in <file> for use by gnuplot, see below - terminate mplrs if a file with name <stopfile> is created in the current directory - if mplrs is terminated by -stop or -time then it can be restarted using this <checkpoint file> and -restart - restart mplrs using previously created <checkpoint file>. If used with -checkp file names should be different! - terminate mplrs after <seconds> of elapsed time - don't output vertices/rays/facets, just count them - 500 controls maximum size of worker output buffers - smaller values increase "streaminess" of the output while larger values send larger blocks of output - exit after approximately <n> cobases have been computed (no guarantee about how many vertices/rays/facets computed) - perform redundancy check of input file (also see redund ) - - The parameters and - give interesting information about the degree of - parallelization. - - - - - - EXAMPLE - - Input file mp5.ine is run with 8 processors. The output file mp5.mplrs - is in the distribution. This produced 378 subtrees that were - enumerated in parallel using 6 producer cores,  1 core controlling the - run and 1 core collecting the output. - - - - mai20% mpirun -np 8 mplrs mp5.ine mp5.mplrs - *mplrs:lrslib v.6.0 2015.7.13(lrsgmp.h)8 processes - *Copyright (C) 1995,2015, David Avis   avis@cs.mcgill.ca - *Input taken from mp5.ine - *Output written to: mp5.mplrs - *Starting depth of 2 maxcobases=50 maxdepth=0 lmin=3 lmax=3 scale=100 - *Phase 1 time: 0 seconds. - *Total number of jobs: 378, L became empty 4 times - *Totals: vertices=32 rays=0 bases=9041 integer-vertices=16 - *Elapsed time: 1 seconds. - 2.285u 0.137s 0:01.86 129.5%    0+0k 0+9976io 36pf+0w - - - - - -SEE ALSO - - lrs1 - - - - diff --git a/debian/mplrs.manpages b/debian/mplrs.manpages index c5930ec..e626cba 100644 --- a/debian/mplrs.manpages +++ b/debian/mplrs.manpages @@ -1 +1 @@ -mplrs.1 +debian/man/mplrs.1 diff --git a/debian/nash.1.xml b/debian/nash.1.xml deleted file mode 100644 index 4b3902c..0000000 --- a/debian/nash.1.xml +++ /dev/null @@ -1,140 +0,0 @@ - - - - -nash -1 -July 2009 -lrslib 0.42b - - -nash -find nash equilibria of two person noncooperative games - - - - - setupnash input game1.ine game2.ine - - - setupnash2 input game1.ine game2.ine - - - - nash game1.ine game2.ine - - - - 2nash game1.ine game2.ine - - - - -DESCRIPTION - Nash Equilibria - - All Nash equilibria (NE) for a two person noncooperative game are - computed using two interleaved reverse search vertex enumeration - steps. The input for the problem are - two m by n matrices A,B of integers or rationals. The first player - is the row player, the second is the column - player. If row i and column j are - played, player 1 receives Ai,j and player 2 - receives Bi,j. - If you have two or more cpus - available run 2nash instead of nash as the order of the input games - is immaterial. It runs in parallel - with the games in each order. (If you use nash, the program usually - runs faster if m is <= n , see below.) The - easiest way to use the program nash or 2nash is to first run - setupnash or ( setupnash2 see below ) on a file - containing:  - - m n - matrix A - matrix B - - eg. the file game is for a game with m=3 n=2: - - 3 2 - - 0 6 - 2 5 - 3 3 - - 1 0 - 0 2 - 4 3 - - - % setupnash game game1 game2 - - produces - two H-representations, game1 and game2, one for each - player. To get the equilibria, - run - - % nash game1 game2 - -or - - % 2nash game1 game2 - - - - Each row beginning 1 is a strategy - for the row player yielding a NE with each row beginning 2 listed - immediately above it.The payoff for - player 2 is the last number on the line beginning 1, and vice - versa. Eg: first two lines of - output: player 1 uses row probabilities 2/3 2/3 0 resulting in a - payoff of 2/3 to player 2.Player 2 - uses column probabilities 1/3 2/3 yielding a payoff of 4 to player - 1. - If both matrices are nonnegative and - have no zero columns, you may instead use - setupnash2: - - % setupnash2 game game1 game2 - -Now - the polyhedra produced are polytopes. - The - output  of nash in this case is a list of unscaled probability - vectors x and y. To - normalize, divide each vector by v = 1^T x and u=1^T - y.u and v are the payoffs to players - 1 and 2 - respectively. In - this case, lower bounds on the payoff functions to either or both - players may be included. To give a - lower bound of r on the payoff for player 1 add the options to file - game2  (yes that is correct!)To - give a lower bound of r on the payoff for player 2 add the options - to file game1 - - minimize - 0 1 1 ... 1    (n entries to begiven) - bound   1/r;   ( note: reciprocal of r) - - If you do not wish to use the 2-cpu program 2nash, please read the - following. If - m is greater than n then nash usually runs faster by transposing - the players. This is achieved by - running: - - % nash game2 game1 - -If you wish to construct the game1 and game2 files by hand, see the -lrslib user manual - - -SEE ALSO - -For information on H-representation file formats, see the man page for lrslib or the lrslib user manual - - - - - diff --git a/debian/rules b/debian/rules index 9c6d952..784e16f 100755 --- a/debian/rules +++ b/debian/rules @@ -15,7 +15,7 @@ else BUILDARGS= endif -override_dh_auto_build: lrslib.1 nash.1 mplrs.1 +override_dh_auto_build: make prefix=/usr DESTDIR=$(CURDIR)/debian/tmp CFLAGS="$(CFLAGS)" $(BUILDARGS) all-shared mplrs override_dh_auto_install: @@ -23,6 +23,3 @@ override_dh_auto_install: %: dh $@ - -%.1: debian/%.1.xml - $(XP) --stringparam man.base.url.for.relative.links $(DOCBASEURL) -o $@ $(DB2MAN) $< -- cgit v1.2.3 From 413cabb2719b11917b39df091c298dc50a5be0aa Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 21 Jun 2020 08:50:40 -0300 Subject: changelog for 0.71-4 --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index d2710b0..7f75942 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +lrslib (0.71-4) experimental; urgency=medium + + * Updated man pages from David Avis. + + -- David Bremner Sun, 21 Jun 2020 08:48:17 -0300 + lrslib (0.71-3) experimental; urgency=medium * Add manpage for mplrs -- cgit v1.2.3 From 72c18cade4ff7cacbf725819f5f56610d120b413 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 21 Jun 2020 09:03:33 -0300 Subject: revert to section 1 for lrslib manpage It's not as simple as renaming a file, so let's see what David A thinks about the sections. --- debian/lrslib.manpages | 2 +- debian/man/lrslib.1 | 100 +++++++++++++++++++++++++++++++++++++++++++++++++ debian/man/lrslib.5 | 100 ------------------------------------------------- 3 files changed, 101 insertions(+), 101 deletions(-) create mode 100644 debian/man/lrslib.1 delete mode 100644 debian/man/lrslib.5 diff --git a/debian/lrslib.manpages b/debian/lrslib.manpages index 42081c5..618b3ba 100644 --- a/debian/lrslib.manpages +++ b/debian/lrslib.manpages @@ -1,4 +1,4 @@ -debian/man/lrslib.5 +debian/man/lrslib.1 debian/man/lrsnash.1 debian/man/lrs.1 diff --git a/debian/man/lrslib.1 b/debian/man/lrslib.1 new file mode 100644 index 0000000..f8a7e77 --- /dev/null +++ b/debian/man/lrslib.1 @@ -0,0 +1,100 @@ +'\" t +.\" Title: LRSLIB +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 06/10/2020 +.\" Manual: lrslib 0.42b +.\" Source: July 2009(rev. June 2020) +.\" Language: English +.\" +.TH "LRSLIB" "1" "2020.06.10" "July 2009" "lrslib 7\&.1" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +lrslib: Convert between representations of convex polyhedra, remove redundant inequalities, +convex hull computation, solve linear programs in exact precision, +compute Nash-equibria in 2-person games\&. +.SH "SYNOPSIS" +.HP \w'\fBlrs\fR\ [input-file] [output-file]\ 'u +\fBlrs\fR\ \fI[input-file] [output-file]\fR +.HP \w'\fBredund\fR\ [input-file] [output-file]\ 'u +\fBredund\fR\ \fI[input-file] [output-file]\fR +.HP \w'\fBmpirun\fR -np \fInum_proc\fR \fBmplrs\fR\ \fIinput-file [output-file] [options...]\fR\ 'u +\fBmpirun\fR -np \fInum-proc\fR \fBmplrs\fR\ \fIinput-file [output-file] [options]\fR +.HP \w'\fBlrsnash\fR\ [input-file] \ 'u +\fBlrsnash\fR\ \fI[options] [input-file] \fR +.HP \w'\fBhvref/xref\fR\ [input-file] \ 'u +\fBhvref/xvref\fR\ \fI[input-file]\fR +.SH "DESCRIPTION" +.PP +A polyhedron can be described by a list of inequalities (\fIH\-representation)\fR +or as by a list of its vertices and extreme rays (\fIV\-representation)\fR\&. +\fIlrslib\fR is a C library containing programs to manipulate these representations. +All computations are done in exact arithmetic. +.PP +\fIlrs\fR +converts an H\-representation of a polyhedron to its V\-representation and vice versa, +known respectively as the +\fIvertex enumeration\fR +and +\fIfacet enumeration\fR problems\& (see Example (1) below). +lrs can also be used to solve a linear program, remove linearities from a system, +and extract a subset of columns. +.PP +\fIredund\fR +removes redundant inequalities in an input H-representation and outputs the remaining inequalities\&. +For a V-representation input it +outputs all extreme points and extreme rays. Both outputs can be piped directly into \fIlrs\fR. +\fIredund\fR is a link to \fIlrs\fR which performs these functions via +the \fBredund\fR and \fBredund_list\fR options. +.PP +\fImplrs\fR +is Skip Jordan's parallel wrapper for \fIlrs/redund\fR. +.PP +\fIlrsnash\fR +is Terje Lensberg's application of \fIlrs\fR for finding Nash-equilibria +in 2-person games\&. +.PP +\fIhvref/xvref\fR\ produce a cross reference list between H- and V-representations. +.SH "ARITHMETIC" +From version 7.1 \fIlrs/redund/mplrs\fR use hybrid arithmetic with overflow checking, +starting in 64bit integers, moving to 128bit (if available) and then GMP. +Overflow checking is conservative to improve performance: +eg. with 64 bit arithmetic, a*b triggers overflow if either a or b is at least 2^31, +and a+b triggers an overflow if either a or b is at least 2^62. +Typically problems that can be solved in 64bits run 3-4 times faster than with GMP +and inputs solvable in 128bits run twice as fast as GMP. +.PP +Various arithmetic versions are available +and can be built from the makefile: + +.SH "NOTES" +.PP +User's guide for lrslib +.RS 4 +\%http://cgm.cs.mcgill.ca/~avis/C/lrslib/USERGUIDE.html +.RE +.SH AUTHOR +David Avis +.SH "SEE ALSO" +.BR lrs (1), +.BR mplrs (1), +.BR lrsnash (1), + diff --git a/debian/man/lrslib.5 b/debian/man/lrslib.5 deleted file mode 100644 index f8a7e77..0000000 --- a/debian/man/lrslib.5 +++ /dev/null @@ -1,100 +0,0 @@ -'\" t -.\" Title: LRSLIB -.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] -.\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 06/10/2020 -.\" Manual: lrslib 0.42b -.\" Source: July 2009(rev. June 2020) -.\" Language: English -.\" -.TH "LRSLIB" "1" "2020.06.10" "July 2009" "lrslib 7\&.1" -.\" ----------------------------------------------------------------- -.\" * Define some portability stuff -.\" ----------------------------------------------------------------- -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.\" http://bugs.debian.org/507673 -.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html -.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -.ie \n(.g .ds Aq \(aq -.el .ds Aq ' -.\" ----------------------------------------------------------------- -.\" * set default formatting -.\" ----------------------------------------------------------------- -.\" disable hyphenation -.nh -.\" disable justification (adjust text to left margin only) -.ad l -.\" ----------------------------------------------------------------- -.\" * MAIN CONTENT STARTS HERE * -.\" ----------------------------------------------------------------- -.SH "NAME" -lrslib: Convert between representations of convex polyhedra, remove redundant inequalities, -convex hull computation, solve linear programs in exact precision, -compute Nash-equibria in 2-person games\&. -.SH "SYNOPSIS" -.HP \w'\fBlrs\fR\ [input-file] [output-file]\ 'u -\fBlrs\fR\ \fI[input-file] [output-file]\fR -.HP \w'\fBredund\fR\ [input-file] [output-file]\ 'u -\fBredund\fR\ \fI[input-file] [output-file]\fR -.HP \w'\fBmpirun\fR -np \fInum_proc\fR \fBmplrs\fR\ \fIinput-file [output-file] [options...]\fR\ 'u -\fBmpirun\fR -np \fInum-proc\fR \fBmplrs\fR\ \fIinput-file [output-file] [options]\fR -.HP \w'\fBlrsnash\fR\ [input-file] \ 'u -\fBlrsnash\fR\ \fI[options] [input-file] \fR -.HP \w'\fBhvref/xref\fR\ [input-file] \ 'u -\fBhvref/xvref\fR\ \fI[input-file]\fR -.SH "DESCRIPTION" -.PP -A polyhedron can be described by a list of inequalities (\fIH\-representation)\fR -or as by a list of its vertices and extreme rays (\fIV\-representation)\fR\&. -\fIlrslib\fR is a C library containing programs to manipulate these representations. -All computations are done in exact arithmetic. -.PP -\fIlrs\fR -converts an H\-representation of a polyhedron to its V\-representation and vice versa, -known respectively as the -\fIvertex enumeration\fR -and -\fIfacet enumeration\fR problems\& (see Example (1) below). -lrs can also be used to solve a linear program, remove linearities from a system, -and extract a subset of columns. -.PP -\fIredund\fR -removes redundant inequalities in an input H-representation and outputs the remaining inequalities\&. -For a V-representation input it -outputs all extreme points and extreme rays. Both outputs can be piped directly into \fIlrs\fR. -\fIredund\fR is a link to \fIlrs\fR which performs these functions via -the \fBredund\fR and \fBredund_list\fR options. -.PP -\fImplrs\fR -is Skip Jordan's parallel wrapper for \fIlrs/redund\fR. -.PP -\fIlrsnash\fR -is Terje Lensberg's application of \fIlrs\fR for finding Nash-equilibria -in 2-person games\&. -.PP -\fIhvref/xvref\fR\ produce a cross reference list between H- and V-representations. -.SH "ARITHMETIC" -From version 7.1 \fIlrs/redund/mplrs\fR use hybrid arithmetic with overflow checking, -starting in 64bit integers, moving to 128bit (if available) and then GMP. -Overflow checking is conservative to improve performance: -eg. with 64 bit arithmetic, a*b triggers overflow if either a or b is at least 2^31, -and a+b triggers an overflow if either a or b is at least 2^62. -Typically problems that can be solved in 64bits run 3-4 times faster than with GMP -and inputs solvable in 128bits run twice as fast as GMP. -.PP -Various arithmetic versions are available -and can be built from the makefile: - -.SH "NOTES" -.PP -User's guide for lrslib -.RS 4 -\%http://cgm.cs.mcgill.ca/~avis/C/lrslib/USERGUIDE.html -.RE -.SH AUTHOR -David Avis -.SH "SEE ALSO" -.BR lrs (1), -.BR mplrs (1), -.BR lrsnash (1), - -- cgit v1.2.3