{"id":13642544,"url":"https://github.com/ARM-software/optimized-routines","last_synced_at":"2025-04-20T16:32:44.803Z","repository":{"id":37768394,"uuid":"45979634","full_name":"ARM-software/optimized-routines","owner":"ARM-software","description":"Optimized implementations of various library functions for ARM architecture processors","archived":false,"fork":false,"pushed_at":"2025-04-16T15:52:56.000Z","size":3430,"stargazers_count":620,"open_issues_count":7,"forks_count":104,"subscribers_count":46,"default_branch":"master","last_synced_at":"2025-04-16T23:22:26.068Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ARM-software.png","metadata":{"files":{"readme":"README","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,"zenodo":null}},"created_at":"2015-11-11T12:12:32.000Z","updated_at":"2025-04-16T15:53:00.000Z","dependencies_parsed_at":"2024-02-05T10:45:14.730Z","dependency_job_id":"923c1e9f-5066-4e65-bfd7-8f16cc454128","html_url":"https://github.com/ARM-software/optimized-routines","commit_stats":{"total_commits":644,"total_committers":26,"mean_commits":24.76923076923077,"dds":0.6909937888198758,"last_synced_commit":"c3c4363485c53ce98e00197b68e661eaec542dff"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARM-software%2Foptimized-routines","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARM-software%2Foptimized-routines/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARM-software%2Foptimized-routines/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARM-software%2Foptimized-routines/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ARM-software","download_url":"https://codeload.github.com/ARM-software/optimized-routines/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249926571,"owners_count":21346587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-08-02T01:01:32.855Z","updated_at":"2025-04-20T16:32:44.797Z","avatar_url":"https://github.com/ARM-software.png","language":"C","readme":"Arm Optimized Routines\n----------------------\n\nThis repository contains implementations of library functions\nprovided by Arm. The outbound license is available under a dual\nlicense, at the user’s election, as reflected in the LICENSE file.\nContributions to this project are accepted, but Contributors have\nto sign an Assignment Agreement, please follow the instructions in\ncontributor-agreement.pdf. This is needed so upstreaming code\nto projects that require copyright assignment is possible. Further\ncontribution requirements are documented in README.contributors of\nthe appropriate subdirectory.\n\nRegular quarterly releases are tagged as vYY.MM, the latest\nrelease is v25.01.\n\nSource code layout:\n\nbuild/          - build directory (created by make).\nfp/             - FP basic arithmetic sources (not included in Makefile).\nmath/           - math subproject sources for generic scalar\n                  subroutines and sources shared with\n                  subdirectories of math/.\n                  All math routines should meet the quality\n                  requirements stated in math/README.contributors,\n                  routines that fail to do so are located in an\n                  experimental/ directory.\nmath/aarch64/   - math subproject AArch64-specific sources\n                  and sources shared with subdirectories.\nmath/aarch64/advsimd      - AdvSIMD-specific math sources.\nmath/aarch64/experimental - Experimental math sources do not\n                            meet quality requirements stated in\n                            math/README.contributors.\nmath/aarch64/sve          - SVE-specific math sources.\nmath/include/   - math library public headers.\nmath/test/      - math test and benchmark related sources.\nmath/tools/     - tools used for designing the algorithms.\nnetworking/     - networking subproject sources.\nnetworking/include/ - networking library public headers.\nnetworking/test/ - networking test and benchmark related sources.\nstring/         - string routines subproject sources.\n                  All string routines should meet the quality\n                  requirements stated in string/README.contributors,\n                  routines that fail to do so are located in an\n                  experimental/ directory.\nstring/\u003carch\u003e   - \u003carch\u003e-specific string routines sources for\n                  \u003carch\u003e=aarch64, and arm.\nstring/aarch64/experimental - Experimental string routines which\n                              may not be fully optimized yet.\nstring/include/ - string library public headers.\nstring/test/    - string test and benchmark related sources.\n\nThe steps to build the target libraries and run the tests:\n\ncp config.mk.dist config.mk\n# edit config.mk if necessary ...\nmake\nmake check\n\nOr building outside of the source directory:\n\nln -s path/to/src/Makefile Makefile\ncp path/to/src/config.mk.dist config.mk\necho 'srcdir = path/to/src' \u003e\u003e config.mk\n# further edits to config.mk\nmake\nmake check\n\nOr building and testing the math subproject only:\n\nmake all-math\nmake check-math\n\nNote on compiler compability/requirement:\n\nSVE routines are always built by default - this means that on AArch64\nGCC \u003e= 10 or LLVM \u003e= 5 are always required for SVE ACLE compatibility.\nThere is no explicit check for compatible compiler, therefore the SVE\nroutines will fail to build if CC is too old.\n\nThe test system requires libmpfr and libmpc.\nFor example on debian linux they can be installed as:\n\nsudo apt-get install libmpfr-dev libmpc-dev\n\nFor cross build, CROSS_COMPILE should be set in config.mk and EMULATOR\nshould be set for cross testing (e.g. using qemu-user or remote access\nto a target machine), see the examples in config.mk.dist.\n","funding_links":[],"categories":["C"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FARM-software%2Foptimized-routines","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FARM-software%2Foptimized-routines","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FARM-software%2Foptimized-routines/lists"}