Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.0%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: LuisRusso-INESC-ID
  • License: bsd-2-clause
  • Language: C
  • Default Branch: main
  • Size: 43 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Created about 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

LCT 0.2.0-alpha

Implementation of the Link Cut Tree data structure. A description of this implementation is given in the "Implementing the Link-Cut Tree" paper. The goal of this implementation is to provide a simple API for this data structure and two implementations that can be used when testing experimental algorithms. We also plan to support bindings for several languages. We currently support C, Java, Python and lisp.

Table of contents

Getting Started

To get a copy of this software download or clone the GitHub repository.

Download:

wget https://github.com/LuisRusso-INESC-ID/LCT/archive/main.zip

Clone:

git clone https://github.com/LuisRusso-INESC-ID/LCT.git

Prerequisites

This package was tested with Arch Linux, it will most likely work with other Linux distributions and UNIX variants. The experimental evaluation was performed on a Debian server. Some version of the following components must exist in the system.

For Linux:

Installing

Execute make to obtain the binaries CLI, pCLI, project, tester, linTester, graphTester, pointerLCT.so and splayLCT.so.

make

This compiles the unweighted version. To obtain binaries for the edge-weighted version uncomment the following line on the LCT.h file.

/* #define _EDGE_W */

To obtain binaries for the vertex-weighted version uncomment the following line.

/* #define _VERTEX_W */

Do not use both definitions simultaneously.

Make sure to clean up before re-compiling, so:

make clean make

Running

There is a sample input file, which can be used with CLI and pCLI binaries. These correspond to the splay and pointer implementations. A simple sequence of commands is given in the file input. Hence simple execution is the following:

./CLI < input

Note that this input is for the non-weigthed version. Likewise the same can be done with the pointer implementation pLCI. The same input can also be used with the Python version.

python LCT.py "./splayLCT.so" < input

For the pointer version use "pointerLCT.so".

There is a script to test that the implementation is sound, just run:

bash runTests.sh

This is script depends on the tester and linTester binaries.

The java version does not automatically build, so use the following commands:

make jLCT.h libSplayLCT.so libPointerLCT.so java -cp . -Djava.library.path=. jLCT < input

For the lisp version we use cffi through quicklisp. Use the following commands:

make libSplayLCT.so libPointerLCT.so clisp lct.lisp < input

Contributing

If you found this project useful please share it, also you can create an issue with comments and suggestions.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

  • Luís M. S. Russo - Initial work - LuisRusso

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE file for details

Acknowledgments

  • This software was produced for research that was funded in by national funds through Fundação para a Ciência e Tecnologia (FCT) with reference DOI 10.54499/UIDB/50021/2020.

  • Thanks to PurpleBooth for the README-Template.

  • The grip tool by Joe Esposito was very handy for producing this file.

Owner

  • Name: LuisRusso-INESC-ID
  • Login: LuisRusso-INESC-ID
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Luís Manuel"
  given-names: "Silveira Russo"
  orcid: "https://orcid.org/0000-0002-1966-1808"
title: "Link Cut Tree"
version: 0.2.0-alpha
url: "https://github.com/LuisRusso-INESC-ID/LCT"

GitHub Events

Total
  • Delete event: 1
Last Year
  • Delete event: 1