Patrick Niklaus
46185fe9e8
Ptr -> auto
2016-01-26 22:57:02 +01:00
Daniel J. Hofmann
38e8a90f4e
Make HilbertCode a free standing function
2016-01-26 22:57:02 +01:00
Daniel J. Hofmann
d391df52ba
Be kind to the optimizer, pass coordinates by value (just two ints)
2016-01-26 22:57:02 +01:00
Daniel J. Hofmann
46fc6f8da4
Collapse computeAngle into coordinate calculation
2016-01-26 22:57:02 +01:00
Daniel J. Hofmann
0fcca04150
TU-local STXXL comparator for OSMNodeIDs, needs {min,max}_value
...
Can not use std::less<>{} because of this.
2016-01-26 22:57:02 +01:00
Daniel J. Hofmann
54a9173107
Make public RouteParameters header no longer depend on Spirit
...
And includes the optional header that was transitively included by the
spirit header before. Hopefully this will speed up compile times, as the
RouteParameters header is used in a lot of translation units.
2016-01-26 22:57:02 +01:00
Daniel J. Hofmann
312b414d8f
Adapts XORFastHashStorage to XORFastHash compile time limits
2016-01-26 17:54:08 +01:00
Daniel J. Hofmann
a6e7954128
Make XORFastHash's number of hashable elements compile time constant
...
Still constraint by the usage of uint32_t and subsequent splitting into
two uint16_t we use for indexing into the tables.
2016-01-26 17:54:08 +01:00
Daniel J. Hofmann
1417d43430
Cut down memory usage for tables in XORFastHash by factor of four
...
`pow(2, 16)` is not `2 << 16` but rather `1 << 16`.
With this change we cut memory usage in half for the XORFastHash's two
tables. Adapts XORFastHashStorage, memory usage reduction by factor two.
2016-01-26 17:54:08 +01:00
Daniel J. Hofmann
60ef6070b0
Simplify uint32_t splitting in XORFastHash
2016-01-26 17:54:08 +01:00
Daniel J. Hofmann
2f42196fca
Explicitely type XORFastHash
2016-01-26 17:54:08 +01:00
Daniel J. Hofmann
f8b5e7e2c9
Removes XORMiniHash, unused
2016-01-26 17:54:08 +01:00
Daniel J. Hofmann
2c0547bb0e
Make XORFastHash great again
2016-01-26 17:54:08 +01:00
Patrick Niklaus
4f792c40b7
Merge pull request #1928 from mortada/max_locations_map_matching
...
make it possible to disable max_locations in map_matching
2016-01-25 22:31:55 -05:00
Mortada Mehyar
17c3c1d66a
improve comments for gps_precision
2016-01-25 15:17:44 -08:00
Mortada Mehyar
b48022be22
make it possible to disable max_locations in map_matching
2016-01-25 14:53:44 -08:00
Daniel J. Hofmann
502aedb33e
Provide a way to selectively enable assertions in release mode
...
- Throwing an assertion exception for proper stack unwinding, making
sure destructors are called
- On in Debug mode, in Release, enable via:
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_ASSERTIONS=ON
Current problem that I'm seeing is that some code is not catching
exceptions or worse silently swallowing them. Would like to check the
whole pipeline before merging this in.
2016-01-21 15:37:25 +01:00
Patrick Niklaus
439eb9da3d
Create public facing libraries for extractor, contractor and datastore
...
New libraries libosrm_extract, libosrm_contract, libosrm_store
2016-01-21 06:47:34 +01:00
Moritz Kobitzsch
1c1bfd7541
Fix routing when start and target are on the same segment
...
Fixes issue #1864 . Given the simple set-up:
a --> b --> c
^-----------|
This would translate into an edge based graph (ab) -> (bc),
(bc) -> (ca), (ca) -> (ab).
Starting at the end of the one-way street (ab) and going to
the beginning, the query has to find a self-loop within the
graph (ab) -> (bc) -> (ca) -> (ab), as both nodes map to the
same segment (ab).
2016-01-19 23:26:19 +01:00
Daniel Patterson
238e77d959
Include the travel mode in the last instruction by copying it from the previous instruction.
2016-01-19 21:28:56 +01:00
Daniel Patterson
e21eaa4b9e
Adds a shared/exclusive lock around queries and CheckAndReloadFacade.
...
Without this, it's possible for CheckAndReloadFacade to start working
while a query is still in progress, leading to undefined behaviour.
2016-01-19 17:44:29 +01:00
Daniel J. Hofmann
80b897d8cf
Fix shared memory non-copyable properties
2016-01-19 17:44:07 +01:00
Daniel Patterson
1ed7bcfb2c
DataFacade should only remove shared segments if they're actually different from the last time they were checked.
2016-01-19 17:44:07 +01:00
Daniel J. Hofmann
e20f92bbbb
Anonymous namespaces in header files are bad
...
They duplicate the code across translation units.
2016-01-19 17:42:49 +01:00
Daniel J. Hofmann
6e717bfd30
Switch to const constexpr for header constants (3.5/3 internal linkage)
2016-01-19 17:42:49 +01:00
Patrick Niklaus
9d12de9bce
Fix wrong assertion and emplace_back bug in trip plugin
2016-01-19 17:36:29 +01:00
Daniel J. Hofmann
4b0e1a4b19
Run modernizer
2016-01-18 16:54:30 +01:00
Daniel J. Hofmann
491b1d9c96
Remove headers with no reverse dependencies
...
Found with
```
daniel@x1c /t/o/i/util> for header in *.hpp
echo -n $header:
ag -iQ $header ../../ --noheading | wc -l
end
...
fixed_point_number.hpp:0
range_algorithms.hpp:0
...
```
Only two. Surprises me to be honest.
But we're cleaning up for quite a bit now.
2016-01-18 16:05:39 +01:00
Moritz Kobitzsch
b8e29f5ae3
Add a u-turn instruciton when performing a u-turn at a via-node
2016-01-15 19:56:39 +01:00
Patrick Niklaus
6b15f29d7c
Fix handling unexpected errors.
2016-01-14 18:27:36 +01:00
Daniel J. Hofmann
e7d9e42a16
Fix race condition in osrm-routed HTTP server
...
We had a similar issue a few month ago. Stumbled upon this by accident.
It goes like this:
- `output_buffer` is function-local
- we pass it to async_write and leave the scope
- `output_buffers` goes out of scope
- bad things happen, sometimes
The fix is to, again, put it inside the connection that handles itself
via the enable_shared_from_this idiom.
References:
- http://www.boost.org/doc/libs/1_59_0/doc/html/boost_asio/reference/async_write/overload1.html
- https://github.com/Project-OSRM/osrm-backend/pull/1690
2016-01-13 23:21:45 +01:00
Daniel J. Hofmann
466251287f
Define compile-time constants for coordinate calculation only once
...
Closes #1327 .
2016-01-12 19:59:02 +01:00
Daniel J. Hofmann
c93ca02fb8
Rips out dead code from the container.hpp and creates for_each_pai.hpp
...
I added two TODOs that I would like to address in the future.
2016-01-11 20:14:35 +01:00
Daniel J. Hofmann
4813488f84
Split import_edge.hpp: node_based_edge.hpp, edge_based_edge.hpp closes #1604
2016-01-11 20:11:44 +01:00
Daniel J. Hofmann
fc292cc2d8
No need for extra translation units (for edge data structures)
2016-01-11 20:11:44 +01:00
Daniel J. Hofmann
f875e26fbf
Inline mercator transformations; no need for separate translation unit
2016-01-11 20:10:45 +01:00
Daniel J. Hofmann
f68247673a
Make ComputeAngle a free standing function
2016-01-09 19:55:22 +01:00
Daniel J. Hofmann
f65dd63210
Make TurnInstructionsClass functions free standing functions
2016-01-09 19:55:22 +01:00
Daniel J. Hofmann
03f64a6c20
Make RouteNameExtraction a free standing function
2016-01-09 19:55:22 +01:00
Daniel J. Hofmann
0627c3443d
Make PolylineFormatter's encodedAsJSON and unencodedAsJSON free standing functions
2016-01-09 19:55:22 +01:00
Daniel J. Hofmann
c65dd16460
Make PolylineCompresser's encode and decode free standing functions
2016-01-09 19:55:22 +01:00
Daniel J. Hofmann
c590596dbe
Make DouglasPeucker a free standing function
2016-01-09 19:55:21 +01:00
Patrick Niklaus
23cd4d5ed2
not -> !
2016-01-09 19:42:31 +01:00
Moritz Kobitzsch
4dc6ff9fb8
and another missed not
2016-01-09 19:42:31 +01:00
Moritz Kobitzsch
8638cbf8b2
missed a not
2016-01-09 19:42:31 +01:00
Moritz Kobitzsch
a2555983e6
replaces and/not with &&/! for windows
2016-01-09 19:42:31 +01:00
Daniel J. Hofmann
21804aecdb
Prefer inline
over static inline
for free standing functions
...
When you mark free standing functions as `static inline` instead
of just `inline` they can not get merged across TUs and therefore
produce code bloat which is bad for the binaries size, the CPUs
instruction cache, and so on.
Please also see the discussion at:
- https://groups.google.com/forum/#!topic/mozilla.dev.platform/Ulw9HoZbSyQ
- http://stackoverflow.com/a/12836392
Note that non-fully specialized templates (i.e. with a kind of at
least `Template :: * -> *`) are `inline` by default.
2016-01-08 23:33:31 +01:00
Patrick Niklaus
6991a38703
Run clang-format
2016-01-08 01:31:57 +01:00
Patrick Niklaus
6b18e4f7e9
Add namespace around all files
2016-01-08 01:30:52 +01:00
Patrick Niklaus
efc9007cbf
Remore start_phantom/target_phantom because they are useless here
2016-01-07 22:51:37 +01:00