Skip to content
C++ Python CMake C Objective-C Fortran Other
Branch: master
Clone or download
ghostop14 and mbr0wn Improve complex math speed by disabling NaN/Inf checks
This patch globally applies the -fcx-limited-range compiler flag, which
skips checks on complex multiplication. This compiler flag is currently
only available on gcc, for other compilers, there are no changes.

The effect of this flag is that range reduction and Inf/NaN checks are
skipped. This is not a problem for most complex data stemming from
real-life signals. Only when we have to expect Inf/NaN values, or
complex numbers that can cause numerical overflows, is this switch
a problem. For GNU Radio, the new standard will be to set the flag, and
to enable extra checking only for special cases (the default is to
perform checks on every multiplication/division by default). Regions of
code that require extra checking can use the

    #pragma STDC CX_LIMITED_RANGE OFF

preprocessor command to enable range checks.

For well-behaved data, removing the checks is significantly faster.
Benchmark improvements of up to a factor of 6 have been observed in the
wild.
Latest commit 785a889 Jan 24, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows ci: Fix formatting GitHub action to properly check paths Jan 11, 2020
cmake Update license header to SPDX format Jan 28, 2020
docs Update license header to SPDX format Jan 28, 2020
dtools Update license header to SPDX format Jan 28, 2020
gnuradio-runtime Update license header to SPDX format Jan 28, 2020
gr-analog Update license header to SPDX format Jan 28, 2020
gr-audio Update license header to SPDX format Jan 28, 2020
gr-blocks Update license header to SPDX format Jan 28, 2020
gr-channels Update license header to SPDX format Jan 28, 2020
gr-digital Update license header to SPDX format Jan 28, 2020
gr-dtv Update license header to SPDX format Jan 28, 2020
gr-fec Update license header to SPDX format Jan 28, 2020
gr-fft fft: fixup Log Power yml Jan 28, 2020
gr-filter Update license header to SPDX format Jan 28, 2020
gr-qtgui Update license header to SPDX format Jan 28, 2020
gr-trellis Update license header to SPDX format Jan 28, 2020
gr-uhd Update license header to SPDX format Jan 28, 2020
gr-utils Update license header to SPDX format Jan 28, 2020
gr-video-sdl Update license header to SPDX format Jan 28, 2020
gr-vocoder Update license header to SPDX format Jan 28, 2020
gr-wavelet Update license header to SPDX format Jan 28, 2020
gr-zeromq Update license header to SPDX format Jan 28, 2020
grc Update license header to SPDX format Jan 28, 2020
tools clang-format: Ordering all the includes Aug 9, 2019
volk @ 7a60cd6 VOLK: update submodule pointer to v2.1.0 Jan 2, 2020
.clang-format formatting: add verbose .clang-format defining GR code style Nov 21, 2018
.clang-tidy clang-tidy in gnuradio-runtime: use empty() instead of size()!=0 Aug 22, 2019
.gitattributes Add .gitattributes to fix CRLF problems on MinGW/MSYS Oct 10, 2009
.gitignore .gitignore: ignore build*/ instead of just build/ Nov 9, 2018
.gitmodules add volk submodule Mar 29, 2015
CHANGELOG.md Prepared Changelog for master development aiming for 3.9 Aug 9, 2019
CMakeLists.txt Improve complex math speed by disabling NaN/Inf checks Jan 28, 2020
CODE_OF_CONDUCT.md Adding the GNU Radio Code of Conduct to code repository. May 20, 2019
CONTRIBUTING.md Replace README.hacking with CONTRIBUTING.md Jan 18, 2020
COPYING Updated license from GPL version 2 or later to GPL version 3 or later. Jul 21, 2007
README.md README: Fix license badge at top of README Jan 2, 2020
VERSIONING Add a VERSIONING file Jun 21, 2019
config.h.in Update license header to SPDX format Jan 28, 2020

README.md

Build Version AUR Docs Packaging status

GNU Radio is a free & open-source software development toolkit that provides signal processing blocks to implement software radios. It can be used with readily-available, low-cost external RF hardware to create software-defined radios, or without hardware in a simulation-like environment. It is widely used in hobbyist, academic, and commercial environments to support both wireless communications research and real-world radio systems.

Please visit the GNU Radio website at https://www.gnuradio.org/ and the wiki at https://wiki.gnuradio.org/. Bugs and feature requests are tracked on GitHub's Issue Tracker. If you have questions about GNU Radio, please search the discuss-gnuradio mailing list archive, as many questions have already been asked and answered. Please also subscribe to the mailing list and post your new questions there.

How to Install GNU Radio

Prebuilt Binaries

The recommended way to install GNU Radio on most platforms is using available binary package distributions.

The following command is for Debian, Ubuntu, and derivatives. It will install Release 3.7 with Python2.

sudo apt install gnuradio

For other operating systems, see Installing from Binaries

PyBOMBS

PyBOMBS is good at building GNU Radio, UHD, and various Out of Tree (OOT) modules from source and then installing into a specified user directory rather than in the system files. PyBOMBS detects the user's Operating System and loads all of the prerequisites in the first stage of the build.

For a quick start, open a terminal window and enter the following commands. This will install Release 3.8 with Python3.

sudo -H pip3 install PyBOMBS
pybombs auto-config
pybombs recipes add-defaults
pybombs prefix init ~/gnuradio -R gnuradio-default

Wait. The terminal will show the progress.

To run GNU Radio Companion, enter:

    pybombs run gnuradio-companion

Complete PyBOMBS instructions are in the PyBOMBS README.

From Source

Complete instructions for building Gnuradio from source code are detailed in Installing GR From Source.

Legal Matters

Some files have been changed many times throughout the years. Copyright notices at the top of source files list which years changes have been made. For some files, changes have occurred in many consecutive years. These files may often have the format of a year range (e.g., "2006 - 2011"), which indicates that these files have had copyrightable changes made during each year in the range, inclusive.

You can’t perform that action at this time.