3.7.0 - New BidirectionalImmutableGraph wrapper to manage easily a graph and its transpose. Thanks to Antoine Pietri for contributing this class. - New FixedWidthLongListLabel class. Thanks to Antoine Pietri and Thibault Allançon for contributing this class. - Instances of EliasFanoMonotoneLongBigList16 have been replaced with instances of EliasFanoMonotoneBigLongBigList. As a side-effect, the number of bits per pointer will not be written unless you recompute your .obl files. - BitStreamArcLabelledImmutableGraph now supports Elias-Fano storage of label offsets. Thanks to Antoine Pietri for implementing this feature. 3.6.6 - Now ScatteredArcsASCIIGraph propagates BatchGraph's copiable iterators. As a consequence, compression will happen in parallel when possible. - Now ScattereArcsASCIIGraph accepts functions on byte arrays. - Official support starts now at Java 9. 3.6.5 - Updated licensing info in the POM. 3.6.4 - Removed (almost) unused dependencies. - Upgraded to newest versions of Apache Commons. - The command-line options of Transform now are the same as those of the standard version. 3.6.3 - OSGi metadata and default modularization. - Manual reduction in strength in arithmetic operations everywhere. 3.6.2 - WebGraph (big) is now dually licensed under the Lesser GNU Public License 2.1+ or the Apache Software License 2.0. - Added automatic module name. 3.6.1 - Ported ImmutableSubgraph from the standard version (thanks to Antoine Pietri for providing the port). - New skip() method with long argument in NodeIterator. 3.6.0 - Ported from the standard version parallel compression based on the notion of "copiable iterators". Implemented in BVGraph and all derivative classes (e.g., transposed graphs). - Transform provides direct support to compute efficiently the simple version of a graph, either directly or via a precomputed transpose. 3.5.3 - Fixed SLF4J dependencies (again). 3.5.2 - Fixed build.xml: moved to Java 9 (following Sux4J), and now use the classifier in naming artifacts. 3.5.1 - ScatteredArcsASCIIGraph was checking size() instead of trying size64() on the provided function. Thanks to Thibault Allançon for reporting this bug. - ScatteredArcsASCIIGraph can now accept zipped files. Thanks to Thibault Allançon for implementing this feature. - BVGraph will use EliasFanoMonotoneLongBigList16 when necessary. 3.5.0 - Java 8-only. - Fixed obscure bug in ShiftByOneArcListASCIIGraph: if the arc list was specified on the command line (no -1 option) and more than one core was available, the graph would have not been shifted. Thanks to Luca Prigioniero for reporting this bug. 3.3.6 - The family of loadSequential() methods have been deprecated, and replaced in code by loadOffline() or loadMapped(). 3.3.5 - Fixed dependencies. 3.3.4 - Significantly improved performance of HyperBall on graphs with a highly skewed (e.g., heavy-tailed) outdegree distribution (e.g., transposed web graphs). - Fixed wrong estimation of memory used. - Now ConnectedComponents writes results using "wcc" instead of "scc". 3.3.3 - Regressed to fastutil's quicksort calls in case of array fragments. Java 7's Arrays.sort() has a memory bug that was killing the performance of a number of methods. 3.3.2 - We now distribute SpeedTest, hoping to improve the quality of benchmarks in the literature. 3.3.1 - Adapted to new DSI utilities. 3.3.0 - HyperBall sports a new adaptive decomposition scheme that is based on the number of arcs to be scanned, rather than on the number of nodes. - Fixed bug in the computation of the buckets. If you have used the new iterative implementation of Tarjan's algorithm (StronglyConnectedComponents) to compute buckets please recompute them. - ParallelBreadthFirstVisit and ConnectedComponents have been ported from the standard version. 3.2.1 - New iterative implementation of Tarjan's algorithm. - HyperBall can now compute Nieminen's centrality. - Added missing shift option to ArcListASCIIGraph. 3.2.0 - New selectable upper bound for EFGraph makes it possible to build "fake" graphs in which successors are greater than or equal to the number of nodes (this was already possible with BVGraph). Useful for incremental graph construction. - New IncrementalImmutableSequentialGraph adapter, which provides an inversion of control for storing graphs: you supply, one at a time, the successor list of each node. 3.1.0 - We switched to SLF4J for logging. - Now ScatteredArcsASCIIGraph accepts a translation function from node identifiers to node numbers. - The DecimalFormat object used to print data is has now a fixed US locale. - New EFGraph implementation using the Elias-Fano representation of monotone sequences. Compression is not so good, but successor enumeration is blazingly fast and the implementation returns a skippable iterator which provides constant-time search of nodes by lower bound. - Both BVGraph and EFGraph have outdegree caching and exact unwrapping of successorArray(). This should bring performance improvements. - New HyperBall implementation of the HyperANF idea ported to this version. It computes several kind of geometric centrality and once in systolic local mode uses time proportional to the number of edges causing a modification, setting in practice the expected run time to the theoretical bound O(m log n). - Several wrong instances of "int" have been replaced with "long". 3.0.3 - New ImmutableGraph.outdegrees() method that exposes the outdegrees of a graph as a LongIterator. - RandomGraph removed. - Almost all transformed graphs now support copy(). - New Transform.NodeClassFilter. 3.0.1 - ASCIIGraph was parsing the number of nodes as an integer rather than a long. Thanks to David Gleich for reporting this bug. 3.0 - First public release.