[arch-commits] Commit in coxeter (5 files)

Antonio Rojas arojas at archlinux.org
Sun Apr 1 11:10:57 UTC 2018


    Date: Sunday, April 1, 2018 @ 11:10:56
  Author: arojas
Revision: 313723

archrelease: copy trunk to community-x86_64

Added:
  coxeter/repos/
  coxeter/repos/community-x86_64/
  coxeter/repos/community-x86_64/PKGBUILD
    (from rev 313722, coxeter/trunk/PKGBUILD)
  coxeter/repos/community-x86_64/coxeter-makefile.patch
    (from rev 313722, coxeter/trunk/coxeter-makefile.patch)
  coxeter/repos/community-x86_64/coxeter-sage.patch
    (from rev 313722, coxeter/trunk/coxeter-sage.patch)

------------------------+
 PKGBUILD               |   37 +++++++++++++++++
 coxeter-makefile.patch |   99 +++++++++++++++++++++++++++++++++++++++++++++++
 coxeter-sage.patch     |   99 +++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 235 insertions(+)

Copied: coxeter/repos/community-x86_64/PKGBUILD (from rev 313722, coxeter/trunk/PKGBUILD)
===================================================================
--- repos/community-x86_64/PKGBUILD	                        (rev 0)
+++ repos/community-x86_64/PKGBUILD	2018-04-01 11:10:56 UTC (rev 313723)
@@ -0,0 +1,37 @@
+# Maintainer: Antonio Rojas <arojas at archlinux.org>
+
+pkgname=coxeter
+pkgver=git.20180226
+pkgrel=1
+_commit=7b5a1f0039511326aeb616afb132a5065886b9d8
+pkgdesc="A library for the study of combinatorial aspects of Coxeter group theory"
+arch=(x86_64)
+url="https://github.com/tscrim/coxeter"
+license=(GPL3)
+depends=(gcc-libs)
+makedepends=(git)
+conflicts=(coxeter3)
+source=("git+https://github.com/tscrim/coxeter#commit=$_commit" coxeter-sage.patch coxeter-makefile.patch)
+sha256sums=('SKIP'
+            '668235f7858c4542d2856d6b36f2f1d18f14ffea685a96637992a14613a71688'
+            '237403a2f668fea18aebee4d1bde9697cd44b5e3836f34452cfc9f401932465f')
+
+prepare() {
+  cd coxeter
+# Add Sage patches
+  patch -p1 -i ../coxeter-sage.patch
+  patch -p1 -i ../coxeter-makefile.patch
+}  
+
+build() {
+  cd coxeter
+
+  make all
+}
+
+package() {
+  cd coxeter
+  mkdir -p "$pkgdir"/usr/{lib,bin}
+  make SAGE_LOCAL="$pkgdir/usr" install
+}
+

Copied: coxeter/repos/community-x86_64/coxeter-makefile.patch (from rev 313722, coxeter/trunk/coxeter-makefile.patch)
===================================================================
--- repos/community-x86_64/coxeter-makefile.patch	                        (rev 0)
+++ repos/community-x86_64/coxeter-makefile.patch	2018-04-01 11:10:56 UTC (rev 313723)
@@ -0,0 +1,99 @@
+diff -druN src/makefile src/makefile
+--- src/makefile	2013-02-14 18:26:28.000000000 +0100
++++ src/makefile	2013-02-15 14:34:54.082756900 +0100
+@@ -12,6 +12,7 @@
+ gflags = -c $(includedirs) -g
+ 
+ cflags = $(gflags) # the default setting
++cflags = -c $(includedirs) -O2 -fPIC -g
+ 
+ ifdef optimize
+ 	NDEBUG = true
+@@ -22,18 +23,74 @@
+ 	cflags = $(pflags)
+ endif
+ 
+-cc = g++
++EXENAME = coxeter
++LIBNAME = coxeter3
++ifeq ($(UNAME),Darwin)
++	EXEEXT = 
++	LIBPREFIX = lib
++	LIBEXT = .dylib
++	LIBDIR = lib
++	LINKFLAGS = -dynamiclib -Wl,-headerpad_max_install_names,-undefined,dynamic_lookup,-compatibility_version,3.0,-current_version,3.0,-install_name,$(SAGE_LOCAL)/lib/$(LIBPREFIX)$(LIBNAME)$(LIBEXT)
++	LINKLIBS = 
++else
++ifeq ($(UNAME),CYGWIN)
++	EXEEXT = .exe
++	LIBPREFIX = cyg
++	LIBEXT = .dll
++	LIBDIR = bin
++	IMPLIB = lib$(LIBNAME).dll.a
++	LINKFLAGS = -shared -Wl,--out-implib=$(IMPLIB) -Wl,--export-all-symbols
++	LINKLIBS = -lc
++else
++	EXEEXT = 
++	LIBPREFIX = lib
++	LIBEXT = .so
++	LIBDIR = lib
++	LINKFLAGS = -shared -Wl,-soname,libcoxeter3.so
++	LINKLIBS = -lc
++endif
++endif
++LIBRARY = $(LIBPREFIX)$(LIBNAME)$(LIBEXT)
+ 
+-all: coxeter #clean
++all: coxeter executable
+ 
+ coxeter: $(objects)
+-	$(cc) -o coxeter $(objects)
++	$(CXX) $(LINKFLAGS) -o $(LIBRARY) $(objects) $(LINKLIBS)
++
++executable: $(objects)
++	$(CXX) -o $(EXENAME)$(EXEEXT) $(objects)
++
++DATADIR="$$SAGE_LOCAL/share/coxeter/"
++INCLUDEDIR="$$SAGE_LOCAL/include/coxeter/"
++LIBRARYDIR="$$SAGE_LOCAL/$(LIBDIR)"
++
++install: coxeter executable
++	cp $(EXENAME)$(EXEEXT) "$$SAGE_LOCAL/bin/"
++	cp $(LIBRARY) $(LIBRARYDIR)
++	if [ $(UNAME) = "CYGWIN" ]; then                 \
++	    cp $(IMPLIB) "$$SAGE_LOCAL/lib/";  \
++	fi
++
++	mkdir -p $(DATADIR)
++	cp -r coxeter_matrices headers messages $(DATADIR)
++	mkdir -p $(INCLUDEDIR)
++	cp -r *.h *.hpp $(INCLUDEDIR)
++
++check: coxeter executable
++	$(EXENAME)$(EXEEXT) < test.input > test.output
++
++	if ! diff test.output.expected test.output > /dev/null; then \
++	   echo >&2 "Error testing coxeter on test.input:"; \
++	   diff test.output.expected test.output; \
++	   exit 1; \
++	fi
++	rm -f test.output
+ 
+ clean:
+ 	rm -f $(objects)
+ 
+ %.o:%.cpp
+-	$(cc) $(cflags) $*.cpp
++	$(CXX) $(cflags) $*.cpp
+ 
+ # dependencies --- these were generated automatically by make depend on my
+ # system; they are explicitly copied for portability. Only local dependencies
+@@ -43,7 +100,7 @@
+ # contents of tmp in lieu of the dependencies listed here.
+ 
+ %.d:%.cpp
+-	@$(cc) -MM $*.cpp
++	@$(CXX) -MM $*.cpp
+ depend: $(dependencies)
+ 
+ affine.o: affine.cpp affine.h globals.h coxgroup.h coxtypes.h io.h list.h \

