bbants / optimized-routines Goto Github PK
View Code? Open in Web Editor NEWThis project forked from arm-software/optimized-routines
Optimized implementations of various library functions for ARM architecture processors
This project forked from arm-software/optimized-routines
Optimized implementations of various library functions for ARM architecture processors
ARM math library functions ---------------------------- This package contains a number of math functions from ARM's math library, as well as a build system and a test suite. In addition to the source code, there is also a script "remez.jl", which was used to generate coefficients used in the implementation of these functions (see comments in the code). Requirements: gcc >= 4.8, cmake >= 2.8, mpfr, mpc, qemu-user-static. For a native build on an AArch64 platform, everything (including tests) should work out-of the box, assuming the system compiler is a recent gcc. Simply follow the instructions below to configure the build using cmake (leaving out the -DCMAKE_TOOLCHAIN_FILE argument). Cross builds are supported for Linux hosts. First, install the required packages to build and run the tests on your distro of choice: # apt-get install qemu-user-static gcc-aarch64-linux-gnu libmpfr-dev \ libmpc-dev cmake You could also use a custom aarch64-linux-gnu-gcc cross toolchain, e.g. from Linaro, if your system doesn't provide one: https://releases.linaro.org/15.02/components/toolchain/binaries/ The build script will build both a shared and a static math library object containing the ARM functions for the specified target, a host-side application rtest that generates test cases, and a target-side application mathtest that is linked against the math library and actually executes the tests. Generally, the steps to build and run the tests are: mkdir -p /my/build/folder && cd /my/build/folder cmake /path/to/src -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain/file make make check The toolchain file specifies the paths to the cross-compiler, i.e. aarch64-linux-gnu-gcc, as well as the sysroot parameter for the build. An example can be found in toolchain-gcc.cmake, which assumes that you have the cross toolchain installed in /usr/bin and the sysroot is /usr/aarch64-linux-gnu respectively. This should work with the Ubuntu packages suggested above as-is. Edit the paths as necessary if your cross toolchain lives somewhere else. Alternatively, you can specify the necessary parameters from the toolchain file directly on the command line. The files are built in the build directory as follows: build/ bin/ rtest mathtest runtest.sh lib/ libmathlib.so libmathlib_static.a include/ arm_math.h It is possible to specify which emulator to use for the execution of the tests in the cross compilation case by specifying the following option: cmake (...) -DCMAKE_CROSSCOMPILING_EMULATOR=/path/to/your/emulator By default, qemu-aarch64-static will be used, so this has to be on your path if you want to cross-run the test suite. Whenever the CMake configuration is changed, it is wise to delete the whole build folder instead of just rerunning CMake inside the existing folder. The build system also has experimental support for using clang as the cross compiler. !!!You need CMake >= 3.0 and clang >= 3.5.0 for this!!! Before compilation, apply the source patch in the patches/ folder to make sure everything works properly when compiled with clang. There is a sample toolchain file for clang included as toolchain-clang.cmake.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.