- Notifications
You must be signed in to change notification settings - Fork1
johnmcfarlane/cdsp
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
develop @ Travis-CI (macOS & Linux) | develop @ Appveyor (Windows) |
---|---|
CDSP is a header only DSP library written withCNL aiming for floating point andfixed-point implementation of typical DSP kernels.
Algorithm designers often start withMatlab,Scipy,R or maybeJulia and get the algorithm designed on very highlevel with a floating-point datatype. For real-time applications the finaltarget is often fixed-point DSP, FPGA or ASIC. Manual porting of the algorithmto fixed-point is needed which can lead to three separate algorithm sourcecodes: original algorithm in floating-point, fixed-point design of the same andthe final implementation on the target. Keeping them in synchronization is anightmare.
CDSP library shows how withCNL singlesource code can provide full implementation. Minimally, CDSP can provide bothfloating-point and fixed-point designs from the same source code. In the casecompliant C++ compiler exists for the target the final implementation is doneas well.
CDSP fixed-point implementations are measured against their floating pointcounterparts in terms of numerical accuracy. At this point performance withCirrus ADSP2 fixed-point datatypes have been tested and separately verifiedagainst native Cirrus ADSP2 implementation. Composing new datatypewithCNL and specializing the lowestlevel of core CDSP kernels is quite straight forward to support otherarchitectures such as Qualcomm, TI DSPs and other application specificprocessors.
Requirements are the same as withCNL.CDSP installsCNL and CDSP side-by-sideand the only prerequisites are listed below.
Requires:
- GCC 5.1 / Clang 3.5
- Cmake 3.2.2
Optional:
- Boost - for multiprecision support withCNL
- Doxygen - generates documentation in the doc/gh-pages directory
See the instructions for Linux. Works similarly.For missing packages please useHomebrew.
- MSBuild 15.0 (VS 2017)
- Cmake 3.8.0
The library is hosted onGitHub
cd /some/directorygit clone https://github.com/hbe72/cdsp.git
Generate the build system
mkdir buildcd buildcmake /some/directory/cdsp -DCMAKE_INSTALL_PREFIX=/directory/to/install -DCMAKE_BUILD_TYPE=Release
Build tests:
- Linux and Mac parallel with 8 cores
cmake --build . --target Tests -- -j8
- Windows
cmake --build . --target test/Tests
Run the tests
ctest
Install
If you want to install the CDSP and CNL libraries to location specified byCMAKE_INSTALL_PREFIX.
cmake --build . --target install
By default CDSP and CNL install to /usr/local.