Michael Krasnyk
8d8042ebae
Use ranges with fixed types
2018-04-09 11:05:01 +02:00
Kajari Ghosh
be123cd72f
Use ranges in datafacade instead of vectors
...
Range type must use immutable references due to a
regression in `boost::any_range`.
References:
https://svn.boost.org/trac10/ticket/10493
https://stackoverflow.com/questions/42427395/boostany-range-with-optimization-level-o2-causes-crash/42427662
2018-04-09 11:05:01 +02:00
Michael Krasnyk
bc120776f0
Don't apply unimplemented SH and PH conditions
2018-04-05 13:31:48 +02:00
Patrick Niklaus
cb4586ebee
Make use of the view factory in the data facade
2018-04-04 12:38:40 +02:00
Patrick Niklaus
44924b4bb4
Refactor view creation to own header file
2018-04-04 12:38:40 +02:00
Patrick Niklaus
5a68f4c214
Refactor setting up vector_view
2018-04-04 12:38:40 +02:00
Patrick Niklaus
4ef331db1f
Use read-only mmap as member in StaticRTree
2018-03-27 10:20:33 +00:00
Michael Krasnyk
e572d6c340
msvc fixes
2018-03-26 21:45:27 -04:00
Patrick Niklaus
c322d93435
Make the block size of vector<bool> consistent
2018-03-26 12:12:41 +00:00
Patrick Niklaus
c0dd5d7c76
Fix formating
2018-03-26 11:02:34 +00:00
Patrick Niklaus
a542da3678
Remove old io::FileWrite serialization code
2018-03-26 11:02:34 +00:00
Patrick Niklaus
bde51a9ef5
Add tar file mmaping
2018-03-26 11:02:33 +00:00
Patrick Niklaus
ee447afd72
Fix DealloctingVector from initializer list constructor
...
It was not setting the number of elements.
2018-03-26 11:02:33 +00:00
Patrick Niklaus
8152dcfb4c
Port .ramIndex to tar file and mmap .fileIndex directly
2018-03-26 11:02:33 +00:00
Patrick Niklaus
b8260e44fa
Port .names file to tar
2018-03-26 11:02:04 +00:00
Patrick Niklaus
f407afa694
Move .osrm file to tar format
2018-03-26 11:02:04 +00:00
Patrick Niklaus
06f28ffd34
Add BufferWriter/BufferReader and simplify interface for ConditionalRestrictions
2018-03-26 11:02:04 +00:00
Patrick Niklaus
6ea296fb5c
Port .nbg_nodes file to tar
2018-03-26 11:02:04 +00:00
Patrick Niklaus
cf5f6be472
Swtich EBG to tar file
2018-03-26 11:02:04 +00:00
Patrick Niklaus
5d1b4ce71d
Port .osrm.icd file over to tar
2018-03-26 11:02:03 +00:00
Patrick Niklaus
aaf39162a8
Fix vector<bool> serialization for tar files and add unit tests
2018-03-26 11:02:03 +00:00
Patrick Niklaus
cb31f9ec29
Port hsgr file to tar
2018-03-26 11:02:03 +00:00
Michael Krasnyk
0fc8b6289c
Merge IntersectionShapeData and IntersectionEdgeGeometry
2018-03-05 13:19:57 +01:00
Michael Krasnyk
cf56b5ddbf
Increase precision of coordinates in OSM links
2018-03-05 13:19:57 +01:00
Patrick Niklaus
bec57258a4
Add mmap allocator
2018-02-26 23:32:34 +01:00
Mateusz Loskot
ae41066fbe
Prefer logical punctuators instead of named operator keywords
...
Some compilers (eg. MSVC) still require inclusion of <ciso646>
in order to import named operator keywords.
It is easier to stick with traditional punctuators.
2018-02-14 13:26:41 +01:00
Fred-Byrd
342da81591
web_mercator to double
2018-02-13 12:54:52 +01:00
Fred-Byrd
df9195b939
coordinate_calculation doubles
2018-02-13 12:54:52 +01:00
Patrick Niklaus
b4cfc8d6e0
Fix formating
2018-02-06 11:51:33 +01:00
Patrick Niklaus
e7bb612050
Move debug printer code to own header
2018-02-06 11:51:33 +01:00
Patrick Niklaus
83d7a57b73
Remove OSM link debug printing from public class
2018-02-06 11:51:33 +01:00
Patrick Niklaus
cac310123b
Remove debug printing code from Rectangle
2018-02-06 11:51:33 +01:00
Michael Krasnyk
9e93f198ae
Add CRC checksums to EBG and turns data
2018-02-02 11:33:38 -05:00
Michael Krasnyk
10de243556
Move guidance turn generation out of EBGF
2018-02-02 11:33:38 -05:00
Michael Krasnyk
988b6e3311
Split intersection analysis and guidance code
...
Intersection analysis occupy in osrm::extractor::intersection namespace
and guidance code osrm::guidance
2018-02-02 11:33:38 -05:00
Michael Krasnyk
36877e4de5
Move guidance pre-processing code into GUIDANCE library
2018-02-02 11:33:38 -05:00
Michael Krasnyk
1119a542d6
Announce reference change if names are empty, #4830
2018-01-29 16:32:59 -05:00
Huyen Chau Nguyen
61e06fcaba
Making the turn function more flexible ( #4789 )
...
* set and store highway and access classification for the turn function
* expose highway turn classification and access turn classification and speed to the lua profile turn function
* expose whether connection road at turn is incoming or outgoing
* add lua tests for exposed information to turn function
* update docs about attributes in process_turn
* add turn_classification info to docs
* adding warning if uturn and intersection dont match
* handle u turns that do not turn into intersection[0]
* split OSM link generation in an accessible coordinate function
2018-01-24 15:39:55 -05:00
Michael Krasnyk
9c033ff461
Free functions for guidance intersections analysis
2018-01-05 17:35:11 +01:00
Mateusz Loskot
da4fb13aa3
Tidy up #include-s for Intel TBB headers
...
Remove unused and add missing headers.
2018-01-05 11:00:31 +01:00
Michael Krasnyk
742c32d936
Don't use to_string conversion in requiresNameAnnounced
2017-12-26 16:18:27 +01:00
Patrick Niklaus
ccfbce5300
Remove superflous sentinel in DynamicGraph, fixes #4738
2017-12-18 10:23:29 +00:00
vng
90e361c3dc
Use immutable node-based-graph for segregated edges.
2017-11-16 15:08:30 +01:00
vng
ee7912f882
Calculating segregated node-based edges.
2017-11-16 15:08:30 +01:00
Daniel J. Hofmann
9b83649a03
Fixes AppVeyor tests
2017-11-06 14:38:21 -05:00
Daniel J. Hofmann
c5b48e3506
Adds a statistics handler for turn types and modifiers
2017-11-06 14:38:21 -05:00
Moritz Kobitzsch
23fd27422b
normalise angles only if an improvement
2017-10-25 10:17:14 +02:00
Michael Krasnyk
088d4edc6b
Prevent merging of circular-shaped roads
2017-10-17 11:27:09 +02:00
Patrick Niklaus
90b3be8d10
Fix formating
2017-10-16 13:40:02 +01:00
Patrick Niklaus
ba2a2ff5e8
Remove RemoveIterator because its dangerous
2017-10-16 13:40:02 +01:00
Patrick Niklaus
9b87b8b7b1
Replace deallocation vector with std::vector and different merge algorithm
2017-10-16 13:40:02 +01:00
Moritz Kobitzsch
fd52c80573
remove workaround, reduce memory consumption in lcs computation
2017-10-11 14:07:35 +02:00
Moritz Kobitzsch
884ce4025b
fix detection of suffix/prefix changes for name-changes
2017-10-11 14:07:35 +02:00
Moritz Kobitzsch
2ddd98ee6d
simplify passing annotation data through OSRM pipeline using the node-based datastore
...
- separates node-based graph creation and compression from edge-based graph creation
- moves usage of edge-based node data-container to pre-processing as well, unifying access to node-based data
- single struct instead of separate vectors for annotation data in engine (single place of modification)
2017-10-09 18:44:43 +02:00
Michael Krasnyk
7ad9e13f1e
Add MultiPolygon support
2017-10-04 10:03:42 +02:00
Michael Krasnyk
af3f0a4782
Use driving_side tag of location-dependent data and OSM ways
2017-10-04 10:03:42 +02:00
Jack Danger
79d07ef45c
Updating year on all 'Project OSRM' copyrights
2017-10-03 12:03:26 +02:00
Michael Krasnyk
e32b8bae00
Make unbuffered log verbosity aware
2017-09-15 15:01:17 +02:00
Michael Krasnyk
5ca38eee3a
Remove RelationMemberWrap and avoid data copying
2017-09-14 20:00:05 +02:00
Denis Koronchik
ff3b398e23
Review fixes
2017-09-14 20:00:05 +02:00
Denis Koronchik
c2fd64d3cc
Apply clang format
2017-09-14 20:00:05 +02:00
Denis Koronchik
a253111cbe
Add ExtractionRelation class
2017-09-14 20:00:05 +02:00
Patrick Niklaus
61c430c098
Implement exclude flags on CH using shared core
...
The core is fully contracted for each exclude flag
and stored in a merged graph data structure.
2017-09-01 21:26:00 +02:00
Patrick Niklaus
4b75cb8b0e
Make DynamicGraph copyable
2017-09-01 21:26:00 +02:00
Patrick Niklaus
e011c60e12
Replace flush in contract with in-place renumbering
2017-09-01 21:26:00 +02:00
Patrick Niklaus
26c909b64b
Refactor contractor to pass in graph directly
2017-09-01 21:26:00 +02:00
Mateusz Loskot
7323221e3b
Add --verbosity,-l command line option
...
Allow to fine-control logging verbosity via command line
and LogPolicy setting (useful when OSRM used as library).
Closes #4299
2017-08-31 00:35:23 +02:00
Mateusz Loskot
2385602500
Switch to reliable non-existent handle for QueryHeap items.
...
Default-constructed objects of (boost::heap) handle_type are singular,
including the wrapped handle_type::iterator.
Apparently, MSVC iterator debug facilities strictly require that
one singular instance is compared to another singular instance.
It is not possible to get check-comparabe iterators of non-singular
and singular instances as owning container will always mismatch.
2017-08-30 10:59:43 +02:00
Moritz Kobitzsch
e9c9c87bbc
adjust geojson logger to changes in extractor
2017-08-11 12:03:40 +02:00
Michael Krasnyk
c1ad4f6b45
Fix a single weekday grammar callback
2017-07-31 14:56:08 +02:00
Moritz Kobitzsch
8135f08958
restructure for review remarks
2017-07-31 09:36:25 +02:00
Moritz Kobitzsch
8d0202d240
Add data structure to allow identification of via-way turns during creation of edge-based-graph
...
initial version of handling via-way turn restrictions (this is dirty)
- requires update of data structures
- requires clean-up
- requires optimisation
2017-07-31 09:36:25 +02:00
Moritz Kobitzsch
2e9a7d9c1a
refactor restriction parsing / extraction to actual types
...
Makes turn restrictions into dedicated structures and diferentiates between them via a variant.
Ensures that we do not accidentally mess up ID types within our application.
In addition this improves the restriction performance by only parsing all edges
once at the cost of (at the time of writing) 22MB in terms of main memory usage.
2017-07-31 09:36:25 +02:00
Moritz Kobitzsch
f2f00b99e0
remove usage of use-lane completely
2017-07-18 11:23:46 +02:00
Michael Krasnyk
b2ed46efb5
Check activation index of EntryClass and warn if activation failed
2017-07-13 22:14:41 +00:00
Michael Krasnyk
3940cc1641
Switch from stxxl::vector to std::vector in extractor
2017-07-11 08:23:26 +00:00
Daniel J. Hofmann
54ceb05420
Implements Alternatives for MLD
2017-07-07 16:12:46 +00:00
Patrick Niklaus
fef0344be0
Don't use bool flags on ExternalMemoryNode because they blow up the struct
2017-07-07 13:24:34 +00:00
Patrick Niklaus
44739f2dc3
Allow users to specify a class for each way
...
This adds the ability to mark ways with a user-defined
class in the profile. This class information will be included
in the response as property of the RouteStep object.
2017-07-06 09:17:49 +00:00
Moritz Kobitzsch
3073f4c0d1
don't announce something if we loose exit numbers while on the ramp
2017-07-04 20:58:19 +00:00
Daniel J. Hofmann
7d900e3b5a
Implements Exit Numbers + Names (junction:ref
way tag for now)
2017-07-04 20:58:19 +00:00
Michael Krasnyk
c914afdbf1
Fix missing-field-initializers warnings in PackedVector
2017-06-30 14:27:43 +02:00
Michael Krasnyk
c8b75c9046
Use thread-safe lock-free assignment in PackedVector::set_value
...
PR uses TBB internal atomic's for atomic CAS on non-atomic data
Corresponding PR https://github.com/Project-OSRM/osrm-backend/pull/4199
Other options:
* use sequential update
* use an internal packed vector lock -> makes packed vector non-movable
* use boost.interprocess atomics implementation -> outdated and only 32 bit version
* use glib atomic's -> requires new dependency
* wait for https://isocpp.org/blog/2014/05/n4013 as_atomic
* use c11 _Atomic and atomic_compare_exchange_weak -> not possible to mix c++11 and c11
* use builtin functions gcc __sync_bool_compare_and_swap and msvc _InterlockedCompareExchange64 -> possible, but requires proper testing
boolean CompareAndSwapPointer(volatile * void * ptr,
void * new_value,
void * old_value) {
if defined(_MSC_VER)
if (InterlockedCompareExchange(ptr, new_value, old_value) == old_value) return false;
else return true;
elif (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40100
return __sync_bool_compare_and_swap(ptr, old_value, new_value);
else
error No implementation
endif
}
* use Boost.Atomic -> requires new dependency
WordT local_lower_word = lower_word, new_lower_word;
do
{
new_lower_word = set_lower_value<WordT, T>(local_lower_word,
lower_mask[internal_index.element],
lower_offset[internal_index.element],
value);
} while (!boost::atomics::detail::operations<sizeof(WordT), false>::compare_exchange_weak(
lower_word,
local_lower_word,
new_lower_word,
boost::memory_order_release,
boost::memory_order_relaxed));
2017-06-27 13:02:53 +02:00
Patrick Niklaus
dd8f5ac01d
Make EMPTY_ENTRY_CLASS constexpr
2017-06-27 09:58:19 +00:00
Patrick Niklaus
22479ff5d8
Avoid dead-lock if other = this
2017-06-27 09:58:19 +00:00
Patrick Niklaus
e5464526c8
Port isc file
2017-06-27 09:58:19 +00:00
Patrick Niklaus
37b8d3acd4
Refactor turn lane passing
2017-06-27 09:58:19 +00:00
Patrick Niklaus
7fb57c924f
Explicitly implement move constructor for DeallocationVector
2017-06-23 09:22:30 +00:00
Patrick Niklaus
97592e5bc3
Refactor file writing in OSRM contract
2017-06-23 09:22:30 +00:00
Daniel Patterson
35550d8c0a
Parallelize generation of the edge-expanded-edges.
2017-06-15 09:05:45 +00:00
Daniel J. Hofmann
b68d79407e
Takes fn by forwarding ref. in for_each_pair, resolves #4148
2017-06-14 15:17:26 +00:00
Daniel Patterson
3d77714c36
Make most command-line tools return useful error codes on well-known exceptions.
2017-06-08 15:03:24 +00:00
Patrick Niklaus
0d12d2fd28
Merge pull request #4094 from Project-OSRM/refactor/rapidash
...
Replace timezone shapefile parsing with geojson parsing
2017-06-02 20:01:04 +00:00
Patrick Niklaus
10460fc2fb
Fix PR comments
2017-06-02 18:46:21 +00:00
Patrick Niklaus
0266c9d969
Renumber nodes after running osrm-partition
...
The new numbering uses the partition information
to sort border nodes first to compactify storages
that need access indexed by border node ID.
We also get an optimized cache performance for free
sincr we can also recursively sort the nodes by cell ID.
This implements issue #3779 .
2017-06-02 18:12:13 +00:00
Patrick Niklaus
a195d7dfd3
Remove compiler errors and use 32bit for segment_index
2017-06-02 12:15:06 +00:00
Daniel Patterson
1c3cb897c1
Refactor RTree so that .fileIndex only contains EdgeDataT, and all r-tree structure is in the .ramIndex file.
...
Also tunes the BRANCHING_FACTOR a bit to speed up access with this new layout.
2017-06-02 12:15:06 +00:00
karenzshea
65746edd2d
deps and lint
2017-06-02 10:00:07 +02:00
karenzshea
63ea75612b
by default restrictions are off if timezone is not found
2017-06-02 10:00:07 +02:00
karenzshea
564a29141e
add testing geojson files
2017-06-02 10:00:07 +02:00
karenzshea
c937d20e48
unit tests for geojson validation
2017-06-02 10:00:07 +02:00
karenzshea
ca353eb7db
refactor timezoner a bit for unit tests, add initial unit tests
2017-06-02 10:00:07 +02:00
karenzshea
f268163ea0
remove shapefile dependency from build
2017-06-02 10:00:07 +02:00
karenzshea
6f41e3faf1
fixes to get compiling
2017-06-02 10:00:07 +02:00
karenzshea
aed2c0124a
rapidjson steppin in
2017-06-02 10:00:07 +02:00
Moritz Kobitzsch
ceaf065d0e
don't collapse highway ramps into uturns ( #4074 )
2017-06-01 12:39:10 +02:00
Daniel Patterson
7eab227ab1
Use FileWriter for better error handling when writing name data.
2017-05-29 15:09:36 +00:00
Daniel Patterson
382a5cebab
Use FileWriter for writing LeafNode data to improve error handling.
2017-05-29 15:09:36 +00:00
Daniel Patterson
570d81c6dd
Bypass boost::numeric_cast checks for coordinate values that have already been validated ( #4059 )
...
(i.e. stuff that's stored in our datafiles). Keep those checks for user-supplied values
(i.e. coordinates coming from files during preprocessing, or coordinates supplied by users
during requests)
2017-05-19 10:52:44 -07:00
Patrick Niklaus
3599d1db8e
Switch code to use packed vector for segment weights/durations
2017-05-19 08:25:03 +00:00
Michael Krasnyk
7a4c5a64fa
Simplify angleBetween to avoid cancellation losses
2017-05-17 15:52:11 +00:00
Michael Krasnyk
14db5f8d1f
Fix OSRM_ASSERT_MSG compilation fail in Release mode
2017-05-17 15:52:11 +00:00
Michael Krasnyk
26702920b4
Move ComponentID to EdgeBasedNodeDataContainer
2017-05-17 15:21:51 +00:00
Patrick Niklaus
6bd724fe24
Rewrite packed vector to also allow random access
...
This fixes issues #3952 . The new approach pre-computes masks for fast
access. Since elements can potentially span multiple words we need masks
and offsets for each upper and lower word.
Due to a bug in the C++14 standart the mask computation is not
recognized as constexpr, but would work on C++17.
2017-05-16 10:25:29 +00:00
Karen Shea
799a677e7a
Conditional turn restriction support ( #3841 )
...
* optionally include condition and via node coords in InputRestrictionContainer
* only write conditionals to disk, custom serialization for restrictions
* conditional turn lookup, reuse timezone validation from
extract-conditionals
* adapt updater to use coordinates/osm ids, remove internal to external map
* add utc time now parameter to contraction
* only compile timezone code where libshp is found, adapt test running
* slight refactor, more tests
* catch invalid via nodes in restriction parsing, set default cucumber
origin to guinée
* add another run to test mld routed paths
* cosmetic review changes
* Simplify Timezoner for windows build
* Split declaration and parsing parts for opening hours
* adjust conditional tests to run without shapefiles
* always include parse conditionals option
* Adjust travis timeout
* Added dummy TZ shapefile with test timezone polygons
* [skip ci] update changelog
2017-05-11 12:13:52 +02:00
Michael Krasnyk
07c7cb3c6c
Rename BinaryHeap to QueryHeap
2017-05-02 15:54:25 +00:00
Michael Krasnyk
358aebec4d
Decrease memory footprint of HeapHandle from 32 to 24 bytes
2017-05-02 15:54:25 +00:00
Michael Krasnyk
05826150f6
Use boost::heap::d_ary_heap
2017-05-02 15:54:25 +00:00
Patrick Niklaus
0e39aa9488
Address PR comments
2017-04-24 16:04:41 +00:00
Patrick Niklaus
8ec0745883
Add benchmark
2017-04-24 16:04:41 +00:00
Patrick Niklaus
c446b017ef
Switch from macro based StrongTypedef to template version
2017-04-24 16:04:41 +00:00
Patrick Niklaus
814324146b
signed -> unsigned
2017-04-20 14:58:26 +00:00
Patrick Niklaus
11d8b2ba5a
Add clipping for 20 bits to SegmentWeight/SegmentDuration
2017-04-20 14:58:26 +00:00
Patrick Niklaus
d6c6a262d8
Use 16bit for SegmentWeight and SegmentDuration
2017-04-20 14:58:26 +00:00
Patrick Niklaus
e96545be2e
Disable is_integral check because it fails for strong-type-def
2017-04-18 17:24:46 +00:00
Patrick Niklaus
609801ae99
Fix PR comments
2017-04-18 17:24:46 +00:00
Patrick Niklaus
a66918a303
Make PackedVector generic
2017-04-18 17:24:46 +00:00
Pepijn Schoen
b830a8f942
Replace Count32 with Count64
2017-04-18 12:01:06 +00:00
Pepijn Schoen
85ec50552d
fingerprint .ramIndex / tree nodes
2017-04-18 12:01:06 +00:00
Patrick Niklaus
da474a16a9
Fix formating
2017-04-10 17:25:02 +00:00
Patrick Niklaus
59bbfeb67f
Buffer turn data on disk to save memory
2017-04-10 17:25:02 +00:00
Patrick Niklaus
85454857d3
Use default move function
2017-04-06 15:42:38 +00:00
Patrick Niklaus
446c865415
Dont leak ownership in extractor::files
2017-04-06 15:42:38 +00:00
Patrick Niklaus
0072bf0c59
Move to forward declare header
2017-04-06 15:42:38 +00:00
Patrick Niklaus
4ec7ca29f1
Fix formating
2017-04-06 15:42:38 +00:00
Patrick Niklaus
d94017dfae
No shared_memory_wrapper, (De)SerializeVector
2017-04-06 15:42:38 +00:00
Patrick Niklaus
7f6e0c478b
Split QueryNode into coordinates and osm id
2017-04-06 15:42:38 +00:00
Patrick Niklaus
ef3fcdc6e6
Refactor graph writing code in contractor
2017-04-06 15:42:38 +00:00
Patrick Niklaus
90c194fc81
Refactor turn description into own file
2017-04-06 15:42:38 +00:00
Patrick Niklaus
5ed686a17b
Add generic graph serialization
2017-04-06 15:42:38 +00:00
Patrick Niklaus
99a87b4c83
Change serialisation of .geometries file.
2017-04-06 15:42:38 +00:00
Patrick Niklaus
97d1de1beb
Pull turn data up into server
2017-04-06 15:42:38 +00:00
Patrick Niklaus
d7e1c9c09c
Refactor turn data into own class
2017-04-06 15:42:38 +00:00
Patrick Niklaus
45df8568b6
Fix formating
2017-04-05 11:22:39 +00:00
Patrick Niklaus
0da041477b
Adjust generation counted array for PR comments
2017-04-05 11:22:39 +00:00
Patrick Niklaus
571681d019
Use array heap
2017-04-05 11:22:39 +00:00
Patrick Niklaus
9b614c6057
Add generation counted storage
2017-04-05 11:22:39 +00:00
Pepijn Schoen
789311abd6
Remove osrm namespace indication where possible, wrap out shared_memory_ownership
2017-04-04 17:00:36 +00:00
Pepijn Schoen
091a495632
clang-format
2017-04-04 17:00:36 +00:00
Pepijn Schoen
16665aeb00
Renaming of MemorySetting > Ownership
2017-04-04 17:00:36 +00:00