diff --git a/.gitignore b/.gitignore
index e5a731db..6d927335 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,7 +24,6 @@ rdf2hdt
replaceHeader
libhdt/examples/*
libhdt/.libs
-libcds/.libs
# Autotools
m4/
@@ -66,7 +65,6 @@ stamp-h1
*.a
**/examples/*
**/tests/*
-libcds-v1.0.12/includes
!**/examples/*.cpp
!**/tests/*.cpp
*.o
diff --git a/.travis.yml b/.travis.yml
index f92c6126..5f63c62a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -47,7 +47,6 @@ script:
- ./configure --prefix=$LOCAL CXX=$HDT_CPP
- make -j2
# Make and run selected tests. Most tests in HDT are failing
- - make check -j2 -C libcds || ( cat libcds/tests/test-suite.log && exit -1)
- make check -j2 -C libhdt || ( cat libhdt/tests/test-suite.log && exit -1)
# Install
- make install
@@ -61,10 +60,7 @@ script:
- test -f $LOCAL/bin/replaceHeader
- test -f $LOCAL/bin/searchHeader
- test -f $LOCAL/lib/libhdt.la
- - test -f $LOCAL/lib/libcds.la
- "if [ \"$TRAVIS_OS_NAME\" = \"linux\" ]; then test -L $LOCAL/lib/libhdt.so; fi"
- - "if [ \"$TRAVIS_OS_NAME\" = \"linux\" ]; then test -L $LOCAL/lib/libcds.so; fi"
- "if [ \"$TRAVIS_OS_NAME\" = \"osx\" ]; then test -L $LOCAL/lib/libhdt.dylib; fi"
- - "if [ \"$TRAVIS_OS_NAME\" = \"osx\" ]; then test -L $LOCAL/lib/libcds.dylib; fi"
- test -f $LOCAL/lib/pkgconfig/hdt.pc
- test -f $LOCAL/lib/pkgconfig/cds.pc
diff --git a/Dockerfile b/Dockerfile
index 1078c138..51c1d282 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -33,7 +33,6 @@ RUN apt update; \
# Copy in libraries and binaries from build stage.
COPY --from=build \
- /usr/local/lib/libcds* \
/usr/local/lib/libhdt* \
/usr/local/lib/
COPY --from=build \
diff --git a/Makefile.am b/Makefile.am
index 11d2e1f1..c6d6a18c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
AUTOMAKE_OPTIONS = subdir-objects
-SUBDIRS = libcds libhdt
+SUBDIRS = libhdt
ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = m4/gnulib-cache.m4
diff --git a/configure.ac b/configure.ac
index 0b71ab1e..13d8f8b3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,17 +28,9 @@ AC_MSG_CHECKING(whether to enable optimizations)
AC_ARG_ENABLE([optimization],
AS_HELP_STRING([--enable-optimization],[Build library with optimization parameters [default=yes]]),
[AC_MSG_RESULT(${enableval})],
- [CXXFLAGS="${CXXFLAGS} -g -O2 -std=c++11"]
+ [CXXFLAGS="${CXXFLAGS} -g -O2 -std=c++14"]
[AC_MSG_RESULT(yes)])
-AC_MSG_CHECKING(whether to build libcds)
-AC_ARG_ENABLE([libcds],
- AS_HELP_STRING([--enable-libcds],[Build libcds [default=yes]]),
- [AC_MSG_RESULT(${enableval})],
- [enable_cds=yes]
- [AC_MSG_RESULT(yes)])
-AM_CONDITIONAL([WANTS_LIBCDS], [test x$enable_cds != xno])
-
# Dependencies
AC_ARG_WITH([zlib],
AS_HELP_STRING([--with-zlib], [Use z library [default=yes] ]),
@@ -94,8 +86,5 @@ AC_CONFIG_FILES([
libhdt/Makefile
libhdt/tools/Makefile
libhdt/tests/Makefile
- libcds/cds.pc
- libcds/Makefile
- libcds/tests/Makefile
])
AC_OUTPUT
diff --git a/hdt-it/.cproject b/hdt-it/.cproject
deleted file mode 100644
index a58e5c8c..00000000
--- a/hdt-it/.cproject
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/hdt-it/.gitignore b/hdt-it/.gitignore
deleted file mode 100644
index 3f4ae9cf..00000000
--- a/hdt-it/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-Makefile
-Makefile.Debug
-Makefile.Release
-unix/
-win32/
-macx/
-hdt-it.pro.user*
-object_script.*
diff --git a/hdt-it/.project b/hdt-it/.project
deleted file mode 100644
index 46c9a264..00000000
--- a/hdt-it/.project
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
- hdt-it
-
-
-
-
-
- org.eclipse.cdt.managedbuilder.core.genmakebuilder
- clean,full,incremental,
-
-
-
-
- org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
- full,incremental,
-
-
-
-
-
- org.eclipse.cdt.core.cnature
- org.eclipse.cdt.core.ccnature
- org.eclipse.cdt.managedbuilder.core.managedBuildNature
- org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
-
-
diff --git a/hdt-it/Camera.cpp b/hdt-it/Camera.cpp
deleted file mode 100644
index 61c3b23c..00000000
--- a/hdt-it/Camera.cpp
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * Camera.cpp
- *
- * Created on: 04/03/2011
- * Author: mck
- */
-
-#include
-
-#include "Camera.h"
-
-Camera::Camera() :
- rotationAnimation(this, "camRotation")
-{
- widgetWidth = 800;
- widgetHeight = 600;
- toDefaultValues();
-
- connect(this, SIGNAL(rotationChanged()), this, SIGNAL(cameraChanged()));
- connect(this, SIGNAL(zoomChanged()), this, SIGNAL(cameraChanged()));
- connect(this, SIGNAL(offsetChanged()), this, SIGNAL(cameraChanged()));
-}
-
-Camera::~Camera()
-{
-}
-
-qreal Camera::getZoom()
-{
- return zoom;
-}
-
-void Camera::setZoom(double newz)
-{
- zoom = newz;
- zoom = zoom < 0.5 ? 0.5 : zoom;
- emit zoomChanged();
-}
-
-void Camera::increaseZoom(int dif)
-{
- zoom += 0.001*dif*zoom;
- zoom = zoom < 0.5 ? 0.5 : zoom;
- emit zoomChanged();
-}
-
-void Camera::decreaseZoom(int dif){
- zoom -= 0.001*dif*zoom;
- zoom = zoom < 0.5 ? 0.5 : zoom;
- emit zoomChanged();
-}
-
-void Camera::multiplyZoom(int mult)
-{
- zoom *= mult;
- zoom = zoom < 0.5 ? 0.5 : zoom;
- emit zoomChanged();
-}
-
-
-void Camera::setOffset(double x,double y){
- offx = x;
- offy = y;
- if(offx<-1.0) offx=-1.0;
- if(offx>0.0) offx=0.0;
- if(offy<-1.0) offy=-1.0;
- if(offy>0.0) offy=0.0;
- emit offsetChanged();
-}
-
-void Camera::setOffset(QPointF &rect){
- this->setOffset(rect.x(), rect.y());
-}
-
-QPointF Camera::getOffset() {
- return QPointF(offx, offy);
-}
-
-void Camera::moveOffset(double x,double y){
- setOffset(offx + x / (zoom*widgetWidth), offy - y / (zoom*widgetHeight));
-}
-
-void Camera::setRotation(double x,double y){
- rotx = x;
- roty = y;
- emit rotationChanged();
-}
-
-void Camera::setRotation(QPointF &rect){
- this->setRotation(rect.x(), rect.y());
-}
-
-void Camera::animateRotation(double x, double y) {
- rotationAnimation.stop();
- rotationAnimation.setDuration(500);
- rotationAnimation.setEasingCurve(QEasingCurve::InOutQuad);
- rotationAnimation.setStartValue(QPointF(rotx, roty));
- rotationAnimation.setEndValue(QPointF(x,y));
- rotationAnimation.start();
-}
-
-QPointF Camera::getRotation() {
- return QPointF(rotx, roty);
-}
-
-void Camera::rotateCamera(double x,double y){
- rotationAnimation.stop();
- rotx += 0.5 * x;
- roty += 0.5 * y;
- emit rotationChanged();
-}
-
-void Camera::toDefaultValues(){
- rotx = roty = 0;
- zoom = 1;
- offx = -0.5;
- offy = -0.5;
- emit rotationChanged();
- emit zoomChanged();
- emit offsetChanged();
-}
-
-void Camera::setScreenSize(int w, int h){
- widgetWidth = w;
- widgetHeight = h;
-
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
-
- GLdouble aspect, left, right, bottom, top;
-
- aspect = (GLdouble) widgetWidth / (GLdouble) widgetHeight;
-
- if ( aspect < 1.0 ) {
- left = -0.75;
- right = 0.75;
- bottom = -1.0 * ( 1.0 / aspect );
- top = 1.0 * ( 1.0 / aspect );
- } else {
- left = -0.75 * aspect;
- right = 0.75 * aspect;
- bottom = -1.0;
- top = 1.0;
- }
-
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- glOrtho( left*widgetWidth, right*widgetWidth, bottom*widgetHeight, top*widgetHeight, -10, 10 );
- glMatrixMode( GL_MODELVIEW );
-}
-
-void Camera::applyTransform(){
- glScaled(1.1*zoom, 1.1*zoom, 1.0);
-
- glScalef(widgetWidth, widgetHeight, 1.0);
-
- glTranslatef(offx, offy, 1);
-
- glTranslatef(0.5, 0.5, 0.5);
- glRotatef(roty, 1, 0, 0);
- glRotatef(rotx, 0, 1, 0);
- glTranslatef(-0.5, -0.5, -0.5);
-}
-
-void Camera::setFrontView()
-{
- animateRotation(0, 0);
-}
-
-void Camera::setLeftView()
-{
- animateRotation(90,0);
-}
-
-void Camera::setTopView()
-{
- animateRotation(0,90);
-}
-
-void Camera::set3DView()
-{
- animateRotation(-45,45);
-}
-
-bool Camera::isFrontView()
-{
- return rotx==0 && roty==0;
-}
-
-bool Camera::isLeftView()
-{
- return rotx==90 && roty==0;
-}
-
-bool Camera::isTopView()
-{
- return rotx==0 && roty==90;
-}
-
-bool Camera::is3DView()
-{
- return rotx==-45 && roty==45;
-}
-
-void Camera::toDefaultValuesAnimated()
-{
- QPropertyAnimation *rotAnim = new QPropertyAnimation(this, "camRotation");
- rotAnim->setEasingCurve(QEasingCurve::InOutQuad);
- rotAnim->setDuration(400);
- rotAnim->setStartValue(QPointF(rotx, roty));
- rotAnim->setEndValue(QPointF(0,0));
-
- QPropertyAnimation *zoomAnim = new QPropertyAnimation(this, "camZoom");
- zoomAnim->setEasingCurve(QEasingCurve::InOutQuad);
- zoomAnim->setDuration(400);
- zoomAnim->setStartValue(zoom);
- zoomAnim->setEndValue(1);
-
- QPropertyAnimation *offAnim = new QPropertyAnimation(this, "camOffset");
- offAnim->setEasingCurve(QEasingCurve::InOutQuad);
- offAnim->setDuration(400);
- offAnim->setStartValue(QPointF(offx, offy));
- offAnim->setEndValue(QPointF(-0.5, -0.5));
-
- QSequentialAnimationGroup *animationGroup = new QSequentialAnimationGroup();
-
- if(offAnim->startValue()!=offAnim->endValue())
- animationGroup->addAnimation(offAnim);
- else
- delete offAnim;
-
- if(zoomAnim->startValue()!=zoomAnim->endValue())
- animationGroup->addAnimation(zoomAnim);
- else
- delete zoomAnim;
-
- if(rotAnim->startValue()!=rotAnim->endValue())
- animationGroup->addAnimation(rotAnim);
- else
- delete rotAnim;
-
- animationGroup->start(QAbstractAnimation::DeleteWhenStopped);
-}
-
-void Camera::stopAnimations()
-{
- rotationAnimation.stop();
-}
-
-
diff --git a/hdt-it/Camera.h b/hdt-it/Camera.h
deleted file mode 100644
index aa8bd217..00000000
--- a/hdt-it/Camera.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Camera.h
- *
- * Created on: 04/03/2011
- * Author: mck
- */
-
-#ifndef CAMERA_H_
-#define CAMERA_H_
-
-#include
-#include
-
-#include
-
-class Camera : public QObject {
- Q_OBJECT
- Q_PROPERTY(QPointF camRotation READ getRotation WRITE setRotation NOTIFY rotationChanged)
- Q_PROPERTY(QPointF camOffset READ getOffset WRITE setOffset NOTIFY offsetChanged)
- Q_PROPERTY(qreal camZoom READ getZoom WRITE setZoom NOTIFY zoomChanged)
-
-private:
- double zoom;
- double rotx, roty;
- double offx, offy;
- int widgetWidth, widgetHeight;
- QPropertyAnimation rotationAnimation;
-
- void stopAnimations();
-public:
- explicit Camera();
- ~Camera();
-
-public:
- qreal getZoom();
- void setZoom(double newz);
- void increaseZoom(int dif);
- void decreaseZoom(int dif);
- void multiplyZoom(int mult);
-
- void setOffset(double x,double y);
- void setOffset(QPointF &rect);
- QPointF getOffset();
-
- void moveOffset(double x,double y);
-
- QPointF getRotation();
- void setRotation(QPointF &rect);
- void setRotation(double x,double y);
- void animateRotation(double x,double y);
- void rotateCamera(double x,double y);
-
- void toDefaultValues();
- void toDefaultValuesAnimated();
-
- void setScreenSize(int width, int height);
- void applyTransform();
-
- bool isFrontView();
- bool isLeftView();
- bool isTopView();
- bool is3DView();
-
-public slots:
- void setFrontView();
- void setLeftView();
- void setTopView();
- void set3DView();
-
-signals:
- void rotationChanged();
- void zoomChanged();
- void offsetChanged();
- void cameraChanged();
-};
-
-#endif /* CAMERA_H_ */
diff --git a/hdt-it/Color.cpp b/hdt-it/Color.cpp
deleted file mode 100644
index 8e477d53..00000000
--- a/hdt-it/Color.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Color.cpp
- *
- * Created on: 04/03/2011
- * Author: mck
- */
-
-#include
-#include
-
-#include "Color.h"
-#include "constants.h"
-
- Color::Color() {
- setRGBA(1,1,1,1);
- }
-
- Color::~Color() {
- }
-
-
-void Color::use() {
-
-}
-
-/** Invert Color
- * @param c Description of the param.
- * @return void
- */
-void Color::invert() {
- r = 1 - r;
- g = 1 - g;
- b = 1 - b;
-}
-
-void Color::setRGB(double r, double g, double b) {
- this->r = r;
- this->g = g;
- this->b = b;
-}
-
-void Color::setRGBA(double r, double g, double b, double a) {
- this->r = r;
- this->g = g;
- this->b = b;
- this->a = a;
-}
-
-/** HSV to RGB
- * @param h Description of the param.
- * @param s Description of the param.
- * @param v Description of the param.
- * @param c Description of the param.
- * @return void
- */
-void Color::setHSV(double h, double s, double v) {
- // H is given on [0, 6]. S and V are given on [0, 1].
- // RGB are each returned on [0, 1].
- float m, n, f;
- int i;
-
- if (h == -1) {
- setRGB(v, v, v);
- return;
- }
-
- i = floor(h);
- f = h - i;
- if (!(i & 1))
- f = 1 - f; // if i is even
- m = v * (1 - s);
- n = v * (1 - s * f);
- switch (i) {
- case 6:
- case 0:
- setRGB(v, n, m);
- break;
- case 1:
- setRGB(n, v, m);
- break;
- case 2:
- setRGB(m, v, n);
- break;
- case 3:
- setRGB(m, n, v);
- break;
- case 4:
- setRGB(n, m, v);
- break;
- case 5:
- setRGB(v, m, n);
- break;
- }
-}
-
-QColor Color::asQColor()
-{
- QColor c(255*r, 255*g, 255*b, 255*a);
- return c;
-}
-
-/**Get Color 2
- * @param val Description of the param.
- * @param vmin Description of the param.
- * @param vmax Description of the param.
- * @param c Description of the param.
- * @return void
- */
-void ColorRamp2::apply(Color *c, double val, double vmin, double vmax) {
- double total = vmax - vmin;
- double prop = (vmin + val / total);
-
- if(vmax==0.0) {
- c->setRGB(1.0, 0.0, 0.0);
- return;
- }
-
- //std::cout << "h: " << fmod(prop*100,6) << std::endl;
- //std::cout << "\tmin: " << vmin << " val: "<< val << " max: " << vmax << " Prop: " << prop << " dv: " << total << std::endl;
-#ifdef SCREEN
- c->setHSV(fmod(prop*100,6), 1.0 , 0.5 + 0.5 * prop);
- c->invert();
-#else
- c->setHSV(fmod(prop*100,6), 1.0, 0.3+0.7*prop);
- //c->invert();
-#endif
- // printf("(%.1f, %.1f, %.1f) %.1f\n", val, vmin, vmax, prop);
-}
-
-/** Get Color
- * @param v Description of the param.
- * @param vmin Description of the param.
- * @param vmax Description of the param.
- * @param c Description of the param.
- * @return void
- */
-void ColorRamp1::apply(Color *c, double v, double vmin, double vmax) {
- if (v < vmin)
- v = vmin;
- if (v > vmax)
- v = vmax;
-
- double dv = vmax - vmin;
-
- if (v < (vmin + 0.25 * dv)) {
- c->setRGB(0, 4 * (v - vmin) / dv, 1);
- } else if (v < (vmin + 0.5 * dv)) {
- c->setRGB(0, 1 + 4 * (vmin + 0.25 * dv - v) / dv, 1);
- } else if (v < (vmin + 0.75 * dv)) {
- c->setRGB(4 * (v - vmin - 0.5 * dv) / dv, 1, 0);
- } else {
- c->setRGB(1, 1 + 4 * (vmin + 0.75 * dv - v) / dv, 0);
- }
-}
-
-
-
diff --git a/hdt-it/Color.h b/hdt-it/Color.h
deleted file mode 100644
index 0ede20a1..00000000
--- a/hdt-it/Color.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Color.h
- *
- * Created on: 04/03/2011
- * Author: mck
- */
-
-#ifndef COLOR_H_
-#define COLOR_H_
-
-#include
-
-class Color {
-public:
- double r,g,b,a;
-
-public:
- Color();
- Color(double r, double g, double b);
- Color(double r, double g, double b, double a);
- virtual ~Color();
-
- void use();
- void invert();
-
- void setRGB(double r, double g, double b);
- void setRGBA(double r, double g, double b, double a);
- void setHSV(double h, double s, double v);
- QColor asQColor();
-};
-
-class ColorRamp {
-public:
- virtual void apply(Color *co, double v, double vmin, double vmax)=0;
-};
-
-
-class ColorRamp1 : public ColorRamp {
-public:
- void apply(Color *co, double v, double vmin, double vmax);
-};
-
-
-class ColorRamp2 : public ColorRamp {
-public:
- void apply(Color *co, double v, double vmin, double vmax);
-};
-
-#endif /* COLOR_H_ */
diff --git a/hdt-it/Info.plist b/hdt-it/Info.plist
deleted file mode 100644
index 7244838c..00000000
--- a/hdt-it/Info.plist
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
- CFBundleIconFile
- hdtico.icns
- CFBundlePackageType
- APPL
- CFBundleGetInfoString
- Created by Qt/QMake
- CFBundleSignature
- ????
- CFBundleExecutable
- HDT-it
- CFBundleIdentifier
- org.rdfhdt.HDT-it
- CFBundleDocumentTypes
-
-
- CFBundleTypeExtensions
-
- hdt
-
- CFBundleTypeIconFile
- hdtico.icns
- CFBundleTypeMIMETypes
-
- binary/rdf-hdt
-
- CFBundleTypeName
- HDT RDF File
- CFBundleTypeRole
- Editor
- LSIsAppleDefaultForType
-
-
-
- CFBundleTypeExtensions
-
- hdt.gz
-
- CFBundleTypeIconFile
- hdtico.icns
- CFBundleTypeMIMETypes
-
- binary/rdf-hdt
-
- CFBundleTypeName
- HDT RDF File
- CFBundleTypeRole
- Editor
- LSIsAppleDefaultForType
-
-
-
-
-
-
diff --git a/hdt-it/LICENSE b/hdt-it/LICENSE
deleted file mode 100644
index 56fd5d6a..00000000
--- a/hdt-it/LICENSE
+++ /dev/null
@@ -1,280 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
diff --git a/hdt-it/README.md b/hdt-it/README.md
deleted file mode 100644
index af9450a9..00000000
--- a/hdt-it/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# HDT-it! GUI tool for the HDT triple format
-
-Overview
-=================
-
-HDT-it is a tool that can generate
-and consume RDF files in HDT format. It demonstrates the capabilities
-of HDT by allowing to search basic triple patterns against HDT files, and
-also visualizes the 3D adjacency matrix of the underlying RDF graph to
-provide an overview of the dataset distribution.
-
-Download executable
-=================
-
-An executable version of the tool is available for multiple platforms in http://www.rdfhdt.org/downloads/
-
-Compiling
-=================
-
-Dependencies:
-
-- HDT-Lib
-- QT4 (http://doc.qt.io/qt-4.8/)
-
-Compilation:
-
-1.Compile the main hdt-lib library. To compile the library run `make` under the directory `hdt-lib`, this will generate the library and tools.
-2. Execute Qmake in libcds-v1.0.12:
-
- $ cd libcds-v1.0.12/qmake
- $ qmake
- $ make
-
-3.Execute Qmake in hdt-lib
-
- $ cd hdt-lib/qmake
- $ qmake
- $ make
-
-4.Execute Qmake in hdt-it
-
- $ cd hdt-it
- $ qmake
- $ make
-
-The application should be available in a new hdt-it subfolder (e.g. hdt-it/unix or hdt-it/win32)
-
-Licensing
-=================
-Copyright (C) 2012, Mario Arias, Javier D. Fernandez, Miguel A. Martinez-Prieto
-All rights reserved.
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-Visit our Web Page: www.rdfhdt.org
-
-Contacting the authors:
- - Mario Arias: mario.arias@deri.org
- - Javier D. Fernandez: jfergar@infor.uva.es
- - Miguel A. Martinez-Prieto: migumar2@infor.uva.es
-
diff --git a/hdt-it/StopWatch.cpp b/hdt-it/StopWatch.cpp
deleted file mode 100644
index 7a2e8d8a..00000000
--- a/hdt-it/StopWatch.cpp
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * StopWatch.cpp
- *
- * Created on: 03/03/2011
- * Author: mck
- */
-
-#include
-#include
-
-#include // For memcpy()
-
-#include "StopWatch.hpp"
-
-StopWatch::StopWatch() {
-#ifdef WIN32
- QueryPerformanceFrequency(&frequency);
- startCount.QuadPart = 0;
- endCount.QuadPart = 0;
-#endif
- reset();
-}
-
-#ifdef WIN32
-void StopWatch::reset() {
- QueryPerformanceCounter(&startCount);
- endCount = startCount;
-}
-
-void StopWatch::stop() {
- QueryPerformanceCounter(&endCount);
-}
-
-unsigned long long StopWatch::getUser() {
- unsigned long long start = startCount.QuadPart * (1000000.0 / frequency.QuadPart);
- unsigned long long end = endCount.QuadPart * (1000000.0 / frequency.QuadPart);
- return end - start;
-}
-
-unsigned long long StopWatch::getSystem() {
- return getUser();
-}
-
-unsigned long long StopWatch::getReal() {
- return getUser();
-}
-
-#else
-void StopWatch::reset() {
- struct rusage ru;
-
- getrusage(RUSAGE_SELF, &ru);
- gettimeofday(&real1, NULL);
-
- memcpy(&user1, &ru.ru_utime, sizeof(struct timeval));
- memcpy(&system1, &ru.ru_stime, sizeof(struct timeval));
-
- memcpy(&user2, &user1, sizeof(struct timeval));
- memcpy(&system2, &system1, sizeof(struct timeval) );
-}
-
-void StopWatch::stop() {
- struct rusage ru;
- getrusage(RUSAGE_SELF, &ru);
- gettimeofday(&real2, NULL);
-
- memcpy(&user2, &ru.ru_utime, sizeof(struct timeval));
- memcpy(&system2, &ru.ru_stime, sizeof(struct timeval));
-}
-
-unsigned long long difference(time_t s1, time_t s2, suseconds_t us1, suseconds_t us2) {
- unsigned long long tmp1, tmp2;
-
- tmp1 = s1 * 1000000 + us1;
- tmp2 = s2 * 1000000 + us2;
-
- return tmp1-tmp2;
-}
-
-unsigned long long StopWatch::getUser() {
- return difference(user2.tv_sec,user1.tv_sec, user2.tv_usec,user1.tv_usec);
-}
-
-unsigned long long StopWatch::getSystem() {
- return difference(system2.tv_sec,system1.tv_sec, system2.tv_usec,system1.tv_usec);
-}
-
-unsigned long long StopWatch::getReal() {
- return difference(real2.tv_sec,real1.tv_sec, real2.tv_usec,real1.tv_usec);
-}
-#endif
-
-
-
-
-
-std::string StopWatch::getUserStr() {
- return toHuman(getUser());
-}
-std::string StopWatch::getSystemStr() {
- return toHuman(getSystem());
-}
-std::string StopWatch::getRealStr() {
- return toHuman(getReal());
-}
-
-
-unsigned long long StopWatch::stopUser() {
- stop();
- return getUser();
-}
-
-unsigned long long StopWatch::stopSystem() {
- stop();
- return getSystem();
-}
-
-unsigned long long StopWatch::stopReal() {
- stop();
- return getReal();
-}
-
-
-std::string StopWatch::stopUserStr() {
- stop();
- return getUserStr();
-}
-
-std::string StopWatch::stopSystemStr() {
- stop();
- return getSystemStr();
-}
-
-std::string StopWatch::stopRealStr() {
- stop();
- return getRealStr();
-}
-
-std::ostream &operator<<(std::ostream &stream, StopWatch &sw) {
- stream << sw.stopRealStr();
- return stream;
-}
-
-std::string StopWatch::toHuman(unsigned long long time) {
- unsigned int tot_secs = time/1000000;
-
- unsigned int hours = tot_secs/3600;
- unsigned int mins = (tot_secs/60) % 60;
- unsigned int secs = (tot_secs % 60);
- unsigned int ms = (time%1000000)/1000;
- unsigned int us = time%1000;
-
- std::ostringstream out;
- if(hours>0) {
- out << hours << " hour ";
- }
- if(mins>0) {
- out << mins << " min ";
- }
- if(secs>0) {
- out << secs << " sec ";
- }
- if(ms>0) {
- out << ms << " ms ";
- }
- if(us>0){
- out << us << " us";
- }
- return out.str();
-}
diff --git a/hdt-it/StopWatch.hpp b/hdt-it/StopWatch.hpp
deleted file mode 100644
index c10b0814..00000000
--- a/hdt-it/StopWatch.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * StopWatch.hpp
- *
- * Created on: 03/03/2011
- * Author: mck
- */
-
-#ifndef STOPWATCH_HPP_
-#define STOPWATCH_HPP_
-
-#ifdef WIN32
-#include
-#else
-# include
-# include
-#endif
-
-#include
-#include
-
-class StopWatch {
-private:
-
-#ifdef WIN32
- LARGE_INTEGER frequency;
- LARGE_INTEGER startCount;
- LARGE_INTEGER endCount;
-#else
- struct timeval user1, user2;
- struct timeval system1, system2;
- struct timeval real1, real2;
-#endif
-
-public:
- StopWatch();
-
- void reset();
- void stop();
-
- unsigned long long getUser();
- unsigned long long getSystem();
- unsigned long long getReal();
-
- std::string getUserStr();
- std::string getSystemStr();
- std::string getRealStr();
-
- unsigned long long stopUser();
- unsigned long long stopSystem();
- unsigned long long stopReal();
-
- std::string stopUserStr();
- std::string stopSystemStr();
- std::string stopRealStr();
-
- static std::string toHuman(unsigned long long time);
-
- friend std::ostream &operator<<(std::ostream &stream, StopWatch &sw);
-};
-
-#endif /* STOPWATCH_HPP_ */
diff --git a/hdt-it/abouthdt.cpp b/hdt-it/abouthdt.cpp
deleted file mode 100644
index cde89f16..00000000
--- a/hdt-it/abouthdt.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "abouthdt.hpp"
-#include "ui_abouthdt.h"
-
-Abouthdt::Abouthdt(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::Abouthdt)
-{
- ui->setupUi(this);
-}
-
-Abouthdt::~Abouthdt()
-{
- delete ui;
-}
diff --git a/hdt-it/abouthdt.hpp b/hdt-it/abouthdt.hpp
deleted file mode 100644
index 7a7981c6..00000000
--- a/hdt-it/abouthdt.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef ABOUTHDT_HPP
-#define ABOUTHDT_HPP
-
-#include
-
-namespace Ui {
- class Abouthdt;
-}
-
-class Abouthdt : public QDialog
-{
- Q_OBJECT
-
-public:
- explicit Abouthdt(QWidget *parent = 0);
- ~Abouthdt();
-
-private:
- Ui::Abouthdt *ui;
-};
-
-#endif // ABOUTHDT_HPP
diff --git a/hdt-it/abouthdt.ui b/hdt-it/abouthdt.ui
deleted file mode 100644
index fb4767dc..00000000
--- a/hdt-it/abouthdt.ui
+++ /dev/null
@@ -1,173 +0,0 @@
-
-
- Abouthdt
-
-
-
- 0
- 0
- 557
- 377
-
-
-
-
- 0
- 0
-
-
-
-
- 557
- 377
-
-
-
-
- 557
- 377
-
-
-
- About HDT-it!
-
-
-
-
- 200
- 340
- 341
- 32
-
-
-
- Qt::Horizontal
-
-
- QDialogButtonBox::Close
-
-
- false
-
-
-
-
-
- 10
- 10
- 91
- 81
-
-
-
-
- 0
- 0
-
-
-
-
- 91
- 81
-
-
-
-
- 91
- 81
-
-
-
- border-image: url(:/images/logo-hdt.png);
-
-
-
-
-
-
- 110
- 10
- 431
- 321
-
-
-
-
- 12
-
-
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'.Lucida Grande UI'; font-size:12pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:16pt; font-weight:600;">HDT-it! version 1.1</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande'; font-size:16pt; font-weight:600;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">HDT (Header, Dictionary, Triples) is a binary representation for RDF that compresses big datasets in order to store and share big RDF files.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande';"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">HDT-it is a tool that allows generating and consuming HDT files. As an example, the tool allows to search for basic graph patterns, and shows a global 3D Matrix of the RDF distribution.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande';"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">For more information about the tool and our research, please visit:</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">HDT Web page: </span><a href="http://www.rdfhdt.org"><span style=" font-family:'Lucida Grande'; font-size:13pt; text-decoration: underline; color:#0000ff;">http://www.rdfhdt.org</span></a></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">Research group: </span><a href="http://dataweb.infor.uva.es"><span style=" font-family:'Lucida Grande'; font-size:13pt; text-decoration: underline; color:#0000ff;">http://dataweb.infor.uva.es</span></a></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande';"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:14pt; font-weight:600;">HDT was possible thanks to:</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande';"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">Mario Arias Gallego <</span><a href="mailto:mario.arias@insight-centre.org"><span style=" text-decoration: underline; color:#0000ff;">mario.arias@insight-centre.org</span></a><span style=" font-family:'Lucida Grande';">></span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">Javier D. Fernández García <</span><a href="mailto:jfergar@infor.uva.es"><span style=" text-decoration: underline; color:#0000ff;">jfergar@infor.uva.es</span></a><span style=" font-family:'Lucida Grande';">></span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">Miguel A. Martínez-Prieto <</span><a href="mailto:migumar2@infor.uva.es"><span style=" text-decoration: underline; color:#0000ff;">migumar2@infor.uva.es</span></a><span style=" font-family:'Lucida Grande';">></span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">Claudio Gutierrez <</span><a href="mailto:cgutierr@dcc.uchile.cl"><span style=" text-decoration: underline; color:#0000ff;">cgutierr@dcc.uchile.cl</span></a><span style=" font-family:'Lucida Grande';">></span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande';"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:14pt; font-weight:600;">And the following organizations:</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Lucida Grande';"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">University of Valladolid. </span><a href="http://www.uva.es"><span style=" text-decoration: underline; color:#0000ff;">http://www.uva.es</span></a></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">University of Chile. </span><a href="http://dcc.uchile.cl"><span style=" text-decoration: underline; color:#0000ff;">http://dcc.uchile.cl</span></a></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">Insight Centre for Data Analytics </span><a href="http://www.insight-centre.org"><span style=" text-decoration: underline; color:#0000ff;">http://www.insight-centre.org</span></a></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">(Formerly known as Digital Enterprise Research Insitute. </span><a href="http://www.deri.ie"><span style=" text-decoration: underline; color:#0000ff;">http://www.deri.ie</span></a></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">National University of Ireland Galway. </span><a href="http://www.nuigalway.ie"><span style=" text-decoration: underline; color:#0000ff;">http://www.nuigalway.ie</span></a></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:14pt; font-weight:600;">Acknowledgemens:</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; text-decoration: underline; color:#0000ff;"></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande';">RDF/HDT is a project funded by the Spanish Ministry of Economy and Competitiveness (TIN2009-14009-C02-02); Science Foundation Ireland: Grant No. SFI/08/CE/I1380, Lion-II; Chilean Fondecyt's 1110287 and 1-110066</span></p></body></html>
-
-
- true
-
-
-
-
-
-
- buttonBox
- accepted()
- Abouthdt
- accept()
-
-
- 248
- 254
-
-
- 157
- 274
-
-
-
-
- buttonBox
- rejected()
- Abouthdt
- reject()
-
-
- 316
- 260
-
-
- 286
- 274
-
-
-
-
-
diff --git a/hdt-it/colors.hpp b/hdt-it/colors.hpp
deleted file mode 100644
index f1bbc166..00000000
--- a/hdt-it/colors.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef COLORS_HPP
-#define COLORS_HPP
-
-#define SCREEN
-
-#ifndef SCREEN
-#define TEXT_COLOR 0.0, 0.0, 0.0, 1.0
-#define CROSS_COLOR 1.0, 0.0, 0.0, 1.0
-#define TEXT_BACKGROUND_COLOR 1.0, 1.0, 1.0, 0.9
-#define BACKGROUND_COLOR 1, 1, 1, 1
-#define SHARED_AREA_COLOR 0.9, 0.9, 0.9, 1.0
-#define SHARED_AREA_BORDER_COLOR 0.1, 0.1, 0.1, 1.0
-#define AXIS_COLOR 0.1, 0.1, 0.1, 1.0
-#define GRID_COLOR 0.3, 0.3, 0.3, 1.0
-#define RDF_POINT_SIZE 1.5
-#else
-#define TEXT_COLOR 1.0, 1.0, 1.0, 1.0
-#define CROSS_COLOR 1.0, 1.0, 1.0, 1.0
-#define TEXT_BACKGROUND_COLOR 0.0, 0.0, 0.0, 0.7
-#define BACKGROUND_COLOR 0, 0, 0, 1
-#define SHARED_AREA_COLOR 0.2, 0.2, 0.2, 1.0
-#define SHARED_AREA_BORDER_COLOR 0.3, 0.3, 0.3, 1.0
-#define AXIS_COLOR 0.8, 0.8, 0.8, 1.0
-#define GRID_COLOR 0.2, 0.2, 0.2, 1.0
-#define RDF_POINT_SIZE 1
-#endif
-
-
-#endif // COLORS_HPP
diff --git a/hdt-it/constants.h b/hdt-it/constants.h
deleted file mode 100644
index dc955d74..00000000
--- a/hdt-it/constants.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * constants.h
- *
- * Created on: 04/03/2011
- * Author: mck
- */
-
-#ifndef CONSTANTS_H_
-#define CONSTANTS_H_
-
-#define TIMER_DELAY 50
-#define RENDER_NUM_POINTS 100000
-
-#define SCREEN
-
-#ifndef SCREEN
-#define TEXT_COLOR 0.0, 0.0, 0.0, 1.0
-#define CROSS_COLOR 1.0, 0.0, 0.0, 1.0
-#define TEXT_BACKGROUND_COLOR 1.0, 1.0, 1.0, 0.9
-#define BACKGROUND_COLOR 1, 1, 1, 1
-#define SHARED_AREA_COLOR 0.9, 0.9, 0.9, 1.0
-#define SHARED_AREA_BORDER_COLOR 0.1, 0.1, 0.1, 1.0
-#define AXIS_COLOR 0.1, 0.1, 0.1, 1.0
-#define GRID_COLOR 0.3, 0.3, 0.3, 1.0
-#define RDF_POINT_SIZE 1.5
-#else
-#define TEXT_COLOR 1.0, 1.0, 1.0, 1.0
-#define CROSS_COLOR 0.0, 0.0, 0.0, 1.0
-#define TEXT_BACKGROUND_COLOR 0.0, 0.0, 0.0, 0.7
-#define BACKGROUND_COLOR 0, 0, 0, 1
-#define SHARED_AREA_COLOR 0.1, 0.1, 0.1, 1.0
-#define SHARED_AREA_BORDER_COLOR 0.2, 0.2, 0.2, 1.0
-#define AXIS_COLOR 0.8, 0.8, 0.8, 1.0
-#define GRID_COLOR 0.2, 0.2, 0.2, 1.0
-#define RDF_POINT_SIZE 1
-#endif
-
-
-#endif /* CONSTANTS_H_ */
diff --git a/hdt-it/createdmg.sh b/hdt-it/createdmg.sh
deleted file mode 100755
index 10fcc7c7..00000000
--- a/hdt-it/createdmg.sh
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/bin/bash
-
-SRCAPP="macx/HDT-it.app"
-FOLDER="macdmg"
-VOL="HDT-it"
-NAME="HDT-it!"
-VERS="1.1"
-DMG="$VOL-$VERS.dmg"
-
-FRAMEWORK_BASE="$SRCAPP/Contents/Frameworks/"
-REMOVE="QtSql.framework QtXmlPatterns.framework QtDeclarative.framework QtNetwork.framework QtScript.framework QtSvg.framework QtGui.framework/Versions/4/QtGui.strip"
-
-DATASETBASE="$HOME/rdf/dataset/"
-DATASETS="test.nt"
-DATASETHDTBASE="$HOME/hdt/"
-DATASETSHDT="3kbo.hdt aaronland.hdt 3dnews.hdt aisricom.hdt"
-#DATASETSHDT="aifb.hdt apex.hdt 2blog.hdt 3kbo.hdt aaronland.hdt 3dnews.hdt aisricom.hdt"
-
-mkdir -p $FOLDER
-rm -Rf $FOLDER/*
-
-# ADD LIBRARIES
-echo macdeployqt $SRCAPP
-macdeployqt $SRCAPP
-
-# ADD Translation files
-cp -Rf *.qm $SRCAPP/Contents/Resources
-
-# ADD License and documentation
-cp -Rf LICENSE $FOLDER
-
-mkdir -p $FOLDER/doc
-cp -Rf doc/* $FOLDER/doc
-
-# REMOVE UNNEDED FILES
-for i in $REMOVE
-do
- echo rm -Rf $FRAMEWORK_BASE$i;
- rm -Rf $FRAMEWORK_BASE$i;
-done
-
-echo rm -Rf "$SRCAPP/Contents/PlugIns/*"
-rm -Rf "$SRCAPP/Contents/PlugIns/*"
-
-# CREATE TMP FOLDER
-echo mkdir -p $FOLDER/datasets
-mkdir -p $FOLDER/datasets
-
-echo "Fill moredatasets.txt"
-echo "You can download more datasets from http://www.rdfhdt.org/datasets or import your own ones using the 'Import RDF' option!" > $FOLDER/datasets/moredatasets.txt
-
-# COPY APP to folder
-echo cp -R $SRCAPP $FOLDER
-cp -R $SRCAPP $FOLDER
-
-# COPY DATASETS
-for i in $DATASETS
-do
- echo cp $DATASETBASE$i $FOLDER/datasets
- cp $DATASETBASE$i $FOLDER/datasets
-done
-
-for i in $DATASETSHDT
-do
- echo cp $DATASETHDTBASE$i $FOLDER/datasets
- cp $DATASETHDTBASE$i $FOLDER/datasets
-done
-
-# CREATE DMG
-rm -Rf "$DMG"
-echo hdiutil create -srcfolder "$FOLDER" -volname "$VOL" -format UDZO -imagekey zlib-level=9 "$DMG"
-hdiutil create -srcfolder "$FOLDER" -volname "$NAME" -format UDZO -imagekey zlib-level=9 "$DMG"
diff --git a/hdt-it/dictionarysuggestions.cpp b/hdt-it/dictionarysuggestions.cpp
deleted file mode 100644
index c50c80d3..00000000
--- a/hdt-it/dictionarysuggestions.cpp
+++ /dev/null
@@ -1,186 +0,0 @@
-
-#include
-#include
-#include
-
-#include "dictionarysuggestions.hpp"
-
-#include "stringutils.hpp"
-
-#include
-
-#define NUM_SUGGESTIONS 10
-
-DictionarySuggestions::DictionarySuggestions(QLineEdit *parent) :
- QObject(parent),
- editor(parent),
- controller(NULL)
-{
- popup = new QTreeWidget;
- popup->setWindowFlags(Qt::Popup);
- popup->setFocusPolicy(Qt::NoFocus);
- popup->setFocusProxy(parent);
- popup->setMouseTracking(true);
-
- popup->setColumnCount(1);
- popup->setUniformRowHeights(true);
- popup->setRootIsDecorated(false);
- popup->setEditTriggers(QTreeWidget::NoEditTriggers);
- popup->setSelectionBehavior(QTreeWidget::SelectRows);
- popup->setFrameStyle(QFrame::Box | QFrame::Plain);
- popup->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- popup->header()->hide();
-
- popup->installEventFilter(this);
-
- connect(popup, SIGNAL(itemClicked(QTreeWidgetItem*,int)),
- SLOT(doneCompletion()));
-
- timer = new QTimer(this);
- timer->setSingleShot(true);
- timer->setInterval(100);
- connect(timer, SIGNAL(timeout()), SLOT(autoSuggest()));
- connect(editor, SIGNAL(textEdited(QString)), timer, SLOT(start()));
-}
-
-DictionarySuggestions::~DictionarySuggestions(){
- delete popup;
-}
-
-bool DictionarySuggestions::eventFilter(QObject *obj, QEvent *ev)
-{
- if (obj != popup)
- return false;
-
- if (ev->type() == QEvent::MouseButtonPress) {
- popup->hide();
- editor->setFocus();
- return true;
- }
-
- if (ev->type() == QEvent::KeyPress) {
- bool consumed = false;
- int key = static_cast(ev)->key();
- switch (key) {
- case Qt::Key_Enter:
- case Qt::Key_Return:
- doneCompletion();
- consumed = true;
-
- case Qt::Key_Escape:
- editor->setFocus();
- popup->hide();
- consumed = true;
-
- case Qt::Key_Up:
- case Qt::Key_Down:
- case Qt::Key_Home:
- case Qt::Key_End:
- case Qt::Key_PageUp:
- case Qt::Key_PageDown:
- case Qt::Key_Shift:
- break;
-
- default:
- editor->setFocus();
- editor->event(ev);
- popup->hide();
- break;
- }
-
- return consumed;
- }
-
- return false;
-}
-
-void DictionarySuggestions::showCompletion(const vector &choices)
-{
- if (choices.size()==0)
- return;
-
- popup->setUpdatesEnabled(false);
- popup->clear();
- int maxWidth=0;
- QFontMetrics metrics(popup->font());
-
- for (int i = 0; i < choices.size(); ++i) {
- QTreeWidgetItem * item;
- item = new QTreeWidgetItem(popup);
- item->setText(0, stringutils::toQString(choices[i].c_str()));
- maxWidth = qMax(maxWidth, metrics.boundingRect(item->text(0)).width());
- }
- popup->setCurrentItem(popup->topLevelItem(0));
- popup->resizeColumnToContents(0);
- popup->adjustSize();
- popup->setUpdatesEnabled(true);
-
- int h = popup->sizeHintForRow(0) * qMin(NUM_SUGGESTIONS, (int)choices.size()) + 3;
- popup->resize( qMax(popup->width(), qMin(maxWidth+20, 600)), h);
-
- popup->move(editor->mapToGlobal(QPoint(0, editor->height())));
- popup->setFocus();
- popup->show();
-}
-
-void DictionarySuggestions::doneCompletion()
-{
- timer->stop();
- popup->hide();
- editor->setFocus();
- QTreeWidgetItem *item = popup->currentItem();
- if (item) {
- editor->setText(item->text(0));
- QMetaObject::invokeMethod(editor, "returnPressed");
- }
-}
-
-void DictionarySuggestions::autoSuggest()
-{
- if(!controller ||!controller->hasHDT() ) {
- return;
- }
-
- try {
- QString str = editor->text();
- if(str.length()<1) {
- return;
- }
-
- // If not URI, Literal, Blank
- if( str.at(0)!='"' && str.at(0)!='_' && str.left(4)!="http") {
- // Assume literal otherwise
- str.prepend("\"");
- }
- vector choices;
-
- // FETCH RESULTS FROM DICTIONARY
- controller->getHDT()->getDictionary()->getSuggestions(str.toUtf8(), role, choices, NUM_SUGGESTIONS);
-
- if(choices.size()==1 && choices[0]==string(str.toUtf8())) {
- return;
- }
-
- // show
- showCompletion(choices);
- } catch (const char *ex) {
-#ifndef WIN32
- } catch (char *ex) {
-#endif
- }
-}
-
-void DictionarySuggestions::preventSuggest()
-{
- timer->stop();
-}
-
-void DictionarySuggestions::setRole(hdt::TripleComponentRole role)
-{
- this->role = role;
-}
-
-void DictionarySuggestions::setController(HDTController *controller)
-{
- this->controller = controller;
-}
diff --git a/hdt-it/dictionarysuggestions.hpp b/hdt-it/dictionarysuggestions.hpp
deleted file mode 100644
index fedf5fbc..00000000
--- a/hdt-it/dictionarysuggestions.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef DICTIONARYSUGGESTIONS_HPP
-#define DICTIONARYSUGGESTIONS_HPP
-
-#include
-#include
-
-#include
-
-QT_BEGIN_NAMESPACE
-class QLineEdit;
-class QTimer;
-class QTreeWidget;
-QT_END_NAMESPACE
-
-class DictionarySuggestions : public QObject
-{
- Q_OBJECT
-public:
- explicit DictionarySuggestions(QLineEdit *parent = 0);
- ~DictionarySuggestions();
- bool eventFilter(QObject *obj, QEvent *ev);
- void showCompletion(const vector &choices);
- void setController(HDTController *controller);
- void setRole(hdt::TripleComponentRole role);
-
-public slots:
- void doneCompletion();
- void preventSuggest();
- void autoSuggest();
-
-private:
- QLineEdit *editor;
- QTreeWidget *popup;
- QTimer *timer;
- HDTController *controller;
- hdt::TripleComponentRole role;
-};
-
-#endif // DICTIONARYSUGGESTIONS_HPP
diff --git a/hdt-it/doc/hdtit.png b/hdt-it/doc/hdtit.png
deleted file mode 100644
index cb3e2885..00000000
Binary files a/hdt-it/doc/hdtit.png and /dev/null differ
diff --git a/hdt-it/doc/manual.html b/hdt-it/doc/manual.html
deleted file mode 100644
index 1d442cf8..00000000
--- a/hdt-it/doc/manual.html
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-HDT-it! 0.9Beta User Manual
-
-
-
-
HDT-it! 0.9Beta User Manual
-
-
Purpose
-
-
HDT (Header, Dictionary, Triples) is a binary representation for RDF that compresses big datasets to save space while maintaining search and browse operations. This makes it an ideal format for storing and sharing RDF datasets.
-
HDT-it! is a tool that allows generating and consuming HDT files. As an example, the tool allows to search basic graph patterns, and shows a global 3D Matrix of the RDF distribution to understand the organization of the information.
-
This document teaches how to use the tool to create and browse HDT files. There is also a screencast demonstrating visually all the features of HDT-it available at the RDF HDT Web page.
-
-
Installation.
-
Windows
-
To install HDT-it! on Microsoft Windows, download the binary package for Windows from the RDF-HDT Download page. Uncompress the zip file using any appropriate software (Such as IZarc) to any folder of your choice. To launch the application, just double click on HDT-it.exe. You might find usefull to have a shortcut on your desktop. To do so, drag the hdt-it.exe file to your desktop using the right button of the mouse, and select "Create shortcut".
-
-
Should you want to uninstall HDT-it!, just delete the folder on your hard drive.
-
-
MacOSX
-
To install HDT-it! on MacOSX, download the binary package for MacOSX from RDF-HDT Download page. Launch the dmg file and drag the HDT-it! app to your Applications folder. Then you can launch HDT-it! the same way as any MacOSX application. You can create a shortcut to it by droping the app from the Applications folder to your dock.
-
-
Note that HDT-it! is a Universal binary, and can run on 32 and 64 bit Intel platforms, but cannot run on PowerPC.
-
-
Should you want to uninstall HDT-it!, just drag the App from the Applications folder to the Trash.
-
-
Linux
-
To install HDT-it! on Linux, download the binary package for Linux from RDF-HDT Download page. Untar the package on your home (tar jxfv HDT-it-0.9beta-linux.tbz2) and launch it using the HDT-it.sh script (./HDT-it.sh). The package contains all the needed libraries: namely Qt 4.7.
-
-
HDT-it Usage
-
-
After opening HDT-it, you can see the following view:
-
-
-
-
Managing datasets:
-
The first step when using HDT-it is loading a dataset. It uses the HDT format to keep all the information in a compact but at the same time accessible manner.
-
Load HDT
-
If you have any dataset in HDT, you can load it using the "Open HDT" option from the toolbar. The instalation distribution package contains several example datasets that you can play with. You can also download bigger datasets from the Dataweb page.
-
Import RDF
-
You also probably want to load your own dataset. HDT-it! is able to load RDF data in several well-known RDF formats (NTriples, N3, Turtle and RDF-XML) and convert it to HDT. To import data, select Import RDF and follow the instructions. You need to specify some information, namely:
-
-
The file source of RDF
-
The base URI used for loading the RDF.
-
The specific format of the different sections of HDT. Depending on this options we can obtain a compromise between compression ratio and search capabilities. The default options will provide a fair balance between the two.
-
-
-
The process of importing the RDF file will take a while. We recommend using "NTriples" as input format since it can be processed statement by statement therefore using fewer RAM memory. For really big datasets, you may need a powerfull computer with a high amount of RAM memory, since the conversion process needs to construct intermediate data structures. In these cases, we recommend using the commandline tools available in HDT-lib on a server machine. Then the resulting HDT file can be loaded using a more modest computer since it is already compressed and ready to be used.
-
-
Save HDT
-
This option allows saving the HDT file. It is specially useful when you just imported a RDF file and want to keep an HDT version for faster loading and consumption.
-
Export RDF
-
You can export any HDT search back to RDF to consume it using traditional tools or loading it to any RDF database. Just select export and by default the tool will serialize it to NTriples. If you want to export the whole dataset, just left empty all the fields in the triple search pattern.
-
-
Browsing
-
Triple Search Pattern
-
On the top left, you can insert a triple search pattern to filter the results. It allows searching for a specific subject, predicate or object. Any field left blank means "any", so the default empty option will show all triples. In order to simplify the typing task, options are proposed as the user types thanks to the dictionary.
-
Dataset Information
-
On the bottom left part of the window, all the information available about the dataset is shown. Namely the size of the original dataset and the compressed HDT version (to highlight the savings of using HDT). It also shows the details about the dictionary (the number of entries in the dictionary and the number of triples). It is also interesting to see the relative size of the dictionary against the triples.
-
List of Components.
-
Also on the bottom left you can select any of the components (Subjects, predicates, or objects). It will show a list of all the different elements available. The user can double click on any item to add it to the search box.
-
Metadata
-
The Metadata tab on the top right allows browsing all the information about the HDT's header in plain RDF format.
-
Search Results
-
The Search Results Tab shows the list of all triples that match the specified query in the triple search pattern block. You can double-click on any element to add it to the search pattern box. Also, you can right-click on it and select "Search as Subject/Predicate/Object".
-
Visualization.
-
The visualization widget allows the developer to have an overall view of the dataset. It allows understanding the structure of the RDF data.
-
-
The matrix view is based on an Adjacency Matrix. The dictionary part of the HDT assigns numerical ID to each of the different subject, predicate and object. Then, each RDF triple can be referred as a triple of numerical IDs, such as 234,5,3425. This ID can be interpreted as a point in a 3-Dimensional space, therefore it can be plotted as a point in a 3D graph axis. The matrix view is just a scatter-plot of all the triples of the dataset.
-
-
-
-
To better see the details, you can rotate the view by holding the mouse's left button, or pan using the right one. To increase/decrease the zoom the mouse wheel shall be used. There are three predefined views: Top, Left, and 3D, that can be selected on the top bar. You can also select reset to go back to the initial view.
-
In order to understand the information underlying each area of the visualization, the application reveals information about the nearest triple under the cursor when the user hovers the mouse over each area. Note that this feature is only available for the Front view.
").arg(subjStr).arg(predStr).arg(objStr);
- QPoint point = this->mapToGlobal(event->pos());
- QRect rect = QRect(point.x()-10, point.y()+10, 20, 20);
- QToolTip::showText(point, tooltip, this, rect);
- } else {
- hdtController->clearSelectedTriple();
- QToolTip::hideText();
- }
-
- updateGL();
-}
-
-
-void MatrixViewWidget::wheelEvent( QWheelEvent* e )
-{
- int delta = e->delta();
- if (e->orientation() == Qt::Horizontal) {
-#ifdef GESTURES
- camera.moveOffset(delta/2, 0);
-#endif
- } else {
-#ifdef GESTURES
- camera.moveOffset(0, delta/2);
-#else
- camera.increaseZoom(delta);
-#endif
- }
- hdtController->clearSelectedTriple();
- e->accept();
-}
-
-#ifdef GESTURES
-bool MatrixViewWidget::event(QEvent *event)
-{
- static qreal previousZoom;
- if (event->type() == QEvent::Gesture) {
- QGestureEvent *gestureEvent = static_cast(event);
- if (QGesture *swipe = gestureEvent->gesture(Qt::SwipeGesture)) {
- QSwipeGesture *swipeGesture = static_cast(swipe);
- } else if (QGesture *pan = gestureEvent->gesture(Qt::PanGesture)) {
- QPanGesture *panGesture = static_cast(pan);
- if(panGesture->state() == Qt::GestureStarted) {
- //cout << "Panning start" << endl;
- }
- if(panGesture->state() == Qt::GestureFinished) {
- //cout << "Panning end" << endl;
- }
- return true;
- } else if (QGesture *pinch = gestureEvent->gesture(Qt::PinchGesture)) {
- QPinchGesture *pinchGesture = static_cast(pinch);
-
- QPinchGesture::ChangeFlags changeFlags = pinchGesture->changeFlags();
- if (changeFlags & QPinchGesture::RotationAngleChanged) {
- qreal value = pinchGesture->property("rotationAngle").toReal();
- qreal lastValue = pinchGesture->property("lastRotationAngle").toReal();
- camera.rotateCamera(2.0*(lastValue-value), 0);
- return true;
- }
-
- if (changeFlags & QPinchGesture::ScaleFactorChanged) {
- if(pinchGesture->state() == Qt::GestureStarted) {
- previousZoom = camera.getZoom();
- }
- qreal value = pinchGesture->property("scaleFactor").toReal();
- camera.setZoom(previousZoom*value);
- return true;
- }
- }
- }
- return QGLWidget::event(event);
-}
-#endif
-
-QSize MatrixViewWidget::minimumSizeHint() const
-{
- return QSize(300,150);
-}
-
-QSize MatrixViewWidget::sizeHint() const
-{
- return QSize(800,600);
-}
-
-void MatrixViewWidget::reloadHDTInfo()
-{
- if(hdtController->getHDT()==NULL) {
- return;
- }
-
- updateGL();
-}
-
-
-
-
-
-
-
-
-
diff --git a/hdt-it/matrixviewwidget.hpp b/hdt-it/matrixviewwidget.hpp
deleted file mode 100644
index 118683e1..00000000
--- a/hdt-it/matrixviewwidget.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef MATRIXVIEWWIDGET_HPP
-#define MATRIXVIEWWIDGET_HPP
-
-#include
-#include
-#include
-
-#ifdef __APPLE__
-#include
-#else
-#include
-#endif
-
-#include
-#include
-
-#include "colors.hpp"
-#include "Camera.h"
-#include "StopWatch.hpp"
-
-#include "hdtcontroller.hpp"
-#include "searchresultsmodel.hpp"
-#include "triplecomponentmodel.hpp"
-
-class SearchResultsModel;
-class TripleComponentModel;
-class HDTController;
-
-#ifdef __APPLE__
-//#define GESTURES
-#endif
-
-class MatrixViewWidget : public QGLWidget
-{
- Q_OBJECT
-
-private:
- QTimer timer;
- Camera camera;
- int lastX, lastY, lastClickX, lastClickY, buttonClick;
- HDTController *hdtController;
-
- void unProject(int x, int y, double *outx, double *outy, double *outz);
-
- void paintShared();
- void paintScales();
- void paintPoints();
- void paintSelected();
-
-public:
- explicit MatrixViewWidget(QWidget *parent = 0);
- ~MatrixViewWidget();
-
- void setManager(HDTController *hdtManager);
-
- QSize minimumSizeHint() const;
- QSize sizeHint() const;
-
- Camera &getCamera();
-protected:
- void initializeGL();
- void paintGL();
- void resizeGL(int width, int height);
- void mousePressEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void wheelEvent( QWheelEvent* e );
-#ifdef GESTURES
- bool event(QEvent *);
-#endif
-
-public slots:
- void reloadHDTInfo();
-
-signals:
- void rotationChanged();
- void cameraChanged();
-};
-
-
-#endif // MATRIXVIEWWIDGET_HPP
diff --git a/hdt-it/myapplication.cpp b/hdt-it/myapplication.cpp
deleted file mode 100644
index 607b0843..00000000
--- a/hdt-it/myapplication.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#include "myapplication.hpp"
-
-MyApplication::MyApplication(int &argc, char **argv) : QApplication(argc, argv), hdtIt(NULL)
-{
-}
-
-bool MyApplication::event(QEvent *event)
-{
- switch (event->type()) {
- case QEvent::FileOpen:
- loadFile(static_cast(event)->file());
- return true;
- default:
- return QApplication::event(event);
- }
-}
-
-void MyApplication::loadFile(QString fileName)
-{
- if(hdtIt) {
- hdtIt->openHDTFile(fileName);
- }
-}
-
-void MyApplication::setHDTit(HDTit *hdtIt)
-{
- this->hdtIt=hdtIt;
-}
-
-bool MyApplication::notify(QObject *o, QEvent *e)
-{
- try {
- return QApplication::notify(o, e);
- } catch (char *err) {
- std::cerr << "Exception caugth in notify (char *): " << err << endl;
- } catch (const char *err) {
- std::cerr << "Exception caugth in notify (const char *): " << err << endl;
- } catch (const std::exception& ex) {
- std::cerr << "Exception caugth in notify (std::exception &): " << ex.what() << endl;
- } catch (const std::string& ex) {
- std::cerr << "Exception caugth in notify (std::string &): " << ex << endl;
- } catch (...) {
- std::cerr << "Unknown Exception caugth in notify: " << endl;
- }
-}
diff --git a/hdt-it/myapplication.hpp b/hdt-it/myapplication.hpp
deleted file mode 100644
index a0b78fe8..00000000
--- a/hdt-it/myapplication.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef MYAPPLICATION_HPP
-#define MYAPPLICATION_HPP
-
-#include
-#include "hdtit.hpp"
-
-class MyApplication : public QApplication
-{
- Q_OBJECT
-private:
- HDTit *hdtIt;
- void loadFile(QString fileName);
-public:
- explicit MyApplication(int &argc, char **argv);
- bool event(QEvent *);
- void setHDTit(HDTit *hdtIt);
- bool notify(QObject *, QEvent *);
-signals:
-
-public slots:
-
-};
-
-#endif // MYAPPLICATION_HPP
diff --git a/hdt-it/predicatestatus.cpp b/hdt-it/predicatestatus.cpp
deleted file mode 100644
index 8c1a3d2c..00000000
--- a/hdt-it/predicatestatus.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-#include "predicatestatus.hpp"
-
-PredicateStatus::PredicateStatus(HDTController *manager) :
- controller(manager), minPredicateCount(0), maxPredicateCount(0)
-{
-}
-
-size_t PredicateStatus::getMinimumPredicateCount()
-{
- return minPredicateCount;
-}
-
-size_t PredicateStatus::getMaximumPredicateCount()
-{
- return maxPredicateCount;
-}
-
-bool PredicateStatus::isPredicateActive(size_t i)
-{
- return activePredicate[i];
-}
-
-void PredicateStatus::setPredicateActive(size_t i, bool b)
-{
- if(activePredicate[i]!=b) {
- activePredicate[i] = b;
- setMinimumPredicateCountInternal(0);
- emit predicatesChanged(i,i);
- }
-}
-
-void PredicateStatus::refreshAll()
-{
- activePredicate.clear();
- if(controller->hasHDT()) {
- activePredicate.resize(controller->getHDT()->getDictionary()->getNpredicates(), true);
- this->maxPredicateCount = controller->getHDTCachedInfo()->getMaxPredicateCount();
- setMinimumPredicateCountInternal(0);
- }
-}
-
-void PredicateStatus::selectAllPredicates()
-{
-// cout << "selectAllPredicates" << endl;
- for(size_t i=0;igetHDTCachedInfo()->getPredicateUsages(i)>=(size_t)count;
- }
- emit predicatesChanged(0, activePredicate.size());
- emit minimumPredicateCountChanged(count);
- }
-}
diff --git a/hdt-it/predicatestatus.hpp b/hdt-it/predicatestatus.hpp
deleted file mode 100644
index aa81a906..00000000
--- a/hdt-it/predicatestatus.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef PREDICATESTATUS_HPP
-#define PREDICATESTATUS_HPP
-
-#include
-#include "hdtcontroller.hpp"
-
-class PredicateStatus : public QObject
-{
- Q_OBJECT
-private:
- vector activePredicate;
- size_t minPredicateCount;
- size_t maxPredicateCount;
- HDTController *controller;
-
- void setMinimumPredicateCountInternal(int count);
-public:
- explicit PredicateStatus(HDTController *controller);
-
- size_t getMinimumPredicateCount();
- size_t getMaximumPredicateCount();
-
- bool isPredicateActive(size_t i);
- void setPredicateActive(size_t i, bool b);
-
-signals:
- void predicatesChanged(size_t min, size_t max);
- void minimumPredicateCountChanged(size_t newval);
- void predicateSelected(size_t npred);
-
-public slots:
- void refreshAll();
- void selectPredicate(size_t pred);
- void selectAllPredicates();
- void selectNonePredicates();
- void setMinimumPredicateCount(int count);
-};
-
-#endif // PREDICATESTATUS_HPP
diff --git a/hdt-it/qclearlineedit.cpp b/hdt-it/qclearlineedit.cpp
deleted file mode 100644
index 78ea3b43..00000000
--- a/hdt-it/qclearlineedit.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-#include "qclearlineedit.hpp"
-#include
-#include
-
-QClearLineEdit::QClearLineEdit(QWidget *parent)
- : QLineEdit(parent)
-{
- clearButton = new QToolButton(this);
- QPixmap pixmap(":/images/editreset.png");
- clearButton->setIcon(QIcon(pixmap));
- clearButton->setIconSize(pixmap.size());
- clearButton->setCursor(Qt::ArrowCursor);
- clearButton->setStyleSheet("QToolButton { border: none; padding: 0px; }");
- clearButton->hide();
- connect(clearButton, SIGNAL(clicked()), this, SLOT(clear()));
- connect(this, SIGNAL(textChanged(const QString&)), this, SLOT(updateCloseButton(const QString&)));
- int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
- setStyleSheet(QString("QLineEdit { padding-right: %1px; } ").arg(clearButton->sizeHint().width() + frameWidth + 1));
- QSize msz = minimumSizeHint();
- setMinimumSize(qMax(msz.width(), clearButton->sizeHint().height() + frameWidth * 2 + 2),
- qMax(msz.height(), clearButton->sizeHint().height() + frameWidth * 2 + 2));
-
- suggestions = new DictionarySuggestions(this);
-}
-
-QClearLineEdit::~QClearLineEdit()
-{
- delete suggestions;
- delete clearButton;
-}
-
-void QClearLineEdit::resizeEvent(QResizeEvent *)
-{
- QSize sz = clearButton->sizeHint();
- int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
- clearButton->move(rect().right() - frameWidth - sz.width(),
- (rect().bottom() + 1 - sz.height())/2);
-}
-
-void QClearLineEdit::updateCloseButton(const QString& text)
-{
- clearButton->setVisible(!text.isEmpty());
-}
-
-DictionarySuggestions * QClearLineEdit::getSuggestions()
-{
- return suggestions;
-}
diff --git a/hdt-it/qclearlineedit.hpp b/hdt-it/qclearlineedit.hpp
deleted file mode 100644
index d818da9e..00000000
--- a/hdt-it/qclearlineedit.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef QCLEARLINEEDIT_HPP
-#define QCLEARLINEEDIT_HPP
-
-#include
-
-#include "dictionarysuggestions.hpp"
-
-class QToolButton;
-
-class QClearLineEdit: public QLineEdit
-{
- Q_OBJECT
-
-public:
- QClearLineEdit(QWidget *parent = 0);
- ~QClearLineEdit();
- DictionarySuggestions *getSuggestions();
-
-protected:
- void resizeEvent(QResizeEvent *);
-
-private slots:
- void updateCloseButton(const QString &text);
-
-private:
- QToolButton *clearButton;
- DictionarySuggestions *suggestions;
-};
-
-#endif // QCLEARLINEEDIT_HPP
diff --git a/hdt-it/regexmodel.cpp b/hdt-it/regexmodel.cpp
deleted file mode 100644
index 64891215..00000000
--- a/hdt-it/regexmodel.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-#include "stringutils.hpp"
-#include "regexmodel.hpp"
-
-#include
-#include
-
-class QFont;
-
-#include "../hdt-lib/src/dictionary/LiteralDictionary.hpp"
-
-RegexModel::RegexModel(HDTController *manager) : hdtController(manager), numResults(0), results(NULL)
-{
-}
-
-RegexModel::~RegexModel()
-{
- if(results!=NULL) {
- free(results);
- }
-}
-
-void RegexModel::setQuery(QString query)
-{
- if(hdtController->hasHDT()) {
- hdt::LiteralDictionary *dict = dynamic_cast(hdtController->getHDT()->getDictionary());
- if(dict==NULL) {
- QMessageBox::warning(NULL, tr("ERROR"), tr("This HDT does not support substring search"));
- return;
- }
- if(query.length()==0) {
- numResults = 0;
- } else {
- QByteArray arr = query.toUtf8();
- numResults = dict->substringToId((uchar *)arr.data(), arr.size(), &results);
- }
- emit layoutChanged();
- }
-}
-
-int RegexModel::rowCount(const QModelIndex &parent) const
-{
- return (int)numResults;
-}
-
-int RegexModel::columnCount(const QModelIndex &parent) const
-{
- return 2;
-}
-
-QVariant RegexModel::data(const QModelIndex &index, int role) const
-{
- if(results==NULL) {
- return QVariant();
- }
-
- switch(role) {
- case Qt::ToolTipRole:
- case Qt::DisplayRole:
- {
- hdt::Dictionary *d = hdtController->getHDT()->getDictionary();
-
- try {
- switch(index.column()) {
- case 0:
- {
- hdt::Triples *t = hdtController->getHDT()->getTriples();
-
- hdt::TripleID tripleObject(0, 0, results[index.row()]);
- hdt::IteratorTripleID *it = t->search(tripleObject);
-
- int nResults = it->estimatedNumResults();
- delete it;
-
- return nResults;
- }
- case 1: {
- return stringutils::toQString(d->idToString(results[index.row()], hdt::OBJECT).c_str());
- }
- }
-
- } catch (char *e) {
- cerr << "Error accesing dictionary: " << e << endl;
- } catch (const char *e) {
- cerr << "Error accesing dictionary: " << e << endl;
- }
- return QVariant();
-
- break;
- }
- case Qt::FontRole:
- {
- static QFont font;
- font.setPointSize(10);
- return font;
- }
-
- }
- return QVariant();
-}
-
-QVariant RegexModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
- switch(role) {
- case Qt::DisplayRole:
- {
- if(orientation == Qt::Horizontal) {
- switch(section) {
- case 0:
- return tr("Triples ");
- case 1:
- return tr("Object Literal");
- }
- } else {
- return QString::number(results[section]);
- }
- break;
- }
- }
-
- return QVariant();
-}
-
-void RegexModel::updateDatasetChanged()
-{
- if(results==NULL) {
- free(results);
- }
- numResults = 0;
- results=NULL;
-
- emit layoutChanged();
-}
diff --git a/hdt-it/regexmodel.hpp b/hdt-it/regexmodel.hpp
deleted file mode 100644
index 887e966d..00000000
--- a/hdt-it/regexmodel.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef REGEXMODEL_HPP
-#define REGEXMODEL_HPP
-
-#include
-
-#include "hdtcontroller.hpp"
-
-class HDTController;
-
-class RegexModel : public QAbstractTableModel
-{
- Q_OBJECT
-
-private:
- HDTController *hdtController;
- uint32_t numResults;
- uint32_t *results;
-
-public:
- explicit RegexModel(HDTController *manager);
- ~RegexModel();
-
- void setQuery(QString query);
-
- int rowCount(const QModelIndex &parent = QModelIndex()) const ;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
- QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
-
- void updateDatasetChanged();
-signals:
-
-public slots:
-
-};
-
-#endif // REGEXMODEL_HPP
diff --git a/hdt-it/resultcounter.cpp b/hdt-it/resultcounter.cpp
deleted file mode 100644
index f831e2b6..00000000
--- a/hdt-it/resultcounter.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#include "resultcounter.hpp"
-#include
-
-
-ResultCounter::ResultCounter(QObject *parent, HDTController *controller) :
- QObject(parent),
- hdtController(controller),
- iterator(NULL)
-{
-}
-
-void ResultCounter::startCounting()
-{
- if(!hdtController->hasHDT()){
- return;
- }
- iterator = hdtController->getHDT()->getTriples()->search(hdtController->getSearchPatternID());
- shouldCancel = false;
- QtConcurrent::run(this, &ResultCounter::run);
-}
-
-void ResultCounter::cancel()
-{
- shouldCancel = true;
-}
-
-void ResultCounter::run()
-{
- if(iterator==NULL) {
- return;
- }
- StopWatch cl;
- unsigned int numResults = 0;
- while(!shouldCancel && iterator->hasNext()) {
- iterator->next();
- numResults++;
-
- cl.stop();
- if(cl.getReal()>10000) {
- cl.reset();
- emit numResultsChanged(numResults);
- }
- }
- delete iterator;
- iterator = NULL;
- emit finished();
-}
diff --git a/hdt-it/resultcounter.hpp b/hdt-it/resultcounter.hpp
deleted file mode 100644
index e2671ee9..00000000
--- a/hdt-it/resultcounter.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef RESULTCOUNTER_HPP
-#define RESULTCOUNTER_HPP
-
-#include
-
-#include
-
-class ResultCounter : public QObject
-{
- Q_OBJECT
-private:
- HDTController *hdtController;
- hdt::IteratorTripleID *iterator;
- bool shouldCancel;
-public:
- explicit ResultCounter(QObject *parent, HDTController *hdtController);
-
- void run();
-signals:
- void numResultsChanged(int numResults);
- void messageChanged(QString message);
- void finished();
-private slots:
- void startCounting();
- void cancel();
-public slots:
-
-};
-
-#endif // RESULTCOUNTER_HPP
diff --git a/hdt-it/searchresultsmodel.cpp b/hdt-it/searchresultsmodel.cpp
deleted file mode 100644
index e03a38d3..00000000
--- a/hdt-it/searchresultsmodel.cpp
+++ /dev/null
@@ -1,179 +0,0 @@
-#include "stringutils.hpp"
-#include "searchresultsmodel.hpp"
-#include
-
-SearchResultsModel::SearchResultsModel(HDTController *view) : hdtController(view), triples(NULL)
-{
- this->updateResultListChanged();
-}
-
-SearchResultsModel::~SearchResultsModel()
-{
- if(triples!=NULL) {
- delete triples;
- triples = NULL;
- }
-}
-
-int SearchResultsModel::rowCount(const QModelIndex &parent) const
-{
- // FIXME: QTableView crashes when returning more than 100 Million rows :(
- return numResults > 100000000 ? 100000000 : numResults;
-}
-
-int SearchResultsModel::columnCount(const QModelIndex &parent) const
-{
- return 3;
-}
-
-QVariant SearchResultsModel::data(const QModelIndex &index, int role) const
-{
- if(triples == NULL) {
- return QVariant();
- }
-
- switch(role) {
- case Qt::ToolTipRole:
- case Qt::DisplayRole:
- {
- // cerr << "SearchResultsModel.data " << index.row() << "," << index.column() << endl;
- // Compiler complains that by calling findTriple we are modifying internal
- // state, which is illegal due to this function being const. But we need to
- // modify the currentIndex and currentTriple, so we can avoid it.
- SearchResultsModel *noConstThis = const_cast(this);
- noConstThis->findTriple(index.row());
-
- hdt::Dictionary *d = hdtController->getHDT()->getDictionary();
-
- try {
- switch(index.column()) {
- case 0:
- return stringutils::toQString(d->idToString(currentTriple->getSubject(), hdt::SUBJECT).c_str());
- case 1:
- return stringutils::toQString(d->idToString(currentTriple->getPredicate(), hdt::PREDICATE).c_str());
- case 2:
- return stringutils::toQString(d->idToString(currentTriple->getObject(), hdt::OBJECT).c_str());
- }
- } catch (char *e) {
- cerr << "Error accesing dictionary: " << e << endl;
- } catch (const char *e) {
- cerr << "Error accesing dictionary: " << e << endl;
- }
- return QVariant();
-
- break;
- }
- case Qt::FontRole:
- {
- static QFont font;
- font.setPointSize(10);
- return font;
- }
-
- }
- return QVariant();
-}
-
-
-QVariant SearchResultsModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
-
- switch(role) {
- case Qt::DisplayRole:
- {
- if(orientation == Qt::Horizontal) {
- switch(section) {
- case 0:
- return tr("Subject");
- case 1:
- return tr("Predicate");
- case 2:
- return tr("Object");
- }
- } else {
- return QString::number(section+1);
- }
- break;
- }
- }
-
- return QVariant();
-}
-
-void SearchResultsModel::updateResultListChanged() {
- if(triples!=NULL) {
- delete triples;
- triples = NULL;
- }
-
- if(hdtController->hasHDT()) {
- triples = hdtController->getHDT()->getTriples()->search(hdtController->getSearchPatternID());
- if(triples->hasNext()) {
- currentTriple = triples->next();
- }
- } else {
- triples = NULL;
- currentTriple = NULL;
- numResults=0;
- }
- currentIndex = 0;
- goingUp = true;
- numResults = hdtController->getNumResults();
-
- emit layoutChanged();
-}
-
-void SearchResultsModel::updateNumResultsChanged()
-{
- unsigned int old = numResults;
- numResults = hdtController->getNumResults();
-
- if(old!=numResults) {
-#if 0
- beginInsertRows(QModelIndex(), old+1, numResults);
- endInsertRows();
- //emit dataChanged(createIndex(old+1,0), createIndex(numResults,2));
-#else
- emit layoutChanged();
-#endif
- }
-}
-
-
-void SearchResultsModel::findTriple(unsigned int index)
-{
- if(triples == NULL) {
- return;
- }
-
- if(triples->canGoTo() && abs((long int)currentIndex-(long int)index)>5) {
- triples->goTo(index);
- goingUp = true;
- currentTriple = triples->next();
- currentIndex = index;
- //cerr << "Jump: " << currentIndex << " => " << *currentTriple << endl;
- return;
- }
-
- while(currentIndex > index && triples->hasPrevious()) {
- if(goingUp) {
- // On direction changes, we need to move one extra position.
- goingUp = false;
- currentIndex++;
- }
- currentTriple = triples->previous();
- currentIndex--;
- }
-
- while(currentIndex < index && triples->hasNext()) {
- if(!goingUp){
- // On direction changes, we need to move one extra position.
- goingUp = true;
- currentIndex--;
- }
- currentTriple = triples->next();
- currentIndex++;
- }
-
- //cerr << "Access " << currentIndex << " => " << *currentTriple << endl;
-}
diff --git a/hdt-it/searchresultsmodel.hpp b/hdt-it/searchresultsmodel.hpp
deleted file mode 100644
index f4afdcfc..00000000
--- a/hdt-it/searchresultsmodel.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef SEARCHRESULTSMODEL_HPP
-#define SEARCHRESULTSMODEL_HPP
-
-#include
-
-#include
-
-#include "hdtcontroller.hpp"
-
-class HDTController;
-
-class SearchResultsModel : public QAbstractTableModel {
- Q_OBJECT
-private:
- HDTController *hdtController;
- hdt::IteratorTripleID *triples;
- hdt::TripleID *currentTriple;
- unsigned int currentIndex;
- unsigned int numResults;
- bool goingUp;
-
- void findTriple(unsigned int index);
-
-public:
- SearchResultsModel(HDTController *view);
- ~SearchResultsModel();
-
- int rowCount(const QModelIndex &parent = QModelIndex()) const ;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
- QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
-
- void updateResultListChanged();
- void updateNumResultsChanged();
-signals:
-};
-
-
-#endif // SEARCHRESULTSMODEL_HPP
diff --git a/hdt-it/sparqlform.cpp b/hdt-it/sparqlform.cpp
deleted file mode 100644
index a67a5891..00000000
--- a/hdt-it/sparqlform.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "sparqlform.hpp"
-#include "ui_sparqlform.h"
-
-#include "sparqlmodel.hpp"
-#include "hdtit.hpp"
-
-SparqlForm::SparqlForm(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::SparqlForm)
-{
- ui->setupUi(this);
-
- HDTit *hdtit = reinterpret_cast(parent);
- sparqlModel = new SparqlModel(hdtit->getManager());
- ui->sparqlResultTable->setModel(sparqlModel);
-}
-
-SparqlForm::~SparqlForm()
-{
- delete ui;
-}
-
-void SparqlForm::on_pushButton_clicked()
-{
- sparqlModel->setQuery(ui->sparqlTextEdit->toPlainText());
- ui->sparqlResultTable->scrollToTop();
-}
diff --git a/hdt-it/sparqlform.hpp b/hdt-it/sparqlform.hpp
deleted file mode 100644
index 03bada67..00000000
--- a/hdt-it/sparqlform.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef JOINFORM_HPP
-#define JOINFORM_HPP
-
-#include
-
-#include "sparqlmodel.hpp"
-
-namespace Ui {
- class SparqlForm;
-}
-
-class SparqlForm : public QMainWindow
-{
- Q_OBJECT
-
-public:
- explicit SparqlForm(QWidget *parent = 0);
- ~SparqlForm();
-
-private slots:
- void on_pushButton_clicked();
-
-private:
- Ui::SparqlForm *ui;
- SparqlModel *sparqlModel;
-};
-
-#endif // JOINFORM_HPP
diff --git a/hdt-it/sparqlform.ui b/hdt-it/sparqlform.ui
deleted file mode 100644
index 9ffcf56c..00000000
--- a/hdt-it/sparqlform.ui
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
- SparqlForm
-
-
-
- 0
- 0
- 603
- 664
-
-
-
- SPARQL Search
-
-
-
-
- 0
- 0
-
-
-
-
-
-
- Qt::Vertical
-
-
-
-
- 0
- 0
-
-
-
- SPARQL
-
-
-
-
-
-
- 0
- 1
-
-
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Lucida Grande'; font-size:13pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">SELECT ?x ?y ?z WHERE {?x ?y ?z . }</p></body></html>
-
-
-
-
-
-
- Search
-
-
-
-
-
-
-
- Qt::Horizontal
-
-
-
-
- 0
- 4
-
-
-
- true
-
-
- Qt::ElideMiddle
-
-
- 300
-
-
- 50
-
-
- 20
-
-
-
-
-
-
-
-
-
-
- 0
- 0
- 603
- 22
-
-
-
-
-
-
-
-
diff --git a/hdt-it/sparqlmodel.cpp b/hdt-it/sparqlmodel.cpp
deleted file mode 100644
index f81c43d9..00000000
--- a/hdt-it/sparqlmodel.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-#include "sparqlmodel.hpp"
-#include
-
-#include
-
-#include
-
-SparqlModel::SparqlModel(HDTController *controller) :
- hdtController(controller),
- binding(NULL),
- currentIndex(0),
- numresults(0)
-{
-}
-
-void SparqlModel::find(unsigned int index) {
- if(currentIndex>index) {
- currentIndex=0;
- binding->goToStart();
- binding->findNext();
- }
- while(currentIndexfindNext()) {
- currentIndex++;
- } else {
- numresults = currentIndex+1;
- emit layoutChanged();
- break;
- }
- }
-}
-
-SparqlModel::~SparqlModel()
-{
-
-}
-
-class SparqlQuery {
-public:
- set vars;
- vector patterns;
-};
-
-SparqlQuery parseSparql(string query) {
- struct SparqlQuery output;
- string word;
- unsigned int phase = 0;
- vector pattern;
-
- stringstream in(query, ios::in);
-
- while(in >> word) {
- cout << word << endl;
- if(word.size()==0) {
- continue;
- }
- if(phase==0) {
- if(word.at(0)=='?') {
- output.vars.insert(word);
- } else if(word=="WHERE") {
- phase++;
- }
- } else {
- if(word.at(0)=='.') {
- if(pattern.size()!=3) {
- throw "Pattern should have 3 components";
- }
- hdt::TripleString trip(pattern[0], pattern[1], pattern[2]);
- output.patterns.push_back(trip);
- pattern.clear();
- } else {
- if(word.at(0)=='{') {
-
- } else if(word.at(0)!='.'){
- cout << "**"<< word << "**" << endl;
- pattern.push_back(word);
- }
- }
- }
- }
- return output;
-}
-
-void SparqlModel::setQuery(QString queryTxt)
-{
- throw "Not implemented";
-#if 0
- SparqlQuery query = parseSparql(string(queryTxt.toAscii()));
-
- if(binding) {
- delete binding;
- }
-
- binding = hdtManager->getHDT()->searchJoin(query.patterns, query.vars);
- binding->findNext();
- numresults = binding->estimatedNumResults();
- currentIndex = 0;
-
- emit layoutChanged();
-#endif
-}
-
-int SparqlModel::rowCount(const QModelIndex &parent) const {
- return numresults;
-}
-int SparqlModel::columnCount(const QModelIndex &parent) const {
- if(binding==NULL) {
- return 0;
- }
- return binding->getNumVars();
-}
-QVariant SparqlModel::data(const QModelIndex &index, int role) const {
- if(binding == NULL) {
- return QVariant();
- }
-
- switch(role) {
- case Qt::ToolTipRole:
- case Qt::DisplayRole:
- {
- // Compiler complains that by calling findTriple we are modifying internal
- // state, which is illegal due to this function being const. But we need to
- // modify the currentIndex and currentTriple, so we can avoid it.
- SparqlModel *noConstThis = const_cast(this);
- noConstThis->find(index.row());
-
- return binding->getVar(index.column()).c_str();
- }
- case Qt::FontRole:
- {
- static QFont font;
- font.setPointSize(10);
- return font;
- }
-
- }
- return QVariant();
-}
-QVariant SparqlModel::headerData(int section, Qt::Orientation orientation, int role) const {
- if(binding==NULL) {
- return QVariant();
- }
- switch(role) {
- case Qt::DisplayRole:
- {
- if(orientation == Qt::Horizontal) {
- return binding->getVarName(section);
- } else {
- return QString::number(section+1);
- }
- break;
- }
- }
- return QVariant();
-}
diff --git a/hdt-it/sparqlmodel.hpp b/hdt-it/sparqlmodel.hpp
deleted file mode 100644
index 0e5147fd..00000000
--- a/hdt-it/sparqlmodel.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef JOINMODEL_HPP
-#define JOINMODEL_HPP
-
-#include
-
-#include
-
-#include "hdtcontroller.hpp"
-
-class SparqlModel : public QAbstractTableModel {
- Q_OBJECT
-private:
- HDTController *hdtController;
-
- hdt::VarBindingString *binding;
- unsigned int currentIndex;
- unsigned int numresults;
- void find(unsigned int index);
-public:
- SparqlModel(HDTController *controller);
- virtual ~SparqlModel();
-
- void setQuery(QString query);
-
- int rowCount(const QModelIndex &parent = QModelIndex()) const ;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
- QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
-signals:
-};
-
-#endif // JOINMODEL_HPP
diff --git a/hdt-it/stringutils.cpp b/hdt-it/stringutils.cpp
deleted file mode 100644
index 1ce01a8a..00000000
--- a/hdt-it/stringutils.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-#include
-
-#include
-#include "stringutils.hpp"
-
-QString stringutils::sizeHuman(unsigned long long size)
-{
- static const char *sizes[] = { "EB", "PB", "TB", "GB", "MB", "KB", "B" };
- static const quint64 exbibytes = 1024ULL * 1024ULL * 1024ULL * 1024ULL * 1024ULL * 1024ULL;
-
- quint64 multiplier = exbibytes;
-
- if(size==0) {
- return QString("0");
- }
-
- for (unsigned int i = 0; i < 7; i++, multiplier /= 1024)
- {
- if (size < multiplier) {
- continue;
- }
-
- return QString("%1 %2")
- .arg(QString::number((double)size / multiplier, 'f', 1))
- .arg(sizes[i]);
- }
- return QString("0");
-}
-
-QString stringutils::toQString(const char *str)
-{
-
- QString out = QString::fromUtf8(str);
-
- return out;
-}
-
-QString stringutils::escapeHTML(QString in)
-{
- return in.replace("<", "<").replace(">", ">");
-}
-
-void stringutils::cut(QString &in, int size)
-{
- if(in.length()>size) {
- in = in.left(size)+"...";
- }
-}
diff --git a/hdt-it/stringutils.hpp b/hdt-it/stringutils.hpp
deleted file mode 100644
index 3935e83d..00000000
--- a/hdt-it/stringutils.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef STRINGUTILS_HPP
-#define STRINGUTILS_HPP
-
-#include
-#include
-
-class stringutils
-{
-public:
- static QString sizeHuman(unsigned long long size);
- static QString toQString(const char *str);
- static QString escapeHTML(QString in);
- static void cut(QString &in, int size);
-};
-
-
-
-#endif // STRINGUTILS_HPP
diff --git a/hdt-it/triplecomponentmodel.cpp b/hdt-it/triplecomponentmodel.cpp
deleted file mode 100644
index 85aeaa89..00000000
--- a/hdt-it/triplecomponentmodel.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-#include
-
-#include "triplecomponentmodel.hpp"
-
-#include "stringutils.hpp"
-
-TripleComponentModel::TripleComponentModel(HDTController *view, hdt::TripleComponentRole compRole) :
- hdtController(view), tripleComponentRole(compRole)
-{
-
-}
-
-int TripleComponentModel::rowCount(const QModelIndex &parent) const
-{
- size_t numResults = 0;
-
- Q_UNUSED(parent);
- if(hdtController->getHDT() != NULL) {
- hdt::Dictionary *dict = hdtController->getHDT()->getDictionary();
- switch(tripleComponentRole) {
- case hdt::SUBJECT:
- numResults = dict->getNsubjects();
- break;
- case hdt::PREDICATE:
- numResults = dict->getNpredicates();
- break;
- case hdt::OBJECT:
- numResults = dict->getNobjects();
- break;
- }
- }
-
- // FIXME: QTableView crashes when returning more than 100 Million rows :(
- return (int)(numResults > 100000000 ? 100000000 : numResults);
-}
-
-int TripleComponentModel::columnCount(const QModelIndex &parent) const
-{
- return 1;
-}
-
-QVariant TripleComponentModel::data(const QModelIndex &index, int role) const
-{
- if(!hdtController->hasHDT()) {
- return QVariant();
- }
-
- switch(role) {
- case Qt::ToolTipRole:
- case Qt::DisplayRole:
- {
- //cerr << "Data: " << index.row() << " role: " << role << " type: " << tripleComponentRole << endl;
- hdt::Dictionary *d = hdtController->getHDT()->getDictionary();
- try {
- return stringutils::toQString(d->idToString(index.row()+1, tripleComponentRole).c_str());
- } catch (char *e) {
- cerr << "Error accessing dictionary: " << e << endl;
- } catch (const char *e) {
- cerr << "Error accessing dictionary: " << e << endl;
- }
- return QVariant();
- }
- case Qt::FontRole:
- {
- QFont font;
- font.setPointSize(10);
- return font;
- }
- case Qt::CheckStateRole:
- if(tripleComponentRole==hdt::PREDICATE) {
- return hdtController->getPredicateStatus()->isPredicateActive(index.row()) ? Qt::Checked : Qt::Unchecked;
- }
- break;
- case Qt::DecorationRole:
- if(tripleComponentRole==hdt::PREDICATE) {
- HDTCachedInfo *info = hdtController->getHDTCachedInfo();
- Color *color = info->getPredicateColor(index.row());
- return color->asQColor();
- }
- break;
- }
- return QVariant();
-}
-
-bool TripleComponentModel::setData(const QModelIndex &index, const QVariant &value, int role)
-{
- if(hdtController->getHDT() == NULL) {
- return false;
- }
-
- switch(role) {
- case Qt::CheckStateRole:
- if(tripleComponentRole==hdt::PREDICATE) {
- hdtController->getPredicateStatus()->setPredicateActive(index.row(), value.toBool());
- }
- }
- return true;
-}
-
-QVariant TripleComponentModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
-
- switch(role) {
- case Qt::DisplayRole:
- {
- if(orientation == Qt::Horizontal) {
- switch(tripleComponentRole) {
- case hdt::SUBJECT:
- return tr("Subject");
- case hdt::PREDICATE:
- return tr("Predicate");
- case hdt::OBJECT:
- return tr("Object");
- }
- } else {
- return QString::number(section+1);
- }
- break;
- }
- }
-
- return QVariant();
-}
-
-Qt::ItemFlags TripleComponentModel::flags(const QModelIndex &index) const
-{
- Q_UNUSED(index);
- if(tripleComponentRole == hdt::PREDICATE) {
- return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable;
- } else {
- return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
- }
-}
-
-void TripleComponentModel::itemsChanged(unsigned int ini, unsigned int fin)
-{
- QModelIndex first = createIndex(ini, 1);
- QModelIndex last = createIndex(fin, 1);
- emit dataChanged(first, last);
-}
-
-void TripleComponentModel::notifyLayoutChanged()
-{
- emit layoutChanged();
-}
diff --git a/hdt-it/triplecomponentmodel.hpp b/hdt-it/triplecomponentmodel.hpp
deleted file mode 100644
index 8c633279..00000000
--- a/hdt-it/triplecomponentmodel.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef TRIPLECOMPONENTMODEL_HPP
-#define TRIPLECOMPONENTMODEL_HPP
-
-#include
-
-#include
-
-#include "hdtcontroller.hpp"
-
-class HDTController;
-
-class TripleComponentModel : public QAbstractTableModel {
- Q_OBJECT
-private:
- HDTController *hdtController;
- hdt::TripleComponentRole tripleComponentRole;
-public:
- TripleComponentModel(HDTController *view, hdt::TripleComponentRole compRole);
-
- int rowCount(const QModelIndex &parent = QModelIndex()) const ;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
- QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
- bool setData(const QModelIndex & index, const QVariant & value, int role);
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
- Qt::ItemFlags flags(const QModelIndex &index) const;
-
-public slots:
- void itemsChanged(unsigned int ini, unsigned int fin);
- void notifyLayoutChanged();
-signals:
-};
-
-#endif // TRIPLECOMPONENTMODEL_HPP
diff --git a/lib/.gitignore b/lib/.gitignore
deleted file mode 100644
index d9f53942..00000000
--- a/lib/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/Makefile.am
-/dummy.c
diff --git a/lib/Makefile.in b/lib/Makefile.in
deleted file mode 100644
index 8664e08f..00000000
--- a/lib/Makefile.in
+++ /dev/null
@@ -1,803 +0,0 @@
-# Makefile.in generated by automake 1.15 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2014 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-# Copyright (C) 2002-2014 Free Software Foundation, Inc.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This file is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this file. If not, see .
-#
-# As a special exception to the GNU General Public License,
-# this file may be distributed as part of a program that
-# contains a configuration script generated by Autoconf, under
-# the same distribution terms as the rest of that program.
-#
-# Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build --no-conditional-dependencies --no-libtool --macro-prefix=gl warnings
-
-
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
- if test -z '$(MAKELEVEL)'; then \
- false; \
- elif test -n '$(MAKE_HOST)'; then \
- true; \
- elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
- true; \
- else \
- false; \
- fi; \
-}
-am__make_running_with_option = \
- case $${target_option-} in \
- ?) ;; \
- *) echo "am__make_running_with_option: internal error: invalid" \
- "target option '$${target_option-}' specified" >&2; \
- exit 1;; \
- esac; \
- has_opt=no; \
- sane_makeflags=$$MAKEFLAGS; \
- if $(am__is_gnu_make); then \
- sane_makeflags=$$MFLAGS; \
- else \
- case $$MAKEFLAGS in \
- *\\[\ \ ]*) \
- bs=\\; \
- sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
- | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
- esac; \
- fi; \
- skip_next=no; \
- strip_trailopt () \
- { \
- flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
- }; \
- for flg in $$sane_makeflags; do \
- test $$skip_next = yes && { skip_next=no; continue; }; \
- case $$flg in \
- *=*|--*) continue;; \
- -*I) strip_trailopt 'I'; skip_next=yes;; \
- -*I?*) strip_trailopt 'I';; \
- -*O) strip_trailopt 'O'; skip_next=yes;; \
- -*O?*) strip_trailopt 'O';; \
- -*l) strip_trailopt 'l'; skip_next=yes;; \
- -*l?*) strip_trailopt 'l';; \
- -[dEDm]) skip_next=yes;; \
- -[JT]) skip_next=yes;; \
- esac; \
- case $$flg in \
- *$$target_option*) has_opt=yes; break;; \
- esac; \
- done; \
- test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = lib
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/gnulib-common.m4 \
- $(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/libtool.m4 \
- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
- $(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
- $(am__DIST_COMMON)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/build/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-LIBRARIES = $(noinst_LIBRARIES)
-AM_V_AR = $(am__v_AR_@AM_V@)
-am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
-am__v_AR_0 = @echo " AR " $@;
-am__v_AR_1 =
-libgnu_a_AR = $(AR) $(ARFLAGS)
-am__DEPENDENCIES_1 =
-am_libgnu_a_OBJECTS = dummy.$(OBJEXT)
-libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS)
-LTLIBRARIES = $(noinst_LTLIBRARIES)
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo " GEN " $@;
-am__v_GEN_1 =
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 =
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/build
-depcomp = $(SHELL) $(top_srcdir)/build/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 =
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo " CC " $@;
-am__v_CC_1 =
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo " CCLD " $@;
-am__v_CCLD_1 =
-SOURCES = $(libgnu_a_SOURCES) $(EXTRA_libgnu_a_SOURCES)
-DIST_SOURCES = $(libgnu_a_SOURCES) $(EXTRA_libgnu_a_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
- ctags-recursive dvi-recursive html-recursive info-recursive \
- install-data-recursive install-dvi-recursive \
- install-exec-recursive install-html-recursive \
- install-info-recursive install-pdf-recursive \
- install-ps-recursive install-recursive installcheck-recursive \
- installdirs-recursive pdf-recursive ps-recursive \
- tags-recursive uninstall-recursive
-am__can_run_installinfo = \
- case $$AM_UPDATE_INFO_DIR in \
- n|no|NO) false;; \
- *) (install-info --version) >/dev/null 2>&1;; \
- esac
-HEADERS = $(noinst_HEADERS)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
- $(RECURSIVE_TARGETS) \
- $(RECURSIVE_CLEAN_TARGETS) \
- $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- distdir
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates. Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
- BEGIN { nonempty = 0; } \
- { items[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique. This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
- list='$(am__tagged_files)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/build/depcomp
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-HAVE_ZLIB = @HAVE_ZLIB@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBCDS_CFLAGS = @LIBCDS_CFLAGS@
-LIBCDS_HDR = @LIBCDS_HDR@
-LIBCDS_LIB = @LIBCDS_LIB@
-LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
-LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
-MAKEINFO = @MAKEINFO@
-MANIFEST_TOOL = @MANIFEST_TOOL@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-PKG_CONFIG = @PKG_CONFIG@
-PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
-PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
-RANLIB = @RANLIB@
-RAPTOR2_CFLAGS = @RAPTOR2_CFLAGS@
-RAPTOR2_HDR = @RAPTOR2_HDR@
-RAPTOR2_LIB = @RAPTOR2_LIB@
-SED = @SED@
-SERD_CFLAGS = @SERD_CFLAGS@
-SERD_HDR = @SERD_HDR@
-SERD_LIB = @SERD_LIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-WARN_CFLAGS = @WARN_CFLAGS@
-ZLIB_LIB = @ZLIB_LIB@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_AR = @ac_ct_AR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-gl_LIBOBJS = @gl_LIBOBJS@
-gl_LTLIBOBJS = @gl_LTLIBOBJS@
-gltests_LIBOBJS = @gltests_LIBOBJS@
-gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
-gltests_WITNESS = @gltests_WITNESS@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-runstatedir = @runstatedir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-zlib_CFLAGS = @zlib_CFLAGS@
-zlib_LIBS = @zlib_LIBS@
-AUTOMAKE_OPTIONS = 1.9.6 gnits
-SUBDIRS =
-noinst_HEADERS =
-noinst_LIBRARIES = libgnu.a
-noinst_LTLIBRARIES =
-EXTRA_DIST =
-BUILT_SOURCES =
-SUFFIXES =
-MOSTLYCLEANFILES = core *.stackdump
-MOSTLYCLEANDIRS =
-CLEANFILES =
-DISTCLEANFILES =
-MAINTAINERCLEANFILES =
-AM_CPPFLAGS =
-AM_CFLAGS =
-libgnu_a_SOURCES = dummy.c
-libgnu_a_LIBADD = $(gl_LIBOBJS)
-libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
-EXTRA_libgnu_a_SOURCES =
-all: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnits lib/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-noinstLIBRARIES:
- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
-
-libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) $(EXTRA_libgnu_a_DEPENDENCIES)
- $(AM_V_at)-rm -f libgnu.a
- $(AM_V_AR)$(libgnu_a_AR) libgnu.a $(libgnu_a_OBJECTS) $(libgnu_a_LIBADD)
- $(AM_V_at)$(RANLIB) libgnu.a
-
-clean-noinstLTLIBRARIES:
- -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
- @list='$(noinst_LTLIBRARIES)'; \
- locs=`for p in $$list; do echo $$p; done | \
- sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
- sort -u`; \
- test -z "$$locs" || { \
- echo rm -f $${locs}; \
- rm -f $${locs}; \
- }
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dummy.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-# (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
- @fail=; \
- if $(am__make_keepgoing); then \
- failcom='fail=yes'; \
- else \
- failcom='exit 1'; \
- fi; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
- $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- set x; \
- here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
- $(am__define_uniq_tagged_files); \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
- $(am__define_uniq_tagged_files); \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
- list='$(am__tagged_files)'; \
- case "$(srcdir)" in \
- [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
- *) sdir=$(subdir)/$(srcdir) ;; \
- esac; \
- for i in $$list; do \
- if test -f "$$i"; then \
- echo "$(subdir)/$$i"; \
- else \
- echo "$$sdir/$$i"; \
- fi; \
- done >> $(top_builddir)/cscope.files
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
-check-am: all-am
-check: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) check-recursive
-all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS)
-installdirs: installdirs-recursive
-installdirs-am:
-install: $(BUILT_SOURCES)
- $(MAKE) $(AM_MAKEFLAGS) install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
- if test -z '$(STRIP)'; then \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- install; \
- else \
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
- fi
-mostlyclean-generic:
- -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
- -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
- -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
- -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-clean: clean-recursive
-
-clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
- clean-noinstLTLIBRARIES mostlyclean-am
-
-distclean: distclean-recursive
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool mostlyclean-local
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: $(am__recursive_targets) all check install install-am \
- install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
- check-am clean clean-generic clean-libtool \
- clean-noinstLIBRARIES clean-noinstLTLIBRARIES cscopelist-am \
- ctags ctags-am distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-pdf install-pdf-am \
- install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs installdirs-am maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \
- pdf-am ps ps-am tags tags-am uninstall uninstall-am
-
-.PRECIOUS: Makefile
-
-
-mostlyclean-local: mostlyclean-generic
- @for dir in '' $(MOSTLYCLEANDIRS); do \
- if test -n "$$dir" && test -d $$dir; then \
- echo "rmdir $$dir"; rmdir $$dir; \
- fi; \
- done; \
- :
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libcds/COPYRIGHT b/libcds/COPYRIGHT
deleted file mode 100644
index a2a1d92d..00000000
--- a/libcds/COPYRIGHT
+++ /dev/null
@@ -1,504 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
- GNU LESSER GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- , 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
-
-
diff --git a/libcds/Changelog b/libcds/Changelog
deleted file mode 100644
index fb874b85..00000000
--- a/libcds/Changelog
+++ /dev/null
@@ -1,38 +0,0 @@
-
-Version 0.9:
-
-- static_bitsequence:
- - added sdarray
-- static_sequence:
- - added sequence representation based in sdarray (no efficient access)
-
-Version 0.8:
-
-- trying:
- - git
-- missing:
- - improve design and class names
- - add namespaces
- - reference counters for coders and util clases
-- static_bitsequence:
- - Added base class with virtual functions
- - Added testing naive rank/select
- - Added rank/select with one-level sampling
- - Added compressed representation
-- static_sequence
- - Added wavelet tree without pointers
- - Added wavelet tree with pointers
- - Added coder for giving huffman/normal shape to the wavelet tree
- - Added Golynski et al.'s data structure for large alphabets
-- static_permutation
- - Added Diego Arroyuelo's implementation of Munro et al.'s permutations
- - Added base classes
- - TODO: check interface and add functionality
-- coders
- - temporal coders for the wavelet tree
- - TODO: add coders and a general interface for them
-- utils
- - Added the alphabet mapper interface
- - Added a dummy alphabet mapper
-
-
diff --git a/libcds/Doxyfile b/libcds/Doxyfile
deleted file mode 100755
index 09423c4c..00000000
--- a/libcds/Doxyfile
+++ /dev/null
@@ -1,307 +0,0 @@
-# Doxyfile 1.5.5
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-DOXYFILE_ENCODING = UTF-8
-PROJECT_NAME = libcds
-PROJECT_NUMBER = 1.0.3
-OUTPUT_DIRECTORY = docs/
-CREATE_SUBDIRS = NO
-OUTPUT_LANGUAGE = English
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ABBREVIATE_BRIEF = "The $name class" \
- "The $name widget" \
- "The $name file" \
- is \
- provides \
- specifies \
- contains \
- represents \
- a \
- an \
- the
-ALWAYS_DETAILED_SEC = NO
-INLINE_INHERITED_MEMB = NO
-FULL_PATH_NAMES = YES
-STRIP_FROM_PATH = src/
-STRIP_FROM_INC_PATH =
-SHORT_NAMES = NO
-JAVADOC_AUTOBRIEF = NO
-QT_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP = NO
-INHERIT_DOCS = YES
-SEPARATE_MEMBER_PAGES = NO
-TAB_SIZE = 2
-ALIASES =
-OPTIMIZE_OUTPUT_FOR_C = NO
-OPTIMIZE_OUTPUT_JAVA = NO
-OPTIMIZE_FOR_FORTRAN = NO
-OPTIMIZE_OUTPUT_VHDL = NO
-BUILTIN_STL_SUPPORT = NO
-CPP_CLI_SUPPORT = NO
-SIP_SUPPORT = NO
-DISTRIBUTE_GROUP_DOC = NO
-SUBGROUPING = YES
-TYPEDEF_HIDES_STRUCT = NO
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL = NO
-EXTRACT_PRIVATE = NO
-EXTRACT_STATIC = YES
-EXTRACT_LOCAL_CLASSES = YES
-EXTRACT_LOCAL_METHODS = NO
-EXTRACT_ANON_NSPACES = NO
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-INTERNAL_DOCS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-SHOW_INCLUDE_FILES = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-SORT_BRIEF_DOCS = NO
-SORT_GROUP_NAMES = NO
-SORT_BY_SCOPE_NAME = NO
-GENERATE_TODOLIST = YES
-GENERATE_TESTLIST = YES
-GENERATE_BUGLIST = YES
-GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = YES
-SHOW_DIRECTORIES = NO
-FILE_VERSION_FILTER =
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET = NO
-WARNINGS = YES
-WARN_IF_UNDOCUMENTED = YES
-WARN_IF_DOC_ERROR = YES
-WARN_NO_PARAMDOC = NO
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = src
-INPUT_ENCODING = UTF-8
-FILE_PATTERNS = *.c \
- *.cc \
- *.cxx \
- *.cpp \
- *.c++ \
- *.d \
- *.java \
- *.ii \
- *.ixx \
- *.ipp \
- *.i++ \
- *.inl \
- *.h \
- *.hh \
- *.hxx \
- *.hpp \
- *.h++ \
- *.idl \
- *.odl \
- *.cs \
- *.php \
- *.php3 \
- *.inc \
- *.m \
- *.mm \
- *.dox \
- *.py \
- *.f90 \
- *.f \
- *.vhd \
- *.vhdl \
- *.C \
- *.CC \
- *.C++ \
- *.II \
- *.I++ \
- *.H \
- *.HH \
- *.H++ \
- *.CS \
- *.PHP \
- *.PHP3 \
- *.M \
- *.MM \
- *.PY \
- *.F90 \
- *.F \
- *.VHD \
- *.VHDL
-RECURSIVE = YES
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS =
-EXCLUDE_SYMBOLS = cds_static::sperm \
- cds_static::table_offset \
- cds_static::THuff \
- cds_static::Ttree \
- cds_utils::Array::ArrayModifier \
- cds_static::selects3 \
- cds_static::selectd2 \
- cds_static::auxbwd \
- cds_static::wt_node_internal \
- cds_static::wt_node_leaf \
- cds_static::wt_node
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS = *
-EXAMPLE_RECURSIVE = NO
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_PATTERNS =
-FILTER_SOURCE_FILES = NO
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER = YES
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION = NO
-REFERENCES_LINK_SOURCE = YES
-USE_HTAGS = NO
-VERBATIM_HEADERS = NO
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = NO
-COLS_IN_ALPHA_INDEX = 5
-IGNORE_PREFIX =
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = html
-HTML_FILE_EXTENSION = .html
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-GENERATE_DOCSET = NO
-DOCSET_FEEDNAME = "Doxygen generated docs"
-DOCSET_BUNDLE_ID = org.doxygen.Project
-HTML_DYNAMIC_SECTIONS = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = NO
-ENUM_VALUES_PER_LINE = 4
-GENERATE_TREEVIEW = NO
-TREEVIEW_WIDTH = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = YES
-LATEX_OUTPUT = latex
-LATEX_CMD_NAME = latex
-MAKEINDEX_CMD_NAME = makeindex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = YES
-USE_PDFLATEX = YES
-LATEX_BATCHMODE = NO
-LATEX_HIDE_INDICES = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-RTF_EXTENSIONS_FILE =
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-MAN_LINKS = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML = NO
-XML_OUTPUT = xml
-XML_SCHEMA =
-XML_DTD =
-XML_PROGRAMLISTING = YES
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD = NO
-PERLMOD_LATEX = NO
-PERLMOD_PRETTY = YES
-PERLMOD_MAKEVAR_PREFIX =
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = NO
-EXPAND_ONLY_PREDEF = NO
-SEARCH_INCLUDES = YES
-INCLUDE_PATH =
-INCLUDE_FILE_PATTERNS =
-PREDEFINED =
-EXPAND_AS_DEFINED =
-SKIP_FUNCTION_MACROS = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-TAGFILES =
-GENERATE_TAGFILE =
-ALLEXTERNALS = NO
-EXTERNAL_GROUPS = YES
-PERL_PATH = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS = YES
-MSCGEN_PATH =
-HIDE_UNDOC_RELATIONS = YES
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-GROUP_GRAPHS = YES
-UML_LOOK = NO
-TEMPLATE_RELATIONS = NO
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-CALL_GRAPH = NO
-CALLER_GRAPH = NO
-GRAPHICAL_HIERARCHY = YES
-DIRECTORY_GRAPH = YES
-DOT_IMAGE_FORMAT = png
-DOT_PATH =
-DOTFILE_DIRS =
-DOT_GRAPH_MAX_NODES = 50
-MAX_DOT_GRAPH_DEPTH = 1000
-DOT_TRANSPARENT = YES
-DOT_MULTI_TARGETS = NO
-GENERATE_LEGEND = YES
-DOT_CLEANUP = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-SEARCHENGINE = NO
diff --git a/libcds/Makefile.am b/libcds/Makefile.am
deleted file mode 100644
index 9b772df3..00000000
--- a/libcds/Makefile.am
+++ /dev/null
@@ -1,172 +0,0 @@
-SUBDIRS = . tests
-
-AUTOMAKE_OPTIONS = subdir-objects
-
-AM_CPPFLAGS = -I$(builddir)/include $(WARN_CFLAGS)
-
-include_HEADERS =
-lib_LTLIBRARIES =
-
-if WANTS_LIBCDS
-include_HEADERS += \
- include/Array.h \
- include/BitmapsSequence.h\
- include/BitSequenceBuilderDArray.h\
- include/BitSequenceBuilder.h\
- include/BitSequenceBuilderRG.h\
- include/BitSequenceBuilderRRR.h\
- include/BitSequenceBuilderSDArray.h\
- include/BitSequenceDArray.h\
- include/BitSequence.h\
- include/BitSequenceRG.h\
- include/BitSequenceRRR.h\
- include/BitSequenceSDArray.h\
- include/BitString.h\
- include/Coder.h\
- include/comparray4.h\
- include/cppUtils.h\
- include/factorization.h\
- include/factorization_var.h\
- include/huff.h\
- include/HuffmanCoder.h\
- include/interface.h\
- include/LCP_DAC.h\
- include/LCP_DAC_VAR.h\
- include/LCP_FMN.h\
- include/LCP.h\
- include/LCP_naive.h\
- include/LCP_PhiSpare.h\
- include/LCP_PT.h\
- include/LCP_Sad.h\
- include/libcdsBasics.h\
- include/libcdsSDArray.h\
- include/libcdsTrees.h\
- include/MapperCont.h\
- include/Mapper.h\
- include/MapperNone.h\
- include/MapperRev.h\
- include/mmap.h\
- include/NPR_CN.h\
- include/NPR_FMN.h\
- include/NPR.h\
- include/NSV.h\
- include/perm.h\
- include/PermutationBuilder.h\
- include/PermutationBuilderMRRR.h\
- include/PermutationBuilderWT.h\
- include/Permutation.h\
- include/PermutationMRRR.h\
- include/PermutationWT.h\
- include/PSV.h\
- include/RMQ_succinct.h\
- include/RMQ_succinct_lcp.h\
- include/sdarraySadakane.h\
- include/SequenceAlphPart.h\
- include/SequenceBuilderAlphPart.h\
- include/SequenceBuilderGMRChunk.h\
- include/SequenceBuilderGMR.h\
- include/SequenceBuilder.h\
- include/SequenceBuilderStr.h\
- include/SequenceBuilderWaveletMatrix.h\
- include/SequenceBuilderWaveletTree.h\
- include/SequenceBuilderWaveletTreeNoptrs.h\
- include/SequenceBuilderWaveletTreeNoptrsS.h\
- include/SequenceGMRChunk.h\
- include/SequenceGMR.h\
- include/Sequence.h\
- include/SuffixTree.h\
- include/SuffixTreeY.h\
- include/TableOffsetRRR.h\
- include/TextIndexCSA.h\
- include/TextIndex.h\
- include/timing.h\
- include/WaveletMatrix.h\
- include/WaveletTree.h\
- include/WaveletTreeNoptrs.h\
- include/WaveletTreeNoptrsS.h\
- include/wt_coder_binary.h\
- include/wt_coder.h\
- include/wt_coder_huff.h\
- include/wt_node.h\
- include/wt_node_internal.h\
- include/wt_node_leaf.h
-lib_LTLIBRARIES += libcds.la
-pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = cds.pc
-endif
-libcds_la_SOURCES = \
-src/static/bitsequence/BitSequenceBuilderDArray.cpp\
-src/static/bitsequence/BitSequenceBuilderRG.cpp\
-src/static/bitsequence/BitSequenceBuilderRRR.cpp\
-src/static/bitsequence/BitSequenceBuilderSDArray.cpp\
-src/static/bitsequence/BitSequence.cpp\
-src/static/bitsequence/BitSequenceDArray.cpp\
-src/static/bitsequence/BitSequenceRG.cpp\
-src/static/bitsequence/BitSequenceRRR.cpp\
-src/static/bitsequence/BitSequenceSDArray.cpp\
-src/static/bitsequence/sdarraySadakane.cpp\
-src/static/bitsequence/TableOffsetRRR.cpp\
-src/static/coders/huff.cpp\
-src/static/coders/HuffmanCoder.cpp\
-src/static/mapper/MapperCont.cpp\
-src/static/mapper/Mapper.cpp\
-src/static/mapper/MapperNone.cpp\
-src/static/mapper/MapperRev.cpp\
-src/static/permutation/perm.cpp\
-src/static/permutation/PermutationBuilderMRRR.cpp\
-src/static/permutation/PermutationBuilderWT.cpp\
-src/static/permutation/Permutation.cpp\
-src/static/permutation/PermutationMRRR.cpp\
-src/static/permutation/PermutationWT.cpp\
-src/static/sequence/BitmapsSequence.cpp\
-src/static/sequence/SequenceAlphPart.cpp\
-src/static/sequence/SequenceBuilderAlphPart.cpp\
-src/static/sequence/SequenceBuilderGMRChunk.cpp\
-src/static/sequence/SequenceBuilderGMR.cpp\
-src/static/sequence/SequenceBuilderStr.cpp\
-src/static/sequence/SequenceBuilderWaveletMatrix.cpp\
-src/static/sequence/SequenceBuilderWaveletTree.cpp\
-src/static/sequence/SequenceBuilderWaveletTreeNoptrs.cpp\
-src/static/sequence/SequenceBuilderWaveletTreeNoptrsS.cpp\
-src/static/sequence/Sequence.cpp\
-src/static/sequence/SequenceGMRChunk.cpp\
-src/static/sequence/SequenceGMR.cpp\
-src/static/sequence/WaveletMatrix.cpp\
-src/static/sequence/WaveletTree.cpp\
-src/static/sequence/WaveletTreeNoptrs.cpp\
-src/static/sequence/WaveletTreeNoptrsS.cpp\
-src/static/sequence/wt_coder_binary.cpp\
-src/static/sequence/wt_coder.cpp\
-src/static/sequence/wt_coder_huff.cpp\
-src/static/sequence/wt_node.cpp\
-src/static/sequence/wt_node_internal.cpp\
-src/static/sequence/wt_node_leaf.cpp\
-src/static/suffixtree/factorization.cpp\
-src/static/suffixtree/factorization_var.cpp\
-src/static/suffixtree/LCP.cpp\
-src/static/suffixtree/LCP_DAC.cpp\
-src/static/suffixtree/LCP_DAC_VAR.cpp\
-src/static/suffixtree/LCP_FMN.cpp\
-src/static/suffixtree/LCP_naive.cpp\
-src/static/suffixtree/LCP_PhiSpare.cpp\
-src/static/suffixtree/LCP_PT.cpp\
-src/static/suffixtree/LCP_Sad.cpp\
-src/static/suffixtree/NPR_CN.cpp\
-src/static/suffixtree/NPR.cpp\
-src/static/suffixtree/NPR_FMN.cpp\
-src/static/suffixtree/NSV.cpp\
-src/static/suffixtree/PSV.cpp\
-src/static/suffixtree/RMQ_succinct.cpp\
-src/static/suffixtree/RMQ_succinct_lcp.cpp\
-src/static/suffixtree/SuffixTree.cpp\
-src/static/suffixtree/SuffixTreeY.cpp\
-src/static/textindex/comparray4.cpp\
-src/static/textindex/mmap.cpp\
-src/static/textindex/qsufsort.cpp\
-src/static/textindex/suftest3.test.cpp\
-src/static/textindex/TextIndex.cpp\
-src/static/textindex/TextIndexCSA.cpp\
-src/utils/Array.cpp\
-src/utils/BitString.cpp\
-src/utils/cppUtils.cpp\
-src/utils/timing.cpp
diff --git a/libcds/README b/libcds/README
deleted file mode 100644
index 4ea46337..00000000
--- a/libcds/README
+++ /dev/null
@@ -1,12 +0,0 @@
-libcds implements low-level succinct data structures such as bitmaps,
-sequences, permutations, etc. The main goal is to provide a set of
-structures that form the building block of most compressed/succinct
-solutions. In the near future we are planning to add compression
-algorithms and support for succinct trees.
-
-You can find more information at http://libcds.recoded.cl/
-
-Right now we are just fixing bugs and testing some new things in here,
-but most of the effort is being put into libcds2, this rewrite aims at
-solving many problems with 64bits systems. This is necessary in order
-to index bigger inputs.
\ No newline at end of file
diff --git a/libcds/cds.pc.in b/libcds/cds.pc.in
deleted file mode 100644
index ad88e76e..00000000
--- a/libcds/cds.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: libcds
-Description: CDS library
-Version: 1.0.12
-URL: @PACKAGE_URL@
-Libs: -L${libdir} -lcds
-Cflags: -I${includedir}
diff --git a/libcds/docs/delete_me b/libcds/docs/delete_me
deleted file mode 100644
index e69de29b..00000000
diff --git a/libcds/include/Array.h b/libcds/include/Array.h
deleted file mode 100644
index e7814c3e..00000000
--- a/libcds/include/Array.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/* array.h
- * Copyright (C) 2009, Francisco Claude, all rights reserved.
- *
- * Array interface
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#include
-#include
-#include
-
-#ifndef ARRAY_H
-#define ARRAY_H
-
-#include
-
-using namespace std;
-
-namespace cds_utils
-{
- /** Class for arrays with variable bit-width
- * @author Francisco Claude
- */
- class Array
- {
- public:
- class ArrayModifier
- {
- protected:
- uint * data;
- size_t len;
- uint bitsPerItem;
- size_t pos;
- public:
- ArrayModifier(uint * _data, size_t _len, uint _bitsPerItem, size_t _pos)
- : data(_data), len(_len), bitsPerItem(_bitsPerItem), pos(_pos) {}
- inline uint operator=(const uint v) {
- set_field(data, bitsPerItem, pos, v);
- return v;
- }
- };
- public:
- /** Reads and Array from a file stream
- * @param input input file stream
- */
- Array(istream & input);
-
- /** Creates an array from a vector
- * @param A vector with the elements
- * @bpe bits per element
- */
- Array(const vector & A, uint bpe=0);
-
- /** Creates an array from a vector iterator
- * @param ini initial position
- * @param fin final position
- * @bpe bits per element
- */
- Array(const vector::iterator & ini, const vector::iterator & fin, uint bpe=0);
-
- /** Creates an array from a set iterator
- * @param ini initial position
- * @param fin final position
- * @bpe bits per element
- */
- Array(const set::iterator & ini, const set::iterator & fin, uint bpe=0);
-
- /** Creates an array copying part of a previously existing array
- * @param A source array
- * @param n length of the source array
- * @param bpe bits per element (0 uses the max in A[i,j]
- */
- Array(uint * A, size_t n, uint bpe = 0);
-
- /** Creates an array copying part of a previously existing array
- * @param A source array
- * @param i initial position
- * @param j final position
- * @param bpe bits per element (0 uses the max in A[i,j]
- */
- Array(uint * A, size_t i, size_t j, uint bpe = 0);
-
- /** Creates and array with n elements that can store elements between 0 and _maxValue
- * @param n length (in elements) of the array
- * @param _maxValue maximum value that could be stored in the array
- */
- Array(size_t n, uint _maxValue);
-
- /** Destroys the array */
- ~Array();
-
- /** Retrieves Array[pos]
- * @paran pos position
- * @return Array[pos]
- */
- inline uint getField(const size_t pos) const
- {
- assert(pos
-
-#define RRR02_HDR 2
-#define BRW32_HDR 3
-#define RRR02_LIGHT_HDR 4
-#define SDARRAY_HDR 5
-#define DARRAY_HDR 6
-#define BS375_HDR 7
-
-#include
-#include
-#include
-
-using namespace std;
-using namespace cds_utils;
-
-namespace cds_static
-{
-
- /** Base class for static bitsequences, contains many abstract functions, so this can't
- * be instantiated. It includes base implementations for rank0, select0 and select1 based
- * on rank0.
- *
- * @author Francisco Claude
- */
- class BitSequence
- {
-
- public:
- virtual ~BitSequence() {};
-
- /** Returns the number of zeros until position i */
- virtual size_t rank0(const size_t i) const;
-
- /** Returns the position of the i-th zero
- * @return (size_t)-1 if i=0, len if i>num_zeros or the position */
- virtual size_t select0(const size_t i) const;
-
- /** Returns the number of ones until position i */
- virtual size_t rank1(const size_t i) const;
-
- /** Returns the position of the i-th one
- * @return (size_t)-1 if i=0, len if i>num_ones or the position */
- virtual size_t select1(const size_t i) const;
-
- /** Return the first position starting at i that contains a 1.
- * In case there are no more ones in the bitsequence, the function
- * returns the length of the bitmap
- */
- virtual size_t selectNext1(const size_t i) const;
-
- /** Return the first position starting at i that contains a 0.
- * In case there are no more zeros in the bitsequence, the function
- * returns the length of the bitmap
- */
- virtual size_t selectNext0(const size_t i) const;
-
- /** Return the first position starting at i moving to the left that contains a 1.
- * In case there are no more ones to the left in the bitsequence, the function
- * returns (size_t)-1.
- */
- virtual size_t selectPrev1(const size_t i) const;
-
- /** Return the first position starting at i moving to the left that contains a 0.
- * In case there are no more zeros to the left in the bitsequence, the function
- * returns (size_t)-1.
- */
- virtual size_t selectPrev0(const size_t i) const;
-
- /** Returns the i-th bit */
- virtual bool access(const size_t i) const;
- virtual bool access(const size_t i, size_t &r) const;
-
- /** Returns the length in bits of the bitmap */
- virtual size_t getLength() const;
-
- /** Returns how many ones are in the bitstring */
- virtual size_t countOnes() const;
-
- /** Returns how many zeros are in the bitstring */
- virtual size_t countZeros() const;
-
- /** Returns the size of the structure in bytes */
- virtual size_t getSize() const=0;
-
- /** Stores the bitmap given a file pointer*/
- virtual void save(ostream & fp) const=0;
-
- /** Reads a bitmap determining the type */
- static BitSequence * load(istream & fp);
-
- protected:
- /** Length of the bitstring */
- size_t length;
- /** Number of ones in the bitstring */
- size_t ones;
-
- };
-
-};
-
-#include
-#include
-#include
-#include
-#endif /* _STATIC_BITSEQUENCE_H */
diff --git a/libcds/include/BitSequenceBuilder.h b/libcds/include/BitSequenceBuilder.h
deleted file mode 100644
index e015af2a..00000000
--- a/libcds/include/BitSequenceBuilder.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* BitSequenceBuilder.h
- * Copyright (C) 2008, Francisco Claude, all rights reserved.
- *
- * Francisco Claude
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef BITSEQUENCEBUILDER_H
-#define BITSEQUENCEBUILDER_H
-
-#include
-#include
-#include
-
-using namespace cds_utils;
-
-namespace cds_static
-{
- /** Base class for BitSequence builders, it defines the build function
- * that takes only a bitmap. The parameters for construction are can
- * be set in any way by the builder, but none are received when
- * the actual building takes place.
- *
- * @author Francisco Claude
- */
- class BitSequenceBuilder
- {
- public:
- BitSequenceBuilder() { userCount=0; }
- virtual ~BitSequenceBuilder() {}
- virtual void use() { userCount++; }
- virtual void unuse() { userCount--; assert(userCount>=0); if(userCount==0) delete this; }
- virtual BitSequence * build(uint * bitseq, size_t len) const = 0;
- virtual BitSequence * build(const BitString & bs) const = 0;
-
- protected:
- int userCount;
- };
-};
-
-#include
-#include
-#include
-#include
-#endif
diff --git a/libcds/include/BitSequenceBuilderDArray.h b/libcds/include/BitSequenceBuilderDArray.h
deleted file mode 100644
index c31eb423..00000000
--- a/libcds/include/BitSequenceBuilderDArray.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* BitSequenceBuilderDArray.h
- * Copyright (C) 2008, Francisco Claude, all rights reserved.
- *
- * Rodrigo Canovas
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef BITSEQUENCEBUILDERDARRAY_H
-#define BITSEQUENCEBUILDERDARRAY_H
-
-#include
-#include
-#include
-
-namespace cds_static
-{
- /** Base class for BitSequence builders, it defines the build function
- * that takes only a bitmap. The parameters for construction are can
- * be set in any way by the builder, but none are received when
- * the actual building takes place.
- *
- * @author Rodrigo Canovas
- */
- class BitSequenceBuilderDArray : public BitSequenceBuilder
- {
- public:
- BitSequenceBuilderDArray();
- virtual ~BitSequenceBuilderDArray();
- virtual BitSequence * build(uint * bitseq, size_t len) const;
- virtual BitSequence * build(const BitString & bs) const;
- };
-};
-#endif
diff --git a/libcds/include/BitSequenceBuilderRG.h b/libcds/include/BitSequenceBuilderRG.h
deleted file mode 100644
index 7f64e1a8..00000000
--- a/libcds/include/BitSequenceBuilderRG.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* BitSequenceBuilderRG.h
- * Copyright (C) 2008, Francisco Claude, all rights reserved.
- *
- * Francisco Claude
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef BITSEQUENCEBUILDERRG_H
-#define BITSEQUENCEBUILDERRG_H
-
-#include
-#include
-#include
-
-namespace cds_static
-{
- /** BitSequence builder for BitSequenceRG
- *
- * @author Francisco Claude
- */
- class BitSequenceBuilderRG : public BitSequenceBuilder
- {
- public:
- BitSequenceBuilderRG(uint factor);
- virtual ~BitSequenceBuilderRG() {}
- virtual BitSequence * build(uint * bitseq, size_t len) const;
- virtual BitSequence * build(const BitString & bs) const;
- protected:
- uint factor;
- };
-};
-#endif
diff --git a/libcds/include/BitSequenceBuilderRRR.h b/libcds/include/BitSequenceBuilderRRR.h
deleted file mode 100644
index e9fb0655..00000000
--- a/libcds/include/BitSequenceBuilderRRR.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* BitSequenceBuilderRRR.h
- * Copyright (C) 2008, Francisco Claude, all rights reserved.
- *
- * Francisco Claude
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef BITSEQUENCEBUILDERRRR_H
-#define BITSEQUENCEBUILDERRRR_H
-
-#include
-#include
-#include
-
-using namespace cds_utils;
-
-namespace cds_static
-{
- /** BitSequence builder for RRR BitSequences.
- *
- * @author Francisco Claude
- */
- class BitSequenceBuilderRRR : public BitSequenceBuilder
- {
- public:
- BitSequenceBuilderRRR(uint sample_rate);
- virtual ~BitSequenceBuilderRRR() {}
- virtual BitSequence * build(uint * bitseq, size_t len) const;
- virtual BitSequence * build(const BitString & bs) const;
- protected:
- uint sample_rate;
- };
-};
-#endif
diff --git a/libcds/include/BitSequenceBuilderSDArray.h b/libcds/include/BitSequenceBuilderSDArray.h
deleted file mode 100644
index edf83141..00000000
--- a/libcds/include/BitSequenceBuilderSDArray.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* BitSequenceBuilderSDArray.h
- * Copyright (C) 2008, Francisco Claude, all rights reserved.
- *
- * Francisco Claude
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef BITSEQUENCEBUILDERSDARRAY_H
-#define BITSEQUENCEBUILDERSDARRAY_H
-
-#include
-#include
-#include
-
-namespace cds_static
-{
- /** Base class for BitSequence builders, it defines the build function
- * that takes only a bitmap. The parameters for construction are can
- * be set in any way by the builder, but none are received when
- * the actual building takes place.
- *
- * @author Francisco Claude
- */
- class BitSequenceBuilderSDArray : public BitSequenceBuilder
- {
- public:
- BitSequenceBuilderSDArray();
- virtual ~BitSequenceBuilderSDArray();
- virtual BitSequence * build(uint * bitseq, size_t len) const;
- virtual BitSequence * build(const BitString & bs) const;
- };
-};
-#endif
diff --git a/libcds/include/BitSequenceDArray.h b/libcds/include/BitSequenceDArray.h
deleted file mode 100644
index 3745f61d..00000000
--- a/libcds/include/BitSequenceDArray.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* BitSequenceSDArray.h
- * Copyright (C) 2009, Francisco Claude, all rights reserved.
- *
- * Francisco Claude
- *
- * This class is a wrapper for the file sdarraySadakane,
- * implemented by K. Sadakane.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef _BITSEQUENCEDARRAY_H
-#define _BITSEQUENCEDARRAY_H
-
-#include
-#include
-#include
-#include
-
-using namespace cds_utils;
-
-namespace cds_static
-{
- class BitSequenceDArray: public BitSequence
- {
-
- public:
- /** Builds the DArray (Sadakane's dense version for rank/select*/
- BitSequenceDArray(const BitString & bs);
- /** Builds the DArray */
- BitSequenceDArray(uint * buff, size_t len);
- virtual ~BitSequenceDArray();
- virtual size_t select1(const size_t i) const;
- virtual size_t rank0(const size_t i) const;
- virtual size_t rank1(const size_t i) const;
- virtual size_t getSize() const;
- virtual void save(ostream & fp) const;
- static BitSequenceDArray * load(istream & fp);
-
- protected:
- uint m; //number of 1's
- uint nl, s_ss, s_sl;
- uint *a; //bitarray
- uint *lp;
- uint *sl;
- uint *ss;
- uint *p;
- uint *rl;
- uchar *rs;
-
- /** Internal building function, same parameters as the base constructor. */
- void build(uint *buff, size_t len);
-
- /** Protected constructor for loaders, you have to initialize data before
- *using an object built with this constructor.
- */
- BitSequenceDArray();
-
- };
-};
-#endif
diff --git a/libcds/include/BitSequenceRG.h b/libcds/include/BitSequenceRG.h
deleted file mode 100644
index bd18cf43..00000000
--- a/libcds/include/BitSequenceRG.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* BitSequenceRG.h
- Copyright (C) 2005, Rodrigo Gonzalez, all rights reserved.
-
- New RANK, SELECT, SELECT-NEXT and SPARSE RANK implementations.
- Adaptation to libcds by Francisco Claude
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-*/
-
-#ifndef _STATIC_BITSEQUENCE_BRW32_H
-#define _STATIC_BITSEQUENCE_BRW32_H
-
-#include
-#include
-#include
-
-namespace cds_static
-{
-
- /////////////
- //Rank(B,i)//
- /////////////
- //_factor = 0 => s=W*lgn
- //_factor = P => s=W*P
- //Is interesting to notice
- //factor=2 => overhead 50%
- //factor=3 => overhead 33%
- //factor=4 => overhead 25%
- //factor=20=> overhead 5%
-
- /** Implementation of Rodrigo Gonzalez et al. practical rank/select solution [1].
- * The interface was adapted.
- *
- * [1] Rodrigo Gonzalez, Szymon Grabowski, Veli Makinen, and Gonzalo Navarro.
- * Practical Implementation of Rank and Select Queries. WEA05.
- *
- * @author Rodrigo Gonzalez
- */
- class BitSequenceRG : public BitSequence
- {
- private:
- //bool owner;
- size_t n,integers;
- size_t factor,b,s;
- uint *Rs; //superblock array
-
- //uso interno para contruir el indice rank
- size_t BuildRankSub(size_t ini,size_t fin);
- void BuildRank(); //crea indice para rank
- BitSequenceRG();
- size_t SpaceRequirementInBits() const;
- size_t SpaceRequirement() const;
-
- public:
- uint *data;
- /** Build the BitSequenceRG with a sampling factor factor
- * The factor value has to be either 2,3,4 or 20, being the first one the fastest/bigger.
- */
- BitSequenceRG(uint *bitarray, size_t n, uint factor);
-
- /** Build the BitSequenceRG with a sampling factor factor
- * The factor value has to be either 2,3,4 or 20, being the first one the fastest/bigger.
- */
- BitSequenceRG(const BitString & bs, uint factor);
-
- ~BitSequenceRG(); //destructor
-
- virtual bool access(const size_t i) const;
- //Nivel 1 bin, nivel 2 sec-pop y nivel 3 sec-bit
- virtual size_t rank1(const size_t i) const;
-
- // gives the largest index i<=start such that IsBitSet(i)=true
- virtual size_t selectPrev1(const size_t start) const;
- // gives the smallest index i>=start such that IsBitSet(i)=true
- virtual size_t selectNext1(const size_t start) const;
- // gives the position of the x:th 1.
- virtual size_t select0(const size_t x) const;
- // gives the position of the x:th 1.
- virtual size_t select1(const size_t x) const;
- virtual size_t getSize() const;
-
- /*load-save functions*/
- virtual void save(ostream & f) const;
- static BitSequenceRG * load(istream & f);
- };
-
-}
-#endif
diff --git a/libcds/include/BitSequenceRRR.h b/libcds/include/BitSequenceRRR.h
deleted file mode 100644
index 5c2a4598..00000000
--- a/libcds/include/BitSequenceRRR.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/* BitSequenceRRR.h
- * Copyright (C) 2008, Francisco Claude, all rights reserved.
- *
- * RRR02 Bitsequence -
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef _STATIC_BITSEQUENCE_RRR02_H
-#define _STATIC_BITSEQUENCE_RRR02_H
-
-#include
-#include
-#include
-#include
-
-using namespace cds_utils;
-
-namespace cds_static
-{
-
- // block size can't be changed in this implementation
- // it would require more than just changing the constant
- #define BLOCK_SIZE 15
-
- #define DEFAULT_SAMPLING 32
-
- /** Implementation of Raman, Raman and Rao's [1] proposal for rank/select capable
- * data structures, it achieves space nH_0, O(sample_rate) time for rank and O(log len)
- * for select. The practial implementation is based on [2]
- *
- * [1] R. Raman, V. Raman and S. Rao. Succinct indexable dictionaries with applications
- * to encoding $k$-ary trees and multisets. SODA02.
- * [2] F. Claude and G. Navarro. Practical Rank/Select over Arbitrary Sequences. SPIRE08.
- *
- * @author Francisco Claude
- */
- class BitSequenceRRR : public BitSequence
- {
- public:
- /** Builds an RRR bitsequence.
- * @param bitseq bitstring
- * @param len lenght of the bitstring
- * @param sample_rate sampling for partial sums
- */
- BitSequenceRRR(uint * bitseq, size_t len, uint sample_rate=DEFAULT_SAMPLING);
-
- /** Builds an RRR bitsequence.
- * @param bs bitstring
- * @param sample_rate sampling for partial sums
- */
- BitSequenceRRR(const BitString & bs, uint sample_rate=DEFAULT_SAMPLING);
-
- virtual ~BitSequenceRRR();
-
- virtual size_t rank0(const size_t i) const;
-
- virtual size_t rank1(const size_t i) const;
-
- virtual size_t select0(const size_t i) const;
-
- virtual size_t select1(const size_t i) const;
-
- virtual bool access(const size_t i) const;
-
- virtual bool access(const size_t i, size_t &r) const;
-
- virtual size_t getSize() const;
-
- virtual void save(ostream & fp) const;
-
- /** Reads the bitmap from a file pointer, returns NULL in case of error */
- static BitSequenceRRR * load(istream & fp);
-
- /** Creates a new sampling for the queries */
- void create_sampling(uint sampling_rate);
-
- /** Frees the space required by the table E, which is static and global
- * to all instances.
- */
- static void delete_E() {
- delete E;
- }
-
- protected:
- /** Internal building function, same parameters as the base constructor. */
- void build(const uint * bitseq, size_t len, uint sample_rate=DEFAULT_SAMPLING);
-
- /** Protected constructor for loaders, you have to initialize data before
- * using an object built with this constructor.
- */
- BitSequenceRRR();
-
- /** Classes and offsets */
- uint *C, *O;
- /** Length of C and O (in uints) */
- uint C_len, O_len;
- /** Bits required per field for C and in total for O */
- uint C_field_bits, O_bits_len;
- /** C and O samplings */
- uint *C_sampling, *O_pos;
- /** Length of the samplings */
- uint C_sampling_len,O_pos_len;
- /** Lenght in bits per field */
- uint C_sampling_field_bits,O_pos_field_bits;
- /** Sample rate */
- uint sample_rate;
-
- static table_offset * E;
- };
-
-}
-#endif /* _STATIC_BITSEQUENCE_RRR02_H */
diff --git a/libcds/include/BitSequenceSDArray.h b/libcds/include/BitSequenceSDArray.h
deleted file mode 100644
index c0657a9b..00000000
--- a/libcds/include/BitSequenceSDArray.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* BitSequenceSDArray.h
- * Copyright (C) 2009, Francisco Claude, all rights reserved.
- *
- * Francisco Claude
- *
- * This class is a wrapper for the file sdarraySadakane,
- * implemented by K. Sadakane.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef _BITSEQUENCESDARRAY_H
-#define _BITSEQUENCESDARRAY_H
-
-#include
-#include
-#include
-#include
-
-#include
-using namespace cds_utils;
-
-namespace cds_static
-{
- class BitSequenceSDArray: public BitSequence
- {
-
- public:
- /** Builds the SDArray */
- BitSequenceSDArray(const BitString & bs);
- /** Builds the SDArray */
- BitSequenceSDArray(uint * buff, size_t len);
- virtual ~BitSequenceSDArray();
- virtual size_t select1(const size_t i) const;
- virtual size_t rank1(const size_t i) const;
- virtual size_t selectNext1(const size_t i) const;
- virtual size_t getSize() const;
- virtual void save(ostream & fp) const;
- static BitSequenceSDArray * load(istream & fp);
-
- protected:
- selects3 sd;
- BitSequenceSDArray();
-
- };
-};
-#endif
diff --git a/libcds/include/BitString.h b/libcds/include/BitString.h
deleted file mode 100644
index 6d2f9bb6..00000000
--- a/libcds/include/BitString.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* BitString.h
- * Copyright (C) 2009, Francisco Claude, all rights reserved.
- *
- * BitString definition
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef BITSTRING_H
-#define BITSTRING_H
-
-#include
-
-#include
-
-using namespace std;
-
-namespace cds_utils
-{
- /** BitString class
- * @author Francisco Claude
- */
- class BitString
- {
- public:
-
- /** Reads a BitString from a file stream
- * @param input input file stream
- */
- BitString(istream & input);
-
- /** Creates a BitString with len bits of space */
- BitString(const size_t len);
-
- /** Creates a bitmap from a vector (up to len bits) */
- BitString(const vector fields, const size_t len);
-
- /** Creates a bitmap from an array (len bits) */
- BitString(const uint * array, const size_t len);
-
- /** Destroys a bitmap */
- ~BitString();
-
- /** Sets the pos-th bit
- * @param pos position
- * @param bit value [0-1]
- */
- inline void setBit(const size_t pos, const bool bit=true) {
- if(bit) bitset(data,pos);
- else bitclean(data,pos);
- }
-
- /** Gets the pos-th bit
- * @param pos position
- */
- inline bool getBit(const size_t pos) const
- {
- return bitget(data,pos);
- }
-
- /** operator [] for getBit
- */
- inline bool operator[](const size_t pos) const
- {
- return bitget(data,pos);
- }
-
- /** Saves the bitmap to a file
- * @param out file stream
- */
- void save(ostream & out) const;
-
- /** Returns the size in bytes of the BitString */
- inline size_t getSize() const
- {
- return uintLength*sizeof(uint)+sizeof(this);
- }
-
- /** Returns the length in bits of the BitString */
- inline size_t getLength() const
- {
- return length;
- }
-
- /** Returns a pointer to the buffer storing the values
- */
- inline uint * getData() const
- {
- return data;
- }
-
- protected:
- size_t length;
- size_t uintLength;
- uint * data;
-
- /** Initializes the class fields */
- void initData(const size_t len);
- };
-};
-#endif
diff --git a/libcds/include/BitmapsSequence.h b/libcds/include/BitmapsSequence.h
deleted file mode 100644
index e4879d03..00000000
--- a/libcds/include/BitmapsSequence.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* static_sequence.h
- * Copyright (C) 2008, Francisco Claude, all rights reserved.
- *
- * static_sequence definition
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef _BITMAPSSEQUENCE_H
-#define _BITMAPSSEQUENCE_H
-
-#include
-#include
-#include
-#include
-#include
-
-using namespace cds_utils;
-
-namespace cds_static
-{
-
- /** static_sequence represented using one bitmap per symbol, doesn't support efficient access
- *
- * @author Francisco Claude
- */
- class BitmapsSequence : public Sequence
- {
-
- public:
- BitmapsSequence(uint * seq, size_t n, Mapper * am, BitSequenceBuilder * bsb);
- BitmapsSequence(const Array & a, Mapper * am, BitSequenceBuilder * bsb);
-
- virtual ~BitmapsSequence();
-
- virtual size_t rank(uint c, size_t i) const;
-
- virtual size_t select(uint c, size_t i) const;
- virtual size_t selectNext(uint c, size_t i) const;
-
- virtual uint access(size_t i) const;
-
- virtual size_t getSize() const;
-
- virtual void save(ostream & fp) const;
-
- /** Reads a bitmap determining the type */
- static BitmapsSequence * load(istream & fp);
-
- protected:
- uint sigma;
- BitSequence ** bitmaps;
- Mapper * am;
-
- BitmapsSequence();
-
- };
-
-};
-#endif /* _BITMAPSSEQUENCE_H */
diff --git a/libcds/include/Coder.h b/libcds/include/Coder.h
deleted file mode 100644
index 8f1d4bd7..00000000
--- a/libcds/include/Coder.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Coder.h
- * Copyright (C) 2010, Francisco Claude, all rights reserved.
- *
- * Francisco Claude
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef CODER_H
-#define CODER_H
-
-#include
-#include
-namespace cds_static
-{
-
- class Coder
- {
- public:
- virtual size_t encode(uint symb, uint * stream, size_t pos) const = 0;
- virtual size_t decode(uint * symb, uint *stream, size_t pos) const = 0;
- virtual size_t maxLength() const = 0;
- virtual size_t getSize() const = 0;
- virtual void save(ostream & fp) const = 0;
- static Coder * load(istream & fp);
- };
-
-};
-
-#include
-#endif
diff --git a/libcds/include/HuffmanCoder.h b/libcds/include/HuffmanCoder.h
deleted file mode 100644
index 2a086d87..00000000
--- a/libcds/include/HuffmanCoder.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* HuffmanCoder.h
- Copyright (C) 2008, Francisco Claude, all rights reserved.
-
- Wrapper for huff written by Gonzalo Navarro
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-*/
-
-#ifndef HUFFMAN_CODES_H
-#define HUFFMAN_CODES_H
-
-#include
-#include
-#include
-#include
-
-using namespace cds_utils;
-namespace cds_static
-{
-
- #define HUFF_HDR 1
-
- /** Wrapper for the canonical huffman implementation of Gonzalo Navarro.
- *
- * @author Francisco Claude
- */
- class HuffmanCoder : public Coder
- {
-
- public:
- /** Creates the codes for the sequence seq of length n */
- HuffmanCoder(uint * seq, size_t n);
- HuffmanCoder(uchar * seq, size_t n);
- HuffmanCoder(Array & seq);
-
- virtual ~HuffmanCoder();
-
- /** Encodes symb into stream at bit-position pos,
- * returns the ending position (bits) */
- virtual size_t encode(uint symb, uint * stream, size_t pos) const;
-
- /** decodes into symb from stream at bit-position
- * pos, returns the new position */
- virtual size_t decode(uint * symb, uint * stream, size_t pos) const;
-
- /** Returns the maximum length of a code */
- virtual size_t maxLength() const;
-
- /** Returns the size of the table */
- virtual size_t getSize() const;
-
- /** Saves the coder to a file */
- virtual void save(ostream & fp) const;
-
- /** Loads a coder from a file */
- static HuffmanCoder * load(istream & fp);
-
- protected:
- HuffmanCoder();
- THuff huff_table;
- };
-
-};
-#endif
diff --git a/libcds/include/LCP.h b/libcds/include/LCP.h
deleted file mode 100644
index 9af2015e..00000000
--- a/libcds/include/LCP.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright (C) 2010, Rodrigo Cnovas, all rights reserved.
- *
- *This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef _LCP_H
-#define _LCP_H
-
-#include
-#include
-#include
-
-using namespace std;
-using namespace cds_utils;
-
-namespace cds_static
-{
-
- static const size_t NAIVE = 2;
- static const size_t SAD_GON_OS = 3;
- static const size_t FMN_RRR_OS = 4;
- static const size_t PT = 5;
- static const size_t PHI = 6;
- static const size_t DAC = 7;
- static const size_t DAC_VAR = 8;
-
- /** Base class for LCP, contains many abstract functions, so this can't
- * be instantiated.
- * @author Rodrigo Cnovas
- */
- class LCP
- {
- public:
- size_t lcp_type;
-
- virtual ~LCP() {};
-
- /**Return LCP[i], being faster if sequential acceses to the LCP had been done*/
- virtual size_t get_seq_LCP(size_t i, TextIndex *csa, size_t **next_pos, size_t *n_next, bool dir) const=0;
-
- /**Return LCP[i]*/
- virtual size_t get_LCP(size_t i, TextIndex *csa) const= 0;
-
- /** Returns the size of the structure in bytes */
- virtual size_t getSize() const= 0;
-
- /**compute the LCP array, using Karkkainen, Manzini, and Puglisi (2009) Algorithm
- * @param csa The Compressed Suffix Array
- * @param text The text
- * @param n The length of the text
- * @param q Sample interval*/
- virtual uint * create_lcp(TextIndex *csa, char *text, uint n, int q) const;
-
- /** Stores the structure given a file pointer*/
- virtual void save(ostream & fp) const=0;
-
- /** Reads a LCP determining the type */
- static LCP * load(istream & fp);
- };
-};
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#endif
diff --git a/libcds/include/LCP_DAC.h b/libcds/include/LCP_DAC.h
deleted file mode 100644
index 9c758df4..00000000
--- a/libcds/include/LCP_DAC.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 2010, Rodrigo Cnovas, all rights reserved.
- *
- *This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef LCP_DAC_H
-#define LCP_DAC_H
-
-#include
-#include
-
-namespace cds_static
-{
-
- class LCP_DAC: public LCP
- {
-
- private:
- size_t *next_p; //usefull for get_seq_LCP
- factorization *rep;
- LCP_DAC();
-
- public:
- size_t n;
-
- /* LCP encoding using Susana's static factorization,
- * @param csa The compressed suffix array of the text
- * @param text The text
- * @param n The length of the text
- * */
- LCP_DAC(TextIndex *csa, char *text, size_t n);
- virtual size_t get_LCP(size_t i, TextIndex *csa) const;
- virtual size_t get_seq_LCP(size_t i, TextIndex *csa, size_t **next_pos, size_t *n_next, bool dir) const;
- virtual size_t getSize() const;
- virtual void save(ostream & fp) const;
- static LCP_DAC * load(istream & fp);
- virtual ~LCP_DAC();
- };
-};
-#endif
diff --git a/libcds/include/LCP_DAC_VAR.h b/libcds/include/LCP_DAC_VAR.h
deleted file mode 100644
index c8690bf9..00000000
--- a/libcds/include/LCP_DAC_VAR.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (C) 2010, Rodrigo Cnovas, all rights reserved.
- *
- *This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef LCP_DAC_VAR_H
-#define LCP_DAC_VAR_H
-
-#include
-#include
-
-namespace cds_static
-{
-
- class LCP_DAC_VAR: public LCP
- {
- private:
- LCP_DAC_VAR();
-
- factorization_var *rep;
- size_t *next_p_var;
-
- public:
- size_t n;
-
- /*Compute the "optimal" block size given an array of frequencies
- * @param max_lcp Maximun value in the array
- * @param frec_acu Array that contain the acumulate frequency
- * @param kvalues Array where the block sizes obtained will be stored
- * @param nkvalues Size of the array kvalues
- * */
- void calc_kvalues(uint max_lcp, uint *frec_acu, ushort **kvalues, uint *nkvalues) const;
-
- /* LCP encoding using Susana's factorization_var,
- * @param csa The compressed suffix array of the text
- * @param text The text
- * @param n The length of the text
- * */
- LCP_DAC_VAR(TextIndex *csa, char *text, size_t n);
- virtual size_t get_LCP(size_t i, TextIndex *csa) const;
- virtual size_t get_seq_LCP(size_t i, TextIndex *csa, size_t **next_pos, size_t *n_next, bool dir) const;
- virtual size_t getSize() const;
- virtual void save(ostream & fp) const;
- static LCP_DAC_VAR * load(istream & fp);
- virtual ~LCP_DAC_VAR();
- };
-
-};
-#endif
diff --git a/libcds/include/LCP_FMN.h b/libcds/include/LCP_FMN.h
deleted file mode 100644
index a0780c8e..00000000
--- a/libcds/include/LCP_FMN.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright (C) 2010, Rodrigo Cnovas, all rights reserved.
- *
- *This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-
-#ifndef LCP_FMN_H
-#define LCP_FMN_H
-
-#include