{"id":50701521,"url":"https://github.com/lorenzoliuzzo/scipp","last_synced_at":"2026-06-09T09:30:28.628Z","repository":{"id":155259099,"uuid":"588271946","full_name":"lorenzoliuzzo/scipp","owner":"lorenzoliuzzo","description":"c++ header-only library for scientific programming.","archived":false,"fork":false,"pushed_at":"2023-07-19T17:41:51.000Z","size":21249,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-01-27T17:00:55.096Z","etag":null,"topics":["autodifferentiation","dynamics","geometry","hamiltonian","lagrangian","linear-algebra","math","measurements","physics","units-of-measurement"],"latest_commit_sha":null,"homepage":"https://lorenzoliuzzo.github.io/scipp/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lorenzoliuzzo.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}},"created_at":"2023-01-12T18:25:31.000Z","updated_at":"2023-07-18T14:24:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"8336353b-679a-4fe5-b740-db56a3342740","html_url":"https://github.com/lorenzoliuzzo/scipp","commit_stats":{"total_commits":143,"total_committers":2,"mean_commits":71.5,"dds":"0.26573426573426573","last_synced_commit":"872013e02918e320a12e0a96a1a36b8cdcec5be7"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lorenzoliuzzo/scipp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lorenzoliuzzo%2Fscipp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lorenzoliuzzo%2Fscipp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lorenzoliuzzo%2Fscipp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lorenzoliuzzo%2Fscipp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lorenzoliuzzo","download_url":"https://codeload.github.com/lorenzoliuzzo/scipp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lorenzoliuzzo%2Fscipp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34101064,"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-06-09T02:00:06.510Z","response_time":63,"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":["autodifferentiation","dynamics","geometry","hamiltonian","lagrangian","linear-algebra","math","measurements","physics","units-of-measurement"],"created_at":"2026-06-09T09:30:27.532Z","updated_at":"2026-06-09T09:30:28.618Z","avatar_url":"https://github.com/lorenzoliuzzo.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# scipp \n## Hello World! \nThis repository contains the code for the **scipp** library, a c++ _header-only_ library for scientific programming.\n\nThe library provides a set of tools for scientific computing, including dimensional analysis, automatic differentiation, integration and more in general it could be used for performing accurate and reliable scientific computations. \nWhether it's simulating physical systems, optimizing designs, or solving differential equations, the library equips users with the tools they need to drive scientific discoveries and technological advancements. \n\nThe library is written in modern c++ and it is designed to be easy to use and to integrate with existing code.\n\n# Key features\n## Dimensional analysis\nDimensional analysis plays a crucial role in scientific computations by ensuring that mathematical expressions and equations are consistent in terms of units and dimensions. The library incorporates a compile-time structure for dimensional analysis, allowing users to define and manipulate physical quantities with their associated units. \n\nThis feature is better illustrated in the documentation of the [units and measurements](https://lorenzoliuzzo.github.io/scipp/physics/units-and-measurements/) defined inside the scipp::physics namespace.\n\n## Automatic differentiation\nThe library also provides a simple and efficient implementation of automatic differentiation, which is a powerful tool for calculus and physics. Automatic differentiation is a technique for evaluating derivatives of functions specified by a computer program. It is implemented by applying the chain rule repeatedly to obtain derivatives of higher order. This implementation is based on the [reverse mode autodiff](https://autodiff.github.io/#reverse-mode) library, with the major advantage of being dimensionally consistent.\n\nUsing the `scipp::math::calculus` namespace and its functions, it is possible to compute the derivatives of variables with respect to other variables in a simple and efficient way:\n```cpp\n#include \"scipp\"\n\nusing namespace scipp;\nusing namespace scipp::physics; \nusing namespace scipp::math;\nusing namespace scipp::math::calculus;\nusing tools::print; \n\nint main() {\n\n    variable\u003cmeasurement\u003cbase::length\u003e\u003e x = 2.0 * units::m;\n\n    variable\u003cmeasurement\u003cbase::length\u003e\u003e y = -3.0 * x; \n\n    variable\u003cmeasurement\u003cbase::area\u003e\u003e z = x * x; \n    \n    auto dy_dx = derivatives(y, wrt(x)); \n    auto [dz_dx, dz_dy, dz_dz] = derivatives(z, wrt(x, y, z));\n\n    print(\"x = \", x);\n    print(\"y = -3x = \", y);\n    print(\"z = x^2 = \", z);\n    print(\"dy_dx = \", dy_dx);\n    print(\"dz_dx = \", dz_dx);\n    print(\"dz_dy = \", dz_dy);\n    print(\"dz_dz = \", dz_dz);\n\n    return 0; \n}\n```\n\noutput: \n```bash\nx = 2 m\ny = -3x = -6 m\nz = x^2 = 4 m^2\ndy_dx = -3\ndz_dx = 4 m\ndz_dy = 0 m\ndz_dz = 1\n```\n\n# How to install\nYou can clone the repository using this command:\n```bash\ngit clone https://github.com/lorenzoliuzzo/scipp.git \n```\n\nYou can easily use the library by including the header file in your code: \n```cpp\n#include \"scipp\"\n\nusing namespace scipp;\n```\n\nIf you want to use the library in your project, you can add the following line to your `CMakeLists.txt` file:\n```cmake\ntarget_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/path/to/scipp)\n```\n\nIf you would want to run the tests and the examples, you can use the following commands from the root directory of the repository:\n```bash\nbash build.sh\n```\n\nAfter that, you can run the tests and the examples using the following commands:\n```bash\n./build/tests/some_test\n./build/examples/some_example\n```\n\n# Documentation\nThe library documentation is available [here](https://lorenzoliuzzo.github.io/scipp/) and it is written using GPT-4 under the supervision of the author.\nThe documentation is also available in the `docs` folder of the repository.\nThe site is still WIP and it will be updated in the next days with more and more examples and code snippets. \n\n\n# Contributing\nIf you want to contribute to the project, you can open a [pull requests](https://github.com/lorenzoliuzzo/scipp/pulls) or use the [issue tracker](https://github.com/lorenzoliuzzo/scipp/issues/) to suggest any code implementations or report bugs. \nAny contributions are welcome! \n\n## License\nThe code is released under the terms of the [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.html), see the [LICENSE](https://github.com/lorenzoliuzzo/scipp/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Florenzoliuzzo%2Fscipp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Florenzoliuzzo%2Fscipp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Florenzoliuzzo%2Fscipp/lists"}