Welcome to OctApps, a library of Octave functions for continuous gravitational-wave data analysis.
OctApps is hosted on GitHub.
Please see the project homepage for instructions for checking out the repository with git clone
.
Alternatively, a Docker image containing the latest version of OctApps can be built by running
$ docker build https://github.com/octapps/octapps.git
OctApps depends on the following packages for various purposes:
Package | Purpose | Debian/Ubuntu | MacOSX |
---|---|---|---|
GNU Core Utilities | Used to build OctApps | installed as standard | brew install coreutils |
GNU Find Utilities | Used to build OctApps | installed as standard | brew install findutils |
GNU Sed | Used to build OctApps | installed as standard | brew install gnu-sed |
GNU Awk | Used to build OctApps | installed as standard | brew install gawk |
GNU Make | Used to build OctApps | apt install make | brew install make |
pkg-config | Used to build OctApps | apt install pkg-config | brew install pkg-config |
Octave | Running OctApps | apt install octave | brew install octave |
Octave development headers | Used to build extension modules | apt install liboctave-dev | brew install octave |
SWIG | Used to build extension modules | apt install swig3.0 | brew install swig |
GNU Texinfo | Used to build HTML documentation | apt install texinfo | brew install texinfo |
LSC Algorithm Library (LALSuite) | Continuous gravitational-wave functions require packages lal-octave, lalxml-octave, lalpulsar-octave, and lalapps | See project homepage for build instructions | |
GNU Scientific Library | Used by gsl module | apt install libgsl-dev | brew install gsl |
Gnuplot | Used by ezprint() function | apt install gnuplot | brew install gnuplot |
FFmpeg | Used by ezmovie() function | apt install ffmpeg | brew install ffmpeg |
CFITSIO | Used by fitsread() function | apt install libcfitsio-dev | brew install cfitsio |
bzip2 | Used by SuperskyMetricsCache() function | apt install bzip2 | brew install bzip2 |
To use any OctApps functions with Octave, first run
$ make
to generate the user environment setup scripts, then either add
$ . <your-path-to>/octapps/octapps-user-env.sh
to your ~/.profile
file for Bourne shells (e.g. bash
), or
$ source <your-path-to>/octapps/octapps-user-env.csh
to your ~/.login
file for C shells (e.g. tcsh
).
You will also need to re-run make
after any new directories are added to OctApps.
To execute the OctApps test suite, consisting of tests embedded in Octave function files, run
$ make check
You can also run the test suite for specific functions files:
$ make check TESTS=runCode
$ make check TESTS=src/general/runCode.m
or specific directories:
$ make check TESTDIR=src/general
The OctApps test suite is regularly executed via GitHub Actions.
Current build status: .
A reference manual for OctApps in HTML format is regularly generated from the master branch on GitHub. It includes tutorials on several important features of OctApps, documentation for each function in the library, and example usages.
Documentation can also be obtained from within Octave on any OctApps function by running
$ octave:1> help <name-of-function>
Example usage for many OctApps functions can be found in the embedded tests, which can be printed using
$ octave:1> test <name-of-function> verbose
Contributions to OctApps are welcome. Bug reports and other requests for support should be raised on the issue tracker on GitHub. Bug fixes and new contributions should be submitted as pull requests to the main OctApps repository. Documentation for OctApps is embedded in Octave function files, and is written in Texinfo format.
If you make use of OctApps, please cite our paper in the Journal of Open Source Software:
@article{octapps,
author = {Karl Wette and Reinhard Prix and David Keitel and Matthew Pitkin and Christoph Dreissigacker and John T. Whelan and Paola Leaci},
title = {{OctApps: a library of Octave functions for continuous gravitational-wave data analysis}},
journal = {Journal of Open Source Software},
year = {2018},
volume = {3},
number = {26},
pages = {707},
doi = {10.21105/joss.00707},
}