Arm Optimized Routines
----------------------

This repository contains implementations of math library functions
provided by Arm under MIT License (See LICENSE). Contributions
to this project are accepted, but the terms will need negotiation (so
relicensing and copyright assignment to the FSF is possible later).

Source code layout:

auxiliary/      - design tools.
build/          - build directory (created by make).
math/           - math library source.
math/include/   - math library public headers.
math/single/    - code for cpu with only single precision support.
test/           - test related source.
test/rtest/     - test generator (requires mpfr and mpc).
test/testcases/ - test cases.

The steps to build the library 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

The test system requires libmpfr and libmpc.

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.

The script "remez.jl" was used to generate some of the coefficients
(see comments in the code).
