Copy disabled (too large)
Download .txt
Showing preview only (39,631K chars total). Download the full file to get everything.
Repository: gnu-octave/octave
Branch: default
Commit: bb4f6f46da29
Files: 3781
Total size: 37.1 MB
Directory structure:
gitextract_lou5yk_x/
├── .dir-locals.el
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── dependabot.yml
│ └── workflows/
│ ├── codeql-analysis.yaml
│ ├── make-alpine.yaml
│ ├── make-cross.yaml
│ ├── make-cygwin.yaml
│ ├── make-macos.yaml
│ ├── make-mingw.yaml
│ └── make-ubuntu.yaml
├── .hgignore
├── .hgtags
├── CITATION
├── COPYING
├── COPYRIGHT.md
├── Makefile.am
├── README
├── autogen.sh
├── autopull.sh
├── bootstrap
├── bootstrap-funclib.sh
├── bootstrap.conf
├── build-aux/
│ ├── OctJavaQry.java
│ ├── changelog.tmpl
│ ├── check-subst-vars.in.sh
│ ├── find-defun-files.in.sh
│ ├── find-files-with-tests.in.sh
│ ├── get-source-mtime.sh
│ ├── inplace-edit.pl
│ ├── make-gnu-dist-files
│ ├── mk-hg-id.sh
│ ├── mk-octave-config-h.sh
│ ├── mk-opts.pl
│ ├── mk-pkg-add.sh
│ ├── module.mk
│ ├── subst-config-vals.in.sh
│ ├── subst-cross-config-vals.in.sh
│ ├── subst-script-vals.in.sh
│ └── update-bug-status.sh
├── configure.ac
├── doc/
│ ├── doxyhtml/
│ │ ├── Doxyfile.in
│ │ ├── README.md
│ │ ├── module.mk
│ │ └── pages/
│ │ └── macros.dox
│ ├── interpreter/
│ │ ├── arith.txi
│ │ ├── audio.txi
│ │ ├── basics.txi
│ │ ├── bugs.txi
│ │ ├── config-images.sh
│ │ ├── container.txi
│ │ ├── contributors.in
│ │ ├── cp-idx.txi
│ │ ├── data.txi
│ │ ├── debug.txi
│ │ ├── diagperm.txi
│ │ ├── diffeq.txi
│ │ ├── doccheck/
│ │ │ ├── README
│ │ │ ├── add-to-aspell-dict.pl
│ │ │ ├── aspell-octave.en.pws
│ │ │ ├── aspell.conf
│ │ │ ├── mk-undocumented-list.pl
│ │ │ └── spellcheck
│ │ ├── errors.txi
│ │ ├── eval.txi
│ │ ├── expr.txi
│ │ ├── external.txi
│ │ ├── fn-idx.txi
│ │ ├── func.txi
│ │ ├── genpropdoc.m
│ │ ├── geometry.txi
│ │ ├── geometryimages.m
│ │ ├── gpl.txi
│ │ ├── grammar.txi
│ │ ├── graphics-properties.mk
│ │ ├── gui.txi
│ │ ├── image.txi
│ │ ├── images
│ │ ├── images.awk
│ │ ├── install.txi
│ │ ├── interp.txi
│ │ ├── interpimages.m
│ │ ├── intro.txi
│ │ ├── io.txi
│ │ ├── linalg.txi
│ │ ├── macros.texi
│ │ ├── matrix.txi
│ │ ├── mk-doc-cache.pl
│ │ ├── mk-qthelp.pl
│ │ ├── mkcontrib.awk
│ │ ├── mkoctfile.1
│ │ ├── module.mk
│ │ ├── munge-texi.pl
│ │ ├── nonlin.txi
│ │ ├── numbers.txi
│ │ ├── obsolete.txi
│ │ ├── octave-cli.1
│ │ ├── octave-config.1
│ │ ├── octave-logo.eps
│ │ ├── octave.1
│ │ ├── octave.css
│ │ ├── octave.texi
│ │ ├── oop.txi
│ │ ├── op-idx.txi
│ │ ├── optim.txi
│ │ ├── package.txi
│ │ ├── plot.txi
│ │ ├── plotimages.m
│ │ ├── poly.txi
│ │ ├── pr-idx.txi
│ │ ├── preface.txi
│ │ ├── quad.txi
│ │ ├── set.txi
│ │ ├── signal.txi
│ │ ├── sparse.txi
│ │ ├── sparseimages.m
│ │ ├── splineimages.m
│ │ ├── stats.txi
│ │ ├── stmt.txi
│ │ ├── strings.txi
│ │ ├── system.txi
│ │ ├── testfun.txi
│ │ ├── var.txi
│ │ └── vectorize.txi
│ ├── liboctave/
│ │ ├── array.texi
│ │ ├── bugs.texi
│ │ ├── cp-idx.texi
│ │ ├── dae.texi
│ │ ├── diffeq.texi
│ │ ├── error.texi
│ │ ├── factor.texi
│ │ ├── fn-idx.texi
│ │ ├── gpl.texi
│ │ ├── install.texi
│ │ ├── intro.texi
│ │ ├── liboctave.texi
│ │ ├── matvec.texi
│ │ ├── module.mk
│ │ ├── nleqn.texi
│ │ ├── nlfunc.texi
│ │ ├── ode.texi
│ │ ├── optim.texi
│ │ ├── preface.texi
│ │ ├── quad.texi
│ │ └── range.texi
│ ├── module.mk
│ ├── refcard/
│ │ ├── module.mk
│ │ ├── refcard-a4.tex
│ │ ├── refcard-legal.tex
│ │ ├── refcard-letter.tex
│ │ └── refcard.tex
│ └── texmf.cnf
├── etc/
│ ├── CHECKLIST.md
│ ├── HACKING.md
│ ├── NEWS.1
│ ├── NEWS.10.md
│ ├── NEWS.11.md
│ ├── NEWS.12.md
│ ├── NEWS.2
│ ├── NEWS.3
│ ├── NEWS.4
│ ├── NEWS.5.md
│ ├── NEWS.6.md
│ ├── NEWS.7.md
│ ├── NEWS.8.md
│ ├── NEWS.9.md
│ ├── OLD-ChangeLogs/
│ │ ├── ChangeLog
│ │ ├── ChangeLog.1
│ │ ├── doc-ChangeLog
│ │ ├── libcruft-ChangeLog
│ │ ├── liboctave-ChangeLog
│ │ ├── scripts-ChangeLog
│ │ ├── src-ChangeLog
│ │ └── test-ChangeLog
│ ├── RELEASE-CHECKLIST.wiki
│ ├── ROADMAP.md
│ ├── fonts/
│ │ ├── FreeMono.otf
│ │ ├── FreeMonoBold.otf
│ │ ├── FreeMonoBoldOblique.otf
│ │ ├── FreeMonoOblique.otf
│ │ ├── FreeSans.otf
│ │ ├── FreeSansBold.otf
│ │ ├── FreeSansBoldOblique.otf
│ │ └── FreeSansOblique.otf
│ ├── gdbinit
│ ├── icons/
│ │ ├── org.octave.Octave.desktop.in
│ │ └── org.octave.Octave.metainfo.xml
│ └── module.mk
├── examples/
│ ├── code/
│ │ ├── @FIRfilter/
│ │ │ ├── FIRfilter.m
│ │ │ ├── FIRfilter_aggregation.m
│ │ │ ├── display.m
│ │ │ ├── subsasgn.m
│ │ │ └── subsref.m
│ │ ├── @polynomial/
│ │ │ ├── disp.m
│ │ │ ├── double.m
│ │ │ ├── end.m
│ │ │ ├── get.m
│ │ │ ├── mtimes.m
│ │ │ ├── numel.m
│ │ │ ├── plot.m
│ │ │ ├── polynomial.m
│ │ │ ├── polynomial_superiorto.m
│ │ │ ├── polyval.m
│ │ │ ├── roots.m
│ │ │ ├── set.m
│ │ │ ├── subsasgn.m
│ │ │ └── subsref.m
│ │ ├── COPYING
│ │ ├── addtwomatrices.cc
│ │ ├── celldemo.cc
│ │ ├── embedded.cc
│ │ ├── fortrandemo.cc
│ │ ├── fortransub.f
│ │ ├── funcdemo.cc
│ │ ├── globaldemo.cc
│ │ ├── helloworld.cc
│ │ ├── make_int.cc
│ │ ├── mex_celldemo.c
│ │ ├── mex_demo.c
│ │ ├── mex_fevaldemo.c
│ │ ├── mex_fevalf.f
│ │ ├── mex_funcdemo.c
│ │ ├── mex_hellodemo.c
│ │ ├── mex_pow2demo.c
│ │ ├── mex_propdemo.c
│ │ ├── mex_setdemo.c
│ │ ├── mex_sparsedemo.c
│ │ ├── mex_stringdemo.c
│ │ ├── mex_structdemo.c
│ │ ├── module.mk
│ │ ├── oct_demo.cc
│ │ ├── oregonator.cc
│ │ ├── oregonator.m
│ │ ├── paramdemo.cc
│ │ ├── polynomial2.m
│ │ ├── standalone.cc
│ │ ├── standalonebuiltin.cc
│ │ ├── stringdemo.cc
│ │ ├── structdemo.cc
│ │ └── unwinddemo.cc
│ ├── data/
│ │ ├── README
│ │ ├── module.mk
│ │ ├── penny.mat
│ │ ├── west0479.mat
│ │ └── west0479.mtx
│ └── module.mk
├── libgui/
│ ├── graphics/
│ │ ├── BaseControl.cc
│ │ ├── BaseControl.h
│ │ ├── ButtonControl.cc
│ │ ├── ButtonControl.h
│ │ ├── ButtonGroup.cc
│ │ ├── ButtonGroup.h
│ │ ├── Canvas.cc
│ │ ├── Canvas.h
│ │ ├── CheckBoxControl.cc
│ │ ├── CheckBoxControl.h
│ │ ├── Container.cc
│ │ ├── Container.h
│ │ ├── ContextMenu.cc
│ │ ├── ContextMenu.h
│ │ ├── EditControl.cc
│ │ ├── EditControl.h
│ │ ├── Figure.cc
│ │ ├── Figure.h
│ │ ├── FigureWindow.cc
│ │ ├── FigureWindow.h
│ │ ├── GLCanvas.cc
│ │ ├── GLCanvas.h
│ │ ├── GenericEventNotify.h
│ │ ├── KeyMap.cc
│ │ ├── KeyMap.h
│ │ ├── ListBoxControl.cc
│ │ ├── ListBoxControl.h
│ │ ├── Logger.cc
│ │ ├── Logger.h
│ │ ├── Menu.cc
│ │ ├── Menu.h
│ │ ├── MenuContainer.h
│ │ ├── Object.cc
│ │ ├── Object.h
│ │ ├── ObjectProxy.cc
│ │ ├── ObjectProxy.h
│ │ ├── Panel.cc
│ │ ├── Panel.h
│ │ ├── PopupMenuControl.cc
│ │ ├── PopupMenuControl.h
│ │ ├── PushButtonControl.cc
│ │ ├── PushButtonControl.h
│ │ ├── PushTool.cc
│ │ ├── PushTool.h
│ │ ├── QtHandlesUtils.cc
│ │ ├── QtHandlesUtils.h
│ │ ├── RadioButtonControl.cc
│ │ ├── RadioButtonControl.h
│ │ ├── SliderControl.cc
│ │ ├── SliderControl.h
│ │ ├── Table.cc
│ │ ├── Table.h
│ │ ├── TextControl.cc
│ │ ├── TextControl.h
│ │ ├── TextEdit.cc
│ │ ├── TextEdit.h
│ │ ├── ToggleButtonControl.cc
│ │ ├── ToggleButtonControl.h
│ │ ├── ToggleTool.cc
│ │ ├── ToggleTool.h
│ │ ├── ToolBar.cc
│ │ ├── ToolBar.h
│ │ ├── ToolBarButton.cc
│ │ ├── ToolBarButton.h
│ │ ├── annotation-dialog.cc
│ │ ├── annotation-dialog.h
│ │ ├── annotation-dialog.ui
│ │ ├── gl-select.cc
│ │ ├── gl-select.h
│ │ ├── module.mk
│ │ ├── qopengl-functions.h
│ │ ├── qt-graphics-toolkit.cc
│ │ └── qt-graphics-toolkit.h
│ ├── kb-layouts/
│ │ ├── default.keytab
│ │ ├── linux.keytab
│ │ └── vt420pc.keytab
│ ├── languages/
│ │ ├── ast_ES.ts
│ │ ├── be_BY.ts
│ │ ├── build_ts/
│ │ │ ├── README.md
│ │ │ ├── octave-qsci/
│ │ │ │ ├── Qsci/
│ │ │ │ │ ├── qsciabstractapis.h
│ │ │ │ │ ├── qsciapis.h
│ │ │ │ │ ├── qscicommand.h
│ │ │ │ │ ├── qscicommandset.h
│ │ │ │ │ ├── qscidocument.h
│ │ │ │ │ ├── qsciglobal.h
│ │ │ │ │ ├── qscilexer.h
│ │ │ │ │ ├── qscilexeravs.h
│ │ │ │ │ ├── qscilexerbash.h
│ │ │ │ │ ├── qscilexerbatch.h
│ │ │ │ │ ├── qscilexercmake.h
│ │ │ │ │ ├── qscilexercoffeescript.h
│ │ │ │ │ ├── qscilexercpp.h
│ │ │ │ │ ├── qscilexercsharp.h
│ │ │ │ │ ├── qscilexercss.h
│ │ │ │ │ ├── qscilexercustom.h
│ │ │ │ │ ├── qscilexerd.h
│ │ │ │ │ ├── qscilexerdiff.h
│ │ │ │ │ ├── qscilexeredifact.h
│ │ │ │ │ ├── qscilexerfortran.h
│ │ │ │ │ ├── qscilexerfortran77.h
│ │ │ │ │ ├── qscilexerhtml.h
│ │ │ │ │ ├── qscilexeridl.h
│ │ │ │ │ ├── qscilexerjava.h
│ │ │ │ │ ├── qscilexerjavascript.h
│ │ │ │ │ ├── qscilexerjson.h
│ │ │ │ │ ├── qscilexerlua.h
│ │ │ │ │ ├── qscilexermakefile.h
│ │ │ │ │ ├── qscilexermarkdown.h
│ │ │ │ │ ├── qscilexermatlab.h
│ │ │ │ │ ├── qscilexeroctave.h
│ │ │ │ │ ├── qscilexerpascal.h
│ │ │ │ │ ├── qscilexerperl.h
│ │ │ │ │ ├── qscilexerpo.h
│ │ │ │ │ ├── qscilexerpostscript.h
│ │ │ │ │ ├── qscilexerpov.h
│ │ │ │ │ ├── qscilexerproperties.h
│ │ │ │ │ ├── qscilexerpython.h
│ │ │ │ │ ├── qscilexerruby.h
│ │ │ │ │ ├── qscilexerspice.h
│ │ │ │ │ ├── qscilexersql.h
│ │ │ │ │ ├── qscilexertcl.h
│ │ │ │ │ ├── qscilexertex.h
│ │ │ │ │ ├── qscilexerverilog.h
│ │ │ │ │ ├── qscilexervhdl.h
│ │ │ │ │ ├── qscilexerxml.h
│ │ │ │ │ ├── qscilexeryaml.h
│ │ │ │ │ ├── qscimacro.h
│ │ │ │ │ ├── qsciprinter.h
│ │ │ │ │ ├── qsciscintilla.h
│ │ │ │ │ ├── qsciscintillabase.h
│ │ │ │ │ ├── qscistyle.h
│ │ │ │ │ └── qscistyledtext.h
│ │ │ │ ├── qscilexer.cpp
│ │ │ │ ├── qscilexerbash.cpp
│ │ │ │ ├── qscilexerbatch.cpp
│ │ │ │ ├── qscilexercpp.cpp
│ │ │ │ ├── qscilexerdiff.cpp
│ │ │ │ ├── qscilexermatlab.cpp
│ │ │ │ ├── qscilexeroctave.cpp
│ │ │ │ ├── qscilexerperl.cpp
│ │ │ │ ├── qsciscintilla.cpp
│ │ │ │ └── qsciscintillabase.cpp
│ │ │ ├── octave-qt/
│ │ │ │ ├── qabstractpagesetupdialog.cpp
│ │ │ │ ├── qabstractprintdialog.cpp
│ │ │ │ ├── qcolordialog.cpp
│ │ │ │ ├── qcolordialog_symbian.cpp
│ │ │ │ ├── qdialog.cpp
│ │ │ │ ├── qdialogbuttonbox.cpp
│ │ │ │ ├── qdialogsbinarycompat_win.cpp
│ │ │ │ ├── qerrormessage.cpp
│ │ │ │ ├── qfiledialog.cpp
│ │ │ │ ├── qfiledialog_symbian.cpp
│ │ │ │ ├── qfiledialog_win.cpp
│ │ │ │ ├── qfileinfogatherer.cpp
│ │ │ │ ├── qfilesystemmodel.cpp
│ │ │ │ ├── qfontdialog.cpp
│ │ │ │ ├── qhelpsearchquerywidget.cpp
│ │ │ │ ├── qinputdialog.cpp
│ │ │ │ ├── qmessagebox.cpp
│ │ │ │ ├── qpagesetupdialog.cpp
│ │ │ │ ├── qpagesetupdialog_unix.cpp
│ │ │ │ ├── qpagesetupdialog_win.cpp
│ │ │ │ ├── qplatformtheme.cpp
│ │ │ │ ├── qprintdialog_qws.cpp
│ │ │ │ ├── qprintdialog_unix.cpp
│ │ │ │ └── qprintdialog_win.cpp
│ │ │ ├── update_external_sources
│ │ │ └── update_ts_files
│ │ ├── ca_ES.ts
│ │ ├── de_DE.ts
│ │ ├── en_US.ts
│ │ ├── es_ES.ts
│ │ ├── eu_ES.ts
│ │ ├── fr_FR.ts
│ │ ├── hu_HU.ts
│ │ ├── it_IT.ts
│ │ ├── ja_JP.ts
│ │ ├── lt_LT.ts
│ │ ├── nl_NL.ts
│ │ ├── pt_BR.ts
│ │ ├── pt_PT.ts
│ │ ├── ru_RU.ts
│ │ ├── sv_SE.ts
│ │ ├── tr_TR.ts
│ │ ├── translators
│ │ ├── uk_UA.ts
│ │ └── zh_CN.ts
│ ├── liboctgui-build-info.h
│ ├── liboctgui-build-info.in.cc
│ ├── module.mk
│ ├── qterminal/
│ │ ├── libqterminal/
│ │ │ ├── LineFont.src
│ │ │ ├── QTerminal.cc
│ │ │ ├── QTerminal.h
│ │ │ ├── README
│ │ │ ├── default.keytab
│ │ │ ├── kb-layouts/
│ │ │ │ ├── default.keytab
│ │ │ │ ├── linux.keytab
│ │ │ │ └── vt420pc.keytab
│ │ │ ├── unix/
│ │ │ │ ├── BlockArray.cpp
│ │ │ │ ├── BlockArray.h
│ │ │ │ ├── Character.h
│ │ │ │ ├── CharacterColor.h
│ │ │ │ ├── Emulation.cpp
│ │ │ │ ├── Emulation.h
│ │ │ │ ├── ExtendedDefaultTranslator.h
│ │ │ │ ├── ExtendedDefaultTranslatorMac.h
│ │ │ │ ├── Filter.cpp
│ │ │ │ ├── Filter.h
│ │ │ │ ├── History.cpp
│ │ │ │ ├── History.h
│ │ │ │ ├── KeyboardTranslator.cpp
│ │ │ │ ├── KeyboardTranslator.h
│ │ │ │ ├── QUnixTerminalImpl.cpp
│ │ │ │ ├── QUnixTerminalImpl.h
│ │ │ │ ├── Screen.cpp
│ │ │ │ ├── Screen.h
│ │ │ │ ├── ScreenWindow.cpp
│ │ │ │ ├── ScreenWindow.h
│ │ │ │ ├── SelfListener.cpp
│ │ │ │ ├── SelfListener.h
│ │ │ │ ├── TerminalCharacterDecoder.cpp
│ │ │ │ ├── TerminalCharacterDecoder.h
│ │ │ │ ├── TerminalModel.cpp
│ │ │ │ ├── TerminalModel.h
│ │ │ │ ├── TerminalView.cpp
│ │ │ │ ├── TerminalView.h
│ │ │ │ ├── Vt102Emulation.cpp
│ │ │ │ ├── Vt102Emulation.h
│ │ │ │ ├── konsole_wcwidth.cpp
│ │ │ │ ├── konsole_wcwidth.h
│ │ │ │ ├── kpty.cpp
│ │ │ │ ├── kpty.h
│ │ │ │ └── kpty_p.h
│ │ │ └── win32/
│ │ │ ├── QTerminalColors.cpp
│ │ │ ├── QTerminalColors.h
│ │ │ ├── QWinTerminalImpl.cpp
│ │ │ └── QWinTerminalImpl.h
│ │ ├── module.mk
│ │ ├── msvc.pri
│ │ └── qterminal/
│ │ ├── README
│ │ └── main.cpp
│ └── src/
│ ├── color-picker.cc
│ ├── color-picker.h
│ ├── command-widget.cc
│ ├── command-widget.h
│ ├── community-news.cc
│ ├── community-news.h
│ ├── console-lexer.cc
│ ├── console-lexer.h
│ ├── dialog.cc
│ ├── dialog.h
│ ├── documentation-bookmarks.cc
│ ├── documentation-bookmarks.h
│ ├── documentation-dock-widget.cc
│ ├── documentation-dock-widget.h
│ ├── documentation.cc
│ ├── documentation.h
│ ├── dw-main-window.cc
│ ├── dw-main-window.h
│ ├── external-editor-interface.cc
│ ├── external-editor-interface.h
│ ├── files-dock-widget.cc
│ ├── files-dock-widget.h
│ ├── find-files-dialog.cc
│ ├── find-files-dialog.h
│ ├── find-files-model.cc
│ ├── find-files-model.h
│ ├── find-widget.cc
│ ├── find-widget.h
│ ├── graphics-init.cc
│ ├── graphics-init.h
│ ├── gui-preferences-all.h
│ ├── gui-preferences-cs.cc
│ ├── gui-preferences-cs.h
│ ├── gui-preferences-dc.cc
│ ├── gui-preferences-dc.h
│ ├── gui-preferences-dw.cc
│ ├── gui-preferences-dw.h
│ ├── gui-preferences-ed.cc
│ ├── gui-preferences-ed.h
│ ├── gui-preferences-fb.cc
│ ├── gui-preferences-fb.h
│ ├── gui-preferences-ff.cc
│ ├── gui-preferences-ff.h
│ ├── gui-preferences-global.cc
│ ├── gui-preferences-global.h
│ ├── gui-preferences-gp.cc
│ ├── gui-preferences-gp.h
│ ├── gui-preferences-hw.cc
│ ├── gui-preferences-hw.h
│ ├── gui-preferences-mw.cc
│ ├── gui-preferences-mw.h
│ ├── gui-preferences-nr.cc
│ ├── gui-preferences-nr.h
│ ├── gui-preferences-pd.cc
│ ├── gui-preferences-pd.h
│ ├── gui-preferences-sc.cc
│ ├── gui-preferences-sc.h
│ ├── gui-preferences-sd.cc
│ ├── gui-preferences-sd.h
│ ├── gui-preferences-ve.cc
│ ├── gui-preferences-ve.h
│ ├── gui-preferences-ws.cc
│ ├── gui-preferences-ws.h
│ ├── gui-preferences.cc
│ ├── gui-preferences.h
│ ├── gui-settings.cc
│ ├── gui-settings.h
│ ├── gui-utils.cc
│ ├── gui-utils.h
│ ├── history-dock-widget.cc
│ ├── history-dock-widget.h
│ ├── icons/
│ │ ├── license.md
│ │ ├── octave/
│ │ │ └── index.theme
│ │ └── tango/
│ │ └── index.theme
│ ├── interpreter-qobject.cc
│ ├── interpreter-qobject.h
│ ├── led-indicator.cc
│ ├── led-indicator.h
│ ├── m-editor/
│ │ ├── file-editor-interface.h
│ │ ├── file-editor-tab.cc
│ │ ├── file-editor-tab.h
│ │ ├── file-editor.cc
│ │ ├── file-editor.h
│ │ ├── find-dialog.cc
│ │ ├── find-dialog.h
│ │ ├── marker.cc
│ │ ├── marker.h
│ │ ├── octave-qscintilla.cc
│ │ ├── octave-qscintilla.h
│ │ ├── octave-txt-lexer.cc
│ │ └── octave-txt-lexer.h
│ ├── main-window.cc
│ ├── main-window.h
│ ├── module.mk
│ ├── news-reader.cc
│ ├── news-reader.h
│ ├── octave-dock-widget.cc
│ ├── octave-dock-widget.h
│ ├── octave-qobject.cc
│ ├── octave-qobject.h
│ ├── octave-qt-features.h
│ ├── qt-application.cc
│ ├── qt-application.h
│ ├── qt-interpreter-events.cc
│ ├── qt-interpreter-events.h
│ ├── qt-utils.h
│ ├── release-notes.cc
│ ├── release-notes.h
│ ├── resource.qrc
│ ├── self-listener.cc
│ ├── self-listener.h
│ ├── set-path-dialog.cc
│ ├── set-path-dialog.h
│ ├── set-path-model.cc
│ ├── set-path-model.h
│ ├── settings-dialog.cc
│ ├── settings-dialog.h
│ ├── settings-dialog.ui
│ ├── shortcuts-tree-widget.cc
│ ├── shortcuts-tree-widget.h
│ ├── tab-bar.cc
│ ├── tab-bar.h
│ ├── terminal-dock-widget.cc
│ ├── terminal-dock-widget.h
│ ├── variable-editor-model.cc
│ ├── variable-editor-model.h
│ ├── variable-editor.cc
│ ├── variable-editor.h
│ ├── welcome-wizard.cc
│ ├── welcome-wizard.h
│ ├── workspace-model.cc
│ ├── workspace-model.h
│ ├── workspace-view.cc
│ └── workspace-view.h
├── libinterp/
│ ├── build-env.h
│ ├── build-env.in.cc
│ ├── corefcn/
│ │ ├── Cell.cc
│ │ ├── Cell.h
│ │ ├── __magick_read__.cc
│ │ ├── auto-shlib.cc
│ │ ├── auto-shlib.h
│ │ ├── base-text-renderer.cc
│ │ ├── base-text-renderer.h
│ │ ├── c-file-ptr-stream.cc
│ │ ├── c-file-ptr-stream.h
│ │ ├── call-stack.cc
│ │ ├── call-stack.h
│ │ ├── cdisplay.c
│ │ ├── cdisplay.h
│ │ ├── cmd-edit.cc
│ │ ├── cmd-edit.h
│ │ ├── cmd-hist.cc
│ │ ├── cmd-hist.h
│ │ ├── coct-hdf5-types.c
│ │ ├── data.cc
│ │ ├── data.h
│ │ ├── debug.cc
│ │ ├── default-defs.in.h
│ │ ├── defaults.cc
│ │ ├── defaults.h
│ │ ├── defun-dld.h
│ │ ├── defun-int.h
│ │ ├── defun.cc
│ │ ├── defun.h
│ │ ├── display.cc
│ │ ├── display.h
│ │ ├── dynamic-ld.cc
│ │ ├── dynamic-ld.h
│ │ ├── environment.cc
│ │ ├── environment.h
│ │ ├── error.cc
│ │ ├── error.h
│ │ ├── errwarn.cc
│ │ ├── errwarn.h
│ │ ├── event-manager.cc
│ │ ├── event-manager.h
│ │ ├── event-queue.cc
│ │ ├── event-queue.h
│ │ ├── fcn-info.cc
│ │ ├── fcn-info.h
│ │ ├── file-io.cc
│ │ ├── file-io.h
│ │ ├── ft-text-renderer.cc
│ │ ├── ft-text-renderer.h
│ │ ├── genprops.awk
│ │ ├── gh-manager.cc
│ │ ├── gh-manager.h
│ │ ├── gl-render.cc
│ │ ├── gl-render.h
│ │ ├── gl2ps-print.cc
│ │ ├── gl2ps-print.h
│ │ ├── graphics-handle.h
│ │ ├── graphics-toolkit.cc
│ │ ├── graphics-toolkit.h
│ │ ├── graphics-utils.cc
│ │ ├── graphics-utils.h
│ │ ├── graphics.cc
│ │ ├── graphics.in.h
│ │ ├── gtk-manager.cc
│ │ ├── gtk-manager.h
│ │ ├── gzfstream.cc
│ │ ├── gzfstream.h
│ │ ├── help.cc
│ │ ├── help.h
│ │ ├── hook-fcn.cc
│ │ ├── hook-fcn.h
│ │ ├── input.cc
│ │ ├── input.h
│ │ ├── interpreter-private.cc
│ │ ├── interpreter-private.h
│ │ ├── interpreter.cc
│ │ ├── interpreter.h
│ │ ├── latex-text-renderer.cc
│ │ ├── latex-text-renderer.h
│ │ ├── load-path.cc
│ │ ├── load-path.h
│ │ ├── load-save.cc
│ │ ├── load-save.h
│ │ ├── ls-ascii-helper.cc
│ │ ├── ls-ascii-helper.h
│ │ ├── ls-hdf5.cc
│ │ ├── ls-hdf5.h
│ │ ├── ls-mat-ascii.cc
│ │ ├── ls-mat-ascii.h
│ │ ├── ls-mat-subsys.cc
│ │ ├── ls-mat-subsys.h
│ │ ├── ls-mat4.cc
│ │ ├── ls-mat4.h
│ │ ├── ls-mat5.cc
│ │ ├── ls-mat5.h
│ │ ├── ls-oct-binary.cc
│ │ ├── ls-oct-binary.h
│ │ ├── ls-oct-text.cc
│ │ ├── ls-oct-text.h
│ │ ├── ls-utils.cc
│ │ ├── ls-utils.h
│ │ ├── mex-private.h
│ │ ├── mk-mxtypes-h.in.sh
│ │ ├── module.mk
│ │ ├── mx-type-traits.h
│ │ ├── mxarray.cc
│ │ ├── mxarray.h
│ │ ├── mxtypes.in.h
│ │ ├── numeric/
│ │ │ ├── __betainc__.cc
│ │ │ ├── __contourc__.cc
│ │ │ ├── __dsearchn__.cc
│ │ │ ├── __eigs__.cc
│ │ │ ├── __expint__.cc
│ │ │ ├── __gammainc__.cc
│ │ │ ├── __ichol__.cc
│ │ │ ├── __ilu__.cc
│ │ │ ├── __isprimelarge__.cc
│ │ │ ├── __lin_interpn__.cc
│ │ │ ├── __pchip_deriv__.cc
│ │ │ ├── __qp__.cc
│ │ │ ├── amd.cc
│ │ │ ├── balance.cc
│ │ │ ├── besselj.cc
│ │ │ ├── bitfcns.cc
│ │ │ ├── ccolamd.cc
│ │ │ ├── chol.cc
│ │ │ ├── colamd.cc
│ │ │ ├── colloc.cc
│ │ │ ├── conv2.cc
│ │ │ ├── daspk.cc
│ │ │ ├── dasrt.cc
│ │ │ ├── dassl.cc
│ │ │ ├── det.cc
│ │ │ ├── dmperm.cc
│ │ │ ├── dot.cc
│ │ │ ├── eig.cc
│ │ │ ├── ellipj.cc
│ │ │ ├── fft.cc
│ │ │ ├── fft2.cc
│ │ │ ├── fftn.cc
│ │ │ ├── filter.cc
│ │ │ ├── gcd.cc
│ │ │ ├── givens.cc
│ │ │ ├── gsvd.cc
│ │ │ ├── hash.cc
│ │ │ ├── hess.cc
│ │ │ ├── hex2num.cc
│ │ │ ├── inv.cc
│ │ │ ├── kron.cc
│ │ │ ├── lsode.cc
│ │ │ ├── lu.cc
│ │ │ ├── mappers.cc
│ │ │ ├── max.cc
│ │ │ ├── mgorth.cc
│ │ │ ├── module.mk
│ │ │ ├── ordqz.cc
│ │ │ ├── ordschur.cc
│ │ │ ├── perms.cc
│ │ │ ├── pinv.cc
│ │ │ ├── pow2.cc
│ │ │ ├── psi.cc
│ │ │ ├── qr.cc
│ │ │ ├── quad.cc
│ │ │ ├── quadcc.cc
│ │ │ ├── qz.cc
│ │ │ ├── rand.cc
│ │ │ ├── rcond.cc
│ │ │ ├── schur.cc
│ │ │ ├── sparse.cc
│ │ │ ├── spparms.cc
│ │ │ ├── sqrtm.cc
│ │ │ ├── stream-euler.cc
│ │ │ ├── svd.cc
│ │ │ ├── sylvester.cc
│ │ │ ├── symbfact.cc
│ │ │ ├── symrcm.cc
│ │ │ ├── trexc.cc
│ │ │ └── tsearch.cc
│ │ ├── oct-errno.h
│ │ ├── oct-fstrm.cc
│ │ ├── oct-fstrm.h
│ │ ├── oct-handle.h
│ │ ├── oct-hdf5-types.cc
│ │ ├── oct-hdf5-types.h
│ │ ├── oct-hdf5.h
│ │ ├── oct-hist.cc
│ │ ├── oct-hist.h
│ │ ├── oct-iostrm.cc
│ │ ├── oct-iostrm.h
│ │ ├── oct-map.cc
│ │ ├── oct-map.h
│ │ ├── oct-opengl.h
│ │ ├── oct-prcstrm.cc
│ │ ├── oct-prcstrm.h
│ │ ├── oct-procbuf.cc
│ │ ├── oct-procbuf.h
│ │ ├── oct-process.cc
│ │ ├── oct-process.h
│ │ ├── oct-rl-edit.c
│ │ ├── oct-rl-edit.h
│ │ ├── oct-rl-hist.c
│ │ ├── oct-rl-hist.h
│ │ ├── oct-stdstrm.h
│ │ ├── oct-stream.cc
│ │ ├── oct-stream.h
│ │ ├── oct-strstrm.cc
│ │ ├── oct-strstrm.h
│ │ ├── oct-tex-lexer.in.ll
│ │ ├── oct-tex-parser.yy
│ │ ├── oct-tex-symbols.in
│ │ ├── oct.h
│ │ ├── octave-default-image.h
│ │ ├── pager.cc
│ │ ├── pager.h
│ │ ├── panic.cc
│ │ ├── panic.h
│ │ ├── pr-flt-fmt.cc
│ │ ├── pr-flt-fmt.h
│ │ ├── pr-output.cc
│ │ ├── pr-output.h
│ │ ├── procstream.cc
│ │ ├── procstream.h
│ │ ├── sighandlers.cc
│ │ ├── sighandlers.h
│ │ ├── sparse-xdiv.cc
│ │ ├── sparse-xdiv.h
│ │ ├── sparse-xpow.cc
│ │ ├── sparse-xpow.h
│ │ ├── stack-frame.cc
│ │ ├── stack-frame.h
│ │ ├── syminfo.cc
│ │ ├── syminfo.h
│ │ ├── symrec.cc
│ │ ├── symrec.h
│ │ ├── symscope.cc
│ │ ├── symscope.h
│ │ ├── symtab.cc
│ │ ├── symtab.h
│ │ ├── sysdep.cc
│ │ ├── sysdep.h
│ │ ├── system/
│ │ │ ├── __ftp__.cc
│ │ │ ├── dirfns.cc
│ │ │ ├── dlmread.cc
│ │ │ ├── getgrent.cc
│ │ │ ├── getpwent.cc
│ │ │ ├── getrusage.cc
│ │ │ ├── mk-errno-list.sh
│ │ │ ├── module.mk
│ │ │ ├── nproc.cc
│ │ │ ├── oct-errno.in.cc
│ │ │ ├── syscalls.cc
│ │ │ ├── time.cc
│ │ │ └── urlwrite.cc
│ │ ├── text-engine.cc
│ │ ├── text-engine.h
│ │ ├── text-renderer.cc
│ │ ├── text-renderer.h
│ │ ├── toplev.cc
│ │ ├── url-handle-manager.cc
│ │ ├── url-handle-manager.h
│ │ ├── util/
│ │ │ ├── bsxfun.cc
│ │ │ ├── cellfun.cc
│ │ │ ├── find.cc
│ │ │ ├── jsondecode.cc
│ │ │ ├── jsonencode.cc
│ │ │ ├── lookup.cc
│ │ │ ├── matrix_type.cc
│ │ │ ├── module.mk
│ │ │ ├── regexp.cc
│ │ │ ├── strfind.cc
│ │ │ ├── strfns.cc
│ │ │ ├── sub2ind.cc
│ │ │ ├── tril.cc
│ │ │ └── typecast.cc
│ │ ├── utils.cc
│ │ ├── utils.h
│ │ ├── variables.cc
│ │ ├── variables.h
│ │ ├── xdiv.cc
│ │ ├── xdiv.h
│ │ ├── xnorm.cc
│ │ ├── xnorm.h
│ │ ├── xpow.cc
│ │ └── xpow.h
│ ├── dldfcn/
│ │ ├── __delaunayn__.cc
│ │ ├── __fltk_uigetfile__.cc
│ │ ├── __glpk__.cc
│ │ ├── __init_fltk__.cc
│ │ ├── __init_gnuplot__.cc
│ │ ├── __ode15__.cc
│ │ ├── __voronoi__.cc
│ │ ├── audiodevinfo.cc
│ │ ├── audioread.cc
│ │ ├── config-module.awk
│ │ ├── config-module.sh
│ │ ├── convhulln.cc
│ │ ├── fftw.cc
│ │ ├── gzip.cc
│ │ ├── module-files
│ │ └── oct-qhull.h
│ ├── liboctinterp-build-info.h
│ ├── liboctinterp-build-info.in.cc
│ ├── mk-build-env-features.sh
│ ├── mk-builtins.pl
│ ├── mk-doc.pl
│ ├── module.mk
│ ├── octave-value/
│ │ ├── cdef-class.cc
│ │ ├── cdef-class.h
│ │ ├── cdef-fwd.h
│ │ ├── cdef-manager.cc
│ │ ├── cdef-manager.h
│ │ ├── cdef-method.cc
│ │ ├── cdef-method.h
│ │ ├── cdef-object.cc
│ │ ├── cdef-object.h
│ │ ├── cdef-package.cc
│ │ ├── cdef-package.h
│ │ ├── cdef-property.cc
│ │ ├── cdef-property.h
│ │ ├── cdef-utils.cc
│ │ ├── cdef-utils.h
│ │ ├── module.mk
│ │ ├── ov-base-diag-inst.cc
│ │ ├── ov-base-diag.cc
│ │ ├── ov-base-diag.h
│ │ ├── ov-base-int-inst.cc
│ │ ├── ov-base-int.cc
│ │ ├── ov-base-int.h
│ │ ├── ov-base-mat-inst.cc
│ │ ├── ov-base-mat.cc
│ │ ├── ov-base-mat.h
│ │ ├── ov-base-scalar-inst.cc
│ │ ├── ov-base-scalar.cc
│ │ ├── ov-base-scalar.h
│ │ ├── ov-base-sparse-inst.cc
│ │ ├── ov-base-sparse.cc
│ │ ├── ov-base-sparse.h
│ │ ├── ov-base.cc
│ │ ├── ov-base.h
│ │ ├── ov-bool-mat.cc
│ │ ├── ov-bool-mat.h
│ │ ├── ov-bool-sparse.cc
│ │ ├── ov-bool-sparse.h
│ │ ├── ov-bool.cc
│ │ ├── ov-bool.h
│ │ ├── ov-builtin.cc
│ │ ├── ov-builtin.h
│ │ ├── ov-cell.cc
│ │ ├── ov-cell.h
│ │ ├── ov-ch-mat.cc
│ │ ├── ov-ch-mat.h
│ │ ├── ov-class.cc
│ │ ├── ov-class.h
│ │ ├── ov-classdef.cc
│ │ ├── ov-classdef.h
│ │ ├── ov-colon.cc
│ │ ├── ov-colon.h
│ │ ├── ov-complex.cc
│ │ ├── ov-complex.h
│ │ ├── ov-cs-list.cc
│ │ ├── ov-cs-list.h
│ │ ├── ov-cx-diag.cc
│ │ ├── ov-cx-diag.h
│ │ ├── ov-cx-mat.cc
│ │ ├── ov-cx-mat.h
│ │ ├── ov-cx-sparse.cc
│ │ ├── ov-cx-sparse.h
│ │ ├── ov-dld-fcn.cc
│ │ ├── ov-dld-fcn.h
│ │ ├── ov-fcn-handle.cc
│ │ ├── ov-fcn-handle.h
│ │ ├── ov-fcn.cc
│ │ ├── ov-fcn.h
│ │ ├── ov-float.cc
│ │ ├── ov-float.h
│ │ ├── ov-flt-complex.cc
│ │ ├── ov-flt-complex.h
│ │ ├── ov-flt-cx-diag.cc
│ │ ├── ov-flt-cx-diag.h
│ │ ├── ov-flt-cx-mat.cc
│ │ ├── ov-flt-cx-mat.h
│ │ ├── ov-flt-re-diag.cc
│ │ ├── ov-flt-re-diag.h
│ │ ├── ov-flt-re-mat.cc
│ │ ├── ov-flt-re-mat.h
│ │ ├── ov-inline.h
│ │ ├── ov-int-traits.h
│ │ ├── ov-int16.cc
│ │ ├── ov-int16.h
│ │ ├── ov-int32.cc
│ │ ├── ov-int32.h
│ │ ├── ov-int64.cc
│ │ ├── ov-int64.h
│ │ ├── ov-int8.cc
│ │ ├── ov-int8.h
│ │ ├── ov-intx.h
│ │ ├── ov-java.cc
│ │ ├── ov-java.h
│ │ ├── ov-lazy-idx.cc
│ │ ├── ov-lazy-idx.h
│ │ ├── ov-legacy-range.cc
│ │ ├── ov-legacy-range.h
│ │ ├── ov-magic-int.cc
│ │ ├── ov-magic-int.h
│ │ ├── ov-mex-fcn.cc
│ │ ├── ov-mex-fcn.h
│ │ ├── ov-null-mat.cc
│ │ ├── ov-null-mat.h
│ │ ├── ov-oncleanup.cc
│ │ ├── ov-oncleanup.h
│ │ ├── ov-perm.cc
│ │ ├── ov-perm.h
│ │ ├── ov-range-traits.h
│ │ ├── ov-range.cc
│ │ ├── ov-range.h
│ │ ├── ov-re-diag.cc
│ │ ├── ov-re-diag.h
│ │ ├── ov-re-mat.cc
│ │ ├── ov-re-mat.h
│ │ ├── ov-re-sparse.cc
│ │ ├── ov-re-sparse.h
│ │ ├── ov-scalar.cc
│ │ ├── ov-scalar.h
│ │ ├── ov-str-mat.cc
│ │ ├── ov-str-mat.h
│ │ ├── ov-struct.cc
│ │ ├── ov-struct.h
│ │ ├── ov-typeinfo.cc
│ │ ├── ov-typeinfo.h
│ │ ├── ov-uint16.cc
│ │ ├── ov-uint16.h
│ │ ├── ov-uint32.cc
│ │ ├── ov-uint32.h
│ │ ├── ov-uint64.cc
│ │ ├── ov-uint64.h
│ │ ├── ov-uint8.cc
│ │ ├── ov-uint8.h
│ │ ├── ov-usr-fcn.cc
│ │ ├── ov-usr-fcn.h
│ │ ├── ov.cc
│ │ ├── ov.h
│ │ ├── ovl.cc
│ │ └── ovl.h
│ ├── octave.cc
│ ├── octave.h
│ ├── octinterp.in.pc
│ ├── op-kw-docs
│ ├── operators/
│ │ ├── mk-ops.sh
│ │ ├── module.mk
│ │ ├── op-b-b.cc
│ │ ├── op-b-bm.cc
│ │ ├── op-b-sbm.cc
│ │ ├── op-bm-b.cc
│ │ ├── op-bm-bm.cc
│ │ ├── op-bm-sbm.cc
│ │ ├── op-cdm-cdm.cc
│ │ ├── op-cdm-cm.cc
│ │ ├── op-cdm-cs.cc
│ │ ├── op-cdm-dm.cc
│ │ ├── op-cdm-m.cc
│ │ ├── op-cdm-s.cc
│ │ ├── op-cell.cc
│ │ ├── op-chm.cc
│ │ ├── op-class.cc
│ │ ├── op-cm-cdm.cc
│ │ ├── op-cm-cm.cc
│ │ ├── op-cm-cs.cc
│ │ ├── op-cm-dm.cc
│ │ ├── op-cm-m.cc
│ │ ├── op-cm-pm.cc
│ │ ├── op-cm-s.cc
│ │ ├── op-cm-scm.cc
│ │ ├── op-cm-sm.cc
│ │ ├── op-cs-cm.cc
│ │ ├── op-cs-cs.cc
│ │ ├── op-cs-m.cc
│ │ ├── op-cs-s.cc
│ │ ├── op-cs-scm.cc
│ │ ├── op-cs-sm.cc
│ │ ├── op-dm-cdm.cc
│ │ ├── op-dm-cm.cc
│ │ ├── op-dm-cs.cc
│ │ ├── op-dm-dm.cc
│ │ ├── op-dm-m.cc
│ │ ├── op-dm-s.cc
│ │ ├── op-dm-scm.cc
│ │ ├── op-dm-sm.cc
│ │ ├── op-dm-template.cc
│ │ ├── op-dms-template.cc
│ │ ├── op-fcdm-fcdm.cc
│ │ ├── op-fcdm-fcm.cc
│ │ ├── op-fcdm-fcs.cc
│ │ ├── op-fcdm-fdm.cc
│ │ ├── op-fcdm-fm.cc
│ │ ├── op-fcdm-fs.cc
│ │ ├── op-fcm-fcdm.cc
│ │ ├── op-fcm-fcm.cc
│ │ ├── op-fcm-fcs.cc
│ │ ├── op-fcm-fdm.cc
│ │ ├── op-fcm-fm.cc
│ │ ├── op-fcm-fs.cc
│ │ ├── op-fcm-pm.cc
│ │ ├── op-fcn.cc
│ │ ├── op-fcs-fcm.cc
│ │ ├── op-fcs-fcs.cc
│ │ ├── op-fcs-fm.cc
│ │ ├── op-fcs-fs.cc
│ │ ├── op-fdm-fcdm.cc
│ │ ├── op-fdm-fcm.cc
│ │ ├── op-fdm-fcs.cc
│ │ ├── op-fdm-fdm.cc
│ │ ├── op-fdm-fm.cc
│ │ ├── op-fdm-fs.cc
│ │ ├── op-fm-fcdm.cc
│ │ ├── op-fm-fcm.cc
│ │ ├── op-fm-fcs.cc
│ │ ├── op-fm-fdm.cc
│ │ ├── op-fm-fm.cc
│ │ ├── op-fm-fs.cc
│ │ ├── op-fm-pm.cc
│ │ ├── op-fs-fcm.cc
│ │ ├── op-fs-fcs.cc
│ │ ├── op-fs-fm.cc
│ │ ├── op-fs-fs.cc
│ │ ├── op-i16-i16.cc
│ │ ├── op-i32-i32.cc
│ │ ├── op-i64-i64.cc
│ │ ├── op-i8-i8.cc
│ │ ├── op-int-concat.cc
│ │ ├── op-int.h
│ │ ├── op-m-cdm.cc
│ │ ├── op-m-cm.cc
│ │ ├── op-m-cs.cc
│ │ ├── op-m-dm.cc
│ │ ├── op-m-m.cc
│ │ ├── op-m-pm.cc
│ │ ├── op-m-s.cc
│ │ ├── op-m-scm.cc
│ │ ├── op-m-sm.cc
│ │ ├── op-mi.cc
│ │ ├── op-pm-cm.cc
│ │ ├── op-pm-fcm.cc
│ │ ├── op-pm-fm.cc
│ │ ├── op-pm-m.cc
│ │ ├── op-pm-pm.cc
│ │ ├── op-pm-scm.cc
│ │ ├── op-pm-sm.cc
│ │ ├── op-pm-template.cc
│ │ ├── op-range.cc
│ │ ├── op-s-cm.cc
│ │ ├── op-s-cs.cc
│ │ ├── op-s-m.cc
│ │ ├── op-s-s.cc
│ │ ├── op-s-scm.cc
│ │ ├── op-s-sm.cc
│ │ ├── op-sbm-b.cc
│ │ ├── op-sbm-bm.cc
│ │ ├── op-sbm-sbm.cc
│ │ ├── op-scm-cm.cc
│ │ ├── op-scm-cs.cc
│ │ ├── op-scm-m.cc
│ │ ├── op-scm-s.cc
│ │ ├── op-scm-scm.cc
│ │ ├── op-scm-sm.cc
│ │ ├── op-sm-cm.cc
│ │ ├── op-sm-cs.cc
│ │ ├── op-sm-m.cc
│ │ ├── op-sm-s.cc
│ │ ├── op-sm-scm.cc
│ │ ├── op-sm-sm.cc
│ │ ├── op-str-m.cc
│ │ ├── op-str-s.cc
│ │ ├── op-str-str.cc
│ │ ├── op-struct.cc
│ │ ├── op-ui16-ui16.cc
│ │ ├── op-ui32-ui32.cc
│ │ ├── op-ui64-ui64.cc
│ │ ├── op-ui8-ui8.cc
│ │ └── ops.h
│ ├── options.h
│ ├── parse-tree/
│ │ ├── anon-fcn-validator.cc
│ │ ├── anon-fcn-validator.h
│ │ ├── bp-table.cc
│ │ ├── bp-table.h
│ │ ├── comment-list.cc
│ │ ├── comment-list.h
│ │ ├── filepos.h
│ │ ├── lex.h
│ │ ├── lex.ll
│ │ ├── module.mk
│ │ ├── oct-lvalue.cc
│ │ ├── oct-lvalue.h
│ │ ├── oct-parse.yy
│ │ ├── octave.gperf
│ │ ├── parse.h
│ │ ├── profiler.cc
│ │ ├── profiler.h
│ │ ├── pt-all.h
│ │ ├── pt-anon-scopes.cc
│ │ ├── pt-anon-scopes.h
│ │ ├── pt-arg-list.cc
│ │ ├── pt-arg-list.h
│ │ ├── pt-args-block.cc
│ │ ├── pt-args-block.h
│ │ ├── pt-array-list.cc
│ │ ├── pt-array-list.h
│ │ ├── pt-assign.cc
│ │ ├── pt-assign.h
│ │ ├── pt-binop.cc
│ │ ├── pt-binop.h
│ │ ├── pt-bp.cc
│ │ ├── pt-bp.h
│ │ ├── pt-cbinop.cc
│ │ ├── pt-cbinop.h
│ │ ├── pt-cell.cc
│ │ ├── pt-cell.h
│ │ ├── pt-check.cc
│ │ ├── pt-check.h
│ │ ├── pt-classdef.cc
│ │ ├── pt-classdef.h
│ │ ├── pt-cmd.h
│ │ ├── pt-colon.cc
│ │ ├── pt-colon.h
│ │ ├── pt-const.cc
│ │ ├── pt-const.h
│ │ ├── pt-decl.cc
│ │ ├── pt-decl.h
│ │ ├── pt-delimiter-list.h
│ │ ├── pt-eval.cc
│ │ ├── pt-eval.h
│ │ ├── pt-except.cc
│ │ ├── pt-except.h
│ │ ├── pt-exp.cc
│ │ ├── pt-exp.h
│ │ ├── pt-fcn-handle.cc
│ │ ├── pt-fcn-handle.h
│ │ ├── pt-id.cc
│ │ ├── pt-id.h
│ │ ├── pt-idx.cc
│ │ ├── pt-idx.h
│ │ ├── pt-jump.h
│ │ ├── pt-loop.cc
│ │ ├── pt-loop.h
│ │ ├── pt-mat.cc
│ │ ├── pt-mat.h
│ │ ├── pt-misc.cc
│ │ ├── pt-misc.h
│ │ ├── pt-pr-code.cc
│ │ ├── pt-pr-code.h
│ │ ├── pt-select.cc
│ │ ├── pt-select.h
│ │ ├── pt-spmd.cc
│ │ ├── pt-spmd.h
│ │ ├── pt-stmt.cc
│ │ ├── pt-stmt.h
│ │ ├── pt-tm-const.cc
│ │ ├── pt-tm-const.h
│ │ ├── pt-unop.cc
│ │ ├── pt-unop.h
│ │ ├── pt-walk.cc
│ │ ├── pt-walk.h
│ │ ├── pt.cc
│ │ ├── pt.h
│ │ ├── separator-list.h
│ │ └── token.h
│ ├── template-inst/
│ │ ├── Array-tc.cc
│ │ ├── Array.cc
│ │ ├── Array.h
│ │ └── module.mk
│ └── usage.h
├── libmex/
│ ├── liboctmex-build-info.h
│ ├── liboctmex-build-info.in.cc
│ ├── mex.cc
│ ├── mex.h
│ ├── mexproto.h
│ ├── module.mk
│ └── octmex.in.pc
├── liboctave/
│ ├── array/
│ │ ├── Array-C.cc
│ │ ├── Array-b.cc
│ │ ├── Array-base.cc
│ │ ├── Array-base.h
│ │ ├── Array-ch.cc
│ │ ├── Array-d.cc
│ │ ├── Array-f.cc
│ │ ├── Array-fC.cc
│ │ ├── Array-fwd.h
│ │ ├── Array-i.cc
│ │ ├── Array-idx-vec.cc
│ │ ├── Array-oct.cc
│ │ ├── Array-oct.h
│ │ ├── Array-s.cc
│ │ ├── Array-str.cc
│ │ ├── Array-util.cc
│ │ ├── Array-util.h
│ │ ├── Array-voidp.cc
│ │ ├── CColVector.cc
│ │ ├── CColVector.h
│ │ ├── CDiagMatrix.cc
│ │ ├── CDiagMatrix.h
│ │ ├── CMatrix.cc
│ │ ├── CMatrix.h
│ │ ├── CNDArray.cc
│ │ ├── CNDArray.h
│ │ ├── CRowVector.cc
│ │ ├── CRowVector.h
│ │ ├── CSparse.cc
│ │ ├── CSparse.h
│ │ ├── DiagArray2.cc
│ │ ├── DiagArray2.h
│ │ ├── MArray-C.cc
│ │ ├── MArray-d.cc
│ │ ├── MArray-f.cc
│ │ ├── MArray-fC.cc
│ │ ├── MArray-fwd.h
│ │ ├── MArray-i.cc
│ │ ├── MArray-s.cc
│ │ ├── MArray.cc
│ │ ├── MArray.h
│ │ ├── MDiagArray2.cc
│ │ ├── MDiagArray2.h
│ │ ├── MSparse-C.cc
│ │ ├── MSparse-d.cc
│ │ ├── MSparse.cc
│ │ ├── MSparse.h
│ │ ├── Matrix.h
│ │ ├── MatrixType.cc
│ │ ├── MatrixType.h
│ │ ├── PermMatrix.cc
│ │ ├── PermMatrix.h
│ │ ├── Range.cc
│ │ ├── Range.h
│ │ ├── Sparse-C.cc
│ │ ├── Sparse-b.cc
│ │ ├── Sparse-d.cc
│ │ ├── Sparse-fwd.h
│ │ ├── Sparse.cc
│ │ ├── Sparse.h
│ │ ├── boolMatrix.cc
│ │ ├── boolMatrix.h
│ │ ├── boolNDArray.cc
│ │ ├── boolNDArray.h
│ │ ├── boolSparse.cc
│ │ ├── boolSparse.h
│ │ ├── chMatrix.cc
│ │ ├── chMatrix.h
│ │ ├── chNDArray.cc
│ │ ├── chNDArray.h
│ │ ├── dColVector.cc
│ │ ├── dColVector.h
│ │ ├── dDiagMatrix.cc
│ │ ├── dDiagMatrix.h
│ │ ├── dMatrix.cc
│ │ ├── dMatrix.h
│ │ ├── dNDArray.cc
│ │ ├── dNDArray.h
│ │ ├── dRowVector.cc
│ │ ├── dRowVector.h
│ │ ├── dSparse.cc
│ │ ├── dSparse.h
│ │ ├── dim-vector.cc
│ │ ├── dim-vector.h
│ │ ├── fCColVector.cc
│ │ ├── fCColVector.h
│ │ ├── fCDiagMatrix.cc
│ │ ├── fCDiagMatrix.h
│ │ ├── fCMatrix.cc
│ │ ├── fCMatrix.h
│ │ ├── fCNDArray.cc
│ │ ├── fCNDArray.h
│ │ ├── fCRowVector.cc
│ │ ├── fCRowVector.h
│ │ ├── fColVector.cc
│ │ ├── fColVector.h
│ │ ├── fDiagMatrix.cc
│ │ ├── fDiagMatrix.h
│ │ ├── fMatrix.cc
│ │ ├── fMatrix.h
│ │ ├── fNDArray.cc
│ │ ├── fNDArray.h
│ │ ├── fRowVector.cc
│ │ ├── fRowVector.h
│ │ ├── idx-vector.cc
│ │ ├── idx-vector.h
│ │ ├── int16NDArray.cc
│ │ ├── int16NDArray.h
│ │ ├── int32NDArray.cc
│ │ ├── int32NDArray.h
│ │ ├── int64NDArray.cc
│ │ ├── int64NDArray.h
│ │ ├── int8NDArray.cc
│ │ ├── int8NDArray.h
│ │ ├── intNDArray-fwd.h
│ │ ├── intNDArray.cc
│ │ ├── intNDArray.h
│ │ ├── module.mk
│ │ ├── mx-fwd.h
│ │ ├── range-fwd.h
│ │ ├── uint16NDArray.cc
│ │ ├── uint16NDArray.h
│ │ ├── uint32NDArray.cc
│ │ ├── uint32NDArray.h
│ │ ├── uint64NDArray.cc
│ │ ├── uint64NDArray.h
│ │ ├── uint8NDArray.cc
│ │ └── uint8NDArray.h
│ ├── external/
│ │ ├── Faddeeva/
│ │ │ ├── Faddeeva.cc
│ │ │ ├── Faddeeva.hh
│ │ │ └── module.mk
│ │ ├── amos/
│ │ │ ├── README
│ │ │ ├── cacai.f
│ │ │ ├── cacon.f
│ │ │ ├── cairy.f
│ │ │ ├── casyi.f
│ │ │ ├── cbesh.f
│ │ │ ├── cbesi.f
│ │ │ ├── cbesj.f
│ │ │ ├── cbesk.f
│ │ │ ├── cbesy.f
│ │ │ ├── cbinu.f
│ │ │ ├── cbiry.f
│ │ │ ├── cbknu.f
│ │ │ ├── cbuni.f
│ │ │ ├── cbunk.f
│ │ │ ├── ckscl.f
│ │ │ ├── cmlri.f
│ │ │ ├── crati.f
│ │ │ ├── cs1s2.f
│ │ │ ├── cseri.f
│ │ │ ├── cshch.f
│ │ │ ├── cuchk.f
│ │ │ ├── cunhj.f
│ │ │ ├── cuni1.f
│ │ │ ├── cuni2.f
│ │ │ ├── cunik.f
│ │ │ ├── cunk1.f
│ │ │ ├── cunk2.f
│ │ │ ├── cuoik.f
│ │ │ ├── cwrsk.f
│ │ │ ├── dgamln.f
│ │ │ ├── gamln.f
│ │ │ ├── module.mk
│ │ │ ├── xzabs.f
│ │ │ ├── xzexp.f
│ │ │ ├── xzlog.f
│ │ │ ├── xzsqrt.f
│ │ │ ├── zacai.f
│ │ │ ├── zacon.f
│ │ │ ├── zairy.f
│ │ │ ├── zasyi.f
│ │ │ ├── zbesh.f
│ │ │ ├── zbesi.f
│ │ │ ├── zbesj.f
│ │ │ ├── zbesk.f
│ │ │ ├── zbesy.f
│ │ │ ├── zbinu.f
│ │ │ ├── zbiry.f
│ │ │ ├── zbknu.f
│ │ │ ├── zbuni.f
│ │ │ ├── zbunk.f
│ │ │ ├── zdiv.f
│ │ │ ├── zkscl.f
│ │ │ ├── zmlri.f
│ │ │ ├── zmlt.f
│ │ │ ├── zrati.f
│ │ │ ├── zs1s2.f
│ │ │ ├── zseri.f
│ │ │ ├── zshch.f
│ │ │ ├── zuchk.f
│ │ │ ├── zunhj.f
│ │ │ ├── zuni1.f
│ │ │ ├── zuni2.f
│ │ │ ├── zunik.f
│ │ │ ├── zunk1.f
│ │ │ ├── zunk2.f
│ │ │ ├── zuoik.f
│ │ │ └── zwrsk.f
│ │ ├── blas-xtra/
│ │ │ ├── cdotc3.f
│ │ │ ├── cmatm3.f
│ │ │ ├── ddot3.f
│ │ │ ├── dmatm3.f
│ │ │ ├── module.mk
│ │ │ ├── sdot3.f
│ │ │ ├── smatm3.f
│ │ │ ├── xcdotc.f
│ │ │ ├── xcdotu.f
│ │ │ ├── xddot.f
│ │ │ ├── xdnrm2.f
│ │ │ ├── xdznrm2.f
│ │ │ ├── xerbla.cc
│ │ │ ├── xscnrm2.f
│ │ │ ├── xsdot.f
│ │ │ ├── xsnrm2.f
│ │ │ ├── xzdotc.f
│ │ │ ├── xzdotu.f
│ │ │ ├── zdotc3.f
│ │ │ └── zmatm3.f
│ │ ├── daspk/
│ │ │ ├── datv.f
│ │ │ ├── dcnst0.f
│ │ │ ├── dcnstr.f
│ │ │ ├── ddasic.f
│ │ │ ├── ddasid.f
│ │ │ ├── ddasik.f
│ │ │ ├── ddaspk.f
│ │ │ ├── ddstp.f
│ │ │ ├── ddwnrm.f
│ │ │ ├── dfnrmd.f
│ │ │ ├── dfnrmk.f
│ │ │ ├── dhels.f
│ │ │ ├── dheqr.f
│ │ │ ├── dinvwt.f
│ │ │ ├── dlinsd.f
│ │ │ ├── dlinsk.f
│ │ │ ├── dmatd.f
│ │ │ ├── dnedd.f
│ │ │ ├── dnedk.f
│ │ │ ├── dnsd.f
│ │ │ ├── dnsid.f
│ │ │ ├── dnsik.f
│ │ │ ├── dnsk.f
│ │ │ ├── dorth.f
│ │ │ ├── dslvd.f
│ │ │ ├── dslvk.f
│ │ │ ├── dspigm.f
│ │ │ ├── dyypnw.f
│ │ │ └── module.mk
│ │ ├── dasrt/
│ │ │ ├── ddasrt.f
│ │ │ ├── drchek.f
│ │ │ ├── droots.f
│ │ │ └── module.mk
│ │ ├── dassl/
│ │ │ ├── ddaini.f
│ │ │ ├── ddajac.f
│ │ │ ├── ddanrm.f
│ │ │ ├── ddaslv.f
│ │ │ ├── ddassl.f
│ │ │ ├── ddastp.f
│ │ │ ├── ddatrp.f
│ │ │ ├── ddawts.f
│ │ │ └── module.mk
│ │ ├── lapack-xtra/
│ │ │ ├── crsf2csf.f
│ │ │ ├── module.mk
│ │ │ ├── xclange.f
│ │ │ ├── xdlamch.f
│ │ │ ├── xdlange.f
│ │ │ ├── xilaenv.f
│ │ │ ├── xslamch.f
│ │ │ ├── xslange.f
│ │ │ ├── xzlange.f
│ │ │ └── zrsf2csf.f
│ │ ├── mk-f77-def.in.sh
│ │ ├── module.mk
│ │ ├── odepack/
│ │ │ ├── dcfode.f
│ │ │ ├── dewset.f
│ │ │ ├── dintdy.f
│ │ │ ├── dlsode.f
│ │ │ ├── dprepj.f
│ │ │ ├── dsolsy.f
│ │ │ ├── dstode.f
│ │ │ ├── dvnorm.f
│ │ │ ├── module.mk
│ │ │ ├── scfode.f
│ │ │ ├── sewset.f
│ │ │ ├── sintdy.f
│ │ │ ├── slsode.f
│ │ │ ├── sprepj.f
│ │ │ ├── ssolsy.f
│ │ │ ├── sstode.f
│ │ │ └── svnorm.f
│ │ ├── quadpack/
│ │ │ ├── dqagi.f
│ │ │ ├── dqagie.f
│ │ │ ├── dqagp.f
│ │ │ ├── dqagpe.f
│ │ │ ├── dqelg.f
│ │ │ ├── dqk15i.f
│ │ │ ├── dqk21.f
│ │ │ ├── dqpsrt.f
│ │ │ ├── module.mk
│ │ │ ├── qagi.f
│ │ │ ├── qagie.f
│ │ │ ├── qagp.f
│ │ │ ├── qagpe.f
│ │ │ ├── qelg.f
│ │ │ ├── qk15i.f
│ │ │ ├── qk21.f
│ │ │ ├── qpsrt.f
│ │ │ └── xerror.f
│ │ ├── ranlib/
│ │ │ ├── Basegen.doc
│ │ │ ├── HOWTOGET
│ │ │ ├── README
│ │ │ ├── advnst.f
│ │ │ ├── genbet.f
│ │ │ ├── genchi.f
│ │ │ ├── genexp.f
│ │ │ ├── genf.f
│ │ │ ├── gengam.f
│ │ │ ├── genmn.f
│ │ │ ├── genmul.f
│ │ │ ├── gennch.f
│ │ │ ├── gennf.f
│ │ │ ├── gennor.f
│ │ │ ├── genprm.f
│ │ │ ├── genunf.f
│ │ │ ├── getcgn.f
│ │ │ ├── getsd.f
│ │ │ ├── ignbin.f
│ │ │ ├── ignlgi.f
│ │ │ ├── ignnbn.f
│ │ │ ├── ignpoi.f
│ │ │ ├── ignuin.f
│ │ │ ├── initgn.f
│ │ │ ├── inrgcm.f
│ │ │ ├── lennob.f
│ │ │ ├── mltmod.f
│ │ │ ├── module.mk
│ │ │ ├── phrtsd.f
│ │ │ ├── qrgnin.f
│ │ │ ├── randlib.chs
│ │ │ ├── randlib.fdoc
│ │ │ ├── ranf.f
│ │ │ ├── setall.f
│ │ │ ├── setant.f
│ │ │ ├── setgmn.f
│ │ │ ├── setsd.f
│ │ │ ├── sexpo.f
│ │ │ ├── sgamma.f
│ │ │ ├── snorm.f
│ │ │ ├── tstbot.for
│ │ │ ├── tstgmn.for
│ │ │ ├── tstmid.for
│ │ │ └── wrap.f
│ │ ├── slatec-err/
│ │ │ ├── fdump.f
│ │ │ ├── ixsav.f
│ │ │ ├── j4save.f
│ │ │ ├── module.mk
│ │ │ ├── xerclr.f
│ │ │ ├── xercnt.f
│ │ │ ├── xerhlt.f
│ │ │ ├── xermsg.f
│ │ │ ├── xerprn.f
│ │ │ ├── xerrwd.f
│ │ │ ├── xerrwv.f
│ │ │ ├── xersve.f
│ │ │ ├── xgetf.f
│ │ │ ├── xgetua.f
│ │ │ ├── xsetf.f
│ │ │ └── xsetua.f
│ │ └── slatec-fn/
│ │ ├── albeta.f
│ │ ├── algams.f
│ │ ├── alngam.f
│ │ ├── alnrel.f
│ │ ├── csevl.f
│ │ ├── d9gmit.f
│ │ ├── d9lgic.f
│ │ ├── d9lgit.f
│ │ ├── d9lgmc.f
│ │ ├── dcsevl.f
│ │ ├── dgamlm.f
│ │ ├── dgamma.f
│ │ ├── dgamr.f
│ │ ├── dlbeta.f
│ │ ├── dlgams.f
│ │ ├── dlngam.f
│ │ ├── dlnrel.f
│ │ ├── dpchim.f
│ │ ├── dpchst.f
│ │ ├── dpsifn.f
│ │ ├── gamlim.f
│ │ ├── gamma.f
│ │ ├── gamr.f
│ │ ├── initds.f
│ │ ├── inits.f
│ │ ├── module.mk
│ │ ├── pchim.f
│ │ ├── pchst.f
│ │ ├── psifn.f
│ │ ├── r9gmit.f
│ │ ├── r9lgic.f
│ │ ├── r9lgit.f
│ │ └── r9lgmc.f
│ ├── liboctave-build-info.h
│ ├── liboctave-build-info.in.cc
│ ├── mk-version-h.in.sh
│ ├── module.mk
│ ├── numeric/
│ │ ├── CollocWt.cc
│ │ ├── CollocWt.h
│ │ ├── DAE.h
│ │ ├── DAEFunc.h
│ │ ├── DAERT.h
│ │ ├── DAERTFunc.h
│ │ ├── DASPK-opts.in
│ │ ├── DASPK.cc
│ │ ├── DASPK.h
│ │ ├── DASRT-opts.in
│ │ ├── DASRT.cc
│ │ ├── DASRT.h
│ │ ├── DASSL-opts.in
│ │ ├── DASSL.cc
│ │ ├── DASSL.h
│ │ ├── DET.h
│ │ ├── EIG.cc
│ │ ├── EIG.h
│ │ ├── LSODE-opts.in
│ │ ├── LSODE.cc
│ │ ├── LSODE.h
│ │ ├── ODE.h
│ │ ├── ODEFunc.h
│ │ ├── ODES.cc
│ │ ├── ODES.h
│ │ ├── ODESFunc.h
│ │ ├── Quad-opts.in
│ │ ├── Quad.cc
│ │ ├── Quad.h
│ │ ├── aepbalance.cc
│ │ ├── aepbalance.h
│ │ ├── amos-proto.h
│ │ ├── arpack-proto.h
│ │ ├── base-dae.h
│ │ ├── base-de.h
│ │ ├── blas-proto.h
│ │ ├── bsxfun-decl.h
│ │ ├── bsxfun-defs.cc
│ │ ├── bsxfun.h
│ │ ├── chol.cc
│ │ ├── chol.h
│ │ ├── eigs-base.cc
│ │ ├── eigs-base.h
│ │ ├── fEIG.cc
│ │ ├── fEIG.h
│ │ ├── gepbalance.cc
│ │ ├── gepbalance.h
│ │ ├── gsvd.cc
│ │ ├── gsvd.h
│ │ ├── hess.cc
│ │ ├── hess.h
│ │ ├── lapack-proto.h
│ │ ├── lo-amos-proto.h
│ │ ├── lo-arpack-proto.h
│ │ ├── lo-blas-proto.h
│ │ ├── lo-lapack-proto.h
│ │ ├── lo-mappers.h
│ │ ├── lo-qrupdate-proto.h
│ │ ├── lo-ranlib-proto.h
│ │ ├── lo-slatec-proto.h
│ │ ├── lo-specfun.h
│ │ ├── lu.cc
│ │ ├── lu.h
│ │ ├── mappers.cc
│ │ ├── mappers.h
│ │ ├── module.mk
│ │ ├── oct-convn.cc
│ │ ├── oct-convn.h
│ │ ├── oct-fftw.cc
│ │ ├── oct-fftw.h
│ │ ├── oct-norm.cc
│ │ ├── oct-norm.h
│ │ ├── oct-rand.cc
│ │ ├── oct-rand.h
│ │ ├── oct-specfun.cc
│ │ ├── oct-specfun.h
│ │ ├── oct-spparms.cc
│ │ ├── oct-spparms.h
│ │ ├── qr.cc
│ │ ├── qr.h
│ │ ├── qrp.cc
│ │ ├── qrp.h
│ │ ├── qrupdate-proto.h
│ │ ├── randgamma.cc
│ │ ├── randgamma.h
│ │ ├── randmtzig.cc
│ │ ├── randmtzig.h
│ │ ├── randpoisson.cc
│ │ ├── randpoisson.h
│ │ ├── ranlib-proto.h
│ │ ├── schur.cc
│ │ ├── schur.h
│ │ ├── slatec-proto.h
│ │ ├── sparse-chol.cc
│ │ ├── sparse-chol.h
│ │ ├── sparse-dmsolve.cc
│ │ ├── sparse-dmsolve.h
│ │ ├── sparse-lu.cc
│ │ ├── sparse-lu.h
│ │ ├── sparse-qr.cc
│ │ ├── sparse-qr.h
│ │ ├── svd.cc
│ │ └── svd.h
│ ├── octave.in.pc
│ ├── operators/
│ │ ├── Sparse-diag-op-defs.h
│ │ ├── Sparse-op-decls.h
│ │ ├── Sparse-op-defs.h
│ │ ├── Sparse-perm-op-defs.h
│ │ ├── config-ops.sh
│ │ ├── mk-ops.awk
│ │ ├── module.mk
│ │ ├── mx-base.h
│ │ ├── mx-defs.h
│ │ ├── mx-ext.h
│ │ ├── mx-inlines.cc
│ │ ├── mx-op-decl.h
│ │ ├── mx-op-defs.h
│ │ ├── mx-ops
│ │ ├── smx-ops
│ │ └── vx-ops
│ ├── system/
│ │ ├── child-list.cc
│ │ ├── child-list.h
│ │ ├── cmach-info.h
│ │ ├── dir-ops.cc
│ │ ├── dir-ops.h
│ │ ├── file-ops.cc
│ │ ├── file-ops.h
│ │ ├── file-stat.cc
│ │ ├── file-stat.h
│ │ ├── lo-sysdep.h
│ │ ├── lo-sysinfo.h
│ │ ├── mach-info.cc
│ │ ├── mach-info.h
│ │ ├── module.mk
│ │ ├── oct-env.cc
│ │ ├── oct-env.h
│ │ ├── oct-group.cc
│ │ ├── oct-group.h
│ │ ├── oct-password.cc
│ │ ├── oct-password.h
│ │ ├── oct-syscalls.cc
│ │ ├── oct-syscalls.h
│ │ ├── oct-sysdep.cc
│ │ ├── oct-sysdep.h
│ │ ├── oct-sysinfo.cc
│ │ ├── oct-sysinfo.h
│ │ ├── oct-time.cc
│ │ ├── oct-time.h
│ │ ├── oct-uname.cc
│ │ └── oct-uname.h
│ ├── util/
│ │ ├── action-container.cc
│ │ ├── action-container.h
│ │ ├── base-list.h
│ │ ├── blaswrap.c
│ │ ├── byte-swap.h
│ │ ├── caseless-str.h
│ │ ├── d1mach-tst.for
│ │ ├── d1mach.f
│ │ ├── data-conv.cc
│ │ ├── data-conv.h
│ │ ├── f77-dummy-main.cc
│ │ ├── f77-fcn.cc
│ │ ├── f77-fcn.h
│ │ ├── file-info.cc
│ │ ├── file-info.h
│ │ ├── glob-match.cc
│ │ ├── glob-match.h
│ │ ├── i1mach.f
│ │ ├── kpse.cc
│ │ ├── kpse.h
│ │ ├── lo-array-errwarn.cc
│ │ ├── lo-array-errwarn.h
│ │ ├── lo-error.h
│ │ ├── lo-hash.h
│ │ ├── lo-ieee.cc
│ │ ├── lo-ieee.h
│ │ ├── lo-regexp.h
│ │ ├── lo-traits.h
│ │ ├── lo-utils.cc
│ │ ├── lo-utils.h
│ │ ├── module.mk
│ │ ├── oct-base64.cc
│ │ ├── oct-base64.h
│ │ ├── oct-binmap.h
│ │ ├── oct-cmplx.cc
│ │ ├── oct-cmplx.h
│ │ ├── oct-error.cc
│ │ ├── oct-error.h
│ │ ├── oct-glob.cc
│ │ ├── oct-glob.h
│ │ ├── oct-hash.cc
│ │ ├── oct-hash.h
│ │ ├── oct-inttypes-fwd.h
│ │ ├── oct-inttypes.cc
│ │ ├── oct-inttypes.h
│ │ ├── oct-locbuf.h
│ │ ├── oct-mutex.cc
│ │ ├── oct-mutex.h
│ │ ├── oct-refcount.h
│ │ ├── oct-regexp.cc
│ │ ├── oct-regexp.h
│ │ ├── oct-shlib.cc
│ │ ├── oct-shlib.h
│ │ ├── oct-sort.cc
│ │ ├── oct-sort.h
│ │ ├── oct-sparse.cc
│ │ ├── oct-sparse.h
│ │ ├── oct-string.cc
│ │ ├── oct-string.h
│ │ ├── oct-traits.h
│ │ ├── octave-preserve-stream-state.h
│ │ ├── pathsearch.cc
│ │ ├── pathsearch.h
│ │ ├── quit.cc
│ │ ├── quit.h
│ │ ├── r1mach.f
│ │ ├── singleton-cleanup.cc
│ │ ├── singleton-cleanup.h
│ │ ├── sparse-util.cc
│ │ ├── sparse-util.h
│ │ ├── str-vec.cc
│ │ ├── str-vec.h
│ │ ├── unwind-prot.cc
│ │ ├── unwind-prot.h
│ │ ├── url-transfer.cc
│ │ └── url-transfer.h
│ ├── version.cc
│ ├── version.in.h
│ └── wrappers/
│ ├── _Exit-wrapper.c
│ ├── _Exit-wrapper.h
│ ├── areadlink-wrapper.c
│ ├── areadlink-wrapper.h
│ ├── async-system-wrapper.c
│ ├── async-system-wrapper.h
│ ├── base64-wrappers.c
│ ├── base64-wrappers.h
│ ├── canonicalize-file-name-wrapper.c
│ ├── canonicalize-file-name-wrapper.h
│ ├── cxx-signal-helpers.cc
│ ├── dirent-wrappers.c
│ ├── dirent-wrappers.h
│ ├── fcntl-wrappers.c
│ ├── fcntl-wrappers.h
│ ├── filepos-wrappers.c
│ ├── filepos-wrappers.h
│ ├── fpucw-wrappers.c
│ ├── fpucw-wrappers.h
│ ├── gen-tempname-wrapper.c
│ ├── gen-tempname-wrapper.h
│ ├── getopt-wrapper.c
│ ├── getopt-wrapper.h
│ ├── glob-wrappers.c
│ ├── glob-wrappers.h
│ ├── hash-wrappers.c
│ ├── hash-wrappers.h
│ ├── iconv-wrappers.c
│ ├── iconv-wrappers.h
│ ├── intprops-wrappers.c
│ ├── intprops-wrappers.h
│ ├── localcharset-wrapper.c
│ ├── localcharset-wrapper.h
│ ├── math-wrappers.c
│ ├── math-wrappers.h
│ ├── mkostemp-wrapper.c
│ ├── mkostemp-wrapper.h
│ ├── mkostemps-wrapper.c
│ ├── mkostemps-wrapper.h
│ ├── module.mk
│ ├── nanosleep-wrapper.c
│ ├── nanosleep-wrapper.h
│ ├── nproc-wrapper.c
│ ├── nproc-wrapper.h
│ ├── octave-popen2.c
│ ├── octave-popen2.h
│ ├── pwd-wrappers.c
│ ├── pwd-wrappers.h
│ ├── select-wrappers.c
│ ├── select-wrappers.h
│ ├── set-program-name-wrapper.c
│ ├── set-program-name-wrapper.h
│ ├── setenv-wrapper.c
│ ├── setenv-wrapper.h
│ ├── signal-wrappers.c
│ ├── signal-wrappers.h
│ ├── stat-wrappers.c
│ ├── stat-wrappers.h
│ ├── strcase-wrappers.c
│ ├── strcase-wrappers.h
│ ├── strdup-wrapper.c
│ ├── strdup-wrapper.h
│ ├── strftime-wrapper.c
│ ├── strftime-wrapper.h
│ ├── strmode-wrapper.c
│ ├── strmode-wrapper.h
│ ├── strptime-wrapper.c
│ ├── strptime-wrapper.h
│ ├── time-wrappers.c
│ ├── time-wrappers.h
│ ├── uname-wrapper.c
│ ├── uname-wrapper.h
│ ├── unicase-wrappers.c
│ ├── unicase-wrappers.h
│ ├── uniconv-wrappers.c
│ ├── uniconv-wrappers.h
│ ├── unictype-wrappers.c
│ ├── unictype-wrappers.h
│ ├── unistd-wrappers.c
│ ├── unistd-wrappers.h
│ ├── unistr-wrappers.c
│ ├── unistr-wrappers.h
│ ├── unsetenv-wrapper.c
│ ├── unsetenv-wrapper.h
│ ├── vasprintf-wrapper.c
│ ├── vasprintf-wrapper.h
│ ├── wait-for-input.c
│ ├── wait-for-input.h
│ ├── wait-wrappers.c
│ └── wait-wrappers.h
├── m4/
│ ├── acinclude.m4
│ ├── ax_blas.m4
│ ├── ax_compare_version.m4
│ ├── ax_cxx_compile_stdcxx.m4
│ ├── ax_lapack.m4
│ ├── ax_openmp.m4
│ ├── ax_pthread.m4
│ ├── module.mk
│ ├── octave_blas.m4
│ └── pkg.m4
├── oct-conf-post-private.in.h
├── oct-conf-post-public.in.h
├── octave.doap
├── run-octave.in
├── scripts/
│ ├── +containers/
│ │ ├── Map.m
│ │ └── module.mk
│ ├── +matlab/
│ │ ├── +lang/
│ │ │ ├── MemoizedFunction.m
│ │ │ ├── makeUniqueStrings.m
│ │ │ ├── makeValidName.m
│ │ │ └── module.mk
│ │ └── +net/
│ │ ├── base64decode.m
│ │ ├── base64encode.m
│ │ └── module.mk
│ ├── .oct-config
│ ├── @ftp/
│ │ ├── ascii.m
│ │ ├── binary.m
│ │ ├── cd.m
│ │ ├── close.m
│ │ ├── delete.m
│ │ ├── dir.m
│ │ ├── disp.m
│ │ ├── ftp.m
│ │ ├── loadobj.m
│ │ ├── mget.m
│ │ ├── mkdir.m
│ │ ├── module.mk
│ │ ├── mput.m
│ │ ├── rename.m
│ │ ├── rmdir.m
│ │ └── saveobj.m
│ ├── audio/
│ │ ├── .oct-config
│ │ ├── @audioplayer/
│ │ │ ├── __get_properties__.m
│ │ │ ├── audioplayer.m
│ │ │ ├── disp.m
│ │ │ ├── get.m
│ │ │ ├── isplaying.m
│ │ │ ├── pause.m
│ │ │ ├── play.m
│ │ │ ├── playblocking.m
│ │ │ ├── resume.m
│ │ │ ├── set.m
│ │ │ ├── stop.m
│ │ │ ├── subsasgn.m
│ │ │ └── subsref.m
│ │ ├── @audiorecorder/
│ │ │ ├── __get_properties__.m
│ │ │ ├── audiorecorder.m
│ │ │ ├── disp.m
│ │ │ ├── get.m
│ │ │ ├── getaudiodata.m
│ │ │ ├── getplayer.m
│ │ │ ├── isrecording.m
│ │ │ ├── pause.m
│ │ │ ├── play.m
│ │ │ ├── record.m
│ │ │ ├── recordblocking.m
│ │ │ ├── resume.m
│ │ │ ├── set.m
│ │ │ ├── stop.m
│ │ │ ├── subsasgn.m
│ │ │ └── subsref.m
│ │ ├── lin2mu.m
│ │ ├── module.mk
│ │ ├── mu2lin.m
│ │ ├── record.m
│ │ ├── sound.m
│ │ └── soundsc.m
│ ├── deprecated/
│ │ ├── .oct-config
│ │ └── module.mk
│ ├── elfun/
│ │ ├── .oct-config
│ │ ├── acosd.m
│ │ ├── acot.m
│ │ ├── acotd.m
│ │ ├── acoth.m
│ │ ├── acsc.m
│ │ ├── acscd.m
│ │ ├── acsch.m
│ │ ├── asec.m
│ │ ├── asecd.m
│ │ ├── asech.m
│ │ ├── asind.m
│ │ ├── atan2d.m
│ │ ├── atand.m
│ │ ├── cosd.m
│ │ ├── cospi.m
│ │ ├── cot.m
│ │ ├── cotd.m
│ │ ├── coth.m
│ │ ├── csc.m
│ │ ├── cscd.m
│ │ ├── csch.m
│ │ ├── module.mk
│ │ ├── sec.m
│ │ ├── secd.m
│ │ ├── sech.m
│ │ ├── sind.m
│ │ ├── sinpi.m
│ │ └── tand.m
│ ├── general/
│ │ ├── .oct-config
│ │ ├── accumarray.m
│ │ ├── accumdim.m
│ │ ├── bincoeff.m
│ │ ├── bitcmp.m
│ │ ├── bitget.m
│ │ ├── bitset.m
│ │ ├── blkdiag.m
│ │ ├── cart2pol.m
│ │ ├── cart2sph.m
│ │ ├── cell2mat.m
│ │ ├── celldisp.m
│ │ ├── circshift.m
│ │ ├── common_size.m
│ │ ├── cplxpair.m
│ │ ├── cumtrapz.m
│ │ ├── curl.m
│ │ ├── dblquad.m
│ │ ├── deal.m
│ │ ├── deg2rad.m
│ │ ├── del2.m
│ │ ├── divergence.m
│ │ ├── flip.m
│ │ ├── fliplr.m
│ │ ├── flipud.m
│ │ ├── gradient.m
│ │ ├── idivide.m
│ │ ├── int2str.m
│ │ ├── integral.m
│ │ ├── integral2.m
│ │ ├── integral3.m
│ │ ├── interp1.m
│ │ ├── interp2.m
│ │ ├── interp3.m
│ │ ├── interpft.m
│ │ ├── interpn.m
│ │ ├── isequal.m
│ │ ├── isequaln.m
│ │ ├── isuniform.m
│ │ ├── logspace.m
│ │ ├── module.mk
│ │ ├── nextpow2.m
│ │ ├── num2str.m
│ │ ├── pagectranspose.m
│ │ ├── pagetranspose.m
│ │ ├── pol2cart.m
│ │ ├── polyarea.m
│ │ ├── postpad.m
│ │ ├── prepad.m
│ │ ├── private/
│ │ │ └── __splinen__.m
│ │ ├── quad2d.m
│ │ ├── quadgk.m
│ │ ├── quadl.m
│ │ ├── quadv.m
│ │ ├── rad2deg.m
│ │ ├── rat.m
│ │ ├── repelem.m
│ │ ├── repmat.m
│ │ ├── rescale.m
│ │ ├── rng.m
│ │ ├── rot90.m
│ │ ├── rotdim.m
│ │ ├── shiftdim.m
│ │ ├── sortrows.m
│ │ ├── sph2cart.m
│ │ ├── structfun.m
│ │ ├── subsindex.m
│ │ ├── trapz.m
│ │ ├── triplequad.m
│ │ └── xor.m
│ ├── geometry/
│ │ ├── .oct-config
│ │ ├── convhull.m
│ │ ├── delaunay.m
│ │ ├── delaunayn.m
│ │ ├── dsearchn.m
│ │ ├── griddata.m
│ │ ├── griddata3.m
│ │ ├── griddatan.m
│ │ ├── inpolygon.m
│ │ ├── module.mk
│ │ ├── rectint.m
│ │ ├── rotx.m
│ │ ├── roty.m
│ │ ├── rotz.m
│ │ ├── tsearchn.m
│ │ ├── voronoi.m
│ │ └── voronoin.m
│ ├── gui/
│ │ ├── .oct-config
│ │ ├── dialog.m
│ │ ├── errordlg.m
│ │ ├── getappdata.m
│ │ ├── getpixelposition.m
│ │ ├── guidata.m
│ │ ├── guihandles.m
│ │ ├── helpdlg.m
│ │ ├── inputdlg.m
│ │ ├── isappdata.m
│ │ ├── listdlg.m
│ │ ├── listfonts.m
│ │ ├── module.mk
│ │ ├── movegui.m
│ │ ├── msgbox.m
│ │ ├── private/
│ │ │ ├── __file_filter__.m
│ │ │ ├── __fltk_file_filter__.m
│ │ │ ├── __get_funcname__.m
│ │ │ ├── __is_function__.m
│ │ │ ├── __ok_cancel_dlg__.m
│ │ │ ├── __uigetdir_fltk__.m
│ │ │ ├── __uigetfile_fltk__.m
│ │ │ ├── __uiobject_split_args__.m
│ │ │ └── __uiputfile_fltk__.m
│ │ ├── questdlg.m
│ │ ├── rmappdata.m
│ │ ├── setappdata.m
│ │ ├── uibuttongroup.m
│ │ ├── uicontextmenu.m
│ │ ├── uicontrol.m
│ │ ├── uifigure.m
│ │ ├── uigetdir.m
│ │ ├── uigetfile.m
│ │ ├── uimenu.m
│ │ ├── uipanel.m
│ │ ├── uipushtool.m
│ │ ├── uiputfile.m
│ │ ├── uiresume.m
│ │ ├── uisetfont.m
│ │ ├── uitable.m
│ │ ├── uitoggletool.m
│ │ ├── uitoolbar.m
│ │ ├── uiwait.m
│ │ ├── waitbar.m
│ │ ├── waitforbuttonpress.m
│ │ └── warndlg.m
│ ├── help/
│ │ ├── .oct-config
│ │ ├── __gripe_missing_component__.m
│ │ ├── __makeinfo__.m
│ │ ├── __unimplemented__.m
│ │ ├── ans.m
│ │ ├── bessel.m
│ │ ├── debug.m
│ │ ├── doc.m
│ │ ├── doc_cache_create.m
│ │ ├── error_ids.m
│ │ ├── get_first_help_sentence.m
│ │ ├── help.m
│ │ ├── lookfor.m
│ │ ├── module.mk
│ │ ├── print_usage.m
│ │ ├── private/
│ │ │ ├── __additional_help_message__.m
│ │ │ └── __strip_html_tags__.m
│ │ ├── slash.m
│ │ ├── type.m
│ │ ├── warning_ids.m
│ │ └── which.m
│ ├── image/
│ │ ├── .oct-config
│ │ ├── autumn.m
│ │ ├── bone.m
│ │ ├── brighten.m
│ │ ├── cmpermute.m
│ │ ├── cmunique.m
│ │ ├── colorcube.m
│ │ ├── colormap.m
│ │ ├── contrast.m
│ │ ├── cool.m
│ │ ├── copper.m
│ │ ├── cubehelix.m
│ │ ├── default.img
│ │ ├── dither.m
│ │ ├── flag.m
│ │ ├── frame2im.m
│ │ ├── getframe.m
│ │ ├── gray.m
│ │ ├── gray2ind.m
│ │ ├── hot.m
│ │ ├── hsv.m
│ │ ├── hsv2rgb.m
│ │ ├── im2double.m
│ │ ├── im2frame.m
│ │ ├── image.m
│ │ ├── imagesc.m
│ │ ├── imfinfo.m
│ │ ├── imformats.m
│ │ ├── imread.m
│ │ ├── imshow.m
│ │ ├── imwrite.m
│ │ ├── ind2gray.m
│ │ ├── ind2rgb.m
│ │ ├── iscolormap.m
│ │ ├── jet.m
│ │ ├── lines.m
│ │ ├── module.mk
│ │ ├── movie.m
│ │ ├── ocean.m
│ │ ├── pink.m
│ │ ├── prism.m
│ │ ├── private/
│ │ │ ├── __imfinfo__.m
│ │ │ ├── __imread__.m
│ │ │ ├── __imwrite__.m
│ │ │ ├── colorspace_conversion_input_check.m
│ │ │ ├── colorspace_conversion_revert.m
│ │ │ ├── imageIO.m
│ │ │ ├── imwrite_filename.m
│ │ │ └── ind2x.m
│ │ ├── rainbow.m
│ │ ├── rgb2gray.m
│ │ ├── rgb2hsv.m
│ │ ├── rgb2ind.m
│ │ ├── rgbplot.m
│ │ ├── spinmap.m
│ │ ├── spring.m
│ │ ├── summer.m
│ │ ├── turbo.m
│ │ ├── viridis.m
│ │ ├── white.m
│ │ └── winter.m
│ ├── io/
│ │ ├── .oct-config
│ │ ├── beep.m
│ │ ├── csvread.m
│ │ ├── csvwrite.m
│ │ ├── dlmwrite.m
│ │ ├── fileread.m
│ │ ├── importdata.m
│ │ ├── is_valid_file_id.m
│ │ └── module.mk
│ ├── java/
│ │ ├── .oct-config
│ │ ├── javaArray.m
│ │ ├── java_get.m
│ │ ├── java_set.m
│ │ ├── javaaddpath.m
│ │ ├── javachk.m
│ │ ├── javaclasspath.m
│ │ ├── javamem.m
│ │ ├── javarmpath.m
│ │ ├── module.mk
│ │ ├── org/
│ │ │ └── octave/
│ │ │ ├── ClassHelper.java
│ │ │ ├── Matrix.java
│ │ │ ├── OctClassLoader.java
│ │ │ ├── Octave.java
│ │ │ └── OctaveReference.java
│ │ └── usejava.m
│ ├── legacy/
│ │ ├── .oct-config
│ │ ├── @inline/
│ │ │ ├── argnames.m
│ │ │ ├── cat.m
│ │ │ ├── char.m
│ │ │ ├── disp.m
│ │ │ ├── exist.m
│ │ │ ├── feval.m
│ │ │ ├── formula.m
│ │ │ ├── horzcat.m
│ │ │ ├── inline.m
│ │ │ ├── module.mk
│ │ │ ├── nargin.m
│ │ │ ├── nargout.m
│ │ │ ├── subsref.m
│ │ │ ├── symvar.m
│ │ │ ├── vectorize.m
│ │ │ └── vertcat.m
│ │ ├── __vectorize__.m
│ │ ├── caxis.m
│ │ ├── findstr.m
│ │ ├── flipdim.m
│ │ ├── genvarname.m
│ │ ├── isdir.m
│ │ ├── isequalwithequalnans.m
│ │ ├── isstr.m
│ │ ├── maxNumCompThreads.m
│ │ ├── module.mk
│ │ ├── setstr.m
│ │ ├── strmatch.m
│ │ ├── strread.m
│ │ ├── textread.m
│ │ └── vectorize.m
│ ├── linear-algebra/
│ │ ├── .oct-config
│ │ ├── bandwidth.m
│ │ ├── commutation_matrix.m
│ │ ├── cond.m
│ │ ├── condeig.m
│ │ ├── condest.m
│ │ ├── cross.m
│ │ ├── duplication_matrix.m
│ │ ├── expm.m
│ │ ├── funm.m
│ │ ├── gls.m
│ │ ├── housh.m
│ │ ├── isbanded.m
│ │ ├── isdefinite.m
│ │ ├── isdiag.m
│ │ ├── ishermitian.m
│ │ ├── issymmetric.m
│ │ ├── istril.m
│ │ ├── istriu.m
│ │ ├── krylov.m
│ │ ├── linsolve.m
│ │ ├── logm.m
│ │ ├── lscov.m
│ │ ├── module.mk
│ │ ├── normest.m
│ │ ├── normest1.m
│ │ ├── null.m
│ │ ├── ols.m
│ │ ├── ordeig.m
│ │ ├── orth.m
│ │ ├── planerot.m
│ │ ├── qzhess.m
│ │ ├── rank.m
│ │ ├── rref.m
│ │ ├── subspace.m
│ │ ├── tensorprod.m
│ │ ├── trace.m
│ │ ├── vech.m
│ │ └── vecnorm.m
│ ├── miscellaneous/
│ │ ├── .oct-config
│ │ ├── bug_report.m
│ │ ├── bunzip2.m
│ │ ├── cast.m
│ │ ├── citation.m
│ │ ├── clearAllMemoizedCaches.m
│ │ ├── clearvars.m
│ │ ├── compare_versions.m
│ │ ├── computer.m
│ │ ├── copyfile.m
│ │ ├── delete.m
│ │ ├── dir.m
│ │ ├── dos.m
│ │ ├── edit.m
│ │ ├── fieldnames.m
│ │ ├── fileattrib.m
│ │ ├── fileparts.m
│ │ ├── fullfile.m
│ │ ├── getfield.m
│ │ ├── grabcode.m
│ │ ├── gunzip.m
│ │ ├── info.m
│ │ ├── inputParser.m
│ │ ├── isdeployed.m
│ │ ├── isfile.m
│ │ ├── isfolder.m
│ │ ├── ismac.m
│ │ ├── ismethod.m
│ │ ├── ispc.m
│ │ ├── isunix.m
│ │ ├── jupyter_notebook.m
│ │ ├── license.m
│ │ ├── list_primes.m
│ │ ├── loadobj.m
│ │ ├── ls.m
│ │ ├── ls_command.m
│ │ ├── memoize.m
│ │ ├── memory.m
│ │ ├── menu.m
│ │ ├── methods.m
│ │ ├── mex.m
│ │ ├── mexext.m
│ │ ├── mkdir.m
│ │ ├── mkoctfile.m
│ │ ├── module.mk
│ │ ├── movefile.m
│ │ ├── mustBeFinite.m
│ │ ├── mustBeGreaterThan.m
│ │ ├── mustBeGreaterThanOrEqual.m
│ │ ├── mustBeInteger.m
│ │ ├── mustBeLessThan.m
│ │ ├── mustBeLessThanOrEqual.m
│ │ ├── mustBeMember.m
│ │ ├── mustBeNegative.m
│ │ ├── mustBeNonNan.m
│ │ ├── mustBeNonempty.m
│ │ ├── mustBeNonnegative.m
│ │ ├── mustBeNonpositive.m
│ │ ├── mustBeNonsparse.m
│ │ ├── mustBeNonzero.m
│ │ ├── mustBeNumeric.m
│ │ ├── mustBeNumericOrLogical.m
│ │ ├── mustBePositive.m
│ │ ├── mustBeReal.m
│ │ ├── namedargs2cell.m
│ │ ├── namelengthmax.m
│ │ ├── nargchk.m
│ │ ├── narginchk.m
│ │ ├── nargoutchk.m
│ │ ├── news.m
│ │ ├── nthargout.m
│ │ ├── open.m
│ │ ├── orderfields.m
│ │ ├── pack.m
│ │ ├── parseparams.m
│ │ ├── perl.m
│ │ ├── private/
│ │ │ ├── __memoize__.m
│ │ │ ├── __publish_html_output__.m
│ │ │ ├── __publish_latex_output__.m
│ │ │ ├── __w2mpth__.m
│ │ │ ├── display_info_file.m
│ │ │ └── tar_is_bsd.m
│ │ ├── publish.m
│ │ ├── python.m
│ │ ├── recycle.m
│ │ ├── run.m
│ │ ├── saveobj.m
│ │ ├── setfield.m
│ │ ├── substruct.m
│ │ ├── swapbytes.m
│ │ ├── symvar.m
│ │ ├── tar.m
│ │ ├── unix.m
│ │ ├── unpack.m
│ │ ├── untar.m
│ │ ├── unzip.m
│ │ ├── validateattributes.m
│ │ ├── ver.m
│ │ ├── verLessThan.m
│ │ ├── version.m
│ │ ├── what.m
│ │ └── zip.m
│ ├── mk-doc.pl
│ ├── mk-pkg-add.sh
│ ├── module.mk
│ ├── ode/
│ │ ├── .oct-config
│ │ ├── decic.m
│ │ ├── module.mk
│ │ ├── ode15i.m
│ │ ├── ode15s.m
│ │ ├── ode23.m
│ │ ├── ode23s.m
│ │ ├── ode45.m
│ │ ├── odeget.m
│ │ ├── odeplot.m
│ │ ├── odeset.m
│ │ └── private/
│ │ ├── AbsRel_norm.m
│ │ ├── check_default_input.m
│ │ ├── integrate_adaptive.m
│ │ ├── kahan.m
│ │ ├── ode_event_handler.m
│ │ ├── odedefaults.m
│ │ ├── odemergeopts.m
│ │ ├── runge_kutta_23.m
│ │ ├── runge_kutta_23s.m
│ │ ├── runge_kutta_45_dorpri.m
│ │ ├── runge_kutta_interpolate.m
│ │ └── starting_stepsize.m
│ ├── optimization/
│ │ ├── .oct-config
│ │ ├── __all_opts__.m
│ │ ├── fminbnd.m
│ │ ├── fminsearch.m
│ │ ├── fminunc.m
│ │ ├── fsolve.m
│ │ ├── fzero.m
│ │ ├── glpk.m
│ │ ├── humps.m
│ │ ├── lsqnonneg.m
│ │ ├── module.mk
│ │ ├── optimget.m
│ │ ├── optimset.m
│ │ ├── pqpnonneg.m
│ │ ├── private/
│ │ │ └── __fdjac__.m
│ │ ├── qp.m
│ │ └── sqp.m
│ ├── path/
│ │ ├── .oct-config
│ │ ├── import.m
│ │ ├── matlabroot.m
│ │ ├── module.mk
│ │ ├── pathdef.m
│ │ ├── private/
│ │ │ └── getsavepath.m
│ │ └── savepath.m
│ ├── pkg/
│ │ ├── .oct-config
│ │ ├── module.mk
│ │ ├── pkg.m
│ │ └── private/
│ │ ├── build.m
│ │ ├── configure_make.m
│ │ ├── convert_possible_cell_to_struct.m
│ │ ├── default_prefix.m
│ │ ├── describe.m
│ │ ├── dirempty.m
│ │ ├── expand_rel_paths.m
│ │ ├── get_description.m
│ │ ├── get_inverse_dependencies.m
│ │ ├── get_pkg_info.m
│ │ ├── get_unsatisfied_deps.m
│ │ ├── get_validated_pkg_list.m
│ │ ├── getarch.m
│ │ ├── getarchdir.m
│ │ ├── install.m
│ │ ├── installed_packages.m
│ │ ├── load_packages.m
│ │ ├── load_packages_and_dependencies.m
│ │ ├── make_rel_paths.m
│ │ ├── rebuild.m
│ │ ├── save_order.m
│ │ ├── search_packages.m
│ │ ├── standardize_paths.m
│ │ ├── uninstall.m
│ │ └── unload_packages.m
│ ├── plot/
│ │ ├── appearance/
│ │ │ ├── .oct-config
│ │ │ ├── __clabel__.m
│ │ │ ├── __getlegenddata__.m
│ │ │ ├── __rotate_around_axis__.m
│ │ │ ├── annotation.m
│ │ │ ├── axis.m
│ │ │ ├── box.m
│ │ │ ├── camlookat.m
│ │ │ ├── camorbit.m
│ │ │ ├── campos.m
│ │ │ ├── camroll.m
│ │ │ ├── camtarget.m
│ │ │ ├── camup.m
│ │ │ ├── camva.m
│ │ │ ├── camzoom.m
│ │ │ ├── clabel.m
│ │ │ ├── clim.m
│ │ │ ├── daspect.m
│ │ │ ├── datetick.m
│ │ │ ├── diffuse.m
│ │ │ ├── grid.m
│ │ │ ├── gtext.m
│ │ │ ├── hidden.m
│ │ │ ├── legend.m
│ │ │ ├── lighting.m
│ │ │ ├── material.m
│ │ │ ├── module.mk
│ │ │ ├── orient.m
│ │ │ ├── pbaspect.m
│ │ │ ├── private/
│ │ │ │ ├── __axis_label__.m
│ │ │ │ ├── __axis_limits__.m
│ │ │ │ ├── __gnuplot_legend__.m
│ │ │ │ └── __tickangle__.m
│ │ │ ├── rticklabels.m
│ │ │ ├── rticks.m
│ │ │ ├── shading.m
│ │ │ ├── specular.m
│ │ │ ├── text.m
│ │ │ ├── thetaticklabels.m
│ │ │ ├── thetaticks.m
│ │ │ ├── title.m
│ │ │ ├── view.m
│ │ │ ├── whitebg.m
│ │ │ ├── xlabel.m
│ │ │ ├── xlim.m
│ │ │ ├── xtickangle.m
│ │ │ ├── xticklabels.m
│ │ │ ├── xticks.m
│ │ │ ├── ylabel.m
│ │ │ ├── ylim.m
│ │ │ ├── ytickangle.m
│ │ │ ├── yticklabels.m
│ │ │ ├── yticks.m
│ │ │ ├── zlabel.m
│ │ │ ├── zlim.m
│ │ │ ├── ztickangle.m
│ │ │ ├── zticklabels.m
│ │ │ └── zticks.m
│ │ ├── draw/
│ │ │ ├── .oct-config
│ │ │ ├── area.m
│ │ │ ├── bar.m
│ │ │ ├── barh.m
│ │ │ ├── camlight.m
│ │ │ ├── colorbar.m
│ │ │ ├── comet.m
│ │ │ ├── comet3.m
│ │ │ ├── compass.m
│ │ │ ├── contour.m
│ │ │ ├── contour3.m
│ │ │ ├── contourc.m
│ │ │ ├── contourf.m
│ │ │ ├── cylinder.m
│ │ │ ├── ellipsoid.m
│ │ │ ├── errorbar.m
│ │ │ ├── ezcontour.m
│ │ │ ├── ezcontourf.m
│ │ │ ├── ezmesh.m
│ │ │ ├── ezmeshc.m
│ │ │ ├── ezplot.m
│ │ │ ├── ezplot3.m
│ │ │ ├── ezpolar.m
│ │ │ ├── ezsurf.m
│ │ │ ├── ezsurfc.m
│ │ │ ├── feather.m
│ │ │ ├── fill.m
│ │ │ ├── fill3.m
│ │ │ ├── fplot.m
│ │ │ ├── hist.m
│ │ │ ├── isocaps.m
│ │ │ ├── isocolors.m
│ │ │ ├── isonormals.m
│ │ │ ├── isosurface.m
│ │ │ ├── light.m
│ │ │ ├── lightangle.m
│ │ │ ├── line.m
│ │ │ ├── loglog.m
│ │ │ ├── loglogerr.m
│ │ │ ├── mesh.m
│ │ │ ├── meshc.m
│ │ │ ├── meshz.m
│ │ │ ├── module.mk
│ │ │ ├── ostreamtube.m
│ │ │ ├── pareto.m
│ │ │ ├── patch.m
│ │ │ ├── pcolor.m
│ │ │ ├── peaks.m
│ │ │ ├── pie.m
│ │ │ ├── pie3.m
│ │ │ ├── plot.m
│ │ │ ├── plot3.m
│ │ │ ├── plotmatrix.m
│ │ │ ├── plotyy.m
│ │ │ ├── polar.m
│ │ │ ├── private/
│ │ │ │ ├── __add_datasource__.m
│ │ │ │ ├── __bar__.m
│ │ │ │ ├── __calc_isovalue_from_data__.m
│ │ │ │ ├── __contour__.m
│ │ │ │ ├── __errplot__.m
│ │ │ │ ├── __ezplot__.m
│ │ │ │ ├── __gnuplot_scatter__.m
│ │ │ │ ├── __interp_cube__.m
│ │ │ │ ├── __line__.m
│ │ │ │ ├── __marching_cube__.m
│ │ │ │ ├── __patch__.m
│ │ │ │ ├── __pie__.m
│ │ │ │ ├── __plt__.m
│ │ │ │ ├── __quiver__.m
│ │ │ │ ├── __scatter__.m
│ │ │ │ ├── __stem__.m
│ │ │ │ └── __unite_shared_vertices__.m
│ │ │ ├── quiver.m
│ │ │ ├── quiver3.m
│ │ │ ├── rectangle.m
│ │ │ ├── reducepatch.m
│ │ │ ├── reducevolume.m
│ │ │ ├── ribbon.m
│ │ │ ├── rose.m
│ │ │ ├── scatter.m
│ │ │ ├── scatter3.m
│ │ │ ├── semilogx.m
│ │ │ ├── semilogxerr.m
│ │ │ ├── semilogy.m
│ │ │ ├── semilogyerr.m
│ │ │ ├── shrinkfaces.m
│ │ │ ├── slice.m
│ │ │ ├── smooth3.m
│ │ │ ├── sombrero.m
│ │ │ ├── sphere.m
│ │ │ ├── stairs.m
│ │ │ ├── stem.m
│ │ │ ├── stem3.m
│ │ │ ├── stemleaf.m
│ │ │ ├── stream2.m
│ │ │ ├── stream3.m
│ │ │ ├── streamline.m
│ │ │ ├── streamribbon.m
│ │ │ ├── streamtube.m
│ │ │ ├── surf.m
│ │ │ ├── surface.m
│ │ │ ├── surfc.m
│ │ │ ├── surfl.m
│ │ │ ├── surfnorm.m
│ │ │ ├── tetramesh.m
│ │ │ ├── trimesh.m
│ │ │ ├── triplot.m
│ │ │ ├── trisurf.m
│ │ │ ├── waterfall.m
│ │ │ ├── xline.m
│ │ │ └── yline.m
│ │ └── util/
│ │ ├── .oct-config
│ │ ├── __actual_axis_position__.m
│ │ ├── __check_rendering_capability__.m
│ │ ├── __default_plot_options__.m
│ │ ├── __gnuplot_drawnow__.m
│ │ ├── __next_line_color__.m
│ │ ├── __next_line_style__.m
│ │ ├── __opengl_info__.m
│ │ ├── __plt_get_axis_arg__.m
│ │ ├── __pltopt__.m
│ │ ├── allchild.m
│ │ ├── ancestor.m
│ │ ├── axes.m
│ │ ├── cla.m
│ │ ├── clf.m
│ │ ├── close.m
│ │ ├── closereq.m
│ │ ├── colstyle.m
│ │ ├── copyobj.m
│ │ ├── figure.m
│ │ ├── findall.m
│ │ ├── findfigs.m
│ │ ├── findobj.m
│ │ ├── gca.m
│ │ ├── gcbf.m
│ │ ├── gcbo.m
│ │ ├── gcf.m
│ │ ├── gco.m
│ │ ├── ginput.m
│ │ ├── gnuplot_binary.in.m
│ │ ├── graphics_toolkit.m
│ │ ├── groot.m
│ │ ├── gui_mainfcn.m
│ │ ├── hdl2struct.m
│ │ ├── hggroup.m
│ │ ├── hgload.m
│ │ ├── hgsave.m
│ │ ├── hgtransform.m
│ │ ├── hold.m
│ │ ├── isaxes.m
│ │ ├── isfigure.m
│ │ ├── isgraphics.m
│ │ ├── ishandle.m
│ │ ├── ishold.m
│ │ ├── isprop.m
│ │ ├── linkaxes.m
│ │ ├── linkprop.m
│ │ ├── meshgrid.m
│ │ ├── module.mk
│ │ ├── ndgrid.m
│ │ ├── newplot.m
│ │ ├── openfig.m
│ │ ├── pan.m
│ │ ├── print.m
│ │ ├── printd.m
│ │ ├── private/
│ │ │ ├── __add_default_menu__.m
│ │ │ ├── __ghostscript__.m
│ │ │ ├── __gnuplot_draw_axes__.m
│ │ │ ├── __gnuplot_draw_figure__.m
│ │ │ ├── __gnuplot_get_var__.m
│ │ │ ├── __gnuplot_ginput__.m
│ │ │ ├── __gnuplot_has_feature__.m
│ │ │ ├── __gnuplot_has_terminal__.m
│ │ │ ├── __gnuplot_open_stream__.m
│ │ │ ├── __gnuplot_print__.m
│ │ │ ├── __gnuplot_version__.m
│ │ │ ├── __opengl_print__.m
│ │ │ ├── __print_parse_opts__.m
│ │ │ └── __set_default_mouse_modes__.m
│ │ ├── refresh.m
│ │ ├── refreshdata.m
│ │ ├── rotate.m
│ │ ├── rotate3d.m
│ │ ├── saveas.m
│ │ ├── savefig.m
│ │ ├── shg.m
│ │ ├── struct2hdl.m
│ │ ├── subplot.m
│ │ └── zoom.m
│ ├── polynomial/
│ │ ├── .oct-config
│ │ ├── compan.m
│ │ ├── conv.m
│ │ ├── deconv.m
│ │ ├── mkpp.m
│ │ ├── module.mk
│ │ ├── mpoles.m
│ │ ├── padecoef.m
│ │ ├── pchip.m
│ │ ├── poly.m
│ │ ├── polyaffine.m
│ │ ├── polyder.m
│ │ ├── polyeig.m
│ │ ├── polyfit.m
│ │ ├── polygcd.m
│ │ ├── polyint.m
│ │ ├── polyout.m
│ │ ├── polyreduce.m
│ │ ├── polyval.m
│ │ ├── polyvalm.m
│ │ ├── ppder.m
│ │ ├── ppint.m
│ │ ├── ppjumps.m
│ │ ├── ppval.m
│ │ ├── private/
│ │ │ └── __splinefit__.m
│ │ ├── residue.m
│ │ ├── roots.m
│ │ ├── spline.m
│ │ ├── splinefit.m
│ │ └── unmkpp.m
│ ├── prefs/
│ │ ├── .oct-config
│ │ ├── addpref.m
│ │ ├── getpref.m
│ │ ├── ispref.m
│ │ ├── module.mk
│ │ ├── prefdir.m
│ │ ├── preferences.m
│ │ ├── private/
│ │ │ ├── loadprefs.m
│ │ │ ├── prefsfile.m
│ │ │ └── saveprefs.m
│ │ ├── rmpref.m
│ │ └── setpref.m
│ ├── profiler/
│ │ ├── .oct-config
│ │ ├── html/
│ │ │ ├── flat-entry.html
│ │ │ ├── flat.html
│ │ │ ├── function.html
│ │ │ ├── hierarchical-entry.html
│ │ │ ├── hierarchical.html
│ │ │ └── style.css
│ │ ├── module.mk
│ │ ├── profexplore.m
│ │ ├── profexport.m
│ │ ├── profile.m
│ │ └── profshow.m
│ ├── set/
│ │ ├── .oct-config
│ │ ├── intersect.m
│ │ ├── ismember.m
│ │ ├── ismembertol.m
│ │ ├── module.mk
│ │ ├── powerset.m
│ │ ├── private/
│ │ │ └── validsetargs.m
│ │ ├── setdiff.m
│ │ ├── setxor.m
│ │ ├── union.m
│ │ ├── unique.m
│ │ └── uniquetol.m
│ ├── signal/
│ │ ├── .oct-config
│ │ ├── __parse_movargs__.m
│ │ ├── arch_fit.m
│ │ ├── arch_rnd.m
│ │ ├── arch_test.m
│ │ ├── arma_rnd.m
│ │ ├── autoreg_matrix.m
│ │ ├── bartlett.m
│ │ ├── blackman.m
│ │ ├── detrend.m
│ │ ├── diffpara.m
│ │ ├── durbinlevinson.m
│ │ ├── fftconv.m
│ │ ├── fftfilt.m
│ │ ├── fftshift.m
│ │ ├── filter2.m
│ │ ├── fractdiff.m
│ │ ├── freqz.m
│ │ ├── freqz_plot.m
│ │ ├── hamming.m
│ │ ├── hanning.m
│ │ ├── hurst.m
│ │ ├── ifftshift.m
│ │ ├── module.mk
│ │ ├── movfun.m
│ │ ├── movslice.m
│ │ ├── periodogram.m
│ │ ├── private/
│ │ │ ├── rectangle_lw.m
│ │ │ ├── rectangle_sw.m
│ │ │ ├── triangle_lw.m
│ │ │ └── triangle_sw.m
│ │ ├── sinc.m
│ │ ├── sinetone.m
│ │ ├── sinewave.m
│ │ ├── spectral_adf.m
│ │ ├── spectral_xdf.m
│ │ ├── spencer.m
│ │ ├── stft.m
│ │ ├── synthesis.m
│ │ ├── unwrap.m
│ │ └── yulewalker.m
│ ├── sparse/
│ │ ├── .oct-config
│ │ ├── bicg.m
│ │ ├── bicgstab.m
│ │ ├── cgs.m
│ │ ├── colperm.m
│ │ ├── eigs.m
│ │ ├── etreeplot.m
│ │ ├── gmres.m
│ │ ├── gplot.m
│ │ ├── ichol.m
│ │ ├── ilu.m
│ │ ├── module.mk
│ │ ├── nonzeros.m
│ │ ├── pcg.m
│ │ ├── pcr.m
│ │ ├── private/
│ │ │ ├── __alltohandles__.m
│ │ │ ├── __default__input__.m
│ │ │ └── __sprand__.m
│ │ ├── qmr.m
│ │ ├── spaugment.m
│ │ ├── spconvert.m
│ │ ├── spdiags.m
│ │ ├── speye.m
│ │ ├── spfun.m
│ │ ├── spones.m
│ │ ├── sprand.m
│ │ ├── sprandn.m
│ │ ├── sprandsym.m
│ │ ├── spstats.m
│ │ ├── spy.m
│ │ ├── svds.m
│ │ ├── tfqmr.m
│ │ ├── treelayout.m
│ │ └── treeplot.m
│ ├── specfun/
│ │ ├── .oct-config
│ │ ├── beta.m
│ │ ├── betainc.m
│ │ ├── betaincinv.m
│ │ ├── betaln.m
│ │ ├── cosint.m
│ │ ├── ellipke.m
│ │ ├── expint.m
│ │ ├── factor.m
│ │ ├── factorial.m
│ │ ├── gammainc.m
│ │ ├── gammaincinv.m
│ │ ├── isprime.m
│ │ ├── lcm.m
│ │ ├── legendre.m
│ │ ├── module.mk
│ │ ├── nchoosek.m
│ │ ├── nthroot.m
│ │ ├── primes.m
│ │ ├── reallog.m
│ │ ├── realpow.m
│ │ ├── realsqrt.m
│ │ └── sinint.m
│ ├── special-matrix/
│ │ ├── .oct-config
│ │ ├── gallery.m
│ │ ├── hadamard.m
│ │ ├── hankel.m
│ │ ├── hilb.m
│ │ ├── invhilb.m
│ │ ├── magic.m
│ │ ├── module.mk
│ │ ├── pascal.m
│ │ ├── rosser.m
│ │ ├── toeplitz.m
│ │ ├── vander.m
│ │ └── wilkinson.m
│ ├── startup/
│ │ ├── inputrc
│ │ ├── module.mk
│ │ ├── octave_packages
│ │ ├── site-rcfile
│ │ └── version-rcfile
│ ├── statistics/
│ │ ├── .oct-config
│ │ ├── bounds.m
│ │ ├── center.m
│ │ ├── corr.m
│ │ ├── corrcoef.m
│ │ ├── corrcov.m
│ │ ├── cov.m
│ │ ├── discrete_cdf.m
│ │ ├── discrete_inv.m
│ │ ├── discrete_pdf.m
│ │ ├── discrete_rnd.m
│ │ ├── empirical_cdf.m
│ │ ├── empirical_inv.m
│ │ ├── empirical_pdf.m
│ │ ├── empirical_rnd.m
│ │ ├── histc.m
│ │ ├── iqr.m
│ │ ├── kendall.m
│ │ ├── kurtosis.m
│ │ ├── mad.m
│ │ ├── mape.m
│ │ ├── mean.m
│ │ ├── meansq.m
│ │ ├── median.m
│ │ ├── mode.m
│ │ ├── module.mk
│ │ ├── moment.m
│ │ ├── movmad.m
│ │ ├── movmax.m
│ │ ├── movmean.m
│ │ ├── movmedian.m
│ │ ├── movmin.m
│ │ ├── movprod.m
│ │ ├── movstd.m
│ │ ├── movsum.m
│ │ ├── movvar.m
│ │ ├── normalize.m
│ │ ├── prctile.m
│ │ ├── quantile.m
│ │ ├── range.m
│ │ ├── ranks.m
│ │ ├── rms.m
│ │ ├── rmse.m
│ │ ├── run_count.m
│ │ ├── runlength.m
│ │ ├── skewness.m
│ │ ├── spearman.m
│ │ ├── statistics.m
│ │ ├── std.m
│ │ ├── var.m
│ │ └── zscore.m
│ ├── strings/
│ │ ├── .oct-config
│ │ ├── base2dec.m
│ │ ├── bin2dec.m
│ │ ├── blanks.m
│ │ ├── cstrcat.m
│ │ ├── deblank.m
│ │ ├── dec2base.m
│ │ ├── dec2bin.m
│ │ ├── dec2hex.m
│ │ ├── endsWith.m
│ │ ├── erase.m
│ │ ├── hex2dec.m
│ │ ├── index.m
│ │ ├── isletter.m
│ │ ├── isstring.m
│ │ ├── isstrprop.m
│ │ ├── mat2str.m
│ │ ├── module.mk
│ │ ├── native2unicode.m
│ │ ├── ostrsplit.m
│ │ ├── regexptranslate.m
│ │ ├── rindex.m
│ │ ├── startsWith.m
│ │ ├── str2num.m
│ │ ├── strcat.m
│ │ ├── strchr.m
│ │ ├── strjoin.m
│ │ ├── strjust.m
│ │ ├── strsplit.m
│ │ ├── strtok.m
│ │ ├── strtrim.m
│ │ ├── strtrunc.m
│ │ ├── substr.m
│ │ ├── unicode2native.m
│ │ ├── untabify.m
│ │ └── validatestring.m
│ ├── testfun/
│ │ ├── .oct-config
│ │ ├── __debug_octave__.m
│ │ ├── __have_feature__.m
│ │ ├── __printf_assert__.m
│ │ ├── __prog_output_assert__.m
│ │ ├── __run_test_suite__.m
│ │ ├── assert.m
│ │ ├── assert_equal.m
│ │ ├── demo.m
│ │ ├── example.m
│ │ ├── fail.m
│ │ ├── module.mk
│ │ ├── oruntests.m
│ │ ├── private/
│ │ │ ├── compare_plot_demos.m
│ │ │ ├── dump_demos.m
│ │ │ ├── html-plot-demos-template.html
│ │ │ └── html_compare_plot_demos.m
│ │ ├── rundemos.m
│ │ ├── speed.m
│ │ └── test.m
│ ├── time/
│ │ ├── .oct-config
│ │ ├── addtodate.m
│ │ ├── asctime.m
│ │ ├── calendar.m
│ │ ├── clock.m
│ │ ├── ctime.m
│ │ ├── date.m
│ │ ├── datenum.m
│ │ ├── datestr.m
│ │ ├── datevec.m
│ │ ├── eomday.m
│ │ ├── etime.m
│ │ ├── is_leap_year.m
│ │ ├── module.mk
│ │ ├── now.m
│ │ └── weekday.m
│ └── web/
│ ├── .oct-config
│ ├── module.mk
│ ├── web.m
│ ├── weboptions.m
│ ├── webread.m
│ └── webwrite.m
├── src/
│ ├── display-available.c
│ ├── display-available.h
│ ├── main-cli.cc
│ ├── main-gui.cc
│ ├── main.in.cc
│ ├── mkoctfile.in.cc
│ ├── module.mk
│ ├── octave-build-info.h
│ ├── octave-build-info.in.cc
│ ├── octave-config.in.cc
│ ├── octave-qsvghandler.h
│ ├── octave-svgconvert.cc
│ ├── shared-fcns.h
│ └── shared-sysdep.h
└── test/
├── Makefile.am
├── anonymous-function.tst
├── args.tst
├── bc-overloads-expected
├── bug-31371.tst
├── bug-35448/
│ ├── bug-35448.tst
│ ├── fA.m
│ ├── fB.m
│ ├── fC.m
│ └── module.mk
├── bug-35881/
│ ├── bug-35881.tst
│ ├── bug35881.m
│ └── module.mk
├── bug-36025/
│ ├── @testclass/
│ │ ├── one.m
│ │ ├── testclass.m
│ │ └── two.m
│ ├── bug-36025.tst
│ └── module.mk
├── bug-38236/
│ ├── bug-38236.tst
│ ├── df_vr.m
│ ├── module.mk
│ └── u_vr.m
├── bug-38691/
│ ├── bug-38691.tst
│ ├── dir1/
│ │ └── func1.m
│ ├── dir2/
│ │ ├── func1.m
│ │ ├── func2.m
│ │ └── func3.m
│ └── module.mk
├── bug-40117.tst
├── bug-41723/
│ ├── bug-41723.tst
│ ├── class_bug41723.m
│ └── module.mk
├── bug-44643/
│ ├── bug-44643.tst
│ ├── bug44643.m
│ └── module.mk
├── bug-44940/
│ ├── bug-44940.tst
│ ├── class_bug44940.m
│ └── module.mk
├── bug-45351/
│ ├── bug-45351.tst
│ ├── bug45351.m
│ └── module.mk
├── bug-45969.tst
├── bug-45972.tst
├── bug-46330.tst
├── bug-46660/
│ ├── bug-46660.tst
│ ├── class_bug46660.m
│ └── module.mk
├── bug-47680/
│ ├── bug-47680.tst
│ ├── module.mk
│ ├── sub_bug47680.m
│ └── super_bug47680.m
├── bug-48693/
│ ├── bug-48693.tst
│ ├── bug48693.m
│ └── module.mk
├── bug-49379/
│ ├── bug-49379.tst
│ ├── class_bug49379.m
│ └── module.mk
├── bug-49904.tst
├── bug-50014/
│ ├── bug-50014.tst
│ ├── duplicate_nested_function.m
│ ├── duplicate_nested_in_subfunction_ok.m
│ ├── duplicate_nested_parent_function.m
│ ├── duplicate_parent_nested2.m
│ ├── duplicate_parent_nested_function.m
│ ├── duplicate_primary_nested_function.m
│ ├── duplicate_primary_subfunction.m
│ ├── duplicate_primary_subfunction_old_syntax.m
│ ├── duplicate_subfunction.m
│ ├── duplicate_subfunction_old_syntax.m
│ ├── duplicate_subfunction_separate_scope_ok.m
│ └── module.mk
├── bug-50035/
│ ├── @bug50035/
│ │ ├── bug50035.m
│ │ └── display.m
│ ├── bug-50035.tst
│ └── module.mk
├── bug-50395/
│ ├── bug-50395.tst
│ ├── bug50395_a.m
│ ├── bug50395_c.m
│ └── module.mk
├── bug-50716/
│ ├── bug-50716.tst
│ ├── module.mk
│ └── myclass.m
├── bug-50831/
│ ├── bug-50831.tst
│ └── module.mk
├── bug-51192/
│ ├── bug-51192.tst
│ ├── class_bug51192.m
│ └── module.mk
├── bug-51532/
│ ├── +package_bug51532/
│ │ └── foo.m
│ ├── bug-51532.tst
│ └── module.mk
├── bug-51534/
│ ├── bug-51534.tst
│ ├── child_bug51534.m
│ ├── module.mk
│ └── parent_bug51534.m
├── bug-51599/
│ ├── bug-51599.tst
│ ├── class_bug51599.m
│ └── module.mk
├── bug-52075/
│ ├── bug-52075.tst
│ ├── class_bug52075.m
│ └── module.mk
├── bug-52722/
│ ├── bug-52722.tst
│ ├── define_globals.m
│ ├── include_globals.m
│ └── module.mk
├── bug-52851/
│ ├── bug-52851.tst
│ ├── module.mk
│ ├── script1.m
│ ├── script2.m
│ ├── script3.m
│ └── script4.m
├── bug-53027/
│ ├── bug-53027.tst
│ ├── globals53027.m
│ ├── gtest53027.m
│ ├── module.mk
│ ├── ntest53027a.m
│ ├── ntest53027b.m
│ └── ntest53027c.m
├── bug-53468/
│ ├── bug-53468.tst
│ ├── module.mk
│ ├── ofig403.ofig
│ ├── ofig421.ofig
│ └── ofig51.ofig
├── bug-53579.tst
├── bug-53599.tst
├── bug-53956/
│ ├── bug-53956.tst
│ ├── bug53956_class_2.m
│ ├── bug53956_class_3.m
│ ├── bug53956_class_4.m
│ └── module.mk
├── bug-54490.tst
├── bug-54995/
│ ├── @testclass54995/
│ │ ├── subsref.m
│ │ └── testclass54995.m
│ ├── bug-54995.tst
│ └── module.mk
├── bug-55308.tst
├── bug-55321.tst
├── bug-55322.tst
├── bug-55758/
│ ├── bug-55758.tst
│ ├── class_bug_55758.m
│ └── module.mk
├── bug-56068/
│ ├── bug-56068.tst
│ ├── bug_56068.m
│ └── module.mk
├── bug-58572/
│ ├── bug-58572.tst
│ ├── bug58572.m
│ └── module.mk
├── bug-58593/
│ ├── bug-58593.tst
│ ├── module.mk
│ ├── myclass1.m
│ └── myclass2.m
├── bug-59451/
│ ├── bug-59451.tst
│ ├── bug59451.m
│ ├── foo/
│ │ ├── @double/
│ │ │ └── bug59451.m
│ │ └── @single/
│ │ └── bug59451.m
│ └── module.mk
├── bug-59617/
│ ├── @bug59617/
│ │ ├── bug59617.m
│ │ └── max.m
│ ├── bug-59617.tst
│ └── module.mk
├── bug-59661/
│ ├── bug-59661.tst
│ ├── bug59661.m
│ └── module.mk
├── bug-59704/
│ ├── bug-59704.tst
│ ├── bug59704_1.m
│ ├── bug59704_1_test.m
│ ├── bug59704_2.m
│ └── module.mk
├── bug-59937/
│ ├── bug-59937.tst
│ ├── eval_global_script.m
│ └── module.mk
├── bug-59950.tst
├── bug-60237/
│ ├── bug-60237.tst
│ ├── bug_60237.m
│ └── module.mk
├── bug-60726/
│ ├── @class2_bug60726/
│ │ ├── class2_bug60726.m
│ │ └── subsref.m
│ ├── bug60726.tst
│ ├── class_bug60726.m
│ └── module.mk
├── bug-60882/
│ ├── bug-60882.tst
│ ├── bug_60882.m
│ └── module.mk
├── bug-61105/
│ ├── bug-61105.tst
│ ├── module.mk
│ ├── nested_test_1.m
│ ├── nested_test_2.m
│ └── nested_test_3.m
├── bug-61191/
│ ├── bug-61191.tst
│ ├── module.mk
│ └── subdir/
│ └── bug_61191.m
├── bug-61201.tst
├── bug-63841/
│ ├── @cls2_b63841/
│ │ ├── cls2_b63841.m
│ │ └── subsref.m
│ ├── bug-63841.tst
│ ├── cls_b63841.m
│ └── module.mk
├── bug-64620/
│ ├── bug-64620.tst
│ ├── bug_64620_1.m
│ ├── bug_64620_2.m
│ ├── cdef_counts_self.m
│ └── module.mk
├── bug-65037/
│ ├── bug-65037.tst
│ ├── bug65037_base.m
│ ├── bug65037_derived.m
│ └── module.mk
├── bug-65153.tst
├── bug-67096/
│ ├── bug-67096.tst
│ ├── class_bug67096.m
│ └── module.mk
├── bug-67403/
│ ├── bug-67403.tst
│ ├── class_bug67403.m
│ └── module.mk
├── bug-67964/
│ ├── bug-67964.tst
│ ├── foo1.mat
│ ├── foo2.mat
│ └── module.mk
├── class-concat/
│ ├── @foo/
│ │ └── foo.m
│ ├── class-concat.tst
│ └── module.mk
├── classdef/
│ ├── @class_bug62802/
│ │ ├── amethod.m
│ │ └── class_bug62802.m
│ ├── @class_bug67362/
│ │ ├── class_bug67362.m
│ │ └── shared_name.m
│ ├── @osc/
│ │ └── osc.m
│ ├── bug_60763.m
│ ├── cdef_array_break_cycles.m
│ ├── class_bug50011_1.m
│ ├── class_bug50011_1A.m
│ ├── class_bug50011_1B.m
│ ├── class_bug50011_2.m
│ ├── class_bug50011_2A.m
│ ├── class_bug50011_2B.m
│ ├── class_bug52614A.m
│ ├── class_bug52614B.m
│ ├── class_bug55766.m
│ ├── class_bug59775A.m
│ ├── class_bug59775B.m
│ ├── class_bug60723A.m
│ ├── class_bug60723B.m
│ ├── class_bug60723C.m
│ ├── class_bug66930A.m
│ ├── class_bug66930B.m
│ ├── class_bug67845A.m
│ ├── class_bug67845A_handle.m
│ ├── class_bug67845B.m
│ ├── class_bug67845B_handle.m
│ ├── class_bug67845C.m
│ ├── class_bug67845C_handle.m
│ ├── class_pair.m
│ ├── class_pair_elem.m
│ ├── class_pair_elem_dominant.m
│ ├── class_pair_elem_dominant_handle.m
│ ├── class_pair_elem_handle.m
│ ├── class_pair_handle.m
│ ├── classdef.tst
│ ├── foo_handle_class.m
│ ├── foo_method_changes_property_size.m
│ ├── foo_static_method_constant_property.m
│ ├── foo_subsref_subsasgn.m
│ ├── foo_value_class.m
│ ├── handle_class.m
│ ├── module.mk
│ ├── overloaded_all_class.m
│ ├── overloaded_all_class_handle.m
│ ├── overloaded_any_class.m
│ ├── overloaded_any_class_handle.m
│ ├── overloaded_cat_class.m
│ ├── overloaded_cat_class_handle.m
│ ├── overloaded_ctranspose_class.m
│ ├── overloaded_ctranspose_class_handle.m
│ ├── overloaded_horzcat_vertcat_class.m
│ ├── overloaded_horzcat_vertcat_class_handle.m
│ ├── overloaded_permute_class.m
│ ├── overloaded_permute_class_handle.m
│ ├── overloaded_sizeof_class.m
│ ├── overloaded_subsref.m
│ ├── overloaded_transpose_class.m
│ ├── overloaded_transpose_class_handle.m
│ ├── plist_t1.m
│ ├── plist_t2.m
│ ├── plist_t3.m
│ ├── struct_wrapper.m
│ ├── value_class.m
│ ├── value_class_reshape.m
│ └── value_class_subclass.m
├── classdef-debug/
│ ├── classdef_breakpoints.m
│ ├── classdef_breakpoints2.m
│ ├── module.mk
│ └── test-classdef-breakpoints.tst
├── classdef-load-save/
│ ├── changed-class/
│ │ └── loadobj_changed_class.m
│ ├── classdef-load-save-text.tst
│ ├── classdef-load-save-v6.tst
│ ├── classdef-load-save-v7.tst
│ ├── custom_saveobj.m
│ ├── invalid_saveobj_class.m
│ ├── loadobj_changed_class.m
│ ├── loadobj_class.m
│ ├── loadobj_saveobj_class.m
│ ├── module.mk
│ ├── regular_class.m
│ ├── regular_class_construct_on_load.m
│ ├── regular_class_with_constructor.m
│ ├── regular_handle_class.m
│ ├── saveobj_obj_class.m
│ ├── saveobj_struct_class.m
│ └── transient_property_class.m
├── classdef-multiple-inheritance/
│ ├── base_1.m
│ ├── base_2.m
│ ├── child_from_base_1.m
│ ├── child_from_base_1_and_2.m
│ ├── classdef-multiple-inheritance.tst
│ └── module.mk
├── classes/
│ ├── @Blork/
│ │ ├── Blork.m
│ │ ├── bleek.m
│ │ ├── display.m
│ │ ├── get.m
│ │ └── set.m
│ ├── @CPrecedenceTester1/
│ │ ├── CPrecedenceTester1.m
│ │ ├── double.m
│ │ ├── plus.m
│ │ └── tattack.m
│ ├── @CPrecedenceTester2/
│ │ ├── CPrecedenceTester2.m
│ │ ├── double.m
│ │ ├── plus.m
│ │ └── tattack.m
│ ├── @CPrecedenceTester3/
│ │ ├── CPrecedenceTester3.m
│ │ ├── double.m
│ │ ├── plus.m
│ │ └── tattack.m
│ ├── @Cork/
│ │ ├── Cork.m
│ │ ├── click.m
│ │ ├── display.m
│ │ ├── get.m
│ │ └── set.m
│ ├── @Dork/
│ │ ├── Dork.m
│ │ ├── bling.m
│ │ ├── display.m
│ │ ├── gack.m
│ │ ├── get.m
│ │ ├── getStash.m
│ │ ├── private/
│ │ │ └── myStash.m
│ │ └── set.m
│ ├── @Gork/
│ │ ├── Gork.m
│ │ ├── cork.m
│ │ ├── display.m
│ │ ├── gark.m
│ │ ├── get.m
│ │ ├── set.m
│ │ ├── subsasgn.m
│ │ └── subsref.m
│ ├── @Pork/
│ │ ├── Pork.m
│ │ ├── bling.m
│ │ ├── display.m
│ │ ├── get.m
│ │ ├── gurk.m
│ │ ├── private/
│ │ │ └── myStash.m
│ │ └── set.m
│ ├── @SizeTester/
│ │ ├── SizeTester.m
│ │ ├── numel.m
│ │ └── size.m
│ ├── @Sneetch/
│ │ ├── Sneetch.m
│ │ └── display.m
│ ├── @Snork/
│ │ ├── Snork.m
│ │ ├── cack.m
│ │ ├── ctranspose.m
│ │ ├── display.m
│ │ ├── double.m
│ │ ├── end.m
│ │ ├── eq.m
│ │ ├── ge.m
│ │ ├── get.m
│ │ ├── getStash.m
│ │ ├── gick.m
│ │ ├── gt.m
│ │ ├── horzcat.m
│ │ ├── ldivide.m
│ │ ├── le.m
│ │ ├── loadobj.m
│ │ ├── lt.m
│ │ ├── minus.m
│ │ ├── mldivide.m
│ │ ├── mpower.m
│ │ ├── mrdivide.m
│ │ ├── mtimes.m
│ │ ├── ne.m
│ │ ├── plus.m
│ │ ├── power.m
│ │ ├── private/
│ │ │ └── myStash.m
│ │ ├── rdivide.m
│ │ ├── saveobj.m
│ │ ├── set.m
│ │ ├── subsasgn.m
│ │ ├── subsindex.m
│ │ ├── subsref.m
│ │ ├── tattack.m
│ │ ├── times.m
│ │ ├── transpose.m
│ │ ├── uminus.m
│ │ ├── uplus.m
│ │ └── vertcat.m
│ ├── @Spork/
│ │ ├── Spork.m
│ │ ├── cack.m
│ │ ├── display.m
│ │ ├── geek.m
│ │ ├── get.m
│ │ ├── getStash.m
│ │ ├── loadobj.m
│ │ ├── private/
│ │ │ └── myStash.m
│ │ ├── saveobj.m
│ │ └── set.m
│ ├── classes.tst
│ └── module.mk
├── colon-op/
│ ├── @legacy_colon_op/
│ │ ├── colon.m
│ │ └── legacy_colon_op.m
│ ├── colon-op.tst
│ ├── colon_op.m
│ └── module.mk
├── colormaps.tst
├── command.tst
├── complex.tst
├── ctor-vs-method/
│ ├── @derived/
│ │ ├── derived.m
│ │ └── parent.m
│ ├── @other/
│ │ ├── other.m
│ │ └── parent.m
│ ├── @parent/
│ │ ├── method.m
│ │ └── parent.m
│ ├── __trace__.m
│ ├── ctor-vs-method.tst
│ └── module.mk
├── deprecate-props.tst
├── diag-perm.tst
├── error.tst
├── eval-catch.tst
├── eval-command.tst
├── fcn-handle/
│ ├── +pkga/
│ │ └── +pkgb/
│ │ ├── bug51709_a.m
│ │ ├── bug51709_b.m
│ │ ├── f1.m
│ │ └── f2.m
│ ├── @fhdr_derived/
│ │ └── fhdr_derived.m
│ ├── @fhdr_other/
│ │ ├── fhdr_other.m
│ │ ├── getsize_arrayfun.m
│ │ ├── getsize_cellfun.m
│ │ └── getsize_loop.m
│ ├── @fhdr_parent/
│ │ ├── fhdr_parent.m
│ │ └── numel.m
│ ├── bug-51567.tst
│ ├── bug-57941.tst
│ ├── bug51567.m
│ ├── bug51709_a.m
│ ├── bug51709_c.m
│ ├── bug57941a.m
│ ├── bug57941b.m
│ ├── bug58519.tst
│ ├── bug60845.m
│ ├── derived-resolution.tst
│ ├── f1.m
│ ├── handle-to-sibling.tst
│ ├── keyword.tst
│ ├── module.mk
│ ├── object-method.tst
│ ├── package-function.tst
│ ├── shared-ctx.tst
│ ├── shared_ctx.m
│ └── static-method.tst
├── file-encoding/
│ ├── .oct-config
│ ├── CP1251/
│ │ ├── .oct-config
│ │ └── test_CP1251.m
│ ├── file-encoding.tst
│ ├── module.mk
│ └── test_CP1252.m
├── fntests.m
├── for.tst
├── func.tst
├── global.tst
├── help/
│ ├── cdefdir/
│ │ ├── cdef_help1.m
│ │ ├── cdef_help2.m
│ │ ├── cdef_help3.m
│ │ └── cdef_help4.m
│ ├── function_with_utf_8_doc_string.m
│ ├── help.tst
│ ├── module.mk
│ └── undoc_fcn.m
├── if.tst
├── index.tst
├── inline-fcn.tst
├── integer.tst
├── io.tst
├── json/
│ ├── jsondecode.tst
│ ├── jsonencode.tst
│ └── module.mk
├── jupyter-notebook/
│ ├── jupyter-notebook.tst
│ ├── module.mk
│ ├── octave-kernel.ipynb
│ └── plot-magic-and-errors.ipynb
├── leftdiv.tst
├── line-continue.tst
├── load-path/
│ ├── in-load-path/
│ │ └── load_path_fcn.m
│ ├── module.mk
│ ├── namespace-builtin/
│ │ └── +namespace_test/
│ │ └── quad.m
│ ├── namespace-corelib/
│ │ └── +namespace_test/
│ │ └── plot.m
│ ├── not-in-load-path/
│ │ └── load_path_fcn.m
│ ├── refresh-load-path.tst
│ ├── shadowed-builtin/
│ │ └── quad.m
│ └── shadowed-corelib/
│ └── plot.m
├── local-functions/
│ ├── local-functions.tst
│ ├── local_function_eval.m
│ └── module.mk
├── logical-index.tst
├── mex/
│ ├── bug-51725.tst
│ ├── bug-54096.tst
│ ├── bug_51725.c
│ ├── bug_54096.c
│ ├── mexnumtst.c
│ ├── mexnumtst.tst
│ └── module.mk
├── mk-bc-overloads-tst.sh
├── mk-conv-tst.sh
├── mk-sparse-tst.sh
├── mk_bc_overloads_expected.m
├── nest/
│ ├── arg_nest.m
│ ├── arg_ret.m
│ ├── bug_59989.m
│ ├── counter.m
│ ├── module.mk
│ ├── nest.tst
│ ├── nest_eval.m
│ ├── no_closure.m
│ ├── nst1.m
│ ├── nst2.m
│ ├── nst3.m
│ ├── persistent_nest.m
│ ├── recursive_nest.m
│ ├── recursive_nest2.m
│ ├── recursive_nest3.m
│ ├── scope0.m
│ ├── scope1.m
│ ├── scope2.m
│ ├── scope3.m
│ ├── script_nest.m
│ ├── script_nest_2.m
│ ├── script_nest_script.m
│ ├── script_nest_script_2.m
│ ├── varg_nest.m
│ └── varg_nest2.m
├── null-assign.tst
├── parser.tst
├── pkg/
│ ├── mfile-basic-test/
│ │ ├── COPYING
│ │ ├── DESCRIPTION
│ │ ├── INDEX
│ │ ├── NEWS
│ │ ├── doc/
│ │ │ ├── example-package.txi
│ │ │ └── macros.texi
│ │ └── inst/
│ │ └── example_mfile.m
│ ├── mfile-minimal-test/
│ │ ├── COPYING
│ │ ├── DESCRIPTION
│ │ └── inst/
│ │ └── example_mfile.m
│ ├── module.mk
│ └── pkg.tst
├── prefer.tst
├── private-functions/
│ ├── fcn.m
│ ├── module.mk
│ ├── private/
│ │ ├── ascript.m
│ │ ├── bscript.m
│ │ ├── pfcn1.m
│ │ └── pfcn2.m
│ └── private-functions.tst
├── publish/
│ ├── module.mk
│ ├── publish.tst
│ ├── test_script.m
│ ├── test_script_code_only.m
│ ├── test_script_empty.m
│ ├── test_script_example.m
│ └── test_script_head_only.m
├── range.tst
├── recursion.tst
├── return.tst
├── show-failures.awk
├── single-index.tst
├── slice.tst
├── sparse-assign.tst
├── sparse-broadcasting.tst
├── struct.tst
├── switch.tst
├── system.tst
├── transpose.tst
├── try.tst
├── unwind.tst
└── while.tst
================================================
FILE CONTENTS
================================================
================================================
FILE: .dir-locals.el
================================================
((nil .
((c-file-style . "gnu")
(indent-tabs-mode . nil)
(fill-column . 72)))
(change-log-mode . ((indent-tabs-mode . t)))
(makefile-mode . ((indent-tabs-mode . t))))
================================================
FILE: .editorconfig
================================================
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
[*.{am,mk}]
indent_size = tab
indent_style = tab
================================================
FILE: .gitattributes
================================================
# line endings in repository match line endings on disc
* -text
================================================
FILE: .github/dependabot.yml
================================================
# Set update schedule for GitHub Actions
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every week
interval: "weekly"
================================================
FILE: .github/workflows/codeql-analysis.yaml
================================================
name: "CodeQL"
on:
schedule:
# Run job every Monday and Thursday at 16:30 UTC
- cron: '30 16 * * 1,4'
workflow_dispatch:
jobs:
ubuntu:
name: CodeQL analysis (Ubuntu)
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Override automatic language detection by changing the below list
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
language: ['cpp']
# Learn more...
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
steps:
- name: checkout repository
uses: actions/checkout@v6
- name: install dependencies
run: |
sudo apt -qq update
sudo apt install -y autoconf automake bison dvipng epstool fig2dev \
flex g++ gcc gfortran gnuplot-x11 gperf gzip icoutils \
libarpack2-dev libblas-dev libcurl4-gnutls-dev libfftw3-dev \
libfltk1.3-dev libfontconfig1-dev libfreetype6-dev \
libgl1-mesa-dev libgl2ps-dev libglpk-dev libgraphicsmagick++1-dev \
libhdf5-dev liblapack-dev libosmesa6-dev libpcre2-dev \
libqhull-dev libqscintilla2-qt5-dev libqrupdate-dev \
libreadline-dev librsvg2-bin libsndfile1-dev libsuitesparse-dev \
libsundials-dev libtool libxft-dev make openjdk-8-jdk \
perl portaudio19-dev pstoedit qtbase5-dev qttools5-dev \
qttools5-dev-tools rapidjson-dev rsync tar zlib1g-dev
- name: bootstrap
run: GNULIB_URL=https://github.com/coreutils/gnulib.git ./bootstrap
- name: configure
run: |
mkdir .build
cd .build && ../configure \
CPPFLAGS="-I/usr/include/hdf5/serial -I/usr/include/suitesparse" \
LDFLAGS="-L/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/hdf5/serial" \
--disable-docs
- name: initialize CodeQL
# Initialize the CodeQL tools for scanning.
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
- name: build
run: make -C ./.build all -j2 V=1
- name: perform CodeQL analysis
uses: github/codeql-action/analyze@v4
windows:
name: CodeQL analysis (Windows)
runs-on: windows-latest
defaults:
run:
# Use MSYS2 as default shell
shell: msys2 {0}
strategy:
fail-fast: false
matrix:
# Override automatic language detection by changing the below list
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
language: ['cpp']
# Learn more...
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
msystem: ['MINGW64']
include:
- msystem: 'MINGW64'
env:
CHERE_INVOKING: 1
# perl uses cmd shell by default
PERL5SHELL: bash -l -c
steps:
- uses: msys2/setup-msys2@v2
with:
update: true
# Use pre-installed version to save disc space on partition with source.
# We need that space for building.
release: false
# The packages are listed in (alphabetically sorted) blocks:
# The first block is for mandatory dependencies.
# The second block is for optional dependencies needed when building from a release tarball.
# The third block is for additional dependencies needed when building from a repository checkout.
pacboy: >-
autotools:p
cc:p
fc:p
gperf:p
openblas:p
pcre2:p
readline:p
arpack:p
curl:p
fftw:p
fltk:p
gl2ps:p
glpk:p
ghostscript:p
gnuplot:p
graphicsmagick:p
hdf5:p
libsndfile:p
portaudio:p
qhull:p
qrupdate:p
qscintilla:p
qt5-base:p
qt5-imageformats:p
qt5-svg:p
qt5-tools:p
rapidjson:p
suitesparse:p
sundials:p
ccache:p
icoutils:p
librsvg:p
texinfo:p
install: >-
base-devel
git
texinfo
msystem: ${{ matrix.msystem }}
- name: checkout repository
uses: actions/checkout@v6
- name: bootstrap
run: GNULIB_URL=https://github.com/coreutils/gnulib.git ./bootstrap
- name: configure
# configure sometimes hangs while compiling 32bit Fortran.
# It should take much less than 30 minutes. Cancel the step if it takes longer.
timeout-minutes: 30
# FIXME: Fix building with Java support. Override JAVA_HOME for now.
# FIXME: How do we get a working TeX environment in MSYS2? Disable building the documentation for now.
# Linking with ncurses fails. Use termcap library instead.
run: |
mkdir .build
cd .build && ../configure \
JAVA_HOME="" \
--disable-docs \
--with-qt=5
- name: initialize CodeQL
# Initialize the CodeQL tools for scanning.
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
- name: build
# Spawning processes seems to have a big overhead on this platform.
# Use a somewhat larger number of parallel processes to compensate for that.
run: make -C ./.build all -j8 V=1
- name: perform CodeQL analysis
uses: github/codeql-action/analyze@v4
================================================
FILE: .github/workflows/make-alpine.yaml
================================================
name: make-alpine
on:
workflow_dispatch:
push:
concurrency: ci-alpine-${{ github.ref }}
jobs:
alpine:
runs-on: ubuntu-latest
name: Alpine (x86, musl)
defaults:
run:
# Use emulated shell as default
shell: alpine.sh {0}
env:
LIBGL_ALWAYS_SOFTWARE: "1"
steps:
- name: get CPU information
shell: bash
run: |
cat /proc/cpuinfo
- name: checkout repository
uses: actions/checkout@v6
- name: install dependencies
uses: jirutka/setup-alpine@v1
with:
# For available CPU architectures, see:
# https://github.com/marketplace/actions/setup-alpine-linux-environment
arch: x86
# QScintilla-Qt6 is currently not distributed by Alpine Linux. When
# it is, consider switching to Qt6 packages:
# qt6-qt5compat-dev
# qt6-qttools-dev
# The following packages are only needed to buid and install gl2ps:
# cmake
# wget
# libpng
# sudo
# ARPACK as distributed for Alpine latest-stable seems to be broken:
# arpack-dev
packages: >
build-base
autoconf
automake
m4
git
ccache
coreutils
gfortran
flex
gperf
icoutils
mesa-dri-gallium
libtool
libltdl
rsvg-convert
texlive-dvi
bison
curl-dev
fftw-dev
fltk-dev
fontconfig-dev
freetype-dev
ghostscript-dev
glpk-dev
glu-dev
gnuplot
graphicsmagick-dev
hdf5-dev
lcms2-dev
libsm-dev
libsndfile-dev
openblas-dev
pcre2-dev
perl
portaudio-dev
qhull-dev
qrupdate-dev
qscintilla-dev
qt5-qttools-dev
qscintilla-dev
rapidjson-dev
readline-dev
suitesparse-dev
texinfo
texmf-dist-lang
texmf-dist-latexrecommended
texmf-dist-plaingeneric
xvfb-run
xz-dev
zlib-dev
bzip2
gzip
tar
zip
cmake
wget
libpng
sudo
- name: prepare ccache
# create key with human readable timestamp
# used in action/cache/restore and action/cache/save steps
id: ccache-prepare
run: |
echo "key=ccache:alpine:x86:${{ github.ref }}:$(date +"%Y-%m-%d_%H-%M-%S"):${{ github.sha }}" >> $GITHUB_OUTPUT
- name: restore ccache
# setup the github cache used to maintain the ccache from one job to the next
uses: actions/cache/restore@v5
with:
# location of the ccache of the chroot in the root file system
path: /home/runner/rootfs/alpine-latest-x86/home/runner/.ccache
key: ${{ steps.ccache-prepare.outputs.key }}
restore-keys: |
ccache:alpine:x86:${{ github.ref }}
ccache:alpine:x86:refs/heads/default
- name: configure ccache
run: |
test -d ~/.ccache || mkdir ~/.ccache
echo "max_size = 1G" >> ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
ccache --version
ccache -p
ccache -s
echo "/usr/lib/ccache/bin" >> $GITHUB_PATH
- name: build gl2ps
# gl2ps is currently not distributed by Alpine Linux.
# We need it for printing.
# As of 2025/12/14, gl2ps is in the Alpine Linux testing repository.
run: |
mkdir -p gl2ps && cd gl2ps
printf "::group::\033[0;32m==>\033[0m Download tarball\n"
wget -O gl2ps-1.4.2.tgz https://geuz.org/gl2ps/src/gl2ps-1.4.2.tgz
echo "::endgroup::"
printf "::group::\033[0;32m==>\033[0m Unpack tarball\n"
tar zxvf gl2ps-1.4.2.tgz
echo "::endgroup::"
printf "::group::\033[0;32m==>\033[0m Configure\n"
mkdir -p build && cd build
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
../gl2ps-1.4.2
echo "::endgroup::"
printf "::group::\033[0;32m==>\033[0m Build\n"
cmake --build .
echo "::endgroup::"
printf "::group::\033[0;32m==>\033[0m Install\n"
sudo cmake --install .
echo "::endgroup::"
- name: bootstrap
run: GNULIB_URL=https://github.com/coreutils/gnulib.git ./bootstrap
- name: configure
id: configure
timeout-minutes: 30
run: |
echo $PATH
echo which ccache
which ccache
which gcc
echo gcc --version
gcc --version
which g++
echo g++ --version
g++ --version
which gfortran
echo gfortran --version
gfortran --version
mkdir .build
echo "::group::Run configure script"
# The default stack size for "new threads" is a measly 128 kiB for
# musl. Manually, set the stack size for "new threads" to 1.5 MiB
# which is still a lot smaller than the current default of 8 MiB that
# is used, e.g., by Ubuntu 24.10. Without that, running Octave fails
# at "random" tests.
cd .build && ../configure LDFLAGS="-Wl,-z,stack-size=1572864"
echo "::endgroup::"
- name: display config.log
if: always() && (steps.configure.outcome != 'skipped')
continue-on-error: true
# Displaying the log shouldn't take long. Cancel the step if it does.
timeout-minutes: 5
run: cat ./.build/config.log
- name: build
# Parallel make seems to fail intermittently when creating the figures
# for the manual. The error message says it fails to connect to a
# display. Maybe an xvfb issue?
# Use single job make for now which seems to work more reliably.
run: |
XDG_RUNTIME_DIR=$RUNNER_TEMP xvfb-run -a make -C ./.build all V=1
- name: ccache status
run: ccache -s
- name: save ccache
# Save the cache after we are done (successfully) building
uses: actions/cache/save@v5
with:
path: /home/runner/rootfs/alpine-latest-x86/home/runner/.ccache
key: ${{ steps.ccache-prepare.outputs.key }}
- name: check
id: run-test-suite
timeout-minutes: 60
run: |
./.build/run-octave --no-init-file --no-history --eval "version -blas, version -lapack"
XDG_RUNTIME_DIR=$RUNNER_TEMP \
xvfb-run -a make -C ./.build check | tee ./test-suite.log
- name: display test suite log
if: always() && (steps.run-test-suite.outcome != 'skipped')
continue-on-error: true
# Displaying the log shouldn't take long. Cancel the step if it does.
timeout-minutes: 5
run: cat ./.build/test/fntests.log
- name: test history file creation
# see bug #62365
# Pipe to an interactive session to trigger appending the command to
# the history. This will trigger the creation of a history file.
run: |
echo "history_file (make_absolute_filename ('./a/b/c/history')); disp ('test')" | ./.build/run-octave -i
[ -f ./a/b/c/history ] || echo "::warning::Creating history file failed"
- name: install
run: |
sudo make -C ./.build install
- name: test stand-alone executable
run: |
cd examples/code
mkoctfile --link-stand-alone embedded.cc -o embedded
LD_LIBRARY_PATH="/usr/local/lib/octave/$(octave --eval "disp(version())")" ./embedded
- name: test Octave packages
env:
# colon separated list of packages
# reasons for including these packages in the CI tests:
# * control: builds .oct files from C++ and Fortran sources
# * stk: builds .mex files from C sources
PACKAGE_NAMES: "control:stk"
run: |
unset CC
unset CXX
IFS=:
for package in ${PACKAGE_NAMES}; do
printf " \033[0;32m==>\033[0m Octave package \033[0;32m${package}\033[0m\n"
echo "::group::Install ${package}"
octave --eval "pkg install -verbose -forge ${package}"
echo "::endgroup::"
echo "::group::Test ${package}"
octave --eval "pkg test ${package}"
echo "::endgroup::"
echo "::group::Test log for ${package}"
cat ${GITHUB_WORKSPACE}/fntests.log
echo "::endgroup::"
done
- name: analyze test suite results
# Make sure the test summary lists 0 "FAIL"s and no "REGRESSION"
run: |
[ -n "$(grep -e "FAIL\s*0" ./test-suite.log)" ] \
|| echo "::warning::At least one test failed"
[ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] \
|| echo "::warning::At least one regression in test suite"
echo Finished analyzing test suite results.
================================================
FILE: .github/workflows/make-cross.yaml
================================================
name: make-cross-build
on:
workflow_dispatch:
# schedule:
# # Run job every Wednesday and Saturday at 16:30 UTC
# - cron: '30 16 * * 3,6'
push:
concurrency: ci-cross-build-${{ github.ref }}
jobs:
cross-build:
runs-on: ${{ matrix.os }}
strategy:
# Allow other runners in the matrix to continue if some fail
fail-fast: false
matrix:
# List of architectures that are supported by Ubuntu:
# https://canonical-ubuntu-packaging-guide.readthedocs-hosted.com/en/latest/reference/architectures/
arch: [armhf, ppc64el, s390x, riscv64]
include:
- arch: armhf
target-triple: arm-linux-gnueabihf
os: ubuntu-24.04-arm
ccache-max: 1G
qemu-user:
- arch: ppc64el
target-triple: powerpc64le-linux-gnu
os: ubuntu-24.04-arm
ccache-max: 1G
qemu-user: qemu-ppc64le
- arch: s390x
target-triple: s390x-linux-gnu
os: ubuntu-24.04
ccache-max: 1G
qemu-user: qemu-s390x
- arch: riscv64
target-triple: riscv64-linux-gnu
os: ubuntu-24.04-arm
ccache-max: 1.4G
qemu-user: qemu-riscv64
name: cross ${{ matrix.arch }}
env:
CC: ${{ matrix.target-triple }}-gcc
CXX: ${{ matrix.target-triple }}-g++
F77: ${{ matrix.target-triple }}-gfortran
steps:
- name: get CPU information
run: lscpu
- name: checkout repository
uses: actions/checkout@v6
- name: install toolchain for ${{ matrix.arch }}
run: |
sudo apt -qq update
sudo apt install -y \
g++-${{ matrix.target-triple }} \
gfortran-${{ matrix.target-triple }} \
autoconf automake bison ccache \
dvipng epstool fig2dev flex gnuplot-x11 gperf gzip icoutils \
libtool make perl pstoedit qt6-tools-dev-tools rsync tar texinfo \
${{ matrix.arch == 'armhf' && ' ' || 'qemu-user-binfmt' }}
- name: add repositories for ${{ matrix.arch }} packages
# deb822-style format:
# https://manpages.ubuntu.com/manpages/noble/man5/sources.list.5.html
run: |
sudo dpkg --add-architecture ${{ matrix.arch }}
case ${{ matrix.os }} in
"ubuntu-24.04-arm")
sudo bash -c 'cat - >/etc/apt/sources.list.d/ubuntu.sources' <<-EOF
Types: deb
URIs: http://ports.ubuntu.com/ubuntu-ports/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Architectures: arm64 ${{ matrix.arch }}
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: http://security.ports.ubuntu.com/ubuntu-ports/
Suites: noble-security
Components: main restricted universe multiverse
Architectures: arm64 ${{ matrix.arch }}
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
EOF
;;
"ubuntu-24.04")
sudo bash -c 'cat - >/etc/apt/sources.list.d/ubuntu.sources' <<-EOF
Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Architectures: amd64
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Architectures: amd64
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: http://ports.ubuntu.com/ubuntu-ports/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Architectures: ${{ matrix.arch }}
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: http://security.ports.ubuntu.com/ubuntu-ports/
Suites: noble-security
Components: main restricted universe multiverse
Architectures: ${{ matrix.arch }}
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
EOF
;;
esac
sudo apt update
- name: install dependencies for ${{ matrix.arch }}
run: |
sudo apt install -y \
libarpack2-dev:${{ matrix.arch }} \
libblas-dev:${{ matrix.arch }} \
libcurl4-gnutls-dev:${{ matrix.arch }} \
libfftw3-dev:${{ matrix.arch }} \
libfltk1.3-dev:${{ matrix.arch }} \
libfontconfig1-dev:${{ matrix.arch }} \
libfreetype6-dev:${{ matrix.arch }} \
libgl1-mesa-dev:${{ matrix.arch }} \
libgl2ps-dev:${{ matrix.arch }} \
libglpk-dev:${{ matrix.arch }} \
libgraphicsmagick++1-dev:${{ matrix.arch }} \
libhdf5-dev:${{ matrix.arch }} \
liblapack-dev:${{ matrix.arch }} \
libosmesa6-dev:${{ matrix.arch }} \
libpcre2-dev:${{ matrix.arch }} \
libqhull-dev:${{ matrix.arch }} \
libqscintilla2-qt6-dev:${{ matrix.arch }} \
libqrupdate-dev:${{ matrix.arch }} \
libreadline-dev:${{ matrix.arch }} \
librsvg2-bin:${{ matrix.arch }} \
libsndfile1-dev:${{ matrix.arch }} \
libsuitesparse-dev:${{ matrix.arch }} \
libxft-dev:${{ matrix.arch }} \
portaudio19-dev:${{ matrix.arch }} \
qt6-5compat-dev:${{ matrix.arch }} \
qt6-base-dev:${{ matrix.arch }} \
qt6-tools-dev:${{ matrix.arch }} \
rapidjson-dev:${{ matrix.arch }} \
zlib1g-dev:${{ matrix.arch }}
- name: prepare ccache
# create key with human readable timestamp
# used in action/cache/restore and action/cache/save steps
id: ccache-prepare
run: |
echo "key=ccache:cross:${{ matrix.os }}:${{ matrix.arch }}:${{ github.ref }}:$(date +"%Y-%m-%d_%H-%M-%S"):${{ github.sha }}" >> $GITHUB_OUTPUT
- name: restore ccache
# setup the github cache used to maintain the ccache from one job to the next
uses: actions/cache/restore@v5
with:
path: ~/.ccache
key: ${{ steps.ccache-prepare.outputs.key }}
restore-keys: |
ccache:cross:${{ matrix.os }}:${{ matrix.arch }}:${{ github.ref }}
ccache:cross:${{ matrix.os }}:${{ matrix.arch }}:refs/heads/default
- name: configure ccache
env:
CCACHE_MAX: ${{ matrix.ccache-max }}
run: |
test -d ~/.ccache || mkdir ~/.ccache
echo "max_size = $CCACHE_MAX" >> ~/.ccache/ccache.conf
ccache -s
echo "/usr/lib/ccache" >> $GITHUB_PATH
- name: bootstrap
run: GNULIB_URL=https://github.com/coreutils/gnulib.git ./bootstrap
- name: configure
id: configure
timeout-minutes: 30
run: |
echo $PATH
echo which ccache
which ccache
which $CC
echo $CC --version
$CC --version
which ${CXX% *}
echo ${CXX% *} --version
${CXX% *} --version
which $F77
echo $F77 --version
$F77 --version
mkdir .build
echo "::group::Run configure script"
cd .build && ../configure \
--host=${{ matrix.target-triple }} \
--disable-docs \
--disable-java \
JAVA_HOME="" \
PKG_CONFIG_PATH=/usr/lib/${{ matrix.target-triple }}/pkgconfig/
echo "::endgroup::"
- name: display config.log
if: always() && (steps.configure.outcome != 'skipped')
continue-on-error: true
# Displaying the log shouldn't take long. Cancel the step if it does.
timeout-minutes: 5
run: cat ./.build/config.log
- name: build
run: XDG_RUNTIME_DIR=$RUNNER_TEMP make -C ./.build -j $(nproc) all V=1
- name: ccache status
run: ccache -s
- name: save ccache
# Save the cache after we are done (successfully) building
uses: actions/cache/save@v5
with:
path: ~/.ccache
key: ${{ steps.ccache-prepare.outputs.key }}
- name: check
id: run-test-suite
timeout-minutes: 60
env:
driver: ${{ matrix.qemu-user }}
# Without "-cli", there are deadlocks or crashes while running some
# tests that are related to graphics. This might be due to using qemu
# or xvfb-run or a combination of the two or an actual issue in Octave.
run: |
./.build/run-octave --no-init-file --no-history --eval "version -blas, version -lapack"
XDG_RUNTIME_DIR=$RUNNER_TEMP RUN_OCTAVE_OPTIONS="-cli" \
make -C ./.build check | tee ./test-suite.log
- name: display test suite log
if: always() && (steps.run-test-suite.outcome != 'skipped')
continue-on-error: true
# Displaying the log shouldn't take long. Cancel the step if it does.
timeout-minutes: 5
run: cat ./.build/test/fntests.log
- name: test history file creation
# see bug #62365
# Pipe to an interactive session to trigger appending the command to
# the history. This will trigger the creation of a history file.
run: |
echo "history_file (make_absolute_filename ('./a/b/c/history')); disp ('test')" | ./.build/run-octave -i
[ -f ./a/b/c/history ] || echo "::warning::Creating history file failed"
- name: install
run: |
sudo make -C ./.build install
- name: test stand-alone executable
run: |
unset CC
unset CXX
cd examples/code
mkoctfile --link-stand-alone embedded.cc -o embedded
LD_LIBRARY_PATH="/usr/local/lib/octave/$(octave --eval "disp(version())")" \
./embedded
- name: test Octave packages
env:
# colon separated list of packages
# reasons for including these packages in the CI tests:
# * control: builds .oct files from C++ and Fortran sources
# * stk: builds .mex files from C sources
PACKAGE_NAMES: "control:stk"
run: |
unset CC
unset CXX
IFS=':' read -r -a packages <<< "${PACKAGE_NAMES}"
for package in "${packages[@]}"; do
printf " \033[0;32m==>\033[0m Octave package \033[0;32m${package}\033[0m\n"
echo "::group::Install ${package}"
octave --eval "pkg install -verbose -forge ${package}"
echo "::endgroup::"
if [ ${{ matrix.arch }} = "armhf" ]; then
echo "::group::Test ${package}"
octave --eval "pkg test ${package}"
echo "::endgroup::"
echo "::group::Test log for ${package}"
cat ${GITHUB_WORKSPACE}/fntests.log
echo "::endgroup::"
fi
done
- name: analyze test suite results
# Make sure the test summary lists 0 "FAIL"s and no "REGRESSION"
run: |
[ -n "$(grep -e "FAIL\s*0" ./test-suite.log)" ] || exit 1
[ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] || exit 1
echo No unknown failing tests.
================================================
FILE: .github/workflows/make-cygwin.yaml
================================================
name: make-cygwin
on:
workflow_dispatch:
push:
concurrency: ci-cygwin-${{ github.ref }}
jobs:
cygwin:
runs-on: ${{ matrix.os }}
defaults:
run:
# Use Cygwin bash as default shell
shell: C:\cygwin\bin\bash.exe --login -eo pipefail -o igncr '{0}'
strategy:
# Allow other runners in the matrix to continue if some fail
fail-fast: false
matrix:
# For available GitHub-hosted runners, see: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
os: [windows-latest]
env:
CHERE_INVOKING: "1"
CC: gcc
CXX: g++
F77: gfortran
# ccache 3.1 doesn't read configuration files
CCACHE_COMPRESS: "1"
steps:
- name: get CPU name
shell: pwsh
run : |
Get-CIMInstance -Class Win32_Processor | Select-Object -Property Name
- name: checkout repository
# This must be done before installing Cygwin because their git is
# incompatible with this action.
uses: actions/checkout@v6
- name: install Cygwin build environment
uses: cygwin/cygwin-install-action@v6
with:
# The packages are listed in (alphabetically sorted) blocks:
# The first block is for mandatory dependencies.
# The second block is for optional dependencies needed when building from a release tarball.
# The third block is for additional dependencies needed when building from a repository checkout.
# The fourth block is for additional run-time dependencies (to run test suite) that aren't needed to build.
# FIXME: libklu-devel should depend on libbtf-devel. Install it manually even if Octave doesn't explicitly use it.
packages: >-
autoconf
automake
make
gcc-g++
gcc-fortran
bison
dash
flex
gperf
libtool
liblapack-devel
libpcre2-devel
libreadline-devel
ghostscript
gnuplot-base
libamd-devel
libarpack-devel
libbtf-devel
libbz2-devel
libcamd-devel
libccolamd-devel
libcholmod-devel
libcolamd-devel
libcurl-devel
libcxsparse-devel
libfftw3-devel
libfltk-devel
libfontconfig-devel
libfreetype-devel
libGL-devel
libgl2ps-devel
libglpk-devel
libGLU-devel
libgomp1
libGraphicsMagick-devel
libhdf5-devel
libiconv-devel
libklu-devel
libportaudio-devel
libqhull-devel
libqrupdate-devel
libqscintilla2_qt5-devel
libQt5Core-devel
libQt5Gui-devel
libQt5Help-devel
libsndfile-devel
libsuitesparseconfig-devel
libsundials-devel
libspqr-devel
libumfpack-devel
qt5-doc-tools
rapidjson-devel
ccache
git
icoutils
python
rsvg
texinfo
unzip
zip
- name: prepare ccache
# create key with human readable timestamp
# used in action/cache/restore and action/cache/save steps
id: ccache-prepare
run: |
echo "ccachedir=$(cygpath -m ~/.ccache)" >> $GITHUB_OUTPUT
echo "key=ccache:${{ matrix.os }}:cygwin:${{ github.ref }}:$(date +"%Y-%m-%d_%H-%M-%S"):${{ github.sha }}" >> $GITHUB_OUTPUT
- name: restore ccache
# Setup a github cache used to maintain the ccache from one run to the next
uses: actions/cache/restore@v5
with:
path: ${{ steps.ccache-prepare.outputs.ccachedir }}
key: ${{ steps.ccache-prepare.outputs.key }}
restore-keys: |
ccache:${{ matrix.os }}:cygwin:${{ github.ref }}
ccache:${{ matrix.os }}:cygwin:refs/heads/default
- name: configure ccache
run: |
# work around issue with ccache calling itself recursively
[ -f /usr/bin/ccache.exe ] && mv /usr/bin/ccache.exe /usr/bin/ccache
which ccache
ccache -V
# ccache 3.1 doesn't read configuration files
# test -d ${{ steps.ccache-prepare.outputs.ccachedir }} || mkdir -p ${{ steps.ccache-prepare.outputs.ccachedir }}
# echo "max_size = 0.9G" > ${{ steps.ccache-prepare.outputs.ccachedir }}/ccache.conf
# echo "compression = true" >> ${{ steps.ccache-prepare.outputs.ccachedir }}/ccache.conf
# limit maximum cache size to avoid exceeding the total disk or cache quota
ccache -M 0.9G
ccache -s
# create ccache symlinks for all compilers
test -d /usr/lib/ccache/bin || mkdir -p /usr/lib/ccache/bin
ln -s /usr/bin/ccache /usr/lib/ccache/bin/${CC}.exe
ln -s /usr/bin/ccache /usr/lib/ccache/bin/${CXX}.exe
ln -s /usr/bin/ccache /usr/lib/ccache/bin/${F77}.exe
# prepend path to ccache symlinks to PATH
echo 'export PATH="/usr/lib/ccache/bin:$PATH"' >> ~/.bash_profile
- name: bootstrap
run: GNULIB_URL=https://github.com/coreutils/gnulib.git ./bootstrap
- name: configure
id: configure
# FIXME: Fix building with Java support. Override JAVA_HOME for now.
# FIXME: How do we get a working TeX environment in Cygwin? Disable building the documentation for now.
# FIXME: Exporting symbols for instantiated template classes doesn't work currently. Maybe, test again when Cygwin updated to a newer compiler than GCC 11.4.0?
run: |
echo $PATH
which $CC
echo $CC --version
$CC --version
which $CXX
echo $CXX --version
$CXX --version
which $F77
echo $F77 --version
$F77 --version
mkdir .build
echo "::group::Run configure script"
cd .build && ../configure \
--libexecdir=/usr/lib \
--enable-shared \
--disable-java \
--disable-docs \
JAVA_HOME="" \
EGREP="grep -E" \
FLIBS="-lgfortran -lquadmath"
echo "::endgroup::"
- name: display config.log
if: always() && (steps.configure.outcome != 'skipped')
continue-on-error: true
# Displaying the log shouldn't take long. Cancel the step if it does.
timeout-minutes: 5
run: cat ./.build/config.log
- name: build
# Spawning processes seems to have a big overhead on this platform. Use a somewhat larger number of parallel processes to compensate for that.
run: |
EGREP="grep -E" make -C ./.build all -j8 V=1
- name: ccache status
continue-on-error: true
run: ccache -s
- name: save ccache
# Save the cache after we are done (successfully) building
uses: actions/cache/save@v5
with:
path: ${{ steps.ccache-prepare.outputs.ccachedir }}
key: ${{ steps.ccache-prepare.outputs.key }}
- name: rebase binaries
run: |
find ${GITHUB_WORKSPACE}/.build -name "*.oct" -or -name "*.dll" | tee binaries.list
rebase -O -T binaries.list
- name: check
id: run-test-suite
# Continuing on error in this step means that jobs will be "green" even
# if the test suite crashes. But if we don't continue, we'll loose the
# ccache.
# It would be nice if we could mark the job as "yellow" (and continue)
# in that case. The second best thing is to display a warning in the
# job summary (see below).
continue-on-error: true
timeout-minutes: 60
# mkoctfile seems to have trouble when gcc is called via ccache. So,
# remove the directory with the ccache wrappers from PATH.
run: |
export PATH=$(echo "$PATH" | sed -e "s|/usr/lib/ccache/bin:||g")
./.build/run-octave --no-init-file --no-history --eval "version -blas, version -lapack"
EGREP="grep -E" make -C ./.build check | tee ./test-suite.log
- name: display test suite log
if: always() && (steps.run-test-suite.outcome != 'skipped')
continue-on-error: true
# Displaying the log shouldn't take long. Cancel the step if it does.
timeout-minutes: 5
run: cat ./.build/test/fntests.log
- name: test history file creation
# see bug #62365
# Pipe to an interactive session to trigger appending the command to
# the history. This will trigger the creation of a history file.
run: |
echo "history_file (make_absolute_filename ('./a/b/c/history')); disp ('test')" | ./.build/run-octave -i
[ -f ./a/b/c/history ] || echo "::warning::Creating history file failed"
- name: install
run: |
make -C ./.build install
- name: test stand-alone executable
run: |
unset CC
unset CXX
export PATH=$(echo "$PATH" | sed -e "s|/usr/lib/ccache/bin:||g")
cd examples/code
mkoctfile --link-stand-alone embedded.cc -o embedded
./embedded.exe
- name: test Octave packages
env:
# colon separated list of packages
# reasons for including these packages in the CI tests:
# * control: builds .oct files from C++ and Fortran sources
# * stk: builds .mex files from C sources
PACKAGE_NAMES: "control:stk"
run: |
unset CC
unset CXX
export PATH=$(echo "$PATH" | sed -e "s|/usr/lib/ccache/bin:||g")
IFS=':' read -r -a packages <<< "${PACKAGE_NAMES}"
for package in "${packages[@]}"; do
printf " \033[0;32m==>\033[0m Octave package \033[0;32m${package}\033[0m\n"
echo "::group::Install ${package}"
octave --eval "pkg install -verbose -forge ${package}"
echo "::endgroup::"
echo "::group::Test ${package}"
octave --eval "pkg test ${package}"
echo "::endgroup::"
echo "::group::Test log for ${package}"
cat ${GITHUB_WORKSPACE}/fntests.log
echo "::endgroup::"
done
- name: analyze test suite results
# Make sure the test summary lists 0 "FAIL"s and no "REGRESSION"
run: |
[ -n "$(grep -e "FAIL\s*0" ./test-suite.log)" ] || echo "::warning::At least one test failed"
[ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] || echo "::warning::At least one regression in test suite"
echo Finished analyzing test suite results.
================================================
FILE: .github/workflows/make-macos.yaml
================================================
name: make-macos
on:
workflow_dispatch:
push:
concurrency: ci-macos-${{ github.ref }}
jobs:
macos:
runs-on: ${{ matrix.os }}
name: ${{ matrix.os }} Qt${{ matrix.qt }}
strategy:
# Allow other runners in the matrix to continue if some fail
fail-fast: false
matrix:
# For available GitHub-hosted runners, see: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
os: [macos-14, macos-15]
# Most (or all) homebrew packages are compiled with clang and link
# against libc++. So we also use clang to avoid issues with symbols
# that don't match.
# compiler: [real-gcc, clang]
compiler: [clang]
qt: [6]
include:
# - compiler: real-gcc
# cc: "/usr/local/bin/gcc-10"
# cxx: "/usr/local/bin/g++-10"
# cppflags: "-I/usr/local/opt/hdf5/include -I/usr/local/opt/gl2ps/include -I/usr/local/opt/glpk/include -I/usr/local/opt/pcre/include -I/usr/local/opt/qscintilla2/include -I/usr/local/opt/suite-sparse/include -I/usr/local/opt/sundials/include"
# ldflags: "-L/usr/local/opt/hdf5/lib -L/usr/local/opt/gl2ps/lib -L/usr/local/opt/glpk/lib -L/usr/local/opt/pcre/lib -L/usr/local/opt/qscintilla2/lib -L/usr/local/opt/suite-sparse/lib -L/usr/local/opt/sundials/lib"
- compiler: clang
cc: "clang"
cxx: "clang++"
- os: macos-15-intel
qt: "5"
cc: "clang"
cxx: "clang++"
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
F77: gfortran
steps:
- name: checkout repository
uses: actions/checkout@v6
- name: install dependencies
# This step sometimes takes long and still recovers. But sometimes it
# seems to hang indefinitely.
# Use a pretty long timeout (but still less than the default 6 hours).
timeout-minutes: 75
# Homebrew's Python conflicts with the Python that comes pre-installed
# on the GitHub runners. Some of Octave's dependencies depend on
# different versions of Homebrew's Python. Enforce using the ones from
# Homebrew to avoid errors on updates.
# See: https://github.com/orgs/Homebrew/discussions/3928
# It looks like "gfortran" isn't working correctly unless "gcc" is
# re-installed.
# See also: https://formulae.brew.sh/formula/octave#default
# The packages are listed in (alphabetically sorted) blocks:
# The first block is for "direct" dependencies.
# The second block is for additional dependencies needed when building from a release tarball.
# The third block is for additional dependencies needed when building from a repository checkout.
run: |
brew update
brew install --overwrite python@3.12 python@3.13
brew reinstall gcc
brew install arpack epstool fast_float fftw fig2dev fltk fontconfig \
freetype ghostscript gl2ps glpk gnuplot graphicsmagick hdf5 \
libiconv libsndfile libtool openblas pcre2 portaudio pstoedit \
qhull qrupdate qscintilla2 \
rapidjson readline suite-sparse sundials texinfo \
ccache gnu-sed openjdk pkg-config \
automake autoconf bison gettext icoutils librsvg mactex-no-gui
brew install --overwrite \
${{ matrix.qt == '6' && 'qt5compat qtbase qttools' || 'qt@5' }}
eval "$(/usr/libexec/path_helper)"
HOMEBREW_PREFIX=$(brew --prefix)
echo "HOMEBREW_PREFIX=$(brew --prefix)" >> $GITHUB_ENV
echo "/Library/TeX/texbin" >> $GITHUB_PATH
echo "${HOMEBREW_PREFIX}/opt/qt@${{ matrix.qt }}/bin" >> $GITHUB_PATH
echo "${HOMEBREW_PREFIX}/opt/texinfo/bin" >> $GITHUB_PATH
echo "${HOMEBREW_PREFIX}/opt/bison/bin" >> $GITHUB_PATH
echo "${HOMEBREW_PREFIX}/opt/gnu-sed/libexec/gnubin" >> $GITHUB_PATH
echo "${HOMEBREW_PREFIX}/opt/libiconv/bin" >> $GITHUB_PATH
- name: prepare ccache
# create key with human readable timestamp
# used in action/cache/restore and action/cache/save steps
id: ccache-prepare
run: |
echo "key=ccache:${{ matrix.os }}:${{ matrix.compiler }}:qt${{ matrix.qt }}:${{ github.ref }}:$(date +"%Y-%m-%d_%H-%M-%S"):${{ github.sha }}" >> $GITHUB_OUTPUT
- name: restore ccache
# setup the github cache used to maintain the ccache from one job to the next
uses: actions/cache/restore@v5
id: restore-ccache
with:
path: /Users/runner/Library/Caches/ccache
key: ${{ steps.ccache-prepare.outputs.key }}
restore-keys: |
ccache:${{ matrix.os }}:${{ matrix.compiler }}:qt${{ matrix.qt }}:${{ github.ref }}
ccache:${{ matrix.os }}:${{ matrix.compiler }}:qt${{ matrix.qt }}:refs/heads/default
- name: configure ccache
# The cache doesn't seem to compress well on macOS. Is it already compressed?
# Limit the maximum size to avoid exceeding the total cache limits.
run: |
test -d /Users/runner/Library/Preferences/ccache || mkdir /Users/runner/Library/Preferences/ccache
echo "max_size = 0.9G" >> /Users/runner/Library/Preferences/ccache/ccache.conf
ccache -s
echo "${HOMEBREW_PREFIX}/opt/ccache/libexec" >> $GITHUB_PATH
- name: bootstrap
run: GNULIB_URL=https://github.com/coreutils/gnulib.git ./bootstrap
- name: configure
id: configure
timeout-minutes: 30
env:
MY_CPPFLAGS: ${{ matrix.cppflags }}
MY_LDFLAGS: ${{ matrix.ldflags }}
# This is a hodgepodge of configure flags put together from the
# buildbot rules:
# https://hg.octave.org/octave-buildbot/file/tip/master.cfg#l543
# And the homebrew formula:
# https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/octave.rb
# Amended with additional flags that seem to be needed.
# Not all of those might be needed or be correct.
run: |
echo $PATH
echo which ccache
which ccache
which $CC
echo $CC --version
$CC --version
which $CXX
echo $CXX --version
$CXX --version
which $F77
echo $F77 --version
$F77 --version
mkdir .build
echo "::group::Run configure script"
cd .build && ../configure \
CPPFLAGS="-I${HOMEBREW_PREFIX}/opt/gettext/include -I${HOMEBREW_PREFIX}/opt/icu4c/include -I${HOMEBREW_PREFIX}/opt/libiconv/include -I${HOMEBREW_PREFIX}/opt/qt@${{ matrix.qt }}/include -I${HOMEBREW_PREFIX}/opt/readline/include -I${HOMEBREW_PREFIX}/opt/sqlite/include $MY_CPPFLAGS -I${HOMEBREW_PREFIX}/include" \
CXXFLAGS="-O2 -g" \
LDFLAGS="-L${HOMEBREW_PREFIX}/opt/bison/lib -L${HOMEBREW_PREFIX}/opt/gettext/lib -L${HOMEBREW_PREFIX}/opt/icu4c/lib -L${HOMEBREW_PREFIX}/opt/libiconv/lib -L${HOMEBREW_PREFIX}/opt/readline/lib -L${HOMEBREW_PREFIX}/opt/sqlite/lib $MY_LDFLAGS -L${HOMEBREW_PREFIX}/lib" \
PKG_CONFIG_PATH="${HOMEBREW_PREFIX}/opt/openblas/lib/pkgconfig:${HOMEBREW_PREFIX}/opt/icu4c/lib/pkgconfig:${HOMEBREW_PREFIX}/opt/qt@${{ matrix.qt }}/lib/pkgconfig" \
--with-qt=${{ matrix.qt }} \
QCOLLECTIONGENERATOR="qhelpgenerator" \
--with-x=no \
--with-blas="-L${HOMEBREW_PREFIX}/opt/openblas/lib -lopenblas" \
--with-java-homedir="${HOMEBREW_PREFIX}/opt/openjdk" \
--prefix="${HOME}/usr"
echo "::endgroup::"
- name: display config.log
if: always() && (steps.configure.outcome != 'skipped')
continue-on-error: true
# Displaying the log shouldn't take long. Cancel the step if it does.
timeout-minutes: 5
run: cat ./.build/config.log
- name: build
run: make -C ./.build all -j3 V=1
- name: ccache status
run: ccache -s
- name: save ccache
# Save the cache after we are done (successfully) building
uses: actions/cache/save@v5
with:
path: /Users/runner/Library/Caches/ccache
key: ${{ steps.ccache-prepare.outputs.key }}
- name: check
id: run-test-suite
# Continuing on error in this step means that jobs will be "green" even
# if the test suite crashes. But if we don't continue, we'll loose the
# ccache and other jobs will be cancelled, too.
# It would be nice if we could mark the job as "yellow" (and continue)
# in that case. The second best thing is to display a warning in the
# job summary (see below).
continue-on-error: true
timeout-minutes: 60
run: |
echo 'makeinfo_program ("${HOMEBREW_PREFIX}/opt/texinfo/bin/makeinfo");' >> ./scripts/startup/site-rcfile
./.build/run-octave --no-init-file --no-history --eval "version -blas, version -lapack"
make -C ./.build check | tee ./test-suite.log
- name: display test suite log
if: always() && (steps.run-test-suite.outcome != 'skipped')
continue-on-error: true
# Displaying the log shouldn't take long. Cancel the step if it does.
timeout-minutes: 5
run: cat ./.build/test/fntests.log
- name: test history file creation
# see bug #62365
# Pipe to an interactive session to trigger appending the command to
# the history. This will trigger the creation of a history file.
run: |
echo "history_file (make_absolute_filename ('./a/b/c/history')); disp ('test')" | ./.build/run-octave -i
[ -f ./a/b/c/history ] || echo "::warning::Creating history file failed"
- name: install
run: |
mkdir -p /Users/runner/usr
make -C ./.build install
- name: test stand-alone executable
run: |
unset CC
unset CXX
cd examples/code
PATH="/Users/runner/usr/bin:$PATH" \
mkoctfile --link-stand-alone embedded.cc -o embedded
./embedded
- name: test Octave packages
env:
# colon separated list of packages
# reasons for including these packages in the CI tests:
# * control: builds .oct files from C++ and Fortran sources
# * stk: builds .mex files from C sources
PACKAGE_NAMES: "control:stk"
run: |
unset CC
unset CXX
export F77=gfortran
export PATH="/Users/runner/usr/bin:$PATH"
IFS=':' read -r -a packages <<< "${PACKAGE_NAMES}"
for package in "${packages[@]}"; do
printf " \033[0;32m==>\033[0m Octave package \033[0;32m${package}\033[0m\n"
echo "::group::Install ${package}"
octave --eval "pkg install -verbose -forge ${package}"
echo "::endgroup::"
echo "::group::Test ${package}"
octave --eval "pkg test ${package}"
echo "::endgroup::"
echo "::group::Test log for ${package}"
cat ${GITHUB_WORKSPACE}/fntests.log
echo "::endgroup::"
done
- name: analyze test suite results
# Make sure the test summary lists 0 "FAIL"s and no "REGRESSION"
run: |
[ -n "$(grep -e "FAIL\s*0" ./test-suite.log)" ] || exit 1
[ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] || exit 1
echo No unknown failing tests.
================================================
FILE: .github/workflows/make-mingw.yaml
================================================
name: make-mingw
on:
workflow_dispatch:
push:
concurrency: ci-mingw-${{ github.ref }}
jobs:
mingw:
runs-on: ${{ matrix.os }}
name: mingw-w64 ${{ matrix.msystem }}
defaults:
run:
# Use MSYS2 as default shell
shell: msys2 {0}
strategy:
# Allow other runners in the matrix to continue if some fail
fail-fast: false
matrix:
# For available GitHub-hosted runners, see: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
msystem: [MINGW64, CLANG64, CLANGARM64]
include:
- msystem: MINGW64
os: windows-latest
mingw-prefix: mingw64
cc: gcc
cxx: g++
f77: gfortran
extra-config-flags: ""
ccache-max: 0.9G
allow-error: false
- msystem: CLANG64
os: windows-latest
mingw-prefix: clang64
cc: clang
cxx: clang++
f77: flang
# Clang seems to require a different set of dllexport attributes than GCC.
extra-config-flags:
--disable-lib-visibility-flags
ccache-max: 400M
# This configuration is not fully supported yet
allow-error: true
- msystem: CLANGARM64
os: windows-11-arm
mingw-prefix: clangarm64
cc: clang
cxx: clang++
f77: flang
# Clang seems to require a different set of dllexport attributes than GCC.
extra-config-flags:
--disable-lib-visibility-flags
ccache-max: 400M
# This configuration is not fully supported yet
allow-error: true
env:
CHERE_INVOKING: 1
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
F77: ${{ matrix.f77 }}
# perl uses cmd shell by default
PERL5SHELL: bash -l -c
steps:
- name: get runner hardware information
shell: pwsh
run : |
Get-PSDrive -PSProvider FileSystem
Get-CIMInstance -Class Win32_Processor | Select-Object -Property Name
- name: install MSYS2 build environment
uses: msys2/setup-msys2@v2
with:
update: true
# Use pre-installed version if possible to save disc space on
# partition with source. We need that space for building.
release: ${{ matrix.msystem == 'CLANGARM64' }}
msystem: ${{ matrix.msystem }}
# The packages are listed in (alphabetically sorted) blocks:
# The first block is for mandatory dependencies.
# The second block is for optional dependencies needed when building from a release tarball.
# The third block is for additional dependencies needed when building from a repository checkout.
# The fourth block is for additional run-time dependencies (to run test suite) that aren't needed to build.
pacboy: >-
autotools:p
cc:p
fc:p
gperf:p
openblas:p
pcre2:p
readline:p
arpack:p
curl:p
fftw:p
fltk:p
gl2ps:p
glpk:p
ghostscript:p
gnuplot:p
graphicsmagick:p
hdf5:p
libsndfile:p
portaudio:p
qhull:p
qrupdate:p
qscintilla:p
qt5-base:p
qt5-imageformats:p
qt5-svg:p
qt5-tools:p
rapidjson:p
suitesparse:p
sundials:p
ccache:p
icoutils:p
librsvg:p
texinfo:p
install: >-
base-devel
git
unzip
zip
- name: checkout repository
uses: actions/checkout@v6
- name: prepare ccache
# create key with human readable timestamp
# used in action/cache/restore and action/cache/save steps
id: ccache-prepare
run: |
echo "ccachedir=$(cygpath -m $(ccache -k cache_dir))" >> $GITHUB_OUTPUT
echo "key=ccache:${{ matrix.os }}:${{ matrix.msystem }}:${{ github.ref }}:$(date +"%Y-%m-%d_%H-%M-%S"):${{ github.sha }}" >> $GITHUB_OUTPUT
echo "timestamp=$(date +"%Y-%m-%d_%H-%M-%S")" >> $GITHUB_OUTPUT
- name: restore ccache
# Setup the github cache used to maintain the ccache from one job to the next
uses: actions/cache/restore@v5
with:
path: ${{ steps.ccache-prepare.outputs.ccachedir }}
key: ${{ steps.ccache-prepare.outputs.key }}
restore-keys: |
ccache:${{ matrix.os }}:${{ matrix.msystem }}:${{ github.ref }}
ccache:${{ matrix.os }}:${{ matrix.msystem }}:refs/heads/default
- name: configure ccache
# Limit the maximum size and switch on compression to avoid exceeding the total disk or cache quota.
run: |
which ccache
test -d ${{ steps.ccache-prepare.outputs.ccachedir }} || mkdir -p ${{ steps.ccache-prepare.outputs.ccachedir }}
echo "max_size = ${{ matrix.ccache-max }}" > ${{ steps.ccache-prepare.outputs.ccachedir }}/ccache.conf
echo "compression = true" >> ${{ steps.ccache-prepare.outputs.ccachedir }}/ccache.conf
ccache -p
ccache -s
# prepend path to ccache helper scripts to PATH
echo 'export PATH="$MINGW_PREFIX/lib/ccache/bin:$PATH"' >> ~/.bash_profile
- name: bootstrap
run: GNULIB_URL=https://github.com/coreutils/gnulib.git ./bootstrap
- name: configure
id: configure
# configure sometimes hangs while compiling 32bit Fortran.
# It should take much less than 30 minutes. Cancel the step if it takes longer.
timeout-minutes: 30
# FIXME: Fix building with Java support. Override JAVA_HOME for now.
# FIXME: How do we get a working TeX environment in MSYS2? Disable building the documentation for now.
run: |
echo $PATH
which $CC
echo $CC --version
$CC --version
which ${CXX% *}
echo ${CXX% *} --version
${CXX% *} --version
which $F77
echo $F77 --version
$F77 --version
mkdir .build
echo "::group::Run configure script"
cd .build && ../configure \
JAVA_HOME="" \
--enable-relocate-all \
--disable-docs \
--with-qt=5 \
${{ matrix.extra-config-flags }}
echo "::endgroup::"
- name: display config.log
if: always() && (steps.configure.outcome != 'skipped')
continue-on-error: true
# Displaying the log shouldn't take long. Cancel the step if it does.
timeout-minutes: 5
run: cat ./.build/config.log
- name: build
# Spawning processes seems to have a big overhead on this platform. Use a somewhat larger number of parallel processes to compensate for that.
run: |
make -C ./.build all -j8 V=1
- name: ccache status
continue-on-error: true
run: ccache -s
- name: save ccache
# Save the cache after we are done (successfully) building
uses: actions/cache/save@v5
with:
path: ${{ steps.ccache-prepare.outputs.ccachedir }}
key: ${{ steps.ccache-prepare.outputs.key }}
- name: check
id: run-test-suite
# Continuing on error in this step means that jobs will be "green" even
# if the test suite crashes. But if we don't continue, we'll loose the
# ccache and other jobs will be cancelled, too.
# It would be nice if we could mark the job as "yellow" (and continue)
# in that case. The second best thing is to display a warning in the
# job summary (see below).
continue-on-error: true
timeout-minutes: 60
# mkoctfile seems to have trouble when gcc is called via ccache. So,
# remove the directory with the ccache wrappers from PATH.
run: |
export PATH=$(echo "$PATH" | sed -e "s|$MINGW_PREFIX/lib/ccache/bin:||g")
./.build/run-octave --no-init-file --no-history --no-gui-libs --eval "version -blas, version -lapack"
make -C ./.build check RUN_OCTAVE_OPTIONS="--no-gui-libs" | tee ./test-suite.log
- name: display test suite log
if: always() && (steps.run-test-suite.outcome != 'skipped')
continue-on-error: true
# Displaying the log shouldn't take long. Cancel the step if it does.
timeout-minutes: 5
run: cat ./.build/test/fntests.log
- name: test history file creation
# see bug #62365
# Pipe to an interactive session to trigger appending the command to
# the history. This will trigger the creation of a history file.
run: |
echo "history_file (make_absolute_filename ('./a/b/c/history')); disp ('test')" | ./.build/run-octave -i
[ -f ./a/b/c/history ] || echo "::warning::Creating history file failed"
- name: install
run: |
mkdir -p /c/octave/pkg
make -C ./.build DESTDIR=/c/octave/pkg install
- name: test stand-alone executable
continue-on-error: ${{ matrix.allow-error }}
run: |
unset CC
unset CXX
export PATH=$(echo "$PATH" | sed -e "s|$MINGW_PREFIX/lib/ccache/bin:||g")
export PATH="/c/octave/pkg/${{ matrix.mingw-prefix }}/bin:$PATH"
cd examples/code
mkoctfile --link-stand-alone embedded.cc -o embedded
./embedded.exe
- name: test Octave packages
continue-on-error: ${{ matrix.allow-error }}
env:
# colon separated list of packages
# reasons for including these packages in the CI tests:
# * control: builds .oct files from C++ and Fortran sources
# * stk: builds .mex files from C sources
PACKAGE_NAMES: "control:stk"
run: |
unset CC
unset CXX
export PATH=$(echo "$PATH" | sed -e "s|$MINGW_PREFIX/lib/ccache/bin:||g")
export PATH="/c/octave/pkg/${{ matrix.mingw-prefix }}/bin:$PATH"
IFS=':' read -r -a packages <<< "${PACKAGE_NAMES}"
for package in "${packages[@]}"; do
printf " \033[0;32m==>\033[0m Octave package \033[0;32m${package}\033[0m\n"
echo "::group::Install ${package}"
octave --eval "pkg install -verbose -forge ${package}"
echo "::endgroup::"
echo "::group::Test ${package}"
octave --eval "pkg test ${package}"
echo "::endgroup::"
echo "::group::Test log for ${package}"
cat ${GITHUB_WORKSPACE}/fntests.log
echo "::endgroup::"
done
- name: analyze test suite results
# Make sure the test summary lists 0 "FAIL"s and no "REGRESSION"
run: |
[ -n "$(grep -e "FAIL\s*0" ./test-suite.log)" ] || echo "::warning::At least one test failed"
[ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] || echo "::warning::At least one regression in test suite"
echo Finished analyzing test suite results.
- name: compress build artifact
if: matrix.msystem == 'MINGW64'
continue-on-error: true
run: |
cd /c/octave/pkg
tar -cvzf octave.tar.gz *
- name: upload build artifact
if: matrix.msystem == 'MINGW64'
continue-on-error: true
uses: actions/upload-artifact@v6
with:
name: ${{ matrix.mingw-prefix }}-octave-${{ steps.ccache-prepare.outputs.timestamp }}
path: C:\octave\pkg\octave.tar.gz
retention-days: 7
================================================
FILE: .github/workflows/make-ubuntu.yaml
================================================
name: make-ubuntu
on:
workflow_dispatch:
push:
concurrency: ci-ubuntu-${{ github.ref }}
jobs:
ubuntu:
runs-on: ${{ matrix.os }}
strategy:
# Allow other runners in the matrix to continue if some fail
fail-fast: false
matrix:
# For available GitHub-hosted runners, see:
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
os: [ubuntu-22.04, ubuntu-24.04, ubuntu-24.04-arm]
compiler: [gcc, clang]
include:
- compiler: gcc
compiler-pkgs: "g++ gcc"
cc: "gcc"
cxx: "g++"
extra-config-flags: ""
- compiler: clang
compiler-pkgs: "clang libc++-dev libc++abi-dev"
cc: "clang"
cxx: "clang++ -stdlib=libc++"
extra-config-flags: "--without-spqr --without-magick"
# Clang seems to generally require less cache size (smaller object files?).
- ccache-max: 1.2G
- os: ubuntu-24.04
compiler: gcc
ccache-max: 1.2G
- os: ubuntu-22.04
compiler: gcc
ccache-max: 1.2G
- os: ubuntu-24.04-arm
compiler: gcc
ccache-max: 1.2G
- os: ubuntu-24.04
compiler: clang
ccache-max: 400M
- os: ubuntu-22.04
compiler: clang
ccache-max: 400M
- os: ubuntu-24.04-arm
compiler: clang
ccache-max: 400M
name: ${{ matrix.os }} ${{ matrix.compiler }}
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
steps:
- name: get CPU information
run: lscpu
- name: checkout repository
uses: actions/checkout@v6
- name: install dependencies
env:
COMPILER_PKGS: ${{ matrix.compiler-pkgs }}
run: |
sudo apt -qq update
sudo apt install -y $COMPILER_PKGS autoconf automake bison ccache \
dvipng epstool fig2dev flex gfortran gnuplot-x11 gperf gzip \
icoutils libarpack2-dev libblas-dev libcurl4-gnutls-dev \
libfftw3-dev libfltk1.3-dev libfontconfig1-dev libfreetype6-dev \
libgl1-mesa-dev libgl2ps-dev libglpk-dev libgraphicsmagick++1-dev \
libhdf5-dev liblapack-dev libosmesa6-dev libpcre2-dev \
libqhull-dev libqscintilla2-qt5-dev libqrupdate-dev \
libreadline-dev librsvg2-bin libsndfile1-dev libsuitesparse-dev \
libsundials-dev libtool libxft-dev make openjdk-8-jdk \
perl portaudio19-dev pstoedit qtbase5-dev qttools5-dev \
qttools5-dev-tools rapidjson-dev rsync tar texinfo \
texlive-latex-extra xvfb zlib1g-dev \
${{ (matrix.os != 'ubuntu-22.04' && matrix.compiler == 'clang') && 'libfast-float-dev' || '' }}
- name: prepare ccache
# create key with human readable timestamp
# used in action/cache/restore and action/cache/save steps
id: ccache-prepare
run: |
echo "key=ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}:$(date +"%Y-%m-%d_%H-%M-%S"):${{ github.sha }}" >> $GITHUB_OUTPUT
- name: restore ccache
# setup the github cache used to maintain the ccache from one job to the next
uses: actions/cache/restore@v5
with:
path: ~/.ccache
key: ${{ steps.ccache-prepare.outputs.key }}
restore-keys: |
ccache:${{ matrix.os }}:${{ matrix.compiler }}:${{ github.ref }}
ccache:${{ matrix.os }}:${{ matrix.compiler }}:refs/heads/default
- name: configure ccache
env:
CCACHE_MAX: ${{ matrix.ccache-max }}
run: |
test -d ~/.ccache || mkdir ~/.ccache
echo "max_size = $CCACHE_MAX" >> ~/.ccache/ccache.conf
ccache -s
echo "/usr/lib/ccache" >> $GITHUB_PATH
- name: build fast-float
# There is no fast-float package for Ubuntu 22.04.
# We need it as a fallback for LLVM libc++ before version 20.
if: matrix.os == 'ubuntu-22.04' && matrix.compiler == 'clang'
run: |
mkdir -p fast-float && cd fast-float
printf "::group::\033[0;32m==>\033[0m Download tarball\n"
wget -O fast-float-8.1.0.tar.gz https://github.com/fastfloat/fast_float/archive/refs/tags/v8.1.0.tar.gz
echo "::endgroup::"
printf "::group::\033[0;32m==>\033[0m Unpack tarball\n"
tar zxvf fast-float-8.1.0.tar.gz
echo "::endgroup::"
printf "::group::\033[0;32m==>\033[0m Configure\n"
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ../fast_float-8.1.0
echo "::endgroup::"
printf "::group::\033[0;32m==>\033[0m Build\n"
cmake --build .
echo "::endgroup::"
printf "::group::\033[0;32m==>\033[0m Install\n"
sudo cmake --install .
echo "::endgroup::"
- name: bootstrap
run: GNULIB_URL=https://github.com/coreutils/gnulib.git ./bootstrap
- name: configure
id: configure
timeout-minutes: 30
run: |
echo $PATH
echo which ccache
which ccache
which $CC
echo $CC --version
$CC --version
which ${CXX% *}
echo ${CXX% *} --version
${CXX% *} --version
which gfortran
echo gfortran --version
gfortran --version
mkdir .build
echo "::group::Run configure script"
cd .build && ../configure \
CPPFLAGS="-I/usr/include/hdf5/serial -I/usr/include/suitesparse" \
LDFLAGS="-L/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/hdf5/serial" \
${{ matrix.extra-config-flags }}
echo "::endgroup::"
- name: display config.log
if: always() && (steps.configure.outcome != 'skipped')
continue-on-error: true
# Displaying the log shouldn't take long. Cancel the step if it does.
timeout-minutes: 5
run: cat ./.build/config.log
- name: build
# Parallel make seems to fail intermittently when creating the figures
# for the manual. The error message says it fails to connect to a
# display. Maybe an xvfb issue?
# Use single job make for now which seems to work more reliably.
run: XDG_RUNTIME_DIR=$RUNNER_TEMP xvfb-run -a make -C ./.build all V=1
- name: ccache status
run: ccache -s
- name: save ccache
# Save the cache after we are done (successfully) building
uses: actions/cache/save@v5
with:
path: ~/.ccache
key: ${{ steps.ccache-prepare.outputs.key }}
- name: check
id: run-test-suite
timeout-minutes: 60
run: |
./.build/run-octave --no-init-file --no-history --eval "version -blas, version -lapack"
XDG_RUNTIME_DIR=$RUNNER_TEMP \
xvfb-run -a make -C ./.build check | tee ./test-suite.log
- name: display test suite log
if: always() && (steps.run-test-suite.outcome != 'skipped')
continue-on-error: true
# Displaying the log shouldn't take long. Cancel the step if it does.
timeout-minutes: 5
run: cat ./.build/test/fntests.log
- name: test history file creation
# see bug #62365
# Pipe to an interactive session to trigger appending the command to
# the history. This will trigger the creation of a history file.
run: |
echo "history_file (make_absolute_filename ('./a/b/c/history')); disp ('test')" | ./.build/run-octave -i
[ -f ./a/b/c/history ] || echo "::warning::Creating history file failed"
- name: install
run: |
sudo make -C ./.build install
- name: test stand-alone executable
run: |
unset CC
unset CXX
cd examples/code
mkoctfile --link-stand-alone embedded.cc -o embedded
LD_LIBRARY_PATH="/usr/local/lib/octave/$(octave --eval "disp(version())")" \
./embedded
- name: test Octave packages
env:
# colon separated list of packages
# reasons for including these packages in the CI tests:
# * control: builds .oct files from C++ and Fortran sources
# * stk: builds .mex files from C sources
PACKAGE_NAMES: "control:stk"
run: |
unset CC
unset CXX
IFS=':' read -r -a packages <<< "${PACKAGE_NAMES}"
for package in "${packages[@]}"; do
printf " \033[0;32m==>\033[0m Octave package \033[0;32m${package}\033[0m\n"
echo "::group::Install ${package}"
octave --eval "pkg install -verbose -forge ${package}"
echo "::endgroup::"
echo "::group::Test ${package}"
octave --eval "pkg test ${package}"
echo "::endgroup::"
echo "::group::Test log for ${package}"
cat ${GITHUB_WORKSPACE}/fntests.log
echo "::endgroup::"
done
- name: analyze test suite results
# Make sure the test summary lists 0 "FAIL"s and no "REGRESSION"
run: |
[ -n "$(grep -e "FAIL\s*0" ./test-suite.log)" ] || exit 1
[ -z "$(grep -e "REGRESSION" ./test-suite.log)" ] || exit 1
echo No unknown failing tests.
================================================
FILE: .hgignore
================================================
syntax: regexp
## The recurrent (^|/) idiom in the regexps below should be understood
## to mean "at any directory" while the ^ idiom means "from the
## project's top-level directory".
## gnulib related files
(^|/)gnulib$
# This directory gets created by gnulib during the build.
(^|/)libgnu$
# gnulib makes these silly backup files.
.~$
## m4 related files
# This directory mostly contains cruft during build time, but it does
# contain some Octave code, so be more careful about what we ignore here.
^m4/(?!ax_).+\.m4$
## Autoconf, Automake automatically generated files
^aclocal\.m4$
^autom4te\.cache$
^config\.in\.h$
^configure$
(^|/)config.cache$
(^|/)config.h$
(^|/)config.log$
(^|/)config.status$
(^|/)Makefile\.in$
^INSTALL$
## CMake associated files
# Octave doesn't use CMake, but some IDEs use this index file to indicate
# what files are part of a project (e.g., CLion). Ignore it (bug #55901).
^CMakeLists.txt$
## Emacs associated files
(^|/)TAGS$
(^|/)semantic.cache$
## Scripts associated with building Octave
^build-aux/config\.(guess|rpath|sub)$
(^|/)build-aux/check-subst-vars\.sh$
^build-aux/compile$
^build-aux/depcomp$
(^|/)build-aux/find-defun-files\.sh$
(^|/)build-aux/find-files-with-tests\.sh$
^build-aux/install-sh$
^build-aux/ltmain\.sh$
^build-aux/mdate-sh$
^build-aux/missing$
^build-aux/move-if-change$
(^|/)build-aux/subst-config-vals\.sh$
(^|/)build-aux/subst-cross-config-vals\.sh$
(^|/)build-aux/subst-script-vals\.sh$
^build-aux/texinfo\.tex$
^build-aux/ylwrap$
## Mercurial associated files
(^|/)HG-ID$
## Timestamp files used in build process
.*/\.dirstamp$
.*/\.octave-dirstamp$
## Intermediate compilation results for libraries
\.la$
.*/\.libs/
\.Plo$
\.Po$
## DLDFCN associated files
^libinterp/dldfcn/module\.mk$
(^|/)libinterp/dldfcn/PKG_ADD$
(^|/)libinterp/dldfcn/.*\.oct$
## liboctave/ directory associated patterns
# E.g., liboctave/operators/smx-op-inc.mk
^liboctave/operators/\w+-op-\w+\.mk$
## scripts/ directory associated patterns
# Package files
(^|/)scripts/.*/PKG_ADD$
# Java files
(^|/)scripts/java/octave\.jar$
(^|/)scripts/java/org/octave/.*\.class$
## libgui/ directory associated patterns
# Files generated by moc tool
(^|/)libgui/.*/moc-.*\.(cc|h)$
(^|/)libgui/languages/.*\.qm$
(^|/)libgui/languages/__octave_temp_gui_sources__/*
## Ignore patterns associated with documentation
# Info generated files
# E.g., doc/faq/OctaveFAQ.info, doc/interpreter/octave.info-4
^doc/\w+/\w+\.info(-\d+)?$
# Texinfo created temporary directories
(^|/)doc/(interpreter|liboctave)/(octave|liboctave)\.t2(d|p)/
# Texinfo created files
(^|/)doc/interpreter/.*\.texi$
# DOCSTRINGS files built in the source tree
(^|/)(libinterp|scripts)/DOCSTRINGS$
# Generated HTML directories
(^|/)doc/interpreter/octave\.html/
(^|/)doc/liboctave/liboctave\.html/
# Miscellaneous auto-generated files
(^|/)doc/interpreter/octave\.dvi$
(^|/)doc/interpreter/octave\.ps$
(^|/)doc/interpreter/doc-cache$
(^|/)doc/interpreter/octave_interpreter\.q(ch|hc)$
# Images and scripts for documentation
^doc/interpreter/images\.mk$
(^|/)doc/interpreter/.*\.eps$
(^|/)doc/interpreter/.*\.pdf$
(^|/)doc/interpreter/.*\.png$
(^|/)doc/interpreter/.*\.txt$
# timestamps for doc directory
^doc/\w+/stamp-(vti|\d+)$
^doc/\w+/version-\w+\.texi$
## Test associated patterns
-tst$
^.build/*
================================================
FILE: .hgtags
================================================
d56e0d75e7c9760f2a3e750c2d71a5c52bb76b98 ss-2-1-45
dece11da64ed86ac2347f48ffa13fd046bef7de3 ss-2-1-52
e759d01692dbb69ff28b6d70940239d93ff77a9d ss-2-1-53
adf8d68d71438b8b394cbbce59e817a557db5ecd ss-2-1-54
6279796dc2b9ee28e0624b4b91bba1eec6ed292d ss-2-1-55
d0aa1a59b73b879fe18eafb8df54e451f870058c ss-2-1-56
c1cdf2a32cdbf4e0d68aead4bfa597106e844989 ss-2-1-57
ce01dbd7e026c095d9e50beac529e8e955a303f8 ss-2-1-58
1c65a8e44ef95fd4b2b11eb19071e3ecbbe77b76 ss-2-1-59
1e6f653ef1e332fbaab48ac44149b0eb2d3bcfc8 ss-2-1-61
1bf9abc0256be1800b553acdb30b099b4c2a3abb ss-2-1-62
8386cf9811ee90243a965a3782b1b4f6cb107845 ss-2-1-63
5a92c3177fc6c038bc93745f6ebc6a055e602b96 before-gnuplot-split
e2ed74b9bfa052ce499b7f419e8d204123c49af0 after-gnuplot-split
996a08a3eb068ce8002f54170fae755f9142d9a4 ss-2-9-0
5c2f5830179082f18658d5a9e68087938444581e ss-2-9-1
57b5030f5737ef9a1ac588b32e6c828358fac801 before-64-bit-merge
9302581b820d71e6e3ae722b68e5923aebd46157 ss-2-9-2
06585668a971b21818cacedbab1e11a98c11c5a0 ss-2-9-3
f16c05db625059770b94eec0af027bbe74d2ce62 ss-2-9-4
cda6a105ae9a30f9cd8032b1f49c2cfecfc04f6c before-ov-branch
acb4a1e0b311c47bc957a48bf6af7f77e9c80fab ss-2-9-6
b2e1be30c8e94902e6557c1edba2c4f37ff7bdf8 ss-2-9-7
d542d919783961dce51ee8fc06f65b8f2cfe4156 ss-2-9-8
60f9ced8ab534e65f27d95a712d97ba6add6cd8d ss-2-9-9
12b676a0b18395af2fa0ccceb516447d8be6ad03 before-graphics-branch
a848b846cb3ac279782b7fef8270a62ca4578539 ss-2-9-10
3e2cfed6c87e2019cb1584211068b9c581331ccb before-object-branch
10da0f6d85c260bb5f640436e42d633a57ccda9b ss-2-9-11
db6d908e8a03a42760a45c7fd29eae074e505f7c ss-2-9-12
afbd31bb7b4e001c6c16d41eb908aa66bed64352 ss-2-9-13
fc55a5e1760b832a672d9de3b53888a3d6793d21 ss-2-9-14
0b91144f9533b05d14fb5692ed67d8c6f500230f ss-2-9-15
5608935ff5228a90d34fa80dce3dab2462d20fd3 ss-2-9-16
77de8319c337b39a477d5433348e4597ad61abe0 ss-2-9-17
9f02c32eb70d3e6d0c42a2fd5f3b862f4d6c6bcc ss-2-9-18
89d546610556ee47ec634ab8c3e441e1db248873 ss-2-9-19
274d9642ac1032fcc4996a3cac80cfe5fd20f8a4 release-3-0-0
af10baa6391596c3713385d7b6c66c93ee935e87 ss-3-1-50
a5d1e27ee1f4c3fd66c489e83fdb40f92bf1bf43 ss-3-1-51
739141cde75a22b9ac9b5b327ea30c61fd357748 ss-3-1-52
bd1b1fe9c6e952202bf5878cd042a168f6df6ddd ss-3-1-53
3c3cbe8f18e03c73cc34494c8037d8a45a30bf7d ss-3-1-54
5e276a0b999747b72af34e72eb63f64640da6399 ss-3-1-55
a1d20052517a950033896f5a876de8f3ee520138 release-3-2-0
74be4b7273e43952e1afcd9ad979d35667c7f82e ss-3-3-50
79a56d0a6a0d693ebf461c456951b20dfbcde140 ss-3-3-51
229675bb7647f7e7e499bcb5acacc8eabe7f3697 ss-3-3-52
6c69a7c39039bccd5a2fe481fcc7f896c82b160b ss-3-3-53
3cbc0d77db48aec32bcb202d09a036d2cb9cc3b9 ss-3-3-53
bd2643f0ce57d070963bedd48857405f6924aa85 ss-3-3-54
695141f1c05cf1b240592bdd18e7a1503bb2a539 ss-3-3-55
901d466ee55ac902a875ec0ade6f1eccef0841dc release-3-4-1
3666e8e6f96e6899b8306d6ea9614aadf0500d67 release-3-4-2
b0e70a71647b671ebcfa7a79af1ae6d3c0f52065 release-3-4-3
3781981be535e80d44c85373b8fdaa60ca5cd097 ss-3-5-90
ff5588774680d4f54567311fc109c8e351950f1c ss-3-5-91
a737b3fb9c4d89d3694da6b4e623aeee64b212e1 ss-3-5-92
72aebe6196414e38ef802469ff6e238f914f04c9 rc-3-6-0-0
64d9f33313cc8c691974bcd123357e24bccbabdc rc-3-6-0-1
704f7895eef03008dd79848eb9da4bfb40787d73 release-3.6.0
95c43fc8dbe1a07a46fefb3372df5b2309d874fd rc-3-6-1-0
0000000000000000000000000000000000000000 release-3-2-4
e320928eeb3aa2370b792e83dafc3e0ddecdc871 release-3-2-4
ba4d6343524b406b0d15aee34579f80783581c54 release-3-6-1
704f7895eef03008dd79848eb9da4bfb40787d73 release-3-6-0
f947d2922febf12dcd1fb6e21b356756ecb54e55 rc-3-6-2-0
4460c4fb20e6a5d3b1972fa737d4e00eb921545a rc-3-6-2-2
551566201318bf615b27c60ccf9368f4844008bd release-3-6-2
a95432e7309ca6fc776c02939264bb6d443f3525 release-3-6-3
2e8eb9ac43a5f8cfaf0423814a312ed47cb80485 rc-3-6-4-0
df1aceb8f0bc6b5b5062907931cc663467f57d93 ss-3-7-1
858cbf6fc2ec1c232f5cf1d75dc344439b39a89c rc-3-6-4-1
faefa1bea8ddae3cab170afdeab68d3d15c4e623 ss-3-7-2
0000000000000000000000000000000000000000 ss-3-7-2
23a7661e529ae9bfc91693618f8c314c31f695ca ss-3-7-2
cc5a7d1233f3acea85648baeb754fc0e8f225225 rc-3-6-4-2
b29b10fbb7448cdfe29322446e1a589e7fe1a40a release-3-6-4
4e50bd2946d8563d3e201cc04b3ba0720c991b06 ss-3-7-4
608e307b49149b32a6d09c2f06493d04d3af9be4 ss-3-7-5
3a9efb68272df556dccb84c87933dd8238e88902 ss-3-7-6
cc13924a4266fb0359f59fabdce11071e6051d48 ss-3-7-7
d734216aa2b1022c190e6b07d7ccdd59fe15678f rc-3-8-0-1
f1fa148766d623f7f24cf541ea8b88d8c1b63d33 rc-3-8-0-2
b72bcf5f78cc2231e9bf2735d3b8d92779fc4dff release-3-8-0
85d31344fb23725791bc687337295d47416b9c17 rc-3-8-1-2
02ce68d63fba31cd14ac060c087212a032ae3202 rc-3-8-1-3
dd669c2ae76c167613f54d6f4db0130fa2124cac rc-3-8-1-4
43cc202335dc4a53a3d8fc9ca90acaa81d2e63d3 release-3-8-1
492c5614953571a0b07f4c1621cc7bc5c85c0251 rc-3-8-2-1
46df2c7b8f4dec400ce353370f2e47a02926026d rc-3-8-2-2
a66548dc07b0fc9b7d37a4be065aa15e8243c96a release-3-8-2
52d2bbf49c922440621b42b1c1679f0e55462485 rc-4-0-0-1
eba80000fa0dad32ba0f1cd767dd826d1ce1aba6 rc-4-0-0-2
065f933ef08318e40b81f7fe75236e6175088117 rc-4-0-0-3
42bb3a776c9fcc008669f382d2409297c4a901b3 rc-4-0-0-4
3ccc2d02e64b61c6827009d42e5b12274e7ba5fc release-4-0-0
20b17dda0e0c838646dfdccec153ec8cdf6d3c37 rc-4-0-1-1
0cfcc178432bfc7cfdef5dca96e74ec5884ba752 rc-4-0-1-2
a58d5e6df908199c4aea83f78077b81289d2a0ad rc-4-0-1-3
2b66f30a0de7a09801c2a3566021cde7e194d3d3 rc-4-0-1-4
5162cdfb56d8e31ad00dc260a26d1c92c69c2acf release-4-0-1
acaf1e137c5e6f201a6689a99a6568d0dfe9e9ed release-4-0-2
00f7b278defd1b6b911cde1ff20390fb298f4c5b release-4-0-3
b8eeca55fa8113853a19b1b1ab4d0bb6471dea18 rc-4-2-0-1
9d50627498141d150755d18ab8e71a3220e40147 rc-4-2-0-2
96817eafc7997e19a1f89873c05098e08fea1c02 rc-4-2-0-3
69ac19073ae630b276ff7788b78f72782f281657 rc-4-2-0-4
708a4fcb73820484a3af94dd4d18453c4d9b29c9 release-4-2-0
1327ea4f5a931a6cc2a6d4790af58cf16de4702b release-4-2-1
94f8e2b5a88b79974084c0ae541cacbcc62d64f6 release-4-2-2
a5ad9c053e41ed39a8c69ff99936cbcf18256abf rc-4-3-90
ff59be58f0282e418fb3447d5442fa1d618cfe10 rc-4-3-91
4c14c002cabeb60cf693d5a032b6285f92804643 rc-4-3-92
cf84db75ab57d4fc5d18682c6ecf9d2e1f66ea94 release-4-4-0
1f46d371968c5c2e9d5fac537046db8005b71e41 release-4-4-1
82865ccb62c2aa2f1273683b8343a80e2e6a0e83 rc-5-0-90
af47f245a2ada829fa87f339bbe8e7c64a189bda rc-5-0-91
d05d6eebde105895c0972d8bb8bc7f090295cb86 release-5-1-0
ec0690a6955c8d5236b29b975c09a1f2a5a1559c rc-5-1-90
eb46a9f471647626d3a199e40d0c235d54e2b256 release-5-2-0
844b3b9bab7a137c08cbec7cb0ae3bca2ae0b70d rc-6-0-90
c67f39732d1441a685a524586ebcf2246641b4f5 rc-6-0-92
9f39338a23cbbff9bb2681d536451340cb08df12 release-6-1-0
5cfdf97c5350d41018311dace50e3486176eefa6 release-6-2-0
55008004bb9a6e95256d57e882e3716ac45b15ee rc-6-1-90
9d70a797d54a194b185f89829b0d9cefb93e58ff rc-6-2-90
754013c3658760136fe473911ba96165a07cb1f5 release-6-3-0
3dc9decc98f97d0b05fff9dbb66b2400d6139830 rc-6-3-90
8d7671609955afabf79ceff678cc41eea61583f2 release-6-4-0
347dbc9049d55b63435d710e1d9d826cbfe5e54c rc-7-0-90
266610d855194b2a55e6b501ccc302e6c0d8f6d0 rc-7-0-92
04120d65778a403e11ac4280bf53f330eded75e3 release-7-1-0
48fcfbaea2cdcfffaf1058c95832a33f70419a6f rc-7-1-90
6c1e310b223029c3a21abe9629f4200560024c3a release-7-2-0
2c037ce004502260228925e651dc077573366ba2 release-7-3-0
74aa32d5fd08ec0398ac8261d4bf5dbd75e8f6a4 rc-8-0-90
75b1efe727d495ae579b9e27a620219dc72d9205 release-8-1-0
fdadf31961bb5b089f5a2b7cd660351434b31de0 release-8-2-0
6fc591af58baccd1f9be398245eda017374d3283 release-8-3-0
78c13a2594f359474f28a93e43b288c9b40afa2c release-8-4-0
99d90c3bd48561b7de68077ac1e116f196f4dd4b rc-9-0-90
d0c18b1446dfce3dd2c9953fb8d51341b680f384 release-9-1-0
75ef583dd829d9190a90295b7e530364c3ff0ed7 rc-9-1-90
f7f956555e4ab8a05d52a9be4c24209670b870d2 release-9-2-0
5854a65df8f59c0071eea5c51ed386ab779729bc release-9-3-0
df465cbba05afa74d56e66204badaff3c50fd503 release-9-4-0
520f82ccab593e1d1c63c1319ab0ee08ecc5f382 rc-10-0-90
417c47651ed55ca2c397500f7a598ab583bc38a2 release-10-1-0
8d42ee70e124180e1ef00e9be2e080b71fd92099 release-10-2-0
8ee1afeed21ef0e5995416e41348457d966abe2a release-10-3-0
1b2865990371a5896f337cb51c3b45a5538b2807 rc-11-0-90
0f2de96b6e238a85b8c277a8ca63786abbf3203e rc-11-0-91
8d2d7049b8a9c51023dc665c17e2c26323db55d0 rc-11-0-92
fa4747e9b5c0790d5c647bf3106a1b76753e9e93 remove
0f2de96b6e238a85b8c277a8ca63786abbf3203e rc-11-0-91
fa4747e9b5c0790d5c647bf3106a1b76753e9e93 rc-11-0-91
fa4747e9b5c0790d5c647bf3106a1b76753e9e93 remove
0000000000000000000000000000000000000000 remove
fa4747e9b5c0790d5c647bf3106a1b76753e9e93 rc-11-0-91
0000000000000000000000000000000000000000 rc-11-0-91
4fde0ba0d88a06e97d5f6befa235f006de64c9fd release-11-1-0
================================================
FILE: CITATION
================================================
To cite GNU Octave in publications use:
John W. Eaton, David Bateman, Søren Hauberg, Rik Wehbring (2026).
GNU Octave version 11.1.0 manual: a high-level interactive language for
numerical computations.
URL https://www.gnu.org/software/octave/doc/v11.1.0/
A BibTeX entry for LaTeX users is:
@manual{,
title = {{GNU Octave} version 11.1.0 manual: a high-level interactive language for numerical computations},
author = {John W. Eaton and David Bateman and S{\o}ren Hauberg and Rik Wehbring},
year = {2026},
url = {https://www.gnu.org/software/octave/doc/v11.1.0/},
}
We have invested a lot of time and effort in creating GNU Octave, please
cite it when using it. See also 'citation pkgname' for citing Octave packages.
================================================
FILE: COPYING
================================================
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
================================================
FILE: COPYRIGHT.md
================================================
Octave is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Octave is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Octave; see the file COPYING. If not, see
<https://www.gnu.org/licenses/>.
Copyright:
- 1987-1988, 1991-1997, 2003-2018 Free Software Foundation
- 1992-2024 John W. Eaton
- 1993 Fook Fah Yap
- 1993 Friedrich Leisch
- 1993 Gerhard Kircher
- 1993 John C. Campbell
- 1993 Per Bothner
- 1993 R. Bruce Tenison
- 1993 Teresa Twaroch
- 1993, 1995 Auburn University
- 1993, 1995, 1998-2002, 2004, 2006-2007 A. Scottedward Hodel
- 1993, 1996-1999, 2001-2002, 2005-2006 Kurt Hornik
- 1993-1997 O. Weber
- 1993-1998 Karl Berry
- 1994 Castor Fu
- 1994 Mark Odegard
- 1994 Romolo Manfredini
- 1994, 2009 Anthony Richardson
- 1994-1995 David Clem
- 1994-1997 Frederick (Rick) A Niles
- 1995 Paul Eggert
- 1995 Thomas Baier
- 1995 Vinayak Dutt
- 1995, 1997 Klaus Gebhardt
- 1997 Ram'on Garc'ia Fern'andez
- 1997 Rex A. Dieter
- 1997, 1999-2000, 2008 Rolf Fabian
- 1997-1999, 2001-2003 Mumit Khan
- 1998 Eric Norum
- 1998 Philippe Defert
- 1998 Richard Allan Holcombe
- 1998 Roman Hodek
- 1998 Tomislav Goles
- 1998, 2000 Georg Thimm
- 1998, 2000 John Smith
- 1998-2000, 2002-2006, 2012 Andy Adler
- 1999 Daniel Calvelo
- 1999 Eduardo Gallestey
- 1999 Geoff Jacobsen
- 1999 James B. Rawlings
- 1999 James Macnicol
- 1999 Massimo Lorenzin
- 1999-2000 Joao Cardoso
- 1999-2000 Stephen Eglen
- 1999-2002 Ben Sapp
- 2000 Joerg Specht
- 2000 Marcus Brinkmann
- 2000 Michael Reifenberger
- 2000 Thomas Walter
- 2000, 2002, 2012 Steven G. Johnson
- 2000, 2002-2004 Teemu Ikonen
- 2000, 2003 Cyril Humbert
- 2000, 2003, 2005 Mats Jansson
- 2000, 2003, 2007-2008 Gabriele Pannocchia
- 2000, 2004, 2006 Etienne Grossmann
- 2000, 2005, 2021 James R. Van Zandt
- 2000-2001 Matthew W. Roberts
- 2000-2002 Cai Jianming
- 2000-2002, 2007-2011 Kai Habel
- 2000-2007 Paul Kienzle
- 2001 Albert Chin-A-Young
- 2001 Christoph Spiel
- 2001 David Livings
- 2001 Heinz Bauschke
- 2001 Ondrej Popp
- 2001 Ross Lippert
- 2001 Thomas Stuart
- 2001, 2005-2009, 2012-2016, 2022 Rafael Laboissiere
- 2001, 2007 Jean-Francois Cardoso
- 2001-2003 Python Software Foundation
- 2002 David Billinghurst
- 2002 Dirk Laurie
- 2002 JD Cole
- 2002 Jeff Cunningham
- 2002 Matt Tenny
- 2002 Nicholas Piper
- 2002 Nix
- 2002 Peter Van Wieren
- 2002, 2006-2009 Francesco Potortì
- 2002, 2017 Andreas Stahel
- 2002, 2017 Bill Lash
- 2002-2003 Dirk Eddelbuettel
- 2002-2003, 2007 Joseph P. Skudlarek
- 2002-2004 Per Persson
- 2003 Aaron A. King
- 2003 Danilo Piazzalunga
- 2003 David Castelow
- 2003 Duncan Temple Lang
- 2003 Eric S. Raymond
- 2003 Heine Kolltveit
- 2003 Lute Kamstra
- 2003 Melqart
- 2003 Richard Stallman
- 2003 Roger Banks
- 2003 Russell Standish
- 2003 Stefan Monnier
- 2003 Thorsten Ohl
- 2003, 2005 Arno J. Klaassen
- 2003, 2008, 2010-2011 Alois Schlögl
- 2003, 2008-2010, 2012, 2014-2015, 2018-2019 Doug Stewart
- 2003-2004 Al Niessner
- 2003-2004 Petter Risholm
- 2003-2007 Quentin H. Spencer
- 2003-2013, 2015 David Bateman
- 2004 Balint Reczey
- 2004 Claude Lacoursiere
- 2004 David Hoover
- 2004 Federico Zenith
- 2004 Fredrik Lingvall
- 2004 Glenn Golden
- 2004 Hans Ekkehard Plesser
- 2004 Heikki Junes
- 2004 Jakub Bogusz
- 2004 Martin Dalecki
- 2004 Oyvind Kristiansen
- 2004 Volker Kuhlmann
- 2004, 2007-2010 Shai Ayal
- 2004, 2011, 2015, 2018 Orion Poplawski
- 2004-2005 Stefan van der Walt
- 2004-2006 Keith Goodman
- 2004-2006, 2008, 2010-2012 Pascal A. Dupuis
- 2005 Antoine Moreau
- 2005 Benjamin Hall
- 2005 Clinton Chee
- 2005 Daniel
- 2005 Driss Ghaddab
- 2005 Erik de Castro Lopo
- 2005 Ivana Varekova
- 2005 Joel Andersson
- 2005 Julius Smith
- 2005 Kevin Ruland
- 2005 Ludwig Schwardt
- 2005 Miroslaw Kwasniak
- 2005 Mohamed Kamoun
- 2005 Nicolo' Giorgetti
- 2005 Orestes Mas
- 2005 Shan G. Smith
- 2005 Todd Neal
- 2005 Tom Holroyd
- 2005 Toni Saarela
- 2005 Walter Landry
- 2005 cctsim
- 2005, 2007 Michael Zeising
- 2005, 2007-2009, 2012-2018, 2020 Daniel J. Sebald
- 2005, 2010 Ben Barrowes
- 2005-2006 Jorge Barros de Abreu
- 2005-2006 William Poetra Yoga Hadisoeseno
- 2005-2006, 2008, 2012 Dmitri A. Sergatskov
- 2005-2008 Bill Denney
- 2005-2010 Søren Hauberg
- 2006 Atsushi Kajita
- 2006 Christopher Hulbert
- 2006 Don Bindner
- 2006 Geoffrey Knauth
- 2006 Henry Mollet
- 2006 Jim Peterson
- 2006 Kai Labusch
- 2006 Ken Kouno
- 2006 Larrie Carr
- 2006 Martin Costabel
- 2006 Stephen Fegan
- 2006 Yozo Hida
- 2006, 2011 Michael Creel
- 2006-2007 Arno Onken
- 2006-2007 Bob Weigel
- 2006-2007 Luis F. Ortiz
- 2006-2007, 2009 Olli Saarela
- 2006-2008 Juhani Saastamoinen
- 2006-2008, 2010 Kim Hansen
- 2006-2009 Alexander Barth
- 2006-2009 Thomas Treichl
- 2006-2009, 2011 Benjamin Lindner
- 2006-2011 Thomas Weber
- 2006-2015 Michael Goffioul
- 2007 Alex Zvoleff
- 2007 Alexander Klimov
- 2007 Aquil H. Abdullah
- 2007 Baylis Shanks
- 2007 Christian Cornelssen
- 2007 Christof Zeile
- 2007 Christoph Mayer
- 2007 Claudio Belotti
- 2007 D. Martin
- 2007 Donald Parsons
- 2007 Geordie McBain
- 2007 Jim Langston
- 2007 Kristan Onu
- 2007 Laurent Mazet
- 2007 Luther Tychonievich
- 2007 Marcus W. Reble
- 2007 Matthias Drochner
- 2007 Michael Weitzel
- 2007 Moritz Borgmann
- 2007 Peter A. Gustafson
- 2007 Sebastian Schubert
- 2007 Steve M. Robbins
- 2007 Steven Mestdagh
- 2007 Tarmigan Casebolt
- 2007 Thomas Kasper
- 2007 Ulrich Tipp
- 2007 Utkarsh Upadhyay
- 2007 Vittoria Rezzonico
- 2007 Zhi Wang
- 2007, 2009 Joel Keay
- 2007, 2009-2015, 2017-2018, 2022 Olaf Till
- 2007-2008 Muthiah Annamalai
- 2007-2009 Brian Gough
- 2007-2009 Jason Riedy
- 2007-2013, 2015-2019, 2023 Marco Caliari
- 2007-2013, 2018 John P. Swensen
- 2007-2016, 2018-2020 Carlo de Falco
- 2007-2016, 2019 Ben Abbott
- 2008 Emil Lucretiu
- 2008 G. (Gert) van Antwerpen
- 2008 James Packer
- 2008 Jarkko Kaleva
- 2008 Jonathan Stickel
- 2008 Julian Schnidder
- 2008 Julien Pommier
- 2008 Krzesimir Nowak
- 2008 Maciek Gajewski
- 2008 Mark van Rossum
- 2008 Martin Weiser
- 2008 Primozz Peterlin
- 2008 Richard Bovey
- 2008 Ryan Hinton
- 2008 Sebastien Loisel
- 2008 Tetsuro KURITA
- 2008 Thomas L. Scofield
- 2008 Timo Lindfors
- 2008, 2010 Brett Stewart
- 2008, 2010-2012 Konstantinos Poulios
- 2008, 2011, 2013-2019 Andreas Weber
- 2008, 2011-2012 Kris Thielemans
- 2008, 2018 Dave Goel
- 2008-2009 Ivan Sutoris
- 2008-2009 Radek Salac
- 2008-2010 Ryan Rusaw
- 2008-2010 VZLU Prague
- 2008-2011 Jaroslav Hajek
- 2008-2011 Thorsten Meyer
- 2008-2011, 2015-2016, 2018-2019 Tatsuro Matsuoka
- 2008-2013, 2018 Marco Atzeri
- 2008-2015, 2017 Michael D. Godfrey
- 2009 Aleksej Saushev
- 2009 Alexander Mamonov
- 2009 Ansgar Burchardt
- 2009 Aravindh Krishnamoorthy
- 2009 Bernard Desgraups
- 2009 Bertrand Roessli
- 2009 Carmine Paolino
- 2009 Carsten Clark
- 2009 Christophe Tournery
- 2009 Daniel Gualberto
- 2009 E. Joshua Rigler
- 2009 Eric Chassande-Mottin
- 2009 Frederick Umminger
- 2009 Joe Rothweiler
- 2009 Kacper Kowalik
- 2009 Kai NODA
- 2009 Kristian Rumberg
- 2009 Nokia Corporation and/or its subsidiary(-ies).
- 2009 Peter L. Søndergaard
- 2009 Peter O'Gorman
- 2009 Pieter Eendebak
- 2009 Rob Mahurin
- 2009 Robert Millan
- 2009 Stefan Hepp
- 2009 Steffen Groot
- 2009 Steven Verstoep
- 2009 Thomas D. Dean
- 2009, 2011 Lukas Reichlin
- 2009, 2011-2012 Robert T. Short
- 2009-2010, 2012 Martin Helm
- 2009-2011 David Grundberg
- 2009-2011 Petr Mikulik
- 2009-2024 Rik Wehbring
- 2010 Brad Froehle
- 2010 Christos Dimitrakakis
- 2010 Daisuke TAKAGO
- 2010 David Gesswein
- 2010 Gunnar Farnebäck
- 2010 Joshua Redstone
- 2010 Judd Storrs
- 2010 Jyh-Miin Lin
- 2010 Liam Groener
- 2010 Marc Vinyals
- 2010 Pedro Gonnet
- 2010 Peter van den Biggelaar
- 2010 Qianqian Fang
- 2010-2012 Iain Murray
- 2010-2017 Jordi Gutiérrez Hermoso
- 2010 Nicholas J. Higham
- 2010 Awad H. Al-Mohy
- 2011 Alexander Klein
- 2011 Andriy Shinkarchuck
- 2011 Andy Buckle
- 2011 David Finkel
- 2011 David Wells
- 2011 Fabian Deutsch
- 2011 Giles Anderson
- 2011 Hannes Müller
- 2011 John Bradshaw
- 2011 Karsten Trulsen
- 2011 Matthias Jüschke
- 2011 Patrick Häcker
- 2011 Paul Boven
- 2011 Richard Campbell
- 2011 Roman Belov
- 2011 Sean Young
- 2011 Vanya Sergeev
- 2011-2012 Fotios Kasolis
- 2011-2012 Jacob Dawid
- 2011-2012 Jarno Rajahalme
- 2011-2012 John Hunt
- 2011-2012, 2014, 2016 Daniel Kraft
- 2011-2013 Júlio Hoffimann Mendes
- 2011-2018, 2020, 2024 David Miguel Susano Pinto (carandraug)
- 2011-2023 Philip Nienhuis
- 2011-2025 Torsten Lilge
- 2012 Alexander Graf
- 2012 Alexander Hansen
- 2012 Corbin Champion
- 2012 Elias Pipping
- 2012 Fabio Rossi
- 2012 Garrett G Euler
- 2012 Israel Herraiz
- 2012 Jen Stewart
- 2012 Melvin Robinson
- 2012 Miguel Bazdresch
- 2012 Nicholas Musolino
- 2012 Ronald van der Meer
- 2012 Ryan Starret
- 2012 Sergey Dudoladov
- 2012 Stefan Husmann
- 2012 Sunghyun Cho
- 2012 Vivek Dogra
- 2012, 2014-2019, 2022 Colin Macdonald
- 2012-2013 Axel Mathéi
- 2012-2013 Ed Meyer
- 2012-2013 Erik Kjellson
- 2012-2013 Max Brister
- 2012-2013 Muhali
- 2012-2013 Richard Crozier
- 2012-2013 Thorsten Liebig
- 2012-2016, 2018-2019, 2024 Juan Pablo Carbajal
- 2012-2024 Pantxo Diribarne
- 2012-2021 Mike Miller
- 2013 Adam H Aitkenhead
- 2013 Amod Mulay
- 2013 Andre da Costa Barros
- 2013 Andy Register
- 2013 Artem Krosheninnikov
- 2013, 2021-2025 Arun Giridhar
- 2013, 2023 Ben Kurtz
- 2013 Carl Osterwisch
- 2013 Catalin Codreanu
- 2013 Clemens Buchacher
- 2013 Corey Thomasson
- 2013 Craig Hudson
- 2013 David Turner
- 2013 FZI Forschungszentrum Informatik Karlsruhe
- 2013 Falk Tannhäuser
- 2013 Janne Olavi Paanajärvi
- 2013 Jens Restemeier
- 2013 Leopoldo Cerbaro
- 2013 Marco Cecchetti
- 2013 Patrick Noffke
- 2013 Risto Vanhanen
- 2013 Rüdiger Sonderfeld
- 2013 Serhiy Zahoriya
- 2013 Vytautas Jančauskas
- 2013, 2015-2019, 2023-2024 Sébastien Villemot
- 2013, 2016 Sander van Rijn
- 2013, 2018, 2020 Valentin Ortega
- 2013-2014 Kyle Guinn
- 2013-2014 LYH
- 2013-2014 Markus Appel
- 2013-2014 Mike Sander
- 2013-2014 Philipp Kutin
- 2013-2014 PrasannaKumar Muralidharan
- 2013-2014, 2016-2017, 2022 Nir Krakauer
- 2013-2014, 2016-2019, 2022 Julien Bect
- 2013-2015 Stefan Mahr
- 2013-2015, 2018, 2022 Felipe G. Nievinski
- 2013-2022 Kai T. Ohlhus
- 2013-2020, 2022-2023 John Donoghue
- 2014 Ahsan Ali Shahid
- 2014 Branden Archer
- 2014 Colin Foster
- 2014 David Spies
- 2014 Drew Abbot
- 2014 Edmund Grimley Evans
- 2014 Eduardo Ramos Fernández
- 2014 Endre Kozma
- 2014 Jason Alan Palmer
- 2014 Joachim Wiesemann
- 2014 Johannes Zarl
- 2014 José Vallet
- 2014 Lasse Schuirmann
- 2014 Marco Vitetta
- 2014 Marko Seric
- 2014 Markus Bergholz
- 2014 Nathan Podlich
- 2014 Pedro Angelo
- 2014 Pooja Rao
- 2014 Rolando Pereira
- 2014 Sergey Plotnikov
- 2014 Serviscope Minor
- 2014 Stefan Beller
- 2014 Vaibhav Gupta
- 2014 Willem Atsma
- 2014, 2019 Michael C. Grant
- 2014-2015 Allan Jacobs
- 2014-2016 Eugenio Gianniti
- 2014-2016 Stefan Miereis
- 2014-2016, 2018 Massimiliano Fasi
- 2015 Akira Noda
- 2015 Amro
- 2015 Armin Müller
- 2015 Bernardo Sulzbach
- 2015 Cillian O'Driscoll
- 2015 Claudius Zingerli
- 2015 Ederag
- 2015 Ethan Biery
- 2015 Ilya Kurdyukov
- 2015 Johannes Leuschner
- 2015, 2022 Ken Marek
- 2015 Michele Zaffalon
- 2015 Rafael Monteiro
- 2015 Sahil Badyal
- 2015 Yu Liu
- 2015, 2017 Michael Barnes
- 2015, 2017 Piotr Held
- 2015-2016 Dmitry Roshchin
- 2015-2016 Jacapo Corno
- 2015-2016, 2021-2023 José Luis García Pallero
- 2015-2016 Oliver Heimlich
- 2015-2016, 2018 Sebastian Schöps
- 2015-2016, 2019 Hartmut Gimpel
- 2015-2017 Avinoam Kalma
- 2015-2017 Lachlan Andrew
- 2015-2025 Nicholas R. Jankowski
- 2015 Mudit Sharma
- 2016 Abhinav Tripathi
- 2016 Andrew Thornton
- 2016 Atri Bhattacharya
- 2016 Barbara Lócsi
- 2016 Damjan Angelovski
- 2016 Francesco Faccio
- 2016 Garrett Euler
- 2016 Joakim Andén
- 2016 NVS Abhilash
- 2016, 2021 Robert Jenssen
- 2016 Stephen Montgomery-Smith
- 2016-2017 Ernst Reissner
- 2016-2020, 2022 Lars Kindermann
- 2016-2025 Markus Mützel
- 2017 Brad Kennedy
- 2017, 2022 Georg Wiora
- 2017 Hugo Raguet
- 2017 Lasse Kliemann
- 2017 Richard Zweig
- 2017 Tejaswi D Prakash
- 2017 Victor Norton
- 2017-2019, 2023 Alexander Wilms
- 2017-2023 Guillaume Flandin
- 2017-2019, 2021-2022 Michael Leitner
- 2017-2019, 2021 Michele Ginesi
- 2017-2019 Sahil Yadav
- 2018 Avlas
- 2018 Cristiano Dorigo
- 2018 Dildar Sk
- 2018, 2021 Gene Harvey
- 2018 Joe Winegarden
- 2018 Maor Shutman
- 2018 Ronny Standtke
- 2018 Stefan Schlögl
- 2018 Stevie Schraudner
- 2018-2024 Antonius R. Burgers
- 2018-2021 Andrew Janke
- 2018-2019, 2022-2023 Jun Wang
- 2019 Anthony Morast
- 2019 Bill Greene
- 2019, 2021 Christian Himpe
- 2019 Daniel Davis
- 2019 Eddy Xiao
- 2019 Juho Iipponen
- 2019 Nguyễn Gia Phong
- 2019 Tomi Pannila
- 2019 William Greene
- 2019-2021, 2024 Markus Meisinger
- 2020-2021 Abdallah Elshamy
- 2020 Dmitry Astankov
- 2020-2024 Fernando Alvarruiz
- 2020 Marcel Jacobse
- 2020 Martin Köhler
- 2020 Michael Witten
- 2020 Simon Hau
- 2020 Valdas
- 2021-2022 Stefan Brüns
- 2021, 2023-2024 Petter Tomner
- 2021, 2023 Óvári
- 2021, 2023 Serkan Önder
- 2021 Stefano Guidoni
- 2021 Steven Waldrip
- 2022-2023 Reinhard Resch
- 2022 Adam Dodd
- 2022 Andreas Bertsatos
- 2022 Christof Kaufmann
- 2022 Farid Partonia
- 2022 Gaël Bonithon
- 2022 Kasper H. Filtenborg
- 2022 Luis Eduardo Ribeiro Guerra
- 2022 Maged Rifaat
- 2022 Remi Thebault
- 2022 Shreya Gupta
- 2022 Tommi Höynälänmaa
- 2023-2024 Hendrik Koerner
- 2023 Johannes Pfeifer
- 2023 Leonardo
- 2023 Linton Miller
- 2023 paulo
- 2023 Peter Konowski
- 2024 Helmut Podhaisky
- 2024 Jörg Sommrey
See also the list of contributors in the Octave manual (the file
doc/interpreter/contributors.in in the sources).
================================================
FILE: Makefile.am
================================================
# Makefile for Octave
########################################################################
##
## Copyright (C) 1993-2026 The Octave Project Developers
##
## See the file COPYRIGHT.md in the top-level directory of this
## distribution or <https://octave.org/copyright/>.
##
## This file is part of Octave.
##
## Octave is free software: you can redistribute it and/or modify it
## under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## Octave is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with Octave; see the file COPYING. If not, see
## <https://www.gnu.org/licenses/>.
##
########################################################################
# This Makefile requires GNU Make features.
export AWK
export GREP
export FIND
export SED
export SHELL
export PERL
export TAR_OPTIONS
version := ${OCTAVE_VERSION}
api_version := ${OCTAVE_API_VERSION}
# Lex flags
AM_LFLAGS = @LFLAGS@
# Until modern Bison rules are handled by autoconf/automake.
AM_V_BISON = $(am__v_BISON_$(V))
am__v_BISON_ = $(am__v_BISON_$(AM_DEFAULT_VERBOSITY))
am__v_BISON_0 = @echo " BISON " $@;
am__v_BISON_1 =
BISON = @BISON@
BISONCOMPILE = $(BISON) $(AM_BISONFLAGS) $(BISONFLAGS)
# Define YACC to pacify automake
YACC = $(BISON)
if AMCOND_LIB_VISIBILITY_FLAGS
OCTAVE_VISIBILITY_FLAGS = ${CFLAG_VISIBILITY}
endif
# Fortran compiler flags.
AM_FFLAGS = ${FPICFLAG} @FFLAGS@ $(OCTAVE_VISIBILITY_FLAGS)
# C compiler flags.
AM_CFLAGS = ${CPICFLAG} ${XTRA_CFLAGS} ${WARN_CFLAGS} $(OCTAVE_VISIBILITY_FLAGS)
# ifeq (${INCLUDE_DEPS},no)
# omit_deps = true;
# endif
# C++ compiler flags.
AM_CXXFLAGS = ${CXXPICFLAG} ${XTRA_CXXFLAGS} ${WARN_CXXFLAGS} $(OCTAVE_VISIBILITY_FLAGS)
ADDRESS_SANITIZER_ENABLED = @ADDRESS_SANITIZER_ENABLED@
ADDRESS_SANITIZER_OPTIONS = @ADDRESS_SANITIZER_OPTIONS@
FFTW_XCPPFLAGS = @FFTW_XCPPFLAGS@
FFTW_XLDFLAGS = @FFTW_XLDFLAGS@
FFTW_XLIBS = @FFTW_XLIBS@
SPARSE_XCPPFLAGS = @SPARSE_XCPPFLAGS@
SPARSE_XLDFLAGS = @SPARSE_XLDFLAGS@
SPARSE_XLIBS = @SPARSE_XLIBS@
# Linker flags and dependencies
if AMCOND_CLANG_PTHREAD_WARNING
AM_LDFLAGS = -Wc,-Qunused-arguments
endif
GNULIB_LINK_DEPS = @GNULIB_LINK_DEPS@
LIBOCTAVE_LINK_DEPS = @LIBOCTAVE_LINK_DEPS@
LIBOCTAVE_LINK_OPTS = @LIBOCTAVE_LINK_OPTS@
LIBOCTINTERP_LINK_DEPS = @LIBOCTINTERP_LINK_DEPS@
LIBOCTINTERP_LINK_OPTS = @LIBOCTINTERP_LINK_OPTS@
OCTAVE_LINK_DEPS = @OCTAVE_LINK_DEPS@
OCTAVE_LINK_OPTS = @OCTAVE_LINK_OPTS@
OCT_LINK_DEPS = @OCT_LINK_DEPS@
OCT_LINK_OPTS = @OCT_LINK_OPTS@
LIBOCTGUI_LINK_DEPS = @LIBOCTGUI_LINK_DEPS@
LIBOCTGUI_LINK_OPTS = @LIBOCTGUI_LINK_OPTS@
OCTAVE_GUI_LINK_DEPS = @OCTAVE_GUI_LINK_DEPS@
OCTAVE_GUI_LINK_OPTS = @OCTAVE_GUI_LINK_OPTS@
# Options used for creating the source distribution.
GZIP_ENV = '--best --no-name'
SOURCE_MTIME := \
$(shell $(SHELL) $(top_srcdir)/build-aux/get-source-mtime.sh "$(srcdir)")
TAR_OPTIONS = $(REPRODUCIBLE_TAR_FLAGS) --mtime=@$(SOURCE_MTIME)
# The arguments passed to configure.
CONFIG_SUBDIRS = @subdirs@
null =
ldpreloadsep = ${null}@ldpreloadsep@${null}
image_DATA =
octdata_DATA =
octdoc_DATA =
octetc_DATA =
octfonts_DATA =
octlocale_DATA =
OCT_FILES =
OCT_FILE_LIBS =
OCT_FILE_PKG_ADD_FILES =
DOC_TARGETS =
BUILT_DISTFILES =
BUILT_NODISTFILES =
EXTRA_DIST =
GEN_CONFIG_SHELL =
BUILT_DISTFILES += \
AUTHORS \
BUGS \
ChangeLog \
HG-ID \
INSTALL.OCTAVE \
NEWS
if AMCOND_ENABLE_HG_ID
DISABLE_HG_ID_OPTION :=
else
DISABLE_HG_ID_OPTION := --disable
endif
## The mk-hg-id.sh script will be executed each time Make runs to
## update the HG-ID file in the build tree if it is out of date.
HG-ID:
$(AM_V_GEN)$(SHELL) $(top_srcdir)/build-aux/mk-hg-id.sh "$(srcdir)" $(DISABLE_HG_ID_OPTION) > $@-t && \
$(simple_move_if_change_rule)
.PHONY: HG-ID
HG_ID_VAR = $(shell cat ${top_builddir}/HG-ID)
EXTRA_DIST += \
CITATION \
COPYING \
INSTALL \
README \
octave.doap \
run-octave.in \
$(BUILT_DISTFILES)
AUTOCONF_SUBST_VARS = @AUTOCONF_SUBST_VARS@
ALL_SUBST_VARS = \
$(AUTOCONF_SUBST_VARS) \
abs_top_builddir \
abs_top_srcdir \
api_version \
version
DIRSTAMP_FILES =
octave_dirstamp = $(am__leading_dot)octave-dirstamp
$(DIRSTAMP_FILES):
$(AM_V_GEN)$(MKDIR_P) $(@D) && \
: > $@
CLEANFILES =
DISTCLEANFILES =
MAINTAINERCLEANFILES =
info_TEXINFOS =
BUILT_SOURCES =
TEST_FILES =
noinst_TEST_FILES =
DOC_IMAGES_SRC =
BUILT_DOC_IMAGES =
BUILT_DOC_IMAGES_EPS =
BUILT_DOC_IMAGES_PDF =
BUILT_DOC_IMAGES_PNG =
BUILT_DOC_IMAGES_TXT =
DOC_IMAGES =
DOC_IMAGES_EPS =
DOC_IMAGES_PDF =
DOC_IMAGES_PNG =
DOC_IMAGES_TXT =
FCN_FILE_DIRS =
FCN_FILES =
GEN_FCN_FILES =
PKG_ADD_FILES =
SCRIPTS_IMAGES =
JAR_FILES =
DOCSTRING_FILES =
bin_PROGRAMS =
archlib_PROGRAMS =
noinst_HEADERS =
nodist_noinst_HEADERS =
OCTAVE_VERSION_LINKS =
OCTAVE_CROSS_TOOLS =
OCTAVE_INTERPRETER_TARGETS =
octlib_LTLIBRARIES =
noinst_LTLIBRARIES =
octinclude_HEADERS =
nodist_octinclude_HEADERS =
DIST_SRC =
ALL_LOCAL_TARGETS =
# Subdirectories in which to run make recursively.
# Other directories are handled directly from this Makefile,
# but also review the included module.mk makefile fragments.
SUBDIRS = libgnu test
# All of build depends on having libgnu.
# Add the library to BUILT_SOURCES so it is created early in the build process
# This is only a partial solution which works when 'make all' is used.
# See bug #45578.
BUILT_SOURCES += libgnu/libgnu.la
libgnu/libgnu.la: oct-conf-post-private.h oct-conf-post-public.h
cd libgnu && $(MAKE) $(AM_MAKEFLAGS) all
include liboctave/module.mk
include libinterp/module.mk
include libmex/module.mk
include libgui/module.mk
include src/module.mk
include scripts/module.mk
include doc/module.mk
include etc/module.mk
include examples/module.mk
include m4/module.mk
include build-aux/module.mk
DIST_HOOKS := \
doc-interpreter-dist-hook \
docs-dist-hook \
fix-file-perms-dist-hook \
hg-id-dist-hook \
metainfo-dist-hook \
icons-dist-hook \
scripts-dist-hook
dist-hook: $(DIST_HOOKS)
if AMCOND_BUILD_DOCS
docs-dist-hook:
else
docs-dist-hook:
@echo "Documentation disabled. Cannot package distribution!" ; exit 1;
endif
## Ensure file permissions are consistent on all files included in the
## distribution. Automake takes care of normalizing some permissions of
## normal files and directories. Automake does not ensure that files don't
## have unnecessarily lax write permissions. It also does not ensure that
## executable permissions are set for group and other users.
fix-file-perms-dist-hook:
-chmod -R go-w "$(distdir)"
-find "$(distdir)" -type f -perm -100 -exec chmod a+rx {} \;
.PHONY: fix-file-perms-dist-hook
if AMCOND_ENABLE_HG_ID
hg-id-dist-hook:
@test x"$(DIST_IGNORE_HG_STATE)" != x \
|| echo $(HG_ID_VAR) | $(GREP) '^[0-9a-f]\{12\}$$' >/dev/null 2>&1 \
|| { echo ; \
echo "Packaging distribution requires a clean hg working tree with no uncommitted changes." ; \
echo "Please commit or revert your changes first, or pass DIST_IGNORE_HG_STATE=1." ; \
echo "Cannot package distribution!" ; \
echo ; exit 1; }
else
hg-id-dist-hook:
@echo "Octave was configured with --disable-hg-id. Cannot package distribution!" 1>&2 ; exit 1;
endif
.PHONY: hg-id-dist-hook
if AMCOND_HAVE_ICON_TOOLS
icons-dist-hook:
else
icons-dist-hook:
@echo "Packaging distribution requires icotool and rsvg-convert." ; exit 1;
endif
BUILT_SOURCES += \
oct-conf-post-private.h \
oct-conf-post-public.h \
octave-config.h \
run-octave \
$(DIRSTAMP_FILES)
noinst_SCRIPTS = run-octave
CLEANFILES += \
config-vars \
make-vars \
oct-file-pkg-add \
octave-config.h \
run-octave
DISTCLEANFILES += \
$(DIRSTAMP_FILES) \
$(GEN_CONFIG_INC) \
$(GEN_CONFIG_SHELL) \
.gdbinit
MAINTAINERCLEANFILES += \
$(BUILT_DISTFILES)
CONFIG_FILES = @ac_config_headers@ @ac_config_files@
nodist_octinclude_HEADERS += \
oct-conf-post-public.h \
octave-config.h
OCTAVE_INTERPRETER_TARGETS += \
$(OCT_FILE_PKG_ADD_FILES)
ALL_LOCAL_TARGETS += \
$(OCTAVE_INTERPRETER_TARGETS) \
.gdbinit \
$(DOC_TARGETS)
all-local: $(ALL_LOCAL_TARGETS)
@echo ""
@echo "Octave successfully built. Now choose from the following:"
@echo ""
@echo " ./run-octave - to run in place to test before installing"
@echo " make check - to run the tests"
@echo " make install - to install (PREFIX=$(prefix))"
@echo ""
@echo " HG ID for this build is \"$(HG_ID_VAR)\""
@echo ""
run-octave: run-octave.in build-aux/subst-script-vals.sh
$(AM_V_GEN)$(call simple-filter-rule,build-aux/subst-script-vals.sh) && \
chmod a+rx $@
octave-config.h: config.h build-aux/mk-octave-config-h.sh
$(AM_V_GEN)$(SHELL) $(srcdir)/build-aux/mk-octave-config-h.sh $< > $@-t && \
$(simple_move_if_change_rule)
config-vars: $(GEN_CONFIG_SHELL)
$(AM_V_GEN)rm -f $@-t $@ && \
$(SED) -n 's/ *"$$/"/; s/^\([A-Za-z_][A-Za-z0-9_]*\)=" *\(.*\)" *$$/\1 \2/p' $^ | sort -u > $@-t && \
mv $@-t $@
## We always have to create this file because values for Make variables
## may be passed on the command line.
make-vars:
$(file >$@-t) $(foreach v, $(ALL_SUBST_VARS), $(file >>$@-t,$(v) $(value $(v))))
$(AM_V_GEN)mv $@-t $@
.PHONY: make-vars
check-subst-vars: build-aux/check-subst-vars.sh make-vars config-vars
@$(SHELL) -f build-aux/check-subst-vars.sh make-vars config-vars
.PHONY: check-subst-vars
.gdbinit: etc/gdbinit
$(AM_V_GEN)$(gdbinit-install-rule)
NEWS: etc/NEWS.$(OCTAVE_MAJOR_VERSION).md
$(AM_V_GEN)rm -f $@ && \
cp $< $@
define changelog-from-hg-log
rm -f $@-t && \
if [ -d $(srcdir)/.hg ]; then \
( cd $(srcdir); \
hg log --no-graph --style=build-aux/changelog.tmpl --prune=b0e60ad4ae26 --only-branch=`hg branch`; \
echo ""; \
echo "See the files in the directory etc/OLD-ChangeLogs for changes before 2011-04-19"; \
) > $@-t && \
mv $@-t $@; \
elif [ ! -f $@ ] && [ ! -f $(srcdir)/$@ ]; then \
echo "Empty ChangeLog generated because no hg log available" > $@-t && \
mv $@-t $@; \
fi
endef
ChangeLog:
$(AM_V_GEN)$(changelog-from-hg-log)
.PHONY: ChangeLog
octetc_DATA += \
CITATION \
NEWS
if AMCOND_INSTALL_BUILD_LOGS
octetc_DATA += config.log
endif
DIRS_TO_MAKE = \
$(localfcnfiledir) \
$(localapifcnfiledir) \
$(localapipkgdir) \
$(localverfcnfiledir) \
$(localoctfiledir) \
$(localapioctfiledir) \
$(localveroctfiledir) \
$(localarchlibdir) \
$(localapiarchlibdir) \
$(localverarchlibdir)
installdirs-local:
$(MKDIR_P) $(addprefix $(DESTDIR), $(DIRS_TO_MAKE))
install-data-local: installdirs-local
oct-file-pkg-add: $(OCT_FILE_PKG_ADD_FILES)
cat $(OCT_FILE_PKG_ADD_FILES) > $@-t \
&& mv $@-t $@
install-oct: oct-file-pkg-add
$(MKDIR_P) $(DESTDIR)$(octfiledir)
if [ -n "`cat $(OCT_FILE_PKG_ADD_FILES)`" ]; then \
$(INSTALL_DATA) oct-file-pkg-add $(DESTDIR)$(octfiledir)/PKG_ADD; \
fi
top_build_dir=`pwd` && \
cd $(DESTDIR)$(octlibdir) && \
for ltlib in $(OCT_FILE_LIBS); do \
f=`echo $$ltlib | $(SED) 's,.*/,,'`; \
dl=`$(SED) -n -e "s/dlname='\([^']*\)'/\1/p" < $$top_build_dir/$$ltlib`; \
if [ -n "$$dl" ]; then \
$(INSTALL_PROGRAM) $$dl $(DESTDIR)$(octfiledir)/`echo $$f | $(SED) 's,^lib,,; s,\.la$$,.oct,'`; \
else \
echo "error: dlname is empty in $$ltlib!"; \
exit 1; \
fi; \
lnames=`$(SED) -n -e "s/library_names='\([^']*\)'/\1/p" < $$top_build_dir/$$ltlib`; \
if [ -n "$$lnames" ]; then \
rm -f $$f $$lnames $$dl; \
fi \
done
.PHONY: install-oct
uninstall-oct:
for f in $(notdir $(OCT_FILES)); do \
rm -f $(DESTDIR)$(octfiledir)/$$f; \
done
rm -f $(DESTDIR)$(octfiledir)/PKG_ADD
.PHONY: uninstall-oct
clean-local: doc-clean
distclean-local:
if [ "x${srcdir}" != "x." ]; then rm -f HG-ID; fi
maintainer-clean-local: doc-maintainer-clean
## The 'clean-aminfo' target is defined by Automake >= 1.11. We want to
## distribute all Texinfo docs with the source distribution and not delete
## them on 'clean', so we override this target to do nothing by default.
clean-aminfo:
define move_if_change_rule
if [ -s $(1) ]; then \
${SHELL} ${top_srcdir}/build-aux/move-if-change $(1) $(2); \
else \
echo "$(1) is empty!" 1>&2; \
rm -f $(1); \
exit 1; \
fi
endef
define simple_move_if_change_rule
$(call move_if_change_rule,$@-t,$@)
endef
define build-info-commands
rm -f $@-t && \
$(SED) \
-e "s|%NO_EDIT_WARNING%|DO NOT EDIT! Generated automatically by Makefile|" \
-e "s|%OCTAVE_HG_ID%|$(HG_ID_VAR)|" $< > $@-t && \
$(simple_move_if_change_rule)
endef
define simple-filter-rule
rm -f $@-t $@ && \
${SHELL} $(1) < $< > $@-t && \
mv $@-t $@
endef
define gdbinit-install-rule
if [ -f $@ ] && ! cmp -s $< $@; then \
echo "refusing to overwrite $@ with newer version from $<" 1>&2; \
else \
cp $< $@; \
fi
endef
define test-file-commands
rm -f $@-t $@ && \
( echo "## DO NOT EDIT! Generated automatically from $(<F) by Make."; \
$(GREP) '^%!' $< \
) > $@-t && \
mv $@-t $@
endef
%.cc-tst : %.cc
$(AM_V_GEN)$(test-file-commands)
%.yy-tst : %.yy
$(AM_V_GEN)$(test-file-commands)
%.ll-tst : %.ll
$(AM_V_GEN)$(test-file-commands)
================================================
FILE: README
================================================
GNU Octave -- a high-level language for numerical computations
==============================================================
Copyright (C) 1996-2026 The Octave Project Developers
See the file COPYRIGHT.md in the top-level directory of this
distribution or <https://octave.org/copyright/>.
Overview
--------
GNU Octave is a high-level interpreted language, primarily intended
for numerical computations. It provides capabilities for the
numerical solution of linear and nonlinear problems, and for
performing other numerical experiments. It also provides extensive
graphics capabilities for data visualization and manipulation. GNU
Octave is normally used through its interactive interface (CLI and
GUI), but it can also be used to write non-interactive programs.
The GNU Octave language is quite similar to Matlab so that most
programs are easily portable.
GNU Octave is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GNU Octave is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Octave; see the file COPYING. If not, see
<https://www.gnu.org/licenses/>.
Availability
------------
The latest released version of Octave is always available from
<https://ftp.gnu.org/gnu/octave/> and many mirror sites around the
world. You may also find links to binary distributions at
<https://www.octave.org/download.html>. The current development
sources may be found under the Source Code tab on
[Savannah](https://savannah.gnu.org/projects/octave/).
You are encouraged to verify the Octave installation file you download
(such as `octave-11.1.0.tar.xz`) as follows:
* First, ensure that you are downloading from the official Octave website, or
from a GNU mirror linked from the official Octave website.
* Next, download the corresponding signature file for the installation file
you downloaded, for example `octave-11.1.0.tar.xz.sig`.
* Next, run the command
```
gpg --keyserver hkps://keys.gnupg.net --recv-keys B05F05B75D36644B
```
to import John W. Eaton's public key (this needs to be done only once).
* Verify the integrity of the file you downloaded with a command like
```
gpg --verify octave-11.1.0.tar.xz.sig
```
* If all is well, then the output should say
```
gpg: Good signature from "John W. Eaton <jwe@gnu.org>
```
* If the file you downloaded was corrupted or changed by anyone else, then
the output will say
```
gpg: BAD signature from "John W. Eaton <jwe@gnu.org>"
```
If so, you should not install Octave from that file, but should start over.
Installation
------------
Building Octave from source requires approximately 475 MB of disk space (or
approximately 3.8 GB with debugging symbols). Once installed, Octave uses
approximately 75 MB of disk space (or approximately 415 MB if shared libraries
are not built or binaries include debugging symbols).
To compile Octave, you will need a recent version of:
- [GNU Make](https://www.gnu.org/software/make/)
- [GNU G++](https://gcc.gnu.org/) or a different C++17 compiler
- [GNU Fortran](https://gcc.gnu.org/fortran/), a different Fortran 77 compiler,
or [f2c](http://www.netlib.org/f2c/)
Octave's Makefiles use features of GNU Make that are not present in
other versions of make. If you use `f2c`, you will need a script
like `fort77` that works like a normal Fortran compiler by combining
`f2c` with your C compiler in a single script.
See the file `INSTALL.OCTAVE` or the wiki at <https://wiki.octave.org/Building>
for more detailed installation instructions.
Bugs and Patches
----------------
The files `BUGS` and `doc/interpreter/bugs.txi` explain the recommended
procedure for reporting bugs on the [bug tracker](https://bugs.octave.org)
or contributing patches; online resources are also available
[here](https://octave.org/support).
Documentation
-------------
* [Octave's manual](https://docs.octave.org/interpreter/) is a
comprehensive user guide covering introductive and more advanced
topics.
* [Octave's wiki](https://wiki.octave.org) is a user community page,
covering various topics and answering [FAQ](https://wiki.octave.org/FAQ).
* [Octave's Doxygen](https://docs.octave.org/doxygen/) documentation
explains the C++ class libraries.
If you notice omissions or inconsistencies in the documentation, please
report them at our bug tracker. Specific suggestions for ways to improve
Octave and its documentation are always welcome. Reports with patches are
even more welcome.
Additional Information
----------------------
The Octave website is <https://www.octave.org>, and there is a forum
at <https://octave.discourse.group/>.
================================================
FILE: autogen.sh
================================================
#!/bin/sh
# Convenience script for regenerating all autogeneratable files that are
# omitted from the version control repository. In particular, this script
# also regenerates all aclocal.m4, config.h.in, Makefile.in, configure files
# with new versions of autoconf or automake.
# Copyright (C) 2003-2025 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Originally written by Paul Eggert. The canonical version of this
# script is maintained as top/autogen.sh in gnulib. However, to be
# useful to your package, you should place a copy of it under version
# control in the top-level directory of your package. The intent is
# that all customization can be done with a bootstrap.conf file also
# maintained in your version control; gnulib comes with a template
# build-aux/bootstrap.conf to get you started.
#
# Alternatively, you can use an autogen.sh script that is specific
# to your package.
me="$0"
medir=`dirname "$me"`
# Read the function library and the configuration.
. "$medir"/bootstrap-funclib.sh
autogen "$@"
================================================
FILE: autopull.sh
================================================
#!/bin/sh
# Convenience script for fetching auxiliary files that are omitted from
# the version control repository of this package.
# Copyright (C) 2003-2025 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Originally written by Paul Eggert. The canonical version of this
# script is maintained as top/autopull.sh in gnulib. However, to be
# useful to your package, you should place a copy of it under version
# control in the top-level directory of your package. The intent is
# that all customization can be done with a bootstrap.conf file also
# maintained in your version control; gnulib comes with a template
# build-aux/bootstrap.conf to get you started.
#
# Alternatively, you can use an autopull.sh script that is specific
# to your package.
me="$0"
medir=`dirname "$me"`
# Read the function library and the configuration.
. "$medir"/bootstrap-funclib.sh
autopull "$@"
================================================
FILE: bootstrap
================================================
#! /bin/sh
# Bootstrap this package from checked-out sources.
scriptversion=2025-06-10.02; # UTC
# Copyright (C) 2003-2025 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Originally written by Paul Eggert. The canonical version of this
# script is maintained as top/bootstrap in gnulib. However, to be
# useful to your package, you should place a copy of it under version
# control in the top-level directory of your package. The intent is
# that all customization can be done with a bootstrap.conf file also
# maintained in your version control; gnulib comes with a template
# build-aux/bootstrap.conf to get you started.
# Please report bugs or propose patches to bug-gnulib@gnu.org.
me="$0"
medir=`dirname "$me"`
# Read the function library and the configuration.
. "$medir"/bootstrap-funclib.sh
usage() {
cat <<EOF
Usage: $me [OPTION]...
Bootstrap this package from the checked-out sources.
Optional environment variables:
GNULIB_SRCDIR Specifies the local directory where gnulib
sources reside. Use this if you already
have gnulib sources on your machine, and
you want to use these sources.
GNULIB_REFDIR Specifies the local directory where a gnulib
repository (with a .git subdirectory) resides.
Use this if you already have gnulib sources
and history on your machine, and do not want
to waste your bandwidth downloading them again.
Only used for phase 1 (--pull).
GNULIB_URL URL of the gnulib repository. The default is
$default_gnulib_url,
which is Gnulib's upstream repository.
Only used for phase 1 (--pull).
Options:
--pull Do phase 1: Pull files from the network.
--gen Do phase 2: Generate files from local files
(no network access).
(The default is to do both phases.)
--gnulib-srcdir=DIRNAME Specifies the local directory where gnulib
sources reside. Use this if you already
have gnulib sources on your machine, and
you want to use these sources. Defaults
to \$GNULIB_SRCDIR.
--gnulib-refdir=DIRNAME Specifies the local directory where a gnulib
repository (with a .git subdirectory) resides.
Use this if you already have gnulib sources
and history on your machine, and do not want
to waste your bandwidth downloading them again.
Defaults to \$GNULIB_REFDIR.
Only used for phase 1 (--pull).
--bootstrap-sync If this bootstrap script is not identical to
the version in the local gnulib sources,
update this script, and then restart it with
/bin/sh or the shell \$CONFIG_SHELL.
--no-bootstrap-sync Do not check whether bootstrap is out of sync.
--copy Copy files instead of creating symbolic links.
Only used for phase 2 (--gen).
--force Attempt to bootstrap even if the sources seem
not to have been checked out.
--no-git Do not use git to update gnulib. Requires that
\$GNULIB_SRCDIR or the --gnulib-srcdir option
points to a gnulib repository with the correct
revision.
Only used for phase 1 (--pull).
--skip-po Do not download *.po files.
Only used for phase 1 (--pull).
EOF
bootstrap_print_option_usage_hook
cat <<EOF
If the file bootstrap.conf exists in the same directory as this script, its
contents are read as shell variables to configure the bootstrap.
For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
are honored.
Gnulib sources can be fetched in various ways:
* If GNULIB_SRCDIR is set (either as an environment variable or via the
--gnulib-srcdir option), then sources are fetched from that local
directory. If it is a git repository and the configuration variable
GNULIB_REVISION is set in bootstrap.conf, then that revision is
checked out.
* Otherwise, if this package is in a git repository with a 'gnulib'
submodule configured, then that submodule is initialized and updated
and sources are fetched from there. If GNULIB_REFDIR is set (either
as an environment variable or via the --gnulib-refdir option) and is
a git repository, then it is used as a reference.
* Otherwise, if the 'gnulib' directory does not exist, Gnulib sources
are cloned into that directory using git from \$GNULIB_URL, defaulting
to $default_gnulib_url; if GNULIB_REFDIR is set and is a git repository
its contents may be used to accelerate the process.
If the configuration variable GNULIB_REVISION is set in bootstrap.conf,
then that revision is checked out.
* Otherwise, the existing Gnulib sources in the 'gnulib' directory are
used. If it is a git repository and the configuration variable
GNULIB_REVISION is set in bootstrap.conf, then that revision is
checked out.
If you maintain a package and want to pin a particular revision of the
Gnulib sources that has been tested with your package, then there are
two possible approaches: either configure a 'gnulib' submodule with the
appropriate revision, or set GNULIB_REVISION (and if necessary
GNULIB_URL) in bootstrap.conf.
Running without arguments will suffice in most cases.
EOF
}
# Parse options.
# Whether to pull and generate.
pull=false
gen=false
# Whether to use copies instead of symlinks.
copy=false
# Use git to update gnulib sources
use_git=true
for option
do
case $option in
--help)
usage
exit;;
--version)
set -e
echo "bootstrap $scriptversion lib $scriptlibversion"
echo "$copyright"
exit 0
;;
--pull)
pull=true;;
--gen)
gen=true;;
--gnulib-srcdir=*)
GNULIB_SRCDIR=${option#--gnulib-srcdir=};;
--gnulib-refdir=*)
GNULIB_REFDIR=${option#--gnulib-refdir=};;
--skip-po)
SKIP_PO=t;;
--force)
checkout_only_file=;;
--copy)
copy=true;;
--bootstrap-sync)
bootstrap_sync=true;;
--no-bootstrap-sync)
bootstrap_sync=false;;
--no-git)
use_git=false;;
*)
bootstrap_option_hook $option || die "$option: unknown option";;
esac
done
# Default is to do both.
$pull || $gen || pull=true gen=true
$use_git || test -n "$GNULIB_SRCDIR" \
|| die "Error: --no-git requires \$GNULIB_SRCDIR environment variable" \
"or --gnulib-srcdir option"
test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
|| die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir" \
"option is specified, but does not denote a directory"
if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
die "Bootstrapping from a non-checked-out distribution is risky."
fi
check_build_prerequisites $use_git
if $bootstrap_sync; then
prepare_GNULIB_SRCDIR
upgrade_bootstrap "$@"
# Since we have now upgraded if needed, no need to try it a second time below.
bootstrap_sync=false
fi
echo "$0: Bootstrapping from checked-out $package sources..."
# Pass GNULIB_SRCDIR and GNULIB_REFDIR to any subsidiary commands that care.
export GNULIB_SRCDIR
export GNULIB_REFDIR
if $pull && { $use_git || test -z "$SKIP_PO"; }; then
autopull \
`if $bootstrap_sync; then
echo ' --bootstrap-sync'
else
echo ' --no-bootstrap-sync'
fi` \
`if test -z "$checkout_only_file"; then echo ' --force'; fi` \
`if ! $use_git; then echo ' --no-git'; fi` \
`if test -n "$SKIP_PO"; then echo ' --skip-po'; fi` \
|| die "could not fetch auxiliary files"
fi
if $gen; then
autogen \
`if $copy; then echo ' --copy'; fi` \
`if test -z "$checkout_only_file"; then echo ' --force'; fi` \
|| die "could not generate auxiliary files"
fi
# ----------------------------------------------------------------------------
# Local Variables:
# eval: (add-hook 'before-save-hook 'time-stamp nil t)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%Y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
================================================
FILE: bootstrap-funclib.sh
================================================
# A library of shell functions for autopull.sh, autogen.sh, and bootstrap.
scriptlibversion=2025-11-12.14; # UTC
# Copyright (C) 2003-2025 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# Originally written by Paul Eggert. The canonical version of this
# script is maintained as top/bootstrap-funclib.sh in gnulib. However,
# to be useful to your package, you should place a copy of it under
# version control in the top-level directory of your package. The
# intent is that all customization can be done with a bootstrap.conf
# file also maintained in your version control; gnulib comes with a
# template build-aux/bootstrap.conf to get you started.
nl='
'
# Ensure file names are sorted consistently across platforms.
LC_ALL=C
export LC_ALL
# Honor $PERL, but work even if there is none.
PERL="${PERL-perl}"
default_gnulib_url=https://https.git.savannah.gnu.org/git/gnulib.git
# Copyright year, for the --version output.
copyright_year=`echo "$scriptlibversion" | sed -e 's/[^0-9].*//'`
copyright="Copyright (C) ${copyright_year} Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law."
# warnf_ FORMAT-STRING ARG1...
warnf_ ()
{
warnf_format_=$1
shift
nl='
'
case $* in
*$nl*) me_=$(printf "$me"|tr "$nl|" '??')
printf "$warnf_format_" "$@" | sed "s|^|$me_: |" ;;
*) printf "$me: $warnf_format_" "$@" ;;
esac >&2
}
# warn_ WORD1...
warn_ ()
{
# If IFS does not start with ' ', set it and emit the warning in a subshell.
case $IFS in
' '*) warnf_ '%s\n' "$*";;
*) (IFS=' '; warn_ "$@");;
esac
}
# die WORD1...
die() { warn_ "$@"; exit 1; }
# ------------------------------ Configuration. ------------------------------
# Directory that contains package-specific gnulib modules and/or overrides.
local_gl_dir=gl
# Name of the Makefile.am
# XXX Not used.
gnulib_mk=gnulib.mk
# List of gnulib modules needed.
gnulib_modules=
# Any gnulib files needed that are not in modules.
gnulib_files=
# A function to be called for each unrecognized option. Returns 0 if
# the option in $1 has been processed by the function. Returns 1 if
# the option has not been processed by the function. Override it via
# your own definition in bootstrap.conf
bootstrap_option_hook() { return 1; }
# A function to be called in order to print the --help information
# corresponding to user-defined command-line options.
bootstrap_print_option_usage_hook() { :; }
# A function to be called at the end of autopull.sh.
# Override it via your own definition in bootstrap.conf.
bootstrap_post_pull_hook() { :; }
# A function to be called right after gnulib-tool is run.
# Override it via your own definition in bootstrap.conf.
bootstrap_post_import_hook() { :; }
# A function to be called after everything else in this script.
# Override it via your own definition in bootstrap.conf.
bootstrap_epilogue() { :; }
# The command to download all .po files for a specified domain into a
# specified directory. Fill in the first %s with the destination
# directory and the second with the domain name.
po_download_command_format=\
"wget --mirror --level=1 -nd -nv -A.po -P '%s' \
https://translationproject.org/latest/%s/"
# When extracting the package name from an AC_INIT invocation,
# prefer a non-empty tarname (4th argument of AC_INIT if given), else
# fall back to the package name (1st argument with munging).
extract_package_name='
/^AC_INIT(\[*/{
s///
/^[^,]*,[^,]*,[^,]*,[ []*\([^][ ,)]\)/{
s//\1/
s/[],)].*//
p
q
}
s/[],)].*//
p
}
'
normalize_package_name='
s/^GNU //
y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
s/[^abcdefghijklmnopqrstuvwxyz0123456789_]/-/g
'
package=$(${AUTOCONF:-autoconf} --trace 'AC_INIT:$4' configure.ac 2>/dev/null)
if test -z "$package"; then
package=$(sed -n "$extract_package_name" configure.ac) \
|| die 'cannot find package name in configure.ac'
fi
package=$(echo "$package" | sed "$normalize_package_name")
gnulib_name=lib$package
build_aux=build-aux
source_base=lib
m4_base=m4
doc_base=doc
tests_base=tests
gnulib_extra_files="
build-aux/install-sh
build-aux/mdate-sh
build-aux/texinfo.tex
build-aux/depcomp
build-aux/config.guess
build-aux/config.sub
doc/INSTALL
"
# Additional gnulib-tool options to use. Use "\newline" to break lines.
gnulib_tool_option_extras=
# Other locale categories that need message catalogs.
EXTRA_LOCALE_CATEGORIES=
# Additional xgettext options to use. Use "\\\newline" to break lines.
XGETTEXT_OPTIONS='\\\
--flag=_:1:pass-c-format\\\
--flag=N_:1:pass-c-format\\\
--flag=error:3:c-format --flag=error_at_line:5:c-format\\\
'
# Package bug report address and copyright holder for gettext files
COPYRIGHT_HOLDER='Free Software Foundation, Inc.'
MSGID_BUGS_ADDRESS=bug-$package@gnu.org
# Files we don't want to import.
# XXX Not used.
excluded_files=
# File that should exist in the top directory of a checked out hierarchy,
# but not in a distribution tarball.
checkout_only_file=README-hacking
# Set this to '.cvsignore .gitignore' in bootstrap.conf if you want
# those files to be generated in directories like lib/, m4/, and po/.
# Or set it to 'auto' to make this script select which to use based
# on which version control system (if any) is used in the source directory.
vc_ignore=auto
# Set this to true in bootstrap.conf to enable --bootstrap-sync by
# default.
bootstrap_sync=false
# Override the default configuration, if necessary.
# Make sure that bootstrap.conf is sourced from the current directory
# if we were invoked as "sh bootstrap".
conffile=`dirname "$me"`/bootstrap.conf
test -r "$conffile" && . "$conffile"
# ------------------------- Build-time prerequisites -------------------------
check_exists() {
if test "$1" = "--verbose"; then
($2 --version </dev/null) >/dev/null 2>&1
if test $? -ge 126; then
# If not found, run with diagnostics as one may be
# presented with env variables to set to find the right version
($2 --version </dev/null)
fi
else
($1 --version </dev/null) >/dev/null 2>&1
fi
test $? -lt 126
}
# Note this deviates from the version comparison in automake
# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
# but this should suffice as we won't be specifying old
# version formats or redundant trailing .0 in bootstrap.conf.
# If we did want full compatibility then we should probably
# use m4_version_compare from autoconf.
sort_ver() { # sort -V is not generally available
ver1="$1"
ver2="$2"
# split on '.' and compare each component
i=1
while : ; do
p1=$(echo "$ver1" | cut -d. -f$i)
p2=$(echo "$ver2" | cut -d. -f$i)
if [ ! "$p1" ]; then
echo "$1 $2"
break
elif [ ! "$p2" ]; then
echo "$2 $1"
break
elif [ ! "$p1" = "$p2" ]; then
if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison
echo "$2 $1"
elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison
echo "$1 $2"
else # numeric, then lexicographic comparison
lp=$(printf "%s\n%s\n" "$p1" "$p2" | LANG=C sort -n | tail -n1)
if [ "$lp" = "$p2" ]; then
echo "$1 $2"
else
echo "$2 $1"
fi
fi
break
fi
i=$(($i+1))
done
}
get_version_sed='
# Move version to start of line.
s/.*[v ]\([0-9]\)/\1/
# Skip lines that do not start with version.
/^[0-9]/!d
# Remove characters after the version.
s/[^.a-z0-9-].*//
# The first component must be digits only.
s/^\([0-9]*\)[a-z-].*/\1/
#the following essentially does s/5.005/5.5/
s/\.0*\([1-9]\)/.\1/g
p
q'
get_version() {
app=$1
$app --version >/dev/null 2>&1 || { $app --version; return 1; }
$app --version 2>&1 | sed -n "$get_version_sed"
}
check_versions() {
ret=0
while read app req_ver; do
# We only need libtoolize from the libtool package.
if test "$app" = libtool; then
app=libtoolize
fi
# Exempt git if git is not needed.
if test "$app" = git; then
$check_git || continue
fi
# Honor $APP variables ($TAR, $AUTOCONF, etc.)
appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_')
test "$appvar" = TAR && appvar=AMTAR
case $appvar in
GZIP) ;; # Do not use $GZIP: it contains gzip options.
PERL::*) ;; # Keep perl modules as-is
*) eval "app=\${$appvar-$app}" ;;
esac
# Handle the still-experimental Automake-NG programs specially.
# They remain named as the mainstream Automake programs ("automake",
# and "aclocal") to avoid gratuitous incompatibilities with
# preexisting usages (by, say, autoreconf, or custom autogen.sh
# scripts), but correctly identify themselves (as being part of
# "GNU automake-ng") when asked their version.
case $app in
automake-ng|aclocal-ng)
app=${app%-ng}
($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || {
warn_ "Error: '$app' not found or not from Automake-NG"
ret=1
continue
} ;;
# Another check is for perl modules. These can be written as
# e.g. perl::XML::XPath in case of XML::XPath module, etc.
perl::*)
# Extract module name
app="${app#perl::}"
if ! $PERL -m"$app" -e 'exit 0' >/dev/null 2>&1; then
warn_ "Error: perl module '$app' not found"
ret=1
fi
continue
;;
esac
if [ "$req_ver" = "-" ]; then
# Merely require app to exist; not all prereq apps are well-behaved
# so we have to rely on $? rather than get_version.
if ! check_exists --verbose $app; then
warn_ "Error: '$app' not found"
ret=1
fi
else
# Require app to produce a new enough version string.
inst_ver=$(get_version $app)
if [ ! "$inst_ver" ]; then
warn_ "Error: '$app' not found"
ret=1
else
latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2)
if [ ! "$latest_ver" = "$inst_ver" ]; then
warnf_ '%s\n' \
"Error: '$app' version == $inst_ver is too old" \
" '$app' version >= $req_ver is required"
ret=1
fi
fi
fi
done
return $ret
}
print_versions() {
echo "Program Min_version"
echo "----------------------"
printf %s "$buildreq"
echo "----------------------"
# can't depend on column -t
}
# check_build_prerequisites check_git
check_build_prerequisites()
{
check_git="$1"
# gnulib-tool requires at least automake and autoconf.
# If either is not listed, add it (with minimum version) as a prerequisite.
case $buildreq in
*automake*) ;;
*) buildreq="automake 1.9
$buildreq" ;;
esac
case $buildreq in
*autoconf*) ;;
*) buildreq="autoconf 2.59
$buildreq" ;;
esac
# When we can deduce that gnulib-tool will require patch,
# and when patch is not already listed as a prerequisite, add it, too.
if test -d "$local_gl_dir" \
&& ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then
case $buildreq in
*patch*) ;;
*) buildreq="patch -
$buildreq" ;;
esac
fi
if ! printf '%s' "$buildreq" | check_versions; then
echo >&2
if test -f README-prereq; then
die "See README-prereq for how to get the prerequisite programs"
else
die "Please install the prerequisite programs"
fi
fi
# Warn the user if autom4te appears to be broken; this causes known
# issues with at least gettext 0.18.3.
probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -)
if test "x$probe" != xhi; then
warn_ "WARNING: your autom4te wrapper eats stdin;"
warn_ "if bootstrap fails, consider upgrading your autotools"
fi
}
# find_tool ENVVAR NAMES...
# -------------------------
# Search for a required program. Use the value of ENVVAR, if set,
# otherwise find the first of the NAMES that can be run.
# If found, set ENVVAR to the program name, die otherwise.
#
# FIXME: code duplication, see also gnu-web-doc-update.
find_tool ()
{
find_tool_envvar=$1
shift
find_tool_names=$@
eval "find_tool_res=\$$find_tool_envvar"
if test x"$find_tool_res" = x; then
for i; do
if check_exists $i; then
find_tool_res=$i
break
fi
done
fi
if test x"$find_tool_res" = x; then
warn_ "one of these is required: $find_tool_names;"
die "alternatively set $find_tool_envvar to a compatible tool"
fi
eval "$find_tool_envvar=\$find_tool_res"
eval "export $find_tool_envvar"
}
# --------------------- Preparing GNULIB_SRCDIR for use. ---------------------
# This is part of autopull.sh, but bootstrap needs it too, for self-upgrading.
# cleanup_gnulib fails, removing the directory $gnulib_path first.
cleanup_gnulib() {
status=$?
rm -fr "$gnulib_path"
exit $status
}
git_modules_config () {
test -f .gitmodules && git config --file .gitmodules "$@"
}
prepare_GNULIB_SRCDIR ()
{
if test -n "$GNULIB_SRCDIR"; then
# Use GNULIB_SRCDIR directly.
# We already checked that $GNULIB_SRCDIR references a directory.
# Verify that it contains a gnulib checkout.
test -f "$GNULIB_SRCDIR/gnulib-tool" \
|| die "Error: --gnulib-srcdir or \$GNULIB_SRCDIR is specified," \
"but does not contain gnulib-tool"
if test -n "$GNULIB_REVISION" && $use_git; then
# The 'git checkout "$GNULIB_REVISION"' command succeeds if the
# GNULIB_REVISION is a commit hash that exists locally, or if it is
# branch name that can be fetched from origin. It fails, however,
# if the GNULIB_REVISION is a commit hash that only exists in
# origin. In this case, we need a 'git fetch' and then retry
# 'git checkout "$GNULIB_REVISION"'.
git -C "$GNULIB_SRCDIR" checkout "$GNULIB_REVISION" 2>/dev/null \
|| { git -C "$GNULIB_SRCDIR" fetch origin \
&& git -C "$GNULIB_SRCDIR" checkout "$GNULIB_REVISION"; } \
|| exit $?
fi
else
if ! $use_git; then
die "Error: --no-git is specified," \
"but neither --gnulib-srcdir nor \$GNULIB_SRCDIR is specified"
fi
if git submodule -h | grep -- --reference > /dev/null; then
:
else
die "git version is too old, git >= 1.6.4 is required"
fi
gnulib_path=$(git_modules_config submodule.gnulib.path)
if test -n "$gnulib_path"; then
# A submodule 'gnulib' is configured.
# Get gnulib files. Populate $gnulib_path, updating the submodule.
if test -n "$GNULIB_REFDIR" && test -d "$GNULIB_REFDIR"/.git; then
# Use GNULIB_REFDIR as a reference.
echo "$0: getting gnulib files..."
git submodule update --init --reference "$GNULIB_REFDIR" "$gnulib_path"\
|| exit $?
else
# GNULIB_REFDIR is not set or not usable. Ignore it.
if git_modules_config submodule.gnulib.url >/dev/null; then
echo "$0: getting gnulib files..."
git submodule init -- "$gnulib_path" || exit $?
git submodule update -- "$gnulib_path" || exit $?
else
die "Error: submodule 'gnulib' has no configured url"
fi
fi
else
gnulib_path='gnulib'
if test ! -d "$gnulib_path"; then
# The subdirectory 'gnulib' does not yet exist. Clone into it.
echo "$0: getting gnulib files..."
trap cleanup_gnulib HUP INT PIPE TERM
gnulib_url=${GNULIB_URL:-$default_gnulib_url}
if test -n "$GNULIB_REFDIR" && test -d "$GNULIB_REFDIR"/.git; then
# Use GNULIB_REFDIR as a reference.
git clone "$GNULIB_REFDIR" "$gnulib_path" \
&& git -C "$gnulib_path" remote set-url origin "$gnulib_url" \
&& if test -z "$GNULIB_REVISION"; then
git -C "$gnulib_path" pull origin \
&& {
# We want the default branch of "$gnulib_url" (since that's
# the behaviour if GNULIB_REFDIR is not specified), not the
# current branch of "$GNULIB_REFDIR".
default_branch=`LC_ALL=C git -C "$gnulib_path" \
remote show origin \
| sed -n -e 's/^ *HEAD branch: //p'`
test -n "$default_branch" || default_branch='master'
git -C "$gnulib_path" checkout "$default_branch"
}
else
# The 'git checkout "$GNULIB_REVISION"' command succeeds if the
# GNULIB_REVISION is a commit hash that exists locally, or if it
# is a branch name that can be fetched from origin. It fails,
# however, if the GNULIB_REVISION is a commit hash that only
# exists in origin. In this case, we need a 'git fetch' and then
# retry 'git checkout "$GNULIB_REVISION"'.
git -C "$gnulib_path" checkout "$GNULIB_REVISION" 2>/dev/null \
|| { git -C "$gnulib_path" fetch origin \
&& git -C "$gnulib_path" checkout "$GNULIB_REVISION"; }
fi \
|| cleanup_gnulib
else
# GNULIB_REFDIR is not set or not usable. Ignore it.
shallow='--depth 2'
if test -z "$GNULIB_REVISION"; then
git clone $shallow "$gnulib_url" "$gnulib_path" \
|| cleanup_gnulib
else
# Only want a shallow checkout of $GNULIB_REVISION, but git does not
# support cloning by commit hash. So attempt a shallow fetch by
# commit hash to minimize the amount of data downloaded and changes
# needed to be processed, which can drastically reduce download and
# processing time for checkout. If the fetch by commit fails, a
# shallow fetch cannot be performed because we do not know what the
# depth of the commit is without fetching all commits. So fall back
# to fetching all commits.
# $GNULIB_REVISION can be a commit id, a tag name, or a branch name.
mkdir -p "$gnulib_path"
# Use a -c option to silence an annoying message
# "hint: Using 'master' as the name for the initial branch."
# (cf. <https://stackoverflow.com/questions/65524512/>).
git -C "$gnulib_path" -c init.defaultBranch=master init
git -C "$gnulib_path" remote add origin "$gnulib_url"
if git -C "$gnulib_path" fetch $shallow origin "$GNULIB_REVISION"
then
# "git fetch" of the specific commit succeeded.
git -C "$gnulib_path" reset --hard FETCH_HEAD \
|| cleanup_gnulib
# "git fetch" does not fetch tags (at least in git version 2.43).
# If $GNULIB_REVISION is a tag (not a commit id or branch name),
# add the tag explicitly.
revision=`git -C "$gnulib_path" log -1 --pretty=format:%H`
branch=`LC_ALL=C git -C "$gnulib_path" remote show origin \
| sed -n -e 's/^ \([^ ]*\) * tracked$/\1/p'`
test "$revision" = "$GNULIB_REVISION" \
|| test "$branch" = "$GNULIB_REVISION" \
|| git -C "$gnulib_path" tag "$GNULIB_REVISION"
else
# Fetch the entire repository.
git -C "$gnulib_path" fetch origin \
|| cleanup_gnulib
git -C "$gnulib_path" checkout "$GNULIB_REVISION" \
|| cleanup_gnulib
fi
fi
fi
trap - HUP INT PIPE TERM
else
# The subdirectory 'gnulib' already exists.
if test -n "$GNULIB_REVISION"; then
if test -d "$gnulib_path/.git"; then
# The 'git checkout "$GNULIB_REVISION"' command succeeds if the
# GNULIB_REVISION is a commit hash that exists locally, or if it
# is a branch name that can be fetched from origin. It fails,
# however, if the GNULIB_REVISION is a commit hash that only
# exists in origin. In this case, we need a 'git fetch' and then
# retry 'git checkout "$GNULIB_REVISION"'.
git -C "$gnulib_path" checkout "$GNULIB_REVISION" 2>/dev/null \
|| { git -C "$gnulib_path" fetch origin \
&& git -C "$gnulib_path" checkout "$GNULIB_REVISION"; } \
|| exit $?
else
die "Error: GNULIB_REVISION is specified in bootstrap.conf," \
"but '$gnulib_path' contains no git history"
fi
fi
fi
fi
# Verify that $gnulib_path contains a gnulib checkout.
test -f "$gnulib_path/gnulib-tool" \
|| die "Error: '$gnulib_path' is supposed to contain a gnulib checkout," \
"but does not contain gnulib-tool"
GNULIB_SRCDIR=$gnulib_path
fi
# $GNULIB_SRCDIR now points to the version of gnulib to use, and
# we no longer need to use git or $gnulib_path below here.
}
# -------- Upgrading bootstrap to the version found in GNULIB_SRCDIR. --------
upgrade_bootstrap ()
{
if test -f "$medir"/bootstrap-funclib.sh; then
update_lib=true
{ cmp -s "$medir"/bootstrap "$GNULIB_SRCDIR/top/bootstrap" \
&& cmp -s "$medir"/bootstrap-funclib.sh \
"$GNULIB_SRCDIR/top/bootstrap-funclib.sh" \
&& cmp -s "$medir"/autopull.sh "$GNULIB_SRCDIR/top/autopull.sh" \
&& cmp -s "$medir"/autogen.sh "$GNULIB_SRCDIR/top/autogen.sh"; \
}
else
update_lib=false
cmp -s "$medir"/bootstrap "$GNULIB_SRCDIR/build-aux/bootstrap"
fi || {
if $update_lib; then
echo "$0: updating bootstrap & companions and restarting..."
else
echo "$0: updating bootstrap and restarting..."
fi
case $(sh -c 'echo "$1"' -- a) in
a) ignored=--;;
*) ignored=ignored;;
esac
u=$update_lib
exec sh -c \
'{ if '$u' && test -f "$1"; then cp "$1" "$3"; else cp "$2" "$3"; fi; } &&
{ if '$u' && test -f "$4"; then cp "$4" "$5"; else rm -f "$5"; fi; } &&
{ if '$u' && test -f "$6"; then cp "$6" "$7"; else rm -f "$7"; fi; } &&
{ if '$u' && test -f "$8"; then cp "$8" "$9"; else rm -f "$9"; fi; } &&
shift && shift && shift && shift && shift &&
shift && shift && shift && shift &&
exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
$ignored \
"$GNULIB_SRCDIR/top/bootstrap" "$GNULIB_SRCDIR/build-aux/bootstrap" \
"$medir/bootstrap" \
"$GNULIB_SRCDIR/top/bootstrap-funclib.sh" "$medir/bootstrap-funclib.sh" \
"$GNULIB_SRCDIR/top/autopull.sh" "$medir/autopull.sh" \
"$GNULIB_SRCDIR/top/autogen.sh" "$medir/autogen.sh" \
"$0" "$@" --no-bootstrap-sync
}
}
# ----------------------------------------------------------------------------
if test x"$gnulib_modules$gnulib_files$gnulib_extra_files" = x; then
use_gnulib=false
else
use_gnulib=true
fi
# -------- Fetch auxiliary files from the network. --------------------------
autopull_usage() {
cat <<EOF
Usage: $me [OPTION]...
Bootstrap this package from the checked-out sources, phase 1:
Pull files from the network.
Optional environment variables:
GNULIB_SRCDIR Specifies the local directory where gnulib
sources reside. Use this if you already
have gnulib sources on your machine, and
you want to use these sources.
GNULIB_REFDIR Specifies the local directory where a gnulib
repository (with a .git subdirectory) resides.
Use this if you already have gnulib sources
and history on your machine, and do not want
to waste your bandwidth downloading them again.
GNULIB_URL URL of the gnulib repository. The default is
$default_gnulib_url,
which is Gnulib's upstream repository.
Options:
--bootstrap-sync If this bootstrap script is not identical to
the version in the local gnulib sources,
update this script, and then restart it with
/bin/sh or the shell \$CONFIG_SHELL.
--no-bootstrap-sync Do not check whether bootstrap is out of sync.
--force Attempt to bootstrap even if the sources seem
not to have been checked out.
--no-git Do not use git to update gnulib. Requires that
\$GNULIB_SRCDIR points to a gnulib repository
with the correct revision.
--skip-po Do not download *.po files.
EOF
bootstrap_print_option_usage_hook
cat <<EOF
If the file bootstrap.conf exists in the same directory as this script, its
contents are read as shell variables to configure the bootstrap.
For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR
are honored.
Gnulib sources can be fetched in various ways:
* If the environment variable GNULIB_SRCDIR is set, then sources are
fetched from that local directory. If it is a git repository and the
configuration variable GNULIB_REVISION is set in bootstrap.conf, then
that revision is checked out.
* Otherwise, if this package is in a git repository with a 'gnulib'
submodule configured, then that submodule is initialized and updated
and sources are fetched from there. If the environment variable
GNULIB_REFDIR is set and is a git repository, then it is used as a
reference.
* Otherwise, if the 'gnulib' directory does not exist, Gnulib sources
are cloned into that directory using git from \$GNULIB_URL, defaulting
to $default_gnulib_url; if GNULIB_REFDIR is set and is a git repository
its contents may be used to accelerate the process.
If the configuration variable GNULIB_REVISION is set in bootstrap.conf,
then that revision is checked out.
* Otherwise, the existing Gnulib sources in the 'gnulib' directory are
used. If it is a git repository and the configuration variable
GNULIB_REVISION is set in bootstrap.conf, then that revision is
checked out.
If you maintain a package and want to pin a particular revision of the
Gnulib sources that has been tested with your package, then there are
two possible approaches: either configure a 'gnulib' submodule with the
appropriate revision, or set GNULIB_REVISION (and if necessary
GNULIB_URL) in bootstrap.conf.
Running without arguments will suffice in most cases.
EOF
}
# Fetch auxiliary files that are omitted from the version control
# repository of this package.
autopull()
{
# Ensure that CDPATH is not set. Otherwise, the output from cd
# would cause trouble in at least one use below.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# Parse options.
# Use git to update gnulib sources
use_git=true
for option
do
case $option in
--help)
autopull_usage
return;;
--version)
set -e
echo "autopull.sh $scriptlibversion"
echo "$copyright"
return 0
;;
--skip-po)
SKIP_PO=t;;
--force)
checkout_only_file=;;
--bootstrap-sync)
bootstrap_sync=true;;
--no-bootstrap-sync)
bootstrap_sync=false;;
--no-git)
use_git=false;;
*)
bootstrap_option_hook $option || die "$option: unknown option";;
esac
done
$use_git || test -n "$GNULIB_SRCDIR" \
|| die "Error: --no-git requires \$GNULIB_SRCDIR environment variable" \
"or --gnulib-srcdir option"
test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \
|| die "Error: \$GNULIB_SRCDIR environment variable" \
"or --gnulib-srcdir option is specified," \
"but does not denote a directory"
if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
die "Running this script from a non-checked-out distribution is risky."
fi
check_build_prerequisites $use_git
if $use_gnulib || $bootstrap_sync; then
prepare_GNULIB_SRCDIR
if $bootstrap_sync; then
upgrade_bootstrap "$@"
fi
fi
# Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6.
# Also find the compatible sha1 utility on the BSDs
if test x"$SKIP_PO" = x; then
find_tool SHA1SUM sha1sum gsha1sum shasum sha1
fi
# See if we can use gnulib's git-merge-changelog merge driver.
if $use_git && test -d .git && check_exists git; then
if git config merge.merge-changelog.driver >/dev/null ; then
:
elif check_exists git-merge-changelog; then
echo "$0: initializing git-merge-changelog driver"
git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver'
git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B "%Y"'
else
echo "$0: consider installing git-merge-changelog from gnulib"
fi
fi
case $SKIP_PO in
'')
if test -d po; then
update_po_files po $package || return
fi
if test -d runtime-po; then
update_po_files runtime-po $package-runtime || return
fi;;
esac
# ---------------------------------------------------------------------------
bootstrap_post_pull_hook \
|| die "bootstrap_post_pull_hook failed"
# Don't proceed if there are uninitialized submodules. In particular,
# autogen.sh will remove dangling links, which might be links into
# uninitialized submodules.
# But it's OK if the 'gnulib' submodule is uninitialized, as long as
# GNULIB_SRCDIR is set.
if $use_git; then
# Uninitialized submodules are listed with an initial dash.
uninitialized=`git submodule | grep '^-' | awk '{ print $2 }'`
if test -n "$GNULIB_SRCDIR"; then
uninitialized=`echo "$uninitialized" | grep -v '^gnulib$'`
fi
if test -n "$uninitialized"; then
uninit_comma=`echo "$uninitialized" | tr '\n' ',' | sed -e 's|,$|.|'`
die "Some git submodules are not initialized: "$uninit_comma \
"Either use option '--no-git'," \
"or run 'git submodule update --init' and bootstrap again."
fi
fi
if test -f "$medir"/autogen.sh; then
echo "$0: done. Now you can run '$medir/autogen.sh'."
fi
}
# ----------------------------- Get translations. -----------------------------
download_po_files() {
subdir=$1
domain=$2
echo "$me: getting translations into $subdir for $domain..."
cmd=$(printf "$po_download_command_format" "$subdir" "$domain")
eval "$cmd"
}
# Mirror .po files to $po_dir/.reference and copy only the new
# or modified ones into $po_dir. Also update $po_dir/LINGUAS.
# Note po files that exist locally only are left in $po_dir but will
# not be included in LINGUAS and hence will not be distributed.
update_po_files() {
# Directory containing primary .po files.
# Overwrite them only when we're sure a .po file is new.
po_dir=$1
domain=$2
# Mirror *.po files into this dir.
# Usually contains *.s1 checksum files.
ref_po_dir="$po_dir/.reference"
test -d $ref_po_dir || mkdir $ref_po_dir || return
download_po_files $ref_po_dir $domain \
&& ls "$ref_po_dir"/*.po 2>/dev/null |
sed 's|.*/||; s|\.po$||' > "$
gitextract_lou5yk_x/
├── .dir-locals.el
├── .editorconfig
├── .gitattributes
├── .github/
│ ├── dependabot.yml
│ └── workflows/
│ ├── codeql-analysis.yaml
│ ├── make-alpine.yaml
│ ├── make-cross.yaml
│ ├── make-cygwin.yaml
│ ├── make-macos.yaml
│ ├── make-mingw.yaml
│ └── make-ubuntu.yaml
├── .hgignore
├── .hgtags
├── CITATION
├── COPYING
├── COPYRIGHT.md
├── Makefile.am
├── README
├── autogen.sh
├── autopull.sh
├── bootstrap
├── bootstrap-funclib.sh
├── bootstrap.conf
├── build-aux/
│ ├── OctJavaQry.java
│ ├── changelog.tmpl
│ ├── check-subst-vars.in.sh
│ ├── find-defun-files.in.sh
│ ├── find-files-with-tests.in.sh
│ ├── get-source-mtime.sh
│ ├── inplace-edit.pl
│ ├── make-gnu-dist-files
│ ├── mk-hg-id.sh
│ ├── mk-octave-config-h.sh
│ ├── mk-opts.pl
│ ├── mk-pkg-add.sh
│ ├── module.mk
│ ├── subst-config-vals.in.sh
│ ├── subst-cross-config-vals.in.sh
│ ├── subst-script-vals.in.sh
│ └── update-bug-status.sh
├── configure.ac
├── doc/
│ ├── doxyhtml/
│ │ ├── Doxyfile.in
│ │ ├── README.md
│ │ ├── module.mk
│ │ └── pages/
│ │ └── macros.dox
│ ├── interpreter/
│ │ ├── arith.txi
│ │ ├── audio.txi
│ │ ├── basics.txi
│ │ ├── bugs.txi
│ │ ├── config-images.sh
│ │ ├── container.txi
│ │ ├── contributors.in
│ │ ├── cp-idx.txi
│ │ ├── data.txi
│ │ ├── debug.txi
│ │ ├── diagperm.txi
│ │ ├── diffeq.txi
│ │ ├── doccheck/
│ │ │ ├── README
│ │ │ ├── add-to-aspell-dict.pl
│ │ │ ├── aspell-octave.en.pws
│ │ │ ├── aspell.conf
│ │ │ ├── mk-undocumented-list.pl
│ │ │ └── spellcheck
│ │ ├── errors.txi
│ │ ├── eval.txi
│ │ ├── expr.txi
│ │ ├── external.txi
│ │ ├── fn-idx.txi
│ │ ├── func.txi
│ │ ├── genpropdoc.m
│ │ ├── geometry.txi
│ │ ├── geometryimages.m
│ │ ├── gpl.txi
│ │ ├── grammar.txi
│ │ ├── graphics-properties.mk
│ │ ├── gui.txi
│ │ ├── image.txi
│ │ ├── images
│ │ ├── images.awk
│ │ ├── install.txi
│ │ ├── interp.txi
│ │ ├── interpimages.m
│ │ ├── intro.txi
│ │ ├── io.txi
│ │ ├── linalg.txi
│ │ ├── macros.texi
│ │ ├── matrix.txi
│ │ ├── mk-doc-cache.pl
│ │ ├── mk-qthelp.pl
│ │ ├── mkcontrib.awk
│ │ ├── mkoctfile.1
│ │ ├── module.mk
│ │ ├── munge-texi.pl
│ │ ├── nonlin.txi
│ │ ├── numbers.txi
│ │ ├── obsolete.txi
│ │ ├── octave-cli.1
│ │ ├── octave-config.1
│ │ ├── octave-logo.eps
│ │ ├── octave.1
│ │ ├── octave.css
│ │ ├── octave.texi
│ │ ├── oop.txi
│ │ ├── op-idx.txi
│ │ ├── optim.txi
│ │ ├── package.txi
│ │ ├── plot.txi
│ │ ├── plotimages.m
│ │ ├── poly.txi
│ │ ├── pr-idx.txi
│ │ ├── preface.txi
│ │ ├── quad.txi
│ │ ├── set.txi
│ │ ├── signal.txi
│ │ ├── sparse.txi
│ │ ├── sparseimages.m
│ │ ├── splineimages.m
│ │ ├── stats.txi
│ │ ├── stmt.txi
│ │ ├── strings.txi
│ │ ├── system.txi
│ │ ├── testfun.txi
│ │ ├── var.txi
│ │ └── vectorize.txi
│ ├── liboctave/
│ │ ├── array.texi
│ │ ├── bugs.texi
│ │ ├── cp-idx.texi
│ │ ├── dae.texi
│ │ ├── diffeq.texi
│ │ ├── error.texi
│ │ ├── factor.texi
│ │ ├── fn-idx.texi
│ │ ├── gpl.texi
│ │ ├── install.texi
│ │ ├── intro.texi
│ │ ├── liboctave.texi
│ │ ├── matvec.texi
│ │ ├── module.mk
│ │ ├── nleqn.texi
│ │ ├── nlfunc.texi
│ │ ├── ode.texi
│ │ ├── optim.texi
│ │ ├── preface.texi
│ │ ├── quad.texi
│ │ └── range.texi
│ ├── module.mk
│ ├── refcard/
│ │ ├── module.mk
│ │ ├── refcard-a4.tex
│ │ ├── refcard-legal.tex
│ │ ├── refcard-letter.tex
│ │ └── refcard.tex
│ └── texmf.cnf
├── etc/
│ ├── CHECKLIST.md
│ ├── HACKING.md
│ ├── NEWS.1
│ ├── NEWS.10.md
│ ├── NEWS.11.md
│ ├── NEWS.12.md
│ ├── NEWS.2
│ ├── NEWS.3
│ ├── NEWS.4
│ ├── NEWS.5.md
│ ├── NEWS.6.md
│ ├── NEWS.7.md
│ ├── NEWS.8.md
│ ├── NEWS.9.md
│ ├── OLD-ChangeLogs/
│ │ ├── ChangeLog
│ │ ├── ChangeLog.1
│ │ ├── doc-ChangeLog
│ │ ├── libcruft-ChangeLog
│ │ ├── liboctave-ChangeLog
│ │ ├── scripts-ChangeLog
│ │ ├── src-ChangeLog
│ │ └── test-ChangeLog
│ ├── RELEASE-CHECKLIST.wiki
│ ├── ROADMAP.md
│ ├── fonts/
│ │ ├── FreeMono.otf
│ │ ├── FreeMonoBold.otf
│ │ ├── FreeMonoBoldOblique.otf
│ │ ├── FreeMonoOblique.otf
│ │ ├── FreeSans.otf
│ │ ├── FreeSansBold.otf
│ │ ├── FreeSansBoldOblique.otf
│ │ └── FreeSansOblique.otf
│ ├── gdbinit
│ ├── icons/
│ │ ├── org.octave.Octave.desktop.in
│ │ └── org.octave.Octave.metainfo.xml
│ └── module.mk
├── examples/
│ ├── code/
│ │ ├── @FIRfilter/
│ │ │ ├── FIRfilter.m
│ │ │ ├── FIRfilter_aggregation.m
│ │ │ ├── display.m
│ │ │ ├── subsasgn.m
│ │ │ └── subsref.m
│ │ ├── @polynomial/
│ │ │ ├── disp.m
│ │ │ ├── double.m
│ │ │ ├── end.m
│ │ │ ├── get.m
│ │ │ ├── mtimes.m
│ │ │ ├── numel.m
│ │ │ ├── plot.m
│ │ │ ├── polynomial.m
│ │ │ ├── polynomial_superiorto.m
│ │ │ ├── polyval.m
│ │ │ ├── roots.m
│ │ │ ├── set.m
│ │ │ ├── subsasgn.m
│ │ │ └── subsref.m
│ │ ├── COPYING
│ │ ├── addtwomatrices.cc
│ │ ├── celldemo.cc
│ │ ├── embedded.cc
│ │ ├── fortrandemo.cc
│ │ ├── fortransub.f
│ │ ├── funcdemo.cc
│ │ ├── globaldemo.cc
│ │ ├── helloworld.cc
│ │ ├── make_int.cc
│ │ ├── mex_celldemo.c
│ │ ├── mex_demo.c
│ │ ├── mex_fevaldemo.c
│ │ ├── mex_fevalf.f
│ │ ├── mex_funcdemo.c
│ │ ├── mex_hellodemo.c
│ │ ├── mex_pow2demo.c
│ │ ├── mex_propdemo.c
│ │ ├── mex_setdemo.c
│ │ ├── mex_sparsedemo.c
│ │ ├── mex_stringdemo.c
│ │ ├── mex_structdemo.c
│ │ ├── module.mk
│ │ ├── oct_demo.cc
│ │ ├── oregonator.cc
│ │ ├── oregonator.m
│ │ ├── paramdemo.cc
│ │ ├── polynomial2.m
│ │ ├── standalone.cc
│ │ ├── standalonebuiltin.cc
│ │ ├── stringdemo.cc
│ │ ├── structdemo.cc
│ │ └── unwinddemo.cc
│ ├── data/
│ │ ├── README
│ │ ├── module.mk
│ │ ├── penny.mat
│ │ ├── west0479.mat
│ │ └── west0479.mtx
│ └── module.mk
├── libgui/
│ ├── graphics/
│ │ ├── BaseControl.cc
│ │ ├── BaseControl.h
│ │ ├── ButtonControl.cc
│ │ ├── ButtonControl.h
│ │ ├── ButtonGroup.cc
│ │ ├── ButtonGroup.h
│ │ ├── Canvas.cc
│ │ ├── Canvas.h
│ │ ├── CheckBoxControl.cc
│ │ ├── CheckBoxControl.h
│ │ ├── Container.cc
│ │ ├── Container.h
│ │ ├── ContextMenu.cc
│ │ ├── ContextMenu.h
│ │ ├── EditControl.cc
│ │ ├── EditControl.h
│ │ ├── Figure.cc
│ │ ├── Figure.h
│ │ ├── FigureWindow.cc
│ │ ├── FigureWindow.h
│ │ ├── GLCanvas.cc
│ │ ├── GLCanvas.h
│ │ ├── GenericEventNotify.h
│ │ ├── KeyMap.cc
│ │ ├── KeyMap.h
│ │ ├── ListBoxControl.cc
│ │ ├── ListBoxControl.h
│ │ ├── Logger.cc
│ │ ├── Logger.h
│ │ ├── Menu.cc
│ │ ├── Menu.h
│ │ ├── MenuContainer.h
│ │ ├── Object.cc
│ │ ├── Object.h
│ │ ├── ObjectProxy.cc
│ │ ├── ObjectProxy.h
│ │ ├── Panel.cc
│ │ ├── Panel.h
│ │ ├── PopupMenuControl.cc
│ │ ├── PopupMenuControl.h
│ │ ├── PushButtonControl.cc
│ │ ├── PushButtonControl.h
│ │ ├── PushTool.cc
│ │ ├── PushTool.h
│ │ ├── QtHandlesUtils.cc
│ │ ├── QtHandlesUtils.h
│ │ ├── RadioButtonControl.cc
│ │ ├── RadioButtonControl.h
│ │ ├── SliderControl.cc
│ │ ├── SliderControl.h
│ │ ├── Table.cc
│ │ ├── Table.h
│ │ ├── TextControl.cc
│ │ ├── TextControl.h
│ │ ├── TextEdit.cc
│ │ ├── TextEdit.h
│ │ ├── ToggleButtonControl.cc
│ │ ├── ToggleButtonControl.h
│ │ ├── ToggleTool.cc
│ │ ├── ToggleTool.h
│ │ ├── ToolBar.cc
│ │ ├── ToolBar.h
│ │ ├── ToolBarButton.cc
│ │ ├── ToolBarButton.h
│ │ ├── annotation-dialog.cc
│ │ ├── annotation-dialog.h
│ │ ├── annotation-dialog.ui
│ │ ├── gl-select.cc
│ │ ├── gl-select.h
│ │ ├── module.mk
│ │ ├── qopengl-functions.h
│ │ ├── qt-graphics-toolkit.cc
│ │ └── qt-graphics-toolkit.h
│ ├── kb-layouts/
│ │ ├── default.keytab
│ │ ├── linux.keytab
│ │ └── vt420pc.keytab
│ ├── languages/
│ │ ├── ast_ES.ts
│ │ ├── be_BY.ts
│ │ ├── build_ts/
│ │ │ ├── README.md
│ │ │ ├── octave-qsci/
│ │ │ │ ├── Qsci/
│ │ │ │ │ ├── qsciabstractapis.h
│ │ │ │ │ ├── qsciapis.h
│ │ │ │ │ ├── qscicommand.h
│ │ │ │ │ ├── qscicommandset.h
│ │ │ │ │ ├── qscidocument.h
│ │ │ │ │ ├── qsciglobal.h
│ │ │ │ │ ├── qscilexer.h
│ │ │ │ │ ├── qscilexeravs.h
│ │ │ │ │ ├── qscilexerbash.h
│ │ │ │ │ ├── qscilexerbatch.h
│ │ │ │ │ ├── qscilexercmake.h
│ │ │ │ │ ├── qscilexercoffeescript.h
│ │ │ │ │ ├── qscilexercpp.h
│ │ │ │ │ ├── qscilexercsharp.h
│ │ │ │ │ ├── qscilexercss.h
│ │ │ │ │ ├── qscilexercustom.h
│ │ │ │ │ ├── qscilexerd.h
│ │ │ │ │ ├── qscilexerdiff.h
│ │ │ │ │ ├── qscilexeredifact.h
│ │ │ │ │ ├── qscilexerfortran.h
│ │ │ │ │ ├── qscilexerfortran77.h
│ │ │ │ │ ├── qscilexerhtml.h
│ │ │ │ │ ├── qscilexeridl.h
│ │ │ │ │ ├── qscilexerjava.h
│ │ │ │ │ ├── qscilexerjavascript.h
│ │ │ │ │ ├── qscilexerjson.h
│ │ │ │ │ ├── qscilexerlua.h
│ │ │ │ │ ├── qscilexermakefile.h
│ │ │ │ │ ├── qscilexermarkdown.h
│ │ │ │ │ ├── qscilexermatlab.h
│ │ │ │ │ ├── qscilexeroctave.h
│ │ │ │ │ ├── qscilexerpascal.h
│ │ │ │ │ ├── qscilexerperl.h
│ │ │ │ │ ├── qscilexerpo.h
│ │ │ │ │ ├── qscilexerpostscript.h
│ │ │ │ │ ├── qscilexerpov.h
│ │ │ │ │ ├── qscilexerproperties.h
│ │ │ │ │ ├── qscilexerpython.h
│ │ │ │ │ ├── qscilexerruby.h
│ │ │ │ │ ├── qscilexerspice.h
│ │ │ │ │ ├── qscilexersql.h
│ │ │ │ │ ├── qscilexertcl.h
│ │ │ │ │ ├── qscilexertex.h
│ │ │ │ │ ├── qscilexerverilog.h
│ │ │ │ │ ├── qscilexervhdl.h
│ │ │ │ │ ├── qscilexerxml.h
│ │ │ │ │ ├── qscilexeryaml.h
│ │ │ │ │ ├── qscimacro.h
│ │ │ │ │ ├── qsciprinter.h
│ │ │ │ │ ├── qsciscintilla.h
│ │ │ │ │ ├── qsciscintillabase.h
│ │ │ │ │ ├── qscistyle.h
│ │ │ │ │ └── qscistyledtext.h
│ │ │ │ ├── qscilexer.cpp
│ │ │ │ ├── qscilexerbash.cpp
│ │ │ │ ├── qscilexerbatch.cpp
│ │ │ │ ├── qscilexercpp.cpp
│ │ │ │ ├── qscilexerdiff.cpp
│ │ │ │ ├── qscilexermatlab.cpp
│ │ │ │ ├── qscilexeroctave.cpp
│ │ │ │ ├── qscilexerperl.cpp
│ │ │ │ ├── qsciscintilla.cpp
│ │ │ │ └── qsciscintillabase.cpp
│ │ │ ├── octave-qt/
│ │ │ │ ├── qabstractpagesetupdialog.cpp
│ │ │ │ ├── qabstractprintdialog.cpp
│ │ │ │ ├── qcolordialog.cpp
│ │ │ │ ├── qcolordialog_symbian.cpp
│ │ │ │ ├── qdialog.cpp
│ │ │ │ ├── qdialogbuttonbox.cpp
│ │ │ │ ├── qdialogsbinarycompat_win.cpp
│ │ │ │ ├── qerrormessage.cpp
│ │ │ │ ├── qfiledialog.cpp
│ │ │ │ ├── qfiledialog_symbian.cpp
│ │ │ │ ├── qfiledialog_win.cpp
│ │ │ │ ├── qfileinfogatherer.cpp
│ │ │ │ ├── qfilesystemmodel.cpp
│ │ │ │ ├── qfontdialog.cpp
│ │ │ │ ├── qhelpsearchquerywidget.cpp
│ │ │ │ ├── qinputdialog.cpp
│ │ │ │ ├── qmessagebox.cpp
│ │ │ │ ├── qpagesetupdialog.cpp
│ │ │ │ ├── qpagesetupdialog_unix.cpp
│ │ │ │ ├── qpagesetupdialog_win.cpp
│ │ │ │ ├── qplatformtheme.cpp
│ │ │ │ ├── qprintdialog_qws.cpp
│ │ │ │ ├── qprintdialog_unix.cpp
│ │ │ │ └── qprintdialog_win.cpp
│ │ │ ├── update_external_sources
│ │ │ └── update_ts_files
│ │ ├── ca_ES.ts
│ │ ├── de_DE.ts
│ │ ├── en_US.ts
│ │ ├── es_ES.ts
│ │ ├── eu_ES.ts
│ │ ├── fr_FR.ts
│ │ ├── hu_HU.ts
│ │ ├── it_IT.ts
│ │ ├── ja_JP.ts
│ │ ├── lt_LT.ts
│ │ ├── nl_NL.ts
│ │ ├── pt_BR.ts
│ │ ├── pt_PT.ts
│ │ ├── ru_RU.ts
│ │ ├── sv_SE.ts
│ │ ├── tr_TR.ts
│ │ ├── translators
│ │ ├── uk_UA.ts
│ │ └── zh_CN.ts
│ ├── liboctgui-build-info.h
│ ├── liboctgui-build-info.in.cc
│ ├── module.mk
│ ├── qterminal/
│ │ ├── libqterminal/
│ │ │ ├── LineFont.src
│ │ │ ├── QTerminal.cc
│ │ │ ├── QTerminal.h
│ │ │ ├── README
│ │ │ ├── default.keytab
│ │ │ ├── kb-layouts/
│ │ │ │ ├── default.keytab
│ │ │ │ ├── linux.keytab
│ │ │ │ └── vt420pc.keytab
│ │ │ ├── unix/
│ │ │ │ ├── BlockArray.cpp
│ │ │ │ ├── BlockArray.h
│ │ │ │ ├── Character.h
│ │ │ │ ├── CharacterColor.h
│ │ │ │ ├── Emulation.cpp
│ │ │ │ ├── Emulation.h
│ │ │ │ ├── ExtendedDefaultTranslator.h
│ │ │ │ ├── ExtendedDefaultTranslatorMac.h
│ │ │ │ ├── Filter.cpp
│ │ │ │ ├── Filter.h
│ │ │ │ ├── History.cpp
│ │ │ │ ├── History.h
│ │ │ │ ├── KeyboardTranslator.cpp
│ │ │ │ ├── KeyboardTranslator.h
│ │ │ │ ├── QUnixTerminalImpl.cpp
│ │ │ │ ├── QUnixTerminalImpl.h
│ │ │ │ ├── Screen.cpp
│ │ │ │ ├── Screen.h
│ │ │ │ ├── ScreenWindow.cpp
│ │ │ │ ├── ScreenWindow.h
│ │ │ │ ├── SelfListener.cpp
│ │ │ │ ├── SelfListener.h
│ │ │ │ ├── TerminalCharacterDecoder.cpp
│ │ │ │ ├── TerminalCharacterDecoder.h
│ │ │ │ ├── TerminalModel.cpp
│ │ │ │ ├── TerminalModel.h
│ │ │ │ ├── TerminalView.cpp
│ │ │ │ ├── TerminalView.h
│ │ │ │ ├── Vt102Emulation.cpp
│ │ │ │ ├── Vt102Emulation.h
│ │ │ │ ├── konsole_wcwidth.cpp
│ │ │ │ ├── konsole_wcwidth.h
│ │ │ │ ├── kpty.cpp
│ │ │ │ ├── kpty.h
│ │ │ │ └── kpty_p.h
│ │ │ └── win32/
│ │ │ ├── QTerminalColors.cpp
│ │ │ ├── QTerminalColors.h
│ │ │ ├── QWinTerminalImpl.cpp
│ │ │ └── QWinTerminalImpl.h
│ │ ├── module.mk
│ │ ├── msvc.pri
│ │ └── qterminal/
│ │ ├── README
│ │ └── main.cpp
│ └── src/
│ ├── color-picker.cc
│ ├── color-picker.h
│ ├── command-widget.cc
│ ├── command-widget.h
│ ├── community-news.cc
│ ├── community-news.h
│ ├── console-lexer.cc
│ ├── console-lexer.h
│ ├── dialog.cc
│ ├── dialog.h
│ ├── documentation-bookmarks.cc
│ ├── documentation-bookmarks.h
│ ├── documentation-dock-widget.cc
│ ├── documentation-dock-widget.h
│ ├── documentation.cc
│ ├── documentation.h
│ ├── dw-main-window.cc
│ ├── dw-main-window.h
│ ├── external-editor-interface.cc
│ ├── external-editor-interface.h
│ ├── files-dock-widget.cc
│ ├── files-dock-widget.h
│ ├── find-files-dialog.cc
│ ├── find-files-dialog.h
│ ├── find-files-model.cc
│ ├── find-files-model.h
│ ├── find-widget.cc
│ ├── find-widget.h
│ ├── graphics-init.cc
│ ├── graphics-init.h
│ ├── gui-preferences-all.h
│ ├── gui-preferences-cs.cc
│ ├── gui-preferences-cs.h
│ ├── gui-preferences-dc.cc
│ ├── gui-preferences-dc.h
│ ├── gui-preferences-dw.cc
│ ├── gui-preferences-dw.h
│ ├── gui-preferences-ed.cc
│ ├── gui-preferences-ed.h
│ ├── gui-preferences-fb.cc
│ ├── gui-preferences-fb.h
│ ├── gui-preferences-ff.cc
│ ├── gui-preferences-ff.h
│ ├── gui-preferences-global.cc
│ ├── gui-preferences-global.h
│ ├── gui-preferences-gp.cc
│ ├── gui-preferences-gp.h
│ ├── gui-preferences-hw.cc
│ ├── gui-preferences-hw.h
│ ├── gui-preferences-mw.cc
│ ├── gui-preferences-mw.h
│ ├── gui-preferences-nr.cc
│ ├── gui-preferences-nr.h
│ ├── gui-preferences-pd.cc
│ ├── gui-preferences-pd.h
│ ├── gui-preferences-sc.cc
│ ├── gui-preferences-sc.h
│ ├── gui-preferences-sd.cc
│ ├── gui-preferences-sd.h
│ ├── gui-preferences-ve.cc
│ ├── gui-preferences-ve.h
│ ├── gui-preferences-ws.cc
│ ├── gui-preferences-ws.h
│ ├── gui-preferences.cc
│ ├── gui-preferences.h
│ ├── gui-settings.cc
│ ├── gui-settings.h
│ ├── gui-utils.cc
│ ├── gui-utils.h
│ ├── history-dock-widget.cc
│ ├── history-dock-widget.h
│ ├── icons/
│ │ ├── license.md
│ │ ├── octave/
│ │ │ └── index.theme
│ │ └── tango/
│ │ └── index.theme
│ ├── interpreter-qobject.cc
│ ├── interpreter-qobject.h
│ ├── led-indicator.cc
│ ├── led-indicator.h
│ ├── m-editor/
│ │ ├── file-editor-interface.h
│ │ ├── file-editor-tab.cc
│ │ ├── file-editor-tab.h
│ │ ├── file-editor.cc
│ │ ├── file-editor.h
│ │ ├── find-dialog.cc
│ │ ├── find-dialog.h
│ │ ├── marker.cc
│ │ ├── marker.h
│ │ ├── octave-qscintilla.cc
│ │ ├── octave-qscintilla.h
│ │ ├── octave-txt-lexer.cc
│ │ └── octave-txt-lexer.h
│ ├── main-window.cc
│ ├── main-window.h
│ ├── module.mk
│ ├── news-reader.cc
│ ├── news-reader.h
│ ├── octave-dock-widget.cc
│ ├── octave-dock-widget.h
│ ├── octave-qobject.cc
│ ├── octave-qobject.h
│ ├── octave-qt-features.h
│ ├── qt-application.cc
│ ├── qt-application.h
│ ├── qt-interpreter-events.cc
│ ├── qt-interpreter-events.h
│ ├── qt-utils.h
│ ├── release-notes.cc
│ ├── release-notes.h
│ ├── resource.qrc
│ ├── self-listener.cc
│ ├── self-listener.h
│ ├── set-path-dialog.cc
│ ├── set-path-dialog.h
│ ├── set-path-model.cc
│ ├── set-path-model.h
│ ├── settings-dialog.cc
│ ├── settings-dialog.h
│ ├── settings-dialog.ui
│ ├── shortcuts-tree-widget.cc
│ ├── shortcuts-tree-widget.h
│ ├── tab-bar.cc
│ ├── tab-bar.h
│ ├── terminal-dock-widget.cc
│ ├── terminal-dock-widget.h
│ ├── variable-editor-model.cc
│ ├── variable-editor-model.h
│ ├── variable-editor.cc
│ ├── variable-editor.h
│ ├── welcome-wizard.cc
│ ├── welcome-wizard.h
│ ├── workspace-model.cc
│ ├── workspace-model.h
│ ├── workspace-view.cc
│ └── workspace-view.h
├── libinterp/
│ ├── build-env.h
│ ├── build-env.in.cc
│ ├── corefcn/
│ │ ├── Cell.cc
│ │ ├── Cell.h
│ │ ├── __magick_read__.cc
│ │ ├── auto-shlib.cc
│ │ ├── auto-shlib.h
│ │ ├── base-text-renderer.cc
│ │ ├── base-text-renderer.h
│ │ ├── c-file-ptr-stream.cc
│ │ ├── c-file-ptr-stream.h
│ │ ├── call-stack.cc
│ │ ├── call-stack.h
│ │ ├── cdisplay.c
│ │ ├── cdisplay.h
│ │ ├── cmd-edit.cc
│ │ ├── cmd-edit.h
│ │ ├── cmd-hist.cc
│ │ ├── cmd-hist.h
│ │ ├── coct-hdf5-types.c
│ │ ├── data.cc
│ │ ├── data.h
│ │ ├── debug.cc
│ │ ├── default-defs.in.h
│ │ ├── defaults.cc
│ │ ├── defaults.h
│ │ ├── defun-dld.h
│ │ ├── defun-int.h
│ │ ├── defun.cc
│ │ ├── defun.h
│ │ ├── display.cc
│ │ ├── display.h
│ │ ├── dynamic-ld.cc
│ │ ├── dynamic-ld.h
│ │ ├── environment.cc
│ │ ├── environment.h
│ │ ├── error.cc
│ │ ├── error.h
│ │ ├── errwarn.cc
│ │ ├── errwarn.h
│ │ ├── event-manager.cc
│ │ ├── event-manager.h
│ │ ├── event-queue.cc
│ │ ├── event-queue.h
│ │ ├── fcn-info.cc
│ │ ├── fcn-info.h
│ │ ├── file-io.cc
│ │ ├── file-io.h
│ │ ├── ft-text-renderer.cc
│ │ ├── ft-text-renderer.h
│ │ ├── genprops.awk
│ │ ├── gh-manager.cc
│ │ ├── gh-manager.h
│ │ ├── gl-render.cc
│ │ ├── gl-render.h
│ │ ├── gl2ps-print.cc
│ │ ├── gl2ps-print.h
│ │ ├── graphics-handle.h
│ │ ├── graphics-toolkit.cc
│ │ ├── graphics-toolkit.h
│ │ ├── graphics-utils.cc
│ │ ├── graphics-utils.h
│ │ ├── graphics.cc
│ │ ├── graphics.in.h
│ │ ├── gtk-manager.cc
│ │ ├── gtk-manager.h
│ │ ├── gzfstream.cc
│ │ ├── gzfstream.h
│ │ ├── help.cc
│ │ ├── help.h
│ │ ├── hook-fcn.cc
│ │ ├── hook-fcn.h
│ │ ├── input.cc
│ │ ├── input.h
│ │ ├── interpreter-private.cc
│ │ ├── interpreter-private.h
│ │ ├── interpreter.cc
│ │ ├── interpreter.h
│ │ ├── latex-text-renderer.cc
│ │ ├── latex-text-renderer.h
│ │ ├── load-path.cc
│ │ ├── load-path.h
│ │ ├── load-save.cc
│ │ ├── load-save.h
│ │ ├── ls-ascii-helper.cc
│ │ ├── ls-ascii-helper.h
│ │ ├── ls-hdf5.cc
│ │ ├── ls-hdf5.h
│ │ ├── ls-mat-ascii.cc
│ │ ├── ls-mat-ascii.h
│ │ ├── ls-mat-subsys.cc
│ │ ├── ls-mat-subsys.h
│ │ ├── ls-mat4.cc
│ │ ├── ls-mat4.h
│ │ ├── ls-mat5.cc
│ │ ├── ls-mat5.h
│ │ ├── ls-oct-binary.cc
│ │ ├── ls-oct-binary.h
│ │ ├── ls-oct-text.cc
│ │ ├── ls-oct-text.h
│ │ ├── ls-utils.cc
│ │ ├── ls-utils.h
│ │ ├── mex-private.h
│ │ ├── mk-mxtypes-h.in.sh
│ │ ├── module.mk
│ │ ├── mx-type-traits.h
│ │ ├── mxarray.cc
│ │ ├── mxarray.h
│ │ ├── mxtypes.in.h
│ │ ├── numeric/
│ │ │ ├── __betainc__.cc
│ │ │ ├── __contourc__.cc
│ │ │ ├── __dsearchn__.cc
│ │ │ ├── __eigs__.cc
│ │ │ ├── __expint__.cc
│ │ │ ├── __gammainc__.cc
│ │ │ ├── __ichol__.cc
│ │ │ ├── __ilu__.cc
│ │ │ ├── __isprimelarge__.cc
│ │ │ ├── __lin_interpn__.cc
│ │ │ ├── __pchip_deriv__.cc
│ │ │ ├── __qp__.cc
│ │ │ ├── amd.cc
│ │ │ ├── balance.cc
│ │ │ ├── besselj.cc
│ │ │ ├── bitfcns.cc
│ │ │ ├── ccolamd.cc
│ │ │ ├── chol.cc
│ │ │ ├── colamd.cc
│ │ │ ├── colloc.cc
│ │ │ ├── conv2.cc
│ │ │ ├── daspk.cc
│ │ │ ├── dasrt.cc
│ │ │ ├── dassl.cc
│ │ │ ├── det.cc
│ │ │ ├── dmperm.cc
│ │ │ ├── dot.cc
│ │ │ ├── eig.cc
│ │ │ ├── ellipj.cc
│ │ │ ├── fft.cc
│ │ │ ├── fft2.cc
│ │ │ ├── fftn.cc
│ │ │ ├── filter.cc
│ │ │ ├── gcd.cc
│ │ │ ├── givens.cc
│ │ │ ├── gsvd.cc
│ │ │ ├── hash.cc
│ │ │ ├── hess.cc
│ │ │ ├── hex2num.cc
│ │ │ ├── inv.cc
│ │ │ ├── kron.cc
│ │ │ ├── lsode.cc
│ │ │ ├── lu.cc
│ │ │ ├── mappers.cc
│ │ │ ├── max.cc
│ │ │ ├── mgorth.cc
│ │ │ ├── module.mk
│ │ │ ├── ordqz.cc
│ │ │ ├── ordschur.cc
│ │ │ ├── perms.cc
│ │ │ ├── pinv.cc
│ │ │ ├── pow2.cc
│ │ │ ├── psi.cc
│ │ │ ├── qr.cc
│ │ │ ├── quad.cc
│ │ │ ├── quadcc.cc
│ │ │ ├── qz.cc
│ │ │ ├── rand.cc
│ │ │ ├── rcond.cc
│ │ │ ├── schur.cc
│ │ │ ├── sparse.cc
│ │ │ ├── spparms.cc
│ │ │ ├── sqrtm.cc
│ │ │ ├── stream-euler.cc
│ │ │ ├── svd.cc
│ │ │ ├── sylvester.cc
│ │ │ ├── symbfact.cc
│ │ │ ├── symrcm.cc
│ │ │ ├── trexc.cc
│ │ │ └── tsearch.cc
│ │ ├── oct-errno.h
│ │ ├── oct-fstrm.cc
│ │ ├── oct-fstrm.h
│ │ ├── oct-handle.h
│ │ ├── oct-hdf5-types.cc
│ │ ├── oct-hdf5-types.h
│ │ ├── oct-hdf5.h
│ │ ├── oct-hist.cc
│ │ ├── oct-hist.h
│ │ ├── oct-iostrm.cc
│ │ ├── oct-iostrm.h
│ │ ├── oct-map.cc
│ │ ├── oct-map.h
│ │ ├── oct-opengl.h
│ │ ├── oct-prcstrm.cc
│ │ ├── oct-prcstrm.h
│ │ ├── oct-procbuf.cc
│ │ ├── oct-procbuf.h
│ │ ├── oct-process.cc
│ │ ├── oct-process.h
│ │ ├── oct-rl-edit.c
│ │ ├── oct-rl-edit.h
│ │ ├── oct-rl-hist.c
│ │ ├── oct-rl-hist.h
│ │ ├── oct-stdstrm.h
│ │ ├── oct-stream.cc
│ │ ├── oct-stream.h
│ │ ├── oct-strstrm.cc
│ │ ├── oct-strstrm.h
│ │ ├── oct-tex-lexer.in.ll
│ │ ├── oct-tex-parser.yy
│ │ ├── oct-tex-symbols.in
│ │ ├── oct.h
│ │ ├── octave-default-image.h
│ │ ├── pager.cc
│ │ ├── pager.h
│ │ ├── panic.cc
│ │ ├── panic.h
│ │ ├── pr-flt-fmt.cc
│ │ ├── pr-flt-fmt.h
│ │ ├── pr-output.cc
│ │ ├── pr-output.h
│ │ ├── procstream.cc
│ │ ├── procstream.h
│ │ ├── sighandlers.cc
│ │ ├── sighandlers.h
│ │ ├── sparse-xdiv.cc
│ │ ├── sparse-xdiv.h
│ │ ├── sparse-xpow.cc
│ │ ├── sparse-xpow.h
│ │ ├── stack-frame.cc
│ │ ├── stack-frame.h
│ │ ├── syminfo.cc
│ │ ├── syminfo.h
│ │ ├── symrec.cc
│ │ ├── symrec.h
│ │ ├── symscope.cc
│ │ ├── symscope.h
│ │ ├── symtab.cc
│ │ ├── symtab.h
│ │ ├── sysdep.cc
│ │ ├── sysdep.h
│ │ ├── system/
│ │ │ ├── __ftp__.cc
│ │ │ ├── dirfns.cc
│ │ │ ├── dlmread.cc
│ │ │ ├── getgrent.cc
│ │ │ ├── getpwent.cc
│ │ │ ├── getrusage.cc
│ │ │ ├── mk-errno-list.sh
│ │ │ ├── module.mk
│ │ │ ├── nproc.cc
│ │ │ ├── oct-errno.in.cc
│ │ │ ├── syscalls.cc
│ │ │ ├── time.cc
│ │ │ └── urlwrite.cc
│ │ ├── text-engine.cc
│ │ ├── text-engine.h
│ │ ├── text-renderer.cc
│ │ ├── text-renderer.h
│ │ ├── toplev.cc
│ │ ├── url-handle-manager.cc
│ │ ├── url-handle-manager.h
│ │ ├── util/
│ │ │ ├── bsxfun.cc
│ │ │ ├── cellfun.cc
│ │ │ ├── find.cc
│ │ │ ├── jsondecode.cc
│ │ │ ├── jsonencode.cc
│ │ │ ├── lookup.cc
│ │ │ ├── matrix_type.cc
│ │ │ ├── module.mk
│ │ │ ├── regexp.cc
│ │ │ ├── strfind.cc
│ │ │ ├── strfns.cc
│ │ │ ├── sub2ind.cc
│ │ │ ├── tril.cc
│ │ │ └── typecast.cc
│ │ ├── utils.cc
│ │ ├── utils.h
│ │ ├── variables.cc
│ │ ├── variables.h
│ │ ├── xdiv.cc
│ │ ├── xdiv.h
│ │ ├── xnorm.cc
│ │ ├── xnorm.h
│ │ ├── xpow.cc
│ │ └── xpow.h
│ ├── dldfcn/
│ │ ├── __delaunayn__.cc
│ │ ├── __fltk_uigetfile__.cc
│ │ ├── __glpk__.cc
│ │ ├── __init_fltk__.cc
│ │ ├── __init_gnuplot__.cc
│ │ ├── __ode15__.cc
│ │ ├── __voronoi__.cc
│ │ ├── audiodevinfo.cc
│ │ ├── audioread.cc
│ │ ├── config-module.awk
│ │ ├── config-module.sh
│ │ ├── convhulln.cc
│ │ ├── fftw.cc
│ │ ├── gzip.cc
│ │ ├── module-files
│ │ └── oct-qhull.h
│ ├── liboctinterp-build-info.h
│ ├── liboctinterp-build-info.in.cc
│ ├── mk-build-env-features.sh
│ ├── mk-builtins.pl
│ ├── mk-doc.pl
│ ├── module.mk
│ ├── octave-value/
│ │ ├── cdef-class.cc
│ │ ├── cdef-class.h
│ │ ├── cdef-fwd.h
│ │ ├── cdef-manager.cc
│ │ ├── cdef-manager.h
│ │ ├── cdef-method.cc
│ │ ├── cdef-method.h
│ │ ├── cdef-object.cc
│ │ ├── cdef-object.h
│ │ ├── cdef-package.cc
│ │ ├── cdef-package.h
│ │ ├── cdef-property.cc
│ │ ├── cdef-property.h
│ │ ├── cdef-utils.cc
│ │ ├── cdef-utils.h
│ │ ├── module.mk
│ │ ├── ov-base-diag-inst.cc
│ │ ├── ov-base-diag.cc
│ │ ├── ov-base-diag.h
│ │ ├── ov-base-int-inst.cc
│ │ ├── ov-base-int.cc
│ │ ├── ov-base-int.h
│ │ ├── ov-base-mat-inst.cc
│ │ ├── ov-base-mat.cc
│ │ ├── ov-base-mat.h
│ │ ├── ov-base-scalar-inst.cc
│ │ ├── ov-base-scalar.cc
│ │ ├── ov-base-scalar.h
│ │ ├── ov-base-sparse-inst.cc
│ │ ├── ov-base-sparse.cc
│ │ ├── ov-base-sparse.h
│ │ ├── ov-base.cc
│ │ ├── ov-base.h
│ │ ├── ov-bool-mat.cc
│ │ ├── ov-bool-mat.h
│ │ ├── ov-bool-sparse.cc
│ │ ├── ov-bool-sparse.h
│ │ ├── ov-bool.cc
│ │ ├── ov-bool.h
│ │ ├── ov-builtin.cc
│ │ ├── ov-builtin.h
│ │ ├── ov-cell.cc
│ │ ├── ov-cell.h
│ │ ├── ov-ch-mat.cc
│ │ ├── ov-ch-mat.h
│ │ ├── ov-class.cc
│ │ ├── ov-class.h
│ │ ├── ov-classdef.cc
│ │ ├── ov-classdef.h
│ │ ├── ov-colon.cc
│ │ ├── ov-colon.h
│ │ ├── ov-complex.cc
│ │ ├── ov-complex.h
│ │ ├── ov-cs-list.cc
│ │ ├── ov-cs-list.h
│ │ ├── ov-cx-diag.cc
│ │ ├── ov-cx-diag.h
│ │ ├── ov-cx-mat.cc
│ │ ├── ov-cx-mat.h
│ │ ├── ov-cx-sparse.cc
│ │ ├── ov-cx-sparse.h
│ │ ├── ov-dld-fcn.cc
│ │ ├── ov-dld-fcn.h
│ │ ├── ov-fcn-handle.cc
│ │ ├── ov-fcn-handle.h
│ │ ├── ov-fcn.cc
│ │ ├── ov-fcn.h
│ │ ├── ov-float.cc
│ │ ├── ov-float.h
│ │ ├── ov-flt-complex.cc
│ │ ├── ov-flt-complex.h
│ │ ├── ov-flt-cx-diag.cc
│ │ ├── ov-flt-cx-diag.h
│ │ ├── ov-flt-cx-mat.cc
│ │ ├── ov-flt-cx-mat.h
│ │ ├── ov-flt-re-diag.cc
│ │ ├── ov-flt-re-diag.h
│ │ ├── ov-flt-re-mat.cc
│ │ ├── ov-flt-re-mat.h
│ │ ├── ov-inline.h
│ │ ├── ov-int-traits.h
│ │ ├── ov-int16.cc
│ │ ├── ov-int16.h
│ │ ├── ov-int32.cc
│ │ ├── ov-int32.h
│ │ ├── ov-int64.cc
│ │ ├── ov-int64.h
│ │ ├── ov-int8.cc
│ │ ├── ov-int8.h
│ │ ├── ov-intx.h
│ │ ├── ov-java.cc
│ │ ├── ov-java.h
│ │ ├── ov-lazy-idx.cc
│ │ ├── ov-lazy-idx.h
│ │ ├── ov-legacy-range.cc
│ │ ├── ov-legacy-range.h
│ │ ├── ov-magic-int.cc
│ │ ├── ov-magic-int.h
│ │ ├── ov-mex-fcn.cc
│ │ ├── ov-mex-fcn.h
│ │ ├── ov-null-mat.cc
│ │ ├── ov-null-mat.h
│ │ ├── ov-oncleanup.cc
│ │ ├── ov-oncleanup.h
│ │ ├── ov-perm.cc
│ │ ├── ov-perm.h
│ │ ├── ov-range-traits.h
│ │ ├── ov-range.cc
│ │ ├── ov-range.h
│ │ ├── ov-re-diag.cc
│ │ ├── ov-re-diag.h
│ │ ├── ov-re-mat.cc
│ │ ├── ov-re-mat.h
│ │ ├── ov-re-sparse.cc
│ │ ├── ov-re-sparse.h
│ │ ├── ov-scalar.cc
│ │ ├── ov-scalar.h
│ │ ├── ov-str-mat.cc
│ │ ├── ov-str-mat.h
│ │ ├── ov-struct.cc
│ │ ├── ov-struct.h
│ │ ├── ov-typeinfo.cc
│ │ ├── ov-typeinfo.h
│ │ ├── ov-uint16.cc
│ │ ├── ov-uint16.h
│ │ ├── ov-uint32.cc
│ │ ├── ov-uint32.h
│ │ ├── ov-uint64.cc
│ │ ├── ov-uint64.h
│ │ ├── ov-uint8.cc
│ │ ├── ov-uint8.h
│ │ ├── ov-usr-fcn.cc
│ │ ├── ov-usr-fcn.h
│ │ ├── ov.cc
│ │ ├── ov.h
│ │ ├── ovl.cc
│ │ └── ovl.h
│ ├── octave.cc
│ ├── octave.h
│ ├── octinterp.in.pc
│ ├── op-kw-docs
│ ├── operators/
│ │ ├── mk-ops.sh
│ │ ├── module.mk
│ │ ├── op-b-b.cc
│ │ ├── op-b-bm.cc
│ │ ├── op-b-sbm.cc
│ │ ├── op-bm-b.cc
│ │ ├── op-bm-bm.cc
│ │ ├── op-bm-sbm.cc
│ │ ├── op-cdm-cdm.cc
│ │ ├── op-cdm-cm.cc
│ │ ├── op-cdm-cs.cc
│ │ ├── op-cdm-dm.cc
│ │ ├── op-cdm-m.cc
│ │ ├── op-cdm-s.cc
│ │ ├── op-cell.cc
│ │ ├── op-chm.cc
│ │ ├── op-class.cc
│ │ ├── op-cm-cdm.cc
│ │ ├── op-cm-cm.cc
│ │ ├── op-cm-cs.cc
│ │ ├── op-cm-dm.cc
│ │ ├── op-cm-m.cc
│ │ ├── op-cm-pm.cc
│ │ ├── op-cm-s.cc
│ │ ├── op-cm-scm.cc
│ │ ├── op-cm-sm.cc
│ │ ├── op-cs-cm.cc
│ │ ├── op-cs-cs.cc
│ │ ├── op-cs-m.cc
│ │ ├── op-cs-s.cc
│ │ ├── op-cs-scm.cc
│ │ ├── op-cs-sm.cc
│ │ ├── op-dm-cdm.cc
│ │ ├── op-dm-cm.cc
│ │ ├── op-dm-cs.cc
│ │ ├── op-dm-dm.cc
│ │ ├── op-dm-m.cc
│ │ ├── op-dm-s.cc
│ │ ├── op-dm-scm.cc
│ │ ├── op-dm-sm.cc
│ │ ├── op-dm-template.cc
│ │ ├── op-dms-template.cc
│ │ ├── op-fcdm-fcdm.cc
│ │ ├── op-fcdm-fcm.cc
│ │ ├── op-fcdm-fcs.cc
│ │ ├── op-fcdm-fdm.cc
│ │ ├── op-fcdm-fm.cc
│ │ ├── op-fcdm-fs.cc
│ │ ├── op-fcm-fcdm.cc
│ │ ├── op-fcm-fcm.cc
│ │ ├── op-fcm-fcs.cc
│ │ ├── op-fcm-fdm.cc
│ │ ├── op-fcm-fm.cc
│ │ ├── op-fcm-fs.cc
│ │ ├── op-fcm-pm.cc
│ │ ├── op-fcn.cc
│ │ ├── op-fcs-fcm.cc
│ │ ├── op-fcs-fcs.cc
│ │ ├── op-fcs-fm.cc
│ │ ├── op-fcs-fs.cc
│ │ ├── op-fdm-fcdm.cc
│ │ ├── op-fdm-fcm.cc
│ │ ├── op-fdm-fcs.cc
│ │ ├── op-fdm-fdm.cc
│ │ ├── op-fdm-fm.cc
│ │ ├── op-fdm-fs.cc
│ │ ├── op-fm-fcdm.cc
│ │ ├── op-fm-fcm.cc
│ │ ├── op-fm-fcs.cc
│ │ ├── op-fm-fdm.cc
│ │ ├── op-fm-fm.cc
│ │ ├── op-fm-fs.cc
│ │ ├── op-fm-pm.cc
│ │ ├── op-fs-fcm.cc
│ │ ├── op-fs-fcs.cc
│ │ ├── op-fs-fm.cc
│ │ ├── op-fs-fs.cc
│ │ ├── op-i16-i16.cc
│ │ ├── op-i32-i32.cc
│ │ ├── op-i64-i64.cc
│ │ ├── op-i8-i8.cc
│ │ ├── op-int-concat.cc
│ │ ├── op-int.h
│ │ ├── op-m-cdm.cc
│ │ ├── op-m-cm.cc
│ │ ├── op-m-cs.cc
│ │ ├── op-m-dm.cc
│ │ ├── op-m-m.cc
│ │ ├── op-m-pm.cc
│ │ ├── op-m-s.cc
│ │ ├── op-m-scm.cc
│ │ ├── op-m-sm.cc
│ │ ├── op-mi.cc
│ │ ├── op-pm-cm.cc
│ │ ├── op-pm-fcm.cc
│ │ ├── op-pm-fm.cc
│ │ ├── op-pm-m.cc
│ │ ├── op-pm-pm.cc
│ │ ├── op-pm-scm.cc
│ │ ├── op-pm-sm.cc
│ │ ├── op-pm-template.cc
│ │ ├── op-range.cc
│ │ ├── op-s-cm.cc
│ │ ├── op-s-cs.cc
│ │ ├── op-s-m.cc
│ │ ├── op-s-s.cc
│ │ ├── op-s-scm.cc
│ │ ├── op-s-sm.cc
│ │ ├── op-sbm-b.cc
│ │ ├── op-sbm-bm.cc
│ │ ├── op-sbm-sbm.cc
│ │ ├── op-scm-cm.cc
│ │ ├── op-scm-cs.cc
│ │ ├── op-scm-m.cc
│ │ ├── op-scm-s.cc
│ │ ├── op-scm-scm.cc
│ │ ├── op-scm-sm.cc
│ │ ├── op-sm-cm.cc
│ │ ├── op-sm-cs.cc
│ │ ├── op-sm-m.cc
│ │ ├── op-sm-s.cc
│ │ ├── op-sm-scm.cc
│ │ ├── op-sm-sm.cc
│ │ ├── op-str-m.cc
│ │ ├── op-str-s.cc
│ │ ├── op-str-str.cc
│ │ ├── op-struct.cc
│ │ ├── op-ui16-ui16.cc
│ │ ├── op-ui32-ui32.cc
│ │ ├── op-ui64-ui64.cc
│ │ ├── op-ui8-ui8.cc
│ │ └── ops.h
│ ├── options.h
│ ├── parse-tree/
│ │ ├── anon-fcn-validator.cc
│ │ ├── anon-fcn-validator.h
│ │ ├── bp-table.cc
│ │ ├── bp-table.h
│ │ ├── comment-list.cc
│ │ ├── comment-list.h
│ │ ├── filepos.h
│ │ ├── lex.h
│ │ ├── lex.ll
│ │ ├── module.mk
│ │ ├── oct-lvalue.cc
│ │ ├── oct-lvalue.h
│ │ ├── oct-parse.yy
│ │ ├── octave.gperf
│ │ ├── parse.h
│ │ ├── profiler.cc
│ │ ├── profiler.h
│ │ ├── pt-all.h
│ │ ├── pt-anon-scopes.cc
│ │ ├── pt-anon-scopes.h
│ │ ├── pt-arg-list.cc
│ │ ├── pt-arg-list.h
│ │ ├── pt-args-block.cc
│ │ ├── pt-args-block.h
│ │ ├── pt-array-list.cc
│ │ ├── pt-array-list.h
│ │ ├── pt-assign.cc
│ │ ├── pt-assign.h
│ │ ├── pt-binop.cc
│ │ ├── pt-binop.h
│ │ ├── pt-bp.cc
│ │ ├── pt-bp.h
│ │ ├── pt-cbinop.cc
│ │ ├── pt-cbinop.h
│ │ ├── pt-cell.cc
│ │ ├── pt-cell.h
│ │ ├── pt-check.cc
│ │ ├── pt-check.h
│ │ ├── pt-classdef.cc
│ │ ├── pt-classdef.h
│ │ ├── pt-cmd.h
│ │ ├── pt-colon.cc
│ │ ├── pt-colon.h
│ │ ├── pt-const.cc
│ │ ├── pt-const.h
│ │ ├── pt-decl.cc
│ │ ├── pt-decl.h
│ │ ├── pt-delimiter-list.h
│ │ ├── pt-eval.cc
│ │ ├── pt-eval.h
│ │ ├── pt-except.cc
│ │ ├── pt-except.h
│ │ ├── pt-exp.cc
│ │ ├── pt-exp.h
│ │ ├── pt-fcn-handle.cc
│ │ ├── pt-fcn-handle.h
│ │ ├── pt-id.cc
│ │ ├── pt-id.h
│ │ ├── pt-idx.cc
│ │ ├── pt-idx.h
│ │ ├── pt-jump.h
│ │ ├── pt-loop.cc
│ │ ├── pt-loop.h
│ │ ├── pt-mat.cc
│ │ ├── pt-mat.h
│ │ ├── pt-misc.cc
│ │ ├── pt-misc.h
│ │ ├── pt-pr-code.cc
│ │ ├── pt-pr-code.h
│ │ ├── pt-select.cc
│ │ ├── pt-select.h
│ │ ├── pt-spmd.cc
│ │ ├── pt-spmd.h
│ │ ├── pt-stmt.cc
│ │ ├── pt-stmt.h
│ │ ├── pt-tm-const.cc
│ │ ├── pt-tm-const.h
│ │ ├── pt-unop.cc
│ │ ├── pt-unop.h
│ │ ├── pt-walk.cc
│ │ ├── pt-walk.h
│ │ ├── pt.cc
│ │ ├── pt.h
│ │ ├── separator-list.h
│ │ └── token.h
│ ├── template-inst/
│ │ ├── Array-tc.cc
│ │ ├── Array.cc
│ │ ├── Array.h
│ │ └── module.mk
│ └── usage.h
├── libmex/
│ ├── liboctmex-build-info.h
│ ├── liboctmex-build-info.in.cc
│ ├── mex.cc
│ ├── mex.h
│ ├── mexproto.h
│ ├── module.mk
│ └── octmex.in.pc
├── liboctave/
│ ├── array/
│ │ ├── Array-C.cc
│ │ ├── Array-b.cc
│ │ ├── Array-base.cc
│ │ ├── Array-base.h
│ │ ├── Array-ch.cc
│ │ ├── Array-d.cc
│ │ ├── Array-f.cc
│ │ ├── Array-fC.cc
│ │ ├── Array-fwd.h
│ │ ├── Array-i.cc
│ │ ├── Array-idx-vec.cc
│ │ ├── Array-oct.cc
│ │ ├── Array-oct.h
│ │ ├── Array-s.cc
│ │ ├── Array-str.cc
│ │ ├── Array-util.cc
│ │ ├── Array-util.h
│ │ ├── Array-voidp.cc
│ │ ├── CColVector.cc
│ │ ├── CColVector.h
│ │ ├── CDiagMatrix.cc
│ │ ├── CDiagMatrix.h
│ │ ├── CMatrix.cc
│ │ ├── CMatrix.h
│ │ ├── CNDArray.cc
│ │ ├── CNDArray.h
│ │ ├── CRowVector.cc
│ │ ├── CRowVector.h
│ │ ├── CSparse.cc
│ │ ├── CSparse.h
│ │ ├── DiagArray2.cc
│ │ ├── DiagArray2.h
│ │ ├── MArray-C.cc
│ │ ├── MArray-d.cc
│ │ ├── MArray-f.cc
│ │ ├── MArray-fC.cc
│ │ ├── MArray-fwd.h
│ │ ├── MArray-i.cc
│ │ ├── MArray-s.cc
│ │ ├── MArray.cc
│ │ ├── MArray.h
│ │ ├── MDiagArray2.cc
│ │ ├── MDiagArray2.h
│ │ ├── MSparse-C.cc
│ │ ├── MSparse-d.cc
│ │ ├── MSparse.cc
│ │ ├── MSparse.h
│ │ ├── Matrix.h
│ │ ├── MatrixType.cc
│ │ ├── MatrixType.h
│ │ ├── PermMatrix.cc
│ │ ├── PermMatrix.h
│ │ ├── Range.cc
│ │ ├── Range.h
│ │ ├── Sparse-C.cc
│ │ ├── Sparse-b.cc
│ │ ├── Sparse-d.cc
│ │ ├── Sparse-fwd.h
│ │ ├── Sparse.cc
│ │ ├── Sparse.h
│ │ ├── boolMatrix.cc
│ │ ├── boolMatrix.h
│ │ ├── boolNDArray.cc
│ │ ├── boolNDArray.h
│ │ ├── boolSparse.cc
│ │ ├── boolSparse.h
│ │ ├── chMatrix.cc
│ │ ├── chMatrix.h
│ │ ├── chNDArray.cc
│ │ ├── chNDArray.h
│ │ ├── dColVector.cc
│ │ ├── dColVector.h
│ │ ├── dDiagMatrix.cc
│ │ ├── dDiagMatrix.h
│ │ ├── dMatrix.cc
│ │ ├── dMatrix.h
│ │ ├── dNDArray.cc
│ │ ├── dNDArray.h
│ │ ├── dRowVector.cc
│ │ ├── dRowVector.h
│ │ ├── dSparse.cc
│ │ ├── dSparse.h
│ │ ├── dim-vector.cc
│ │ ├── dim-vector.h
│ │ ├── fCColVector.cc
│ │ ├── fCColVector.h
│ │ ├── fCDiagMatrix.cc
│ │ ├── fCDiagMatrix.h
│ │ ├── fCMatrix.cc
│ │ ├── fCMatrix.h
│ │ ├── fCNDArray.cc
│ │ ├── fCNDArray.h
│ │ ├── fCRowVector.cc
│ │ ├── fCRowVector.h
│ │ ├── fColVector.cc
│ │ ├── fColVector.h
│ │ ├── fDiagMatrix.cc
│ │ ├── fDiagMatrix.h
│ │ ├── fMatrix.cc
│ │ ├── fMatrix.h
│ │ ├── fNDArray.cc
│ │ ├── fNDArray.h
│ │ ├── fRowVector.cc
│ │ ├── fRowVector.h
│ │ ├── idx-vector.cc
│ │ ├── idx-vector.h
│ │ ├── int16NDArray.cc
│ │ ├── int16NDArray.h
│ │ ├── int32NDArray.cc
│ │ ├── int32NDArray.h
│ │ ├── int64NDArray.cc
│ │ ├── int64NDArray.h
│ │ ├── int8NDArray.cc
│ │ ├── int8NDArray.h
│ │ ├── intNDArray-fwd.h
│ │ ├── intNDArray.cc
│ │ ├── intNDArray.h
│ │ ├── module.mk
│ │ ├── mx-fwd.h
│ │ ├── range-fwd.h
│ │ ├── uint16NDArray.cc
│ │ ├── uint16NDArray.h
│ │ ├── uint32NDArray.cc
│ │ ├── uint32NDArray.h
│ │ ├── uint64NDArray.cc
│ │ ├── uint64NDArray.h
│ │ ├── uint8NDArray.cc
│ │ └── uint8NDArray.h
│ ├── external/
│ │ ├── Faddeeva/
│ │ │ ├── Faddeeva.cc
│ │ │ ├── Faddeeva.hh
│ │ │ └── module.mk
│ │ ├── amos/
│ │ │ ├── README
│ │ │ ├── cacai.f
│ │ │ ├── cacon.f
│ │ │ ├── cairy.f
│ │ │ ├── casyi.f
│ │ │ ├── cbesh.f
│ │ │ ├── cbesi.f
│ │ │ ├── cbesj.f
│ │ │ ├── cbesk.f
│ │ │ ├── cbesy.f
│ │ │ ├── cbinu.f
│ │ │ ├── cbiry.f
│ │ │ ├── cbknu.f
│ │ │ ├── cbuni.f
│ │ │ ├── cbunk.f
│ │ │ ├── ckscl.f
│ │ │ ├── cmlri.f
│ │ │ ├── crati.f
│ │ │ ├── cs1s2.f
│ │ │ ├── cseri.f
│ │ │ ├── cshch.f
│ │ │ ├── cuchk.f
│ │ │ ├── cunhj.f
│ │ │ ├── cuni1.f
│ │ │ ├── cuni2.f
│ │ │ ├── cunik.f
│ │ │ ├── cunk1.f
│ │ │ ├── cunk2.f
│ │ │ ├── cuoik.f
│ │ │ ├── cwrsk.f
│ │ │ ├── dgamln.f
│ │ │ ├── gamln.f
│ │ │ ├── module.mk
│ │ │ ├── xzabs.f
│ │ │ ├── xzexp.f
│ │ │ ├── xzlog.f
│ │ │ ├── xzsqrt.f
│ │ │ ├── zacai.f
│ │ │ ├── zacon.f
│ │ │ ├── zairy.f
│ │ │ ├── zasyi.f
│ │ │ ├── zbesh.f
│ │ │ ├── zbesi.f
│ │ │ ├── zbesj.f
│ │ │ ├── zbesk.f
│ │ │ ├── zbesy.f
│ │ │ ├── zbinu.f
│ │ │ ├── zbiry.f
│ │ │ ├── zbknu.f
│ │ │ ├── zbuni.f
│ │ │ ├── zbunk.f
│ │ │ ├── zdiv.f
│ │ │ ├── zkscl.f
│ │ │ ├── zmlri.f
│ │ │ ├── zmlt.f
│ │ │ ├── zrati.f
│ │ │ ├── zs1s2.f
│ │ │ ├── zseri.f
│ │ │ ├── zshch.f
│ │ │ ├── zuchk.f
│ │ │ ├── zunhj.f
│ │ │ ├── zuni1.f
│ │ │ ├── zuni2.f
│ │ │ ├── zunik.f
│ │ │ ├── zunk1.f
│ │ │ ├── zunk2.f
│ │ │ ├── zuoik.f
│ │ │ └── zwrsk.f
│ │ ├── blas-xtra/
│ │ │ ├── cdotc3.f
│ │ │ ├── cmatm3.f
│ │ │ ├── ddot3.f
│ │ │ ├── dmatm3.f
│ │ │ ├── module.mk
│ │ │ ├── sdot3.f
│ │ │ ├── smatm3.f
│ │ │ ├── xcdotc.f
│ │ │ ├── xcdotu.f
│ │ │ ├── xddot.f
│ │ │ ├── xdnrm2.f
│ │ │ ├── xdznrm2.f
│ │ │ ├── xerbla.cc
│ │ │ ├── xscnrm2.f
│ │ │ ├── xsdot.f
│ │ │ ├── xsnrm2.f
│ │ │ ├── xzdotc.f
│ │ │ ├── xzdotu.f
│ │ │ ├── zdotc3.f
│ │ │ └── zmatm3.f
│ │ ├── daspk/
│ │ │ ├── datv.f
│ │ │ ├── dcnst0.f
│ │ │ ├── dcnstr.f
│ │ │ ├── ddasic.f
│ │ │ ├── ddasid.f
│ │ │ ├── ddasik.f
│ │ │ ├── ddaspk.f
│ │ │ ├── ddstp.f
│ │ │ ├── ddwnrm.f
│ │ │ ├── dfnrmd.f
│ │ │ ├── dfnrmk.f
│ │ │ ├── dhels.f
│ │ │ ├── dheqr.f
│ │ │ ├── dinvwt.f
│ │ │ ├── dlinsd.f
│ │ │ ├── dlinsk.f
│ │ │ ├── dmatd.f
│ │ │ ├── dnedd.f
│ │ │ ├── dnedk.f
│ │ │ ├── dnsd.f
│ │ │ ├── dnsid.f
│ │ │ ├── dnsik.f
│ │ │ ├── dnsk.f
│ │ │ ├── dorth.f
│ │ │ ├── dslvd.f
│ │ │ ├── dslvk.f
│ │ │ ├── dspigm.f
│ │ │ ├── dyypnw.f
│ │ │ └── module.mk
│ │ ├── dasrt/
│ │ │ ├── ddasrt.f
│ │ │ ├── drchek.f
│ │ │ ├── droots.f
│ │ │ └── module.mk
│ │ ├── dassl/
│ │ │ ├── ddaini.f
│ │ │ ├── ddajac.f
│ │ │ ├── ddanrm.f
│ │ │ ├── ddaslv.f
│ │ │ ├── ddassl.f
│ │ │ ├── ddastp.f
│ │ │ ├── ddatrp.f
│ │ │ ├── ddawts.f
│ │ │ └── module.mk
│ │ ├── lapack-xtra/
│ │ │ ├── crsf2csf.f
│ │ │ ├── module.mk
│ │ │ ├── xclange.f
│ │ │ ├── xdlamch.f
│ │ │ ├── xdlange.f
│ │ │ ├── xilaenv.f
│ │ │ ├── xslamch.f
│ │ │ ├── xslange.f
│ │ │ ├── xzlange.f
│ │ │ └── zrsf2csf.f
│ │ ├── mk-f77-def.in.sh
│ │ ├── module.mk
│ │ ├── odepack/
│ │ │ ├── dcfode.f
│ │ │ ├── dewset.f
│ │ │ ├── dintdy.f
│ │ │ ├── dlsode.f
│ │ │ ├── dprepj.f
│ │ │ ├── dsolsy.f
│ │ │ ├── dstode.f
│ │ │ ├── dvnorm.f
│ │ │ ├── module.mk
│ │ │ ├── scfode.f
│ │ │ ├── sewset.f
│ │ │ ├── sintdy.f
│ │ │ ├── slsode.f
│ │ │ ├── sprepj.f
│ │ │ ├── ssolsy.f
│ │ │ ├── sstode.f
│ │ │ └── svnorm.f
│ │ ├── quadpack/
│ │ │ ├── dqagi.f
│ │ │ ├── dqagie.f
│ │ │ ├── dqagp.f
│ │ │ ├── dqagpe.f
│ │ │ ├── dqelg.f
│ │ │ ├── dqk15i.f
│ │ │ ├── dqk21.f
│ │ │ ├── dqpsrt.f
│ │ │ ├── module.mk
│ │ │ ├── qagi.f
│ │ │ ├── qagie.f
│ │ │ ├── qagp.f
│ │ │ ├── qagpe.f
│ │ │ ├── qelg.f
│ │ │ ├── qk15i.f
│ │ │ ├── qk21.f
│ │ │ ├── qpsrt.f
│ │ │ └── xerror.f
│ │ ├── ranlib/
│ │ │ ├── Basegen.doc
│ │ │ ├── HOWTOGET
│ │ │ ├── README
│ │ │ ├── advnst.f
│ │ │ ├── genbet.f
│ │ │ ├── genchi.f
│ │ │ ├── genexp.f
│ │ │ ├── genf.f
│ │ │ ├── gengam.f
│ │ │ ├── genmn.f
│ │ │ ├── genmul.f
│ │ │ ├── gennch.f
│ │ │ ├── gennf.f
│ │ │ ├── gennor.f
│ │ │ ├── genprm.f
│ │ │ ├── genunf.f
│ │ │ ├── getcgn.f
│ │ │ ├── getsd.f
│ │ │ ├── ignbin.f
│ │ │ ├── ignlgi.f
│ │ │ ├── ignnbn.f
│ │ │ ├── ignpoi.f
│ │ │ ├── ignuin.f
│ │ │ ├── initgn.f
│ │ │ ├── inrgcm.f
│ │ │ ├── lennob.f
│ │ │ ├── mltmod.f
│ │ │ ├── module.mk
│ │ │ ├── phrtsd.f
│ │ │ ├── qrgnin.f
│ │ │ ├── randlib.chs
│ │ │ ├── randlib.fdoc
│ │ │ ├── ranf.f
│ │ │ ├── setall.f
│ │ │ ├── setant.f
│ │ │ ├── setgmn.f
│ │ │ ├── setsd.f
│ │ │ ├── sexpo.f
│ │ │ ├── sgamma.f
│ │ │ ├── snorm.f
│ │ │ ├── tstbot.for
│ │ │ ├── tstgmn.for
│ │ │ ├── tstmid.for
│ │ │ └── wrap.f
│ │ ├── slatec-err/
│ │ │ ├── fdump.f
│ │ │ ├── ixsav.f
│ │ │ ├── j4save.f
│ │ │ ├── module.mk
│ │ │ ├── xerclr.f
│ │ │ ├── xercnt.f
│ │ │ ├── xerhlt.f
│ │ │ ├── xermsg.f
│ │ │ ├── xerprn.f
│ │ │ ├── xerrwd.f
│ │ │ ├── xerrwv.f
│ │ │ ├── xersve.f
│ │ │ ├── xgetf.f
│ │ │ ├── xgetua.f
│ │ │ ├── xsetf.f
│ │ │ └── xsetua.f
│ │ └── slatec-fn/
│ │ ├── albeta.f
│ │ ├── algams.f
│ │ ├── alngam.f
│ │ ├── alnrel.f
│ │ ├── csevl.f
│ │ ├── d9gmit.f
│ │ ├── d9lgic.f
│ │ ├── d9lgit.f
│ │ ├── d9lgmc.f
│ │ ├── dcsevl.f
│ │ ├── dgamlm.f
│ │ ├── dgamma.f
│ │ ├── dgamr.f
│ │ ├── dlbeta.f
│ │ ├── dlgams.f
│ │ ├── dlngam.f
│ │ ├── dlnrel.f
│ │ ├── dpchim.f
│ │ ├── dpchst.f
│ │ ├── dpsifn.f
│ │ ├── gamlim.f
│ │ ├── gamma.f
│ │ ├── gamr.f
│ │ ├── initds.f
│ │ ├── inits.f
│ │ ├── module.mk
│ │ ├── pchim.f
│ │ ├── pchst.f
│ │ ├── psifn.f
│ │ ├── r9gmit.f
│ │ ├── r9lgic.f
│ │ ├── r9lgit.f
│ │ └── r9lgmc.f
│ ├── liboctave-build-info.h
│ ├── liboctave-build-info.in.cc
│ ├── mk-version-h.in.sh
│ ├── module.mk
│ ├── numeric/
│ │ ├── CollocWt.cc
│ │ ├── CollocWt.h
│ │ ├── DAE.h
│ │ ├── DAEFunc.h
│ │ ├── DAERT.h
│ │ ├── DAERTFunc.h
│ │ ├── DASPK-opts.in
│ │ ├── DASPK.cc
│ │ ├── DASPK.h
│ │ ├── DASRT-opts.in
│ │ ├── DASRT.cc
│ │ ├── DASRT.h
│ │ ├── DASSL-opts.in
│ │ ├── DASSL.cc
│ │ ├── DASSL.h
│ │ ├── DET.h
│ │ ├── EIG.cc
│ │ ├── EIG.h
│ │ ├── LSODE-opts.in
│ │ ├── LSODE.cc
│ │ ├── LSODE.h
│ │ ├── ODE.h
│ │ ├── ODEFunc.h
│ │ ├── ODES.cc
│ │ ├── ODES.h
│ │ ├── ODESFunc.h
│ │ ├── Quad-opts.in
│ │ ├── Quad.cc
│ │ ├── Quad.h
│ │ ├── aepbalance.cc
│ │ ├── aepbalance.h
│ │ ├── amos-proto.h
│ │ ├── arpack-proto.h
│ │ ├── base-dae.h
│ │ ├── base-de.h
│ │ ├── blas-proto.h
│ │ ├── bsxfun-decl.h
│ │ ├── bsxfun-defs.cc
│ │ ├── bsxfun.h
│ │ ├── chol.cc
│ │ ├── chol.h
│ │ ├── eigs-base.cc
│ │ ├── eigs-base.h
│ │ ├── fEIG.cc
│ │ ├── fEIG.h
│ │ ├── gepbalance.cc
│ │ ├── gepbalance.h
│ │ ├── gsvd.cc
│ │ ├── gsvd.h
│ │ ├── hess.cc
│ │ ├── hess.h
│ │ ├── lapack-proto.h
│ │ ├── lo-amos-proto.h
│ │ ├── lo-arpack-proto.h
│ │ ├── lo-blas-proto.h
│ │ ├── lo-lapack-proto.h
│ │ ├── lo-mappers.h
│ │ ├── lo-qrupdate-proto.h
│ │ ├── lo-ranlib-proto.h
│ │ ├── lo-slatec-proto.h
│ │ ├── lo-specfun.h
│ │ ├── lu.cc
│ │ ├── lu.h
│ │ ├── mappers.cc
│ │ ├── mappers.h
│ │ ├── module.mk
│ │ ├── oct-convn.cc
│ │ ├── oct-convn.h
│ │ ├── oct-fftw.cc
│ │ ├── oct-fftw.h
│ │ ├── oct-norm.cc
│ │ ├── oct-norm.h
│ │ ├── oct-rand.cc
│ │ ├── oct-rand.h
│ │ ├── oct-specfun.cc
│ │ ├── oct-specfun.h
│ │ ├── oct-spparms.cc
│ │ ├── oct-spparms.h
│ │ ├── qr.cc
│ │ ├── qr.h
│ │ ├── qrp.cc
│ │ ├── qrp.h
│ │ ├── qrupdate-proto.h
│ │ ├── randgamma.cc
│ │ ├── randgamma.h
│ │ ├── randmtzig.cc
│ │ ├── randmtzig.h
│ │ ├── randpoisson.cc
│ │ ├── randpoisson.h
│ │ ├── ranlib-proto.h
│ │ ├── schur.cc
│ │ ├── schur.h
│ │ ├── slatec-proto.h
│ │ ├── sparse-chol.cc
│ │ ├── sparse-chol.h
│ │ ├── sparse-dmsolve.cc
│ │ ├── sparse-dmsolve.h
│ │ ├── sparse-lu.cc
│ │ ├── sparse-lu.h
│ │ ├── sparse-qr.cc
│ │ ├── sparse-qr.h
│ │ ├── svd.cc
│ │ └── svd.h
│ ├── octave.in.pc
│ ├── operators/
│ │ ├── Sparse-diag-op-defs.h
│ │ ├── Sparse-op-decls.h
│ │ ├── Sparse-op-defs.h
│ │ ├── Sparse-perm-op-defs.h
│ │ ├── config-ops.sh
│ │ ├── mk-ops.awk
│ │ ├── module.mk
│ │ ├── mx-base.h
│ │ ├── mx-defs.h
│ │ ├── mx-ext.h
│ │ ├── mx-inlines.cc
│ │ ├── mx-op-decl.h
│ │ ├── mx-op-defs.h
│ │ ├── mx-ops
│ │ ├── smx-ops
│ │ └── vx-ops
│ ├── system/
│ │ ├── child-list.cc
│ │ ├── child-list.h
│ │ ├── cmach-info.h
│ │ ├── dir-ops.cc
│ │ ├── dir-ops.h
│ │ ├── file-ops.cc
│ │ ├── file-ops.h
│ │ ├── file-stat.cc
│ │ ├── file-stat.h
│ │ ├── lo-sysdep.h
│ │ ├── lo-sysinfo.h
│ │ ├── mach-info.cc
│ │ ├── mach-info.h
│ │ ├── module.mk
│ │ ├── oct-env.cc
│ │ ├── oct-env.h
│ │ ├── oct-group.cc
│ │ ├── oct-group.h
│ │ ├── oct-password.cc
│ │ ├── oct-password.h
│ │ ├── oct-syscalls.cc
│ │ ├── oct-syscalls.h
│ │ ├── oct-sysdep.cc
│ │ ├── oct-sysdep.h
│ │ ├── oct-sysinfo.cc
│ │ ├── oct-sysinfo.h
│ │ ├── oct-time.cc
│ │ ├── oct-time.h
│ │ ├── oct-uname.cc
│ │ └── oct-uname.h
│ ├── util/
│ │ ├── action-container.cc
│ │ ├── action-container.h
│ │ ├── base-list.h
│ │ ├── blaswrap.c
│ │ ├── byte-swap.h
│ │ ├── caseless-str.h
│ │ ├── d1mach-tst.for
│ │ ├── d1mach.f
│ │ ├── data-conv.cc
│ │ ├── data-conv.h
│ │ ├── f77-dummy-main.cc
│ │ ├── f77-fcn.cc
│ │ ├── f77-fcn.h
│ │ ├── file-info.cc
│ │ ├── file-info.h
│ │ ├── glob-match.cc
│ │ ├── glob-match.h
│ │ ├── i1mach.f
│ │ ├── kpse.cc
│ │ ├── kpse.h
│ │ ├── lo-array-errwarn.cc
│ │ ├── lo-array-errwarn.h
│ │ ├── lo-error.h
│ │ ├── lo-hash.h
│ │ ├── lo-ieee.cc
│ │ ├── lo-ieee.h
│ │ ├── lo-regexp.h
│ │ ├── lo-traits.h
│ │ ├── lo-utils.cc
│ │ ├── lo-utils.h
│ │ ├── module.mk
│ │ ├── oct-base64.cc
│ │ ├── oct-base64.h
│ │ ├── oct-binmap.h
│ │ ├── oct-cmplx.cc
│ │ ├── oct-cmplx.h
│ │ ├── oct-error.cc
│ │ ├── oct-error.h
│ │ ├── oct-glob.cc
│ │ ├── oct-glob.h
│ │ ├── oct-hash.cc
│ │ ├── oct-hash.h
│ │ ├── oct-inttypes-fwd.h
│ │ ├── oct-inttypes.cc
│ │ ├── oct-inttypes.h
│ │ ├── oct-locbuf.h
│ │ ├── oct-mutex.cc
│ │ ├── oct-mutex.h
│ │ ├── oct-refcount.h
│ │ ├── oct-regexp.cc
│ │ ├── oct-regexp.h
│ │ ├── oct-shlib.cc
│ │ ├── oct-shlib.h
│ │ ├── oct-sort.cc
│ │ ├── oct-sort.h
│ │ ├── oct-sparse.cc
│ │ ├── oct-sparse.h
│ │ ├── oct-string.cc
│ │ ├── oct-string.h
│ │ ├── oct-traits.h
│ │ ├── octave-preserve-stream-state.h
│ │ ├── pathsearch.cc
│ │ ├── pathsearch.h
│ │ ├── quit.cc
│ │ ├── quit.h
│ │ ├── r1mach.f
│ │ ├── singleton-cleanup.cc
│ │ ├── singleton-cleanup.h
│ │ ├── sparse-util.cc
│ │ ├── sparse-util.h
│ │ ├── str-vec.cc
│ │ ├── str-vec.h
│ │ ├── unwind-prot.cc
│ │ ├── unwind-prot.h
│ │ ├── url-transfer.cc
│ │ └── url-transfer.h
│ ├── version.cc
│ ├── version.in.h
│ └── wrappers/
│ ├── _Exit-wrapper.c
│ ├── _Exit-wrapper.h
│ ├── areadlink-wrapper.c
│ ├── areadlink-wrapper.h
│ ├── async-system-wrapper.c
│ ├── async-system-wrapper.h
│ ├── base64-wrappers.c
│ ├── base64-wrappers.h
│ ├── canonicalize-file-name-wrapper.c
│ ├── canonicalize-file-name-wrapper.h
│ ├── cxx-signal-helpers.cc
│ ├── dirent-wrappers.c
│ ├── dirent-wrappers.h
│ ├── fcntl-wrappers.c
│ ├── fcntl-wrappers.h
│ ├── filepos-wrappers.c
│ ├── filepos-wrappers.h
│ ├── fpucw-wrappers.c
│ ├── fpucw-wrappers.h
│ ├── gen-tempname-wrapper.c
│ ├── gen-tempname-wrapper.h
│ ├── getopt-wrapper.c
│ ├── getopt-wrapper.h
│ ├── glob-wrappers.c
│ ├── glob-wrappers.h
│ ├── hash-wrappers.c
│ ├── hash-wrappers.h
│ ├── iconv-wrappers.c
│ ├── iconv-wrappers.h
│ ├── intprops-wrappers.c
│ ├── intprops-wrappers.h
│ ├── localcharset-wrapper.c
│ ├── localcharset-wrapper.h
│ ├── math-wrappers.c
│ ├── math-wrappers.h
│ ├── mkostemp-wrapper.c
│ ├── mkostemp-wrapper.h
│ ├── mkostemps-wrapper.c
│ ├── mkostemps-wrapper.h
│ ├── module.mk
│ ├── nanosleep-wrapper.c
│ ├── nanosleep-wrapper.h
│ ├── nproc-wrapper.c
│ ├── nproc-wrapper.h
│ ├── octave-popen2.c
│ ├── octave-popen2.h
│ ├── pwd-wrappers.c
│ ├── pwd-wrappers.h
│ ├── select-wrappers.c
│ ├── select-wrappers.h
│ ├── set-program-name-wrapper.c
│ ├── set-program-name-wrapper.h
│ ├── setenv-wrapper.c
│ ├── setenv-wrapper.h
│ ├── signal-wrappers.c
│ ├── signal-wrappers.h
│ ├── stat-wrappers.c
│ ├── stat-wrappers.h
│ ├── strcase-wrappers.c
│ ├── strcase-wrappers.h
│ ├── strdup-wrapper.c
│ ├── strdup-wrapper.h
│ ├── strftime-wrapper.c
│ ├── strftime-wrapper.h
│ ├── strmode-wrapper.c
│ ├── strmode-wrapper.h
│ ├── strptime-wrapper.c
│ ├── strptime-wrapper.h
│ ├── time-wrappers.c
│ ├── time-wrappers.h
│ ├── uname-wrapper.c
│ ├── uname-wrapper.h
│ ├── unicase-wrappers.c
│ ├── unicase-wrappers.h
│ ├── uniconv-wrappers.c
│ ├── uniconv-wrappers.h
│ ├── unictype-wrappers.c
│ ├── unictype-wrappers.h
│ ├── unistd-wrappers.c
│ ├── unistd-wrappers.h
│ ├── unistr-wrappers.c
│ ├── unistr-wrappers.h
│ ├── unsetenv-wrapper.c
│ ├── unsetenv-wrapper.h
│ ├── vasprintf-wrapper.c
│ ├── vasprintf-wrapper.h
│ ├── wait-for-input.c
│ ├── wait-for-input.h
│ ├── wait-wrappers.c
│ └── wait-wrappers.h
├── m4/
│ ├── acinclude.m4
│ ├── ax_blas.m4
│ ├── ax_compare_version.m4
│ ├── ax_cxx_compile_stdcxx.m4
│ ├── ax_lapack.m4
│ ├── ax_openmp.m4
│ ├── ax_pthread.m4
│ ├── module.mk
│ ├── octave_blas.m4
│ └── pkg.m4
├── oct-conf-post-private.in.h
├── oct-conf-post-public.in.h
├── octave.doap
├── run-octave.in
├── scripts/
│ ├── +containers/
│ │ ├── Map.m
│ │ └── module.mk
│ ├── +matlab/
│ │ ├── +lang/
│ │ │ ├── MemoizedFunction.m
│ │ │ ├── makeUniqueStrings.m
│ │ │ ├── makeValidName.m
│ │ │ └── module.mk
│ │ └── +net/
│ │ ├── base64decode.m
│ │ ├── base64encode.m
│ │ └── module.mk
│ ├── .oct-config
│ ├── @ftp/
│ │ ├── ascii.m
│ │ ├── binary.m
│ │ ├── cd.m
│ │ ├── close.m
│ │ ├── delete.m
│ │ ├── dir.m
│ │ ├── disp.m
│ │ ├── ftp.m
│ │ ├── loadobj.m
│ │ ├── mget.m
│ │ ├── mkdir.m
│ │ ├── module.mk
│ │ ├── mput.m
│ │ ├── rename.m
│ │ ├── rmdir.m
│ │ └── saveobj.m
│ ├── audio/
│ │ ├── .oct-config
│ │ ├── @audioplayer/
│ │ │ ├── __get_properties__.m
│ │ │ ├── audioplayer.m
│ │ │ ├── disp.m
│ │ │ ├── get.m
│ │ │ ├── isplaying.m
│ │ │ ├── pause.m
│ │ │ ├── play.m
│ │ │ ├── playblocking.m
│ │ │ ├── resume.m
│ │ │ ├── set.m
│ │ │ ├── stop.m
│ │ │ ├── subsasgn.m
│ │ │ └── subsref.m
│ │ ├── @audiorecorder/
│ │ │ ├── __get_properties__.m
│ │ │ ├── audiorecorder.m
│ │ │ ├── disp.m
│ │ │ ├── get.m
│ │ │ ├── getaudiodata.m
│ │ │ ├── getplayer.m
│ │ │ ├── isrecording.m
│ │ │ ├── pause.m
│ │ │ ├── play.m
│ │ │ ├── record.m
│ │ │ ├── recordblocking.m
│ │ │ ├── resume.m
│ │ │ ├── set.m
│ │ │ ├── stop.m
│ │ │ ├── subsasgn.m
│ │ │ └── subsref.m
│ │ ├── lin2mu.m
│ │ ├── module.mk
│ │ ├── mu2lin.m
│ │ ├── record.m
│ │ ├── sound.m
│ │ └── soundsc.m
│ ├── deprecated/
│ │ ├── .oct-config
│ │ └── module.mk
│ ├── elfun/
│ │ ├── .oct-config
│ │ ├── acosd.m
│ │ ├── acot.m
│ │ ├── acotd.m
│ │ ├── acoth.m
│ │ ├── acsc.m
│ │ ├── acscd.m
│ │ ├── acsch.m
│ │ ├── asec.m
│ │ ├── asecd.m
│ │ ├── asech.m
│ │ ├── asind.m
│ │ ├── atan2d.m
│ │ ├── atand.m
│ │ ├── cosd.m
│ │ ├── cospi.m
│ │ ├── cot.m
│ │ ├── cotd.m
│ │ ├── coth.m
│ │ ├── csc.m
│ │ ├── cscd.m
│ │ ├── csch.m
│ │ ├── module.mk
│ │ ├── sec.m
│ │ ├── secd.m
│ │ ├── sech.m
│ │ ├── sind.m
│ │ ├── sinpi.m
│ │ └── tand.m
│ ├── general/
│ │ ├── .oct-config
│ │ ├── accumarray.m
│ │ ├── accumdim.m
│ │ ├── bincoeff.m
│ │ ├── bitcmp.m
│ │ ├── bitget.m
│ │ ├── bitset.m
│ │ ├── blkdiag.m
│ │ ├── cart2pol.m
│ │ ├── cart2sph.m
│ │ ├── cell2mat.m
│ │ ├── celldisp.m
│ │ ├── circshift.m
│ │ ├── common_size.m
│ │ ├── cplxpair.m
│ │ ├── cumtrapz.m
│ │ ├── curl.m
│ │ ├── dblquad.m
│ │ ├── deal.m
│ │ ├── deg2rad.m
│ │ ├── del2.m
│ │ ├── divergence.m
│ │ ├── flip.m
│ │ ├── fliplr.m
│ │ ├── flipud.m
│ │ ├── gradient.m
│ │ ├── idivide.m
│ │ ├── int2str.m
│ │ ├── integral.m
│ │ ├── integral2.m
│ │ ├── integral3.m
│ │ ├── interp1.m
│ │ ├── interp2.m
│ │ ├── interp3.m
│ │ ├── interpft.m
│ │ ├── interpn.m
│ │ ├── isequal.m
│ │ ├── isequaln.m
│ │ ├── isuniform.m
│ │ ├── logspace.m
│ │ ├── module.mk
│ │ ├── nextpow2.m
│ │ ├── num2str.m
│ │ ├── pagectranspose.m
│ │ ├── pagetranspose.m
│ │ ├── pol2cart.m
│ │ ├── polyarea.m
│ │ ├── postpad.m
│ │ ├── prepad.m
│ │ ├── private/
│ │ │ └── __splinen__.m
│ │ ├── quad2d.m
│ │ ├── quadgk.m
│ │ ├── quadl.m
│ │ ├── quadv.m
│ │ ├── rad2deg.m
│ │ ├── rat.m
│ │ ├── repelem.m
│ │ ├── repmat.m
│ │ ├── rescale.m
│ │ ├── rng.m
│ │ ├── rot90.m
│ │ ├── rotdim.m
│ │ ├── shiftdim.m
│ │ ├── sortrows.m
│ │ ├── sph2cart.m
│ │ ├── structfun.m
│ │ ├── subsindex.m
│ │ ├── trapz.m
│ │ ├── triplequad.m
│ │ └── xor.m
│ ├── geometry/
│ │ ├── .oct-config
│ │ ├── convhull.m
│ │ ├── delaunay.m
│ │ ├── delaunayn.m
│ │ ├── dsearchn.m
│ │ ├── griddata.m
│ │ ├── griddata3.m
│ │ ├── griddatan.m
│ │ ├── inpolygon.m
│ │ ├── module.mk
│ │ ├── rectint.m
│ │ ├── rotx.m
│ │ ├── roty.m
│ │ ├── rotz.m
│ │ ├── tsearchn.m
│ │ ├── voronoi.m
│ │ └── voronoin.m
│ ├── gui/
│ │ ├── .oct-config
│ │ ├── dialog.m
│ │ ├── errordlg.m
│ │ ├── getappdata.m
│ │ ├── getpixelposition.m
│ │ ├── guidata.m
│ │ ├── guihandles.m
│ │ ├── helpdlg.m
│ │ ├── inputdlg.m
│ │ ├── isappdata.m
│ │ ├── listdlg.m
│ │ ├── listfonts.m
│ │ ├── module.mk
│ │ ├── movegui.m
│ │ ├── msgbox.m
│ │ ├── private/
│ │ │ ├── __file_filter__.m
│ │ │ ├── __fltk_file_filter__.m
│ │ │ ├── __get_funcname__.m
│ │ │ ├── __is_function__.m
│ │ │ ├── __ok_cancel_dlg__.m
│ │ │ ├── __uigetdir_fltk__.m
│ │ │ ├── __uigetfile_fltk__.m
│ │ │ ├── __uiobject_split_args__.m
│ │ │ └── __uiputfile_fltk__.m
│ │ ├── questdlg.m
│ │ ├── rmappdata.m
│ │ ├── setappdata.m
│ │ ├── uibuttongroup.m
│ │ ├── uicontextmenu.m
│ │ ├── uicontrol.m
│ │ ├── uifigure.m
│ │ ├── uigetdir.m
│ │ ├── uigetfile.m
│ │ ├── uimenu.m
│ │ ├── uipanel.m
│ │ ├── uipushtool.m
│ │ ├── uiputfile.m
│ │ ├── uiresume.m
│ │ ├── uisetfont.m
│ │ ├── uitable.m
│ │ ├── uitoggletool.m
│ │ ├── uitoolbar.m
│ │ ├── uiwait.m
│ │ ├── waitbar.m
│ │ ├── waitforbuttonpress.m
│ │ └── warndlg.m
│ ├── help/
│ │ ├── .oct-config
│ │ ├── __gripe_missing_component__.m
│ │ ├── __makeinfo__.m
│ │ ├── __unimplemented__.m
│ │ ├── ans.m
│ │ ├── bessel.m
│ │ ├── debug.m
│ │ ├── doc.m
│ │ ├── doc_cache_create.m
│ │ ├── error_ids.m
│ │ ├── get_first_help_sentence.m
│ │ ├── help.m
│ │ ├── lookfor.m
│ │ ├── module.mk
│ │ ├── print_usage.m
│ │ ├── private/
│ │ │ ├── __additional_help_message__.m
│ │ │ └── __strip_html_tags__.m
│ │ ├── slash.m
│ │ ├── type.m
│ │ ├── warning_ids.m
│ │ └── which.m
│ ├── image/
│ │ ├── .oct-config
│ │ ├── autumn.m
│ │ ├── bone.m
│ │ ├── brighten.m
│ │ ├── cmpermute.m
│ │ ├── cmunique.m
│ │ ├── colorcube.m
│ │ ├── colormap.m
│ │ ├── contrast.m
│ │ ├── cool.m
│ │ ├── copper.m
│ │ ├── cubehelix.m
│ │ ├── default.img
│ │ ├── dither.m
│ │ ├── flag.m
│ │ ├── frame2im.m
│ │ ├── getframe.m
│ │ ├── gray.m
│ │ ├── gray2ind.m
│ │ ├── hot.m
│ │ ├── hsv.m
│ │ ├── hsv2rgb.m
│ │ ├── im2double.m
│ │ ├── im2frame.m
│ │ ├── image.m
│ │ ├── imagesc.m
│ │ ├── imfinfo.m
│ │ ├── imformats.m
│ │ ├── imread.m
│ │ ├── imshow.m
│ │ ├── imwrite.m
│ │ ├── ind2gray.m
│ │ ├── ind2rgb.m
│ │ ├── iscolormap.m
│ │ ├── jet.m
│ │ ├── lines.m
│ │ ├── module.mk
│ │ ├── movie.m
│ │ ├── ocean.m
│ │ ├── pink.m
│ │ ├── prism.m
│ │ ├── private/
│ │ │ ├── __imfinfo__.m
│ │ │ ├── __imread__.m
│ │ │ ├── __imwrite__.m
│ │ │ ├── colorspace_conversion_input_check.m
│ │ │ ├── colorspace_conversion_revert.m
│ │ │ ├── imageIO.m
│ │ │ ├── imwrite_filename.m
│ │ │ └── ind2x.m
│ │ ├── rainbow.m
│ │ ├── rgb2gray.m
│ │ ├── rgb2hsv.m
│ │ ├── rgb2ind.m
│ │ ├── rgbplot.m
│ │ ├── spinmap.m
│ │ ├── spring.m
│ │ ├── summer.m
│ │ ├── turbo.m
│ │ ├── viridis.m
│ │ ├── white.m
│ │ └── winter.m
│ ├── io/
│ │ ├── .oct-config
│ │ ├── beep.m
│ │ ├── csvread.m
│ │ ├── csvwrite.m
│ │ ├── dlmwrite.m
│ │ ├── fileread.m
│ │ ├── importdata.m
│ │ ├── is_valid_file_id.m
│ │ └── module.mk
│ ├── java/
│ │ ├── .oct-config
│ │ ├── javaArray.m
│ │ ├── java_get.m
│ │ ├── java_set.m
│ │ ├── javaaddpath.m
│ │ ├── javachk.m
│ │ ├── javaclasspath.m
│ │ ├── javamem.m
│ │ ├── javarmpath.m
│ │ ├── module.mk
│ │ ├── org/
│ │ │ └── octave/
│ │ │ ├── ClassHelper.java
│ │ │ ├── Matrix.java
│ │ │ ├── OctClassLoader.java
│ │ │ ├── Octave.java
│ │ │ └── OctaveReference.java
│ │ └── usejava.m
│ ├── legacy/
│ │ ├── .oct-config
│ │ ├── @inline/
│ │ │ ├── argnames.m
│ │ │ ├── cat.m
│ │ │ ├── char.m
│ │ │ ├── disp.m
│ │ │ ├── exist.m
│ │ │ ├── feval.m
│ │ │ ├── formula.m
│ │ │ ├── horzcat.m
│ │ │ ├── inline.m
│ │ │ ├── module.mk
│ │ │ ├── nargin.m
│ │ │ ├── nargout.m
│ │ │ ├── subsref.m
│ │ │ ├── symvar.m
│ │ │ ├── vectorize.m
│ │ │ └── vertcat.m
│ │ ├── __vectorize__.m
│ │ ├── caxis.m
│ │ ├── findstr.m
│ │ ├── flipdim.m
│ │ ├── genvarname.m
│ │ ├── isdir.m
│ │ ├── isequalwithequalnans.m
│ │ ├── isstr.m
│ │ ├── maxNumCompThreads.m
│ │ ├── module.mk
│ │ ├── setstr.m
│ │ ├── strmatch.m
│ │ ├── strread.m
│ │ ├── textread.m
│ │ └── vectorize.m
│ ├── linear-algebra/
│ │ ├── .oct-config
│ │ ├── bandwidth.m
│ │ ├── commutation_matrix.m
│ │ ├── cond.m
│ │ ├── condeig.m
│ │ ├── condest.m
│ │ ├── cross.m
│ │ ├── duplication_matrix.m
│ │ ├── expm.m
│ │ ├── funm.m
│ │ ├── gls.m
│ │ ├── housh.m
│ │ ├── isbanded.m
│ │ ├── isdefinite.m
│ │ ├── isdiag.m
│ │ ├── ishermitian.m
│ │ ├── issymmetric.m
│ │ ├── istril.m
│ │ ├── istriu.m
│ │ ├── krylov.m
│ │ ├── linsolve.m
│ │ ├── logm.m
│ │ ├── lscov.m
│ │ ├── module.mk
│ │ ├── normest.m
│ │ ├── normest1.m
│ │ ├── null.m
│ │ ├── ols.m
│ │ ├── ordeig.m
│ │ ├── orth.m
│ │ ├── planerot.m
│ │ ├── qzhess.m
│ │ ├── rank.m
│ │ ├── rref.m
│ │ ├── subspace.m
│ │ ├── tensorprod.m
│ │ ├── trace.m
│ │ ├── vech.m
│ │ └── vecnorm.m
│ ├── miscellaneous/
│ │ ├── .oct-config
│ │ ├── bug_report.m
│ │ ├── bunzip2.m
│ │ ├── cast.m
│ │ ├── citation.m
│ │ ├── clearAllMemoizedCaches.m
│ │ ├── clearvars.m
│ │ ├── compare_versions.m
│ │ ├── computer.m
│ │ ├── copyfile.m
│ │ ├── delete.m
│ │ ├── dir.m
│ │ ├── dos.m
│ │ ├── edit.m
│ │ ├── fieldnames.m
│ │ ├── fileattrib.m
│ │ ├── fileparts.m
│ │ ├── fullfile.m
│ │ ├── getfield.m
│ │ ├── grabcode.m
│ │ ├── gunzip.m
│ │ ├── info.m
│ │ ├── inputParser.m
│ │ ├── isdeployed.m
│ │ ├── isfile.m
│ │ ├── isfolder.m
│ │ ├── ismac.m
│ │ ├── ismethod.m
│ │ ├── ispc.m
│ │ ├── isunix.m
│ │ ├── jupyter_notebook.m
│ │ ├── license.m
│ │ ├── list_primes.m
│ │ ├── loadobj.m
│ │ ├── ls.m
│ │ ├── ls_command.m
│ │ ├── memoize.m
│ │ ├── memory.m
│ │ ├── menu.m
│ │ ├── methods.m
│ │ ├── mex.m
│ │ ├── mexext.m
│ │ ├── mkdir.m
│ │ ├── mkoctfile.m
│ │ ├── module.mk
│ │ ├── movefile.m
│ │ ├── mustBeFinite.m
│ │ ├── mustBeGreaterThan.m
│ │ ├── mustBeGreaterThanOrEqual.m
│ │ ├── mustBeInteger.m
│ │ ├── mustBeLessThan.m
│ │ ├── mustBeLessThanOrEqual.m
│ │ ├── mustBeMember.m
│ │ ├── mustBeNegative.m
│ │ ├── mustBeNonNan.m
│ │ ├── mustBeNonempty.m
│ │ ├── mustBeNonnegative.m
│ │ ├── mustBeNonpositive.m
│ │ ├── mustBeNonsparse.m
│ │ ├── mustBeNonzero.m
│ │ ├── mustBeNumeric.m
│ │ ├── mustBeNumericOrLogical.m
│ │ ├── mustBePositive.m
│ │ ├── mustBeReal.m
│ │ ├── namedargs2cell.m
│ │ ├── namelengthmax.m
│ │ ├── nargchk.m
│ │ ├── narginchk.m
│ │ ├── nargoutchk.m
│ │ ├── news.m
│ │ ├── nthargout.m
│ │ ├── open.m
│ │ ├── orderfields.m
│ │ ├── pack.m
│ │ ├── parseparams.m
│ │ ├── perl.m
│ │ ├── private/
│ │ │ ├── __memoize__.m
│ │ │ ├── __publish_html_output__.m
│ │ │ ├── __publish_latex_output__.m
│ │ │ ├── __w2mpth__.m
│ │ │ ├── display_info_file.m
│ │ │ └── tar_is_bsd.m
│ │ ├── publish.m
│ │ ├── python.m
│ │ ├── recycle.m
│ │ ├── run.m
│ │ ├── saveobj.m
│ │ ├── setfield.m
│ │ ├── substruct.m
│ │ ├── swapbytes.m
│ │ ├── symvar.m
│ │ ├── tar.m
│ │ ├── unix.m
│ │ ├── unpack.m
│ │ ├── untar.m
│ │ ├── unzip.m
│ │ ├── validateattributes.m
│ │ ├── ver.m
│ │ ├── verLessThan.m
│ │ ├── version.m
│ │ ├── what.m
│ │ └── zip.m
│ ├── mk-doc.pl
│ ├── mk-pkg-add.sh
│ ├── module.mk
│ ├── ode/
│ │ ├── .oct-config
│ │ ├── decic.m
│ │ ├── module.mk
│ │ ├── ode15i.m
│ │ ├── ode15s.m
│ │ ├── ode23.m
│ │ ├── ode23s.m
│ │ ├── ode45.m
│ │ ├── odeget.m
│ │ ├── odeplot.m
│ │ ├── odeset.m
│ │ └── private/
│ │ ├── AbsRel_norm.m
│ │ ├── check_default_input.m
│ │ ├── integrate_adaptive.m
│ │ ├── kahan.m
│ │ ├── ode_event_handler.m
│ │ ├── odedefaults.m
│ │ ├── odemergeopts.m
│ │ ├── runge_kutta_23.m
│ │ ├── runge_kutta_23s.m
│ │ ├── runge_kutta_45_dorpri.m
│ │ ├── runge_kutta_interpolate.m
│ │ └── starting_stepsize.m
│ ├── optimization/
│ │ ├── .oct-config
│ │ ├── __all_opts__.m
│ │ ├── fminbnd.m
│ │ ├── fminsearch.m
│ │ ├── fminunc.m
│ │ ├── fsolve.m
│ │ ├── fzero.m
│ │ ├── glpk.m
│ │ ├── humps.m
│ │ ├── lsqnonneg.m
│ │ ├── module.mk
│ │ ├── optimget.m
│ │ ├── optimset.m
│ │ ├── pqpnonneg.m
│ │ ├── private/
│ │ │ └── __fdjac__.m
│ │ ├── qp.m
│ │ └── sqp.m
│ ├── path/
│ │ ├── .oct-config
│ │ ├── import.m
│ │ ├── matlabroot.m
│ │ ├── module.mk
│ │ ├── pathdef.m
│ │ ├── private/
│ │ │ └── getsavepath.m
│ │ └── savepath.m
│ ├── pkg/
│ │ ├── .oct-config
│ │ ├── module.mk
│ │ ├── pkg.m
│ │ └── private/
│ │ ├── build.m
│ │ ├── configure_make.m
│ │ ├── convert_possible_cell_to_struct.m
│ │ ├── default_prefix.m
│ │ ├── describe.m
│ │ ├── dirempty.m
│ │ ├── expand_rel_paths.m
│ │ ├── get_description.m
│ │ ├── get_inverse_dependencies.m
│ │ ├── get_pkg_info.m
│ │ ├── get_unsatisfied_deps.m
│ │ ├── get_validated_pkg_list.m
│ │ ├── getarch.m
│ │ ├── getarchdir.m
│ │ ├── install.m
│ │ ├── installed_packages.m
│ │ ├── load_packages.m
│ │ ├── load_packages_and_dependencies.m
│ │ ├── make_rel_paths.m
│ │ ├── rebuild.m
│ │ ├── save_order.m
│ │ ├── search_packages.m
│ │ ├── standardize_paths.m
│ │ ├── uninstall.m
│ │ └── unload_packages.m
│ ├── plot/
│ │ ├── appearance/
│ │ │ ├── .oct-config
│ │ │ ├── __clabel__.m
│ │ │ ├── __getlegenddata__.m
│ │ │ ├── __rotate_around_axis__.m
│ │ │ ├── annotation.m
│ │ │ ├── axis.m
│ │ │ ├── box.m
│ │ │ ├── camlookat.m
│ │ │ ├── camorbit.m
│ │ │ ├── campos.m
│ │ │ ├── camroll.m
│ │ │ ├── camtarget.m
│ │ │ ├── camup.m
│ │ │ ├── camva.m
│ │ │ ├── camzoom.m
│ │ │ ├── clabel.m
│ │ │ ├── clim.m
│ │ │ ├── daspect.m
│ │ │ ├── datetick.m
│ │ │ ├── diffuse.m
│ │ │ ├── grid.m
│ │ │ ├── gtext.m
│ │ │ ├── hidden.m
│ │ │ ├── legend.m
│ │ │ ├── lighting.m
│ │ │ ├── material.m
│ │ │ ├── module.mk
│ │ │ ├── orient.m
│ │ │ ├── pbaspect.m
│ │ │ ├── private/
│ │ │ │ ├── __axis_label__.m
│ │ │ │ ├── __axis_limits__.m
│ │ │ │ ├── __gnuplot_legend__.m
│ │ │ │ └── __tickangle__.m
│ │ │ ├── rticklabels.m
│ │ │ ├── rticks.m
│ │ │ ├── shading.m
│ │ │ ├── specular.m
│ │ │ ├── text.m
│ │ │ ├── thetaticklabels.m
│ │ │ ├── thetaticks.m
│ │ │ ├── title.m
│ │ │ ├── view.m
│ │ │ ├── whitebg.m
│ │ │ ├── xlabel.m
│ │ │ ├── xlim.m
│ │ │ ├── xtickangle.m
│ │ │ ├── xticklabels.m
│ │ │ ├── xticks.m
│ │ │ ├── ylabel.m
│ │ │ ├── ylim.m
│ │ │ ├── ytickangle.m
│ │ │ ├── yticklabels.m
│ │ │ ├── yticks.m
│ │ │ ├── zlabel.m
│ │ │ ├── zlim.m
│ │ │ ├── ztickangle.m
│ │ │ ├── zticklabels.m
│ │ │ └── zticks.m
│ │ ├── draw/
│ │ │ ├── .oct-config
│ │ │ ├── area.m
│ │ │ ├── bar.m
│ │ │ ├── barh.m
│ │ │ ├── camlight.m
│ │ │ ├── colorbar.m
│ │ │ ├── comet.m
│ │ │ ├── comet3.m
│ │ │ ├── compass.m
│ │ │ ├── contour.m
│ │ │ ├── contour3.m
│ │ │ ├── contourc.m
│ │ │ ├── contourf.m
│ │ │ ├── cylinder.m
│ │ │ ├── ellipsoid.m
│ │ │ ├── errorbar.m
│ │ │ ├── ezcontour.m
│ │ │ ├── ezcontourf.m
│ │ │ ├── ezmesh.m
│ │ │ ├── ezmeshc.m
│ │ │ ├── ezplot.m
│ │ │ ├── ezplot3.m
│ │ │ ├── ezpolar.m
│ │ │ ├── ezsurf.m
│ │ │ ├── ezsurfc.m
│ │ │ ├── feather.m
│ │ │ ├── fill.m
│ │ │ ├── fill3.m
│ │ │ ├── fplot.m
│ │ │ ├── hist.m
│ │ │ ├── isocaps.m
│ │ │ ├── isocolors.m
│ │ │ ├── isonormals.m
│ │ │ ├── isosurface.m
│ │ │ ├── light.m
│ │ │ ├── lightangle.m
│ │ │ ├── line.m
│ │ │ ├── loglog.m
│ │ │ ├── loglogerr.m
│ │ │ ├── mesh.m
│ │ │ ├── meshc.m
│ │ │ ├── meshz.m
│ │ │ ├── module.mk
│ │ │ ├── ostreamtube.m
│ │ │ ├── pareto.m
│ │ │ ├── patch.m
│ │ │ ├── pcolor.m
│ │ │ ├── peaks.m
│ │ │ ├── pie.m
│ │ │ ├── pie3.m
│ │ │ ├── plot.m
│ │ │ ├── plot3.m
│ │ │ ├── plotmatrix.m
│ │ │ ├── plotyy.m
│ │ │ ├── polar.m
│ │ │ ├── private/
│ │ │ │ ├── __add_datasource__.m
│ │ │ │ ├── __bar__.m
│ │ │ │ ├── __calc_isovalue_from_data__.m
│ │ │ │ ├── __contour__.m
│ │ │ │ ├── __errplot__.m
│ │ │ │ ├── __ezplot__.m
│ │ │ │ ├── __gnuplot_scatter__.m
│ │ │ │ ├── __interp_cube__.m
│ │ │ │ ├── __line__.m
│ │ │ │ ├── __marching_cube__.m
│ │ │ │ ├── __patch__.m
│ │ │ │ ├── __pie__.m
│ │ │ │ ├── __plt__.m
│ │ │ │ ├── __quiver__.m
│ │ │ │ ├── __scatter__.m
│ │ │ │ ├── __stem__.m
│ │ │ │ └── __unite_shared_vertices__.m
│ │ │ ├── quiver.m
│ │ │ ├── quiver3.m
│ │ │ ├── rectangle.m
│ │ │ ├── reducepatch.m
│ │ │ ├── reducevolume.m
│ │ │ ├── ribbon.m
│ │ │ ├── rose.m
│ │ │ ├── scatter.m
│ │ │ ├── scatter3.m
│ │ │ ├── semilogx.m
│ │ │ ├── semilogxerr.m
│ │ │ ├── semilogy.m
│ │ │ ├── semilogyerr.m
│ │ │ ├── shrinkfaces.m
│ │ │ ├── slice.m
│ │ │ ├── smooth3.m
│ │ │ ├── sombrero.m
│ │ │ ├── sphere.m
│ │ │ ├── stairs.m
│ │ │ ├── stem.m
│ │ │ ├── stem3.m
│ │ │ ├── stemleaf.m
│ │ │ ├── stream2.m
│ │ │ ├── stream3.m
│ │ │ ├── streamline.m
│ │ │ ├── streamribbon.m
│ │ │ ├── streamtube.m
│ │ │ ├── surf.m
│ │ │ ├── surface.m
│ │ │ ├── surfc.m
│ │ │ ├── surfl.m
│ │ │ ├── surfnorm.m
│ │ │ ├── tetramesh.m
│ │ │ ├── trimesh.m
│ │ │ ├── triplot.m
│ │ │ ├── trisurf.m
│ │ │ ├── waterfall.m
│ │ │ ├── xline.m
│ │ │ └── yline.m
│ │ └── util/
│ │ ├── .oct-config
│ │ ├── __actual_axis_position__.m
│ │ ├── __check_rendering_capability__.m
│ │ ├── __default_plot_options__.m
│ │ ├── __gnuplot_drawnow__.m
│ │ ├── __next_line_color__.m
│ │ ├── __next_line_style__.m
│ │ ├── __opengl_info__.m
│ │ ├── __plt_get_axis_arg__.m
│ │ ├── __pltopt__.m
│ │ ├── allchild.m
│ │ ├── ancestor.m
│ │ ├── axes.m
│ │ ├── cla.m
│ │ ├── clf.m
│ │ ├── close.m
│ │ ├── closereq.m
│ │ ├── colstyle.m
│ │ ├── copyobj.m
│ │ ├── figure.m
│ │ ├── findall.m
│ │ ├── findfigs.m
│ │ ├── findobj.m
│ │ ├── gca.m
│ │ ├── gcbf.m
│ │ ├── gcbo.m
│ │ ├── gcf.m
│ │ ├── gco.m
│ │ ├── ginput.m
│ │ ├── gnuplot_binary.in.m
│ │ ├── graphics_toolkit.m
│ │ ├── groot.m
│ │ ├── gui_mainfcn.m
│ │ ├── hdl2struct.m
│ │ ├── hggroup.m
│ │ ├── hgload.m
│ │ ├── hgsave.m
│ │ ├── hgtransform.m
│ │ ├── hold.m
│ │ ├── isaxes.m
│ │ ├── isfigure.m
│ │ ├── isgraphics.m
│ │ ├── ishandle.m
│ │ ├── ishold.m
│ │ ├── isprop.m
│ │ ├── linkaxes.m
│ │ ├── linkprop.m
│ │ ├── meshgrid.m
│ │ ├── module.mk
│ │ ├── ndgrid.m
│ │ ├── newplot.m
│ │ ├── openfig.m
│ │ ├── pan.m
│ │ ├── print.m
│ │ ├── printd.m
│ │ ├── private/
│ │ │ ├── __add_default_menu__.m
│ │ │ ├── __ghostscript__.m
│ │ │ ├── __gnuplot_draw_axes__.m
│ │ │ ├── __gnuplot_draw_figure__.m
│ │ │ ├── __gnuplot_get_var__.m
│ │ │ ├── __gnuplot_ginput__.m
│ │ │ ├── __gnuplot_has_feature__.m
│ │ │ ├── __gnuplot_has_terminal__.m
│ │ │ ├── __gnuplot_open_stream__.m
│ │ │ ├── __gnuplot_print__.m
│ │ │ ├── __gnuplot_version__.m
│ │ │ ├── __opengl_print__.m
│ │ │ ├── __print_parse_opts__.m
│ │ │ └── __set_default_mouse_modes__.m
│ │ ├── refresh.m
│ │ ├── refreshdata.m
│ │ ├── rotate.m
│ │ ├── rotate3d.m
│ │ ├── saveas.m
│ │ ├── savefig.m
│ │ ├── shg.m
│ │ ├── struct2hdl.m
│ │ ├── subplot.m
│ │ └── zoom.m
│ ├── polynomial/
│ │ ├── .oct-config
│ │ ├── compan.m
│ │ ├── conv.m
│ │ ├── deconv.m
│ │ ├── mkpp.m
│ │ ├── module.mk
│ │ ├── mpoles.m
│ │ ├── padecoef.m
│ │ ├── pchip.m
│ │ ├── poly.m
│ │ ├── polyaffine.m
│ │ ├── polyder.m
│ │ ├── polyeig.m
│ │ ├── polyfit.m
│ │ ├── polygcd.m
│ │ ├── polyint.m
│ │ ├── polyout.m
│ │ ├── polyreduce.m
│ │ ├── polyval.m
│ │ ├── polyvalm.m
│ │ ├── ppder.m
│ │ ├── ppint.m
│ │ ├── ppjumps.m
│ │ ├── ppval.m
│ │ ├── private/
│ │ │ └── __splinefit__.m
│ │ ├── residue.m
│ │ ├── roots.m
│ │ ├── spline.m
│ │ ├── splinefit.m
│ │ └── unmkpp.m
│ ├── prefs/
│ │ ├── .oct-config
│ │ ├── addpref.m
│ │ ├── getpref.m
│ │ ├── ispref.m
│ │ ├── module.mk
│ │ ├── prefdir.m
│ │ ├── preferences.m
│ │ ├── private/
│ │ │ ├── loadprefs.m
│ │ │ ├── prefsfile.m
│ │ │ └── saveprefs.m
│ │ ├── rmpref.m
│ │ └── setpref.m
│ ├── profiler/
│ │ ├── .oct-config
│ │ ├── html/
│ │ │ ├── flat-entry.html
│ │ │ ├── flat.html
│ │ │ ├── function.html
│ │ │ ├── hierarchical-entry.html
│ │ │ ├── hierarchical.html
│ │ │ └── style.css
│ │ ├── module.mk
│ │ ├── profexplore.m
│ │ ├── profexport.m
│ │ ├── profile.m
│ │ └── profshow.m
│ ├── set/
│ │ ├── .oct-config
│ │ ├── intersect.m
│ │ ├── ismember.m
│ │ ├── ismembertol.m
│ │ ├── module.mk
│ │ ├── powerset.m
│ │ ├── private/
│ │ │ └── validsetargs.m
│ │ ├── setdiff.m
│ │ ├── setxor.m
│ │ ├── union.m
│ │ ├── unique.m
│ │ └── uniquetol.m
│ ├── signal/
│ │ ├── .oct-config
│ │ ├── __parse_movargs__.m
│ │ ├── arch_fit.m
│ │ ├── arch_rnd.m
│ │ ├── arch_test.m
│ │ ├── arma_rnd.m
│ │ ├── autoreg_matrix.m
│ │ ├── bartlett.m
│ │ ├── blackman.m
│ │ ├── detrend.m
│ │ ├── diffpara.m
│ │ ├── durbinlevinson.m
│ │ ├── fftconv.m
│ │ ├── fftfilt.m
│ │ ├── fftshift.m
│ │ ├── filter2.m
│ │ ├── fractdiff.m
│ │ ├── freqz.m
│ │ ├── freqz_plot.m
│ │ ├── hamming.m
│ │ ├── hanning.m
│ │ ├── hurst.m
│ │ ├── ifftshift.m
│ │ ├── module.mk
│ │ ├── movfun.m
│ │ ├── movslice.m
│ │ ├── periodogram.m
│ │ ├── private/
│ │ │ ├── rectangle_lw.m
│ │ │ ├── rectangle_sw.m
│ │ │ ├── triangle_lw.m
│ │ │ └── triangle_sw.m
│ │ ├── sinc.m
│ │ ├── sinetone.m
│ │ ├── sinewave.m
│ │ ├── spectral_adf.m
│ │ ├── spectral_xdf.m
│ │ ├── spencer.m
│ │ ├── stft.m
│ │ ├── synthesis.m
│ │ ├── unwrap.m
│ │ └── yulewalker.m
│ ├── sparse/
│ │ ├── .oct-config
│ │ ├── bicg.m
│ │ ├── bicgstab.m
│ │ ├── cgs.m
│ │ ├── colperm.m
│ │ ├── eigs.m
│ │ ├── etreeplot.m
│ │ ├── gmres.m
│ │ ├── gplot.m
│ │ ├── ichol.m
│ │ ├── ilu.m
│ │ ├── module.mk
│ │ ├── nonzeros.m
│ │ ├── pcg.m
│ │ ├── pcr.m
│ │ ├── private/
│ │ │ ├── __alltohandles__.m
│ │ │ ├── __default__input__.m
│ │ │ └── __sprand__.m
│ │ ├── qmr.m
│ │ ├── spaugment.m
│ │ ├── spconvert.m
│ │ ├── spdiags.m
│ │ ├── speye.m
│ │ ├── spfun.m
│ │ ├── spones.m
│ │ ├── sprand.m
│ │ ├── sprandn.m
│ │ ├── sprandsym.m
│ │ ├── spstats.m
│ │ ├── spy.m
│ │ ├── svds.m
│ │ ├── tfqmr.m
│ │ ├── treelayout.m
│ │ └── treeplot.m
│ ├── specfun/
│ │ ├── .oct-config
│ │ ├── beta.m
│ │ ├── betainc.m
│ │ ├── betaincinv.m
│ │ ├── betaln.m
│ │ ├── cosint.m
│ │ ├── ellipke.m
│ │ ├── expint.m
│ │ ├── factor.m
│ │ ├── factorial.m
│ │ ├── gammainc.m
│ │ ├── gammaincinv.m
│ │ ├── isprime.m
│ │ ├── lcm.m
│ │ ├── legendre.m
│ │ ├── module.mk
│ │ ├── nchoosek.m
│ │ ├── nthroot.m
│ │ ├── primes.m
│ │ ├── reallog.m
│ │ ├── realpow.m
│ │ ├── realsqrt.m
│ │ └── sinint.m
│ ├── special-matrix/
│ │ ├── .oct-config
│ │ ├── gallery.m
│ │ ├── hadamard.m
│ │ ├── hankel.m
│ │ ├── hilb.m
│ │ ├── invhilb.m
│ │ ├── magic.m
│ │ ├── module.mk
│ │ ├── pascal.m
│ │ ├── rosser.m
│ │ ├── toeplitz.m
│ │ ├── vander.m
│ │ └── wilkinson.m
│ ├── startup/
│ │ ├── inputrc
│ │ ├── module.mk
│ │ ├── octave_packages
│ │ ├── site-rcfile
│ │ └── version-rcfile
│ ├── statistics/
│ │ ├── .oct-config
│ │ ├── bounds.m
│ │ ├── center.m
│ │ ├── corr.m
│ │ ├── corrcoef.m
│ │ ├── corrcov.m
│ │ ├── cov.m
│ │ ├── discrete_cdf.m
│ │ ├── discrete_inv.m
│ │ ├── discrete_pdf.m
│ │ ├── discrete_rnd.m
│ │ ├── empirical_cdf.m
│ │ ├── empirical_inv.m
│ │ ├── empirical_pdf.m
│ │ ├── empirical_rnd.m
│ │ ├── histc.m
│ │ ├── iqr.m
│ │ ├── kendall.m
│ │ ├── kurtosis.m
│ │ ├── mad.m
│ │ ├── mape.m
│ │ ├── mean.m
│ │ ├── meansq.m
│ │ ├── median.m
│ │ ├── mode.m
│ │ ├── module.mk
│ │ ├── moment.m
│ │ ├── movmad.m
│ │ ├── movmax.m
│ │ ├── movmean.m
│ │ ├── movmedian.m
│ │ ├── movmin.m
│ │ ├── movprod.m
│ │ ├── movstd.m
│ │ ├── movsum.m
│ │ ├── movvar.m
│ │ ├── normalize.m
│ │ ├── prctile.m
│ │ ├── quantile.m
│ │ ├── range.m
│ │ ├── ranks.m
│ │ ├── rms.m
│ │ ├── rmse.m
│ │ ├── run_count.m
│ │ ├── runlength.m
│ │ ├── skewness.m
│ │ ├── spearman.m
│ │ ├── statistics.m
│ │ ├── std.m
│ │ ├── var.m
│ │ └── zscore.m
│ ├── strings/
│ │ ├── .oct-config
│ │ ├── base2dec.m
│ │ ├── bin2dec.m
│ │ ├── blanks.m
│ │ ├── cstrcat.m
│ │ ├── deblank.m
│ │ ├── dec2base.m
│ │ ├── dec2bin.m
│ │ ├── dec2hex.m
│ │ ├── endsWith.m
│ │ ├── erase.m
│ │ ├── hex2dec.m
│ │ ├── index.m
│ │ ├── isletter.m
│ │ ├── isstring.m
│ │ ├── isstrprop.m
│ │ ├── mat2str.m
│ │ ├── module.mk
│ │ ├── native2unicode.m
│ │ ├── ostrsplit.m
│ │ ├── regexptranslate.m
│ │ ├── rindex.m
│ │ ├── startsWith.m
│ │ ├── str2num.m
│ │ ├── strcat.m
│ │ ├── strchr.m
│ │ ├── strjoin.m
│ │ ├── strjust.m
│ │ ├── strsplit.m
│ │ ├── strtok.m
│ │ ├── strtrim.m
│ │ ├── strtrunc.m
│ │ ├── substr.m
│ │ ├── unicode2native.m
│ │ ├── untabify.m
│ │ └── validatestring.m
│ ├── testfun/
│ │ ├── .oct-config
│ │ ├── __debug_octave__.m
│ │ ├── __have_feature__.m
│ │ ├── __printf_assert__.m
│ │ ├── __prog_output_assert__.m
│ │ ├── __run_test_suite__.m
│ │ ├── assert.m
│ │ ├── assert_equal.m
│ │ ├── demo.m
│ │ ├── example.m
│ │ ├── fail.m
│ │ ├── module.mk
│ │ ├── oruntests.m
│ │ ├── private/
│ │ │ ├── compare_plot_demos.m
│ │ │ ├── dump_demos.m
│ │ │ ├── html-plot-demos-template.html
│ │ │ └── html_compare_plot_demos.m
│ │ ├── rundemos.m
│ │ ├── speed.m
│ │ └── test.m
│ ├── time/
│ │ ├── .oct-config
│ │ ├── addtodate.m
│ │ ├── asctime.m
│ │ ├── calendar.m
│ │ ├── clock.m
│ │ ├── ctime.m
│ │ ├── date.m
│ │ ├── datenum.m
│ │ ├── datestr.m
│ │ ├── datevec.m
│ │ ├── eomday.m
│ │ ├── etime.m
│ │ ├── is_leap_year.m
│ │ ├── module.mk
│ │ ├── now.m
│ │ └── weekday.m
│ └── web/
│ ├── .oct-config
│ ├── module.mk
│ ├── web.m
│ ├── weboptions.m
│ ├── webread.m
│ └── webwrite.m
├── src/
│ ├── display-available.c
│ ├── display-available.h
│ ├── main-cli.cc
│ ├── main-gui.cc
│ ├── main.in.cc
│ ├── mkoctfile.in.cc
│ ├── module.mk
│ ├── octave-build-info.h
│ ├── octave-build-info.in.cc
│ ├── octave-config.in.cc
│ ├── octave-qsvghandler.h
│ ├── octave-svgconvert.cc
│ ├── shared-fcns.h
│ └── shared-sysdep.h
└── test/
├── Makefile.am
├── anonymous-function.tst
├── args.tst
├── bc-overloads-expected
├── bug-31371.tst
├── bug-35448/
│ ├── bug-35448.tst
│ ├── fA.m
│ ├── fB.m
│ ├── fC.m
│ └── module.mk
├── bug-35881/
│ ├── bug-35881.tst
│ ├── bug35881.m
│ └── module.mk
├── bug-36025/
│ ├── @testclass/
│ │ ├── one.m
│ │ ├── testclass.m
│ │ └── two.m
│ ├── bug-36025.tst
│ └── module.mk
├── bug-38236/
│ ├── bug-38236.tst
│ ├── df_vr.m
│ ├── module.mk
│ └── u_vr.m
├── bug-38691/
│ ├── bug-38691.tst
│ ├── dir1/
│ │ └── func1.m
│ ├── dir2/
│ │ ├── func1.m
│ │ ├── func2.m
│ │ └── func3.m
│ └── module.mk
├── bug-40117.tst
├── bug-41723/
│ ├── bug-41723.tst
│ ├── class_bug41723.m
│ └── module.mk
├── bug-44643/
│ ├── bug-44643.tst
│ ├── bug44643.m
│ └── module.mk
├── bug-44940/
│ ├── bug-44940.tst
│ ├── class_bug44940.m
│ └── module.mk
├── bug-45351/
│ ├── bug-45351.tst
│ ├── bug45351.m
│ └── module.mk
├── bug-45969.tst
├── bug-45972.tst
├── bug-46330.tst
├── bug-46660/
│ ├── bug-46660.tst
│ ├── class_bug46660.m
│ └── module.mk
├── bug-47680/
│ ├── bug-47680.tst
│ ├── module.mk
│ ├── sub_bug47680.m
│ └── super_bug47680.m
├── bug-48693/
│ ├── bug-48693.tst
│ ├── bug48693.m
│ └── module.mk
├── bug-49379/
│ ├── bug-49379.tst
│ ├── class_bug49379.m
│ └── module.mk
├── bug-49904.tst
├── bug-50014/
│ ├── bug-50014.tst
│ ├── duplicate_nested_function.m
│ ├── duplicate_nested_in_subfunction_ok.m
│ ├── duplicate_nested_parent_function.m
│ ├── duplicate_parent_nested2.m
│ ├── duplicate_parent_nested_function.m
│ ├── duplicate_primary_nested_function.m
│ ├── duplicate_primary_subfunction.m
│ ├── duplicate_primary_subfunction_old_syntax.m
│ ├── duplicate_subfunction.m
│ ├── duplicate_subfunction_old_syntax.m
│ ├── duplicate_subfunction_separate_scope_ok.m
│ └── module.mk
├── bug-50035/
│ ├── @bug50035/
│ │ ├── bug50035.m
│ │ └── display.m
│ ├── bug-50035.tst
│ └── module.mk
├── bug-50395/
│ ├── bug-50395.tst
│ ├── bug50395_a.m
│ ├── bug50395_c.m
│ └── module.mk
├── bug-50716/
│ ├── bug-50716.tst
│ ├── module.mk
│ └── myclass.m
├── bug-50831/
│ ├── bug-50831.tst
│ └── module.mk
├── bug-51192/
│ ├── bug-51192.tst
│ ├── class_bug51192.m
│ └── module.mk
├── bug-51532/
│ ├── +package_bug51532/
│ │ └── foo.m
│ ├── bug-51532.tst
│ └── module.mk
├── bug-51534/
│ ├── bug-51534.tst
│ ├── child_bug51534.m
│ ├── module.mk
│ └── parent_bug51534.m
├── bug-51599/
│ ├── bug-51599.tst
│ ├── class_bug51599.m
│ └── module.mk
├── bug-52075/
│ ├── bug-52075.tst
│ ├── class_bug52075.m
│ └── module.mk
├── bug-52722/
│ ├── bug-52722.tst
│ ├── define_globals.m
│ ├── include_globals.m
│ └── module.mk
├── bug-52851/
│ ├── bug-52851.tst
│ ├── module.mk
│ ├── script1.m
│ ├── script2.m
│ ├── script3.m
│ └── script4.m
├── bug-53027/
│ ├── bug-53027.tst
│ ├── globals53027.m
│ ├── gtest53027.m
│ ├── module.mk
│ ├── ntest53027a.m
│ ├── ntest53027b.m
│ └── ntest53027c.m
├── bug-53468/
│ ├── bug-53468.tst
│ ├── module.mk
│ ├── ofig403.ofig
│ ├── ofig421.ofig
│ └── ofig51.ofig
├── bug-53579.tst
├── bug-53599.tst
├── bug-53956/
│ ├── bug-53956.tst
│ ├── bug53956_class_2.m
│ ├── bug53956_class_3.m
│ ├── bug53956_class_4.m
│ └── module.mk
├── bug-54490.tst
├── bug-54995/
│ ├── @testclass54995/
│ │ ├── subsref.m
│ │ └── testclass54995.m
│ ├── bug-54995.tst
│ └── module.mk
├── bug-55308.tst
├── bug-55321.tst
├── bug-55322.tst
├── bug-55758/
│ ├── bug-55758.tst
│ ├── class_bug_55758.m
│ └── module.mk
├── bug-56068/
│ ├── bug-56068.tst
│ ├── bug_56068.m
│ └── module.mk
├── bug-58572/
│ ├── bug-58572.tst
│ ├── bug58572.m
│ └── module.mk
├── bug-58593/
│ ├── bug-58593.tst
│ ├── module.mk
│ ├── myclass1.m
│ └── myclass2.m
├── bug-59451/
│ ├── bug-59451.tst
│ ├── bug59451.m
│ ├── foo/
│ │ ├── @double/
│ │ │ └── bug59451.m
│ │ └── @single/
│ │ └── bug59451.m
│ └── module.mk
├── bug-59617/
│ ├── @bug59617/
│ │ ├── bug59617.m
│ │ └── max.m
│ ├── bug-59617.tst
│ └── module.mk
├── bug-59661/
│ ├── bug-59661.tst
│ ├── bug59661.m
│ └── module.mk
├── bug-59704/
│ ├── bug-59704.tst
│ ├── bug59704_1.m
│ ├── bug59704_1_test.m
│ ├── bug59704_2.m
│ └── module.mk
├── bug-59937/
│ ├── bug-59937.tst
│ ├── eval_global_script.m
│ └── module.mk
├── bug-59950.tst
├── bug-60237/
│ ├── bug-60237.tst
│ ├── bug_60237.m
│ └── module.mk
├── bug-60726/
│ ├── @class2_bug60726/
│ │ ├── class2_bug60726.m
│ │ └── subsref.m
│ ├── bug60726.tst
│ ├── class_bug60726.m
│ └── module.mk
├── bug-60882/
│ ├── bug-60882.tst
│ ├── bug_60882.m
│ └── module.mk
├── bug-61105/
│ ├── bug-61105.tst
│ ├── module.mk
│ ├── nested_test_1.m
│ ├── nested_test_2.m
│ └── nested_test_3.m
├── bug-61191/
│ ├── bug-61191.tst
│ ├── module.mk
│ └── subdir/
│ └── bug_61191.m
├── bug-61201.tst
├── bug-63841/
│ ├── @cls2_b63841/
│ │ ├── cls2_b63841.m
│ │ └── subsref.m
│ ├── bug-63841.tst
│ ├── cls_b63841.m
│ └── module.mk
├── bug-64620/
│ ├── bug-64620.tst
│ ├── bug_64620_1.m
│ ├── bug_64620_2.m
│ ├── cdef_counts_self.m
│ └── module.mk
├── bug-65037/
│ ├── bug-65037.tst
│ ├── bug65037_base.m
│ ├── bug65037_derived.m
│ └── module.mk
├── bug-65153.tst
├── bug-67096/
│ ├── bug-67096.tst
│ ├── class_bug67096.m
│ └── module.mk
├── bug-67403/
│ ├── bug-67403.tst
│ ├── class_bug67403.m
│ └── module.mk
├── bug-67964/
│ ├── bug-67964.tst
│ ├── foo1.mat
│ ├── foo2.mat
│ └── module.mk
├── class-concat/
│ ├── @foo/
│ │ └── foo.m
│ ├── class-concat.tst
│ └── module.mk
├── classdef/
│ ├── @class_bug62802/
│ │ ├── amethod.m
│ │ └── class_bug62802.m
│ ├── @class_bug67362/
│ │ ├── class_bug67362.m
│ │ └── shared_name.m
│ ├── @osc/
│ │ └── osc.m
│ ├── bug_60763.m
│ ├── cdef_array_break_cycles.m
│ ├── class_bug50011_1.m
│ ├── class_bug50011_1A.m
│ ├── class_bug50011_1B.m
│ ├── class_bug50011_2.m
│ ├── class_bug50011_2A.m
│ ├── class_bug50011_2B.m
│ ├── class_bug52614A.m
│ ├── class_bug52614B.m
│ ├── class_bug55766.m
│ ├── class_bug59775A.m
│ ├── class_bug59775B.m
│ ├── class_bug60723A.m
│ ├── class_bug60723B.m
│ ├── class_bug60723C.m
│ ├── class_bug66930A.m
│ ├── class_bug66930B.m
│ ├── class_bug67845A.m
│ ├── class_bug67845A_handle.m
│ ├── class_bug67845B.m
│ ├── class_bug67845B_handle.m
│ ├── class_bug67845C.m
│ ├── class_bug67845C_handle.m
│ ├── class_pair.m
│ ├── class_pair_elem.m
│ ├── class_pair_elem_dominant.m
│ ├── class_pair_elem_dominant_handle.m
│ ├── class_pair_elem_handle.m
│ ├── class_pair_handle.m
│ ├── classdef.tst
│ ├── foo_handle_class.m
│ ├── foo_method_changes_property_size.m
│ ├── foo_static_method_constant_property.m
│ ├── foo_subsref_subsasgn.m
│ ├── foo_value_class.m
│ ├── handle_class.m
│ ├── module.mk
│ ├── overloaded_all_class.m
│ ├── overloaded_all_class_handle.m
│ ├── overloaded_any_class.m
│ ├── overloaded_any_class_handle.m
│ ├── overloaded_cat_class.m
│ ├── overloaded_cat_class_handle.m
│ ├── overloaded_ctranspose_class.m
│ ├── overloaded_ctranspose_class_handle.m
│ ├── overloaded_horzcat_vertcat_class.m
│ ├── overloaded_horzcat_vertcat_class_handle.m
│ ├── overloaded_permute_class.m
│ ├── overloaded_permute_class_handle.m
│ ├── overloaded_sizeof_class.m
│ ├── overloaded_subsref.m
│ ├── overloaded_transpose_class.m
│ ├── overloaded_transpose_class_handle.m
│ ├── plist_t1.m
│ ├── plist_t2.m
│ ├── plist_t3.m
│ ├── struct_wrapper.m
│ ├── value_class.m
│ ├── value_class_reshape.m
│ └── value_class_subclass.m
├── classdef-debug/
│ ├── classdef_breakpoints.m
│ ├── classdef_breakpoints2.m
│ ├── module.mk
│ └── test-classdef-breakpoints.tst
├── classdef-load-save/
│ ├── changed-class/
│ │ └── loadobj_changed_class.m
│ ├── classdef-load-save-text.tst
│ ├── classdef-load-save-v6.tst
│ ├── classdef-load-save-v7.tst
│ ├── custom_saveobj.m
│ ├── invalid_saveobj_class.m
│ ├── loadobj_changed_class.m
│ ├── loadobj_class.m
│ ├── loadobj_saveobj_class.m
│ ├── module.mk
│ ├── regular_class.m
│ ├── regular_class_construct_on_load.m
│ ├── regular_class_with_constructor.m
│ ├── regular_handle_class.m
│ ├── saveobj_obj_class.m
│ ├── saveobj_struct_class.m
│ └── transient_property_class.m
├── classdef-multiple-inheritance/
│ ├── base_1.m
│ ├── base_2.m
│ ├── child_from_base_1.m
│ ├── child_from_base_1_and_2.m
│ ├── classdef-multiple-inheritance.tst
│ └── module.mk
├── classes/
│ ├── @Blork/
│ │ ├── Blork.m
│ │ ├── bleek.m
│ │ ├── display.m
│ │ ├── get.m
│ │ └── set.m
│ ├── @CPrecedenceTester1/
│ │ ├── CPrecedenceTester1.m
│ │ ├── double.m
│ │ ├── plus.m
│ │ └── tattack.m
│ ├── @CPrecedenceTester2/
│ │ ├── CPrecedenceTester2.m
│ │ ├── double.m
│ │ ├── plus.m
│ │ └── tattack.m
│ ├── @CPrecedenceTester3/
│ │ ├── CPrecedenceTester3.m
│ │ ├── double.m
│ │ ├── plus.m
│ │ └── tattack.m
│ ├── @Cork/
│ │ ├── Cork.m
│ │ ├── click.m
│ │ ├── display.m
│ │ ├── get.m
│ │ └── set.m
│ ├── @Dork/
│ │ ├── Dork.m
│ │ ├── bling.m
│ │ ├── display.m
│ │ ├── gack.m
│ │ ├── get.m
│ │ ├── getStash.m
│ │ ├── private/
│ │ │ └── myStash.m
│ │ └── set.m
│ ├── @Gork/
│ │ ├── Gork.m
│ │ ├── cork.m
│ │ ├── display.m
│ │ ├── gark.m
│ │ ├── get.m
│ │ ├── set.m
│ │ ├── subsasgn.m
│ │ └── subsref.m
│ ├── @Pork/
│ │ ├── Pork.m
│ │ ├── bling.m
│ │ ├── display.m
│ │ ├── get.m
│ │ ├── gurk.m
│ │ ├── private/
│ │ │ └── myStash.m
│ │ └── set.m
│ ├── @SizeTester/
│ │ ├── SizeTester.m
│ │ ├── numel.m
│ │ └── size.m
│ ├── @Sneetch/
│ │ ├── Sneetch.m
│ │ └── display.m
│ ├── @Snork/
│ │ ├── Snork.m
│ │ ├── cack.m
│ │ ├── ctranspose.m
│ │ ├── display.m
│ │ ├── double.m
│ │ ├── end.m
│ │ ├── eq.m
│ │ ├── ge.m
│ │ ├── get.m
│ │ ├── getStash.m
│ │ ├── gick.m
│ │ ├── gt.m
│ │ ├── horzcat.m
│ │ ├── ldivide.m
│ │ ├── le.m
│ │ ├── loadobj.m
│ │ ├── lt.m
│ │ ├── minus.m
│ │ ├── mldivide.m
│ │ ├── mpower.m
│ │ ├── mrdivide.m
│ │ ├── mtimes.m
│ │ ├── ne.m
│ │ ├── plus.m
│ │ ├── power.m
│ │ ├── private/
│ │ │ └── myStash.m
│ │ ├── rdivide.m
│ │ ├── saveobj.m
│ │ ├── set.m
│ │ ├── subsasgn.m
│ │ ├── subsindex.m
│ │ ├── subsref.m
│ │ ├── tattack.m
│ │ ├── times.m
│ │ ├── transpose.m
│ │ ├── uminus.m
│ │ ├── uplus.m
│ │ └── vertcat.m
│ ├── @Spork/
│ │ ├── Spork.m
│ │ ├── cack.m
│ │ ├── display.m
│ │ ├── geek.m
│ │ ├── get.m
│ │ ├── getStash.m
│ │ ├── loadobj.m
│ │ ├── private/
│ │ │ └── myStash.m
│ │ ├── saveobj.m
│ │ └── set.m
│ ├── classes.tst
│ └── module.mk
├── colon-op/
│ ├── @legacy_colon_op/
│ │ ├── colon.m
│ │ └── legacy_colon_op.m
│ ├── colon-op.tst
│ ├── colon_op.m
│ └── module.mk
├── colormaps.tst
├── command.tst
├── complex.tst
├── ctor-vs-method/
│ ├── @derived/
│ │ ├── derived.m
│ │ └── parent.m
│ ├── @other/
│ │ ├── other.m
│ │ └── parent.m
│ ├── @parent/
│ │ ├── method.m
│ │ └── parent.m
│ ├── __trace__.m
│ ├── ctor-vs-method.tst
│ └── module.mk
├── deprecate-props.tst
├── diag-perm.tst
├── error.tst
├── eval-catch.tst
├── eval-command.tst
├── fcn-handle/
│ ├── +pkga/
│ │ └── +pkgb/
│ │ ├── bug51709_a.m
│ │ ├── bug51709_b.m
│ │ ├── f1.m
│ │ └── f2.m
│ ├── @fhdr_derived/
│ │ └── fhdr_derived.m
│ ├── @fhdr_other/
│ │ ├── fhdr_other.m
│ │ ├── getsize_arrayfun.m
│ │ ├── getsize_cellfun.m
│ │ └── getsize_loop.m
│ ├── @fhdr_parent/
│ │ ├── fhdr_parent.m
│ │ └── numel.m
│ ├── bug-51567.tst
│ ├── bug-57941.tst
│ ├── bug51567.m
│ ├── bug51709_a.m
│ ├── bug51709_c.m
│ ├── bug57941a.m
│ ├── bug57941b.m
│ ├── bug58519.tst
│ ├── bug60845.m
│ ├── derived-resolution.tst
│ ├── f1.m
│ ├── handle-to-sibling.tst
│ ├── keyword.tst
│ ├── module.mk
│ ├── object-method.tst
│ ├── package-function.tst
│ ├── shared-ctx.tst
│ ├── shared_ctx.m
│ └── static-method.tst
├── file-encoding/
│ ├── .oct-config
│ ├── CP1251/
│ │ ├── .oct-config
│ │ └── test_CP1251.m
│ ├── file-encoding.tst
│ ├── module.mk
│ └── test_CP1252.m
├── fntests.m
├── for.tst
├── func.tst
├── global.tst
├── help/
│ ├── cdefdir/
│ │ ├── cdef_help1.m
│ │ ├── cdef_help2.m
│ │ ├── cdef_help3.m
│ │ └── cdef_help4.m
│ ├── function_with_utf_8_doc_string.m
│ ├── help.tst
│ ├── module.mk
│ └── undoc_fcn.m
├── if.tst
├── index.tst
├── inline-fcn.tst
├── integer.tst
├── io.tst
├── json/
│ ├── jsondecode.tst
│ ├── jsonencode.tst
│ └── module.mk
├── jupyter-notebook/
│ ├── jupyter-notebook.tst
│ ├── module.mk
│ ├── octave-kernel.ipynb
│ └── plot-magic-and-errors.ipynb
├── leftdiv.tst
├── line-continue.tst
├── load-path/
│ ├── in-load-path/
│ │ └── load_path_fcn.m
│ ├── module.mk
│ ├── namespace-builtin/
│ │ └── +namespace_test/
│ │ └── quad.m
│ ├── namespace-corelib/
│ │ └── +namespace_test/
│ │ └── plot.m
│ ├── not-in-load-path/
│ │ └── load_path_fcn.m
│ ├── refresh-load-path.tst
│ ├── shadowed-builtin/
│ │ └── quad.m
│ └── shadowed-corelib/
│ └── plot.m
├── local-functions/
│ ├── local-functions.tst
│ ├── local_function_eval.m
│ └── module.mk
├── logical-index.tst
├── mex/
│ ├── bug-51725.tst
│ ├── bug-54096.tst
│ ├── bug_51725.c
│ ├── bug_54096.c
│ ├── mexnumtst.c
│ ├── mexnumtst.tst
│ └── module.mk
├── mk-bc-overloads-tst.sh
├── mk-conv-tst.sh
├── mk-sparse-tst.sh
├── mk_bc_overloads_expected.m
├── nest/
│ ├── arg_nest.m
│ ├── arg_ret.m
│ ├── bug_59989.m
│ ├── counter.m
│ ├── module.mk
│ ├── nest.tst
│ ├── nest_eval.m
│ ├── no_closure.m
│ ├── nst1.m
│ ├── nst2.m
│ ├── nst3.m
│ ├── persistent_nest.m
│ ├── recursive_nest.m
│ ├── recursive_nest2.m
│ ├── recursive_nest3.m
│ ├── scope0.m
│ ├── scope1.m
│ ├── scope2.m
│ ├── scope3.m
│ ├── script_nest.m
│ ├── script_nest_2.m
│ ├── script_nest_script.m
│ ├── script_nest_script_2.m
│ ├── varg_nest.m
│ └── varg_nest2.m
├── null-assign.tst
├── parser.tst
├── pkg/
│ ├── mfile-basic-test/
│ │ ├── COPYING
│ │ ├── DESCRIPTION
│ │ ├── INDEX
│ │ ├── NEWS
│ │ ├── doc/
│ │ │ ├── example-package.txi
│ │ │ └── macros.texi
│ │ └── inst/
│ │ └── example_mfile.m
│ ├── mfile-minimal-test/
│ │ ├── COPYING
│ │ ├── DESCRIPTION
│ │ └── inst/
│ │ └── example_mfile.m
│ ├── module.mk
│ └── pkg.tst
├── prefer.tst
├── private-functions/
│ ├── fcn.m
│ ├── module.mk
│ ├── private/
│ │ ├── ascript.m
│ │ ├── bscript.m
│ │ ├── pfcn1.m
│ │ └── pfcn2.m
│ └── private-functions.tst
├── publish/
│ ├── module.mk
│ ├── publish.tst
│ ├── test_script.m
│ ├── test_script_code_only.m
│ ├── test_script_empty.m
│ ├── test_script_example.m
│ └── test_script_head_only.m
├── range.tst
├── recursion.tst
├── return.tst
├── show-failures.awk
├── single-index.tst
├── slice.tst
├── sparse-assign.tst
├── sparse-broadcasting.tst
├── struct.tst
├── switch.tst
├── system.tst
├── transpose.tst
├── try.tst
├── unwind.tst
└── while.tst
Copy disabled (too large)
Download .json
Condensed preview — 3781 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (40,788K chars).
[
{
"path": ".dir-locals.el",
"chars": 189,
"preview": "((nil .\n ((c-file-style . \"gnu\")\n (indent-tabs-mode . nil)\n (fill-column . 72)))\n (change-log-mode . (("
},
{
"path": ".editorconfig",
"chars": 165,
"preview": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\nindent_size = 2\nindent_style = space\ninsert_final_newline = true\n\n[*.{"
},
{
"path": ".gitattributes",
"chars": 64,
"preview": "# line endings in repository match line endings on disc\n* -text\n"
},
{
"path": ".github/dependabot.yml",
"chars": 216,
"preview": "# Set update schedule for GitHub Actions\n\nversion: 2\nupdates:\n\n - package-ecosystem: \"github-actions\"\n directory: \"/"
},
{
"path": ".github/workflows/codeql-analysis.yaml",
"chars": 6541,
"preview": "name: \"CodeQL\"\n\non:\n schedule:\n # Run job every Monday and Thursday at 16:30 UTC\n - cron: '30 16 * * 1,4'\n workf"
},
{
"path": ".github/workflows/make-alpine.yaml",
"chars": 9388,
"preview": "name: make-alpine\non:\n workflow_dispatch:\n push:\nconcurrency: ci-alpine-${{ github.ref }}\n\njobs:\n\n alpine:\n runs-o"
},
{
"path": ".github/workflows/make-cross.yaml",
"chars": 11622,
"preview": "name: make-cross-build\non:\n workflow_dispatch:\n # schedule:\n # # Run job every Wednesday and Saturday at 16:30 UTC\n"
},
{
"path": ".github/workflows/make-cygwin.yaml",
"chars": 10924,
"preview": "name: make-cygwin\non:\n workflow_dispatch:\n push:\nconcurrency: ci-cygwin-${{ github.ref }}\n\njobs:\n\n cygwin:\n runs-o"
},
{
"path": ".github/workflows/make-macos.yaml",
"chars": 11607,
"preview": "name: make-macos\non:\n workflow_dispatch:\n push:\nconcurrency: ci-macos-${{ github.ref }}\n\njobs:\n\n macos:\n runs-on: "
},
{
"path": ".github/workflows/make-mingw.yaml",
"chars": 11863,
"preview": "name: make-mingw\non:\n workflow_dispatch:\n push:\nconcurrency: ci-mingw-${{ github.ref }}\n\njobs:\n\n mingw:\n runs-on: "
},
{
"path": ".github/workflows/make-ubuntu.yaml",
"chars": 9469,
"preview": "name: make-ubuntu\non:\n workflow_dispatch:\n push:\nconcurrency: ci-ubuntu-${{ github.ref }}\n\njobs:\n\n ubuntu:\n runs-o"
},
{
"path": ".hgignore",
"chars": 3317,
"preview": "syntax: regexp\n## The recurrent (^|/) idiom in the regexps below should be understood\n## to mean \"at any directory\" whil"
},
{
"path": ".hgtags",
"chars": 8521,
"preview": "d56e0d75e7c9760f2a3e750c2d71a5c52bb76b98 ss-2-1-45\ndece11da64ed86ac2347f48ffa13fd046bef7de3 ss-2-1-52\ne759d01692dbb69ff2"
},
{
"path": "CITATION",
"chars": 768,
"preview": "To cite GNU Octave in publications use:\n\n John W. Eaton, David Bateman, Søren Hauberg, Rik Wehbring (2026).\n GNU Octav"
},
{
"path": "COPYING",
"chars": 35149,
"preview": " GNU GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
},
{
"path": "COPYRIGHT.md",
"chars": 14582,
"preview": "\nOctave is free software: you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as "
},
{
"path": "Makefile.am",
"chars": 13428,
"preview": "# Makefile for Octave\n\n########################################################################\n##\n## Copyright (C) 1993"
},
{
"path": "README",
"chars": 4972,
"preview": "GNU Octave -- a high-level language for numerical computations\n========================================================="
},
{
"path": "autogen.sh",
"chars": 1650,
"preview": "#!/bin/sh\n# Convenience script for regenerating all autogeneratable files that are\n# omitted from the version control re"
},
{
"path": "autopull.sh",
"chars": 1506,
"preview": "#!/bin/sh\n# Convenience script for fetching auxiliary files that are omitted from\n# the version control repository of th"
},
{
"path": "bootstrap",
"chars": 9276,
"preview": "#! /bin/sh\n# Bootstrap this package from checked-out sources.\n\nscriptversion=2025-06-10.02; # UTC\n\n# Copyright (C) 2003-"
},
{
"path": "bootstrap-funclib.sh",
"chars": 47978,
"preview": "# A library of shell functions for autopull.sh, autogen.sh, and bootstrap.\n\nscriptlibversion=2025-11-12.14; # UTC\n\n# Cop"
},
{
"path": "bootstrap.conf",
"chars": 5805,
"preview": "# Bootstrap configuration.\n\n########################################################################\n##\n## Copyright (C)"
},
{
"path": "build-aux/OctJavaQry.java",
"chars": 1507,
"preview": "// Copyright (C) 2012-2026 The Octave Project Developers\n//\n// See the file COPYRIGHT.md in the top-level directory of t"
},
{
"path": "build-aux/changelog.tmpl",
"chars": 1184,
"preview": "########################################################################\n##\n## Copyright (C) 2011-2026 The Octave Projec"
},
{
"path": "build-aux/check-subst-vars.in.sh",
"chars": 2024,
"preview": "#! /bin/sh\n\n########################################################################\n##\n## Copyright (C) 2016-2026 The O"
},
{
"path": "build-aux/find-defun-files.in.sh",
"chars": 1695,
"preview": "#! /bin/sh\n\n########################################################################\n##\n## Copyright (C) 2009-2026 The O"
},
{
"path": "build-aux/find-files-with-tests.in.sh",
"chars": 1332,
"preview": "#! /bin/sh\n\n########################################################################\n##\n## Copyright (C) 2013-2026 The O"
},
{
"path": "build-aux/get-source-mtime.sh",
"chars": 2494,
"preview": "#! /bin/sh\n\n########################################################################\n##\n## Copyright (C) 2017-2026 The O"
},
{
"path": "build-aux/inplace-edit.pl",
"chars": 1062,
"preview": "#!/usr/bin/perl -w\n\n################################################################################\n## File: inplace-ed"
},
{
"path": "build-aux/make-gnu-dist-files",
"chars": 802,
"preview": "#! /bin/bash\n\n################################################################################\n# USAGE: make-gnu-dist-fi"
},
{
"path": "build-aux/mk-hg-id.sh",
"chars": 2363,
"preview": "#! /bin/sh\n\n########################################################################\n##\n## Copyright (C) 2016-2026 The O"
},
{
"path": "build-aux/mk-octave-config-h.sh",
"chars": 6544,
"preview": "#! /bin/sh\n\n########################################################################\n##\n## Copyright (C) 2016-2026 The O"
},
{
"path": "build-aux/mk-opts.pl",
"chars": 27438,
"preview": "#! /usr/bin/perl -w\n\n########################################################################\n##\n## Copyright (C) 2002-2"
},
{
"path": "build-aux/mk-pkg-add.sh",
"chars": 1993,
"preview": "#! /bin/sh\n\n########################################################################\n##\n## Copyright (C) 2005-2026 The O"
},
{
"path": "build-aux/module.mk",
"chars": 1369,
"preview": "EXTRA_DIST += \\\n %reldir%/OctJavaQry.class \\\n %reldir%/OctJavaQry.java \\\n %reldir%/changelog.tmpl \\\n %reldir%/check-"
},
{
"path": "build-aux/subst-config-vals.in.sh",
"chars": 23748,
"preview": "#! /bin/sh\n\n########################################################################\n##\n## Copyright (C) 2016-2026 The O"
},
{
"path": "build-aux/subst-cross-config-vals.in.sh",
"chars": 23807,
"preview": "#! /bin/sh\n\n########################################################################\n##\n## Copyright (C) 2016-2026 The O"
},
{
"path": "build-aux/subst-script-vals.in.sh",
"chars": 1640,
"preview": "#! /bin/sh\n\n########################################################################\n##\n## Copyright (C) 2016-2026 The O"
},
{
"path": "build-aux/update-bug-status.sh",
"chars": 1677,
"preview": "#! /bin/sh\n\n########################################################################\n##\n## Copyright (C) 2017-2026 The O"
},
{
"path": "configure.ac",
"chars": 120679,
"preview": "dnl Process this file with autoconf to produce a configure script.\ndnl\n#################################################"
},
{
"path": "doc/doxyhtml/Doxyfile.in",
"chars": 34839,
"preview": "# -*- mode: conf; -*-\n\n########################################################################\n##\n## Copyright (C) 2013"
},
{
"path": "doc/doxyhtml/README.md",
"chars": 435,
"preview": "This directory contains Doxygen documentation for Octave's source code.\nIt is not created by default. To generate the D"
},
{
"path": "doc/doxyhtml/module.mk",
"chars": 755,
"preview": "# Generate README.md from README and replace first line by a Doxygen\n# specific one.\n%reldir%/pages/README.md: $(srcdir)"
},
{
"path": "doc/doxyhtml/pages/macros.dox",
"chars": 3567,
"preview": "/** @page Macros Important Macros\n\n@tableofcontents\n\nBuiltin function and method definition {#macros_defun}\n=========="
},
{
"path": "doc/interpreter/arith.txi",
"chars": 6742,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/audio.txi",
"chars": 5045,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/basics.txi",
"chars": 41016,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/bugs.txi",
"chars": 15317,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/config-images.sh",
"chars": 1418,
"preview": "#! /bin/sh\n\n########################################################################\n##\n## Copyright (C) 2009-2026 The O"
},
{
"path": "doc/interpreter/container.txi",
"chars": 27700,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/contributors.in",
"chars": 7215,
"preview": "Ben Abbott\nDrew Abbot\nNVS Abhilash\nAndy Adler\nAdam H. Aitkenhead\nFernando Alvarruiz\nJoakim Andén\nGiles Anderson\nJoel And"
},
{
"path": "doc/interpreter/cp-idx.txi",
"chars": 812,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/data.txi",
"chars": 7129,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/debug.txi",
"chars": 13996,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/diagperm.txi",
"chars": 21501,
"preview": "@c Copyright (C) 2009-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/diffeq.txi",
"chars": 6078,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/doccheck/README",
"chars": 4568,
"preview": "################################################################################\n READ"
},
{
"path": "doc/interpreter/doccheck/add-to-aspell-dict.pl",
"chars": 2715,
"preview": "#!/usr/bin/perl -w\n\n########################################################################\n##\n## Copyright (C) 2010-20"
},
{
"path": "doc/interpreter/doccheck/aspell-octave.en.pws",
"chars": 12710,
"preview": "personal_ws-1.1 en 1\nAbsTol\naccumarray\nacknowledgements\nAcknowledgements\nadams\nAffero\nafterwards\nal\naleph\nallocatable\nAl"
},
{
"path": "doc/interpreter/doccheck/aspell.conf",
"chars": 390,
"preview": "lang en_US\nmode texinfo\nadd-filter tex\nadd-texinfo-ignore set\nadd-texinfo-ignore ifclear\nadd-texinfo-ignore ifset\nadd"
},
{
"path": "doc/interpreter/doccheck/mk-undocumented-list.pl",
"chars": 4949,
"preview": "#!/usr/bin/perl -w\n\n########################################################################\n##\n## Copyright (C) 2010-20"
},
{
"path": "doc/interpreter/doccheck/spellcheck",
"chars": 2714,
"preview": "#!/usr/bin/perl -w\n\n########################################################################\n##\n## Copyright (C) 2010-20"
},
{
"path": "doc/interpreter/errors.txi",
"chars": 11341,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/eval.txi",
"chars": 5531,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/expr.txi",
"chars": 54587,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/external.txi",
"chars": 82765,
"preview": "@c Copyright (C) 2007-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/fn-idx.txi",
"chars": 814,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/func.txi",
"chars": 57476,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/genpropdoc.m",
"chars": 139868,
"preview": "########################################################################\n##\n## Copyright (C) 2014-2026 The Octave Projec"
},
{
"path": "doc/interpreter/geometry.txi",
"chars": 13573,
"preview": "@c Copyright (C) 2007-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/geometryimages.m",
"chars": 6520,
"preview": "########################################################################\n##\n## Copyright (C) 2007-2026 The Octave Projec"
},
{
"path": "doc/interpreter/gpl.txi",
"chars": 35780,
"preview": "@c Copyright (C) 2007 Free Software Foundation, Inc.\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free software: y"
},
{
"path": "doc/interpreter/grammar.txi",
"chars": 6591,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/graphics-properties.mk",
"chars": 1581,
"preview": "GRAPH_PROP_TEXI_SRC= \\\n interpreter/plot-axesproperties.texi \\\n interpreter/plot-figureproperties.texi \\\n interpreter"
},
{
"path": "doc/interpreter/gui.txi",
"chars": 4858,
"preview": "@c Copyright (C) 2012-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/image.txi",
"chars": 7937,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/images",
"chars": 323,
"preview": "geometryimages.m voronoi triplot griddata convhull delaunay inpolygon\ninterpimages.m interpft interpn interpderiv1 inter"
},
{
"path": "doc/interpreter/images.awk",
"chars": 2110,
"preview": "########################################################################\n##\n## Copyright (C) 2009-2026 The Octave Projec"
},
{
"path": "doc/interpreter/install.txi",
"chars": 37243,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/interp.txi",
"chars": 5785,
"preview": "@c Copyright (C) 2007-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/interpimages.m",
"chars": 4799,
"preview": "########################################################################\n##\n## Copyright (C) 2007-2026 The Octave Projec"
},
{
"path": "doc/interpreter/intro.txi",
"chars": 19551,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/io.txi",
"chars": 37830,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/linalg.txi",
"chars": 5639,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/macros.texi",
"chars": 3369,
"preview": "@c ---------------------------------------------------------------------\n@c\n@c Copyright (C) 2012-2026 The Octave Projec"
},
{
"path": "doc/interpreter/matrix.txi",
"chars": 5778,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/mk-doc-cache.pl",
"chars": 5987,
"preview": "#!/usr/bin/perl\n\n########################################################################\n##\n## Copyright (C) 2016-2026 "
},
{
"path": "doc/interpreter/mk-qthelp.pl",
"chars": 6319,
"preview": "#!/usr/bin/env perl\n\n################################################################################\n# File : mk-qth"
},
{
"path": "doc/interpreter/mkcontrib.awk",
"chars": 1373,
"preview": "########################################################################\n##\n## Copyright (C) 2007-2026 The Octave Projec"
},
{
"path": "doc/interpreter/mkoctfile.1",
"chars": 6357,
"preview": ".\\\" --------------------------------------------------------------------\n.\\\"\n.\\\" Copyright (C) 2000-2026 The Octave Proj"
},
{
"path": "doc/interpreter/module.mk",
"chars": 18250,
"preview": "if AMCOND_BUILD_DOCS\n\nGRAPH_PROP_TEXI_SRC = \\\n %reldir%/plot-axesproperties.texi \\\n %reldir%/plot-figureproperties.tex"
},
{
"path": "doc/interpreter/munge-texi.pl",
"chars": 5003,
"preview": "#!/usr/bin/perl -w\n\n########################################################################\n##\n## Copyright (C) 2012-20"
},
{
"path": "doc/interpreter/nonlin.txi",
"chars": 5901,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/numbers.txi",
"chars": 27788,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/obsolete.txi",
"chars": 14286,
"preview": "@c Copyright (C) 2010-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/octave-cli.1",
"chars": 3472,
"preview": ".\\\" ---------------------------------------------------------------------\n.\\\"\n.\\\" Copyright (C) 1996-2026 The Octave Pro"
},
{
"path": "doc/interpreter/octave-config.1",
"chars": 3229,
"preview": ".\\\" --------------------------------------------------------------------\n.\\\"\n.\\\" Copyright (C) 2003-2026 The Octave Proj"
},
{
"path": "doc/interpreter/octave-logo.eps",
"chars": 159438,
"preview": "%!PS-Adobe-3.0 EPSF-3.0\n%%Creator: cairo 1.8.8 (http://cairographics.org)\n%%CreationDate: Thu Feb 3 18:31:36 2011\n%%Pag"
},
{
"path": "doc/interpreter/octave.1",
"chars": 3803,
"preview": ".\\\" --------------------------------------------------------------------\n.\\\"\n.\\\" Copyright (C) 1996-2026 The Octave Proj"
},
{
"path": "doc/interpreter/octave.css",
"chars": 6433,
"preview": "/*\n\nCopyright (C) 2016-2026 The Octave Project Developers\n\nSee the file COPYRIGHT.md in the top-level directory of this\n"
},
{
"path": "doc/interpreter/octave.texi",
"chars": 23376,
"preview": "% Copyright (C) 1996-2026 The Octave Project Developers\n%\n% This file is part of Octave.\n%\n% Octave is free software: yo"
},
{
"path": "doc/interpreter/oop.txi",
"chars": 35855,
"preview": "@c Copyright (C) 2008-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/op-idx.txi",
"chars": 814,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/optim.txi",
"chars": 3143,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/package.txi",
"chars": 23319,
"preview": "@c Copyright (C) 2007-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/plot.txi",
"chars": 84438,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/plotimages.m",
"chars": 6560,
"preview": "########################################################################\n##\n## Copyright (C) 2007-2026 The Octave Projec"
},
{
"path": "doc/interpreter/poly.txi",
"chars": 11341,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/pr-idx.txi",
"chars": 836,
"preview": "@c Copyright (C) 2017-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/preface.txi",
"chars": 7681,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/quad.txi",
"chars": 11479,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/set.txi",
"chars": 2229,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/signal.txi",
"chars": 2625,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/sparse.txi",
"chars": 37916,
"preview": "@c Copyright (C) 2004-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/sparseimages.m",
"chars": 8542,
"preview": "########################################################################\n##\n## Copyright (C) 2006-2026 The Octave Projec"
},
{
"path": "doc/interpreter/splineimages.m",
"chars": 8084,
"preview": "########################################################################\n##\n## Copyright (C) 2012-2026 The Octave Projec"
},
{
"path": "doc/interpreter/stats.txi",
"chars": 8422,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/stmt.txi",
"chars": 26123,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/strings.txi",
"chars": 15495,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/system.txi",
"chars": 10676,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/testfun.txi",
"chars": 13580,
"preview": "@c Copyright (C) 2002-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/var.txi",
"chars": 11724,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/interpreter/vectorize.txi",
"chars": 22090,
"preview": "@c Copyright (C) 2012-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/array.texi",
"chars": 7663,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/bugs.texi",
"chars": 880,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/cp-idx.texi",
"chars": 812,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/dae.texi",
"chars": 1698,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/diffeq.texi",
"chars": 2910,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/error.texi",
"chars": 795,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/factor.texi",
"chars": 10397,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/fn-idx.texi",
"chars": 814,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/gpl.texi",
"chars": 35781,
"preview": "@c Copyright (C) 2007 Free Software Foundation, Inc.\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free software: y"
},
{
"path": "doc/liboctave/install.texi",
"chars": 812,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/intro.texi",
"chars": 928,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/liboctave.texi",
"chars": 4948,
"preview": "% Copyright (C) 1996-2026 The Octave Project Developers\n%\n% This file is part of Octave.\n%\n% Octave is free software: yo"
},
{
"path": "doc/liboctave/matvec.texi",
"chars": 48685,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/module.mk",
"chars": 2850,
"preview": "if AMCOND_BUILD_DOCS\n\nliboctave_TEXINFOS = \\\n %reldir%/array.texi \\\n %reldir%/bugs.texi \\\n %reldir%/cp-idx.texi \\\n %"
},
{
"path": "doc/liboctave/nleqn.texi",
"chars": 2098,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/nlfunc.texi",
"chars": 1452,
"preview": "@c Copyright (C) 1997-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/ode.texi",
"chars": 2905,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/optim.texi",
"chars": 9156,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/preface.texi",
"chars": 1157,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/quad.texi",
"chars": 5058,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/liboctave/range.texi",
"chars": 838,
"preview": "@c Copyright (C) 1996-2026 The Octave Project Developers\n@c\n@c This file is part of Octave.\n@c\n@c Octave is free softwar"
},
{
"path": "doc/module.mk",
"chars": 2172,
"preview": "%canon_reldir%_EXTRA_DIST =\n\n%canon_reldir%_CLEANFILES =\n%canon_reldir%_DISTCLEANFILES =\n%canon_reldir%_MAINTAINERCLEANF"
},
{
"path": "doc/refcard/module.mk",
"chars": 1884,
"preview": "if AMCOND_BUILD_DOCS\n\nrefcard_TEX_SRC = \\\n %reldir%/refcard.tex \\\n %reldir%/refcard-a4.tex \\\n %reldir%/refcard-legal."
},
{
"path": "doc/refcard/refcard-a4.tex",
"chars": 961,
"preview": "% refcard-a4.tex\n%\n% Make a reference card that will fit on A4 paper.\n%\n% Copyright (C) 1996-2026 The Octave Project Dev"
},
{
"path": "doc/refcard/refcard-legal.tex",
"chars": 973,
"preview": "% refcard-legal.tex\n%\n% Make a reference card that will fit on US legal paper.\n%\n% Copyright (C) 1996-2026 The Octave Pr"
},
{
"path": "doc/refcard/refcard-letter.tex",
"chars": 999,
"preview": "% refcard-letter.tex\n%\n% Make a reference card that will fit on US letter paper\n% (8-1/2 by 11 inches).\n%\n% Copyright (C"
},
{
"path": "doc/refcard/refcard.tex",
"chars": 24912,
"preview": "% refcard.tex\n%\n% This file is TeX source for a reference card describing Octave.\n%\n% Copyright (C) 1996-2026 The Octave"
},
{
"path": "doc/texmf.cnf",
"chars": 86,
"preview": "% Increase save size to run @seealso macro for Octave documentation\nsave_size = 10000\n"
},
{
"path": "etc/CHECKLIST.md",
"chars": 625,
"preview": "Things to do before making a release:\n\n * Update the version number and release date in configure.ac.\n\n * Update the O"
},
{
"path": "etc/HACKING.md",
"chars": 22549,
"preview": "Hacking Octave\n==============\n\nThis file attempts to describe the rules to use when hacking the\nOctave sources cloned fr"
},
{
"path": "etc/NEWS.1",
"chars": 57225,
"preview": "Summary of changes for version 1.1.1 (1995-02-23):\n-------------------------------------------------\n\n * New built-in v"
},
{
"path": "etc/NEWS.10.md",
"chars": 24350,
"preview": "For (bug #XXXXX) see https://savannah.gnu.org/bugs/?XXXXX\n\nSummary of bugs fixed for version 10.4.0 (tbd):\n-------------"
},
{
"path": "etc/NEWS.11.md",
"chars": 14285,
"preview": "Summary of bugs fixed for version 11.2.0 (YYYY-MM-DD):\n-----------------------------------------------------\n\nFor (bug #"
},
{
"path": "etc/NEWS.12.md",
"chars": 6389,
"preview": "Summary of important user-visible changes for version 12 (yyyy-mm-dd):\n-------------------------------------------------"
},
{
"path": "etc/NEWS.2",
"chars": 44280,
"preview": "Summary of changes for version 2.1.x (1997-06-05 -- 2006-03-20):\n-------------------------------------------------------"
},
{
"path": "etc/NEWS.3",
"chars": 68860,
"preview": "Summary of important user-visible changes for version 3.8 (2013-12-27):\n------------------------------------------------"
},
{
"path": "etc/NEWS.4",
"chars": 53864,
"preview": "Summary of bugs fixed for version 4.4.1 (2018-08-09):\n----------------------------------------------------\n\nUsing the bu"
},
{
"path": "etc/NEWS.5.md",
"chars": 18911,
"preview": "Summary of bugs fixed for version 5.2.0 (2020-01-31):\n----------------------------------------------------\n\nSee: https:/"
},
{
"path": "etc/NEWS.6.md",
"chars": 24844,
"preview": "Summary of bugs fixed for version 6.4.0 (2021-10-30)\n----------------------------------------------------\n\nFor (bug #XXX"
},
{
"path": "etc/NEWS.7.md",
"chars": 26389,
"preview": "Summary of bugs fixed for version 7.4.0 (tbd):\n----------------------------------------------------\n\nFor (bug #XXXXX) se"
},
{
"path": "etc/NEWS.8.md",
"chars": 15731,
"preview": "Summary of bugs fixed for version 8.5.0 (tbd):\n----------------------------------------------------\n\nFor (bug #XXXXX) se"
},
{
"path": "etc/NEWS.9.md",
"chars": 21739,
"preview": "For (bug #XXXXX) see https://savannah.gnu.org/bugs/?XXXXX\n\nSummary of bugs fixed for version 9.5.0 (tbd):\n--------------"
},
{
"path": "etc/OLD-ChangeLogs/ChangeLog",
"chars": 222411,
"preview": "2011-04-14 Rik <octave@nomad.inbox5.com>\n\n\t* NEWS: Add colstyle to list of new functions for 3.4\n\n2011-04-08 Rik <oc"
},
{
"path": "etc/OLD-ChangeLogs/ChangeLog.1",
"chars": 381785,
"preview": "Thu Feb 23 09:32:01 1995 John Eaton <jwe@schoch.che.utexas.edu>\n\n\t* Version 1.1.1 released.\n\n\t* src/idx-vector.cc (idx"
},
{
"path": "etc/OLD-ChangeLogs/doc-ChangeLog",
"chars": 103747,
"preview": "2011-04-16 Ben Abbott <bpabbott@mac.com>\n\n\t* interpreter/plot.txi: Clarify that inheritance of default property\n\tvalue"
},
{
"path": "etc/OLD-ChangeLogs/libcruft-ChangeLog",
"chars": 66826,
"preview": "2011-03-24 Jarno Rajahalme <jarno.rajahalme@gmail.com>\n\n\t* misc/blaswrap.c: New file.\n\t* misc/module.mk (EXTRA_DIST): "
},
{
"path": "etc/OLD-ChangeLogs/liboctave-ChangeLog",
"chars": 550038,
"preview": "2011-04-12 Rik <octave@nomad.inbox5.com>\n\n\t* LSODE.cc: Add semicolon to error messages to prevent run-together text.\n\n"
},
{
"path": "etc/OLD-ChangeLogs/scripts-ChangeLog",
"chars": 602963,
"preview": "2011-04-18 Paul Boven <p.boven@xs4all.nl>\n\n\t* image/image.m: Fixed naming of variables in texinfo\n\n2011-04-17 Patrick"
},
{
"path": "etc/OLD-ChangeLogs/src-ChangeLog",
"chars": 1455485,
"preview": "2011-04-19 Kai Habel <kai.habel@gmx.de>\n\n\t* src/DLD-FUNCTIONS/__init_fltk__.cc(plot_window::plot_window):\n\tInstantiate"
},
{
"path": "etc/OLD-ChangeLogs/test-ChangeLog",
"chars": 26552,
"preview": "2011-04-11 Rik <octave@nomad.inbox5.com>\n\n\t* fntests.m: Remove deprecated and private functions from list of\n\tfunction"
},
{
"path": "etc/RELEASE-CHECKLIST.wiki",
"chars": 11503,
"preview": "= VERSION.1 Release Checklist =\n\n{{Note|'''Timeline''' (tentative)\n\n* YYYY-MM-DD 🚀 Release Kick-off ⚽ (default branch me"
},
{
"path": "etc/ROADMAP.md",
"chars": 5655,
"preview": "Octave Roadmap (version 10 onwards)\n\nThis roadmap is intended to be a living document, and serves multiple purposes:\n* F"
},
{
"path": "etc/gdbinit",
"chars": 3624,
"preview": "########################################################################\n##\n## Copyright (C) 2010-2026 The Octave Projec"
},
{
"path": "etc/icons/org.octave.Octave.desktop.in",
"chars": 1043,
"preview": "[Desktop Entry]\nName=GNU Octave\nComment=Interactive programming environment for numerical computations\nComment[ca]=Entor"
},
{
"path": "etc/icons/org.octave.Octave.metainfo.xml",
"chars": 12116,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n\nCopyright (C) 2013-2026 The Octave Project Developers\n\nSee the file COPYRIG"
},
{
"path": "etc/module.mk",
"chars": 5223,
"preview": "%canon_reldir%_EXTRA_DIST =\n\n%canon_reldir%_CLEANFILES =\n%canon_reldir%_DISTCLEANFILES =\n%canon_reldir%_MAINTAINERCLEANF"
},
{
"path": "examples/code/@FIRfilter/FIRfilter.m",
"chars": 425,
"preview": "## -*- texinfo -*-\n## @deftypefn {} {} FIRfilter ()\n## @deftypefnx {} {} FIRfilter (@var{p})\n## Create a FIR filter wit"
},
{
"path": "examples/code/@FIRfilter/FIRfilter_aggregation.m",
"chars": 452,
"preview": "## -*- texinfo -*-\n## @deftypefn {} {} FIRfilter ()\n## @deftypefnx {} {} FIRfilter (@var{p})\n## Create a FIR filter wit"
},
{
"path": "examples/code/@FIRfilter/display.m",
"chars": 99,
"preview": "function display (f)\n printf (\"%s.polynomial\", inputname (1));\n disp (f.polynomial);\nendfunction\n"
},
{
"path": "examples/code/@FIRfilter/subsasgn.m",
"chars": 361,
"preview": "function fout = subsasgn (f, index, val)\n\n switch (index.type)\n case \".\"\n fld = index.subs;\n if (! strcmp "
},
{
"path": "examples/code/@FIRfilter/subsref.m",
"chars": 419,
"preview": "function r = subsref (f, x)\n\n switch (x.type)\n\n case \"()\"\n n = f.polynomial;\n r = filter (n.poly, 1, x.sub"
},
{
"path": "examples/code/@polynomial/disp.m",
"chars": 607,
"preview": "function disp (p)\n\n a = p.poly;\n first = true;\n for i = 1 : length (a);\n if (a(i) != 0)\n if (first)\n f"
},
{
"path": "examples/code/@polynomial/double.m",
"chars": 50,
"preview": "function a = double (p)\n a = p.poly;\nendfunction\n"
},
{
"path": "examples/code/@polynomial/end.m",
"chars": 180,
"preview": "function r = end (obj, index_pos, num_indices)\n\n if (num_indices != 1)\n error (\"polynomial object may only have one "
},
{
"path": "examples/code/@polynomial/get.m",
"chars": 395,
"preview": "function val = get (p, prop)\n\n if (nargin < 1)\n print_usage ();\n endif\n\n if (nargin == 1)\n val.poly = p.poly;\n "
},
{
"path": "examples/code/@polynomial/mtimes.m",
"chars": 89,
"preview": "function p = mtimes (a, b)\n p = polynomial (conv (double (a), double (b)));\nendfunction\n"
},
{
"path": "examples/code/@polynomial/numel.m",
"chars": 79,
"preview": "function n = numel (obj, idx)\n n = 1; # always produce an array.\nendfunction\n"
},
{
"path": "examples/code/@polynomial/plot.m",
"chars": 275,
"preview": "function h = plot (p, varargin)\n\n n = 128;\n rmax = max (abs (roots (p.poly)));\n x = [0 : (n - 1)] / (n - 1) * 2.2 * r"
},
{
"path": "examples/code/@polynomial/polynomial.m",
"chars": 683,
"preview": "## -*- texinfo -*-\n## @deftypefn {} {} polynomial ()\n## @deftypefnx {} {} polynomial (@var{a})\n## Create a polynomial o"
},
{
"path": "examples/code/@polynomial/polynomial_superiorto.m",
"chars": 722,
"preview": "## -*- texinfo -*-\n## @deftypefn {} {} polynomial ()\n## @deftypefnx {} {} polynomial (@var{a})\n## Create a polynomial o"
},
{
"path": "examples/code/@polynomial/polyval.m",
"chars": 191,
"preview": "function [y, dy] = polyval (p, varargin)\n\n if (nargout > 1)\n [y, dy] = polyval (fliplr (p.poly), varargin{:});\n els"
},
{
"path": "examples/code/@polynomial/roots.m",
"chars": 66,
"preview": "function r = roots (p)\n r = roots (fliplr (p.poly));\nendfunction\n"
},
{
"path": "examples/code/@polynomial/set.m",
"chars": 599,
"preview": "function pout = set (p, varargin)\n\n if (numel (varargin) < 2 || rem (numel (varargin), 2) != 0)\n error (\"@polynomial"
},
{
"path": "examples/code/@polynomial/subsasgn.m",
"chars": 876,
"preview": "function p = subsasgn (p, s, val)\n\n if (isempty (s))\n error (\"@polynomial/subsasgn: needs index\");\n endif\n\n switch"
},
{
"path": "examples/code/@polynomial/subsref.m",
"chars": 895,
"preview": "function r = subsref (p, s)\n\n if (isempty (s))\n error (\"@polynomial/subsref: missing index\");\n endif\n\n switch (s(1"
},
{
"path": "examples/code/COPYING",
"chars": 142,
"preview": "Copyright notices are intentionally omitted from the files in the\nexamples directory. We don't want copyright notices c"
}
]
// ... and 3581 more files (download for full content)
About this extraction
This page contains the full source code of the gnu-octave/octave GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3781 files (37.1 MB), approximately 9.9M tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.