Full Code of gnu-octave/octave for AI

default bb4f6f46da29 cached
3781 files
37.1 MB
9.9M tokens
1 requests
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$||' > "$
Download .txt
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.

Copied to clipboard!