Generated by GPT-5-mini| GNU Octave | |
|---|---|
![]() Alexander Wilms · CC BY-SA 4.0 · source | |
| Name | GNU Octave |
| Developer | GNU Project |
| Released | 1992 |
| Latest release version | 8.x (example) |
| Programming language | C++, C, Fortran |
| Operating system | Unix-like, Microsoft Windows, macOS |
| Genre | Numerical computing, technical computing |
| License | GNU General Public License |
GNU Octave GNU Octave is a high-level programming language and interactive environment for numerical computations, matrix operations, and scientific visualization. It provides a command-line interpreter and scripting facilities designed to be largely compatible with a popular proprietary language used in engineering and science, and it is distributed under a widely used free software license by a major free software organization. The project intersects with many institutions, projects, and scientific communities that rely on numerical analysis, simulation, and data visualization.
The project began in the early 1990s under the direction of an academic researcher associated with Massachusetts Institute of Technology and was later hosted by a major free software organization. Early development paralleled advances in numerical libraries from institutions like Netlib and research groups at Lawrence Berkeley National Laboratory and Los Alamos National Laboratory. Over time contributions came from individual developers and corporations, including maintainers with backgrounds connected to University of Wisconsin–Madison, University of Cambridge, and University of California, Berkeley. The evolution of the codebase reflects influences from numerical software such as LINPACK, EISPACK, and linear algebra packages developed at Argonne National Laboratory, and it adapted to changing operating systems including GNU/Linux, Microsoft Windows, and macOS. Major milestones included incorporation of graphics backends inspired by projects like Gnuplot and interoperability work related to languages and projects such as Python (programming language), R (programming language), and Julia (programming language).
Octave's architecture uses a core interpreter implemented in C++ with numerical kernels calling established libraries such as BLAS, LAPACK, and SuiteSparse. The plotting and visualization subsystem historically interfaces with external plotters like Gnuplot and modern toolkits that trace roots to projects such as matplotlib and Qt (software). The build and packaging system integrates with tools and services from ecosystems including Autotools, CMake, and packaging repositories like those maintained by Debian, Red Hat, and Homebrew (package manager). Its extensibility model allows compiled extensions and dynamically loadable modules leveraging compilers like GCC and Clang (compiler), and binary distributions for platforms influenced by Microsoft Visual Studio and cross-compilation efforts using MinGW.
The language provides matrix-oriented primitives and procedural constructs compatible with scripts and functions used in curricula at institutions such as California Institute of Technology, Princeton University, and Stanford University. Syntax elements mirror conventions present in a well-known proprietary language employed widely in industry projects at companies such as Intel Corporation, MathWorks, and research labs at NVIDIA. Control structures, function definitions, and object-like constructs interact with data types optimized for numerical workloads inspired by scientific computing traditions at Los Alamos National Laboratory and Lawrence Livermore National Laboratory. The interpreter supports interactive debugging commonly taught in courses at Massachusetts Institute of Technology and ETH Zurich, and it can call external code written for compilers linked to ecosystems like Fortran (programming language) and C (programming language).
Octave implements dense and sparse linear algebra routines drawing on algorithms standardized by projects such as LAPACK and research consortia at Argonne National Laboratory and Oak Ridge National Laboratory. It supports numerical methods for ordinary differential equations and partial differential equations used in publications from SIAM and textbooks adopted at University of Oxford and Yale University. Signal processing, optimization, statistics, and control systems toolboxes reflect methodologies taught at University of California, Los Angeles and developed in industrial research at Bell Labs and General Electric. Interfaces facilitate data exchange with formats and tools from HDF5, NetCDF, and databases common in workflows at European Organization for Nuclear Research and climate research centers like National Oceanic and Atmospheric Administration.
The default interactive shell complements graphical frontends and editors influenced by projects such as Emacs, Visual Studio Code, and Eclipse. Plotting integrates with display servers and widget toolkits originally developed by projects like X.Org and GTK. Integration layers provide interoperability with languages and systems used in scientific pipelines, including Python (programming language), R (programming language), Fortran (programming language), and tools from Apache Software Foundation ecosystems. Packaging and distribution align with software repositories maintained by organizations such as Debian, Fedora Project, and Homebrew (package manager), enabling deployment in environments operated by research centers like CERN and national laboratories.
Development is coordinated through version control systems and hosting platforms historically associated with projects such as Savannah (software), GitHub, and decentralized collaboration models championed by the Free Software Foundation. The project is licensed under the GNU General Public License, a license authored by activists and legal scholars connected to the Free Software Foundation and policies debated in contexts including European Commission procurement discussions. Contributors include academics, industry engineers, and researchers affiliated with universities like University of Cambridge, Imperial College London, and corporations such as Google and IBM. The user and developer community organizes workshops, mailing lists, and conference presentations at venues like SciPy, SIGGRAPH, and meetings sponsored by IEEE and ACM.
Category:Numerical software