# Octave¶

From Octave’s web page:

GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented language.

Octave has extensive tools for solving common numerical linear algebra problems, finding the roots of nonlinear equations, integrating ordinary functions, manipulating polynomials, and integrating ordinary differential and differential-algebraic equations. It is easily extensible and customizable via user-defined functions written in Octave’s own language, or using dynamically loaded modules written in C++, C, Fortran, or other languages.

## Getting started¶

module load octave
octave


It is best to pick a version of octave and stick with it. Do module spider octave and use the whole name:

module load octave/4.4.1-qt-python2


To run octave with the GUI, run it with:

octave --force-gui


## Installing packages¶

Before installing packages you should create a file ~/.octaverc with the following content:

package_dir = ['/scratch/work/',getenv('USER'),'/octave'];
eval (["pkg prefix ",package_dir, ";"]);
setenv("CXX","g++ -std=gnu++11")
setenv("DL_LD","g++ -std=gnu++11")
setenv("LD_CXX","g++ -std=gnu++11")
setenv("CC","gcc")
setenv("F77","gfortran")


This sets up /scratch/work/\$USER/octave to be your Octave package directory and sets gcc to be your compiler. By setting Octave package directory to your work directory you won’t run into any quota issues.

After this you should load gcc- and texinfo-modules. This gives you an up-to-date compiler and tools that Octave uses for its documentation:

module load gcc


Now you can install packages in octave with e.g.:

pkg install -forge -local io


After this you can unload the gcc- and texinfo-modules:

module unload gcc