J. Holmes
cb2511e4c8
encoding/dot: support edge ports on Unmarshal/decode
2018-04-16 14:31:32 +09:30
J. Holmes
b2e9df857d
encoding/dot: fix ports on undirected graphs
2018-04-16 10:43:11 +09:30
Dan Kortschak
6b03bc22e1
graph: use int64 for node retrieval
2018-03-24 09:21:44 +10:30
Dan Kortschak
c0eb081727
mat: fix Exp function behaviour for large norms
2018-03-23 06:22:08 +10:30
Dan Kortschak
8d2aaa4a38
graph: fix undirected to directed copy behaviour
2018-02-22 20:03:33 +10:30
Dan Kortschak
4be2818757
gen: add multigraph power-law generators
2018-01-24 07:04:00 +10:30
kortschak
34369ddb26
multi: new package implementing multigraph API
2018-01-19 21:59:01 +10:30
kortschak
07dfa0c90e
graph/simple: fix documentation
2018-01-19 21:59:01 +10:30
kortschak
9806de04c7
graph: factor id handling out to internal package uid
2018-01-19 21:59:01 +10:30
kortschak
87056319dc
simple: fix nil edge returns
...
Also clean up code formatting for consistency.
2018-01-02 20:13:10 +10:30
kortschak
b52122b771
graph: remove out-of-date documentation
2017-12-22 18:31:36 +10:30
kortschak
5e16688f6d
graph: address PR comments
2017-12-14 21:03:19 +10:30
kortschak
806337db32
graph: address PR comments and fix return type
2017-12-14 21:03:19 +10:30
kortschak
664132a63e
graph: define multigraph API
2017-12-14 21:03:19 +10:30
kortschak
299547a6f4
Revert "graph: change Edge interface to include ID method"
...
This reverts commit 1a83fdba7a .
Further design discussion leads to a better approach with an additional
edge-type interface.
2017-12-14 08:24:55 +10:30
kortschak
1a83fdba7a
graph: change Edge interface to include ID method
...
This is to allow future handling of multigraphs.
2017-12-11 08:06:56 +10:30
kortschak
de75875b14
graph/topo: add 2-sat example
2017-11-28 06:46:55 +10:30
Dan Kortschak
0777e22537
graph/network: add heat diffusion propagation functions
2017-11-25 06:48:06 +10:30
kortschak
54a5f6f081
all: fix build and make tests pass with new streams
2017-11-17 12:38:53 +10:30
kortschak
fa0c5aa7bc
all: use golang.org/x/exp/rand instead of math/rand
2017-11-17 11:52:34 +10:30
kortschak
805531d142
all: change capitalization of gonum in license header
2017-11-02 06:54:08 +10:30
kortschak
21d5891471
all: remove go1.7 build constraints
2017-10-27 13:48:47 +10:30
Robin Eklind
f786e6cd3c
graph/encoding/dot: store graph DOT ID if present ( #237 )
...
Add round trip test case for graph DOT ID.
2017-09-28 10:02:53 +02:00
kortschak
db6d01ed81
graph/topo: rename VertexOrdering => DegeneracyOrdering
2017-09-20 07:32:35 +09:30
kortschak
f818f8f7a9
graph/path: allow Shortest to traverse negative cycles
...
Also add checks for cases where negative cycles exist but are not marked
to protect against future shortest path function additions.
2017-09-15 08:17:25 +09:30
kortschak
e6a5ea56fd
graph/topo: use degeneracyOrdering instead of VertexOrdering for BronKerbosch
2017-09-15 07:05:29 +09:30
kortschak
c86b60857a
graph/topo: fix error reporting for VertexOrdering test
2017-09-15 07:05:29 +09:30
kortschak
8b33e669be
graph/topo: add function to find k-core of undirected graph
2017-09-15 07:05:29 +09:30
kortschak
a18d79f600
graph/{internal,path,topo}: factor reverse function out into internal
2017-09-15 07:05:29 +09:30
kortschak
1b3b29f16b
graph/path: implement sophisticated algorithm
...
Both algorithms are included since the LTA appears to beat the SLTA for
all normal uses, but the SLTA beats the LTA for very large dense graphs.
Leave tools in the benchmark code to allow users to determine which one
they want to use for their data.
2017-09-12 09:50:52 +09:30
kortschak
9baf9959f7
graph/path: add benchmarks for Dominators
...
The initial test cases are from Robin Eklind's decomp project, the DOT
files were generated using his instructions:
git clone https://github.com/decomp/testdata
go get github.com/decomp/decomp/cmd/ll2dot
cd testdata/pathological/testdata
ll2dot *.ll
2017-09-12 09:50:52 +09:30
kortschak
c2e0c99d23
graph/path: replace map and slice index chasing with pointer chasing
2017-09-12 09:50:52 +09:30
kortschak
fbd569ccc4
Revert "graph/path: replace recursive dfs with iterative implementation"
...
This reverts commit 4c195282fab50c627add36d97e58caded3e85742.
The iterative dfs looks like it will be more convoluted when the arrays
are removed into a Lengauer & Tarjan node holding each graph.Node's
details.
Leaving the change in the tree to help figure out an iterative
implementation later if needed.
2017-09-12 09:50:52 +09:30
kortschak
bff6fc28f1
graph/path: add dominator tree API
2017-09-12 09:50:52 +09:30
kortschak
4cdef9a92e
graph/path: replace recursive dfs with iterative implementation
2017-09-12 09:50:52 +09:30
kortschak
5817a3ce4a
graph/path: replace Dominators with naive Lengauer and Tarjan
...
Much of the sparse ID mapping can be condensed into slice storage, but
this provides a sane starting point.
2017-09-12 09:50:52 +09:30
kortschak
e066e3d02f
graph/community: add k-clique community function
2017-09-09 07:35:47 +09:30
kortschak
573ca5d6ce
graph/topo: add clique graph construction function
2017-09-09 07:35:47 +09:30
kortschak
acd06c4949
graph/path: revise spanning tree signatures and behaviours
2017-08-24 10:21:20 +09:30
kortschak
f739fbf133
graph/simple: separate weighted and unweighted edge implementations
2017-08-24 10:21:20 +09:30
kortschak
7ba61f0ead
graph/...: remove Weight method from Edge
2017-08-24 10:21:15 +09:30
kortschak
ffa13e8edb
graph,graph/{community,network,path}: rename WeightedGraph => Weighted
2017-08-24 10:21:15 +09:30
kortschak
715b695621
graph,graph/{network,path}: remove Weighter interface
2017-08-24 10:21:15 +09:30
kortschak
8508095a22
graph,graph/{community,path}: use weighted graph types
2017-08-24 10:21:15 +09:30
kortschak
a0c93557a5
graph,graph/simple: add weighted graph interfaces and implementations
2017-08-24 10:21:06 +09:30
kortschak
267e698edc
graph/graphs/gen: use EdgeAdder for duplication graph
2017-08-21 08:42:15 +09:30
Robin Eklind
a6329c40df
Merge pull request #200 from mewpull/new-edge
...
graph: move NewEdge method from encoding.Builder to graph.EdgeAdder
2017-08-20 23:41:36 +02:00
mewmew
0ebdd59ba5
graph: move NewEdge method from encoding.Builder to graph.EdgeAdder
...
Also rename graph.EdgeSetter to graph.EdgeAdder.
Fixes #56 .
2017-08-18 03:51:30 +02:00
mewmew
7e53ef2fae
all: use fixdocs tool to store package documentation in doc.go
...
Add copyright header to doc.go
Keep original comment style (e.g. line comments and block comments).
Fix doc comments containing multiple line comments.
Remove vanity imports from all files except doc.go.
Fixes #12 .
The source code of fixdocs is located at:
https://play.golang.org/p/7RtYLzldsO
2017-08-16 14:26:00 +02:00
mewmew
ac48587c92
Revert "all: use fixdocs tool to store package documentation in doc.go"
...
This reverts commit b2982a3e50 .
2017-08-16 14:21:05 +02:00