{"action":"created","comment":{"url":"https://api.github.com/repos/PavelKovalets/k52/pulls/comments/66944856","id":66944856,"diff_hunk":"@@ -20,282 +20,282 @@ namespace optimization\n {\n \n SteepestDescentMethod::SteepestDescentMethod(\n-\tdouble alpha,\n-\tdouble increment_of_the_argument,\n-\tsize_t max_iteration_number,\n-\tdouble precision)\n-\t: alpha_(alpha)\n-\t, increment_of_the_argument_(increment_of_the_argument)\n-\t, max_iteration_number_(max_iteration_number)\n-\t, precision_(precision)\n+    double alpha,\n+    double increment_of_the_argument,\n+    size_t max_iteration_number,\n+    double precision)\n+    : alpha_(alpha)\n+    , increment_of_the_argument_(increment_of_the_argument)\n+    , max_iteration_number_(max_iteration_number)\n+    , precision_(precision)\n {\n }\n \n SteepestDescentMethod* SteepestDescentMethod::Clone() const\n {\n-\treturn new SteepestDescentMethod(\n-\t\talpha_,\n-\t\tincrement_of_the_argument_,\n-\t\tmax_iteration_number_,\n-\t\tprecision_);\n+    return new SteepestDescentMethod(\n+        alpha_,\n+        increment_of_the_argument_,\n+        max_iteration_number_,\n+        precision_);\n }\n \n std::string SteepestDescentMethod::get_name() const\n {\n-\treturn \"Steepest Descent Method\";\n+    return \"Steepest Descent Method\";\n }\n \n \n #ifdef BUILD_WITH_MPI\n void SteepestDescentMethod::Send(boost::mpi::communicator* communicator, int target) const\n  {\n-\tcommunicator->send(target, k52::parallel::mpi::constants::kCommonTag, increment_of_the_argument_);\n-\tcommunicator->send(target, k52::parallel::mpi::constants::kCommonTag, max_iteration_number_);\n-\tcommunicator->send(target, k52::parallel::mpi::constants::kCommonTag, precision_);\n+    communicator->send(target, k52::parallel::mpi::constants::kCommonTag, increment_of_the_argument_);\n+    communicator->send(target, k52::parallel::mpi::constants::kCommonTag, max_iteration_number_);\n+    communicator->send(target, k52::parallel::mpi::constants::kCommonTag, precision_);\n }\n \n void SteepestDescentMethod::Receive(boost::mpi::communicator* communicator, int source)\n {\n-\tcommunicator->recv(source, k52::parallel::mpi::constants::kCommonTag, increment_of_the_argument_);\n-\tcommunicator->recv(source, k52::parallel::mpi::constants::kCommonTag, max_iteration_number_);\n-\tcommunicator->recv(source, k52::parallel::mpi::constants::kCommonTag, precision_);\n+    communicator->recv(source, k52::parallel::mpi::constants::kCommonTag, increment_of_the_argument_);\n+    communicator->recv(source, k52::parallel::mpi::constants::kCommonTag, max_iteration_number_);\n+    communicator->recv(source, k52::parallel::mpi::constants::kCommonTag, precision_);\n }\n #endif\n \n \n vector<double> SteepestDescentMethod::FindOptimalParameters(const vector<double>& initial_parameters)\n {\n-\tvector<double> parameters(initial_parameters);\n-\tsize_t counter = 0;\n-\tdouble lambda = 1; \n+    vector<double> parameters(initial_parameters);\n+    size_t counter = 0;\n+    double lambda = 1; \n \n \tdo\n \t{\n-\t\tcounter++;\n-\t\tvector<double> gradient = CalculateGradient(parameters);\n-\t\tvector<double> invert_gradiend = InvertVector(gradient);\n-\n-\t\tlambda = GoldenSectionSearch(parameters, lambda, invert_gradiend);\n-\n-\t\tvector<double> next_step_parameters(parameters.size());\n-\t\tfor (size_t i = 0; i < next_step_parameters.size(); ++i)\n-\t\t{\n-\t\t\tnext_step_parameters[i] = parameters[i] + lambda * invert_gradiend[i];\n-\t\t}\n-\n-\t\tif (IsExitCriteriaFulfilled(next_step_parameters))\n-\t\t{\n-\t\t\tbreak;\n-\t\t}\n+        counter++;\n+        vector<double> gradient = CalculateGradient(parameters);\n+        vector<double> invert_gradiend = InvertVector(gradient);\n+\n+        lambda = GoldenSectionSearch(parameters, lambda, invert_gradiend);\n+\n+        vector<double> next_step_parameters(parameters.size());\n+        for (size_t i = 0; i < next_step_parameters.size(); ++i)\n+        {\n+            next_step_parameters[i] = parameters[i] + lambda * invert_gradiend[i];\n+        }\n+\n+        if (IsExitCriteriaFulfilled(next_step_parameters))\n+        {\n+            break;\n+        }\n \t\t\n-\t\tparameters = next_step_parameters;\n+        parameters = next_step_parameters;\n \n \t\t\n-\t\tif (counter == max_iteration_number_)\n-\t\t{\n-\t\t\tstd::cout << \" Minimun has not found\"<<std::endl;\n-\t\t\tbreak;\n-\t\t}\n-\t} while (true);\n-\n-\treturn parameters;\n+        if (counter == max_iteration_number_)\n+        {\n+            std::cout << \" Minimun has not found\"<<std::endl;\n+            break;\n+        }\n+    } while (true);\n+\n+    return parameters;\n }\n \n bool SteepestDescentMethod::IsExitCriteriaFulfilled(\n-\tvector<double>& steps_array) const\n+    vector<double>& steps_array) const\n {\n-\tdouble temp = 0;\n-\tvector<double> gradient = CalculateGradient(steps_array);\n-\tfor (size_t i = 0; i < steps_array.size(); ++i)\n-\t{\n-\t\ttemp += gradient[i] * gradient[i];\n-\t}\n-\tif (sqrt(temp) > precision_)\n-\t{\n-\t\treturn false;\n-\t}\n-\treturn true;\n+    double temp = 0;\n+    vector<double> gradient = CalculateGradient(steps_array);\n+    for (size_t i = 0; i < steps_array.size(); ++i)\n+    {\n+        temp += gradient[i] * gradient[i];\n+    }\n+    if (sqrt(temp) > precision_)\n+    {\n+        return false;\n+    }\n+    return true;\n }\n \n vector<double> SteepestDescentMethod::CalculateGradient(\n-\tconst vector<double>& parameters) const\n+    const vector<double>& parameters) const\n {\n-\tvector<double> gradient(parameters.size());\n+    vector<double> gradient(parameters.size());\n \n-\tfor (size_t i = 0; i<parameters.size(); ++i)\n-\t{\n-\t\tgradient[i] = CalculateDerivative(parameters, i);\n-\t}\n+    for (size_t i = 0; i<parameters.size(); ++i)\n+    {\n+        gradient[i] = CalculateDerivative(parameters, i);\n+    }\n \n-\treturn gradient;\n+    return gradient;\n }\n \n double SteepestDescentMethod::CalculateDerivative(\n-\tconst vector<double>& parameters,\n-\tsize_t& index) const\n+    const vector<double>& parameters,\n+    size_t& index) const\n {\n-\tvector<double> decrement_function(parameters);\n-\tvector<double> increment_function(parameters);\n-\tdecrement_function[index] = parameters[index] - increment_of_the_argument_ / 2;\n-\tincrement_function[index] = parameters[index] + increment_of_the_argument_ / 2;\n-\tdouble increment_function_value = CountObjectiveFunctionValueToMinimize(increment_function);\n-\tdouble decrement_function_value = CountObjectiveFunctionValueToMinimize(decrement_function);\n-\treturn (increment_function_value - decrement_function_value) / increment_of_the_argument_;\n+    vector<double> decrement_function(parameters);\n+    vector<double> increment_function(parameters);\n+    decrement_function[index] = parameters[index] - increment_of_the_argument_ / 2;\n+    increment_function[index] = parameters[index] + increment_of_the_argument_ / 2;\n+    double increment_function_value = CountObjectiveFunctionValueToMinimize(increment_function);\n+    double decrement_function_value = CountObjectiveFunctionValueToMinimize(decrement_function);\n+    return (increment_function_value - decrement_function_value) / increment_of_the_argument_;\n }\n \n vector<double> SteepestDescentMethod::InvertVector(\n-\tvector<double>& parameters) const\n+    vector<double>& parameters) const\n {\n-\tvector<double> new_parameters(parameters);\n-\tfor (size_t i = 0; i < new_parameters.size(); ++i)\n-\t{\n-\t\tnew_parameters[i] *= -1;\n-\t}\n-\treturn new_parameters;\n+    vector<double> new_parameters(parameters);\n+    for (size_t i = 0; i < new_parameters.size(); ++i)\n+    {\n+        new_parameters[i] *= -1;\n+    }\n+    return new_parameters;\n }\n \n double SteepestDescentMethod::GoldenSectionSearch(\n-\tvector<double>& init_point, \n-\tdouble& step, \n-\tvector<double>& direction) const\n+    vector<double>& init_point, \n+    double& step, \n+    vector<double>& direction) const\n {\n-\tvector<double> next_point(init_point.size());\n-\tdouble lambda = 0;\n+    vector<double> next_point(init_point.size());\n+    double lambda = 0;\n \n-\tdouble step_for_borders = Localization(init_point, step, direction);\n+    double step_for_borders = Localization(init_point, step, direction);\n \t\n-\tlambda = Find_lambda(init_point, step_for_borders, direction);\n+    lambda = FindStepLength(init_point, step_for_borders, direction);\n \n-\treturn lambda;\n+    return lambda;\n }\n \n-double SteepestDescentMethod::Find_lambda(\n-\tvector<double>& init_parameters, \n-\tdouble& step_for_borders,\n-\tvector<double>& direction) const\n+double SteepestDescentMethod::FindStepLength(\n+    vector<double>& init_parameters, \n+    double& step_for_borders,\n+    vector<double>& direction) const\n {\n-\tvector<double> right_border_parameters(init_parameters.size());\n-\tvector<double> x1_point(init_parameters.size());\n-\tvector<double> x2_point(init_parameters.size());\n-\tdouble left_border = 0;\n-\tdouble x1;\n-\tdouble x2;\n-\tdouble right_border = step_for_borders;\n+    vector<double> right_border_parameters(init_parameters.size());\n+    vector<double> x1_point(init_parameters.size());\n+    vector<double> x2_point(init_parameters.size());\n+    double left_border = 0;\n+    double x1;\n+    double x2;\n+    double right_border = step_for_borders;\n \t\t\n-\tfor (size_t i = 0; i < init_parameters.size(); ++i)\n-\t{\n-\t\tright_border_parameters[i] = init_parameters[i] + step_for_borders*direction[i];\n-\t}\n+    for (size_t i = 0; i < init_parameters.size(); ++i)\n+    {\n+        right_border_parameters[i] = init_parameters[i] + step_for_borders*direction[i];\n+    }\n \t\n-\tx1 = left_border + 0.382*(right_border - left_border);\n-\tx2 = right_border - 0.382*(right_border - left_border);\n-\n-\tdouble last_left_border;\n-\tdouble last_right_border;\n-\tdouble f1, f2;\n-\tdo\n-\t{\n-\t\tfor (size_t i = 0; i < init_parameters.size(); ++i)\n-\t\t{\n-\t\t\tx1_point[i] = init_parameters[i] + x1*direction[i];\n-\t\t\tx2_point[i] = init_parameters[i] + x2*direction[i];\n-\t\t}\n-\t\tf1 = CountObjectiveFunctionValueToMinimize(x1_point);\n-\t\tf2 = CountObjectiveFunctionValueToMinimize(x2_point);\n-\n-\t\tlast_left_border = left_border;\n-\t\tlast_right_border = right_border;\n-\n-\t\tif (x1 < x2)\n-\t\t{\n-\t\t\tif (f1 > f2)\n-\t\t\t{\n-\t\t\t\tleft_border = x1;\n-\t\t\t\tx1 = x2;\n-\t\t\t\tx2 = right_border - 0.382*(right_border - left_border);\n-\t\t\t}\n-\t\t\telse\n-\t\t\t{\n-\t\t\t\tright_border = x2;\n-\t\t\t\tx2 = x1;\n-\t\t\t\tx1 = left_border + 0.382*(right_border - left_border);\n-\t\t\t}\n-\t\t}\n-\t\telse\n-\t\t{\n-\t\t\tif (f2 > f1)\n-\t\t\t{\n-\t\t\t\tleft_border = x2;\n-\t\t\t\tx2 = x1;\n-\t\t\t\tx1 = right_border - 0.382*(right_border - left_border);\n-\t\t\t}\n-\t\t\telse\n-\t\t\t{\n-\t\t\t\tright_border = x1;\n-\t\t\t\tx1 = x2;\n-\t\t\t\tx2 = left_border + 0.382*(right_border - left_border);\n-\t\t\t}\n-\t\t}\n-\t\tif ((left_border == last_left_border && right_border == last_right_border)) {\n-\t\t\tbreak;\n-\t\t}\n-\n-\t} while ((abs(left_border - right_border) > precision_));\n-\n-\treturn (left_border + right_border) / 2;\n+    x1 = left_border + 0.382*(right_border - left_border);\n+    x2 = right_border - 0.382*(right_border - left_border);\n+\n+    double last_left_border;","path":"src/optimization/steepest_descent_method.cpp","position":null,"original_position":336,"commit_id":"f7584acd071b7bfd5cd113e588f32504c4787794","original_commit_id":"f7584acd071b7bfd5cd113e588f32504c4787794","user":{"login":"AlexanderSoroka","id":7944118,"avatar_url":"https://avatars.githubusercontent.com/u/7944118?v=3","gravatar_id":"","url":"https://api.github.com/users/AlexanderSoroka","html_url":"https://github.com/AlexanderSoroka","followers_url":"https://api.github.com/users/AlexanderSoroka/followers","following_url":"https://api.github.com/users/AlexanderSoroka/following{/other_user}","gists_url":"https://api.github.com/users/AlexanderSoroka/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexanderSoroka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexanderSoroka/subscriptions","organizations_url":"https://api.github.com/users/AlexanderSoroka/orgs","repos_url":"https://api.github.com/users/AlexanderSoroka/repos","events_url":"https://api.github.com/users/AlexanderSoroka/events{/privacy}","received_events_url":"https://api.github.com/users/AlexanderSoroka/received_events","type":"User","site_admin":false},"body":"all variables should be init","created_at":"2016-06-14T10:23:05Z","updated_at":"2016-06-14T10:23:05Z","html_url":"https://github.com/PavelKovalets/k52/pull/23#discussion_r66944856","pull_request_url":"https://api.github.com/repos/PavelKovalets/k52/pulls/23","_links":{"self":{"href":"https://api.github.com/repos/PavelKovalets/k52/pulls/comments/66944856"},"html":{"href":"https://github.com/PavelKovalets/k52/pull/23#discussion_r66944856"},"pull_request":{"href":"https://api.github.com/repos/PavelKovalets/k52/pulls/23"}}},"pull_request":{"url":"https://api.github.com/repos/PavelKovalets/k52/pulls/23","id":71373432,"html_url":"https://github.com/PavelKovalets/k52/pull/23","diff_url":"https://github.com/PavelKovalets/k52/pull/23.diff","patch_url":"https://github.com/PavelKovalets/k52/pull/23.patch","issue_url":"https://api.github.com/repos/PavelKovalets/k52/issues/23","number":23,"state":"open","locked":false,"title":"Steepest Descent Method","user":{"login":"Mirm-D","id":12375117,"avatar_url":"https://avatars.githubusercontent.com/u/12375117?v=3","gravatar_id":"","url":"https://api.github.com/users/Mirm-D","html_url":"https://github.com/Mirm-D","followers_url":"https://api.github.com/users/Mirm-D/followers","following_url":"https://api.github.com/users/Mirm-D/following{/other_user}","gists_url":"https://api.github.com/users/Mirm-D/gists{/gist_id}","starred_url":"https://api.github.com/users/Mirm-D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Mirm-D/subscriptions","organizations_url":"https://api.github.com/users/Mirm-D/orgs","repos_url":"https://api.github.com/users/Mirm-D/repos","events_url":"https://api.github.com/users/Mirm-D/events{/privacy}","received_events_url":"https://api.github.com/users/Mirm-D/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-05-25T11:20:09Z","updated_at":"2016-06-14T10:23:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b4d2e2fc27722e39cc04e116275f96106547154a","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/PavelKovalets/k52/pulls/23/commits","review_comments_url":"https://api.github.com/repos/PavelKovalets/k52/pulls/23/comments","review_comment_url":"https://api.github.com/repos/PavelKovalets/k52/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PavelKovalets/k52/issues/23/comments","statuses_url":"https://api.github.com/repos/PavelKovalets/k52/statuses/f7584acd071b7bfd5cd113e588f32504c4787794","head":{"label":"Mirm-D:develop","ref":"develop","sha":"f7584acd071b7bfd5cd113e588f32504c4787794","user":{"login":"Mirm-D","id":12375117,"avatar_url":"https://avatars.githubusercontent.com/u/12375117?v=3","gravatar_id":"","url":"https://api.github.com/users/Mirm-D","html_url":"https://github.com/Mirm-D","followers_url":"https://api.github.com/users/Mirm-D/followers","following_url":"https://api.github.com/users/Mirm-D/following{/other_user}","gists_url":"https://api.github.com/users/Mirm-D/gists{/gist_id}","starred_url":"https://api.github.com/users/Mirm-D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Mirm-D/subscriptions","organizations_url":"https://api.github.com/users/Mirm-D/orgs","repos_url":"https://api.github.com/users/Mirm-D/repos","events_url":"https://api.github.com/users/Mirm-D/events{/privacy}","received_events_url":"https://api.github.com/users/Mirm-D/received_events","type":"User","site_admin":false},"repo":{"id":56372362,"name":"k52","full_name":"Mirm-D/k52","owner":{"login":"Mirm-D","id":12375117,"avatar_url":"https://avatars.githubusercontent.com/u/12375117?v=3","gravatar_id":"","url":"https://api.github.com/users/Mirm-D","html_url":"https://github.com/Mirm-D","followers_url":"https://api.github.com/users/Mirm-D/followers","following_url":"https://api.github.com/users/Mirm-D/following{/other_user}","gists_url":"https://api.github.com/users/Mirm-D/gists{/gist_id}","starred_url":"https://api.github.com/users/Mirm-D/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Mirm-D/subscriptions","organizations_url":"https://api.github.com/users/Mirm-D/orgs","repos_url":"https://api.github.com/users/Mirm-D/repos","events_url":"https://api.github.com/users/Mirm-D/events{/privacy}","received_events_url":"https://api.github.com/users/Mirm-D/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Mirm-D/k52","description":"k52 is a set of c++ libraries aimed to facilitate scientific experiments in the fields of signal processing and sound analysis with the strong incline into OOP, flexibility and readability.","fork":true,"url":"https://api.github.com/repos/Mirm-D/k52","forks_url":"https://api.github.com/repos/Mirm-D/k52/forks","keys_url":"https://api.github.com/repos/Mirm-D/k52/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Mirm-D/k52/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Mirm-D/k52/teams","hooks_url":"https://api.github.com/repos/Mirm-D/k52/hooks","issue_events_url":"https://api.github.com/repos/Mirm-D/k52/issues/events{/number}","events_url":"https://api.github.com/repos/Mirm-D/k52/events","assignees_url":"https://api.github.com/repos/Mirm-D/k52/assignees{/user}","branches_url":"https://api.github.com/repos/Mirm-D/k52/branches{/branch}","tags_url":"https://api.github.com/repos/Mirm-D/k52/tags","blobs_url":"https://api.github.com/repos/Mirm-D/k52/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Mirm-D/k52/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Mirm-D/k52/git/refs{/sha}","trees_url":"https://api.github.com/repos/Mirm-D/k52/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Mirm-D/k52/statuses/{sha}","languages_url":"https://api.github.com/repos/Mirm-D/k52/languages","stargazers_url":"https://api.github.com/repos/Mirm-D/k52/stargazers","contributors_url":"https://api.github.com/repos/Mirm-D/k52/contributors","subscribers_url":"https://api.github.com/repos/Mirm-D/k52/subscribers","subscription_url":"https://api.github.com/repos/Mirm-D/k52/subscription","commits_url":"https://api.github.com/repos/Mirm-D/k52/commits{/sha}","git_commits_url":"https://api.github.com/repos/Mirm-D/k52/git/commits{/sha}","comments_url":"https://api.github.com/repos/Mirm-D/k52/comments{/number}","issue_comment_url":"https://api.github.com/repos/Mirm-D/k52/issues/comments{/number}","contents_url":"https://api.github.com/repos/Mirm-D/k52/contents/{+path}","compare_url":"https://api.github.com/repos/Mirm-D/k52/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Mirm-D/k52/merges","archive_url":"https://api.github.com/repos/Mirm-D/k52/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Mirm-D/k52/downloads","issues_url":"https://api.github.com/repos/Mirm-D/k52/issues{/number}","pulls_url":"https://api.github.com/repos/Mirm-D/k52/pulls{/number}","milestones_url":"https://api.github.com/repos/Mirm-D/k52/milestones{/number}","notifications_url":"https://api.github.com/repos/Mirm-D/k52/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Mirm-D/k52/labels{/name}","releases_url":"https://api.github.com/repos/Mirm-D/k52/releases{/id}","deployments_url":"https://api.github.com/repos/Mirm-D/k52/deployments","created_at":"2016-04-16T07:55:47Z","updated_at":"2016-04-16T07:55:48Z","pushed_at":"2016-06-14T09:33:10Z","git_url":"git://github.com/Mirm-D/k52.git","ssh_url":"git@github.com:Mirm-D/k52.git","clone_url":"https://github.com/Mirm-D/k52.git","svn_url":"https://github.com/Mirm-D/k52","homepage":"","size":566,"stargazers_count":0,"watchers_count":0,"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":0,"default_branch":"develop"}},"base":{"label":"PavelKovalets:develop","ref":"develop","sha":"c8b7f4511995c2da20f7380cc9c91f5d9e917345","user":{"login":"PavelKovalets","id":1640573,"avatar_url":"https://avatars.githubusercontent.com/u/1640573?v=3","gravatar_id":"","url":"https://api.github.com/users/PavelKovalets","html_url":"https://github.com/PavelKovalets","followers_url":"https://api.github.com/users/PavelKovalets/followers","following_url":"https://api.github.com/users/PavelKovalets/following{/other_user}","gists_url":"https://api.github.com/users/PavelKovalets/gists{/gist_id}","starred_url":"https://api.github.com/users/PavelKovalets/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PavelKovalets/subscriptions","organizations_url":"https://api.github.com/users/PavelKovalets/orgs","repos_url":"https://api.github.com/users/PavelKovalets/repos","events_url":"https://api.github.com/users/PavelKovalets/events{/privacy}","received_events_url":"https://api.github.com/users/PavelKovalets/received_events","type":"User","site_admin":false},"repo":{"id":55476192,"name":"k52","full_name":"PavelKovalets/k52","owner":{"login":"PavelKovalets","id":1640573,"avatar_url":"https://avatars.githubusercontent.com/u/1640573?v=3","gravatar_id":"","url":"https://api.github.com/users/PavelKovalets","html_url":"https://github.com/PavelKovalets","followers_url":"https://api.github.com/users/PavelKovalets/followers","following_url":"https://api.github.com/users/PavelKovalets/following{/other_user}","gists_url":"https://api.github.com/users/PavelKovalets/gists{/gist_id}","starred_url":"https://api.github.com/users/PavelKovalets/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PavelKovalets/subscriptions","organizations_url":"https://api.github.com/users/PavelKovalets/orgs","repos_url":"https://api.github.com/users/PavelKovalets/repos","events_url":"https://api.github.com/users/PavelKovalets/events{/privacy}","received_events_url":"https://api.github.com/users/PavelKovalets/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/PavelKovalets/k52","description":"k52 is a set of c++ libraries aimed to facilitate scientific experiments in the fields of signal processing and sound analysis with the strong incline into OOP, flexibility and readability.","fork":false,"url":"https://api.github.com/repos/PavelKovalets/k52","forks_url":"https://api.github.com/repos/PavelKovalets/k52/forks","keys_url":"https://api.github.com/repos/PavelKovalets/k52/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PavelKovalets/k52/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PavelKovalets/k52/teams","hooks_url":"https://api.github.com/repos/PavelKovalets/k52/hooks","issue_events_url":"https://api.github.com/repos/PavelKovalets/k52/issues/events{/number}","events_url":"https://api.github.com/repos/PavelKovalets/k52/events","assignees_url":"https://api.github.com/repos/PavelKovalets/k52/assignees{/user}","branches_url":"https://api.github.com/repos/PavelKovalets/k52/branches{/branch}","tags_url":"https://api.github.com/repos/PavelKovalets/k52/tags","blobs_url":"https://api.github.com/repos/PavelKovalets/k52/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PavelKovalets/k52/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PavelKovalets/k52/git/refs{/sha}","trees_url":"https://api.github.com/repos/PavelKovalets/k52/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PavelKovalets/k52/statuses/{sha}","languages_url":"https://api.github.com/repos/PavelKovalets/k52/languages","stargazers_url":"https://api.github.com/repos/PavelKovalets/k52/stargazers","contributors_url":"https://api.github.com/repos/PavelKovalets/k52/contributors","subscribers_url":"https://api.github.com/repos/PavelKovalets/k52/subscribers","subscription_url":"https://api.github.com/repos/PavelKovalets/k52/subscription","commits_url":"https://api.github.com/repos/PavelKovalets/k52/commits{/sha}","git_commits_url":"https://api.github.com/repos/PavelKovalets/k52/git/commits{/sha}","comments_url":"https://api.github.com/repos/PavelKovalets/k52/comments{/number}","issue_comment_url":"https://api.github.com/repos/PavelKovalets/k52/issues/comments{/number}","contents_url":"https://api.github.com/repos/PavelKovalets/k52/contents/{+path}","compare_url":"https://api.github.com/repos/PavelKovalets/k52/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PavelKovalets/k52/merges","archive_url":"https://api.github.com/repos/PavelKovalets/k52/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PavelKovalets/k52/downloads","issues_url":"https://api.github.com/repos/PavelKovalets/k52/issues{/number}","pulls_url":"https://api.github.com/repos/PavelKovalets/k52/pulls{/number}","milestones_url":"https://api.github.com/repos/PavelKovalets/k52/milestones{/number}","notifications_url":"https://api.github.com/repos/PavelKovalets/k52/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PavelKovalets/k52/labels{/name}","releases_url":"https://api.github.com/repos/PavelKovalets/k52/releases{/id}","deployments_url":"https://api.github.com/repos/PavelKovalets/k52/deployments","created_at":"2016-04-05T07:12:41Z","updated_at":"2016-05-20T10:17:52Z","pushed_at":"2016-06-14T09:33:10Z","git_url":"git://github.com/PavelKovalets/k52.git","ssh_url":"git@github.com:PavelKovalets/k52.git","clone_url":"https://github.com/PavelKovalets/k52.git","svn_url":"https://github.com/PavelKovalets/k52","homepage":"","size":583,"stargazers_count":1,"watchers_count":1,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":20,"forks":7,"open_issues":20,"watchers":1,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/PavelKovalets/k52/pulls/23"},"html":{"href":"https://github.com/PavelKovalets/k52/pull/23"},"issue":{"href":"https://api.github.com/repos/PavelKovalets/k52/issues/23"},"comments":{"href":"https://api.github.com/repos/PavelKovalets/k52/issues/23/comments"},"review_comments":{"href":"https://api.github.com/repos/PavelKovalets/k52/pulls/23/comments"},"review_comment":{"href":"https://api.github.com/repos/PavelKovalets/k52/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PavelKovalets/k52/pulls/23/commits"},"statuses":{"href":"https://api.github.com/repos/PavelKovalets/k52/statuses/f7584acd071b7bfd5cd113e588f32504c4787794"}}}}
{"actor":{"display_login":"AlexanderSoroka"}}