Hide navigation sidebar
Hide table of contents sidebar
Back to top
Toggle table of contents sidebar

# Introduction

`lib_xcore_math` is a library of optimised math functions for taking advantage of the vector processing unit (VPU) of the XMOS XS3 architecture (i.e xcore.ai). Included in the library are functions for block floating-point arithmetic, fast Fourier transforms, linear algebra, discrete cosine transforms, linear filtering and more.

## Repository structure

- /lib_xcore_math/

  - api/ - Headers containing the public API.

  - script/ - Scripts used for source generation.

  - src/- Library source code.

- /doc/ - documentation source.

- /examples/ - Example applications.

- /tests/ - Unit test projects.

## API structure

This library is organised around several sub-APIs. These APIs collect the provided operations into coherent groups based on the kind of operation or the types of object being acted upon.

The current APIs are:

> - Block Floating-Point Vector API

> - Vector/Array API

> - Scalar API

> - Linear Filtering API

> - Fast Fourier Transform API

> - Discrete Cosine Transform API

## Using `lib_xcore_math`

`lib_xcore_math` is intended to be used with the XCommon CMake , the XMOS application build and dependency management system.

`lib_xcore_math` can be compiled for both x86 platforms and XS3 based processors.

On x86 platforms you can develop DSP algorithms and test them for functional correctness; this is an optional step before porting the library to an xcore device.

To use this module, include `lib_xcore_math` in the application’s `APP_DEPENDENT_MODULES` list and include the `xcore_math.h` header file.