Copied: coxeter/repos/community-x86_64/coxeter-sage.patch (from rev 313722, coxeter/trunk/coxeter-sage.patch)
===================================================================
--- repos/community-x86_64/coxeter-sage.patch	                        (rev 0)
+++ repos/community-x86_64/coxeter-sage.patch	2018-04-01 11:10:56 UTC (rev 313723)
@@ -0,0 +1,99 @@
+See https://github.com/tscrim/coxeter/pull/14
+
+commit 7b46d5ea88cfdcaa4af549f61c58c330fb513948
+Author: Jeroen Demeyer <jdemeyer at cage.ugent.be>
+Date:   Mon Feb 26 14:43:08 2018 +0100
+
+    Add Sage interface
+
+diff --git a/sage.cpp b/sage.cpp
+new file mode 100644
+index 0000000..74f86be
+--- /dev/null
++++ b/sage.cpp
+@@ -0,0 +1,56 @@
++/*
++  Coxeter version 3.0 Copyright (C) 2009 Mike Hansen
++  See file main.cpp for full copyright notice
++*/
++
++#include "sage.h"
++
++namespace sage {
++
++  void interval(List<CoxWord>& list, CoxGroup& W, const CoxWord& g, const CoxWord& h)
++
++  /*
++     Returns a list of the elements in the Bruhat interval between g and h.
++     Note that this assumes that g and h are in order.
++   */
++  {
++    if (not W.inOrder(g,h)) {
++      return;
++    }
++
++    W.extendContext(h);
++
++    CoxNbr x = W.contextNumber(g);
++    CoxNbr y = W.contextNumber(h);
++
++    BitMap b(W.contextSize());
++    W.extractClosure(b,y);
++
++    BitMap::ReverseIterator b_rend = b.rend();
++    List<CoxNbr> res(0);
++
++    for (BitMap::ReverseIterator i = b.rbegin(); i != b_rend; ++i)
++      if (not W.inOrder(x,*i)) {
++        BitMap bi(W.contextSize());
++        W.extractClosure(bi,*i);
++        CoxNbr z = *i; // andnot will invalidate iterator
++        b.andnot(bi);
++        b.setBit(z);   // otherwise the decrement will not be correct
++      } else
++        res.append(*i);
++
++    schubert::NFCompare nfc(W.schubert(),W.ordering());
++    Permutation a(res.size());
++    sortI(res,nfc,a);
++
++    list.setSize(0);
++    for (size_t j = 0; j < res.size(); ++j) {
++      CoxWord w(0);
++      W.schubert().append(w, res[a[j]]);
++      list.append(w);
++    }
++
++    return;
++  }
++
++}
+diff --git a/sage.h b/sage.h
+new file mode 100644
+index 0000000..5b3df8a
+--- /dev/null
++++ b/sage.h
+@@ -0,0 +1,23 @@
++/*
++  Coxeter version 3.0 Copyright (C) 2009 Mike Hansen
++  See file main.cpp for full copyright notice
++*/
++
++#ifndef SAGE_H /* guard against multiple inclusions */
++#define SAGE_H
++
++#include "globals.h"
++#include "coxgroup.h"
++#include "coxtypes.h"
++#include "schubert.h"
++#include "list.h"
++
++namespace sage {
++  using namespace coxeter;
++  using namespace coxtypes;
++  using namespace list;
++
++  void interval(List<CoxWord>& result, CoxGroup& W, const CoxWord& g, const CoxWord& h);
++}
++
++#endif



More information about the arch-commits mailing list