Commit Graph

17 Commits

Author SHA1 Message Date
Jonathan G Rennison
117b56caeb Linkgraph: Replace a std::list with a std::vector. 2017-02-08 22:08:39 +00:00
Jonathan G Rennison
c86a027e88 Linkgraph: Use an arena allocator for path objects.
Fixes leaks when job is aborted early.
2017-02-08 22:03:59 +00:00
Jonathan G Rennison
3f2c561867 Linkgraph: Add support for aborting MCF passes early. 2017-02-08 22:00:35 +00:00
Jonathan G Rennison
9d5f34fea6 Replace various uses of std::set/map with btree containers. 2017-02-08 00:18:09 +00:00
Jonathan G Rennison
7b56097f50 Merge branch 'master' into jgrpp
# Conflicts:
#	config.lib
#	src/linkgraph/demands.cpp
#	src/linkgraph/mcf.cpp
#	src/linkgraph/refresh.cpp
#	src/linkgraph/refresh.h
#	src/smallmap_gui.cpp
2016-07-24 10:16:55 +01:00
fonsinchen
a81b7a24a6 (svn r27613) -Codechange: Use a flat vector instead of a map in FlowEdgeIterator. (JGR) 2016-07-10 12:03:23 +00:00
fonsinchen
8d5566651b (svn r27611) -Codechange: Cache the calculated value of CapacityAnnotation 2016-07-10 11:53:43 +00:00
Jonathan G Rennison
58b6bf16c3 Linkgraph: Enable MCF custom allocator only for GCC 4.9+
Earlier compilers don't use std::allocator_traits to query allocators.
2015-11-29 19:10:16 +00:00
Jonathan G Rennison
e22e1df939 Store annotation and node ID in set key, to reduce ptr derefs on sort.
Store the set iterator in the node, for faster erasing during forks.

Use a custom pool allocator to store set nodes contiguously.
2015-11-27 01:02:55 +00:00
Jonathan G Rennison
0fb79a8f15 Use a flat vector instead of a map in FlowEdgeIterator.
This reduced the cost of Dijkstra<CapacityAnnotation> by approx. 25%,
in a test profiling.
2015-11-26 18:23:10 +00:00
Jonathan G Rennison
564744d427 Cache the calculated value of CapacityAnnotation.
This is because CapacityAnnotation::Comparator::operator()
was appearing at the top of profiler output due to regenerating
the annotation value on every comparison when performing a set operation.
2015-11-25 23:05:55 +00:00
frosch
a14b836bf2 (svn r27178) -Fix [FS#5969]: Data race due to lazy initialisation of objects. 2015-03-07 18:27:01 +00:00
rubidium
0c2f4bdc2b (svn r27020) -Cleanup: some coding style consistency improvements (mostly spaces) 2014-10-15 18:31:37 +00:00
fonsinchen
ef2caa02b2 (svn r26646) -Fix [FS#6041]: Save locations instead of distances in link graphs to reduce size. 2014-06-14 13:35:39 +00:00
rubidium
2be4215f43 (svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values 2014-04-23 20:13:33 +00:00
fonsinchen
6580fd4b8f (svn r25885) -Codechange: Keep paths sorted so that the ones with flow == 0 are in the back and don't have to be iterated over so often. 2013-10-19 17:15:19 +00:00
fonsinchen
1cc410f7bb (svn r25356) -Add: Multi-Commodity-Flow solver for link graph 2013-06-09 13:00:41 +00:00