Library of Octave functions for continuous gravitational-wave data analysis
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
paper
src
.dockerignore
.gitignore
.mailmap
.travis.yml
Brewfile
COPYING
Dockerfile
Makefile
README.md

README.md

OctApps

Welcome to OctApps, a library of Octave functions for continuous gravitational-wave data analysis.

Downloading

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

Dependencies

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
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

Building

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.

Testing

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 on Travis CI. Current build status: Build Status.

Documentation

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

Contributing

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.

Acknowledgement

If you make use of OctApps, please cite our paper DOI 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},
}