{"action":"created","comment":{"url":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/comments/28151855","id":28151855,"diff_hunk":"@@ -0,0 +1,187 @@\n+/*\n+ * Copyright (c) The Shogun Machine Learning Toolbox\n+ * Written (w) 2015 Esben Soerig\n+ * All rights reserved.\n+ *\n+ * Redistribution and use in source and binary forms, with or without\n+ * modification, are permitted provided that the following conditions are met:\n+ *\n+ * 1. Redistributions of source code must retain the above copyright notice, this\n+ *    list of conditions and the following disclaimer.\n+ * 2. Redistributions in binary form must reproduce the above copyright notice,\n+ *    this list of conditions and the following disclaimer in the documentation\n+ *    and/or other materials provided with the distribution.\n+ *\n+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+ *\n+ * The views and conclusions contained in the software and documentation are those\n+ * of the authors and should not be interpreted as representing official policies,\n+ * either expressed or implied, of the Shogun Development Team.\n+ */\n+\n+#ifndef PERIODICKERNEL_H\n+#define PERIODICKERNEL_H\n+\n+#include <shogun/kernel/DotKernel.h>\n+\n+namespace shogun\n+{\n+\tclass CDotFeatures;\n+\n+/** @brief The periodic kernel as described in <i>The Kernel Cookbook</i>\n+ * by David Duvenaud: http://people.seas.harvard.edu/~dduvenaud/cookbook/\n+ *\n+ * It is computed as\n+ *\n+ * \\f[\n+ *   k({\\bf x},{\\bf x'})= exp(-\\frac{2sin^2(\\pi|{\\bf x}-{\\bf x'}|/p)}{l^2})\n+ * \\f]\n+ *\n+ * where \\f$p\\f$ is the period of the kernel and \\f$l\\f$ is the length scale\n+ * of the kernel.\n+ */\n+\n+class CPeriodicKernel: public CDotKernel\n+{\n+\tpublic:\n+\t\t/** default constructor */\n+\t\tCPeriodicKernel();\n+\n+\t\t/** constructor\n+\t\t *\n+\t\t * @param length_scale length_scale\n+\t\t * @param period period\n+\t\t * @param size cache size. Default value: 10\n+\t\t */\n+\t\tCPeriodicKernel(float64_t length_scale, float64_t period, int32_t size=10);\n+\n+\t\t/** constructor\n+\t\t *\n+\t\t * @param l features of left-hand side\n+\t\t * @param r features of right-hand side\n+\t\t * @param length_scale length scale\n+\t\t * @param period period\n+\t\t * @param size cache size. Default value: 10\n+\t\t */\n+\t\tCPeriodicKernel(CDotFeatures* l, CDotFeatures* r,\n+\t\t\tfloat64_t length_scale, float64_t period, int32_t size=10);\n+\n+\t\tvirtual ~CPeriodicKernel() { };\n+\n+\t\t/** initialize kernel\n+\t\t *\n+\t\t * @param l features of left-hand side\n+\t\t * @param r features of right-hand side\n+\t\t * @return if initializing was successful\n+\t\t */\n+\t\tvirtual bool init(CFeatures* l, CFeatures* r);\n+\n+\t\t/** return what type of kernel we are\n+\t\t *\n+\t\t * @return kernel type PERIODIC\n+\t\t */\n+\t\tvirtual EKernelType get_kernel_type() { return K_PERIODIC; }\n+\n+\t\t/** return the kernel's name\n+\t\t *\n+\t\t * @return name PeriodicKernel\n+\t\t */\n+\t\tvirtual const char* get_name() const { return \"PeriodicKernel\"; }\n+\n+\t\t/** set the kernel's length scale\n+\t\t *\n+\t\t * @param length_scale kernel length scale\n+\t\t */\n+\t\tvirtual void set_length_scale(float64_t length_scale) { m_length_scale=length_scale; }\n+\n+\t\t/** return the kernel's length scale\n+\t\t *\n+\t\t * @return kernel length scale\n+\t\t */\n+\t\tvirtual float64_t get_length_scale() const { return m_length_scale;\t}\n+\n+\t\t/** set the kernel's period\n+\t\t *\n+\t\t * @param period kernel period\n+\t\t */\n+\t\tvirtual void set_period(float64_t period) { m_period=period; }\n+\n+\t\t/** return the kernel's period\n+\t\t *\n+\t\t * @return kernel perid\n+\t\t */\n+\t\tvirtual float64_t get_period() const { return m_period;\t}\n+\n+\t\t/** return derivative with respect to specified parameter\n+\t\t *\n+\t\t * @param param the parameter\n+\t\t * @param index the index of the element if parameter is a vector\n+\t\t *\n+\t\t * @return gradient with respect to parameter\n+\t\t */\n+\t\tvirtual SGMatrix<float64_t> get_parameter_gradient(\n+\t\t\t\tconst TParameter* param, index_t index=-1);\n+\n+\tprotected:\n+\t\t/** compute kernel function for features a and b\n+\t\t * idx_{a,b} denote the index of the feature vectors\n+\t\t * in the corresponding feature object\n+\t\t *\n+\t\t * @param idx_a index a\n+\t\t * @param idx_b index b\n+\t\t * @return computed kernel function at indices a,b\n+\t\t */\n+\t\tvirtual float64_t compute(int32_t idx_a, int32_t idx_b);\n+\n+\n+\t\t/** compute the euclidean distance between features a and b\n+\t\t * idx_{a,b} denote the index of the feature vectors\n+\t\t * in the corresponding feature object.\n+\t\t *\n+\t\t * @param idx_a index a\n+\t\t * @param idx_b index b\n+\t\t * @return computed the distance\n+\t\t *\n+\t\t * Note that this function is very similar the distance function in\n+\t\t * CGaussianKernel. However, this function computes the standard\n+\t\t * euclidean distance without any factors or squaring, unlike the one\n+\t\t * in CGaussianKernel.\n+\t\t */\n+\t\tvirtual float64_t distance(int32_t idx_a, int32_t idx_b);\n+\tprivate:\n+\t\t/** helper function to compute quadratic terms in\n+\t\t * (a-b)^2 (== a^2+b^2-2ab)\n+\t\t */\n+\t\tvoid precompute_squared();\n+\n+\t\t/** helper function to compute quadratic terms in\n+\t\t * (a-b)^2 (== a^2+b^2-2ab)\n+\t\t *\n+\t\t * @param buf buffer to store squared terms\n+\t\t * @param df dot feature object based on which k(i,i) is computed\n+\t\t * */\n+\t\tvoid precompute_squared_helper(SGVector<float64_t>& buf, CDotFeatures* df);\n+\n+\t\tvoid init();\n+\n+\tprotected:\n+\t\t/** length scale */\n+\t\tfloat64_t m_length_scale;\n+\t\t/** period */\n+\t\tfloat64_t m_period;\n+\t\t/** squared left-hand side (each lhs vector dotted with itself) */\n+\t\tSGVector<float64_t> m_sq_lhs;","path":"src/shogun/kernel/PeriodicKernel.h","position":182,"original_position":182,"commit_id":"ac24bceb0b695f069c95cd48c6d763c0aa3156e5","original_commit_id":"ac24bceb0b695f069c95cd48c6d763c0aa3156e5","user":{"login":"karlnapf","id":699071,"avatar_url":"https://avatars.githubusercontent.com/u/699071?v=3","gravatar_id":"","url":"https://api.github.com/users/karlnapf","html_url":"https://github.com/karlnapf","followers_url":"https://api.github.com/users/karlnapf/followers","following_url":"https://api.github.com/users/karlnapf/following{/other_user}","gists_url":"https://api.github.com/users/karlnapf/gists{/gist_id}","starred_url":"https://api.github.com/users/karlnapf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karlnapf/subscriptions","organizations_url":"https://api.github.com/users/karlnapf/orgs","repos_url":"https://api.github.com/users/karlnapf/repos","events_url":"https://api.github.com/users/karlnapf/events{/privacy}","received_events_url":"https://api.github.com/users/karlnapf/received_events","type":"User","site_admin":false},"body":"exactly how I meant it!","created_at":"2015-04-10T15:04:52Z","updated_at":"2015-04-10T15:04:52Z","html_url":"https://github.com/shogun-toolbox/shogun/pull/2807#discussion_r28151855","pull_request_url":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2807","_links":{"self":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/comments/28151855"},"html":{"href":"https://github.com/shogun-toolbox/shogun/pull/2807#discussion_r28151855"},"pull_request":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2807"}}},"pull_request":{"url":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2807","id":32774768,"html_url":"https://github.com/shogun-toolbox/shogun/pull/2807","diff_url":"https://github.com/shogun-toolbox/shogun/pull/2807.diff","patch_url":"https://github.com/shogun-toolbox/shogun/pull/2807.patch","issue_url":"https://api.github.com/repos/shogun-toolbox/shogun/issues/2807","number":2807,"state":"open","locked":false,"title":"Added periodic kernel","user":{"login":"sorig","id":1370324,"avatar_url":"https://avatars.githubusercontent.com/u/1370324?v=3","gravatar_id":"","url":"https://api.github.com/users/sorig","html_url":"https://github.com/sorig","followers_url":"https://api.github.com/users/sorig/followers","following_url":"https://api.github.com/users/sorig/following{/other_user}","gists_url":"https://api.github.com/users/sorig/gists{/gist_id}","starred_url":"https://api.github.com/users/sorig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sorig/subscriptions","organizations_url":"https://api.github.com/users/sorig/orgs","repos_url":"https://api.github.com/users/sorig/repos","events_url":"https://api.github.com/users/sorig/events{/privacy}","received_events_url":"https://api.github.com/users/sorig/received_events","type":"User","site_admin":false},"body":"An implementation of the periodic kernel as described in [Kernel Cookbook](http://mlg.eng.cam.ac.uk/duvenaud/cookbook/index.html)","created_at":"2015-04-07T15:24:36Z","updated_at":"2015-04-10T15:04:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"743505f3359702e2987041910d8c77db70ca6178","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2807/commits","review_comments_url":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2807/comments","review_comment_url":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/comments{/number}","comments_url":"https://api.github.com/repos/shogun-toolbox/shogun/issues/2807/comments","statuses_url":"https://api.github.com/repos/shogun-toolbox/shogun/statuses/ac24bceb0b695f069c95cd48c6d763c0aa3156e5","head":{"label":"sorig:periodic_kernel","ref":"periodic_kernel","sha":"ac24bceb0b695f069c95cd48c6d763c0aa3156e5","user":{"login":"sorig","id":1370324,"avatar_url":"https://avatars.githubusercontent.com/u/1370324?v=3","gravatar_id":"","url":"https://api.github.com/users/sorig","html_url":"https://github.com/sorig","followers_url":"https://api.github.com/users/sorig/followers","following_url":"https://api.github.com/users/sorig/following{/other_user}","gists_url":"https://api.github.com/users/sorig/gists{/gist_id}","starred_url":"https://api.github.com/users/sorig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sorig/subscriptions","organizations_url":"https://api.github.com/users/sorig/orgs","repos_url":"https://api.github.com/users/sorig/repos","events_url":"https://api.github.com/users/sorig/events{/privacy}","received_events_url":"https://api.github.com/users/sorig/received_events","type":"User","site_admin":false},"repo":{"id":26461783,"name":"shogun","full_name":"sorig/shogun","owner":{"login":"sorig","id":1370324,"avatar_url":"https://avatars.githubusercontent.com/u/1370324?v=3","gravatar_id":"","url":"https://api.github.com/users/sorig","html_url":"https://github.com/sorig","followers_url":"https://api.github.com/users/sorig/followers","following_url":"https://api.github.com/users/sorig/following{/other_user}","gists_url":"https://api.github.com/users/sorig/gists{/gist_id}","starred_url":"https://api.github.com/users/sorig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sorig/subscriptions","organizations_url":"https://api.github.com/users/sorig/orgs","repos_url":"https://api.github.com/users/sorig/repos","events_url":"https://api.github.com/users/sorig/events{/privacy}","received_events_url":"https://api.github.com/users/sorig/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/sorig/shogun","description":"The Shogun Machine Learning Toolbox (Source Code)","fork":true,"url":"https://api.github.com/repos/sorig/shogun","forks_url":"https://api.github.com/repos/sorig/shogun/forks","keys_url":"https://api.github.com/repos/sorig/shogun/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sorig/shogun/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sorig/shogun/teams","hooks_url":"https://api.github.com/repos/sorig/shogun/hooks","issue_events_url":"https://api.github.com/repos/sorig/shogun/issues/events{/number}","events_url":"https://api.github.com/repos/sorig/shogun/events","assignees_url":"https://api.github.com/repos/sorig/shogun/assignees{/user}","branches_url":"https://api.github.com/repos/sorig/shogun/branches{/branch}","tags_url":"https://api.github.com/repos/sorig/shogun/tags","blobs_url":"https://api.github.com/repos/sorig/shogun/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sorig/shogun/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sorig/shogun/git/refs{/sha}","trees_url":"https://api.github.com/repos/sorig/shogun/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sorig/shogun/statuses/{sha}","languages_url":"https://api.github.com/repos/sorig/shogun/languages","stargazers_url":"https://api.github.com/repos/sorig/shogun/stargazers","contributors_url":"https://api.github.com/repos/sorig/shogun/contributors","subscribers_url":"https://api.github.com/repos/sorig/shogun/subscribers","subscription_url":"https://api.github.com/repos/sorig/shogun/subscription","commits_url":"https://api.github.com/repos/sorig/shogun/commits{/sha}","git_commits_url":"https://api.github.com/repos/sorig/shogun/git/commits{/sha}","comments_url":"https://api.github.com/repos/sorig/shogun/comments{/number}","issue_comment_url":"https://api.github.com/repos/sorig/shogun/issues/comments{/number}","contents_url":"https://api.github.com/repos/sorig/shogun/contents/{+path}","compare_url":"https://api.github.com/repos/sorig/shogun/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sorig/shogun/merges","archive_url":"https://api.github.com/repos/sorig/shogun/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sorig/shogun/downloads","issues_url":"https://api.github.com/repos/sorig/shogun/issues{/number}","pulls_url":"https://api.github.com/repos/sorig/shogun/pulls{/number}","milestones_url":"https://api.github.com/repos/sorig/shogun/milestones{/number}","notifications_url":"https://api.github.com/repos/sorig/shogun/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sorig/shogun/labels{/name}","releases_url":"https://api.github.com/repos/sorig/shogun/releases{/id}","created_at":"2014-11-11T00:00:21Z","updated_at":"2015-04-07T15:21:46Z","pushed_at":"2015-04-10T10:15:48Z","git_url":"git://github.com/sorig/shogun.git","ssh_url":"git@github.com:sorig/shogun.git","clone_url":"https://github.com/sorig/shogun.git","svn_url":"https://github.com/sorig/shogun","homepage":"http://www.shogun-toolbox.org","size":51012,"stargazers_count":2,"watchers_count":2,"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":2,"default_branch":"develop"}},"base":{"label":"shogun-toolbox:develop","ref":"develop","sha":"41ae35945eac8b6704d05f821b83177bdef2af02","user":{"login":"shogun-toolbox","id":690673,"avatar_url":"https://avatars.githubusercontent.com/u/690673?v=3","gravatar_id":"","url":"https://api.github.com/users/shogun-toolbox","html_url":"https://github.com/shogun-toolbox","followers_url":"https://api.github.com/users/shogun-toolbox/followers","following_url":"https://api.github.com/users/shogun-toolbox/following{/other_user}","gists_url":"https://api.github.com/users/shogun-toolbox/gists{/gist_id}","starred_url":"https://api.github.com/users/shogun-toolbox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shogun-toolbox/subscriptions","organizations_url":"https://api.github.com/users/shogun-toolbox/orgs","repos_url":"https://api.github.com/users/shogun-toolbox/repos","events_url":"https://api.github.com/users/shogun-toolbox/events{/privacy}","received_events_url":"https://api.github.com/users/shogun-toolbox/received_events","type":"Organization","site_admin":false},"repo":{"id":1555094,"name":"shogun","full_name":"shogun-toolbox/shogun","owner":{"login":"shogun-toolbox","id":690673,"avatar_url":"https://avatars.githubusercontent.com/u/690673?v=3","gravatar_id":"","url":"https://api.github.com/users/shogun-toolbox","html_url":"https://github.com/shogun-toolbox","followers_url":"https://api.github.com/users/shogun-toolbox/followers","following_url":"https://api.github.com/users/shogun-toolbox/following{/other_user}","gists_url":"https://api.github.com/users/shogun-toolbox/gists{/gist_id}","starred_url":"https://api.github.com/users/shogun-toolbox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shogun-toolbox/subscriptions","organizations_url":"https://api.github.com/users/shogun-toolbox/orgs","repos_url":"https://api.github.com/users/shogun-toolbox/repos","events_url":"https://api.github.com/users/shogun-toolbox/events{/privacy}","received_events_url":"https://api.github.com/users/shogun-toolbox/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/shogun-toolbox/shogun","description":"The Shogun Machine Learning Toolbox (Source Code)","fork":false,"url":"https://api.github.com/repos/shogun-toolbox/shogun","forks_url":"https://api.github.com/repos/shogun-toolbox/shogun/forks","keys_url":"https://api.github.com/repos/shogun-toolbox/shogun/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shogun-toolbox/shogun/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shogun-toolbox/shogun/teams","hooks_url":"https://api.github.com/repos/shogun-toolbox/shogun/hooks","issue_events_url":"https://api.github.com/repos/shogun-toolbox/shogun/issues/events{/number}","events_url":"https://api.github.com/repos/shogun-toolbox/shogun/events","assignees_url":"https://api.github.com/repos/shogun-toolbox/shogun/assignees{/user}","branches_url":"https://api.github.com/repos/shogun-toolbox/shogun/branches{/branch}","tags_url":"https://api.github.com/repos/shogun-toolbox/shogun/tags","blobs_url":"https://api.github.com/repos/shogun-toolbox/shogun/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shogun-toolbox/shogun/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shogun-toolbox/shogun/git/refs{/sha}","trees_url":"https://api.github.com/repos/shogun-toolbox/shogun/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shogun-toolbox/shogun/statuses/{sha}","languages_url":"https://api.github.com/repos/shogun-toolbox/shogun/languages","stargazers_url":"https://api.github.com/repos/shogun-toolbox/shogun/stargazers","contributors_url":"https://api.github.com/repos/shogun-toolbox/shogun/contributors","subscribers_url":"https://api.github.com/repos/shogun-toolbox/shogun/subscribers","subscription_url":"https://api.github.com/repos/shogun-toolbox/shogun/subscription","commits_url":"https://api.github.com/repos/shogun-toolbox/shogun/commits{/sha}","git_commits_url":"https://api.github.com/repos/shogun-toolbox/shogun/git/commits{/sha}","comments_url":"https://api.github.com/repos/shogun-toolbox/shogun/comments{/number}","issue_comment_url":"https://api.github.com/repos/shogun-toolbox/shogun/issues/comments{/number}","contents_url":"https://api.github.com/repos/shogun-toolbox/shogun/contents/{+path}","compare_url":"https://api.github.com/repos/shogun-toolbox/shogun/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shogun-toolbox/shogun/merges","archive_url":"https://api.github.com/repos/shogun-toolbox/shogun/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shogun-toolbox/shogun/downloads","issues_url":"https://api.github.com/repos/shogun-toolbox/shogun/issues{/number}","pulls_url":"https://api.github.com/repos/shogun-toolbox/shogun/pulls{/number}","milestones_url":"https://api.github.com/repos/shogun-toolbox/shogun/milestones{/number}","notifications_url":"https://api.github.com/repos/shogun-toolbox/shogun/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shogun-toolbox/shogun/labels{/name}","releases_url":"https://api.github.com/repos/shogun-toolbox/shogun/releases{/id}","created_at":"2011-04-01T10:44:32Z","updated_at":"2015-04-10T02:58:54Z","pushed_at":"2015-04-10T10:15:49Z","git_url":"git://github.com/shogun-toolbox/shogun.git","ssh_url":"git@github.com:shogun-toolbox/shogun.git","clone_url":"https://github.com/shogun-toolbox/shogun.git","svn_url":"https://github.com/shogun-toolbox/shogun","homepage":"http://www.shogun-toolbox.org","size":192874,"stargazers_count":744,"watchers_count":744,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":439,"mirror_url":null,"open_issues_count":362,"forks":439,"open_issues":362,"watchers":744,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2807"},"html":{"href":"https://github.com/shogun-toolbox/shogun/pull/2807"},"issue":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/issues/2807"},"comments":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/issues/2807/comments"},"review_comments":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2807/comments"},"review_comment":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/pulls/2807/commits"},"statuses":{"href":"https://api.github.com/repos/shogun-toolbox/shogun/statuses/ac24bceb0b695f069c95cd48c6d763c0aa3156e5"}}}}