Giter VIP home page Giter VIP logo

igraphm's Introduction

Discourse topics GitHub (pre-)release GitHub All Releases Contributions welcome DOI

The IGraph/M package provides a Wolfram Language interface to the popular igraph network analysis and graph theory library, as well as many other useful functions for working with graphs in Mathematica. Check out the blog post for an overview.

📦 Installation

The system requirements are Mathematica 11.0 or later, 64-bit Windows/macOS/Linux, or Raspberry Pi. Note that currently the Wolfram Cloud does not support LibraryLink, therefore IGraph/M does not run on the Wolfram Cloud.

To install the package automatically, simply evaluate the following in Mathematica:

Get["https://raw.githubusercontent.com/szhorvat/IGraphM/master/IGInstaller.m"]

IGraph/M can also be installed manually in the same way as any Mathematica application distributed as a paclet.

Download the .paclet file from the GitHub releases page, and install it using the PacletInstall function in Mathematica. For example, assuming that the file IGraphM-0.6.5.paclet was downloaded into the directory ~/Downloads, evaluate:

Needs["PacletManager`"]
PacletInstall["~/Downloads/IGraphM-0.6.5.paclet"]

After installation, the package can now be loaded with:

Needs["IGraphM`"]

Verify that it works by evaluating IGVersion[], then continue to the documentation with the IGDocumentation[] command.

To uninstall all currently installed versions of IGraph/M, evaluate PacletUninstall["IGraphM"]. This will remove all traces of IGraph/M from your system.

📖 Documentation

To open the documentation notebook, evaluate:

Needs["IGraphM`"]
IGDocumentation[]

Alternatively, search for "igraphm" in Mathematica's Documentation Center.

A web-based preview is also available.

The documentation is not yet complete and contributions are very welcome. If you would like to help out with expanding the documentation, send me an email.

For additional details about functions, also check the igraph documentation pages.

🛠️ Contributions

Help wanted with editing documentation and writing unit tests! Only basic Mathematica knowledge is required for this.

Contributions to IGraph/M are very welcome! Mathematica programmers of all levels of expertise can contribute.

In order of increasing difficulty, help is needed with the following tasks:

  • Just play with the package, read the documentation, and try to find problems.
  • Create examples for the documentation or edit the documentation.
  • Write formal unit tests.
  • Implement new functions in pure Wolfram Language code.
  • Expose more igraph library functions to IGraph/M (C++ knowledge required).
  • Implement entirely new functions in C++.

If you are interested in contributing, send me an email for guidance. Evaluate the following in Mathematica to get my email address:

Uncompress["1:eJxTTMoPChZiYGAorsrILypLLHFIz03MzNFLzs8FAG/xCOI="]

C++ programmers should look at Development.md for additional information.

💡Additional information

🎓 Citing

If you use IGraph/M in any academic publications, please cite:

⚖️ License

IGraph/M is licensed under the GNU GPLv3. See LICENSE.txt for details.

igraphm's People

Contributors

szhorvat avatar kubapod avatar gitter-badger 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.