Giter VIP home page Giter VIP logo

lpdec's Introduction

lpdec: library for LP decoding and related things

Overview

lpdec is a scientific library dedicated to the decoding part of coding theory, in particular, decoding based on methods of mathematical optimization, such as linear programming (LP) decoding.

Requirements

The library is written in Python. It was mainly developed using Python version 2.7, but was recently ported to Python3. Note that there is no CPLEX interface for Python3, so you can not use the CPLEX solvers with that version of Python.

To compile the library, you need Cython. Runtime requirements are the Python packages numpy, scipy, dateutil, sqlalchemy, sympy and jinja2. The setup.py script described below will pull these requirements automatically, but depending on your OS you might favor to install them using your system's package manager.

Some of the decoder implementations require additional software, namely GLPK (with C headers), IBM CPLEX, and Gurobi. The first is open source, the others have free academic licenses available.

We use the alternative gurobi python API called gurobimh.

Installation

Download the package and type:

python setup.py install --user

If you do not have GLPK installed, use:

python setup.py install --no-glpk --user

to skip installation of GLPK-based decoders. Likewise, the switch --no-gurobi is available. In both commands, replace python by an appropriate call to your Python interpreter.

Documentation

API documentation is provided online.

You can also try to generate the API doc with Sphinx. To build the documentation, run the following command from within lpdec's main directory:

sphinx-build2 doc doc-html

This will generate HTML API documentation inside the doc-html folder.

lpdec's People

Contributors

gensheimer avatar supermihi avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.