{"action":"created","comment":{"url":"https://api.github.com/repos/boostorg/geometry/pulls/comments/90494347","pull_request_review_id":11013068,"id":90494347,"diff_hunk":"@@ -0,0 +1,149 @@\n+// Boost.Geometry\n+\n+// Copyright (c) 2016 Oracle and/or its affiliates.\n+\n+// Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle\n+\n+// Use, modification and distribution is subject to the Boost Software License,\n+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at\n+// http://www.boost.org/LICENSE_1_0.txt)\n+\n+#ifndef BOOST_GEOMETRY_FORMULAS_MAXIMUM_LATITUDE_HPP\n+#define BOOST_GEOMETRY_FORMULAS_MAXIMUM_LATITUDE_HPP\n+\n+#include <boost/geometry/formulas/spherical.hpp>\n+\n+namespace boost { namespace geometry { namespace formula\n+{\n+\n+/*!\n+\\brief Algorithm to compute the vertex latitude of a geodesic segment. Vertex is\n+a point on the geodesic that maximizes (or minimizes) the latitude.\n+\\author See\n+    Wood - Vertex Latitudes on Ellipsoid Geodesics, SIAM Rev., 38(4), 637–644,\n+    1996\n+*/\n+\n+template <typename CT>\n+class vertex_latitude\n+{\n+\n+public:\n+\n+    struct vertex_lat_result\n+    {\n+        vertex_lat_result()\n+            :   north(0),\n+              south(0)\n+        {}\n+\n+        CT north, south;\n+    };\n+\n+    template <\n+            typename T1,\n+            typename T2\n+            >\n+    static inline vertex_lat_result spherical(T1 const& lon1,","path":"include/boost/geometry/formulas/vertex_latitude.hpp","position":47,"original_position":47,"commit_id":"86fbf6a204016f4b0909451d58f3f5f19c44ef39","original_commit_id":"86fbf6a204016f4b0909451d58f3f5f19c44ef39","user":{"login":"barendgehrels","id":334849,"avatar_url":"https://avatars.githubusercontent.com/u/334849?v=3","gravatar_id":"","url":"https://api.github.com/users/barendgehrels","html_url":"https://github.com/barendgehrels","followers_url":"https://api.github.com/users/barendgehrels/followers","following_url":"https://api.github.com/users/barendgehrels/following{/other_user}","gists_url":"https://api.github.com/users/barendgehrels/gists{/gist_id}","starred_url":"https://api.github.com/users/barendgehrels/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/barendgehrels/subscriptions","organizations_url":"https://api.github.com/users/barendgehrels/orgs","repos_url":"https://api.github.com/users/barendgehrels/repos","events_url":"https://api.github.com/users/barendgehrels/events{/privacy}","received_events_url":"https://api.github.com/users/barendgehrels/received_events","type":"User","site_admin":false},"body":"Also minor, if it fits in one line (80 chars), you may write it on one line (template <typename T1, typename T2>\r\nIf it does not fit on one line, it should be indented like functions do, so < goes on next line, aligned under template","created_at":"2016-12-01T17:20:37Z","updated_at":"2016-12-01T17:20:37Z","html_url":"https://github.com/boostorg/geometry/pull/360#discussion_r90494347","pull_request_url":"https://api.github.com/repos/boostorg/geometry/pulls/360","_links":{"self":{"href":"https://api.github.com/repos/boostorg/geometry/pulls/comments/90494347"},"html":{"href":"https://github.com/boostorg/geometry/pull/360#discussion_r90494347"},"pull_request":{"href":"https://api.github.com/repos/boostorg/geometry/pulls/360"}}},"pull_request":{"url":"https://api.github.com/repos/boostorg/geometry/pulls/360","id":83815938,"html_url":"https://github.com/boostorg/geometry/pull/360","diff_url":"https://github.com/boostorg/geometry/pull/360.diff","patch_url":"https://github.com/boostorg/geometry/pull/360.patch","issue_url":"https://api.github.com/repos/boostorg/geometry/issues/360","number":360,"state":"open","locked":false,"title":"Feature/max latitude","user":{"login":"vissarion","id":3660366,"avatar_url":"https://avatars.githubusercontent.com/u/3660366?v=3","gravatar_id":"","url":"https://api.github.com/users/vissarion","html_url":"https://github.com/vissarion","followers_url":"https://api.github.com/users/vissarion/followers","following_url":"https://api.github.com/users/vissarion/following{/other_user}","gists_url":"https://api.github.com/users/vissarion/gists{/gist_id}","starred_url":"https://api.github.com/users/vissarion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vissarion/subscriptions","organizations_url":"https://api.github.com/users/vissarion/orgs","repos_url":"https://api.github.com/users/vissarion/repos","events_url":"https://api.github.com/users/vissarion/events{/privacy}","received_events_url":"https://api.github.com/users/vissarion/received_events","type":"User","site_admin":false},"body":"### Problem: compute the vertex latitude of a segment\n\nGiven a segment compute the point with the highest latitude, called vertex latitude. Note that on sphere/ellipsoid this could be higher than the maximum latitude of the segment's endpoints. \n### Solution\n\nThis PR implements formulas proposed in \n\n`Wood - Vertex Latitudes on Ellipsoid Geodesics, SIAM Rev., 38(4), 637–644, 1996` \n\nIt is implemented in formulas/vertex_latitude.hpp for both geographic and spherical cases. The method computes both maximum and minimum latitude points of the segment. Several tests are also added.\n### Comments\n- The solution is expected to be much faster than computing the shortest distance between the segment and the North (or South) pole. Note that the later is a correct (but slower) solution for the problem. \n- This PR is going to be used by the algorithm that computes the envelope of a segment. \n- Azimuth algorithm for spherical segments was altered in order to use an azimuth formula. This is more consistent to geographic azimuth, i.e. the algorithm calls a formula. Then the azimuth formula is directly be used by the vertex latitude formula. \n","created_at":"2016-09-02T14:58:35Z","updated_at":"2016-12-01T17:22:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f9fa8de803ca318c17a77dbda6b61cc8b91690bc","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/boostorg/geometry/pulls/360/commits","review_comments_url":"https://api.github.com/repos/boostorg/geometry/pulls/360/comments","review_comment_url":"https://api.github.com/repos/boostorg/geometry/pulls/comments{/number}","comments_url":"https://api.github.com/repos/boostorg/geometry/issues/360/comments","statuses_url":"https://api.github.com/repos/boostorg/geometry/statuses/86fbf6a204016f4b0909451d58f3f5f19c44ef39","head":{"label":"vissarion:feature/max_latitude","ref":"feature/max_latitude","sha":"86fbf6a204016f4b0909451d58f3f5f19c44ef39","user":{"login":"vissarion","id":3660366,"avatar_url":"https://avatars.githubusercontent.com/u/3660366?v=3","gravatar_id":"","url":"https://api.github.com/users/vissarion","html_url":"https://github.com/vissarion","followers_url":"https://api.github.com/users/vissarion/followers","following_url":"https://api.github.com/users/vissarion/following{/other_user}","gists_url":"https://api.github.com/users/vissarion/gists{/gist_id}","starred_url":"https://api.github.com/users/vissarion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vissarion/subscriptions","organizations_url":"https://api.github.com/users/vissarion/orgs","repos_url":"https://api.github.com/users/vissarion/repos","events_url":"https://api.github.com/users/vissarion/events{/privacy}","received_events_url":"https://api.github.com/users/vissarion/received_events","type":"User","site_admin":false},"repo":{"id":58446139,"name":"geometry","full_name":"vissarion/geometry","owner":{"login":"vissarion","id":3660366,"avatar_url":"https://avatars.githubusercontent.com/u/3660366?v=3","gravatar_id":"","url":"https://api.github.com/users/vissarion","html_url":"https://github.com/vissarion","followers_url":"https://api.github.com/users/vissarion/followers","following_url":"https://api.github.com/users/vissarion/following{/other_user}","gists_url":"https://api.github.com/users/vissarion/gists{/gist_id}","starred_url":"https://api.github.com/users/vissarion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vissarion/subscriptions","organizations_url":"https://api.github.com/users/vissarion/orgs","repos_url":"https://api.github.com/users/vissarion/repos","events_url":"https://api.github.com/users/vissarion/events{/privacy}","received_events_url":"https://api.github.com/users/vissarion/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/vissarion/geometry","description":"Boost.org geometry module","fork":true,"url":"https://api.github.com/repos/vissarion/geometry","forks_url":"https://api.github.com/repos/vissarion/geometry/forks","keys_url":"https://api.github.com/repos/vissarion/geometry/keys{/key_id}","collaborators_url":"https://api.github.com/repos/vissarion/geometry/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/vissarion/geometry/teams","hooks_url":"https://api.github.com/repos/vissarion/geometry/hooks","issue_events_url":"https://api.github.com/repos/vissarion/geometry/issues/events{/number}","events_url":"https://api.github.com/repos/vissarion/geometry/events","assignees_url":"https://api.github.com/repos/vissarion/geometry/assignees{/user}","branches_url":"https://api.github.com/repos/vissarion/geometry/branches{/branch}","tags_url":"https://api.github.com/repos/vissarion/geometry/tags","blobs_url":"https://api.github.com/repos/vissarion/geometry/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/vissarion/geometry/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/vissarion/geometry/git/refs{/sha}","trees_url":"https://api.github.com/repos/vissarion/geometry/git/trees{/sha}","statuses_url":"https://api.github.com/repos/vissarion/geometry/statuses/{sha}","languages_url":"https://api.github.com/repos/vissarion/geometry/languages","stargazers_url":"https://api.github.com/repos/vissarion/geometry/stargazers","contributors_url":"https://api.github.com/repos/vissarion/geometry/contributors","subscribers_url":"https://api.github.com/repos/vissarion/geometry/subscribers","subscription_url":"https://api.github.com/repos/vissarion/geometry/subscription","commits_url":"https://api.github.com/repos/vissarion/geometry/commits{/sha}","git_commits_url":"https://api.github.com/repos/vissarion/geometry/git/commits{/sha}","comments_url":"https://api.github.com/repos/vissarion/geometry/comments{/number}","issue_comment_url":"https://api.github.com/repos/vissarion/geometry/issues/comments{/number}","contents_url":"https://api.github.com/repos/vissarion/geometry/contents/{+path}","compare_url":"https://api.github.com/repos/vissarion/geometry/compare/{base}...{head}","merges_url":"https://api.github.com/repos/vissarion/geometry/merges","archive_url":"https://api.github.com/repos/vissarion/geometry/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/vissarion/geometry/downloads","issues_url":"https://api.github.com/repos/vissarion/geometry/issues{/number}","pulls_url":"https://api.github.com/repos/vissarion/geometry/pulls{/number}","milestones_url":"https://api.github.com/repos/vissarion/geometry/milestones{/number}","notifications_url":"https://api.github.com/repos/vissarion/geometry/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/vissarion/geometry/labels{/name}","releases_url":"https://api.github.com/repos/vissarion/geometry/releases{/id}","deployments_url":"https://api.github.com/repos/vissarion/geometry/deployments","created_at":"2016-05-10T09:07:50Z","updated_at":"2016-05-15T20:46:32Z","pushed_at":"2016-11-08T11:02:41Z","git_url":"git://github.com/vissarion/geometry.git","ssh_url":"git@github.com:vissarion/geometry.git","clone_url":"https://github.com/vissarion/geometry.git","svn_url":"https://github.com/vissarion/geometry","homepage":"http://boost.org/libs/geometry","size":37206,"stargazers_count":1,"watchers_count":1,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":1,"default_branch":"develop"}},"base":{"label":"boostorg:develop","ref":"develop","sha":"e3b424940cdd524b640122ed4a05eba5dbe80fd0","user":{"login":"boostorg","id":3170529,"avatar_url":"https://avatars.githubusercontent.com/u/3170529?v=3","gravatar_id":"","url":"https://api.github.com/users/boostorg","html_url":"https://github.com/boostorg","followers_url":"https://api.github.com/users/boostorg/followers","following_url":"https://api.github.com/users/boostorg/following{/other_user}","gists_url":"https://api.github.com/users/boostorg/gists{/gist_id}","starred_url":"https://api.github.com/users/boostorg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boostorg/subscriptions","organizations_url":"https://api.github.com/users/boostorg/orgs","repos_url":"https://api.github.com/users/boostorg/repos","events_url":"https://api.github.com/users/boostorg/events{/privacy}","received_events_url":"https://api.github.com/users/boostorg/received_events","type":"Organization","site_admin":false},"repo":{"id":7590021,"name":"geometry","full_name":"boostorg/geometry","owner":{"login":"boostorg","id":3170529,"avatar_url":"https://avatars.githubusercontent.com/u/3170529?v=3","gravatar_id":"","url":"https://api.github.com/users/boostorg","html_url":"https://github.com/boostorg","followers_url":"https://api.github.com/users/boostorg/followers","following_url":"https://api.github.com/users/boostorg/following{/other_user}","gists_url":"https://api.github.com/users/boostorg/gists{/gist_id}","starred_url":"https://api.github.com/users/boostorg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/boostorg/subscriptions","organizations_url":"https://api.github.com/users/boostorg/orgs","repos_url":"https://api.github.com/users/boostorg/repos","events_url":"https://api.github.com/users/boostorg/events{/privacy}","received_events_url":"https://api.github.com/users/boostorg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/boostorg/geometry","description":"Boost.org geometry module","fork":false,"url":"https://api.github.com/repos/boostorg/geometry","forks_url":"https://api.github.com/repos/boostorg/geometry/forks","keys_url":"https://api.github.com/repos/boostorg/geometry/keys{/key_id}","collaborators_url":"https://api.github.com/repos/boostorg/geometry/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/boostorg/geometry/teams","hooks_url":"https://api.github.com/repos/boostorg/geometry/hooks","issue_events_url":"https://api.github.com/repos/boostorg/geometry/issues/events{/number}","events_url":"https://api.github.com/repos/boostorg/geometry/events","assignees_url":"https://api.github.com/repos/boostorg/geometry/assignees{/user}","branches_url":"https://api.github.com/repos/boostorg/geometry/branches{/branch}","tags_url":"https://api.github.com/repos/boostorg/geometry/tags","blobs_url":"https://api.github.com/repos/boostorg/geometry/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/boostorg/geometry/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/boostorg/geometry/git/refs{/sha}","trees_url":"https://api.github.com/repos/boostorg/geometry/git/trees{/sha}","statuses_url":"https://api.github.com/repos/boostorg/geometry/statuses/{sha}","languages_url":"https://api.github.com/repos/boostorg/geometry/languages","stargazers_url":"https://api.github.com/repos/boostorg/geometry/stargazers","contributors_url":"https://api.github.com/repos/boostorg/geometry/contributors","subscribers_url":"https://api.github.com/repos/boostorg/geometry/subscribers","subscription_url":"https://api.github.com/repos/boostorg/geometry/subscription","commits_url":"https://api.github.com/repos/boostorg/geometry/commits{/sha}","git_commits_url":"https://api.github.com/repos/boostorg/geometry/git/commits{/sha}","comments_url":"https://api.github.com/repos/boostorg/geometry/comments{/number}","issue_comment_url":"https://api.github.com/repos/boostorg/geometry/issues/comments{/number}","contents_url":"https://api.github.com/repos/boostorg/geometry/contents/{+path}","compare_url":"https://api.github.com/repos/boostorg/geometry/compare/{base}...{head}","merges_url":"https://api.github.com/repos/boostorg/geometry/merges","archive_url":"https://api.github.com/repos/boostorg/geometry/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/boostorg/geometry/downloads","issues_url":"https://api.github.com/repos/boostorg/geometry/issues{/number}","pulls_url":"https://api.github.com/repos/boostorg/geometry/pulls{/number}","milestones_url":"https://api.github.com/repos/boostorg/geometry/milestones{/number}","notifications_url":"https://api.github.com/repos/boostorg/geometry/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/boostorg/geometry/labels{/name}","releases_url":"https://api.github.com/repos/boostorg/geometry/releases{/id}","deployments_url":"https://api.github.com/repos/boostorg/geometry/deployments","created_at":"2013-01-13T15:59:29Z","updated_at":"2016-11-15T13:41:41Z","pushed_at":"2016-11-30T15:01:58Z","git_url":"git://github.com/boostorg/geometry.git","ssh_url":"git@github.com:boostorg/geometry.git","clone_url":"https://github.com/boostorg/geometry.git","svn_url":"https://github.com/boostorg/geometry","homepage":"http://boost.org/libs/geometry","size":45179,"stargazers_count":94,"watchers_count":94,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":64,"mirror_url":null,"open_issues_count":16,"forks":64,"open_issues":16,"watchers":94,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/boostorg/geometry/pulls/360"},"html":{"href":"https://github.com/boostorg/geometry/pull/360"},"issue":{"href":"https://api.github.com/repos/boostorg/geometry/issues/360"},"comments":{"href":"https://api.github.com/repos/boostorg/geometry/issues/360/comments"},"review_comments":{"href":"https://api.github.com/repos/boostorg/geometry/pulls/360/comments"},"review_comment":{"href":"https://api.github.com/repos/boostorg/geometry/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/boostorg/geometry/pulls/360/commits"},"statuses":{"href":"https://api.github.com/repos/boostorg/geometry/statuses/86fbf6a204016f4b0909451d58f3f5f19c44ef39"}}}}
{"actor":{"display_login":"barendgehrels"}}