{"id":20408199,"url":"https://github.com/hashlag/plusml","last_synced_at":"2026-05-28T21:31:34.905Z","repository":{"id":216892963,"uuid":"737528126","full_name":"hashlag/plusml","owner":"hashlag","description":"A C++ library that aims to provide implementations of common machine learning algorithms with clean API","archived":false,"fork":false,"pushed_at":"2024-06-02T21:22:46.000Z","size":154,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-05T02:32:44.817Z","etag":null,"topics":["cpp","machine-learning"],"latest_commit_sha":null,"homepage":"https://hashlag.github.io/plusml/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hashlag.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-31T11:47:05.000Z","updated_at":"2024-11-04T15:37:27.000Z","dependencies_parsed_at":"2024-01-13T14:08:47.960Z","dependency_job_id":"30f15bc9-73fd-48c2-b7d2-2ab096c23824","html_url":"https://github.com/hashlag/plusml","commit_stats":null,"previous_names":["hashlag/plusml"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hashlag/plusml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashlag%2Fplusml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashlag%2Fplusml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashlag%2Fplusml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashlag%2Fplusml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hashlag","download_url":"https://codeload.github.com/hashlag/plusml/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashlag%2Fplusml/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33627934,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","machine-learning"],"created_at":"2024-11-15T05:29:20.771Z","updated_at":"2026-05-28T21:31:34.889Z","avatar_url":"https://github.com/hashlag.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PlusML\n\nPlusML is a C++ library that aims to provide implementations of common machine learning algorithms with clean API.\n\n### Table of contents\n\n* [Getting Started](#getting-started)\n* [Usage](#usage)\n* [Docs](#docs)\n* [Dependencies](#dependencies)\n* [Testing](#testing)\n* [License](#license)\n\n### Getting Started\n\nThe PlusML library can be installed via `git submodule`.\n\nNavigate to the project's directory and run\n\n```shell\ngit submodule add https://github.com/hashlag/plusml\n```\n\nthen initialize and update submodules\n\n```shell\ngit submodule update --init --recursive\n```\n\nNow you can compose your main `CMakeLists.txt` to add PlusML to your project.\n\nExample for Windows systems:\n\n```cmake\ncmake_minimum_required(VERSION 3.27)\nproject(myproject)\n\nset(CMAKE_CXX_STANDARD 20)\n\n# Add PlusML directory to the project\nadd_subdirectory(plusml)\n\nadd_executable(myproject main.cpp)\n\n# Link PlusML to your executable\ntarget_link_libraries(myproject PRIVATE plusml)\n\n# Include PlusML headers\ntarget_include_directories(myproject PRIVATE plusml/include)\n\n# Copy plusml.dll to the directory with your project's executable after building\nadd_custom_command(TARGET myproject POST_BUILD\n        COMMAND ${CMAKE_COMMAND} -E copy_if_different\n        $\u003cTARGET_FILE_DIR:plusml\u003e/plusml.dll\n        $\u003cTARGET_FILE_DIR:myproject\u003e\n        COMMENT \"Copying plusml.dll\"\n)\n```\n\nAfter configuring CMake you can build your project via CMake CLI or your favourite IDE tools.\n\nManual building may look like this:\n\n```shell\ncmake -S . -B ./build-dir\n```\n\n```shell\ncmake --build ./build-dir\n```\n\nWhere `.` is your project's directory.\n\n### Usage\n\nAfter installing the library you can use provided algorithms by including corresponding headers.\n\nAPI information is provided in [docs](#docs).\n\nBasic example:\n\n```c++\n#include \u003ciostream\u003e\n#include \u003cPlusML/linear_regression.h\u003e\n\nint main() {\n    plusml::LinearRegression model(2);\n\n    std::cout \u003c\u003c model.Parameters();\n\n    return 0;\n}\n```\n\nReturns\n\n```\n0\n0\n0\n```\n\nsince we have two features, bias is enabled by default and parameters are initialized with zeros.\n\n### Docs\n\nPlusML provides auto-generated docs via [Doxygen](https://www.doxygen.nl/).\n\nFeel free to explore it:\n\n* [Main Page](https://hashlag.github.io/plusml/)\n* [Class Hierarchy](https://hashlag.github.io/plusml/hierarchy.html)\n* [Table of Contents](https://hashlag.github.io/plusml/classes.html)\n\n### Testing\n\nTests for all implemented algorithms are placed at the `test/` directory along with testcase generators.\n\nCMake configuration for tests is also provided, just uncomment the corresponding section in `CMakeLists.txt` according to [the hints](https://github.com/hashlag/plusml/blob/7f3f9ce91ae6106a3324ecbeefc53a280a8e7b4b/CMakeLists.txt#L29).\n\n### Dependencies\n\nPlusML depends on [Eigen linear algebra library](https://eigen.tuxfamily.org/index.php?title=Main_Page) which is installed as a `git submodule` and does not require any dependencies other than the C++ standard library.\n\nWe also use [GoogleTest](https://github.com/google/googletest) for testing purposes but PlusML does not require it to run.\n\n### License\n\nPlusML is licensed under [the MIT License](https://raw.githubusercontent.com/hashlag/plusml/main/LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashlag%2Fplusml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhashlag%2Fplusml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashlag%2Fplusml/lists"}