Difference between revisions of "Programming and Modeling Tools"

From Self-Organization Wiki
Jump to: navigation, search
(Java)
(Java)
Line 44: Line 44:
 
* JScience
 
* JScience
 
* jHepWork
 
* jHepWork
 +
 +
== Graph and Network Analysis Tools ==
 +
 +
===JGraphT===
 +
 +
JGraphT is a free Java graph library that provides mathematical graph-theory objects and algorithms. JGraphT supports various types of graphs including:
 +
 +
* directed and undirected graphs.
 +
* graphs with weighted / unweighted / labeled or any user-defined edges.
 +
* various edge multiplicity options, including: simple-graphs, multigraphs, pseudographs.
 +
* unmodifiable graphs - allow modules to provide "read-only" access to internal graphs.
 +
* listenable graphs - allow external listeners to track modification events.
 +
* subgraphs graphs that are auto-updating subgraph views on other graphs.
 +
* all compositions of above graphs.
 +
 +
Although powerful, JGraphT is designed to be simple and type-safe (via Java generics). For example, graph vertices can be of any objects. You can create graphs based on: Strings, URLs, XML documents, etc; you can even create graphs of graphs! This code example shows how.

Revision as of 10:57, 8 March 2010

Python

Tools:


Guides:

Java

Tools:

However, quick visualization in Java is a pain without appropriate tools. There is a nice discussion on Java Scientific Packages similar to SciPy at [1]

In summary, the proposed packages for Java which could be interesting are:

  • Apache Commons Math
  • Java Numerics
  • Colt
  • Matlib
  • Java Scientific Library
  • JFreeChart
  • JScience
  • jHepWork

Graph and Network Analysis Tools

JGraphT

JGraphT is a free Java graph library that provides mathematical graph-theory objects and algorithms. JGraphT supports various types of graphs including:

  • directed and undirected graphs.
  • graphs with weighted / unweighted / labeled or any user-defined edges.
  • various edge multiplicity options, including: simple-graphs, multigraphs, pseudographs.
  • unmodifiable graphs - allow modules to provide "read-only" access to internal graphs.
  • listenable graphs - allow external listeners to track modification events.
  • subgraphs graphs that are auto-updating subgraph views on other graphs.
  • all compositions of above graphs.

Although powerful, JGraphT is designed to be simple and type-safe (via Java generics). For example, graph vertices can be of any objects. You can create graphs based on: Strings, URLs, XML documents, etc; you can even create graphs of graphs! This code example shows how.