Jonathan G Rennison
c50ee4efec
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/linkgraph/mcf.cpp
5 years ago
Jonathan G Rennison
6e7117e04c
Codechange: [Linkgraph] Skip MCF source node Dijkstra when all demand satisfied
...
MCF Dijkstra iterations are executed for all source nodes in a round-robin order.
Source nodes typically require different numbers of MCF Dijkstra iterations
to satisfy all of their demand.
This change is to avoid performing MCF Dijkstra iterations on source nodes which
have already been fully satisfied.
5 years ago
Jonathan G Rennison
3e8b091913
Linkgraph: MCF: Skip source node Dijkstra when all demand satisfied
5 years ago
Jonathan G Rennison
4438413f48
Linkgraph: Replace RB-tree with B-tree in MCF Dijkstra
5 years ago
Jonathan G Rennison
0246d59c8d
FlowStat: Replace btree_map with flat map which is inlined in small case
...
Inline storage for size <= 2
Size = 1 is ~90%
Size = 2 is ~9%
Size >=3 is ~1% and gets a separate allocation
5 years ago
Jonathan G Rennison
90550d9642
FlowStatMap: Replace RB-tree with btree-indexed vector
5 years ago
Jonathan G Rennison
674732cd68
Merge: Codechange: Use null pointer literal instead of the NULL macro
5 years ago
Henry Wilson
7c8e7c6b6e
Codechange: Use null pointer literal instead of the NULL macro
5 years ago
Jonathan G Rennison
e735c1a51a
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/aircraft_cmd.cpp
# src/autoreplace_cmd.cpp
# src/pathfinder/follow_track.hpp
# src/pathfinder/yapf/yapf_rail.cpp
# src/saveload/afterload.cpp
# src/saveload/saveload.cpp
# src/script/api/ai/ai_station.hpp.sq
# src/script/api/game/game_station.hpp.sq
# src/script/api/script_station.hpp
# src/track_func.h
# src/vehicle_base.h
6 years ago
Charles Pigott
f5b1115039
Doc: Lots and lots of doxymentation fixes
6 years ago
Jonathan G Rennison
cd68e9fac7
Linkgraph: Do not pre-fill annos set at start of MCF Dijkstra
7 years ago
Jonathan G Rennison
4a420ef864
Linkgraph: Use cached value in capacity annotation comparison
7 years ago
Jonathan G Rennison
117b56caeb
Linkgraph: Replace a std::list with a std::vector.
8 years ago
Jonathan G Rennison
c86a027e88
Linkgraph: Use an arena allocator for path objects.
...
Fixes leaks when job is aborted early.
8 years ago
Jonathan G Rennison
3f2c561867
Linkgraph: Add support for aborting MCF passes early.
8 years ago
Jonathan G Rennison
9d5f34fea6
Replace various uses of std::set/map with btree containers.
8 years ago
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
8 years ago
fonsinchen
022b284064
(svn r27613) -Codechange: Use a flat vector instead of a map in FlowEdgeIterator. (JGR)
8 years ago
fonsinchen
a81b7a24a6
(svn r27613) -Codechange: Use a flat vector instead of a map in FlowEdgeIterator. (JGR)
8 years ago
fonsinchen
bcdae9a093
(svn r27611) -Codechange: Cache the calculated value of CapacityAnnotation
8 years ago
fonsinchen
8d5566651b
(svn r27611) -Codechange: Cache the calculated value of CapacityAnnotation
8 years ago
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.
9 years ago
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.
9 years ago
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.
9 years ago
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.
9 years ago
frosch
a14b836bf2
(svn r27178) -Fix [FS#5969]: Data race due to lazy initialisation of objects.
9 years ago
frosch
780e595933
(svn r27178) -Fix [FS#5969]: Data race due to lazy initialisation of objects.
9 years ago
rubidium
0c2f4bdc2b
(svn r27020) -Cleanup: some coding style consistency improvements (mostly spaces)
10 years ago
rubidium
d534c80e94
(svn r27020) -Cleanup: some coding style consistency improvements (mostly spaces)
10 years ago
fonsinchen
ef2caa02b2
(svn r26646) -Fix [FS#6041]: Save locations instead of distances in link graphs to reduce size.
10 years ago
fonsinchen
957f5ca117
(svn r26646) -Fix [FS#6041]: Save locations instead of distances in link graphs to reduce size.
10 years ago
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
10 years ago
rubidium
0463dbdc9e
(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
10 years ago
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.
11 years ago
fonsinchen
b3b460cae2
(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.
11 years ago
fonsinchen
1cc410f7bb
(svn r25356) -Add: Multi-Commodity-Flow solver for link graph
11 years ago
fonsinchen
9824d53d6a
(svn r25356) -Add: Multi-Commodity-Flow solver for link graph
11 years ago