mirror of
https://github.com/openharmony/third_party_optimized_routines.git
synced 2026-06-29 20:28:35 -04:00
master
The product package lacks the open-source software notice for optimized-routines Created-by: xwx1135370 Commit-by: xwx1135370 Merged-by: openharmony_ci Description: ### 相关的Issue https://gitcode.com/openharmony/third_party_optimized_routines/issues/13 ### 原因(目的、解决的问题等) 根据[OpenHarmony开源软件Notice收集策略说明](https://gitcode.com/openharmony/build/blob/master/docs/%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6Notice%E6%94%B6%E9%9B%86%E7%AD%96%E7%95%A5%E8%AF%B4%E6%98%8E.md)openharmony中只会自动收集ohos_shared_library、ohos_static_library、ohos_executable、ohos_app、ohos_rust_library、ohos_abc、ohos_bpf、ohos_rust_proc_macro等ohos类型模板的编译目标所依赖到的三方开源信息 ### 描述(做了什么,变更了什么) 修改调用模板为ohos形态 ### 测试用例(新增、改动、可能影响的功能)  See merge request: openharmony/third_party_optimized_routines!32
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Arm Optimized Routines
----------------------
This repository contains implementations of library functions
provided by Arm. The outbound license is available under a dual
license, at the user’s election, as reflected in the LICENSE file.
Contributions to this project are accepted, but Contributors have
to sign an Assignment Agreement, please follow the instructions in
contributor-agreement.pdf. This is needed so upstreaming code
to projects that require copyright assignment is possible. Further
contribution requirements are documented in README.contributors of
the appropriate subdirectory.
Regular quarterly releases are tagged as vYY.MM, the latest
release is v25.01.
Source code layout:
build/ - build directory (created by make).
math/ - math subproject sources for generic scalar
subroutines and sources shared with
subdirectories of math/.
All math routines should meet the quality
requirements stated in math/README.contributors,
routines that fail to do so are located in an
experimental/ directory.
math/aarch64/ - math subproject AArch64-specific sources
and sources shared with subdirectories.
math/aarch64/advsimd - AdvSIMD-specific math sources.
math/aarch64/experimental - Experimental math sources do not
meet quality requirements stated in
math/README.contributors.
math/aarch64/sve - SVE-specific math sources.
math/include/ - math library public headers.
math/test/ - math test and benchmark related sources.
math/tools/ - tools used for designing the algorithms.
networking/ - networking subproject sources.
networking/include/ - networking library public headers.
networking/test/ - networking test and benchmark related sources.
string/ - string routines subproject sources.
All string routines should meet the quality
requirements stated in string/README.contributors,
routines that fail to do so are located in an
experimental/ directory.
string/<arch> - <arch>-specific string routines sources for
<arch>=aarch64, and arm.
string/aarch64/experimental - Experimental string routines which
may not be fully optimized yet.
string/include/ - string library public headers.
string/test/ - string test and benchmark related sources.
The steps to build the target libraries and run the tests:
cp config.mk.dist config.mk
# edit config.mk if necessary ...
make
make check
Or building outside of the source directory:
ln -s path/to/src/Makefile Makefile
cp path/to/src/config.mk.dist config.mk
echo 'srcdir = path/to/src' >> config.mk
# further edits to config.mk
make
make check
Or building and testing the math subproject only:
make all-math
make check-math
Note on compiler compability/requirement:
SVE routines are always built by default - this means that on AArch64
GCC >= 10 or LLVM >= 5 are always required for SVE ACLE compatibility.
There is no explicit check for compatible compiler, therefore the SVE
routines will fail to build if CC is too old.
The test system requires libmpfr and libmpc.
For example on debian linux they can be installed as:
sudo apt-get install libmpfr-dev libmpc-dev
For cross build, CROSS_COMPILE should be set in config.mk and EMULATOR
should be set for cross testing (e.g. using qemu-user or remote access
to a target machine), see the examples in config.mk.dist.
Description
third_party_optimized_routines |三方开源软件optimized_routines 处理器的各种库函数的优化实现
Languages
C
79.7%
Scilab
10.4%
Assembly
6.2%
Julia
2.6%
Makefile
0.9%
Other
0.1%