# HG changeset patch # User Kai T. Ohlhus # Date 1599727656 -32400 # Node ID dedb85c54245548f850a52e9e574b8d6e718c6d8 # Parent fe5dcb23372a2f06c4e97a50b02de4ed12584b48 Reorganize homepage. diff -r fe5dcb23372a -r dedb85c54245 COPYRIGHT.md --- a/COPYRIGHT.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,517 +0,0 @@ ---- -layout: page -title: Copyright -menu: false -permalink: /copyright/ ---- - -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 -. - - -Copyright: - -- 1987-1988, 1991-1997, 2003-2018 Free Software Foundation -- 1992-2020 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 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 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 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 Olaf Till -- 2007-2008 Muthiah Annamalai -- 2007-2009 Brian Gough -- 2007-2009 Jason Riedy -- 2007-2013, 2015-2019 Marco Caliari -- 2007-2013, 2018 John P. Swensen -- 2007-2016, 2018-2019 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-2020 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 -- 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 Carnë Draug -- 2011-2019 Philip Nienhuis -- 2011-2020 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 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 Juan Pablo Carbajal -- 2012-2019 Pantxo Diribarne -- 2012-2020 Mike Miller -- 2013 Adam H Aitkenhead -- 2013 Amod Mulay -- 2013 Andre da Costa Barros -- 2013 Andy Register -- 2013 Artem Krosheninnikov -- 2013 Arun Giridhar -- 2013 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 Sébastien Villemot -- 2013, 2016 Sander van Rijn -- 2013, 2018 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 Nir Krakauer -- 2013-2014, 2016-2019 Julien Bect -- 2013-2015 Stefan Mahr -- 2013-2015, 2018 Felipe G. Nievinski -- 2013-2019 Kai T. Ohlhus -- 2013-2020 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 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 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-2019 Nicholas R. Jankowski -- 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 Robert Jenssen -- 2016 Stephen Montgomery-Smith -- 2016-2017 Ernst Reissner -- 2016-2019 Lars Kindermann -- 2016-2019 Markus Mützel -- 2017 Brad Kennedy -- 2017 Georg Wiora -- 2017 Hugo Raguet -- 2017 Lasse Kliemann -- 2017 Richard Zweig -- 2017 Tejaswi D Prakash -- 2017 Victor Norton -- 2017-2019 Alexander Wilms -- 2017-2019 Guillaume Flandin -- 2017-2019 Michael Leitner -- 2017-2019 Michele Ginesi -- 2017-2019 Sahil Yadav -- 2018 Avlas -- 2018 Cristiano Dorigo -- 2018 Dildar Sk -- 2018 Gene Harvey -- 2018 Joe Winegarden -- 2018 Maor Shutman -- 2018 Ronny Standtke -- 2018 Stefan Schlögl -- 2018 Stevie Schraudner -- 2018-2019 A.R. Burgers -- 2018-2019 Andrew Janke -- 2018-2019 Jun Wang -- 2019 Anthony Morast -- 2019 Bill Greene -- 2019 Christian Himpe -- 2019 Daniel Davis -- 2019 Eddy Xiao -- 2019 Juho Iipponen -- 2019 Nguy?n Gia Phong -- 2019 Tomi Pannila -- 2019 William Greene -- 2019-2020 Markus Meisinger - - -See also the list of contributors in the Octave manual (the file -doc/interpreter/contributors.in in the sources). diff -r fe5dcb23372a -r dedb85c54245 Gemfile --- a/Gemfile Mon Jul 20 16:14:52 2020 +0900 +++ b/Gemfile Thu Sep 10 17:47:36 2020 +0900 @@ -1,33 +1,3 @@ source "https://rubygems.org" -# Hello! This is where you manage which Jekyll version is used to run. -# When you want to use a different version, change it below, save the -# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: -# -# bundle exec jekyll serve -# -# This will help ensure the proper Jekyll version is running. -# Happy Jekylling! - -# NOTE: Jekyll 4 released 2020-05-09, but no support for Pygments, see below -# https://jekyllrb.com/docs/liquid/tags/ -gem "jekyll", "~> 3.8.7" # Release 2020-05-08 - -# If you have any plugins, put them here! -group :jekyll_plugins do - gem "jekyll-feed", "~> 0.14" # Release 2020-06-24 -end - -# Rouge is the default highlighter for Jekyll 4 and does not support Octave -# highlighting yet. Thus stay on Jekyll 3.8 for a while. -gem "pygments.rb" - -# Windows does not include zoneinfo files, so bundle the tzinfo-data gem -# and associated library. -install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do - gem "tzinfo", "~> 1.2" - gem "tzinfo-data" -end - -# Performance-booster for watching directories on Windows -gem "wdm", "~> 0.1.0", :install_if => Gem.win_platform? +gem "github-pages" diff -r fe5dcb23372a -r dedb85c54245 Gemfile.lock --- a/Gemfile.lock Mon Jul 20 16:14:52 2020 +0900 +++ b/Gemfile.lock Thu Sep 10 17:47:36 2020 +0900 @@ -1,77 +1,258 @@ GEM remote: https://rubygems.org/ specs: + activesupport (6.0.3.3) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + zeitwerk (~> 2.2, >= 2.2.2) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.11.1) colorator (1.1.0) - concurrent-ruby (1.1.6) + commonmarker (0.17.13) + ruby-enum (~> 0.5) + concurrent-ruby (1.1.7) + dnsruby (1.61.4) + simpleidn (~> 0.1) em-websocket (0.5.1) eventmachine (>= 0.12.9) http_parser.rb (~> 0.6.0) + ethon (0.12.0) + ffi (>= 1.3.0) eventmachine (1.2.7) + execjs (2.7.0) + faraday (1.0.1) + multipart-post (>= 1.2, < 3) ffi (1.13.1) forwardable-extended (2.6.0) + gemoji (3.0.1) + github-pages (207) + github-pages-health-check (= 1.16.1) + jekyll (= 3.9.0) + jekyll-avatar (= 0.7.0) + jekyll-coffeescript (= 1.1.1) + jekyll-commonmark-ghpages (= 0.1.6) + jekyll-default-layout (= 0.1.4) + jekyll-feed (= 0.13.0) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.13.0) + jekyll-mentions (= 1.5.1) + jekyll-optional-front-matter (= 0.3.2) + jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.15.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.1) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.6.1) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) + jekyll-theme-architect (= 0.1.1) + jekyll-theme-cayman (= 0.1.1) + jekyll-theme-dinky (= 0.1.1) + jekyll-theme-hacker (= 0.1.1) + jekyll-theme-leap-day (= 0.1.1) + jekyll-theme-merlot (= 0.1.1) + jekyll-theme-midnight (= 0.1.1) + jekyll-theme-minimal (= 0.1.1) + jekyll-theme-modernist (= 0.1.1) + jekyll-theme-primer (= 0.5.4) + jekyll-theme-slate (= 0.1.1) + jekyll-theme-tactile (= 0.1.1) + jekyll-theme-time-machine (= 0.1.1) + jekyll-titles-from-headings (= 0.5.3) + jemoji (= 0.11.1) + kramdown (= 2.3.0) + kramdown-parser-gfm (= 1.1.0) + liquid (= 4.0.3) + mercenary (~> 0.3) + minima (= 2.5.1) + nokogiri (>= 1.10.4, < 2.0) + rouge (= 3.19.0) + terminal-table (~> 1.4) + github-pages-health-check (1.16.1) + addressable (~> 2.3) + dnsruby (~> 1.60) + octokit (~> 4.0) + public_suffix (~> 3.0) + typhoeus (~> 1.3) + html-pipeline (2.14.0) + activesupport (>= 2) + nokogiri (>= 1.4) http_parser.rb (0.6.0) i18n (0.9.5) concurrent-ruby (~> 1.0) - jekyll (3.8.7) + jekyll (3.9.0) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) i18n (~> 0.7) jekyll-sass-converter (~> 1.0) jekyll-watch (~> 2.0) - kramdown (~> 1.14) + kramdown (>= 1.17, < 3) liquid (~> 4.0) mercenary (~> 0.3.3) pathutil (~> 0.9) rouge (>= 1.7, < 4) safe_yaml (~> 1.0) - jekyll-feed (0.14.0) + jekyll-avatar (0.7.0) + jekyll (>= 3.0, < 5.0) + jekyll-coffeescript (1.1.1) + coffee-script (~> 2.2) + coffee-script-source (~> 1.11.1) + jekyll-commonmark (1.3.1) + commonmarker (~> 0.14) + jekyll (>= 3.7, < 5.0) + jekyll-commonmark-ghpages (0.1.6) + commonmarker (~> 0.17.6) + jekyll-commonmark (~> 1.2) + rouge (>= 2.0, < 4.0) + jekyll-default-layout (0.1.4) + jekyll (~> 3.0) + jekyll-feed (0.13.0) jekyll (>= 3.7, < 5.0) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-github-metadata (2.13.0) + jekyll (>= 3.4, < 5.0) + octokit (~> 4.0, != 4.4.0) + jekyll-mentions (1.5.1) + html-pipeline (~> 2.3) + jekyll (>= 3.7, < 5.0) + jekyll-optional-front-matter (0.3.2) + jekyll (>= 3.0, < 5.0) + jekyll-paginate (1.1.0) + jekyll-readme-index (0.3.0) + jekyll (>= 3.0, < 5.0) + jekyll-redirect-from (0.15.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.1) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + rubyzip (>= 1.3.0) jekyll-sass-converter (1.5.2) sass (~> 3.4) + jekyll-seo-tag (2.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) + jekyll-theme-architect (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.5.4) + jekyll (> 3.5, < 5.0) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.1.1) + jekyll (~> 3.5) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.3) + jekyll (>= 3.3, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) - kramdown (1.17.0) + jemoji (0.11.1) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (>= 3.0, < 5.0) + kramdown (2.3.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) liquid (4.0.3) listen (3.2.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) - multi_json (1.14.1) + mini_portile2 (2.4.0) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.14.2) + multipart-post (2.1.1) + nokogiri (1.10.10) + mini_portile2 (~> 2.4.0) + octokit (4.18.0) + faraday (>= 0.9) + sawyer (~> 0.8.0, >= 0.5.3) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (4.0.5) - pygments.rb (1.2.1) - multi_json (>= 1.0.0) + public_suffix (3.1.1) rb-fsevent (0.10.4) rb-inotify (0.10.1) ffi (~> 1.0) - rouge (3.20.0) + rexml (3.2.4) + rouge (3.19.0) + ruby-enum (0.8.0) + i18n + rubyzip (2.3.0) safe_yaml (1.0.5) sass (3.7.4) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.8.2) + addressable (>= 2.3.5) + faraday (> 0.8, < 2.0) + simpleidn (0.1.1) + unf (~> 0.1.4) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) thread_safe (0.3.6) + typhoeus (1.4.0) + ethon (>= 0.9.0) tzinfo (1.2.7) thread_safe (~> 0.1) - tzinfo-data (1.2020.1) - tzinfo (>= 1.0.0) - wdm (0.1.1) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.7) + unicode-display_width (1.7.0) + zeitwerk (2.4.0) PLATFORMS ruby DEPENDENCIES - jekyll (~> 3.8.7) - jekyll-feed (~> 0.14) - pygments.rb - tzinfo (~> 1.2) - tzinfo-data - wdm (~> 0.1.0) + github-pages BUNDLED WITH 1.16.1 diff -r fe5dcb23372a -r dedb85c54245 NEWS-1.html --- a/NEWS-1.html Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1644 +0,0 @@ - - - - Changes in Octave version 1 - - - -

News for Octave Version 1

-
- -

Summary of changes for version 1.1.1

- -
-  * New built-in variables, default_return_value and
-    define_all_return_values.
-
-    If define_all_return_values is set to "false", Octave does not do
-    anything special for return values that are left undefined, and
-    you will get an error message if you try to use them.  For
-    example, if the function
-
-      function [x, y] = f ()
-        y = 1;
-      endfunction
-
-    is called as
-
-      octave:13> [a, b] = f ()
-
-    Octave will print an error message for the attempt to assign an
-    undefined value to `a'.
-
-    This is incompatible with Matlab, which will define the return
-    variable `x' to be the empty matrix.  To get the Matlab-like
-    behavior, you can set the variable define_all_return_values to
-    "true" (the default is "false") and default_return_value to `[]'
-    (the default).  Then, any return values that remain undefined when
-    the function returns will be initialized to `[]'.
-
-    If the function is called without explicitly asking for an output,
-    it will succeed.  This behavior is compatible and unchanged from
-    previous versions of Octave.
-
-  * New built-in variable suppress_verbose_help_message.  If set to
-    "true", Octave will not add additional help information to the end
-    of the output from the help command and usage messages for
-    built-in commands.  The default value is "false".
-
-  * New built-in variable PS4 is used as the prefix of echoed input
-    (enabled with the --echo-input (-x) option).
-
-  * The function size() now accepts an optional second argument.
-
-  * Output from `save - ...' now goes through the pager.
-
-  * The break statement may also be used to exit a function, for
-    compatibility with Matlab.
-
-  * The directory tree for installing Octave is now closer to
-    conforming with the current GNU standards.
-
-  * More bug fixes.
-
- -

Summary of changes for version 1.1.0

- -
-  * Octave now requires g++ 2.6.3 or later.  This change is necessary
-    to make template instantiations cleaner, and to avoid having to
-    have special cases in the code for earlier versions of gcc.
-
-  * A new data structure type has been added.  The implementation uses
-    an associative array with indices limited to strings, but the
-    syntax is more like C-style structures.  here are some examples of
-    using it.
-
-    Elements of structures can be of any type, including structures:
-
-      octave:1> x.a = 1;
-      octave:2> x.b = [1, 2; 3, 4];
-      octave:3> x.c = "string";
-      octave:4> x
-      x =
-
-      
-
-      octave:5> x.a
-      x.a = 1
-      octave:6> x.b
-      x.b =
-
-        1  2
-        3  4
-
-      octave:7> x.c
-      x.c = string
-      octave:8> x.b.d = 3
-      x.b.d = 3
-      octave:9> x.b
-      x.b =
-
-      
-
-      octave:10> x.b.d
-      x.b.d = 3
-
-    Functions can return structures:
-
-      octave:1> a = rand (3) + rand (3) * I;
-      octave:2> function y = f (x)
-      > y.re = real (x);
-      > y.im = imag (x);
-      > endfunction
-      octave:3> f (a)
-      ans =
-
-      
-
-      octave:4> ans.im
-      ans.im =
-
-        0.093411  0.229690  0.627585
-        0.415128  0.221706  0.850341
-        0.894990  0.343265  0.384018
-
-      octave:5> ans.re
-      ans.re =
-
-        0.56234  0.14797  0.26416
-        0.72120  0.62691  0.20910
-        0.89211  0.25175  0.21081
-
-    Return lists can include structure elements:
-
-      octave:1> [x.u, x.s, x.v] = svd ([1, 2; 3, 4])
-      x.u =
-
-        -0.40455  -0.91451
-        -0.91451   0.40455
-
-      x.s =
-
-        5.46499  0.00000
-        0.00000  0.36597
-
-      x.v =
-
-        -0.57605   0.81742
-        -0.81742  -0.57605
-
-      octave:8> x
-      x =
-
-      
-
-    This feature should be considered experimental, but it seems to
-    work ok.  Suggestions for ways to improve it are welcome.
-
-  * Octave now supports a limited form of exception handling modelled
-    after the unwind-protect form of Lisp:
-
-      unwind_protect
-        BODY
-      unwind_protect_cleanup
-        CLEANUP
-      end_unwind_protect
-
-    Where BODY and CLEANUP are both optional and may contain any
-    Octave expressions or commands.  The statements in CLEANUP are
-    guaranteed to be executed regardless of how control exits BODY.
-
-    This is useful to protect temporary changes to global variables
-    from possible errors.  For example, the following code will always
-    restore the original value of the built-in variable
-    do_fortran_indexing even if an error occurs while performing the
-    indexing operation.
-
-      save_do_fortran_indexing = do_fortran_indexing;
-      unwind_protect
-        do_fortran_indexing = "true";
-        elt = a (idx)
-      unwind_protect_cleanup
-        do_fortran_indexing = save_do_fortran_indexing;
-      end_unwind_protect
-
-    Without unwind_protect, the value of do_fortran_indexing would not
-    be restored if an error occurs while performing the indexing
-    operation because evaluation would stop at the point of the error
-    and the statement to restore the value would not be executed.
-
-  * Recursive directory searching has been implemented using Karl
-    Berry's kpathsea library.  Directories below path elements that
-    end in // are searched recursively for .m files.
-
-  * Octave now waits for additional input when a pair of parentheses
-    is `open' instead of giving an error.  This allows one to write
-    statements like this
-
-      if (big_long_variable_name == other_long_variable_name
-          || not_so_short_variable_name > 4
-          && y > x)
-        some (code, here);
-
-    without having to clutter up the if statement with continuation
-    characters.
-
-  * Continuation lines are now allowed in string constants and are
-    handled correctly inside matrix constants.
-
-  * Both `...{whitespace}\n' and `\{whitespace}\n' can be used to
-    introduce continuation lines, where {whitespace} may include
-    spaces, tabs and comemnts.
-
-  * The script directory has been split up by topic.
-
-  * Dynamic linking mostly works with dld.  The following limitations
-    are known problems:
-
-    -- Clearing dynamically linked functions doesn't work.
-
-    -- Dynamic linking only works with dld, which has not been ported
-       to very many systems yet.
-
-    -- Configuring with --enable-lite-kernel seems to mostly work to
-       make nonessential built-in functions dynamically loaded, but
-       there also seem to be some problems.  For example, fsolve seems
-       to always return info == 3.  This is difficult to debug since
-       gdb won't seem to allow breakpoints to be set inside
-       dynamically loaded functions.
-
-    -- Octave uses a lot of memory if the dynamically linked functions
-       are compiled with -g.  This appears to be a limitation with
-       dld, and can be avoided by not using -g to compile functions
-       that will be linked dynamically.
-
-  * fft2 and ifft2 are now built-in functions.
-
-  * The `&&' and `||' logical operators are now evaluated in a
-    short-circuit fashion and work differently than the element by
-    element operators `&' and `|'.  See the Octave manual for more
-    details.
-
-  * Expressions like 1./m are now parsed as 1 ./ m, not 1. / m.
-
-  * The replot command now takes the same arguments as gplot or
-    gsplot (except ranges, which cannot be respecified with replot
-    (yet)) so you can add additional lines to existing plots.
-
-  * The hold command has been implemented.
-
-  * New function `clearplot' clears the plot window.  The name `clg'
-    is aliased to `clearplot' for compatibility with Matlab.
-
-  * The commands `gplot clear' and `gsplot clear' are equivalent to
-    `clearplot'.  (Previously, `gplot clear' would evaluate `clear' as
-    an ordinary expression and clear all the visible variables.)
-
-  * The Matlab-style plotting commands have been improved.  They now
-    accept line-style arguments, multiple x-y pairs, and other plot
-    option flags.  For example,
- 
-      plot (x, y, "@12", x, y2, x, y3, "4", x, y4, "+")
-
-    results in a plot with
-
-      y  plotted with points of type 2 ("+") and color 1 (red).
-      y2 plotted with lines.
-      y3 plotted with lines of color 4.
-      y4 plotted with points which are "+"s.
-
-    the help message for `plot' and `plot_opt' provide full
-    descriptions of the options.
-
-  * NaN is now dropped from plot data, and Inf is converted to a
-    very large value before calling gnuplot.
-
-  * Improved load and save commands:
-
-    -- The save and load commands can now read and write a new binary
-       file format.  Conversion to and from IEEE big and little endian
-       formats is handled automatically.  Conversion for other formats
-       has not yet been implemented.
-
-    -- The load command can now read Matlab .mat files, though it is
-       not yet able to read sparse matrices or handle conversion for
-       all data formats.
-
-    -- The save command can write Matlab .mat files.
-
-    -- The load command automatically determines the save format
-       (binary, ascii, or Matlab binary).
-
-    -- The default format for the save command is taken from the
-       built-in variable `default_save_format'.
-
-    -- The save and load commands now both accept a list of globbing
-       patterns so you can easily load a list of variables from a
-       file.
-
-    -- The load command now accepts the option -list, for listing the
-       variable names without actually loading the data.  With
-       -verbose, it prints a long listing.
-
-    -- The load command now accepts the option -float-binary, for
-       saving floating point data in binary files in single precision.
-
-  * who and whos now accept a list of globbing patterns so you can
-    limit the lists of variables and functions to those that match a
-    given set of patterns.
-
-  * New functions for manipulating polynomials
-      
-      compan     -- companion matrix corresponding to polynomial coefficients
-      conv       -- convolve two vectors
-      deconv     -- deconvolve two vectors
-      roots      -- find the roots of a polynomial
-      poly       -- characteristic polynomial of a matrix
-      polyderiv  -- differentiate a polynomial
-      polyinteg  -- integrate a polynomial
-      polyreduce -- reduce a polynomial to minimum number of terms
-      polyval    -- evaluate a polynomial at a point
-      polyvalm   -- evaluate a polynomial in the matrix sense
-      residue    -- partial fraction expansion corresponding to the ratio
-                    of two polynomials
-
-  * New functions for manipulating sets
-
-      create_set   -- create a set of unique values
-      complement   -- find the complement of two sets
-      intersection -- find the intersection of two sets
-      union        -- find the union of two sets
-
-  * New elementary functions:
-
-      acot   acoth   acsc   acsch
-      asec   asech   cot    coth
-      csc    csch    log2   sec
-      sech
-
-  * New special functions:
-
-      beta   -- beta function
-      betai  -- incomplete beta function
-      gammai -- incomplete gamma function
-
-  * New image processing functions:
-
-      colormap  -- set and return current colormap
-      gray      -- set a gray colormap
-      gray2ind  -- image format conversion
-      image     -- display an image
-      imagesc   -- scale and display an image
-      imshow    -- display images
-      ind2gray  -- image format conversion
-      ind2rgb   -- image format conversion
-      loadimage -- load an image from a file
-      ntsc2rgb  -- image format conversion
-      ocean     -- set a color colormap
-      rgb2ind   -- image format conversion
-      rgb2ntsc  -- image format conversion
-      saveimage -- save an image to a file
-
-  * New time and date funcitons:
-
-      tic          -- set wall-clock timer
-      toc          -- get elapsed wall-clock time, since timer last set
-      etime        -- another way to get elapsed wall-clock time
-      cputime      -- get CPU time used since Octave started
-      is_leap_year -- is the given year a leap year?
-
-  * Other new functions:
-
-      bug_report -- submit a bug report to the bug-octave mailing list
-
-      toascii -- convert a string to a matrix of ASCII character codes
-
-      octave_tmp_file -- generate a unique temporary file name
-
-      undo_string_escapes -- replace special characters in a string by
-                             their backslash forms
-
-      is_struct -- determine whether something is a structure data type
-
-      feof   -- check EOF condition for a specified file
-      ferror -- check error state for a specified file
-      fread  -- read binary data from a file
-      fwrite -- write binary data to a file
-
-      file_in_path -- check to see if named file exists in given path
-
-      kbhit  -- get a single character from the terminal
-
-      axis   -- change plot ranges
-      hist   -- plot histograms
-
-      diary  -- save commands and output to a file
-
-      type   -- show the definition of a function
-      which  -- print the type of an identifier or the location of a
-                function file
-
-      isieee  -- Returns 1 if host uses IEEE floating point
-      realmax -- Returns largest floating point number
-      realmin -- Returns smallest floating point number
-
-      gcd     -- greatest common divisor
-      lcm     -- least common multiple
-
-      null    -- orthonormal basis of the null space of a matrix
-      orth    -- orthonormal basis of the range space of a matrix
-
-      fft2    -- two-dimensional fast fourier transform
-      ifft2   -- two-dimensional inverse fast fourier transform
-      filter  -- digital filter
-      fftfilt -- filter using fft
-      fftconv -- convolve to vectors using fft
-      sinc    -- returns sin(pi*x)/(pi*x)
-      freqz   -- compute the frequency response of a filter
-
-  * The meaning of nargin (== args.length ()) in built-in functions
-    has been changed to match the meaning of nargin in user-defined
-    functions.
-
-  * Variable return lists.  Octave now has a real mechanism for
-    handling functions that return an unspecified number of values,
-    so it is no longer necessary to place an upper bound on the number
-    of outputs that a function can produce.
-
-    Here is an example of a function that uses the new syntax to
-    produce n values:
-
-      function [...] = foo (n)
-        for i = 1:n
-          vr_val (i * x);
-        endfor
-      endfunction
-
-  * New keyword, all_va_args, that allows the entire list of va_args
-    to be passed to another function.  For example, given the functions
-
-      function f (...)
-        while (nargin--)
-          disp (va_arg ())
-        endwhile
-      endfunction
-      function g (...)
-        f ("begin", all_va_args, "end")
-      endfunction
-
-    the statement
-
-      g (1, 2, 3)
-
-    prints
-
-      begin
-      1
-      2
-      3
-      end
-
-    all_va_args may be used more than once, but can only be used
-    within functions that take a variable number of arguments.
-
-  * If given a second argument, svd now returns an economy-sized
-    decomposition, eliminating the unecessary rows or columns of U or
-    V.
-
-  * The max and min functions correctly handle complex matrices in
-    which some columns contain real values only.
-
-  * The find function now handles 2 and 3 output arguments.
-
-  * The qr function now allows computation of QR with pivoting.
-
-  * hilb() is much faster for large matrices.
-
-  * computer() is now a built-in function.
-
-  * pinv() is now a built-in function.
-
-  * The output from the history command now goes through the pager.
-
-  * If a function is called without assigning the result, nargout is
-    now correctly set to 0.
-
-  * It is now possible to write functions that only set some return
-    values.  For example, calling the function
-
-      function [x, y, z] = f () x = 1; z = 2; endfunction
-
-    as
-
-      [a, b, c] = f ()
-
-    produces:
-
-      a = 1
-
-      b = [](0x0)
-
-      c = 2
-
-  * The shell_cmd function has been renamed to system (the name
-    shell_cmd remains for compatibility).  It now returns [output, status].
-
-  * New built-in variable `OCTAVE_VERSION'.  Also a new function,
-    version, for compatibility with Matlab.
-
-  * New built-in variable `automatic_replot'.  If it is "true", Octave
-    will automatically send a replot command to gnuplot each time the
-    plot changes.  Since this is fairly inefficient, the default value
-    is "false".
-
-  * New built-in variable `whitespace_in_literal_matrix' allows some
-    control over how Octave decides to convert spaces to commas in
-    matrix expressions like `[m (1)]'.
-
-    If the value of `whitespace_in_literal_matrix' is "ignore", Octave
-    will never insert a comma or a semicolon in a literal matrix list.
-    For example, the expression `[1 2]' will result in an error
-    instead of being treated the same as `[1, 2]', and the expression
-
-      [ 1, 2,
-        3, 4 ]
-
-    will result in the vector [1 2 3 4] instead of a matrix.
-
-    If the value of `whitespace_in_literal_matrix' is "traditional",
-    Octave will convert spaces to a comma between identifiers and `('.
-    For example, given the matrix
-
-      m = [3 2]
-
-    the expression
-
-      [m (1)]
-
-    will be parsed as
-
-      [m, (1)]
-
-    and will result in
-
-      [3 2 1]
-
-    and the expression
-
-      [ 1, 2,
-        3, 4 ]
-
-    will result in a matrix because the newline character is converted
-    to a semicolon (row separator) even though there is a comma at the
-    end of the first line (trailing commas or semicolons are ignored).
-    This is apparently how Matlab behaves.
-
-    Any other value for `whitespace_in_literal_matrix' results in
-    behavior that is the same as traditional, except that Octave does
-    not convert spaces to a comma between identifiers and `('.
-    For example, the expression
-
-      [m (1)]
-
-    will produce 3.  This is the way Octave has always behaved.
-
-  * Line numbers in error messages for functions defined in files and
-    for script files now correspond to the file line number, not the
-    number of lines after the function keyword appeared.
-
-  * Octave now extracts help from script files.  The comments must
-    come before any other statements in the file.
-
-  * In function files, the first block of comments in the file will
-    now be interpreted as the help text if it doesn't look like the
-    Octave copyright notice.  Otherwise, Octave extracts the first set
-    of comments after the function keyword.
-
-  * The function clock is more accurate on systems that have the
-    gettimeofday() function.
-
-  * The standard output stream is now automatically flushed before
-    reading from stdin with any of the *scanf() functions.
-
-  * Expanded reference card.
-
-  * The Octave distribution now includes a frequently asked questions
-    file, with answers.  Better answers and more questions (with
-    answers!) are welcome.
-
-  * New option --verbose.  If Octave is invoked with --verbose and not
-    --silent, a message is printed if an octaverc file is read while
-    Octave is starting.
-
-  * An improved configure script generated by Autoconf 2.0.
-
-  * Lots of bug fixes.
-
- -

Summary of changes for version 1.0

- -
-  * C-style I/O functions now handle files referenced by name or by
-    number more consistently.
-
- -

Summary of changes for version 0.83

- -
-  * Loading global symbols should work now.
-
-  * Clearing the screen doesn't reprint the prompt unnecessarily.
-
-  * The operations  OP  for OP == +, -,
-    *, or ./ no longer crash Octave.
-
-  * More portability and configuration fixes.
-
- -

Summary of changes for version 0.82

- -
-  * Octave now comes with a reference card.
-
-  * The manual has been improved, but more work remains to be done.
-
-  * The atanh function now works for complex arguments.
-
-  * The asin, acos, acosh, and atanh functions now work properly when
-    given real-valued arguments that produce complex results.
-
-  * SEEK_SET, SEEK_CUR, and SEEK_END are now constants.
-
-  * The `using' qualifier now works with gplot and gsplot when the
-    data to plot is coming directly from a file.
-
-  * The strcmp function now works correctly for empty strings.
-
-  * Eliminated bogus parse error for M-files that don't end with `end'
-    or `endfunction'.
-
-  * For empty matrices with one nonzero dimension, the +, -, .*, and
-    ./ operators now correctly preserve the dimension.
-
-  * Octave no longer crashes if you type ^D at the beginning of a line
-    in the middle of defining a loop or if statement.
-
-  * On AIX systems, Back off on indexing DiagArray via Proxy class to
-    avoid gcc (or possibly AIX assembler?) bug. 
-
-  * Various other bug and portability fixes.
-
- -

Summary of changes for version 0.81

- -
-  * Octave no longer dumps core if you try to define a function in
-    your .octaverc file.
-
-  * Fixed bug in Array class that resulted in bogus off-diagonal
-    elements when computing eigenvalue and singular value
-    decompositions.
-
-  * Fixed bug that prevented lsode from working on the SPARCstation,
-    at least with some versions of Sun's f77.  This bug was introduced
-    in 0.80, when I changed LSODE to allow the user to abort the
-    integration from within the RHS function.
-
-  * Fixed bug that prevented global attribute of variables from being
-    saved with save(), and another that prevented load() from working
-    at all.
-
- -

Summary of changes for version 0.80

- -
-  * I have started working on a manual for the C++ classes.  At this
-    point, it is little more than a list of function names.  If you
-    would like to volunteer to help work on this, please contact
-    bug-octave@bevo.che.wisc.edu.
-
-  * The patterns accepted by the save and clear commands now work like
-    file name globbing patterns instead of regular expressions.  I
-    apologize for any inconvenience this change may cause, but file
-    name globbing seems like a more reasonable style of pattern
-    matching for this purpose.
-
-  * It is now possible to specify tolerances and other optional inputs
-    for dassl, fsolve, lsode, npsol, qpsol, and quad.  For each of
-    these functions, there is a corresponding function X_options,
-    which takes a keyword and value arguments.  If invoked without any
-    arguments, the X_options functions print a list of possible
-    keywords and current values.  For example,
-
-      npsol_options ()
-
-    prints a list of possible options with values, and
-
-      npsol_options ("major print level", 10)
-
-    sets the major print level to 10.
-
-    The keyword match is not case sensitive, and the keywords may be
-    abbreviated to the shortest unique match.  For example,
-
-      npsol_options ("ma p", 10)
-
-    is equivalent to the statement shown above.
-
-  * The new built-in variable save_precision can be used to set the
-    number of digits preserved by the ASCII save command.
-
-  * Assignment of [] now works in most cases to allow you to delete
-    rows or columns of matrices and vectors.  For example, given a
-    4x5 matrix A, the assignment
-
-      A (3, :) = []
-
-    deletes the third row of A, and the assignment
-
-      A (:, 1:2:5) = []
-
-    deletes the first, third, and fifth columns.
-
-  * Variable argument lists.  Octave now has a real mechanism for
-    handling functions that take an unspecified number of arguments,
-    so it is no longer necessary to place an upper bound on the number
-    of optional arguments that a function can accept.
-
-    Here is an example of a function that uses the new syntax to print
-    a header followed by an unspecified number of values:
-
-      function foo (heading, ...)
-        disp (heading);
-        va_start ();
-        while (--nargin)
-          disp (va_arg ());
-        endwhile
-      endfunction
-
-    Note that the argument list must contain at least one named
-    argument (this restriction may eventually be removed), and the
-    ellipsis must appear as the last element of the argument list.
-
-    Calling va_start() positions an internal pointer to the first
-    unnamed argument and allows you to cycle through the arguments
-    more than once.  It is not necessary to call va_start() if you
-    do not plan to cycle through the arguments more than once.
-
-  * Recursive functions should work now.
-
-  * The environment variable OCTAVE_PATH is now handled in the same
-    way as TeX handles TEXINPUTS.  If the path starts with `:', the
-    standard path is prepended to the value obtained from the
-    environment.  If it ends with `:' the standard path is appended to
-    the value obtained from the environment.
-
-  * New functions, from Kurt Hornik (hornik@neuro.tuwien.ac.at) and
-    the Department of Probability Theory and Statistics TU Wien,
-    Austria:
-
-     corrcoef    -- corrcoef (X, Y) is the correlation between the i-th
-                    variable in X and the j-th variable in Y
-                    corrcoef (X) is corrcoef (X, X)
-     cov         -- cov (X, Y) is the covariance between the i-th
-                    variable in X and the j-th variable in Y
-                    cov (X) is cov (X, X)
-     gls         -- generalized least squares estimation
-     kurtosis    -- kurtosis(x) = N^(-1) std(x)^(-4) SUM_i (x(i)-mean(x))^4 - 3
-                    If x is a matrix, return the row vector containing
-                    the kurtosis of each column
-     mahalanobis -- returns Mahalanobis' D-square distance between the
-                    multivariate samples X and Y, which must have the
-                    same number of components (columns), but may have
-                    a different number of observations (rows)
-     ols         -- ordinary least squares estimation
-     pinv        -- returns the pseudoinverse of X; singular values
-                    less than tol are ignored
-     skewness    -- skewness (x) = N^(-1) std(x)^(-3) SUM_i (x(i)-mean(x))^3
-                    if x is a matrix, return the row vector containing
-                    the skewness of each column
-
-  * Errors in user-supplied functions called from dassl, fsolve,
-    lsode, npsol, and quad are handled more gracefully.
-
-  * Programming errors in the use of the C++ classes within Octave
-    should no longer cause Octave to abort.  Instead, Octave's error
-    handler function is called and execution continues as best as is
-    possible.  This should result in eventually returning control to
-    the top-level Octave prompt.  (It would be nice to have a real
-    exception handling mechanism...)
-
-  * A number of memory leaks have been eliminated.  Thanks to
-    Fong Kin Fui  for reporting them.
-
-  * The C++ matrix classes are now derived from a generic
-    template-based array class.
-
-  * The readline function operate-and-get-next (from bash) is now
-    available and bound to C-O by default.
-
-  * Octave now uses the version of readline currently distributed with
-    bash-1.13.  On some systems, interactive invocations of Octave
-    will now blink the cursor to show matching parens.
-
-  * By default, include files are now installed in
-    $prefix/include/octave instead of $prefix/include.
-
-  * Octave now uses a config.h file instead of putting all defines on
-    the compiler command line.
-
- -

Summary of changes for version 0.79

- -
-  * New control systems functions:
-
-     dgram -- Returns the discrete controllability and observability gramian.
-     dlqr  -- Discrete linear quadratic regulator design.
-     dlqe  -- Discrete linear quadratic estimator (Kalman Filter) design.
-     c2d   -- Convert continuous system description to discrete time
-              description assuming zero-order hold and given sample time.
-
-  * The max (min) functions can now return the index of the max (min)
-    value as a second return value.
-
- -

Summary of changes for version 0.78

- -
-  * Octave's handling of global variables has been completely
-    rewritten.  To access global variables inside a function, you must
-    now declare them to be global within the function body.  Likewise,
-    if you do not declare a variable as global at the command line,
-    you will not have access to it within a function, even if it is
-    declared global there.  For example, given the function
-
-      function f ()
-        global x = 1;
-        y = 2;
-      endfunction
-
-    the global variable `x' is not visible at the top level until the
-    command
-
-      octave:13> global x
-
-    has been evaluated, and the variable `y' remains local to the
-    function f() even if it is declared global at the top level.
-
-    Clearing a global variable at the top level will remove its global
-    scope and leave it undefined.  For example,
-
-      octave:1> function f ()   # Define a function that accesses
-      >  global x;              #   the global variable `x'.
-      >  x
-      > endfunction
-      octave:2> global x = 1    # Give the variable `x' a value.
-      octave:3> f ()            # Evaluating the function accesses the
-      x = 1                     #   global `x'.
-      octave:4> clear x         # Remove `x' from global scope, clear value.
-      octave:5> x = 2           # Define new local `x' at the top level
-      x = 2
-      octave:6> f               # The global `x' is no longer defined.
-      error: `x' undefined near line 1 column 25
-      error: evaluating expression near line 1, column 25
-      error: called from `f'
-      octave:7> x               # But the local one is.
-      x = 2
-
-  * The new function, `is_global (string)' returns 1 if the variable
-    named by string is globally visible.  Otherwise, returns 0.
-
-  * The implementation of `who' has changed.  It now accepts the
-    following options:
-
-      -b -builtins   -- display info for built-in variables and functions
-      -f -functions  -- display info for currently compiled functions
-      -v -variables  -- display info for user variables
-      -l -long       -- display long info
-
-    The long output looks like this:
-
-      octave:5> who -l
-
-      *** currently compiled functions:
-
-      prot  type               rows   cols  name
-      ====  ====               ====   ====  ====
-       wd   user function         -      -  f
-
-      *** local user variables:
-
-      prot  type               rows   cols  name
-      ====  ====               ====   ====  ====
-       wd   real scalar           1      1  y
-
-      *** globally visible user variables:
-
-      prot  type               rows   cols  name
-      ====  ====               ====   ====  ====
-       wd   complex matrix       13     13  x
-
-    where the first character of the `protection' field is `w' if the
-    symbol can be redefined, and `-' if it has read-only access.  The
-    second character may be `d' if the symbol can be deleted, or `-'
-    if the symbol cannot be cleared.
-
-  * The new built-in variable ignore_function_time_stamp can be used
-    to prevent Octave from calling stat() each time it looks up
-    functions defined in M-files.  If set to "system", Octave will not
-    automatically recompile M-files in subdirectories of
-    $OCTAVE_HOME/lib/VERSION if they have changed since they were last
-    compiled, but will recompile other M-files in the LOADPATH if they
-    change.  If set to "all", Octave will not recompile any M-files
-    unless their definitions are removed with clear.  For any other
-    value of ignore_function_time_stamp, Octave will always check to
-    see if functions defined in M-files need to recompiled.  The
-    default value of ignore_function_time_stamp is "system".
-
-  * The new built-in variable EDITOR can be used to specify the editor
-    for the edit_history command.  It is set to the value of the
-    environment variable EDITOR, or `vi' if EDITOR is not set, or is
-    empty.
-
-  * There is a new built-in variable, INFO_FILE, which is used as the
-    location of the info file.  Its initial value is
-    $OCTAVE_HOME/info/octave.info, so `help -i' should now work
-    provided that OCTAVE_HOME is set correctly, even if Octave is
-    installed in a directory different from that specified at compile
-    time.
-
-  * There is a new command line option, --info-file FILE, that may be
-    used to set Octave's idea of the location of the info file.  It
-    will override any value of OCTAVE_INFO_FILE found in the
-    environment, but not any INFO_FILE="filename" commands found in
-    the system or user startup files. 
-
-  * Octave's Info reader will now recognize gzipped files that have
-    names ending in `.gz'.
-
-  * The save command now accepts regular expressions as arguments.
-    Note that these patterns are regular expressions, and do not work
-    like filename globbing.  For example, given the variables `a',
-    `aa', and `a1', the command `save a*' saves `a' and `aa' but not
-    `a1'.  To match all variables beginning with `a', you must use an
-    expression like `a.*' (match all sequences beginning with `a'
-    followed by zero or more characters).
-
-  * Line and column information is included in more error messages.
-
- -

Summary of changes for version 0.77

- -
-  * Improved help.  The command `help -i topic' now uses the GNU Info
-    browser to display help for the given topic directly from the
-    Texinfo documenation.
-
-  * New function: chol -- Cholesky factorization.
-
- -

Summary of changes for version 0.76

- -
-  * Better run-time error messages.  Many now include line and column
-    information indicating where the error occurred.  Octave will also
-    print a traceback for errors occurring inside functions. If you
-    find error messages that could use improvement, or errors that
-    Octave fails to catch, please send a bug report to
-    bug-octave@bevo.che.wisc.edu.
-
-  * If gplot (or gsplot) is given a string to plot, and the string
-    does not name a file, Octave will pass the string along to gnuplot
-    directly.  This allows commands like
-
-      gplot "sin (x)" w l, data w p
-
-    to work (assuming that data is a variable containing a matrix of
-    values).
-
-  * Long options (--help, --version, etc.) are supported.
-
- -

Summary of changes for version 0.75

- -
-  * The documentation is much more complete, but still could use a lot
-    of work.
-
-  * The history function now prints line numbers by default.  The
-    command `history -q' will  omit them.
-
-  * The clear function now accepts regular expressions.
-
-  * If gplot (or gsplot) is given a string to plot, and the string
-    names a file, Octave attempts to plot the contents of the file.
-
-  * New functions:
-
-    history:
-
-      run_history  -- run commands from the history list.
-      edit_history -- edit commands from the history list with your
-                      favorite editor.
-
-    linear algebra:
-
-      balance         -- Balancing for algebraic and generalized
-                         eigenvalue problems.
-      givens          -- Givens rotation.
-      is_square       -- Check to see if a matrix is square.
-      qzhess          -- QZ decomposition of the matrix pencil (a - lambda b).
-      qzval           -- Generalized eigenvalues for real matrices.
-      syl             -- Sylvester equation solver.
-
-    control systems:
-
-      is_symmetric    -- Check to see if a matrix is symmetric.
-      abcddim         -- Check dimensions of linear dynamic system [A,B,C,D].
-      is_controllable -- Check to see if [A,B,C,D] is controllable.
-      is_observable   -- Check to see if [A,B,C,D] is observable.
-      are             -- Solve algebraic Ricatti equation.
-      dare            -- Solve discrete-time algebraic Ricatti equation.
-      lqe             -- Kalman filter design for continuous linear system.
-      lqr             -- Linear Quadratic Regulator design.
-      lyap            -- Solve Lyapunov equation.
-      dlyap           -- Solve discrete Lyapunov equation.
-      tzero           -- Compute the transmission zeros of [A,B,C,D].
-
- -

Summary of changes for version 0.74

- -
-  * Formal parameters to functions are now always considered to be
-    local variables, so things like
-
-      global x = 0
-      global y = 0
-      function y = f (x) x = 1; y = x; end
-      f (x)
-
-    result in the function returning 1, with the global values of x
-    and y unchanged.
-
-  * Multiple assignment expressions are now allowed to take indices,
-    so things like
-
-      octave:13> [a([1,2],[3,4]), b([5,6],[7,8])] = lu ([1,2;3,4])
-
-    will work correctly.
-
- -

Summary of changes for version 0.73

- -
-  * Saving and loading global variables works correctly now.
-
-  * The save command no longer saves built-in variables.
-
-  * Global variables are more reliable.
-
-  * Matrices may now have one or both dimensions zero, so that
-    operations on empty matrices are now handled more consistently.
-
-    By default, dimensions of the empty matrix are now printed along
-    with the empty matrix symbol, `[]'.  For example:
-
-      octave:13> zeros (3, 0)
-      ans = 
-
-      [](3x0)
-
-    The new variable `print_empty_dimensions' controls this behavior.
-    
-    See also Carl de Boor, An Empty Exercise, SIGNUM, Volume 25,
-    pages 2--6, 1990, or C. N. Nett and W. M. Haddad, A
-    System-Theoretic Appropriate Realization of the Empty Matrix
-    Concept, IEEE Transactions on Automatic Control, Volume 38,
-    Number 5, May 1993.
-
-  * The right and left division operators `/' and `\' will now find a
-    minimum norm solution if the system is not square, or if the
-    coefficient matrix is singular.
-
-  * New functions:
-
-      hess   -- Hessenberg decomposition
-      schur  -- Ordered Schur factorization
-      perror -- print error messages corresponding to error codes
-                returned from the functions fsolve, npsol, and qpsol
-                (with others to possibly be added later).
-
-  * Octave now prints a warning if it finds anything other than
-    whitespace or comments after the final `end' or `endfunction'
-    statement.
-
-  * The bodies of functions, and the for, while, and if commands are
-    now allowed to be empty.
-
-  * Support for Gill and Murray's QPSOL has been added.  Like NPSOL,
-    QPSOL is not freely redistributable either, so you must obtain
-    your own copy to be able to use this feature.  More information
-    about where to find QPSOL and NPSOL are in the file README.NLP.
-
- -

Summary of changes for version 0.72

- -
-  * For numeric output, columns are now lined up on the decimal point.
-    (This requires libg++-2.3.1 or later to work correctly).
-
-  * If octave is running interactively and the output intended for the
-    screen is longer than one page and a pager is available, it is
-    sent to the pager through a pipe.  You may specify the program to
-    use as the pager by setting the variable PAGER.  PAGER may also
-    specify a command pipeline.
-
-  * Spaces are not always significant inside square brackets now, so
-    commands like
-
-      [ linspace (1, 2) ]
-
-    will work.  However, some possible sources of confusion remain
-    because Octave tries (possibly too hard) to determine exactly what
-    operation is intended from the context surrounding an operator.
-    For example:
-
-    -- In the command 
-
-         [ 1 - 1 ]
-
-       the `-' is treated as a binary operator and the result is the
-       scalar 0, but in the command
-
-         [ 1 -1 ]
-
-       the `-' is treated as a unary operator and the result is the
-       vector [ 1 -1 ].
-
-    -- In the command
-
-         a = 1; [ 1 a' ]
-
-       the single quote character `'' is treated as a transpose operator
-       and the result is the vector [ 1 1 ], but in the command
-
-         a = 1; [ 1 a ' ]
-
-       an error message indicating an unterminated string constant is
-       printed.
-
-  * Assignments are just expressions now, so they are valid anywhere
-    other expressions are.  This means that things like
-
-      if (a = n < m) ... endif
-
-    are valid.  This is parsed as:  compare `n < m', assign the result
-    to the variable `a', and use it as the test expression in the if
-    statement.
-
-    To help avoid errors where `=' has been used but `==' was
-    intended, Octave issues a warning suggesting parenthesis around
-    assignments used as truth values.  You can suppress this warning
-    by adding parenthesis, or by setting the value of the new built-in
-    variable `warn_assign_as_truth_value' to 'false' (the default
-    value is 'true').
-
-    This is also true for multiple assignments, so expressions like
-
-      [a, b, c] = [u, s, v] = expression
-
-    are now possible.  If the expression is a function, nargout is set
-    to the number of arguments for the right-most assignment.  The
-    other assignments need not contain the same number of elements.
-    Extra left hand side variables in an assignment become undefined.
-
-  * The default line style for plots is now `lines' instead of
-    `points'.  To change it, use the `set data style STYLE' command.
-
-  * New file handling and I/O functions:
-
-      fopen    -- open a file for reading or writing
-      fclose   -- close a file
-      fflush   -- flush output to a file
-      fgets    -- read characters from a file
-      frewind  -- set file position to the beginning of a file
-      fseek    -- set file position
-      ftell    -- tell file position
-      freport  -- print a report for all open files
-      fscanf   -- read from a file
-      sscanf   -- read from a string
-      scanf    -- read from the standard input
-
-  * New built-in variables for file and I/O functions:
-
-      stdin    -- file number corresponding to the standard input stream.
-      stdout   -- file number corresponding to the standard output stream.
-      stderr   -- file number corresponding to the standard error stream.
-
-    The following may be used as the final (optional) argument for
-    fseek: 
-
-      SEEK_SET -- set position relative to the beginning of the file.
-      SEEK_CUR -- set position relative to the current position.
-      SEEK_END -- set position relative to the end of the file.
-
-  * New function: setstr -- convert vectors or scalars to strings
-    (doesn't work for matrices yet).
-
-  * If possible, computer now prints the system type instead of
-    always printing `Hi Dave, I'm a HAL-9000'.
-
-  * Octave now properly saves and restores its internal state
-    correctly in more places.  Interrupting Octave while it is
-    executing a script file no longer causes it to exit.
-
-  * Octave now does tilde expansion on each element of the LOADPATH.
-
-  * A number of memory leaks have been plugged.
-
-  * Dependencies for C++ source files are now generated automatically
-    by g++.
-
-  * There is a new command line option, -p PATH, that may be used to
-    set Octave's loadpath from the command line.  It will override any
-    value of OCTAVE_PATH found in the environment, but not any
-    LOADPATH="path" commands found in the system or user startup files.
-
-  * It is now possible to override Octave's default idea of the
-    location of the system-wide startup file (usually stored in
-    $(prefix)/lib/octave/octaverc) using the environment variable
-    OCTAVE_HOME.  If OCTAVE_HOME has a value, Octave will look for
-    octaverc and its M-files in the directory $OCTAVE_HOME/lib/octave.
-
-    This allows people who are using binary distributions (as is
-    common with systems like Linux) to install the real octave binary
-    in any directory (using a name like octave.bin) and then install
-    a simple script like this
-
-      #!/bin/sh
-      OCTAVE_HOME=/foo/bar/baz
-      export OCTAVE_HOME
-      exec octave.bin
-
-    to be invoked as octave.
-
-
- -

Summary of changes for version 0.71

- -
-  * Much improved plotting facility.  With this release, Octave does
-    not require a specially modified version of gnuplot, so gnuplot
-    sources are no longer distributed with Octave.  For a more
-    detailed description of the new plotting features, see the file
-    PLOTTING.
-
-  * New plotting commands:
-
-      plot            -- 2D plots
-      semilogx        -- 2D semilog plot with logscale on the x axis
-      semilogy        -- 2D semilog plot with logscale on the y axis
-      loglog          -- 2D log-log plot
-      mesh            -- 3D mesh plot
-      meshdom         -- create matrices for 3D plotting from two vectors
-      contour         -- contour plots of 3D data
-      bar             -- create bar graphs
-      stairs          -- create stairstep plots
-      polar           -- 2D plots from theta-R data
-      grid            -- turn plot grid lines on or off
-      xlabel, ylabel  -- place labels on the x and y axes of 2D plots
-      sombrero        -- demonstrate 3D plotting
-      gplot           -- 2D plot command with gnuplot-like syntax
-      gsplot          -- 3D plot command with gnuplot-like syntax
-      set             -- set plot options with gnuplot syntax
-      show            -- show plot options with gnuplot syntax
-      closeplot       -- close stream to gnuplot process
-      purge_tmp_files -- delete temporary files created by plot command
-
-  * Other new commands:
-
-      ls, dir         -- print a directory listing
-      shell_cmd       -- execute shell commands
-      keyboard        -- get input from keyboard, useful for debugging
-      menu            -- display a menu of options and ask for input
-      fft             -- fast fourier transform
-      ifft            -- inverse fast fourier transform
-
-  * Strings may be enclosed in either single or double quote
-    characters.  Double quote characters are not special within single
-    quote strings, and single quotes are not special within double
-    quote strings.
-
-  * Command name completion now works for M-file names too.
-
-  * Better help and usage messages for many functions.
-
-  * Help is now available for functions defined in M-files.  The first
-    block of comments is taken as the text of the help message.
-
-  * Numerous changes in preparation to support dynamic loading of
-    object files with dld.
-
-  * Bug fixes to make solving DAEs with dassl actually work.
-
-  * The command `save file' now saves all variables in the named file.
-
-  * If do_fortran_indexing is 'true', indexing a scalar with
-    [1,1,1,...] (n times) replicates its value n times.  The
-    orientation of the resulting vector depends on the value of
-    prefer_column_vectors.
-
-  * Things like [[1,2][3,4]] no longer cause core dumps, and invalid
-    input like [1,2;3,4,[5,6]] now produces a diagnositic message.
-
-  * The cd, save, and load commands now do tilde expansion.
-
-  * It's now possible to clear global variables and functions by name.
-
-  * Use of clear inside functions is now a parse error.
-
- -

Summary of changes for version 0.70

- -
-  * Better parse error diagnostics.  For interactive input, you get
-    messages like
-
-      octave:1> a = 3 + * 4;
-
-      parse error:
-
-          a = 3 + * 4;
-                  ^
-
-    and for script files, the message includes the file name and input
-    line number:
-
-      octave:1> foo
-
-      parse error near line 4 of file foo.m:
-
-          a = 3 + * 4;
-                  ^
-
-  * New built-in variable PS2 which is used as the secondary prompt.
-    The default value is '> '.
-
-  * New file, octave-mode.el, for editing Octave code with GNU Emacs.
-    This is a modified version of Matthew R. Wette's matlab-mode.el.
-
-  * Better support for missing math functions.
-
-  * User preferences are now cached in a global struct so we don't
-    have to do a symbol table lookup each time we need to know what
-    they are.  This should mean slightly improved performance for
-    evaluating expressions.
-
- -

Summary of changes for version 0.69

- -
-  * Multiple assignments are now possible, so statements like
-
-      a = b = c = 3;
-      a = b = c = [1,2;3,4];
-
-    or
-
-      c = (a = (b = 2) * 3 + 4) * 5
-
-    are legal, as are things that have even more bizarre effects, like
-
-      a(4:6,4:6) = b(2:3,2:3) = [1,2;3,4];
-
-    (try it).
-
-  * Improved parsing of strings (but they still don't work as matrix
-    elements).
-
-  * An M-file may now either define a function or be a list of
-    commands to execute.
-
-  * Better detection and conditional compilation of IEEE functions
-    isinf, finite, and isnan.
-
-  * Replacements for acosh, asinh, atanh, and gamma from the BSD math
-    library for those systems that don't have them.
-
- -

Summary of changes for version 0.68

- -
-  * New functions:
-
-      eval  -- evaluate a string as a sequence of Octave commands. 
-      input -- print a prompt and get user input.
-
- -

Summary of changes for version 0.67

- -
-  * New functions:
-
-      find -- return the indices of nonzero elements.
-
-  * Zero-one style indexing now works.  For example,
-
-      a = [1,2,3,4];
-      b = a([1,0,0,1])
-
-    sets b to the first and fourth elememnts of a.
-
-    Zero-one style indexing also works for indexing the left hand side
-    of an assignment.  For example,
-
-      a = rand (1,2;3,4);
-      a([0,1],:) = [-1,-2]
-
-    sets the second row of a to [-1 -2]
-
-    The behavior for the ambiguous case
-
-      a = [1,2,3,4];
-      b = a([1,1,1,1]);
-
-    is controlled by the new global variable `prefer_zero_one_indexing'.
-    If this variable is equal to 'true', b will be set to [1 2 3 4].
-    If it is false, b will be set to [1 1 1 1].  The default value is
-    'false'.
-
-  * Using the new global variable `propagate_empty_matrices', it is
-    possible to have unary andy binary operations on empty matrices
-    return an empty matrix.  The default value of this variable is
-    'warn', so that empty matrices are propagated but you get a
-    warning.  Some functions, like eig and svd have also been changed
-    to handle this.
-
-  * Empty matrices can be used in conditionals, but they always
-    evaluate to `false'.  With propagate_empty_matrices = 'true', both
-    of the following expressions print 0: 
-
-      if  [], 1, else 0, end
-      if ~[], 1, else 0, end
-
-  * Octave no longer converts input like `3.2 i' or `3 I' to complex
-    constants directly because that causes problems inside square
-    brackets, where spaces are important.  This abbreviated notation
-    *does* work if there isn't a space between the number and the i,
-    I, j, or J.
-
- -

Summary of changes for version 0.66

- -
-  * Logical unary not operator (~ or !) now works for complex.
-
-  * Left division works.
-
-  * Right and left element by element division should work correctly
-    now.
-
-  * Numbers like .3e+2 are no longer errors.
-
-  * Indexing a matrix with a complex value doesn't cause a core dump.
-
-  * The min and max functions should work correctly for two arguments.
-
-  * Improved (I hope!) configuration checks.
-
-  * Octave is now installed as octave-M.N, where M and N are version
-    numbers, and octave is a link to that file.  This makes it
-    possible to have more than one version of the interpreter installed.
-
- -

Summary of changes for version 0.63

- -
-  * The reshape function works again.
-
-  * Octave now converts input like `3.2i' or `3 I' or `2.3e5 j' to be 
-    complex constants directly, rather than requiring an expression
-    like `3.3 * i' to be evaluated.
-
- -

Summary of changes for version 0.61

- -
-  * Octave has been successfully compiled using gcc 2.3.3 and libg++ 2.3.
-    on a 486 system running Linux.
-
-  * The win_texas_lotto function is now called texas_lotto (it's a
-    script file, and win_texas_lotto.m is too long for some Linux and
-    System V systems).
-
- -

Summary of changes for version 0.57

- -
-  * The C-like formatted print functions printf, fprintf, and sprintf
-    finally work. 
-
- -

Summary of changes for version 0.56

- -
-  * By default, octave prints a short disclaimer when it starts.
-    (You can suppress it by invoking octave with -q).
-
-  * You can keep octave from reading your ~/.octaverc and .octaverc
-    files by invoking it with -f.
-
-  * When returning two values, eig now returns [v, d] instead of
-    [lambda, v], where d is a diagonal matrix made from lambda.
-
-  * The win_texas_lotto function now produces a sorted list.
-
-  * New functions:
-
-      expm -- matrix exponential.
-      logm -- matrix logarithm.
-
- -

Summary of changes for version 0.55

- -
-  * The following (C-style) backslash escape sequences work in quoted
-    strings (useful(?) with printf()):
-
-      \a  bell         \r  carriage return
-      \b  backspace    \t  horizontal tab
-      \f  formfeed     \v  vertical tab
-      \n  newline      \\  backslash
-
-  * Use of `...' at the end of a line will allow a statement to
-    continue over more than one line.
-
-  * The names `inf' and `nan' are now aliases for `Inf' and `NaN',
-    respectively.
-
-  * New functions:
-
-      casesen -- print a warning if the luser tries to turn off case
-                 sensitivity.
-      median  -- find median value.
-      norm    -- compute the norm of a matrix.
-      sort    -- sort columns.
-
-  * New variable, `silent_functions'.  If silent_functions == 'true',
-    the results of expressions are not printed even if they are not
-    followed by a semicolon.  The disp() and printf() functions still
-    result in output.  The default value for this variable is 'false'.
-
-  * New variable `return_last_value_computed'.  If it is 'true',
-    functions defined in script files return the last value computed
-    if a return value has not been explicitly declared.  The default
-    value for this variable is 'false'.
-
- -

Summary of changes for version 0.52

- -
-  * Name completion works for function and variable names currently in
-    the symbol tables.  Coming soon: completion for names of functions
-    defined in script files but not yet compiled. 
-
-  * The initial value of do_fortran_indexing is now false, and the
-    initial value of prefer_column_vectors is now true.  Swap the
-    values of these variables if you want behavior that is more like
-    Matlab.
-
-  * All script files check the number of input arguments before doing
-    much real work.
-
-  * The identifiers `i' and `j' are now also names for sqrt(-1).
-    These symbols may be used for other purposes, but their original
-    definition will reappear if they are cleared.
-
-  * The symbol tables are now implemented with hash tables for faster
-    searching. 
-
-  * A small amount of help is now available for most built-in
-    operators, keywords and functions.  Coming soon: help for script
-    files.
-
-  * Without any arguments, the help command now lists all known
-    built-in operators, keywords and functions.
-
-  * Generic parse errors are now signalled by `Eh, what's up doc?',
-    which is closer to what Bugs actually says.
-
-  * The who command now only prints variable names by default.
-    Use the -fcn (or -fcns, or -functions) switch to print the names of
-    built-in or currently compiled functions.
-
- -

Summary of changes for version 0.51

- -
-  * Major overhaul of array indexing.
-
-  * The colloc function actually works now.
-
- -

Summary of changes for version 0.50

- -
-  * The lsode and dassl functions now return the states only,
-    instead of the time and the states, so you must keep track of
-    the corresponding times (this is easy though, because you have
-    to specify a vector of desired output times anyway).
-
-  * Solution of NLPs with NPSOL now works on the SPARC.
-
-  * New keywords `endif', `endfor', `endfunction', `endif', and
-    `endwhile', which allow for better diagnostics.  The `end' keyword
-    is still recognized.  All script files have been changed to use
-    these new keywords in place of `end'.
-
-  * It is now possible to uninstall Octave by doing a `make uninstall'
-    in the top level directory.
-
-  * The Makefiles are much closer to conforming with GNU coding standards.
-
-  * New functions:
-
-      win_texas_lotto  -- produce six unique random numbers between 1 and 50.
-      quad             -- numerical integration.
-      lu               -- LU factorization
-      qr               -- QR factorization
-      dassl            -- Solution of DAEs using DASSL.
-
-  * New files:
-
-      THANKS -- A list of people and organazations who have supported
-                the development of Octave.
-
-      NEWS   -- This file, listing recent changes.
-
-  * Help is now available at the gnuplot prompt.
-
- - - diff -r fe5dcb23372a -r dedb85c54245 NEWS-2.html --- a/NEWS-2.html Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1274 +0,0 @@ - - - - Changes in Octave version 2 - - - -

News for Octave Version 2

-
- -

Summary of changes for version 2.0.17

- -

This will probably be the last release in the 2.0.x series. There are -a few bug fixes, but the major change is to print a message saying -that Octave 2.0.x cannot be compiled with gcc 3.0.x or gcc 2.96. If -you want to build Octave 2.0.x, you will need to use gcc 2.95.x. If -you want to use gcc 3.0.x or some later version, you should be using -the Octave 2.1.35 sources or a more recent version.

- -

Summary of changes for version 2.0.16

- -

This is primarily a bug-fixing release.

- -

Summary of changes for version 2.0.15

- -

This is primarily a bug-fixing release.

- - - -

Summary of changes for version 2.0.14

- -This release fixes numerous bugs and adds the following new features: - - -

Summary of changes for version 2.0.13

- -

This is a bug-fixing release. There are no new user-visible features.

- -

Summary of changes for version 2.0.12

- - - -

Summary of changes for version 2.0.11

- - - -

Summary of changes for version 2.0.10

- - - -

Summary of changes for version 2.0.9

- -

This is a bug-fixing release, but there is one new user-visible -feature:

- - - -

Summary of changes for version 2.0.8

- -

This is a bug-fixing release. There are only a few new user-visible -features.

- - - -

Summary of changes for version 2.0.7

- -

This is a bug-fixing release. There are no new user-visible features.

- -

Summary of changes for version 2.0.6

- -

This is primarily a bug-fixing release. There are only a few new -user-visilbe features.

- - - -

Summary of changes for version 2.0.5

- - - -

Summary of changes for version 2.0.4

- - - -

Summary of changes for version 2.0.3

- - - -

Summary of changes for version 2.0.2

- - - - -

Summary of changes for version 2.0.1

- -

Other than bug fixes, there were no user-visible changes in version -2.0.1. - -

Summary of changes for version 2.0

- -

- - - diff -r fe5dcb23372a -r dedb85c54245 NEWS-3.2.html --- a/NEWS-3.2.html Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,398 +0,0 @@ -
-Summary of important user-visible changes for version 3.2:
----------------------------------------------------------
-
- ** Compatibility with Matlab graphics has been improved.
-
-    The hggroup object and associated listener callback functions have
-    been added allowing the inclusion of group objects.  Data sources
-    have been added to these group objects such that
-
-           x = 0:0.1:10;
-           y = sin (x);
-           plot (x, y, "ydatasource", "y");
-           for i = 1 : 100
-             pause(0.1)
-             y = sin (x + 0.1 * i);
-             refreshdata();
-           endfor
-
-    works as expected.  This capability has be used to introduce
-    stem-series, bar-series, etc., objects for better Matlab
-    compatibility.
-
- ** New graphics functions:
-
-      addlistener         ezcontour   gcbo         refresh  
-      addproperty         ezcontourf  ginput       refreshdata
-      allchild            ezmesh      gtext        specular
-      available_backends  ezmeshc     intwarning   surfl
-      backend             ezplot      ishghandle   trisurf
-      cla                 ezplot3     isocolors    waitforbuttonpress
-      clabel              ezpolar     isonormals  
-      comet               ezsurf      isosurface  
-      dellistener         findall     linkprop   
-      diffuse             gcbf        plotmatrix
-
- ** New experimental OpenGL/FLTK based plotting system.
-
-    An experimental plotting system based on OpenGL and the FLTK
-    toolkit is now part of Octave.  This backend is disabled by
-    default.  You can switch to using it with the command
-
-        backend ("fltk")
-
-    for all future figures or for a particular figure with the command
-
-        backend (h, "fltk")
-
-    where "h" is a valid figure handle.  Please note that this backend
-    does not yet support text objects.  Obviously, this is a necessary
-    feature before it can be considered usable.  We are looking for
-    volunteers to help implement this missing feature.
-
- ** Functions providing direct access to gnuplot have been removed.
-
-    The functions __gnuplot_plot__, __gnuplot_set__, __gnuplot_raw__,
-     __gnuplot_show__, __gnuplot_replot__, __gnuplot_splot__,
-     __gnuplot_save_data__ and __gnuplot_send_inline_data__ have been
-     removed from Octave.  These function were incompatible with the
-     high level graphics handle code.
-
- ** The Control, Finance and Quaternion functions have been removed.
-
-    These functions are now available as separate packages from
-
-      http://octave.sourceforge.net/packages.html
-
-    and can be reinstalled using the Octave package manager (see
-    the pkg function).
-
- ** Specific sparse matrix functions removed.
-
-    The following functions, which handled only sparse matrices have
-    been removed.  Instead of calling these functions directly, you
-    should use the corresponding function without the "sp" prefix.
-
-      spatan2     spcumsum  spkron   spprod
-      spchol      spdet     splchol  spqr
-      spchol2inv  spdiag    splu     spsum
-      spcholinv   spfind    spmax    spsumsqk
-      spcumprod   spinv     spmin
-
- ** Improvements to the debugger.
-
-    The interactive debugging features have been improved.  Stopping
-    on statements with dbstop should work correctly now.  Stepping
-    into and over functions, and stepping one statement at a time
-    (with dbstep) now works.  Moving up and down the call stack with
-    dbup and dbdown now works.  The dbstack function is now available
-    to print the current function call stack.  The new dbquit function
-    is available to exit the debugging mode.
-
- ** Improved traceback error messages.
-
-    Traceback error messages are much more concise and easier to
-    understand.  They now display information about the function call
-    stack instead of the stack of all statements that were active at
-    the point of the error.
-
- ** Object Oriented Programming.
-
-    Octave now includes OOP features and the user can create their own
-    class objects and overloaded functions and operators.  For
-    example, all methods of a class called "myclass" will be found in
-    a directory "@myclass" on the users path.  The class specific
-    versions of functions and operators take precedence over the
-    generic versions of these functions.
-
-    New functions related to OOP include
-
-      class  inferiorto  isobject  loadobj  methods  superiorto
-
-    See the Octave manual for more details.
-
- ** Parsing of Command-style Functions.
-
-    Octave now parses command-style functions without needing to first
-    declare them with "mark_as_command".  The rules for recognizing a
-    command-style function calls are
-
-      * A command must appear as the first word in a statement,
-        followed by a space.
-
-      * The first character after the space must not be '=' or '('
-
-      * The next token after the space must not look like a binary
-        operator.
-
-    These rules should be mostly compatible with the way Matlab parses
-    command-style function calls and allow users to define commands in
-    .m files without having to mark them as commands.
-
-    Note that previous versions of Octave allowed expressions like
-
-      x = load -text foo.dat
-
-    but an expression like this will now generate a parse error.  In
-    order to assign the value returned by a function to a variable,
-    you must use the normal function call syntax:
-
-      x = load ("-text", "foo.dat");
-
- ** Block comments.
-
-    Commented code can be between matching "#{" and "#}" or "%{" and
-    "%}" markers, even if the commented code spans several line.  This
-    allows blocks code to be commented, without needing to comment
-    each line.  For example,
-
-    function [s, t] = func (x, y)
-      s = 2 * x;
-    #{
-      s *= y;
-      t = y + x;
-    #}
-    endfunction
-
-    the lines "s *= y;" and "t = y + x" will not be executed.
-
- ** Special treatment in the parser of expressions like "a' * b".
-
-    In these cases the transpose is no longer explicitly formed and
-    BLAS libraries are called with the transpose flagged,
-    significantly improving performance for these kinds of
-    operations.
-
- ** Single Precision data type.
-
-    Octave now includes a single precision data type.  Single
-    precision variables can be created with the "single" command, or
-    from functions like ones, eye, etc.  For example,
-
-      single (1)
-      ones (2, 2, "single")
-      zeros (2, 2, "single")
-      eye (2, 2, "single")
-      Inf (2, 2, "single")
-      NaN (2, 2, "single")
-      NA (2, 2, "single")
-
-    all create single precision variables.  For compatibility with
-    Matlab, mixed double/single precision operators and functions
-    return single precision types.
-
-    As a consequence of this addition to Octave the internal
-    representation of the double precision NA value has changed, and
-    so users that make use of data generated by Octave with R or
-    visa-versa are warned that compatibility might not be assured.
-
- ** Improved array indexing.
-
-    The underlying code used for indexing of arrays has been
-    completely rewritten and indexing is now significantly faster.
-
- ** Improved memory management.
-
-    Octave will now attempt to share data in some cases where previously
-    a copy would be made, such as certain array slicing operations or
-    conversions between cells, structs and cs-lists.  This usually reduces
-    both time and memory consumption.
-    Also, Octave will now attempt to detect and optimize usage of a vector 
-    as a stack, when elements are being repeatedly inserted at/removed from 
-    the end of the vector.
-
- ** Improved performance for reduction operations.
-
-    The performance of the sum, prod, sumsq, cumsum, cumprod, any, all,
-    max and min functions has been significantly improved.
-
- ** Sorting and searching.
-    
-    The performance of sort has been improved, especially when sorting
-    indices are requested. An efficient built-in issorted implementation
-    was added. sortrows now uses a more efficient algorithm, especially
-    in the homegeneous case. lookup is now a built-in function performing
-    a binary search, optimized for long runs of close elements. Lookup
-    also works with cell arrays of strings.
-
- ** Range arithmetics
-
-    For some operations on ranges, Octave will attempt to keep the result as a
-    range.  These include negation, adding a scalar, subtracting a scalar, and
-    multiplying by a scalar. Ranges with zero increment are allowed and can be
-    constructed using the built-in function `ones'.
-
- ** Various performance improvements.
-
-    Performance of a number of other built-in operations and functions was
-    improved, including:
-
-    * logical operations
-    * comparison operators
-    * element-wise power
-    * accumarray
-    * cellfun
-    * isnan
-    * isinf
-    * isfinite
-    * nchoosek
-    * repmat
-    * strcmp
-
- ** 64-bit integer arithmetic.
-
-    Arithmetic with 64-bit integers (int64 and uint64 types) is fully
-    supported, with saturation semantics like the other integer types.
-    Performance of most integer arithmetic operations has been
-    improved by using integer arithmetic directly.  Previously, Octave
-    performed integer math with saturation semantics by converting the
-    operands to double precision, performing the operation, and then
-    converting the result back to an integer value, truncating if
-    necessary.
-
- ** Diagonal and permutation matrices.
-
-    The interpreter can now treat diagonal and permutation matrices as
-    special objects that store only the non-zero elements, rather than
-    general full matrices.  Therefore, it is now possible to construct
-    and use these matrices in linear algebra without suffering a
-    performance penalty due to storing large numbers of zero elements.
-
- ** Improvements to fsolve.
-
-    The fsolve function now accepts an option structure argument (see
-    also the optimset function).  The INFO values returned from fsolve
-    have changed to be compatible with Matlab's fsolve function.
-    Additionally, fsolve is now able to solve overdetermined systems,
-    complex-differentiable complex systems, systems with a sparse
-    jacobian and can work in single precision if given single precision
-    inputs.  It can also be called recursively.
-
- ** Improvements to the norm function.
-
-    The norm function is now able to compute row or column norms of a
-    matrix in a single call, as well as general matrix p-norms.
-
- ** New functions for computing some eigenvalues or singular values.
-
-    The eigs and svds functions have been included in Octave.  These
-    functions require the ARPACK library (now distributed under a
-    GPL-compatible license).
-
- ** New QR and Cholesky factorization updating functions.
-
-      choldelete  cholshift   qrdelete  qrshift
-      cholinsert  cholupdate  qrinsert  qrupdate
-
- ** New quadrature functions.
-
-      dblquad  quadgk  quadv  triplequad
-
- ** New functions for reading and writing images.
-
-    The imwrite and imread functions have been included in Octave.
-    These functions require the GraphicsMagick library.  The new
-    function imfinfo provides information about an image file (size,
-    type, colors, etc.)
-
- ** The input_event_hook function has been replaced by the pair of
-    functions add_input_event_hook and remove_input_event_hook so that
-    more than one hook function may be installed at a time.
-
- ** Other miscellaneous new functions.
-
-      addtodate          hypot                       reallog
-      bicgstab           idivide                     realpow
-      cellslices         info                        realsqrt
-      cgs                interp1q                    rectint
-      command_line_path  isdebugmode                 regexptranslate
-      contrast           isfloat                     restoredefaultpath
-      convn              isstrprop                   roundb
-      cummin             log1p                       rundemos
-      cummax             lsqnonneg                   runlength
-      datetick           matlabroot                  saveobj
-      display            namelengthmax               spaugment
-      expm1              nargoutchk                  strchr
-      filemarker         pathdef                     strvcat
-      fstat              perl                        subspace
-      full               prctile                     symvar
-      fzero              quantile                    treelayout
-      genvarname         re_read_readline_init_file  validatestring
-      histc
-
- ** Changes to strcat.
-
-    The strcat function is now compatible with Matlab's strcat
-    function, which removes trailing whitespace when concatenating
-    character strings.  For example
-
-      strcat ('foo ', 'bar')
-      ==> 'foobar'
-
-    The new function cstrcat provides the previous behavior of
-    Octave's strcat.
-
- ** Improvements to the help functions.
-
-    The help system has been mostly re-implemented in .m files to make
-    it easier to modify.  Performance of the lookfor function has been
-    greatly improved by caching the help text from all functions that
-    are distributed with Octave.  The pkg function has been modified
-    to generate cache files for external packages when they are
-    installed.
-
- ** Deprecated functions.
-
-    The following functions were deprecated in Octave 3.0 and will be
-    removed in Octave 3.4 (or whatever version is the second major
-    release after 3.0):
-                                           
-      beta_cdf         geometric_pdf        pascal_pdf      
-      beta_inv         geometric_rnd        pascal_rnd      
-      beta_pdf         hypergeometric_cdf   poisson_cdf     
-      beta_rnd         hypergeometric_inv   poisson_inv     
-      binomial_cdf     hypergeometric_pdf   poisson_pdf     
-      binomial_inv     hypergeometric_rnd   poisson_rnd     
-      binomial_pdf     intersection         polyinteg       
-      binomial_rnd     is_bool              setstr          
-      chisquare_cdf    is_complex           struct_contains 
-      chisquare_inv    is_list              struct_elements 
-      chisquare_pdf    is_matrix            t_cdf           
-      chisquare_rnd    is_scalar            t_inv           
-      clearplot        is_square            t_pdf           
-      clg              is_stream            t_rnd           
-      com2str          is_struct            uniform_cdf     
-      exponential_cdf  is_symmetric         uniform_inv     
-      exponential_inv  is_vector            uniform_pdf     
-      exponential_pdf  isstr                uniform_rnd     
-      exponential_rnd  lognormal_cdf        weibcdf         
-      f_cdf            lognormal_inv        weibinv         
-      f_inv            lognormal_pdf        weibpdf         
-      f_pdf            lognormal_rnd        weibrnd         
-      f_rnd            meshdom              weibull_cdf     
-      gamma_cdf        normal_cdf           weibull_inv     
-      gamma_inv        normal_inv           weibull_pdf     
-      gamma_pdf        normal_pdf           weibull_rnd     
-      gamma_rnd        normal_rnd           wiener_rnd      
-      geometric_cdf    pascal_cdf
-      geometric_inv    pascal_inv
-
-    The following functions are now deprecated in Octave 3.2 and will
-    be removed in Octave 3.6 (or whatever version is the second major
-    release after 3.2):
-
-      create_set          spcholinv  spmax
-      dmult               spcumprod  spmin
-      iscommand           spcumsum   spprod
-      israwcommand        spdet      spqr
-      lchol               spdiag     spsum
-      loadimage           spfind     spsumsq
-      mark_as_command     spinv      str2mat
-      mark_as_rawcommand  spkron     unmark_command
-      spatan2             splchol    unmark_rawcommand
-      spchol              split
-      spchol2inv          splu
-
-See NEWS.3 for old news.
-
diff -r fe5dcb23372a -r dedb85c54245 NEWS-3.4.html --- a/NEWS-3.4.html Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,485 +0,0 @@ -
-Summary of important user-visible changes for version 3.4.3:
------------------------------------------------------------
-
- ** Octave 3.4.3 is a bug fixing release.
-
-Summary of important user-visible changes for version 3.4.2:
------------------------------------------------------------
-
- ** Octave 3.2.4 fixes some minor installation problems that affected
-    version 3.4.1.
-
-Summary of important user-visible changes for version 3.4.1:
------------------------------------------------------------
-
- ** Octave 3.4.1 is primarily a bug fixing release.
-
- ** IMPORTANT note about binary incompatibility in this release:
-
-    Binary compatibility for all 3.4.x releases was originally planned,
-    but this is impossible for the 3.4.1 release due to a bug in the way
-    shared libraries were built in Octave 3.4.0.  Because of this bug,
-    .oct files built for Octave 3.4.0 must be recompiled before they
-    will work with Octave 3.4.1.
-
-    Given that there would be binary incompatibilities with shared
-    libraries going from Octave 3.4.0 to 3.4.1, the following
-    incompatible changes were also made in this release:
-
-      * The Perl Compatible Regular Expression (PCRE) library is now
-        required to build Octave.
-
-      * Octave's libraries and .oct files are now installed in
-        subdirectories of $libdir instead of $libexecdir.
-
-    Any future Octave 3.4.x release versions should remain binary
-    compatible with Octave 3.4.1 as proper library versioning is now
-    being used as recommended by the libtool manual.
-
- ** The following functions have been deprecated in Octave 3.4.1 and will
-    be removed from Octave 3.8 (or whatever version is the second major
-    release after 3.4):
-
-      cquad  is_duplicate_entry  perror  strerror
-
- ** The following functions are new in 3.4.1:
-
-      colstyle  gmres  iscolumn  isrow  mgorth  nproc  rectangle
-
- ** The get_forge_pkg function is now private.
-
- ** The rectangle_lw, rectangle_sw, triangle_lw, and triangle_sw
-    functions are now private.
-
- ** The logistic_regression_derivatives and logistic_regression_likelihood
-    functions are now private.
-
- ** ChangeLog files in the Octave sources are no longer maintained
-    by hand.  Instead, there is a single ChangeLog file generated from
-    the Mercurial version control commit messages.  Older ChangeLog
-    information can be found in the etc/OLD-ChangeLogs directory in the
-    source distribution.
-
-Summary of important user-visible changes for version 3.4:
----------------------------------------------------------
-
- ** BLAS and LAPACK libraries are now required to build Octave.  The
-    subset of the reference BLAS and LAPACK libraries has been removed
-    from the Octave sources.
-
- ** The `lookup' function was extended to be more useful for
-    general-purpose binary searching.  Using this improvement, the
-    ismember function was rewritten for significantly better
-    performance.
-
- ** Real, integer and logical matrices, when used in indexing, will now
-    cache the internal index_vector value (zero-based indices) when
-    successfully used as indices, eliminating the conversion penalty for
-    subsequent indexing by the same matrix.  In particular, this means it
-    is no longer needed to avoid repeated indexing by logical arrays
-    using find for performance reasons.
-
- ** Logical matrices are now treated more efficiently when used as
-    indices.  Octave will keep the index as a logical mask unless the
-    ratio of true elements is small enough, using a specialized
-    code.  Previously, all logical matrices were always first converted
-    to index vectors.  This results in savings in both memory and
-    computing time.
-
- ** The `sub2ind' and `ind2sub' functions were reimplemented as compiled
-    functions for better performance.  These functions are now faster,
-    can deliver more economized results for ranges, and can reuse the
-    index cache mechanism described in previous paragraph.
-
- ** The built-in function equivalents to associative operators (`plus',
-    `times', `mtimes', `and', and `or') have been extended to accept
-    multiple arguments.  This is especially useful for summing
-    (multiplying, etc.) lists of objects (of possibly distinct types):
-   
-      matrix_sum = plus (matrix_list{:});
-
- ** An FTP object type based on libcurl has been implemented.  These
-    objects allow ftp connections, downloads and uploads to be
-    managed.  For example,
-
-      fp = ftp ("ftp.octave.org);
-      cd (fp, "gnu/octave");
-      mget (fp, "octave-3.2.3.tar.bz2");
-      close (fp);
-
- ** The default behavior of `assert (observed, expected)' has been
-    relaxed to employ less strict checking that does not require the
-    internals of the values to match.  This avoids previously valid
-    tests from breaking due to new internal classes introduced in future
-    Octave versions.
-
-    For instance, all of these assertions were true in Octave 3.0.x
-    but false in 3.2.x due to new optimizations and improvements:
-
-      assert (2*linspace (1, 5, 5), 2*(1:5))
-      assert (zeros (0, 0), [])
-      assert (2*ones (1, 5), (2) (ones (1,5)))
-
- ** The behavior of library functions `ismatrix', `issquare', and
-    `issymmetric' has been changed for better consistency.
-    
-    * The `ismatrix' function now returns true for all numeric,
-      logical and character 2-D or N-D matrices.  Previously, `ismatrix' 
-      returned false if the first or second dimension was zero.
-      Hence, `ismatrix ([])' was false, 
-      while `ismatrix (zeros (1,2,0))' was true.
-
-    * The `issquare' function now returns a logical scalar, and is
-      equivalent to the expression
-
-        ismatrix (x) && ndims (x) == 2 && rows (x) == columns (x)
-
-      The dimension is no longer returned.  As a result, `issquare ([])'
-      now yields true.
-    
-    * The `issymmetric' function now checks for symmetry instead of
-      Hermitianness.  For the latter, ishermitian was created.  Also,
-      logical scalar is returned rather than the dimension, so
-      `issymmetric ([])' is now true.
-      
- ** Function handles are now aware of overloaded functions.  If a
-    function is overloaded, the handle determines at the time of its
-    reference which function to call.  A non-overloaded version does not
-    need to exist.
-
- ** Overloading functions for built-in classes (double, int8, cell,
-    etc.) is now compatible with Matlab.
-
- ** Function handles can now be compared with the == and != operators,
-    as well as the `isequal' function.
-
- ** Performance of concatenation (using []) and the functions `cat',
-    `horzcat', and `vertcat' has been improved for multidimensional
-    arrays.
-
- ** The operation-assignment operators +=, -=, *= and /= now behave more
-    efficiently in certain cases.  For instance, if M is a matrix and S a
-    scalar, then the statement
-
-      M += S;
- 
-    will operate on M's data in-place if it is not shared by another
-    variable, usually increasing both time and memory efficiency.
-    
-    Only selected common combinations are affected, namely:
-    
-      matrix += matrix
-      matrix -= matrix
-      matrix .*= matrix
-      matrix ./= matrix
-
-      matrix += scalar
-      matrix -= scalar
-      matrix *= scalar
-      matrix /= scalar
-
-      logical matrix |= logical matrix
-      logical matrix &= logical matrix
-
-    where matrix and scalar belong to the same class.  The left-hand
-    side must be a simple variable reference.
-
-    Moreover, when unary operators occur in expressions, Octave will
-    also try to do the operation in-place if it's argument is a
-    temporary expresssion.
-
- ** The effect of comparison operators (<, >, <=, and >=) applied to
-    complex numbers has changed to be consistent with the strict
-    ordering defined by the `max', `min', and `sort' functions.  More
-    specifically, complex numbers are compared by lexicographical
-    comparison of the pairs `[abs(z), arg(z)]'.  Previously, only real
-    parts were compared; this can be trivially achieved by wrapping the
-    operands in real().
-
- ** The automatic simplification of complex computation results has
-    changed.  Octave will now simplify any complex number with a zero
-    imaginary part or any complex matrix with all elements having zero
-    imaginary part to a real value.  Previously, this was done only for
-    positive zeros.  Note that the behavior of the complex function is
-    unchanged and it still produces a complex value even if the
-    imaginary part is zero.
-
- ** As a side effect of code refactoring in liboctave, the binary
-    logical operations are now more easily amenable to compiler
-    optimizations and are thus significantly faster.
-
- ** Octave now allows user-defined `subsasgn' methods to optimize out
-    redundant copies.  For more information, see the manual.
-
- ** More efficient matrix division handling.  Octave is now able to
-    handle the expressions
-    
-       M' \ V
-       M.' \ V
-       V / M 
-
-    (M is a matrix and V is a vector) more efficiently in certain cases.
-    In particular, if M is triangular, all three expressions will be
-    handled by a single call to xTRTRS (from LAPACK), with appropriate
-    flags.  Previously, all three expressions required a physical
-    transpose of M.
-
- ** More efficient handling of certain mixed real-complex matrix
-    operations.  For instance, if RM is a real matrix and CM a complex
-    matrix,
-    
-      RM * CM
-
-    can now be evaluated either as
-
-      complex (RM * real (CM), RM * imag (CM))
-
-    or as
-
-      complex (RM) * CM,
-
-    depending on the dimensions.  The first form requires more
-    temporaries and copying, but halves the FLOP count, which normally
-    brings better performance if RM has enough rows.  Previously, the
-    second form was always used.
-
-    Matrix division is similarly affected.
-
- ** More efficient handling of triangular matrix factors returned from
-    factorizations.  The functions for computing QR, LU and Cholesky
-    factorizations will now automatically return the triangular matrix
-    factors with proper internal matrix_type set, so that it won't need
-    to be computed when the matrix is used for division.
-
- ** The built-in `sum' function now handles the non-native summation
-    (i.e., double precision sum of single or integer inputs) more
-    efficiently, avoiding a temporary conversion of the whole input
-    array to doubles.  Further, `sum' can now accept an extra option
-    argument, using a compensated summation algorithm rather than a
-    straightforward sum, which significantly improves precision if lots
-    of cancellation occurs in the summation.
-
- ** The built-in `bsxfun' function now uses optimized code for certain
-    cases where built-in operator handles are passed in.  Namely, the
-    optimizations concern the operators `plus', `minus', `times',
-    `ldivide', `rdivide', `power', `and', `or' (for logical arrays),
-    the relational operators `eq', `ne', `lt', `le', `gt', `ge', and the
-    functions `min' and `max'.  Optimizations only apply when both
-    operands are of the same built-in class.  Mixed real/complex and
-    single/double operations will first convert both operands to a
-    common type.
-
- ** The `strfind' and `strrep' functions now have compiled
-    implementations, facilitating significantly more efficient searching
-    and replacing in strings, especially with longer patterns.  The code
-    of `strcat' has been vectorized and is now much more efficient when
-    many strings are concatenated.  The `strcmpi' and `strncmpi'
-    functions are now built-in functions, providing better performance.
- 
- ** Matlab-style ignoring input and output function arguments using
-    tilde (~) is now supported.  Ignored output arguments may be
-    detected from a function using the built-in function `isargout'.
-    For more details, consult the manual. 
-
- ** The list datatype, deprecated since the introduction of cells, has
-    been removed.
-
- ** The accumarray function has been optimized and is now significantly
-    faster in certain important cases.
-
- ** The behavior of isreal and isnumeric functions was changed to be more
-    Matlab-compatible.
-
- ** The integer math & conversion warnings (Octave:int-convert-nan,
-    Octave:int-convert-non-int-val, Octave:int-convert-overflow,
-    Octave:int-math-overflow) have been removed.
-
- ** rem and mod are now built-in functions.  They also handle integer
-    types efficiently using integer arithmetic.
-
- ** Sparse indexing and indexed assignment has been mostly rewritten.
-    Since Octave uses compressed column storage for sparse matrices,
-    major attention is devoted to operations manipulating whole columns.
-    Such operations are now significantly faster, as well as some other
-    important cases.
-
-    Further, it is now possible to pre-allocate a sparse matrix and
-    subsequently fill it by assignments, provided they meet certain
-    conditions.  For more information, consult the `spalloc' function,
-    which is no longer a mere dummy.  Consequently, nzmax and nnz are no
-    longer always equal in Octave.  Octave may also produce a matrix
-    with nnz < nzmax as a result of other operations, so you should
-    consistently use nnz unless you really want to use nzmax (i.e. the
-    space allocated for nonzero elements).
-
-    Sparse concatenation is also affected, and concatenating sparse 
-    matrices, especially larger collections, is now significantly more 
-    efficient.  This applies to both the [] operator and the 
-    cat/vertcat/horzcat functions.
-
- ** It is now possible to optionally employ the xGESDD LAPACK drivers
-    for computing the singular value decomposition using svd(), instead
-    of the default xGESVD, using the configuration pseudo-variable
-    svd_driver.  The xGESDD driver can be up to 6x times faster when
-    singular vectors are requested, but is reported to be somewhat less
-    robust on highly ill-conditioned matrices.
-
- ** Configuration pseudo-variables, such as page_screen_output or 
-    confirm_recursive_rmdir (or the above mentioned svd_driver), now 
-    accept a "local" option as second argument, requesting the change 
-    to be undone when the current function returns:
-        
-    function [status, msg] = rm_rf (dir)
-      confirm_recursive_rmdir (false, "local");
-      [status, msg] = rmdir (dir, "s");
-      ...
-    endfunction
-    
-    Upon return, confirm_recursive_rmdir will be restored to the value 
-    it had on entry to the function, even if there were subsequent 
-    changes to the variable in function rm_rf or any of the functions
-    it calls.
-
- ** pkg now accepts a -forge option for downloading and installing
-    packages from Octave Forge automatically.  For example, 
-    
-      pkg install -forge general
-    
-    will automatically download the latest release of the general
-    package and attempt to install it. No automatic resolving of
-    dependencies is provided.  Further,
-
-      pkg list -forge
-    
-    can be used to list all available packages.
-
-  ** The internal data representation of structs has been completely
-     rewritten to make certain optimizations feasible.  The field data
-     can now be shared between structs with equal keys but different
-     dimensions or values, making operations that preserve the fields
-     faster.  Economized storage is now used for scalar structs (just
-     like most other scalars), making their usage more
-     memory-efficient.  Certain array-like operations on structs
-     (concatenation, uniform cellfun, num2cell) have gained a
-     significant speed-up.  Additionally, the octave_scalar_map class
-     now provides a simpler interface to work with scalar structs within
-     a C++ DLD function.
-
-  ** Two new formats are available for displaying numbers:
-
-       format short eng
-       format long eng
-
-     Both display numbers in engineering notation, i.e., mantissa +
-     exponent where the exponent is a multiple of 3.
-
-  ** The following functions are new in Octave 3.4:
-
-       accumdim    erfcx        nfields      pqpnonneg  uigetdir 
-       bitpack     fileread     nth_element  quadcc     uigetfile  
-       bitunpack   fminbnd      onCleanup    randi      uiputfile    
-       blkmm       fskipl       pbaspect     repelems   uimenu  
-       cbrt        ifelse       pie3         reset      whitebg
-       curl        ishermitian  powerset     rsf2csf    
-       chop        isindex      ppder        saveas          
-       daspect     luupdate     ppint        strread          
-       divergence  merge        ppjumps      textread 
-
-  ** Using the image function to view images with external programs such
-     as display, xv, and xloadimage is no longer supported.  The
-     image_viewer function has also been removed.
-
-  ** The behavior of struct assignments to non-struct values has been
-     changed.  Previously, it was possible to overwrite an arbitrary
-     value:
-      
-        a = 1;
-        a.x = 2;
-
-     This is no longer possible unless a is an empty matrix or cell
-     array.
-  
-  ** The dlmread function has been extended to allow specifying a custom
-     value for empty fields.
-
-  ** The dlmread and dlmwrite functions have been modified to accept
-     file IDs (as returned by fopen) in addition to file names.
-
-  ** Octave can now optimize away the interpreter overhead of an
-     anonymous function handle, if the function simply calls another
-     function or handle with some of its parameters bound to certain
-     values.  Example:
-     
-       f = @(x) sum (x, 1);
-
-     When f is called, the call is forwarded to @sum with the constant 1
-     appended, and the anonymous function call does not occur on the
-     call stack.
-
- ** Deprecated functions.
-
-    The following functions were deprecated in Octave 3.0 and have been
-    removed from Octave 3.4.
-                                           
-      beta_cdf         geometric_pdf        pascal_pdf      
-      beta_inv         geometric_rnd        pascal_rnd      
-      beta_pdf         hypergeometric_cdf   poisson_cdf     
-      beta_rnd         hypergeometric_inv   poisson_inv     
-      binomial_cdf     hypergeometric_pdf   poisson_pdf     
-      binomial_inv     hypergeometric_rnd   poisson_rnd     
-      binomial_pdf     intersection         polyinteg       
-      binomial_rnd     is_bool              setstr          
-      chisquare_cdf    is_complex           struct_contains 
-      chisquare_inv    is_list              struct_elements 
-      chisquare_pdf    is_matrix            t_cdf           
-      chisquare_rnd    is_scalar            t_inv           
-      clearplot        is_square            t_pdf           
-      clg              is_stream            t_rnd           
-      com2str          is_struct            uniform_cdf     
-      exponential_cdf  is_symmetric         uniform_inv     
-      exponential_inv  is_vector            uniform_pdf     
-      exponential_pdf  isstr                uniform_rnd     
-      exponential_rnd  lognormal_cdf        weibcdf         
-      f_cdf            lognormal_inv        weibinv         
-      f_inv            lognormal_pdf        weibpdf         
-      f_pdf            lognormal_rnd        weibrnd         
-      f_rnd            meshdom              weibull_cdf     
-      gamma_cdf        normal_cdf           weibull_inv     
-      gamma_inv        normal_inv           weibull_pdf     
-      gamma_pdf        normal_pdf           weibull_rnd     
-      gamma_rnd        normal_rnd           wiener_rnd      
-      geometric_cdf    pascal_cdf
-      geometric_inv    pascal_inv
-
-    The following functions were deprecated in Octave 3.2 and will
-    be removed from Octave 3.6 (or whatever version is the second major
-    release after 3.2):
-
-      create_set          spcholinv    splu   
-      dmult               spcumprod    spmax
-      iscommand           spcumsum     spmin
-      israwcommand        spdet        spprod
-      lchol               spdiag       spqr
-      loadimage           spfind       spsum
-      mark_as_command     sphcat       spsumsq
-      mark_as_rawcommand  spinv        spvcat 
-      spatan2             spkron       str2mat
-      spchol              splchol      unmark_command
-      spchol2inv          split        unmark_rawcommand
-
-    The following functions have been deprecated in Octave 3.4 and will
-    be removed from Octave 3.8 (or whatever version is the second major
-    release after 3.4):
-
-      autocor  cellidx   gammai     krylovb    values
-      autocov  dispatch  glpkmex    replot
-      betai    fstat     is_global  saveimage
-
-  * For compatibility with Matlab, mu2lin (x) is now equivalent to
-    mu2lin (x, 0).
-
-  * The ARPACK library is now distributed with Octave so it no longer
-    needs to be available as an external dependency when building
-    Octave.
-
diff -r fe5dcb23372a -r dedb85c54245 NEWS-3.6.html --- a/NEWS-3.6.html Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,213 +0,0 @@ -
-Summary of important user-visible changes for version 3.6:
----------------------------------------------------------
-
- ** The PCRE library is now required to build Octave.  If a pre-compiled
-    package does not exist for your system, you can find PCRE sources
-    at http://www.pcre.org
-
- ** The ARPACK library is no longer distributed with Octave.
-    If you need the eigs or svds functions you must provide an
-    external ARPACK through a package manager or by compiling it
-    yourself.  If a pre-compiled package does not exist for your system,
-    you can find the current ARPACK sources at
-    http://forge.scilab.org/index.php/p/arpack-ng
-
- ** Many of Octave's binary operators (.*, .^, +, -, ...) now perform
-    automatic broadcasting for array operations which allows you to use
-    operator notation instead of calling bsxfun or expanding arrays (and
-    unnecessarily wasting memory) with repmat or similar idioms.  For
-    example, to scale the columns of a matrix by the elements of a row
-    vector, you may now write
-
-      rv .* M
-
-    In this expression, the number of elements of rv must match the
-    number of columns of M.  The following operators are affected:
-
-      plus      +  .+
-      minus     -  .-
-      times     .*
-      rdivide   ./
-      ldivide   .\
-      power     .^  .**
-      lt        <
-      le        <=
-      eq        ==
-      gt        >
-      ge        >=
-      ne        !=  ~=
-      and       &
-      or        |
-      atan2
-      hypot
-      max
-      min
-      mod
-      rem
-      xor
-
-    additionally, since the A op= B assignment operators are equivalent
-    to A = A op B, the following operators are also affected:
-
-      +=  -=  .+=  .-=  .*=  ./=  .\=  .^=  .**=  &=  |=
-
-    See the "Broadcasting" section in the new "Vectorization and Faster
-    Code Execution" chapter of the manual for more details.
-
- ** Octave now features a profiler, thanks to the work of Daniel Kraft
-    under the Google Summer of Code mentorship program.  The manual has
-    been updated to reflect this addition.  The new user-visible
-    functions are profile, profshow, and profexplore.
-
- ** Overhaul of statistical distribution functions
-
-    Functions now return "single" outputs for inputs of class "single".
-
-    75% reduction in memory usage through use of logical indexing.
-
-    Random sample functions now use the same syntax as rand and accept
-    a comma separated list of dimensions or a dimension vector.
-
-    Functions have been made Matlab-compatible with regard to special
-    cases (probability on boundaries, probabilities for values outside
-    distribution, etc.).  This may cause subtle changes to existing
-    scripts.
-
-    negative binomial function has been extended to real, non-integer
-    inputs.  The discrete_inv function now returns v(1) for 0 instead of
-    NaN.  The nbincdf function has been recoded to use a closed form
-    solution with betainc.
-
- ** strread, textscan, and textread have been completely revamped.
-
-    They now support nearly all Matlab functionality including:
-
-      * Matlab-compatible whitespace and delimiter defaults
-
-      * Matlab-compatible options: 'whitespace', treatasempty', format
-        string repeat count, user-specified comment style, uneven-length
-        output arrays, %n and %u conversion specifiers (provisionally)
-
- ** All .m string functions have been modified for better performance or
-    greater Matlab compatibility.  Performance gains of 15X-30X have
-    been demonstrated.  Operations on cell array of strings no longer pay
-    quite as high a penalty as those on 2-D character arrays.
-
-      deblank:  Now requires character or cellstr input.
-
-      strtrim:  Now requires character or cellstr input.
-                No longer trims nulls ("\0") from string for Matlab
-                compatibility.
-
-      strmatch: Follows documentation precisely and ignores trailing spaces
-                in pattern and in string.  Note that this is documented
-                Matlab behavior but the implementation apparently does
-                not always follow it.
-
-      substr:   Now possible to specify a negative LEN option which
-                extracts to within LEN of the end of the string.
-
-      strtok:   Now accepts cellstr input.
-
-      base2dec, bin2dec, hex2dec:
-                Now accept cellstr inputs.
-
-      dec2base, dec2bin, dec2hex:
-                Now accept cellstr inputs.
-
-      index, rindex:
-                Now accept 2-D character array input.
-
-      strsplit: Now accepts 2-D character array input.
-
- ** Geometry functions derived from Qhull (convhull, delaunay, voronoi)
-    have been revamped.  The options passed to the underlying qhull
-    command have been changed for better results or for Matlab
-    compatibility.
-
-      convhull: Default options are "Qt" for 2D, 3D, 4D inputs
-                Default options are "Qt Qx" for 5D and higher
-
-      delaunay: Default options are "Qt Qbb Qc Qz" for 2D and 3D inputs
-                Default options are "Qt Qbb Qc Qx" for 4D and higher
-
-      voronoi:  No default arguments
-
- ** Date/Time functions updated.  Millisecond support with FFF format
-    string now supported.
-
-    datestr: Numerical formats 21, 22, 29 changed to match Matlab.
-             Now accepts cellstr input.
-
- ** The following warning IDs have been removed:
-
-      Octave:associativity-change
-      Octave:complex-cmp-ops
-      Octave:empty-list-elements
-      Octave:fortran-indexing
-      Octave:precedence-change
-      
- ** The warning ID Octave:string-concat has been renamed to
-    Octave:mixed-string-concat.
-
- ** Octave now includes the following Matlab-compatible preference
-    functions:
-
-      addpref  getpref  ispref  rmpref  setpref
-
- ** The following Matlab-compatible handle graphics functions have been
-    added:
-
-      guidata         uipanel        uitoolbar
-      guihandles      uipushtool     uiwait
-      uicontextmenu   uiresume       waitfor
-      uicontrol       uitoggletool
-
-    The uiXXX functions above are experimental.
-
-    Except for uiwait and uiresume, the uiXXX functions are not
-    supported with the FLTK+OpenGL graphics toolkit.
-
-    The gnuplot graphics toolkit does not support any of the uiXXX
-    functions nor the waitfor function.
-
- ** New keyword parfor (parallel for loop) is now recognized as a valid
-    keyword.  Implementation, however, is still mapped to an ordinary
-    for loop.
-
- ** Other new functions added in 3.6.0:
-
-      bicg                       nthargout                   usejava
-      is_dq_string               narginchk                   waitbar
-      is_sq_string               python                      zscore
-      is_function_handle         register_graphics_toolkit 
-      loaded_graphics_toolkits   recycle                   
-
- ** Deprecated functions.
-
-    The following functions were deprecated in Octave 3.2 and have been
-    removed from Octave 3.6.
-                                           
-      create_set          spcholinv    splu   
-      dmult               spcumprod    spmax
-      iscommand           spcumsum     spmin
-      israwcommand        spdet        spprod
-      lchol               spdiag       spqr
-      loadimage           spfind       spsum
-      mark_as_command     sphcat       spsumsq
-      mark_as_rawcommand  spinv        spvcat 
-      spatan2             spkron       str2mat
-      spchol              splchol      unmark_command
-      spchol2inv          split        unmark_rawcommand
-
-    The following functions have been deprecated in Octave 3.6 and will
-    be removed from Octave 3.10 (or whatever version is the second major
-    release after 3.6):
-
-      cut                is_duplicate_entry
-      cor                polyderiv
-      corrcoef           shell_cmd 
-      __error_text__     studentize
-      error_text         sylvester_matrix
-
diff -r fe5dcb23372a -r dedb85c54245 NEWS-3.8.html --- a/NEWS-3.8.html Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,400 +0,0 @@ -
-Summary of important user-visible changes for version 3.8:
----------------------------------------------------------
-
-  ** One of the biggest new features for Octave 3.8 is a graphical user
-     interface.  It is the one thing that users have requested most
-     often over the last few years and now it is almost ready.  But
-     because it is not quite as polished as we would like, we have
-     decided to wait until the 4.0.x release series before making the
-     GUI the default interface (until then, you can use the --force-gui
-     option to start the GUI).
-
-     Given the length of time and the number of bug fixes and
-     improvements since the last major release Octave, we also decided
-     against delaying the release of all these new improvements any
-     longer just to perfect the GUI.  So please enjoy the 3.8 release of
-     Octave and the preview of the new GUI.  We believe it is working
-     reasonably well, but we also know that there are some obvious rough
-     spots and many things that could be improved.
-
-     WE NEED YOUR HELP.  There are many ways that you can help us fix
-     the remaining problems, complete the GUI, and improve the overall
-     user experience for both novices and experts alike:
-
-       * If you are a skilled software developer, you can help by
-         contributing your time to help with Octave's development.  See
-         http://octave.org/get-involved.html for more information.
-
-       * If Octave does not work properly, you are encouraged
-         report the problems you find.  See http://octave.org/bugs.html
-         for more information about how to report problems.
-
-       * Whether you are a user or developer, you can help to fund the
-         project.  Octave development takes a lot of time and expertise.
-         Your contributions help to ensure that Octave will continue to
-         improve.  See http://octave.org/donate.html for more details.
-
-    We hope you find Octave to be useful.  Please help us make it even
-    better for the future!
-
- ** Octave now uses OpenGL graphics by default with FLTK widgets.  If
-    OpenGL libraries or FLTK widgets are not available when Octave is
-    built, gnuplot is used.  You may also choose to use gnuplot for
-    graphics by executing the command
-
-      graphics_toolkit ("gnuplot")
-
-    Adding this command to your ~/.octaverc file will set the default
-    for each session.
-
- ** Printing or saving figures with OpenGL graphics requires the
-    gl2ps library which is no longer distributed with Octave.  The
-    software is widely available in most package managers.  If a
-    pre-compiled package does not exist for your system, you can find
-    the current sources at http://www.geuz.org/gl2ps/.
-
- ** Octave now supports nested functions with scoping rules that are
-    compatible with Matlab.  A nested function is one declared and defined
-    within the body of another function.  The nested function is only
-    accessible from within the enclosing function which makes it one
-    method for making private functions whose names do not conflict with those
-    in the global namespace (See also subfunctions and private functions).
-    In addition, variables in the enclosing function are visible within the
-    nested function.  This makes it possible to have a pseudo-global variable
-    which can be seen by a group of functions, but which is not visible in
-    the global namespace.
-    
-    Example:
-    function outerfunc (...)
-      ...
-      function nested1 (...)
-        ...
-        function nested2 (...)
-           ...
-        endfunction
-      endfunction
-
-      function nested3 (...)
-        ...
-      endfunction
-    endfunction
-
- ** Line continuations inside character strings have changed.
-
-    The sequence '...' is no longer recognized as a line continuation
-    inside a character string.  A backslash '\' followed by a newline
-    character is no longer recognized as a line continuation inside
-    single-quoted character strings.  Inside double-quoted character
-    strings, a backslash followed by a newline character is still
-    recognized as a line continuation, but the backslash character must
-    be followed *immediately* by the newline character.  No whitespace or
-    end-of-line comment may appear between them.
-
- ** Backslash as a continuation marker outside of double-quoted strings
-    is now deprecated.
-
-    Using '\' as a continuation marker outside of double quoted strings
-    is now deprecated and will be removed from a future version of
-    Octave.  When that is done, the behavior of
-
-      (a \
-       b)
-
-    will be consistent with other binary operators.
-
- ** Redundant terminal comma accepted by parser
-
-    A redundant terminal comma is now accepted in matrix
-    definitions which allows writing code such as 
-
-    [a,...
-     b,...
-     c,...
-    ] = deal (1,2,3)
-
- ** Octave now has limited support for named exceptions
-
-    The following syntax is now accepted:
-
-      try
-        statements
-      catch exception-id
-        statements
-      end
-
-    The exception-id is a structure with the fields "message" and
-    "identifier".  For example
-
-      try
-        error ("Octave:error-id", "error message");
-      catch myerr
-        printf ("identifier: %s\n", myerr.identifier);
-        printf ("message:    %s\n", myerr.message);
-      end_try_catch
-
-    When classdef-style classes are added to Octave, the exception-id
-    will become an MException object.
-
- ** Warning states may now be set temporarily, until the end of the
-    current function, using the syntax
-
-      warning STATE ID "local"
-
-    in which STATE may be "on", "off", or "error".  Changes to warning
-    states that are set locally affect the current function and all
-    functions called from the current scope.  The previous warning state
-    is restored on return from the current function.  The "local"
-    option is ignored if used in the top-level workspace.
-
- ** Warning IDs renamed:
-
-    Octave:array-as-scalar => Octave:array-to-scalar
-    Octave:array-as-vector => Octave:array-to-vector
-
- ** 'emptymatch', 'noemptymatch' options added to regular expressions.
-
-    With this addition Octave now accepts the entire set of Matlab options
-    for regular expressions.  'noemptymatch' is the default, but 'emptymatch'
-    has certain uses where you need to match an assertion rather than actual
-    characters.  For example, 
-
-    regexprep ('World', '^', 'Hello ', 'emptymatch')
-      => Hello World
-
-    where the pattern is actually the assertion '^' or start-of-line.
-
- ** For compatibility with Matlab, the regexp, regexpi, and regexprep
-    functions now process backslash escape sequences in single-quoted pattern
-    strings.  In addition, the regexprep function now processes backslash
-    escapes in single-quoted replacement strings.  For example,
-    
-    regexprep (str, '\t', '\n')
-
-    would search the variable str for a TAB character (escape sequence \t)
-    and replace it with a NEWLINE (escape sequence \n).  Previously the
-    expression would have searched for a literal '\' followed by 't' and
-    replaced the two characters with the sequence '\', 'n'.
-
- ** A TeX parser has been implemented for the FLTK toolkit and is the default
-    for any text object including titles and axis labels.  The TeX parser is
-    supported only for display on a monitor, not for printing.
-
-    A quick summary of features:
-
-    Code         Feature     Example             Comment
-    -----------------------------------------------------------------
-    _            subscript   H_2O                formula for water
-    ^            exponent    y=x^2               formula for parabola
-    \char        symbol      \beta               Greek symbol beta
-    \fontname    font        \fontname{Arial}    set Arial font
-    \fontsize    fontsize    \fontsize{16}       set fontsize 16
-    \color[rgb]  fontcolor   \color[rgb]{1 0 1}  set magenta color 
-    \bf          bold        \bfBold Text        bold font
-    \it          italic      \itItalic Text      italic font
-    \sl          slanted     \slOblique Text     slanted font
-    \rm          normal      \bfBold\rmNormal    normal font
-    {}           group       {\bf Bold}Normal    group objects
-                             e^{i*\pi} = -1      group objects
-
- ** The m-files in the plot directory have been overhauled.
-
-    The plot functions now produce output that is nearly visually compatible
-    with Matlab.  Plot performance has also increased, dramatically for some
-    functions such as comet and waitbar.  Finally, the documentation for most
-    functions has been updated so it should be clearer both how to use a
-    function and when a function is appropriate.
-
- ** The m-files in the image directory have been overhauled.
-
-    The principal benefit is that Octave will now no longer automatically
-    convert images stored with integers to doubles.  Storing images as uint8
-    or uint16 requires only 1/8 or 1/4 the memory of an image stored using
-    doubles.  For certain operations, such as fft2, the image must still be
-    converted to double in order to work.
-
-    Other changes include fixes to the way indexed images are read from a
-    colormap depending on the image class (integer images have a -1 offset to
-    the colormap row number).
-
- ** The imread and imwrite functions have been completely rewritten.
-
-    The main changes relate to the alpha channel, support for reading and
-    writing of floating point images, implemented writing of indexed images,
-    and appending images to multipage image files.
-
-    The issues that may arise due to backwards incompatibility are:
-
-      * imwrite no longer interprets a length of 2 or 4 in the third dimension
-        as grayscale or RGB with alpha channel (a length of 4 will be saved
-        as a CMYK image).  Alpha channel must be passed as separate argument.
-
-      * imread will always return the colormap indexes when reading an indexed
-        image, even if the colormap is not requested as output.
-
-      * transparency values are now inverted from previous Octave versions
-        (0 is for completely transparent instead of completely opaque).
-
-    In addition, the function imformats has been implemented to expand
-    reading and writing of images of different formats through imread
-    and imwrite.
-
- ** The colormap function now provides new options--"list", "register",
-    and "unregister"--to list all available colormap functions, and to
-    add or remove a function name from the list of known colormap
-    functions.  Packages that implement extra colormaps should use these
-    commands with PKG_ADD and PKG_DEL statements.
-
- ** strsplit has been modified to be compatible with Matlab.  There
-    are two instances where backward compatibility is broken.
-
-    (1) Delimiters are now string vectors, not scalars.
-
-    Octave's legacy behavior
-
-      strsplit ("1 2, 3", ", ")
-      ans = 
-      {
-       [1,1] = 1
-       [1,2] = 2
-       [1,3] = 
-       [1,4] = 3
-      }
-
-    Matlab compatible behavior
-
-      strsplit ("1 2, 3", ", ")
-      ans = 
-      {
-       [1,1] = 1 2
-       [1,2] = 3
-      }
-
-    (2) By default, Matlab treats consecutive delimiters as a single
-    delimiter.  By default, Octave's legacy behavior was to return an
-    empty string for the part between the delmiters.
-
-    Where legacy behavior is desired, the call to strsplit() may be
-    replaced by ostrsplit(), which is Octave's original implementation of
-    strsplit().
-
- ** The datevec function has been extended for better Matlab compatibility.
-    It now accepts string inputs in the following numerical formats: 12, 21,
-    22, 26, 29, 31.  This is undocumented, but verifiable, Matlab behavior.
-    In addition, the default for formats which do not specify a date is
-    January 1st of the current year.  The previous default was the current day,
-    month, and year.  This may produce changes in existing scripts.
-
- ** The error function and its derivatives has been extended to accept complex
-    arguments.  The following functions now accept complex inputs:
-
-    erf  erfc  erfcx   
-
-    In addition two new error functions erfi (imaginary error function) and
-    dawson (scaled imaginary error function) have been added.
-
- ** The glpk function has been modified to reflect changes in the GLPK
-    library.  The "round" and "itcnt" options have been removed.  The
-    "relax" option has been replaced by the "rtest" option.  The numeric
-    values of error codes and of some options have also changed.
-
- ** The kurtosis function has changed definition to be compatible with 
-    Matlab.  It now returns the base kurtosis instead of the "excess kurtosis".
-    The old behavior can be had by changing scripts to normalize with -3.
-
-               "excess kurtosis" = kurtosis (x) - 3
-
- ** The moment function has changed definition to be compatible with 
-    Matlab.  It now returns the central moment instead of the raw moment.
-    The old behavior can be had by passing the type argument "r" for raw.
-
- ** The default name of the Octave crash dump file is now 
-    "octave-workspace" instead of "octave-core".  The exact name can
-    always be customized with the octave_core_file_name function.
-
- ** A citation command has been added to display information on how to
-    cite Octave and packages in publications.  The package system will
-    look for and install CITATION files from packages.
-
- ** The java package from Octave Forge is now part of core Octave.  The
-    following new functions are available for interacting with Java
-    directly from Octave:
-
-      debug_java     java_matrix_autoconversion
-      isjava         java_unsigned_autoconversion
-      java2mat       javaaddpath
-      javaArray      javaclasspath
-      javaMethod     javamem
-      javaObject     javarmpath
-                     usejava
-
-    In addition, the following functions that use the Java interface
-    are now available (provided that Octave is compiled with support for
-    Java enabled):
-
-      helpdlg    listdlg   questdlg
-      inputdlg   msgbox    warndlg
-
- ** Other new functions added in 3.8.0:
-
-      atan2d                     erfi             lines
-      base64_decode              expint           linsolve
-      base64_encode              findfigs         missing_component_hook
-      betaincinv                 flintmax         polyeig
-      built_in_docstrings_file   fminsearch       prefdir
-      cmpermute                  gallery          preferences
-      cmunique                   gco              readline_re_read_init_file
-      colorcube                  hdl2struct       readline_read_init_file
-      copyobj                    history_save     rgbplot
-      dawson                     imformats        save_default_options
-      dblist                     importdata       shrinkfaces
-      desktop                    isaxes           splinefit
-      doc_cache_create           iscolormap       stemleaf
-      ellipj                     isequaln         strjoin
-      ellipke                    jit_debug        struct2hdl
-      erfcinv                    jit_enable       tetramesh
-                                 jit_startcnt     waterfall
-
- ** Deprecated functions.
-
-    The following functions were deprecated in Octave 3.4 and have been
-    removed from Octave 3.8.
-                                           
-      autocor    dispatch              is_global    setstr
-      autocov    fstat                 krylovb      strerror
-      betai      gammai                perror       values
-      cellidx    glpkmex               replot               
-      cquad      is_duplicate_entry    saveimage            
-      
-    The following functions have been deprecated in Octave 3.8 and will
-    be removed from Octave 3.12 (or whatever version is the second major
-    release after 3.8):
-
-      default_save_options    java_new            
-      gen_doc_cache           java_set                   
-      interp1q                java_unsigned_conversion
-      isequalwithequalnans    javafields                
-      java_convert_matrix     javamethods               
-      java_debug              re_read_readline_init_file
-      java_get                read_readline_init_file   
-      java_invoke             saving_history            
-
-
-    The following keywords have been deprecated in Octave 3.8 and will
-    be removed from Octave 3.12 (or whatever version is the second major
-    release after 3.8):
-
-      static
-
-    The following configuration variables have been deprecated in Octave
-    3.8 and will be removed from Octave 3.12 (or whatever version is the
-    second major release after 3.8):
-
-      CC_VERSION  (now GCC_VERSION)
-      CXX_VERSION (now GXX_VERSION)
-
-    The internal class Octave_map has been deprecated in Octave 3.8 and
-    will be removed from Octave 3.12 (or whatever version is the second
-    major release after 3.8).  Replacement classes are octave_map
-    (struct array) or octave_scalar_map for a single structure.
-
diff -r fe5dcb23372a -r dedb85c54245 NEWS-3.html --- a/NEWS-3.html Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,222 +0,0 @@ - - - -Notable Changes in Octave version 3 - - - - -

News for Octave Version 3

- - - - - diff -r fe5dcb23372a -r dedb85c54245 NEWS-4.0.html --- a/NEWS-4.0.html Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,339 +0,0 @@ -
-Summary of important user-visible changes for version 4.0:
----------------------------------------------------------
-
- ** A graphical user interface is now the default when running Octave
-    interactively.  The start-up option --no-gui will run the familiar
-    command line interface, and still allows use of the GUI dialogs and
-    qt plotting toolkit.  The option --no-gui-libs runs a minimalist
-    command line interface that does not link with the Qt libraries and
-    uses the fltk toolkit for plotting.
-
- ** Octave now uses OpenGL graphics with Qt widgets by default.  If OpenGL
-    libraries are not available when Octave is built, gnuplot is used.
-    You may choose to use the fltk or gnuplot toolkit for graphics by
-    executing the command
-
-      graphics_toolkit ("fltk")
-        OR
-      graphics_toolkit ("gnuplot")
-
-    Adding such a command to your ~/.octaverc file will set the default
-    for each session.
-
- ** A new syntax for object oriented programming termed classdef has been
-    introduced.  See the manual for more extensive documentation of the
-    classdef interface.
-
-    New keywords:
-
-      classdef      endclassdef
-      enumeration   endenumeration
-      events        endevents
-      methods       endmethods
-      properties    endproperties
-
- ** New audio functions and classes:
-
-      audiodevinfo  audioread      sound
-      audioinfo     audiorecorder  soundsc
-      audioplayer   audiowrite
-
- ** Other new classes in Octave 4.0:
-
-      audioplayer    inputParser
-      audiorecorder
-
- ** Optional stricter Matlab compatibility for ranges, diagonal matrices,
-    and permutation matrices.
-
-    Octave has internal optimizations which use space-efficient storage
-    for the three data types above.  Three new functions have been added
-    which control whether the optimizations are used (default), or whether
-    the data types are stored as full matrices.
-
-    disable_range   disable_diagonal_matrix   disable_permutation_matrix
-
-    All three optimizations are disabled if Octave is started with the
-    --braindead command line option.
-
- ** The preference
-
-      do_braindead_shortcircuit_evaluation
-
-    is now enabled by default.
-
- ** The preference
-
-      allow_noninteger_range_as_index
-
-    is now enabled by default and the warning ID
-
-      Octave:noninteger-range-as-index
-
-    is now set to "on" by default instead of "error" by default and "on"
-    for --traditional.
-
- ** The "backtrace" warning option is now enabled by default.  This change
-    was made for Matlab compatibility.
-
- ** For compatibility with Matlab, the "ismatrix (x)" function now only checks
-    the dimension of "x".  The old behaviour of "ismatrix" is obtained by
-    "isnumeric (x) || islogical (x) || ischar (x)".
-
- ** The nextpow2 function behaviour has been changed for vector inputs.
-    Instead of computing `nextpow2 (length (x))', it will now compute
-    nextpow2 for each element of the input.  This change is Matlab compatible,
-    and also prevents bugs for "vectors" of length 1.
-
- ** polyeig now returns a row vector of eigenvalues rather than a matrix
-    with the eigenvalues on the diagonal.  This change was made for Matlab
-    compatibility.
-
- ** Interpolation function changes for Matlab compatibility
-
-    The interpolation method 'cubic' is now equivalent to 'pchip'
-    for interp1, interp2, and interp3.  Previously, 'cubic' was equivalent
-    to 'spline' for interp2.  This may produce different results as 'spline'
-    has continuous 1st and 2nd derivatives while 'pchip' only has a continuous
-    1st derivative.  The methods 'next' and 'previous' have been added to
-    interp1 for compatibility.
-
- ** The delaunay function has been extended to accept 3-D inputs for
-    Matlab compatibility.  The delaunay function no longer plots the
-    triangulation if no output argument is requested, instead, the
-    triangulation is always returned.  The delaunay3 function which
-    handles 3-D inputs has been deprecated in favor of delaunay.
-
- ** The trigonometric functions asin and acos return different phase values
-    from previous versions of Octave when the input is outside the principal
-    branch ([-1, 1]).  If the real portion of the input is greater than 1 then
-    the limit from below is taken.  If the real portion is less than 1 then the
-    limit from above is taken.  This criteria is consistent with several other
-    numerical analysis software packages.
-
- ** The hyperbolic function acosh now returns values with a phase in the range
-    [-pi/2, +pi/2].  Previously Octave returned values in the range [0, pi].
-    This is consistent with several other numerical analysis software packages.
-
- ** strfind changes when using empty pattern ("") for Matlab compatibility
-
-    strfind now returns an empty array when the pattern itself is empty.
-    In previous versions of Octave, strfind matched at every character
-    location when the pattern was empty.
-
-      NEW
-      strfind ("abc", "") => []
-      OLD
-      strfind ("abc", "") => [1, 2, 3, 4]
-
- ** Integer formats used in the printf family of functions now work for
-    64-bit integers and are more compatible with Matlab when printing
-    non-integer values.  Now instead of truncating, Octave will switch
-    the effective format to '%g' in the following circumstances:
-
-      * the value of an integer type (int8, uint32, etc.) value exceeds
-        the maximum for the format specifier.  For '%d', the limit is
-        intmax ('int64') and for '%u' it is intmax ('uint64').
-
-      * round(x) != x or the value is outside the range allowed by the
-        integer format specifier.
-
-    There is still one difference:  Matlab switches to '%e' and Octave
-    switches to '%g'.
-
- ** The functions intersect, setdiff, setxor, and union now return a
-    column vector as output unless the input was a row vector.  This change
-    was made for Matlab compatibility.
-
- ** The inpolygon function now returns true for points that are within
-    the polygon OR on it's edge.  This change was made for Matlab
-    compatibility. 
-
- ** The archive family of functions (bzip2, gzip, zip, tar) and their
-    unpacking routines (bunzip2, gunzip, unzip, untar, unpack) have
-    been recoded.  Excepting unpack, the default is now to place files
-    in the same directory as the archive (on unpack) or as the original
-    files (on archiving).
-
- ** Qt and FLTK graphics toolkits now support offscreen rendering on Linux.
-    In other words, print will work even when the figure visibility is "off".
-
- ** Z-order stacking issues with patches, grid lines, and line object
-    plot markers for on screen display and printing have all been resolved.
-    For 2-D plots the axis grid lines can be placed on top of the plot
-    with set (gca, "layer", "top").
-
- ** The patch graphic object has been overhauled.  It now produces visual
-    results equivalent to Matlab even for esoteric combinations of
-    faces/vertices/cdata.
-
- ** The polar() plot function now draws a circular theta axis and
-    radial rho axis rather than using a rectangular x/y axis.
-
- ** linkprop has been completely re-coded for performance and Matlab
-    compatibility.  It now returns a linkprop object which must be stored
-    in a variable for as long as the graphic objects should remain linked.
-    To unlink properties use 'clear hlink' where hlink is the variable
-    containing the linkprop object.
-
- ** isprime has been extended to operate on negative and complex inputs.
-
- ** xor has been extended to accept more than two arguments in which case
-    it performs cumulative XOR reduction.
-
- ** The following functions now support N-dimensional arrays:
-
-      fliplr   flipud   rot90   rectint
-
- ** The new warning ID "Octave:data-file-in-path" replaces the three
-    previous separate warning IDs "Octave:fopen-file-in-path",
-    "Octave:load-file-in-path", and "Octave:md5sum-file-in-path".
-
- ** The warning ID Octave:singular-matrix-div has been replaced by
-    Octave:nearly-singular-matrix and Octave:singular-matrix.
-
- ** The warning ID Octave:matlab-incompatible has been replaced by
-    Octave:language-extension to better reflect its meaning.
-
- ** The warning ID Octave:broadcast has been removed.  Instead automatic
-    broadcasting will throw an Octave:language-extension warning.  This
-    warning ID is used for broadcasting as well as other features not
-    available in Matlab.
-
- ** Other new functions added in 4.0:
-
-      annotation
-      bandwidth
-      cubehelix
-      dir_in_loadpath
-      flip
-      frame2im
-      get_home_directory
-      hgload
-      hgsave
-      ichol
-      ilu
-      im2frame
-      isbanded
-      isdiag
-      isstudent
-      istril
-      istriu
-      javachk
-      jit_failcnt
-      linkaxes
-      lscov
-      metaclass
-      numfields
-      open
-      ordschur
-      pan
-      qmr
-      rotate
-      rotate3d
-      sylvester
-      unsetenv
-      validateattributes
-      zoom
-
- ** inline() scheduled for eventual deprecation by Matlab
-
-    Functions created through the use of inline are scheduled for deprecation
-    by Matlab.  When this occurs Octave will continue to support inline
-    functions for an indeterminate amount of time before also removing support.
-    All new code should use anonymous functions in place of inline functions.
-
- ** Deprecated functions.
-
-    The following functions have been deprecated in Octave 4.0 and will
-    be removed from Octave 4.4 (or whatever version is the second major
-    release after 4.0):
-
-      Function             | Replacement
-      ---------------------|------------------
-      bicubic              | interp2
-      delaunay3            | delaunay
-      dump_prefs           | individual preference get/set routines
-      find_dir_in_path     | dir_in_loadpath
-      finite               | isfinite
-      fmod                 | rem
-      fnmatch              | glob or regexp
-      loadaudio            | audioread
-      luinc                | ilu or ichol
-      mouse_wheel_zoom     | mousewheelzoom axes property
-      nfields              | numfields
-      octave_tmp_file_name | tempname
-      playaudio            | audioplayer
-      saveaudio            | audiowrite
-      syl                  | sylvester
-      usage                | print_usage
-
-      allow_noninteger_range_as_index
-      do_braindead_shortcircuit_evaluation
-      setaudio
-
- ** The following functions were deprecated in Octave 3.8 and will be
-    removed from Octave 4.2 (or whatever version is the second major
-    release after 3.8):
-
-      default_save_options    java_new
-      gen_doc_cache           java_unsigned_conversion
-      interp1q                javafields
-      isequalwithequalnans    javamethods
-      java_convert_matrix     re_read_readline_init_file
-      java_debug              read_readline_init_file
-      java_invoke             saving_history
-
- ** The following functions were deprecated in Octave 3.6 and have been
-    removed from Octave 4.0.
-
-      cut                polyderiv
-      cor                shell_cmd
-      corrcoef           studentize
-      __error_text__     sylvester_matrix
-      error_text
-
- ** The following keywords were deprecated in Octave 3.8 and have been
-    removed from Octave 4.0
-
-      static
-
- ** The following configuration variables were deprecated in Octave 3.8
-    and have been removed from Octave 4.0
-
-      CC_VERSION  (now GCC_VERSION)
-      CXX_VERSION (now GXX_VERSION)
-
- ** The internal function atan2 of the sparse matrix class has been deprecated
-    in Octave 4.0 and will be removed from Octave 4.4 (or whatever version is
-    the second major release after 4.0).  Use the Fatan2 function with sparse
-    inputs as a replacement.
-
- ** The internal class Octave_map was deprecated in Octave 3.8 and has
-    been removed from Octave 4.0.  Replacement classes are
-    octave_map (struct array) or octave_scalar_map for a single structure.
-
- ** The configure option --enable-octave-allocator has been removed.
-    The internal class octave_allocator declared in oct-alloc.h has
-    been removed.  The header remains, but is deprecated.  The macros to
-    access the class (DECLARE_OCTAVE_ALLOCATOR, DEFINE_OCTAVE_ALLOCATOR,
-    and DEFINE_OCTAVE_ALLOCATOR2) are now unconditionally defined to be
-    empty.
-
- ** Octave now has OpenMP enabled by default if the system provides a
-    working OpenMP implementation.  This allows oct-file modules to take
-    advantage of OpenMP if desired.  This can be disabled when building
-    Octave with the configure option --disable-openmp.
-
- ** Octave now automatically truncates intermediate calculations done with
-    floating point values to 64 bits.  Some hardware math co-processors, such
-    as the x87, maintain extra precision, but this leads to disagreements in
-    calculations when compared to reference implementations in software using
-    the IEEE standard for double precision.  There was no measurable
-    performance impact to this change, but it may be disabled with the
-    configure option --disable-float-truncate.  MinGW and Cygwin platforms,
-    as well as GCC compilers >= 5.0 require this feature.  Non-x87 hardware,
-    or hardware using SSE options exclusively, can disable float truncation
-    if desired.
-
diff -r fe5dcb23372a -r dedb85c54245 NEWS-4.2.md --- a/NEWS-4.2.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,253 +0,0 @@ ---- -layout: default ---- - -
-
-
-Summary of important user-visible changes for version 4.2:
----------------------------------------------------------
-
- ** The parser has been extended to accept, but ignore, underscore
-    characters in numbers.  This facilitates writing more legible code
-    by using '_' as a thousands separator or to group nibbles into bytes
-    in hex constants.
-
-    Examples: 1_000_000 == 1e6  or  0xDE_AD_BE_EF
-
- ** The parser has been extended to understand binary numbers which
-    begin with the prefix '0b' or '0B'.  The value returned is Octave's
-    default numeric class of double, not at unsigned integer class.
-    Therefore numbers greater than flintmax, i.e., 2^53, will lose some
-    precision.
-
-    Examples: 0b101 == 5  or  0B1100_0001 == 0xC1
-
- ** gnuplot 4.4 is now the minimum version supported by Octave.
-
- ** The default set of colors used to plot lines has been updated to be
-    compatible with Matlab's new default color scheme.  The line plot
-    color scheme can be set with the axes property "ColorOrder".
-
- ** The default colormap is now set to "viridis" which is also the
-    default colormap in matplotlib.  This new colormap fixes some of the
-    main issues with the old default colormap "jet" such as its bad
-    "luminance profile" and is also more similar to Matlab's new default
-    colormap "parula".
-
- ** The colormap function no longer supports the input argument "list"
-    to show built-in colormaps.  Use "help colormap" to find the
-    built-in colormaps.
-
- ** The graphics command "hold on" now ensures that each new plot added
-    to an existing plot has a different color or linestyle according to
-    the "ColorOrder" and/or "LineStyleOrder" properties.  This is
-    equivalent to the old command "hold all" and was made for Matlab
-    compatibility.  Existing code *may* produce differently colored
-    plots if it did not specify the color for a plot and relied on each
-    new plot having the default first color in the "ColorOrder"
-    property.
-
- ** When starting, Octave now looks in the function path for a file
-    startup.m and executes any commands found there.  This change was
-    made to accommodate Matlab users.  Octave has it's own configuration
-    system based on the file .octaverc which is preferred.
-
- ** Octal ('\NNN') and hex ('\xNN') escape sequences in single quoted
-    strings are now interpreted by the function do_string_escapes().
-    The *printf family of functions now supports octal and hex escape
-    sequences in single-quoted strings for Matlab compatibility.
-
- ** Special octal and hex escape sequences for the pattern and
-    replacement strings in regular expressions are now interpreted for
-    Matlab compatibility.
-
-    octal: '\oNNN' or '\o{NNN}'
-    hex  : '\xNN'  or '\x{NN}'
-
- ** Unknown escape sequences in the replacement string for regexprep are
-    now substituted with their unescaped version and no warning is
-    emitted.  This change was made for Matlab compatibility.
-
-    Example: regexprep ('a', 'a', 'x\yz')
-             => 'xyz'
-
- ** mkfifo now interprets the MODE argument as an octal, not decimal,
-    integer.  This is consistent with the equivalent shell command.
-
- ** linspace now returns an empty matrix if the number of requested
-    points is 0 or a negative number.  This change was made to be
-    compatible with Matlab releases newer than 2011.  In addition,
-    Octave no longer supports matrix inputs for A or B.
-
- ** The cov function now returns the complex conjugate of the result
-    from previous versions of Octave.  This change was made for
-    compatibility with Matlab.
-
- ** condest now works with a normest1 compatible syntax.
-
- ** The griddata function no longer plots the interpolated mesh if no
-    output argument is requested, instead the vector or array of
-    interpolated values is always returned for Matlab compatibility.
-
- ** The new function "light" and the corresponding graphics object
-    provide light and shadow effects for patch and surface objects.
-
- ** The surfnorm function now returns unnormalized (magnitude != 1)
-    normal vectors for compatibility with Matlab.
-
- ** The normal vectors returned from isonormals have been reversed to
-    point towards smaller values for compatibility with Matlab.
-
- ** The quadl function now uses an absolute, rather than relative,
-    tolerance for Matlab compatibility.  The default tolerance is 1e-6
-    which may result in lower precision results than previous versions
-    of Octave which used eps as the relative tolerance.  The quadl
-    function has also been extended to return a second output with the
-    total number of function evaluations.
-
- ** The textscan function is now built-in and is much faster and much
-    more Matlab-compatible than the previous m-file version.
-
- ** Dialog boxes--errordlg, helpdlg, inputdlg, listdlg, msgbox,
-    questdlg, and warndlg--now exclusively use Qt for rendering.
-    Java based versions have been removed.
-
- ** The axes properties "TitleFontSizeMultiplier" and "TitleFontWeight"
-    are now implemented which control the default appearance of text
-    created with title().
-    The axes property "LabelFontSizeMultiplier" is now implemented
-    which controls the default appearance of text created with
-    xlabel(), ylabel(), or zlabel().
-
- ** The graphics property "box" for axes now defaults to "off".
-    To obtain equivalent plots to previous versions of Octave use
-      set (0, "DefaultAxesBox", "on");
-    in your .octaverc file.
-
- ** The graphics property "boxstyle" has been implemented.  The default
-    is "back" which draws only the back planes in a 3-D view.  If the
-    option is "full" then all planes are drawn.
-
- ** The graphics property "erasemode" has been hidden, and will
-    eventually be removed.  This property has also been removed
-    from Matlab, and was never implemented in Octave.
-
- ** The graphics property "graphicssmoothing" for figures now controls
-    whether anti-aliasing will be used for lines.  The default is "on".
-
- ** The value "zero" for the axes properties "xaxislocation" and
-    "yaxislocation" has been deprecated and will be removed from
-    Octave 4.6.  Use "origin" instead.
-
- ** The publish function allows easy publication of Octave script files
-    in HTML or other formats, including figures and output created by
-    this script.  It comes with its counterpart grabcode, which lets one
-    literally grab the HTML published code from a remote website, for
-    example.
-
- ** The value of the MEX variable TrapFlag now defaults to 0, which will
-    cause Octave to abort execution of a MEX file and return to the
-    prompt if an error is encountered in mexCallMATLAB.
-
- ** The MEX API now includes the function mexCallMATLABWithTrap.  This
-    function will not abort if an error occurs during mexCallMATLAB, but
-    instead will return execution to the MEX function for error
-    handling.
-
- ** The MEX API functions for input validation that begin with "mxIs"
-    (e.g., mxIsDouble, mxIsEmpty, etc.) now return type bool rather than
-    type int.
-
- ** The functions mxAssert and mxAssertS for checking assertions have
-    been added.  In order to avoid a performance penalty they are only
-    compiled in to debug versions of a MEX file, i.e., that are produced
-    when the '-g' option is given to mex or mkoctfile.
-
- ** Other new MEX API functions include mexEvalStringWithTrap,
-    mxIsScalar, mxCreateUninitNumericArray, mxCreateUninitNumericMatrix.
-
- ** Other new functions added in 4.2:
-
-      audioformats
-      camlight
-      condeig
-      deg2rad
-      dialog
-      evalc
-      hash
-      im2double
-      isocaps
-      lighting
-      localfunctions
-      material
-      normest1
-      ode23
-      ode45
-      odeget
-      odeplot
-      odeset
-      padecoef
-      profexport
-      psi
-      rad2deg
-      reducepatch
-      reducevolume
-      smooth3
-      uibuttongroup
-
- ** Deprecated functions.
-
-    The following functions have been deprecated in Octave 4.2 and will
-    be removed from Octave 4.6 (or whatever version is the second major
-    release after 4.2):
-
-      Function             | Replacement
-      ---------------------|------------------
-      bitmax               | flintmax
-      mahalanobis          | mahal in Octave-Forge statistics pkg
-      md5sum               | hash
-      octve_config_info    | __octave_config_info__
-      onenormest           | normest1
-      sleep                | pause
-      usleep               | pause
-      wavread              | audioread
-      wavwrite             | audiowrite
-
- ** The following functions were deprecated in Octave 3.8 and have been
-    removed from Octave 4.2.
-
-      default_save_options    java_new
-      gen_doc_cache           java_unsigned_conversion
-      interp1q                javafields
-      isequalwithequalnans    javamethods
-      java_convert_matrix     re_read_readline_init_file
-      java_debug              read_readline_init_file
-      java_invoke             saving_history
-
- ** The global error_state variable in Octave's C++ API has been
-    deprecated and will be removed in a future version.  Now the error
-    and print_usage functions throw an exception
-    (octave::execution_exception) after displaying the error message.
-    This makes the error and print_usage functions in C++ work more like
-    the corresponding functions in the scripting language.
-
- ** The default error handlers in liboctave have been updated to use
-    exceptions.  After displaying an error message they no longer return
-    control to the calling program.  The error handler function can be
-    customized through the global variables
-    "current_liboctave_error_handler" and
-    "current_liboctave_error_with_id_handler".  If a programmer has
-    installed their own custom error handling routines when directly
-    linking with liboctave then these must be updated to throw an
-    exception and not return to the calling program.
-
- ** The system for common errors and warnings has been renamed from
-    gripe_XXX to either err_XXX if error is called or warn_XXX if
-    warning is called.  The gripe_XXX functions are deprecated and will
-    be removed in version 4.6.
-
- ** New configure option, --enable-address-sanitizer-flags, to build
-    Octave with memory allocator checks (similar to those in valgrind)
-    built in.
-
diff -r fe5dcb23372a -r dedb85c54245 NEWS-4.4.md --- a/NEWS-4.4.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,385 +0,0 @@ ---- -layout: default ---- - -
-Summary of important user-visible changes for version 4.4 (2018-04-30):
-----------------------------------------------------------------------
-
- ** A graphical Variable Editor has been added to the GUI interface.
-    It uses a spreadsheet-like interface for quick, intuitive editing
-    of variables.  The Variable Editor is launched by double-clicking
-    on a variable name in the Workspace Window or by typing
-    "openvar VARIABLE_NAME" in the Command Window.
-
- ** On systems with 64-bit pointers, --enable-64 is now the default and
-    Octave always uses 64-bit indexing.  However, if the configure
-    script determines that the BLAS library uses 32-bit integers, then
-    operations using the following libraries are limited to arrays with
-    dimensions that are smaller than 2^31 elements:
-
-      BLAS  LAPACK  QRUPDATE  SuiteSparse  ARPACK
-
-    Additionally, the following libraries use "int" internally, so
-    maximum problem sizes are always limited:
-
-      glpk  Qhull
-
- ** The octave command no longer starts the GUI by default.  Most users
-    starting Octave from a shell were expecting the command line
-    interface, and desktop launchers already required the `--force-gui'
-    option.  With this change, desktop launchers should be modified to
-    use the new option `--gui'.  The previous `--force-gui' option will
-    continue to work, and maps to `--gui', but it will be removed in
-    Octave 6.
-
- ** A known bug in Qt (https://bugreports.qt.io/browse/QTBUG-55357) is
-    addressed by limiting GUI sub-panel relocation capabilities for Qt
-    versions in the range >= 5.6.1 and < 5.7.1.  However, this may not
-    thoroughly avoid issues on all platforms.
-
- ** A new container data type--containers.Map--is available.  Map is a
-    key/value storage container (a.k.a, a hash) that efficiently allows
-    storing and retrieving values by name, rather than by position which
-    is how arrays work.
-
- ** The bareword "import" is now recognized in scripts and functions.
-    However, the functionality to import functions and classes from
-    other namespaces into the local scope has not yet been implemented.
-    Attempting to use "import" will provoke an error message.
-
- ** hex2num and num2hex now work for integer and char types and num2hex
-    may optionally return a cell array of strings instead of a character
-    array.  If given a cell array of strings, hex2num now returns a
-    numeric array of the same size as the input cell array.  Previously,
-    hex2num would accept a cell array of strings of arbitrary dimension
-    but would always return a column vector.
-
- ** New special functions cosint, sinint, and gammaincinv have been added.
-
- ** Special functions in Octave have been rewritten for larger input
-    domains, better accuracy, and additional options.
-    * gammainc now accepts negative real values for X.
-    * improved accuracy for gammainc, betainc, betaincinv, expint.
-    * gammainc has new options "scaledlower" and "scaledupper".
-    * betainc, betaincinv have new option "upper".
-
- ** The "names" option used in regular expressions now returns a struct
-    array, rather than a struct with a cell array for each field.  This
-    change was made for Matlab compatibility.
-
- ** The quadcc function now uses both absolute tolerance and relative
-    tolerance to determine the stopping criteria for an integration.
-    To be compatible with other quadXXX functions, such as quadgk, the
-    calling syntax has changed to
-
-      quadcc (f, a, b, [AbsTol, [RelTol]])
-
-    To update existing code, change instances of RelTol to [0, RelTol].
-
-      quadcc (f, a, b, tol) => quadcc (f, a, b, [0, tol])
-
-    A warning that a single tolerance input is now interpreted as an
-    absolute tolerance will be issued in Octave versions 4.4 and 5,
-    after which it will be removed.  The warning has ID
-    "Octave:quadcc:RelTol-conversion" and can be disabled with
-
-      warning ("off", "Octave:quadcc:RelTol-conversion")
-
- ** The qr function now returns a standard factorization unless
-    explicitly instructed to perform an economy factorization by using a
-    final argument of 0.
-
- ** The Qt graphics toolkit now supports offscreen printing without osmesa
-    if Octave was built with Qt >= 5.1.
-
- ** The built-in pager for display of large data is now disabled by
-    default.  To re-enable it for every Octave session add the following
-    to your .octaverc file:
-
-      more on;
-
- ** The FLTK toolkit is no longer prioritized for development.  The
-    number of Octave Maintainers is too small to support three different
-    graphic toolkits.  New development will target the Qt toolkit.
-    While no longer prioritized, the FLTK toolkit is not deprecated and
-    there is no schedule for its removal.
-
- ** The graphic object property "PickableParts" has been implemented
-    which controls whether an object can accept mouse clicks.
-
- ** The graphic object property "Interruptible" has been fully
-    implemented which controls whether a running callback function can
-    be interrupted by another callback function.
-
- ** The graphic object property "HitTest" has been updated to be fully
-    compatible with Matlab.
-
- ** Text objects now implement the properties "BackgroundColor",
-    "EdgeColor", "LineStyle", "LineWidth", and "Margin".
-
- ** An initial implementation of alpha transparency has been made for
-    patch and surface objects.  Printing to svg and pdf is supported.
-
- ** ishandle now returns true for both graphics handle objects and
-    Java objects.  The latter change was made for Matlab compatibility.
-    Use ishghandle or isgraphics if it is important not to include Java
-    objects.
-
- ** The pkg command now accepts a URL as an argument, allowing a valid
-    Octave package to be installed from any remote host with one command,
-    for example
-
-      pkg install https://example.org/download/example-package.tar.gz
-
- ** The following statistical functions have been moved from core
-    Octave to the statistics package available from Octave Forge.
-
-    BASE
-      cloglog
-      logit
-      prctile
-      probit
-      qqplot
-      table  (renamed to crosstab)
-
-    DISTRIBUTIONS
-      betacdf
-      betainv
-      betapdf
-      betarnd
-      binocdf
-      binoinv
-      binopdf
-      binornd
-      cauchy_cdf
-      cauchy_inv
-      cauchy_pdf
-      cauchy_rnd
-      chi2cdf
-      chi2inv
-      chi2pdf
-      chi2rnd
-      expcdf
-      expinv
-      exppdf
-      exprnd
-      fcdf
-      finv
-      fpdf
-      frnd
-      gamcdf
-      gaminv
-      gampdf
-      gamrnd
-      geocdf
-      geoinv
-      geopdf
-      geornd
-      hygecdf
-      hygeinv
-      hygepdf
-      hygernd
-      kolmogorov_smirnov_cdf
-      laplace_cdf
-      laplace_inv
-      laplace_pdf
-      laplace_rnd
-      logistic_cdf
-      logistic_inv
-      logistic_pdf
-      logistic_rnd
-      logncdf
-      logninv
-      lognpdf
-      lognrnd
-      nbincdf
-      nbininv
-      nbinpdf
-      nbinrnd
-      normcdf
-      norminv
-      normpdf
-      normrnd
-      poisscdf
-      poissinv
-      poisspdf
-      poissrnd
-      stdnormal_cdf
-      stdnormal_inv
-      stdnormal_pdf
-      stdnormal_rnd
-      tcdf
-      tinv
-      tpdf
-      trnd
-      unidcdf
-      unidinv
-      unidpdf
-      unidrnd
-      unifcdf
-      unifinv
-      unifpdf
-      unifrnd
-      wblcdf
-      wblinv
-      wblpdf
-      wblrnd
-      wienrnd
-
-    MODELS
-      logistic_regression
-
-    TESTS
-      anova
-      bartlett_test
-      chisquare_test_homogeneity
-      chisquare_test_independence
-      cor_test
-      f_test_regression
-      hotelling_test
-      hotelling_test_2
-      kolmogorov_smirnov_test
-      kolmogorov_smirnov_test_2
-      kruskal_wallis_test
-      manova
-      mcnemar_test
-      prop_test_2
-      run_test
-      sign_test
-      t_test
-      t_test_2
-      t_test_regression
-      u_test
-      var_test
-      welch_test
-      wilcoxon_test
-      z_test
-      z_test_2
-
- ** The following image functions have been moved from core Octave to
-    the image package available from Octave Forge.
-
-      ntsc2rgb
-      rgb2ntsc
-
- ** Other new functions added in 4.4:
-
-      bounds
-      camlookat
-      camorbit
-      campos
-      camroll
-      camtarget
-      camup
-      camva
-      camzoom
-      corrcoef
-      cosint
-      decic
-      erase
-      gammaincinv
-      getframe
-      groot
-      gsvd
-      hgtransform
-      humps
-      integral
-      integral2
-      integral3
-      isgraphics
-      isstring
-      mad
-      ode15i
-      ode15s
-      openvar
-      quad2d
-      repelem
-      rgb2gray
-      rticks
-      sinint
-      tfqmr
-      thetaticks
-      vecnorm
-      winqueryreg
-      xticklabels
-      xticks
-      yticklabels
-      yticks
-      zticklabels
-      zticks
-
- ** Deprecated functions.
-
-    The following functions have been deprecated in Octave 4.4 and will
-    be removed from Octave 6 (or whatever version is the second major
-    release after 4.4):
-
-      Function             | Replacement
-      ---------------------|------------------
-      chop                 | sprintf for visual results
-      desktop              | isguirunning
-      tmpnam               | tempname
-      toascii              | double
-      java2mat             | __java2mat__
-
-
- ** The following functions were deprecated in Octave 4.0 and have been
-    removed from Octave 4.4.
-
-      allow_noninteger_range_as_index
-      bicubic
-      delaunay3
-      do_braindead_shortcircuit_evaluation
-      dump_prefs
-      find_dir_in_path
-      finite
-      fmod
-      fnmatch
-      gmap40
-      loadaudio
-      luinc
-      mouse_wheel_zoom
-      nfields
-      octave_tmp_file_name
-      playaudio
-      saveaudio
-      setaudio
-      syl
-      usage
-
- ** The "Octave:undefined-return-values" warning ID is obsolete.  Octave
-    now throws an error for any attempts to assign undefined values that
-    might be returned from functions.
-
- ** Deprecated graphics properties.
-
-    The following properties or allowed corresponding values have been
-    deprecated in Octave 4.4 and will be removed from Octave 6 (or whatever
-    version is the second major release after 4.4):
-
-      Object               | Property                | Value
-      ---------------------|-------------------------|-------------------
-      figure               | doublebuffer            |
-                           | mincolormap             |
-                           | wvisual                 |
-                           | wvisualmode             |
-                           | xdisplay                |
-                           | xvisual                 |
-                           | xvisualmode             |
-      axes                 | drawmode                |
-      annotation           | edgecolor ("rectangle") |
-      text                 | fontweight              | "demi" and "light"
-      uicontrol            | fontweight              | "demi" and "light"
-      uipanel              | fontweight              | "demi" and "light"
-      uibuttongroup        | fontweight              | "demi" and "light"
-
- ** The rectangle and ellipse annotation property "edgecolor" has been
-    deprecated and will be removed from Octave 6 (or whatever version
-    is the second major release after 4.4).  Use the property "color"
-    instead.
-
- ** The header file oct-alloc.h has been removed along with the macros
-    that it defined (DECLARE_OCTAVE_ALLOCATOR, DEFINE_OCTAVE_ALLOCATOR,
-    and DEFINE_OCTAVE_ALLOCATOR2).
-
diff -r fe5dcb23372a -r dedb85c54245 NEWS-5.1.md --- a/NEWS-5.1.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,332 +0,0 @@ ---- -layout: page -title: Summary of important user-visible changes for version 5 -menu: false ---- - -February 23, 2019 - -{::options parse_block_html="true" /} -
-* TOC -{:toc} -
-{::options parse_block_html="false" /} - -### General improvements - -- The Octave plotting system now supports high resolution screens, - i.e., those with greater than 96 DPI which are referred to as - HiDPI/Retina monitors. - -- Unicode character support for files and folders in Windows. - -- A new core function `movfun` will apply a function to a sliding - window of arbitrary size on a dataset and accumulate the results. - Many common cases have been implemented using the naming - scheme `movXXX` where `XXX` is the function that will be applied. - For example, the moving average over a dataset is `movmean`. - New moving window functions: - - `movfun` `movslice` - `movmad` `movmax` `movmean` `movmedian` `movmin` `movprod` - `movstd` `movsum` `movvar` - -- The `fsolve` function has been tweaked to use larger step sizes when - calculating the Jacobian of a function with finite differences. - This leads to faster convergence. - -- The `ranks` function has been recoded for performance and is now 25X - faster. In addition, it now supports a third argument that specifies - how to resolve the ranking of tie values. - -- The function `randi` has been recoded to produce an unbiased (all - results are equally likely) sample of integers. This may produce - different results in existing code. If it is necessary to reproduce - the exact random integer sequence as in previous versions use - - `ri = imin + floor ((imax - imin + 1) * rand ());` - -- The function `isdefinite` now returns `true` or `false` rather than - `-1`, `0`, or `1`. To test for a positive semi-definite matrix (old - output of `0`) check whether the following two conditions hold: - - `isdefinite (A) => 0` and `isdefinite (A + 5*TOL, TOL) => 1` - -- The `intmax`, `intmin`, and `flintmax` functions now accept a variable - as input. Existing code to query the range of an existing variable can - be simplified by removing the call to `class` that was previously - required. For example defining the variable `x = int8 (3)` in the - workspace, calls like - - `range = [ intmin(class(x)), intmax(class(x)) ]` - - can in Octave 5 be simplified to `range = [ intmin(x), intmax(x) ]`. - -- The path handling functions no longer perform variable or brace - expansion on path elements and Octave's load-path is no longer - subject to these expansions. - -- A new printing device is available, `"-ddumb"`, which produces ASCII - art for plots. This device is only available with the gnuplot toolkit. - - -### Dependencies - -- The GUI requires Qt libraries. The minimum Qt4 version supported is - Qt4.8. Qt5 of any version is preferred. - -- The OSMesa library is no longer used. To print invisible figures - when using OpenGL graphics, the Qt `QOFFSCREENSURFACE` feature must be - available and you must use the qt graphics toolkit. - -- The FFTW library is now required to perform FFT calculations. - The FFTPACK sources have been removed from Octave. - - -### Matlab compatibility - -- The determination of an object's dimensions, size, and shape by the - functions `ndims`, `rows`, `columns`, `isscalar`, `isvector`, - `isrow`, `iscolumn`, `ismatrix`, and `issquare` now fully depends - on the function size. Thus, any user-defined object can ensure correct - treatment by the aforementioned functions by properly overloading the - `size` function. - -- The functions `issymmetric` and `ishermitian` accept an option - `"nonskew"` or `"skew"` to calculate the symmetric or skew-symmetric - property of a matrix. Performance has also been increased. - -- The `issorted` function now uses a direction option of `"ascend"` - or `"descend"`. Change all uses of `"ascending"` and `"descending"` - in existing code to the new options. - -- The `strncmp` and `strncmpi` functions now return `true` if the two - input strings match, even though the number of characters specified - by `n` exceeds the string length. For Example: - - `strncmp ("abc", "abc", 100)` - - returns `true` in Octave 5 and `false` in older versions of Octave. - -- The `str2func` function no longer accepts a second `"global"` argument. - This argument was typically used to allow functions that accept - function names as arguments to avoid conflicts with subfunctions or - nested functions. Instead, it's best to avoid this situation - entirely and require users to pass function handles rather than - function names. - -- Using `clear` with no arguments now removes only local variables - from the current workspace. Global variables will no longer be - visible, but they continue to exist in the global workspace and - possibly other workspaces such as the base workspace. - - -#### Nonlinear Equations - -Several default solver options have been changed to be Matlab compatible. -This *may* result in existing code producing different results. - -- `fsolve` - - Option | New Default | Old Default - ---------------|------------------|------------- - `FinDiffType` | `"forward"` | `"central"` - `MaxFunEvals` | `100*length(x0)` | `Inf` - `TolFun` | `1e-6` | `1e-7` - `TolX` | `1e-6` | `1e-7` - `Updating` | `"off"` | `"on"` - -- `fminsearch` - - Option | New Default | Old Default - ---------|-------------|------------ - `TolFun` | `1e-7` | `1e-4` - -- `fminbnd` - - Option | New Default | Old Default - ---------------|-------------|------------ - `MaxFunEvals` | `500` | `Inf` - `MaxIter` | `500` | `Inf` - `TolX` | `1e-4` | `1e-8` - -- `fminunc` - - Option | New Default | Old Default - ---------------|------------------|------------ - `FinDiffType` | `"forward"` | `"central"` - `MaxFunEvals` | `100*length(x0)` | `Inf` - `TolX` | `1e-6` | `1e-7` - `TolFun` | `1e-6` | `1e-7` - - -#### Graphic objects - -- Figure graphic objects have a new property `"Number"` which is - read-only and will return the handle (number) of the figure. - However, if the property `"IntegerHandle"` has been set to `"off"` - then the property will return an empty matrix `[]`. - -- Patch and surface graphic objects now use the `"FaceNormals"` property - for flat lighting. - -- `"FaceNormals"` and `"VertexNormals"` for patch and surface graphic - objects are now calculated only when necessary to improve graphics - performance. In order for any normals to be calculated the - `"FaceLighting"` property must be set to `"flat"` (FaceNormals) or - `"gouraud"` (VertexNormals), **and** a light object must be present - in the axes. - -- The `"Margin"` property of `text`-objects has a new default of `3` - rather than `2`. - -- Printing to raster formats (bitmaps like PNG or JPEG) now uses an - OpenGL-based method by default. The print options `"-opengl"` - (raster) and `"-painters"` (vector) have been added ("qt" toolkit - only). The figure property `"renderer"` specifies which renderer to - use. When the property `"renderermode"` is `"auto"` Octave will select - `"-opengl"` for a raster output format and `"-painters"` for a vector - output format. - -- A new print option `"-RGBImage"` has been added which captures the - pixels of a figure as an image. This is similar to screen capture - tools, except that print formatting options can be used to, for - example, change the resolution or display the image in black and - white. - -- Two new print options for page-based formats (PDF, PostScript) have - been added. The `"-fillpage"` option will stretch the plot to occupy - the entire page with 0.25 inch margins all around. The `"-bestfit"` - option will expand the plot to take up as much room as possible on - the page without distorting the original aspect ratio of the plot. - -- Printing using the `"-dtiff"` output device will now create compressed - images using LZW compression. To produce uncompressed images use the - `"-dtiffn"` device. - - -### Legacy functions - -The following functions have been declared legacy functions which -means they are obsolete and should not be used in any new code. -Unlike deprecated functions, however, their removal from Octave has -not yet been scheduled. - - Function | Replacement - -----------------------|------------------ - `findstr` | `strfind` - `flipdim` | `flip` - `isdir` | `isfolder` or `dir_in_loadpath` - `isequalwithequalnans` | `isequaln` - `isstr` | `ischar` - `setstr` | `char` - `strmatch` | `strncmp` or `strcmp` - `strread` | `textscan` - `textread` | `textscan` - - -### Deprecated functions and properties - -The following functions and graphics properties have been deprecated -in Octave 5 and will be removed from Octave 7 (or whatever version -is the second major release after 5): - -- Functions - - Function | Replacement - -------------------------|------------------- - `output_max_field_width` | `output_precision` - `is_keyword` | `iskeyword` - -- Graphics properties - - Object | Property | Value - -----------------|---------------|------------ - `text` | `fontangle` | `"oblique"` - `uibuttongroup` | `fontangle` | `"oblique"` - `uicontrol` | `fontangle` | `"oblique"` - `uipanel` | `fontangle` | `"oblique"` - `uitable` | `fontangle` | `"oblique"` - -- Specifying `legend` position with a numeric argument is deprecated. - Use a string argument instead. - -- The environment variable used by `mkoctfile` for linker flags is now - `LDFLAGS` rather than `LFLAGS`. `LFLAGS` is deprecated, and a warning - is emitted if is used, but it will continue to work. - - -### Removed functions and properties - -The following functions and properties were deprecated in Octave 4.2 -and have been removed from Octave 5. - -- Functions - - Function | Replacement - -----------------------|------------------ - `bitmax` | `flintmax` - `mahalanobis` | `mahal` in Octave Forge statistics pkg - `md5sum` | `hash` - `octave_config_info` | `__octave_config_info__` - `onenormest` | `normest1` - `sleep` | `pause` - `usleep` | `pause` - `wavread` | `audioread` - `wavwrite` | `audiowrite` - -- Properties - - Object | Property | Value - ------------|-------------------|--------- - `axes` | `xaxislocation` | `"zero"` - | `yaxislocation` | `"zero"` - `hggroup` | `erasemode` | - `image` | `erasemode` | - `line` | `erasemode` | - `patch` | `erasemode` | - `patch` | `normalmode` | - `surface` | `erasemode` | - `surface` | `normalmode` | - `text` | `erasemode` | - - -### Alphabetical list of new functions added in 5 - -- `clearvars` -- `isfile` -- `isfolder` -- `matlab.lang.makeUniqueStrings` -- `matlab.lang.makeValidName` -- `movegui` -- `movfun` -- `movie` -- `movmad` -- `movmax` -- `movmean` -- `movmedian` -- `movmin` -- `movprod` -- `movslice` -- `movstd` -- `movsum` -- `movvar` -- `openfig` -- `ordeig` -- `savefig` -- `uitable` - - -### Old release news - -- [Octave 4.4.x](NEWS-4.4.html) -- [Octave 4.2.x](NEWS-4.2.html) -- [Octave 4.0.x](NEWS-4.0.html) -- [Octave 3.8.x](NEWS-3.8.html) -- [Octave 3.6.x](NEWS-3.6.html) -- [Octave 3.4.x](NEWS-3.4.html) -- [Octave 3.2.x](NEWS-3.2.html) -- [Octave 3.0.x](NEWS-3.html) -- [Octave 2.x](NEWS-2.html) -- [Octave 1.x](NEWS-1.html) diff -r fe5dcb23372a -r dedb85c54245 _config.yml --- a/_config.yml Mon Jul 20 16:14:52 2020 +0900 +++ b/_config.yml Thu Sep 10 17:47:36 2020 +0900 @@ -1,41 +1,27 @@ -# Welcome to Jekyll! -# -# This config file is meant for settings that affect your whole blog, values -# which you are expected to set up once and rarely edit after that. If you find -# yourself editing this file very often, consider using Jekyll's data files -# feature for the data you need to update frequently. -# -# For technical reasons, this file is *NOT* reloaded automatically when you use -# 'bundle exec jekyll serve'. If you change this file, please restart the server -# process. - - -# Site settings -# These are used to personalize your new site. If you look in the HTML files, -# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. -# You can create any custom variable you would like, and they will be accessible -# in the templates via {{ site.myvariable }}. title: GNU Octave -email: maintainers@octave.org -description: > # this means to ignore newlines until "baseurl:" +email: octave-maintainers@gnu.org +description: >- # this means to ignore newlines until "baseurl:" GNU Octave is a programming language for scientific computing. -baseurl: "/software/octave" # the subpath of your site, e.g. /blog -url: "https://www.gnu.org" # the base hostname & protocol for your site +#baseurl: "/software/octave" # only needed for publication at gnu.org +url: "https://www.gnu.org" # the base hostname & protocol for your site discourse_url: "https://octave.discourse.group/" wiki_url: "https://wiki.octave.org" faq_url: "https://wiki.octave.org/faq" docs_url: "https://www.gnu.org/software/octave/doc/latest" bugs_url: "https://savannah.gnu.org/bugs/?group=octave" sourceforge_url: "https://octave.sourceforge.io" -maintainers_email: "maintainers@octave.org" -help_email: "help@octave.org" +maintainers_email: "octave-maintainers@gnu.org" +help_email: "help-octave@gnu.org" irc_channel: "#octave" irc_network: "irc.freenode.net" timezone: "UTC0" # Build settings markdown: kramdown -highlighter: pygments +highlighter: rouge +kramdown: + input: GFM + syntax_highlighter: rouge exclude: - Makefile diff -r fe5dcb23372a -r dedb85c54245 _includes/code1.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/_includes/code1.html Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,5 @@ +
b = [4; 9; 2] # Column vector
+A = [ 3 4 5;
+      1 3 1;
+      3 5 9 ]
+x = A \ b     # Solve the system Ax = b
diff -r fe5dcb23372a -r dedb85c54245 _includes/code2.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/_includes/code2.html Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,6 @@ +
x = -10:0.1:10; # Create an evenly-spaced vector from -10..10
+y = sin (x);    # y is also a vector
+plot (x, y);
+title ("Simple 2-D Plot");
+xlabel ("x");
+ylabel ("sin (x)");
diff -r fe5dcb23372a -r dedb85c54245 _includes/release_news_select.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/_includes/release_news_select.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,13 @@ +News for version  +[5.1]({{ 'NEWS-5.1.html' | relative_url }})   +[4.4]({{ 'NEWS-4.4.html' | relative_url }})   +[4.2]({{ 'NEWS-4.2.html' | relative_url }})   +[4.0]({{ 'NEWS-4.0.html' | relative_url }})   +[3.8]({{ 'NEWS-3.8.html' | relative_url }})   +[3.6]({{ 'NEWS-3.6.html' | relative_url }})   +[3.4]({{ 'NEWS-3.4.html' | relative_url }})   +[3.2]({{ 'NEWS-3.2.html' | relative_url }})   +[3.0]({{ 'NEWS-3.html ' | relative_url }})   +[2 ]({{ 'NEWS-2.html ' | relative_url }})   +[1 ]({{ 'NEWS-1.html ' | relative_url }})   +([Release History]({{ site.wiki_url }}/Release_History)) diff -r fe5dcb23372a -r dedb85c54245 about.md --- a/about.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ ---- -layout: page -title: About -menu: true ---- - -GNU Octave is a high-level language, primarily intended for numerical -computations. -It provides a convenient command line interface for solving linear and -nonlinear problems numerically, -and for performing other numerical experiments using a language that is mostly -compatible with Matlab. -It may also be used as a batch-oriented language. - -Octave has extensive tools for solving common numerical linear algebra problems, -finding the roots of nonlinear equations, -integrating ordinary functions, -manipulating polynomials, -and integrating ordinary differential and differential-algebraic equations. -It is easily extensible and customizable via user-defined functions written in -Octave's own language, -or using dynamically loaded modules written in C++, C, Fortran, -or other languages. - -GNU Octave is also freely redistributable software. -You may redistribute it and/or modify it under the terms of the -[GNU General Public License (GPL)][GPL] as published by the -[Free Software Foundation](https://www.fsf.org/). - -Octave was written by [John W. Eaton](mailto:jwe@octave.org) and -[many others](https://hg.savannah.gnu.org/hgweb/octave/file/tip/doc/interpreter/contributors.in). -Because Octave is [free software](https://www.gnu.org/philosophy/free-sw.html) you are encouraged to help make Octave -more useful by writing and contributing additional functions for it, -and by reporting any problems you may have. - - -## History - -Octave was originally conceived (in about 1988) to be companion software for an -undergraduate-level textbook on chemical reactor design being written by James -B. Rawlings of the University of Wisconsin-Madison and John G. Ekerdt of the -University of Texas. -We originally envisioned some very specialized tools for the solution of -chemical reactor design problems. -Later, -after seeing the limitations of that approach, -we opted to attempt to build a much more flexible tool. - -There were still some people who said that we should just be using Fortran -instead, -because it is the computer language of engineering, -but every time we had tried that, -the students spent far too much time trying to figure out why their Fortran -code failed and not enough time learning about chemical engineering. -We believed that with an interactive environment like Octave, -most students would be able to pick up the basics quickly, -and begin using it confidently in just a few hours. - -Full-time development began in the Spring of 1992. -The first alpha release was January 4, 1993, and version 1.0 was released -February 17, 1994. -Since then, Octave has been through several major revisions, -is included with [Debian GNU/Linux](https://www.debian.org/), -[openSUSE](https://www.opensuse.org/), -and many other GNU/Linux distributions. -Octave was reviewed in the in the July, 1997 issue of the -[Linux Journal](http://www.linuxjournal.com/article/1225). - -Clearly, -Octave is now much more than just another courseware package with limited -utility beyond the classroom. -Although our initial goals were somewhat vague, -we knew that we wanted to create something that would enable students to solve -realistic problems, -and that they could use for many things other than chemical reactor design -problems. -Today, thousands of people worldwide are using Octave in teaching, -research, and commercial applications. - -Just about everyone thinks that the name Octave has something to do with music, -but it is actually the name of one of the author's former professor -[Octave Levenspiel](https://en.wikipedia.org/wiki/Octave_Levenspiel) -who wrote a famous textbook on chemical reaction engineering, -and who was also well known for his ability to do quick "back of the envelope" -calculations. -We hope that this software will make it possible for many people to do more -ambitious computations just as easily. - -Everyone is encouraged to share this software with others under the terms of -the [GNU General Public License (GPL)][GPL]. -You are also encouraged to help make Octave more useful by writing and -contributing additional functions for it, -and by reporting any problems you may have. - -[GPL]: https://www.gnu.org/copyleft/gpl.html diff -r fe5dcb23372a -r dedb85c54245 bugs.md --- a/bugs.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ ---- -layout: page -title: Bugs -menu: true ---- - -GNU Octave uses the bug tracker at [Savannah]({{ site.bugs_url }}). -There you can [report a new bug]({{ site.bugs_url }}&func=additem), -[browse recent bugs]({{ site.bugs_url }}), -or [search for bugs]({{ site.bugs_url }}&func=search). - -### Guidelines for reporting a new bug - -1. **Is the bug already known?** - - - [Search for already reported bugs at the bug tracker]({{ site.bugs_url }}&func=search), - - look at the - [list of known causes of trouble]({{ site.docs_url }}/Trouble.html) - in the Octave manual. - -

- - If you your problem **does not appear** to be known, - then you should report the problem. - -2. **Is it really a bug?** - - - If Octave **crashes**, for any input whatever, that is a bug. - Reliable interpreters never crash. - - If Octave produces **incorrect results**, for any input whatever, - that is a bug. - - If Octave produces an **error message** for **valid input**, that is a bug. - - If Octave produces **no error message** for **invalid input**, - that is a bug. - -

- -3. **Missing function in Octave** - - - If the function is - [part of some Octave Forge package]({{ site.sourceforge_url }}/functions_by_alpha.php), - this is **not** a bug. - - If the function **exists in Matlab**, - but **not in core Octave** and **not in Octave Forge packages**, - that is a bug. - -

- - It might take several months or years until for new features to become part - of Octave, consider - [commercial support]({{ "commercial-support.html" | relative_url }}) - if you don't want to wait that long). - -4. **Make your bug report count** - - - **Report all the facts:**
- Include all information that make it possible to fix the bug. - If you are not sure whether to state a fact or leave it out, state it. - This information includes your **operating system**, **Octave version**, - **exact error message** or **exact output**. - - **Give a short, specific, complete example:**
- Avoid: pseudocode, uninitialized variables, - calls to unattached scripts or functions. - - **Justify your exectations briefly:**
- Although it might seem obvious to you, - someone examining the problem might not know what result you consider - correct. - - -### Sending Patches for Octave - -If you have a suggested fix for a bug, -please attach it to your report in the tracker. -Your patch is more likely to be reviewed if you follow the guidelines from the -Octave Wiki about the [creation of changesets]({{ site.wiki_url }}/Mercurial). diff -r fe5dcb23372a -r dedb85c54245 commercial-support.md --- a/commercial-support.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ ---- -layout: page -title: Commercial Support -menu: false ---- - -The following organizations and individuals provide paid consulting services -for Octave. If you have questions about them, please visit their web sites -or contact them individually. This list is provided as a service to the -community and the support providers. The Octave project does not provide -endorsements or recommendations. - -If you would like to have your company listed here, -please contact us at [Octave Discourse]({{ site.discourse_url }}) -in the "maintainers" category. - -- [**John W. Eaton Consulting, Inc.**][2] provides software consulting and - support services, primarily for GNU Octave, a free software system for - numerical analysis. Services include help with installing and using the - software, as well as prompt responses to problem reports. - - As the original author and current maintainer of GNU Octave, Dr. Eaton is - uniquely qualified to deliver the most comprehensive solutions for your - Octave needs. - -- [**MOXOFF**][3] provides custom programming and custom numerical modeling - solutions based on free software tools and in particular on GNU Octave. - - MOXOFF applies mathematics and statistical analysis to complex, multiphysics - problems. Our approach covers a broad spectrum of fields: we run applied - research and develop innovative mathematical solutions for engineering, - life science and social science problems. Our skills can be applied to a - wide range of subjects: bio-technologies, aerospace design, domestic - appliances, conventional and renewable power generation, electronics, - financial instruments, analysis and simulation of geological processes, - biomedical equipment to cite just a few of our more recent projects. - We deliver business-class solutions based on GNU Octave and we also provide - evolutive maintenance. We design GNU Octave based interfaces to free - software tools for scientific computing. - -- [**CoCalc**][4] is an online service that provides GNU Octave via Linux - Terminals, Jupyter Notebooks and X11 desktops, with full support for realtime - collaboration. Moreover, CoCalc features a course management system that is - tailored for teaching courses online. - - The company Sagemath, Inc. develops and operates CoCalc. You can start - working with the [online service][5] for free and upgrade later for a better - experience. You can also run your own CoCalc on-premises. - -[2]: https://jweaton.org -[3]: https://www.moxoff.com/moxoff-partner-di-octave/ -[4]: https://cocalc.com/doc/octave.html -[5]: https://cocalc.com diff -r fe5dcb23372a -r dedb85c54245 community-news.html --- a/community-news.html Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ ---- -layout: null ---- - - - - - - - -Octave Community News - - - -{% for post in site.categories.release limit:3 %} - -

{{ post.title }}

- -{{ post.excerpt }} - -— The Octave Developers, {{ post.date | date: "%b %-d, %Y" }} - -{% endfor %} - - - diff -r fe5dcb23372a -r dedb85c54245 donate.md --- a/donate.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ ---- -layout: page -title: Donate -menu: true ---- - -> **Octave development takes a lot of time and expertise.** -> **Your contributions help to ensure that Octave will continue to improve.** - -- [FSF Donation Page](https://crm.fsf.org/civicrm/contribute/transact?reset=1&id=10) -- [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=UYHVW7R596RZ8) - to John W. Eaton Consulting, Inc. (Octave project leader) -- [Bitcoin](bitcoin:1E6HchBMX1EfiJQhSUanuF4VYKk552tEHF) - (1E6HchBMX1EfiJQhSUanuF4VYKk552tEHF) -- [Commercial support options]({{ "commercial-support.html" | relative_url }}) - to implement the specific features - -If you are already an Octave user and would like to see it improve more rapidly, -then please donate so that we can spend more of our time working on Octave. -If we could raise as little as $300,000/year, -we could pay several key developers to work full time on Octave. -Given even the most conservative estimate of the number of users of Octave, -this amount could easily be reached if every user contributed the cost of -a few lattes. - -If your company has a budget for numerical computing tools, -consider spending 10% (or more!) of that on Octave. -Do you expect Octave to improve on a $0 budget -while the proprietary tools are well-funded by your license fees? diff -r fe5dcb23372a -r dedb85c54245 download.md --- a/download.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ ---- -layout: page -title: Download -menu: true ---- - - - - -

 

- -### Source {#source2} - -The latest released version of Octave is always available from - -- https://ftp.gnu.org/gnu/octave -- ftp://ftp.gnu.org/gnu/octave - -Please download from -[https://ftpmirror.gnu.org/octave](https://ftpmirror.gnu.org/octave), -which will redirect automatically to a nearby -[mirror site](https://www.gnu.org/order/ftp.html). - - -

 

- -### GNU/Linux {#linux2} - -Packaged versions of Octave for GNU/Linux systems are provided by the -individual distributions described in the -[Octave wiki]({{ site.wiki_url }}/Category:Installation). -These packages are created by volunteers. -The delay between an Octave source release and the availability of a package -for a particular GNU/Linux distribution varies. - -Alternatively, -there are some distribution independent installation methods for more recent -versions of GNU Octave described in the -[Octave wiki]({{ site.wiki_url }}/Octave_for_GNU/Linux#Distribution_independent). - - -

 

- -### macOS {#macos2} - -The [Octave Wiki]({{ site.wiki_url }}/Octave_for_macOS) has instructions for -installing Octave on macOS systems. -Octave is also available in third-party package managers such as -[Homebrew](https://brew.sh/) and [MacPorts](https://www.macports.org). - - -

 

- -### BSD {#bsd2} - -Executable versions of Octave for BSD systems are provided by the individual -distributions. -Both [FreeBSD](https://www.freebsd.org/) and [OpenBSD](https://www.openbsd.org/) -have Octave packages. -These packages are created by volunteers and the Octave project has no control -over that process. - - -

 

- -### Microsoft Windows {#ms-windows2} - -
-Note: All installers below bundle several Octave Forge packages -so they don't have to be installed separately. -After installation type pkg list to list them. -Read more. - - - -
- -- Windows-64 (recommended) - - [octave-5.2.0_1-w64-installer.exe](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-installer.exe) - (~ 300 MB) - [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-installer.exe.sig) - - [octave-5.2.0_1-w64.7z](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64.7z) - (~ 300 MB) - [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64.7z.sig) - - [octave-5.2.0_1-w64.zip](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64.zip) - (~ 530 MB) - [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64.zip.sig) - -

- -- Windows-32 (old computers) - - [octave-5.2.0_1-w32-installer.exe](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32-installer.exe) - (~ 275 MB) - [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32-installer.exe.sig) - - [octave-5.2.0_1-w32.7z](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32.7z) - (~ 258 MB) - [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32.7z.sig) - - [octave-5.2.0_1-w32.zip](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32.zip) - (~ 447 MB) - [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32.zip.sig) - -

- -- Windows-64 (64-bit linear algebra for large data) -
- Unless your computer has more than ~32GB of memory - and you need to solve linear algebra problems - with arrays containing more than ~2 billion elements, this - version will offer no advantage over the recommended Windows-64 - version above. - - - - [octave-5.2.0_1-w64-64-installer.exe](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64-installer.exe) - (~ 286 MB) - [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64-installer.exe.sig) - - [octave-5.2.0_1-w64-64.7z](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64.7z) - (~ 279 MB) - [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64.7z.sig) - - [octave-5.2.0_1-w64-64.zip](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64.zip) - (~ 490 MB) - [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64.zip.sig) - -All Windows binaries with corresponding source code can be downloaded from -[https://ftpmirror.gnu.org/octave/windows/](https://ftpmirror.gnu.org/octave/windows/). diff -r fe5dcb23372a -r dedb85c54245 get-involved.md --- a/get-involved.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ ---- -layout: page -title: Get Involved -menu: true ---- - -We always need more help improving Octave -and there are many ways you can contribute. -You can help by fixing bugs, -developing new features, -writing [Octave Forge packages]({{ site.sourceforge_url }}), -answering questions in Discourse, -helping to improve the web pages. -If you are wondering what to work on, -we have a standard answer: -**What would you like to work on?** - -For some inspiration, -we do maintain a [list of possible projects]({{ site.wiki_url }}/Projects) -and a [Developer FAQ]({{ site.wiki_url }}/Developer_FAQ) on the Octave Wiki. - -If know what to contribute, -discuss your ideas with us on [Discourse]({{ site.discourse_url }}) -("maintainers" category) or on our IRC -[Freenode `{{ site.irc_channel }}` channel](https://webchat.freenode.net/#octave). - - -### Using the Development Sources - -The latest development sources of GNU Octave are available via -[Mercurial](https://www.mercurial-scm.org/) (hg). -The primary repository address is -[https://www.octave.org/hg/octave](https://www.octave.org/hg/octave), -which currently redirects to -[https://hg.savannah.gnu.org/hgweb/octave](https://hg.savannah.gnu.org/hgweb/octave). -You obtain the latest development version of Octave sources with the following -command: - -{% highlight text %} -hg clone https://www.octave.org/hg/octave -{% endhighlight %} - -The [Developer FAQ]({{ site.wiki_url }}/Developer_FAQ) on the Octave Wiki -contains more detailed and recent information about Octave development. diff -r fe5dcb23372a -r dedb85c54245 index.md --- a/index.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ ---- -layout: default ---- - -
-
- Need help? Try out our new user and developer forum - Octave Discourse. -
- -
- -
-
- - Example mesh - -
-
- -

Scientific Programming Language

-
    -
  • Powerful mathematics-oriented syntax with built-in 2D/3D plotting and visualization tools
  • -
  • Free software, runs on GNU/Linux, macOS, BSD, and Microsoft Windows
  • -
  • Drop-in compatible with many Matlab scripts
  • -
- -
-
- -### Syntax Examples - -The Octave syntax is largely compatible with Matlab. -The Octave interpreter can be run in -GUI mode, as a console, -or invoked as part of a shell script. -More Octave examples can be found in -[the Octave wiki]({{ site.wiki_url }}/Using_Octave). - -
-
-

- Solve systems of equations with linear algebra operations on - vectors and matrices. -

-
-
-{% highlight octave %} -b = [4; 9; 2] # Column vector -A = [ 3 4 5; - 1 3 1; - 3 5 9 ] -x = A \ b # Solve the system Ax = b -{% endhighlight %} -
-
- -
-
-

- Visualize data with high-level plot commands - in 2D and 3D. -

-
-
-{% highlight octave %} -x = -10:0.1:10; # Create an evenly-spaced vector from -10..10 -y = sin (x); # y is also a vector -plot (x, y); -title ("Simple 2-D Plot"); -xlabel ("x"); -ylabel ("sin (x)"); -{% endhighlight %} - Click here to see the plot output -
-
- - -### Octave Forge - -[Octave Forge]({{ site.sourceforge_url }}) is a collection of high quality -packages for GNU Octave, similar to Matlab's toolboxes. -To install a package, use the `pkg` command from the Octave prompt by typing: - -{% highlight text %} -pkg install -forge package_name -pkg load package_name -{% endhighlight %} - -Browse Packages - - -### Development - -Octave is free software licensed under the -[GNU General Public License (GPL)]({{ "license.html" | relative_url }}). -Assuming you have Mercurial installed on your machine you may obtain the latest -development version of Octave sources with the following command: - -{% highlight text %} -hg clone https://www.octave.org/hg/octave -{% endhighlight %} - -[Get involved]({{ "/get-involved.html" | relative_url }}) in Octave development. - - -{% assign latest_post = site.posts.first %} -{% if latest_post %} -
- - RSS - -

- {{ latest_post.title }} -

- -
{{ latest_post.excerpt }}
-
-{% endif %} - -
- Example mesh - -
- -
- Example plot - -
- -
- GNU Octave GUI screenshot - -
diff -r fe5dcb23372a -r dedb85c54245 license.md --- a/license.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ ---- -layout: page -title: License -menu: false ---- - -The source code for Octave is freely redistributable under the -terms of the [GNU General Public License (GPL)][1] as published by -the [Free Software Foundation][2]. - -Simply put, the GPL says that anyone who redistributes the -software, with or without changes, must pass along the freedom to -further copy and change it. By distributing the complete source -code for GNU Octave under the terms of the GPL, we guarantee that -you and all other users will have the freedom to redistribute and -change Octave. - -Releasing the source code for Octave has another benefit as well. -By having access to all of the source code for a mathematical -system like Octave, you have the ability to see *exactly* -how each and every computation is performed. There are no black -boxes that hide the details of any calculation. - -Although enhancements to Octave that are written as function files -in Octave's scripting language are not required to be -redistributed under the terms of the GPL, we encourage you to -release your enhancements to Octave under the same terms for the -benefit of all users. We also encourage you to -[get involved with the Octave project][3] and submit your changes -for inclusion in future versions of Octave. - -[1]: https://www.gnu.org/copyleft/gpl.html -[2]: https://www.fsf.org/ -[3]: {{ "get-involved.html" | relative_url }} diff -r fe5dcb23372a -r dedb85c54245 missing.md --- a/missing.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ ---- -layout: page -title: Missing function -menu: false ---- - -If you are reading this page, -it is most likely because you attempted to use a function -that is part of Matlab, -but has yet to be implemented in Octave. -GNU Octave strives to be among the very best numerical tools available. -While compatibility with Matlab is one of many strong features of Octave, -we have not achieved 100% compatibility. - -This is what you can do now: - -- Check if the function is - [part of some Octave Forge package]({{ site.sourceforge_url }}/functions_by_alpha.php) -- [Report a bug]({{ "bugs.html" | relative_url }}) -- [Implement the feature yourself]({{ "get-involved.html" | relative_url }}) -- [Get commercial support]({{ "commercial-support.html" | relative_url }}) diff -r fe5dcb23372a -r dedb85c54245 news.md --- a/news.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ ---- -layout: page -title: News -menu: true ---- - -{% for post in site.posts %} -
- {% if post == site.posts.first %} - - RSS - - {% endif %} - {% if post.title == "News Archive" %} -

- {{ post.title }} -

- {% else %} -

- {{ post.title }} -

- -
- {{ post.excerpt }} -
- {% endif %} -
-{% endfor %} diff -r fe5dcb23372a -r dedb85c54245 pages/COPYRIGHT.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/COPYRIGHT.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,517 @@ +--- +layout: page +title: Copyright +menu: false +permalink: /copyright/ +--- + +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 +. + + +Copyright: + +- 1987-1988, 1991-1997, 2003-2018 Free Software Foundation +- 1992-2020 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 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 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 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 Olaf Till +- 2007-2008 Muthiah Annamalai +- 2007-2009 Brian Gough +- 2007-2009 Jason Riedy +- 2007-2013, 2015-2019 Marco Caliari +- 2007-2013, 2018 John P. Swensen +- 2007-2016, 2018-2019 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-2020 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 +- 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 Carnë Draug +- 2011-2019 Philip Nienhuis +- 2011-2020 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 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 Juan Pablo Carbajal +- 2012-2019 Pantxo Diribarne +- 2012-2020 Mike Miller +- 2013 Adam H Aitkenhead +- 2013 Amod Mulay +- 2013 Andre da Costa Barros +- 2013 Andy Register +- 2013 Artem Krosheninnikov +- 2013 Arun Giridhar +- 2013 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 Sébastien Villemot +- 2013, 2016 Sander van Rijn +- 2013, 2018 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 Nir Krakauer +- 2013-2014, 2016-2019 Julien Bect +- 2013-2015 Stefan Mahr +- 2013-2015, 2018 Felipe G. Nievinski +- 2013-2019 Kai T. Ohlhus +- 2013-2020 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 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 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-2019 Nicholas R. Jankowski +- 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 Robert Jenssen +- 2016 Stephen Montgomery-Smith +- 2016-2017 Ernst Reissner +- 2016-2019 Lars Kindermann +- 2016-2019 Markus Mützel +- 2017 Brad Kennedy +- 2017 Georg Wiora +- 2017 Hugo Raguet +- 2017 Lasse Kliemann +- 2017 Richard Zweig +- 2017 Tejaswi D Prakash +- 2017 Victor Norton +- 2017-2019 Alexander Wilms +- 2017-2019 Guillaume Flandin +- 2017-2019 Michael Leitner +- 2017-2019 Michele Ginesi +- 2017-2019 Sahil Yadav +- 2018 Avlas +- 2018 Cristiano Dorigo +- 2018 Dildar Sk +- 2018 Gene Harvey +- 2018 Joe Winegarden +- 2018 Maor Shutman +- 2018 Ronny Standtke +- 2018 Stefan Schlögl +- 2018 Stevie Schraudner +- 2018-2019 A.R. Burgers +- 2018-2019 Andrew Janke +- 2018-2019 Jun Wang +- 2019 Anthony Morast +- 2019 Bill Greene +- 2019 Christian Himpe +- 2019 Daniel Davis +- 2019 Eddy Xiao +- 2019 Juho Iipponen +- 2019 Nguy?n Gia Phong +- 2019 Tomi Pannila +- 2019 William Greene +- 2019-2020 Markus Meisinger + + +See also the list of contributors in the Octave manual (the file +doc/interpreter/contributors.in in the sources). diff -r fe5dcb23372a -r dedb85c54245 pages/NEWS-1.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/NEWS-1.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,1642 @@ +--- +layout: page +title: GNU Octave Version 1 +menu: false +permalink: NEWS-1.html +--- + +## Summary of important user-visible changes + +{% include release_news_select.md %} + +

Summary of changes for version 1.1.1

+ +
+  * New built-in variables, default_return_value and
+    define_all_return_values.
+
+    If define_all_return_values is set to "false", Octave does not do
+    anything special for return values that are left undefined, and
+    you will get an error message if you try to use them.  For
+    example, if the function
+
+      function [x, y] = f ()
+        y = 1;
+      endfunction
+
+    is called as
+
+      octave:13> [a, b] = f ()
+
+    Octave will print an error message for the attempt to assign an
+    undefined value to `a'.
+
+    This is incompatible with Matlab, which will define the return
+    variable `x' to be the empty matrix.  To get the Matlab-like
+    behavior, you can set the variable define_all_return_values to
+    "true" (the default is "false") and default_return_value to `[]'
+    (the default).  Then, any return values that remain undefined when
+    the function returns will be initialized to `[]'.
+
+    If the function is called without explicitly asking for an output,
+    it will succeed.  This behavior is compatible and unchanged from
+    previous versions of Octave.
+
+  * New built-in variable suppress_verbose_help_message.  If set to
+    "true", Octave will not add additional help information to the end
+    of the output from the help command and usage messages for
+    built-in commands.  The default value is "false".
+
+  * New built-in variable PS4 is used as the prefix of echoed input
+    (enabled with the --echo-input (-x) option).
+
+  * The function size() now accepts an optional second argument.
+
+  * Output from `save - ...' now goes through the pager.
+
+  * The break statement may also be used to exit a function, for
+    compatibility with Matlab.
+
+  * The directory tree for installing Octave is now closer to
+    conforming with the current GNU standards.
+
+  * More bug fixes.
+
+ +

Summary of changes for version 1.1.0

+ +
+  * Octave now requires g++ 2.6.3 or later.  This change is necessary
+    to make template instantiations cleaner, and to avoid having to
+    have special cases in the code for earlier versions of gcc.
+
+  * A new data structure type has been added.  The implementation uses
+    an associative array with indices limited to strings, but the
+    syntax is more like C-style structures.  here are some examples of
+    using it.
+
+    Elements of structures can be of any type, including structures:
+
+      octave:1> x.a = 1;
+      octave:2> x.b = [1, 2; 3, 4];
+      octave:3> x.c = "string";
+      octave:4> x
+      x =
+
+      
+
+      octave:5> x.a
+      x.a = 1
+      octave:6> x.b
+      x.b =
+
+        1  2
+        3  4
+
+      octave:7> x.c
+      x.c = string
+      octave:8> x.b.d = 3
+      x.b.d = 3
+      octave:9> x.b
+      x.b =
+
+      
+
+      octave:10> x.b.d
+      x.b.d = 3
+
+    Functions can return structures:
+
+      octave:1> a = rand (3) + rand (3) * I;
+      octave:2> function y = f (x)
+      > y.re = real (x);
+      > y.im = imag (x);
+      > endfunction
+      octave:3> f (a)
+      ans =
+
+      
+
+      octave:4> ans.im
+      ans.im =
+
+        0.093411  0.229690  0.627585
+        0.415128  0.221706  0.850341
+        0.894990  0.343265  0.384018
+
+      octave:5> ans.re
+      ans.re =
+
+        0.56234  0.14797  0.26416
+        0.72120  0.62691  0.20910
+        0.89211  0.25175  0.21081
+
+    Return lists can include structure elements:
+
+      octave:1> [x.u, x.s, x.v] = svd ([1, 2; 3, 4])
+      x.u =
+
+        -0.40455  -0.91451
+        -0.91451   0.40455
+
+      x.s =
+
+        5.46499  0.00000
+        0.00000  0.36597
+
+      x.v =
+
+        -0.57605   0.81742
+        -0.81742  -0.57605
+
+      octave:8> x
+      x =
+
+      
+
+    This feature should be considered experimental, but it seems to
+    work ok.  Suggestions for ways to improve it are welcome.
+
+  * Octave now supports a limited form of exception handling modelled
+    after the unwind-protect form of Lisp:
+
+      unwind_protect
+        BODY
+      unwind_protect_cleanup
+        CLEANUP
+      end_unwind_protect
+
+    Where BODY and CLEANUP are both optional and may contain any
+    Octave expressions or commands.  The statements in CLEANUP are
+    guaranteed to be executed regardless of how control exits BODY.
+
+    This is useful to protect temporary changes to global variables
+    from possible errors.  For example, the following code will always
+    restore the original value of the built-in variable
+    do_fortran_indexing even if an error occurs while performing the
+    indexing operation.
+
+      save_do_fortran_indexing = do_fortran_indexing;
+      unwind_protect
+        do_fortran_indexing = "true";
+        elt = a (idx)
+      unwind_protect_cleanup
+        do_fortran_indexing = save_do_fortran_indexing;
+      end_unwind_protect
+
+    Without unwind_protect, the value of do_fortran_indexing would not
+    be restored if an error occurs while performing the indexing
+    operation because evaluation would stop at the point of the error
+    and the statement to restore the value would not be executed.
+
+  * Recursive directory searching has been implemented using Karl
+    Berry's kpathsea library.  Directories below path elements that
+    end in // are searched recursively for .m files.
+
+  * Octave now waits for additional input when a pair of parentheses
+    is `open' instead of giving an error.  This allows one to write
+    statements like this
+
+      if (big_long_variable_name == other_long_variable_name
+          || not_so_short_variable_name > 4
+          && y > x)
+        some (code, here);
+
+    without having to clutter up the if statement with continuation
+    characters.
+
+  * Continuation lines are now allowed in string constants and are
+    handled correctly inside matrix constants.
+
+  * Both `...{whitespace}\n' and `\{whitespace}\n' can be used to
+    introduce continuation lines, where {whitespace} may include
+    spaces, tabs and comemnts.
+
+  * The script directory has been split up by topic.
+
+  * Dynamic linking mostly works with dld.  The following limitations
+    are known problems:
+
+    -- Clearing dynamically linked functions doesn't work.
+
+    -- Dynamic linking only works with dld, which has not been ported
+       to very many systems yet.
+
+    -- Configuring with --enable-lite-kernel seems to mostly work to
+       make nonessential built-in functions dynamically loaded, but
+       there also seem to be some problems.  For example, fsolve seems
+       to always return info == 3.  This is difficult to debug since
+       gdb won't seem to allow breakpoints to be set inside
+       dynamically loaded functions.
+
+    -- Octave uses a lot of memory if the dynamically linked functions
+       are compiled with -g.  This appears to be a limitation with
+       dld, and can be avoided by not using -g to compile functions
+       that will be linked dynamically.
+
+  * fft2 and ifft2 are now built-in functions.
+
+  * The `&&' and `||' logical operators are now evaluated in a
+    short-circuit fashion and work differently than the element by
+    element operators `&' and `|'.  See the Octave manual for more
+    details.
+
+  * Expressions like 1./m are now parsed as 1 ./ m, not 1. / m.
+
+  * The replot command now takes the same arguments as gplot or
+    gsplot (except ranges, which cannot be respecified with replot
+    (yet)) so you can add additional lines to existing plots.
+
+  * The hold command has been implemented.
+
+  * New function `clearplot' clears the plot window.  The name `clg'
+    is aliased to `clearplot' for compatibility with Matlab.
+
+  * The commands `gplot clear' and `gsplot clear' are equivalent to
+    `clearplot'.  (Previously, `gplot clear' would evaluate `clear' as
+    an ordinary expression and clear all the visible variables.)
+
+  * The Matlab-style plotting commands have been improved.  They now
+    accept line-style arguments, multiple x-y pairs, and other plot
+    option flags.  For example,
+
+      plot (x, y, "@12", x, y2, x, y3, "4", x, y4, "+")
+
+    results in a plot with
+
+      y  plotted with points of type 2 ("+") and color 1 (red).
+      y2 plotted with lines.
+      y3 plotted with lines of color 4.
+      y4 plotted with points which are "+"s.
+
+    the help message for `plot' and `plot_opt' provide full
+    descriptions of the options.
+
+  * NaN is now dropped from plot data, and Inf is converted to a
+    very large value before calling gnuplot.
+
+  * Improved load and save commands:
+
+    -- The save and load commands can now read and write a new binary
+       file format.  Conversion to and from IEEE big and little endian
+       formats is handled automatically.  Conversion for other formats
+       has not yet been implemented.
+
+    -- The load command can now read Matlab .mat files, though it is
+       not yet able to read sparse matrices or handle conversion for
+       all data formats.
+
+    -- The save command can write Matlab .mat files.
+
+    -- The load command automatically determines the save format
+       (binary, ascii, or Matlab binary).
+
+    -- The default format for the save command is taken from the
+       built-in variable `default_save_format'.
+
+    -- The save and load commands now both accept a list of globbing
+       patterns so you can easily load a list of variables from a
+       file.
+
+    -- The load command now accepts the option -list, for listing the
+       variable names without actually loading the data.  With
+       -verbose, it prints a long listing.
+
+    -- The load command now accepts the option -float-binary, for
+       saving floating point data in binary files in single precision.
+
+  * who and whos now accept a list of globbing patterns so you can
+    limit the lists of variables and functions to those that match a
+    given set of patterns.
+
+  * New functions for manipulating polynomials
+
+      compan     -- companion matrix corresponding to polynomial coefficients
+      conv       -- convolve two vectors
+      deconv     -- deconvolve two vectors
+      roots      -- find the roots of a polynomial
+      poly       -- characteristic polynomial of a matrix
+      polyderiv  -- differentiate a polynomial
+      polyinteg  -- integrate a polynomial
+      polyreduce -- reduce a polynomial to minimum number of terms
+      polyval    -- evaluate a polynomial at a point
+      polyvalm   -- evaluate a polynomial in the matrix sense
+      residue    -- partial fraction expansion corresponding to the ratio
+                    of two polynomials
+
+  * New functions for manipulating sets
+
+      create_set   -- create a set of unique values
+      complement   -- find the complement of two sets
+      intersection -- find the intersection of two sets
+      union        -- find the union of two sets
+
+  * New elementary functions:
+
+      acot   acoth   acsc   acsch
+      asec   asech   cot    coth
+      csc    csch    log2   sec
+      sech
+
+  * New special functions:
+
+      beta   -- beta function
+      betai  -- incomplete beta function
+      gammai -- incomplete gamma function
+
+  * New image processing functions:
+
+      colormap  -- set and return current colormap
+      gray      -- set a gray colormap
+      gray2ind  -- image format conversion
+      image     -- display an image
+      imagesc   -- scale and display an image
+      imshow    -- display images
+      ind2gray  -- image format conversion
+      ind2rgb   -- image format conversion
+      loadimage -- load an image from a file
+      ntsc2rgb  -- image format conversion
+      ocean     -- set a color colormap
+      rgb2ind   -- image format conversion
+      rgb2ntsc  -- image format conversion
+      saveimage -- save an image to a file
+
+  * New time and date funcitons:
+
+      tic          -- set wall-clock timer
+      toc          -- get elapsed wall-clock time, since timer last set
+      etime        -- another way to get elapsed wall-clock time
+      cputime      -- get CPU time used since Octave started
+      is_leap_year -- is the given year a leap year?
+
+  * Other new functions:
+
+      bug_report -- submit a bug report to the bug-octave mailing list
+
+      toascii -- convert a string to a matrix of ASCII character codes
+
+      octave_tmp_file -- generate a unique temporary file name
+
+      undo_string_escapes -- replace special characters in a string by
+                             their backslash forms
+
+      is_struct -- determine whether something is a structure data type
+
+      feof   -- check EOF condition for a specified file
+      ferror -- check error state for a specified file
+      fread  -- read binary data from a file
+      fwrite -- write binary data to a file
+
+      file_in_path -- check to see if named file exists in given path
+
+      kbhit  -- get a single character from the terminal
+
+      axis   -- change plot ranges
+      hist   -- plot histograms
+
+      diary  -- save commands and output to a file
+
+      type   -- show the definition of a function
+      which  -- print the type of an identifier or the location of a
+                function file
+
+      isieee  -- Returns 1 if host uses IEEE floating point
+      realmax -- Returns largest floating point number
+      realmin -- Returns smallest floating point number
+
+      gcd     -- greatest common divisor
+      lcm     -- least common multiple
+
+      null    -- orthonormal basis of the null space of a matrix
+      orth    -- orthonormal basis of the range space of a matrix
+
+      fft2    -- two-dimensional fast fourier transform
+      ifft2   -- two-dimensional inverse fast fourier transform
+      filter  -- digital filter
+      fftfilt -- filter using fft
+      fftconv -- convolve to vectors using fft
+      sinc    -- returns sin(pi*x)/(pi*x)
+      freqz   -- compute the frequency response of a filter
+
+  * The meaning of nargin (== args.length ()) in built-in functions
+    has been changed to match the meaning of nargin in user-defined
+    functions.
+
+  * Variable return lists.  Octave now has a real mechanism for
+    handling functions that return an unspecified number of values,
+    so it is no longer necessary to place an upper bound on the number
+    of outputs that a function can produce.
+
+    Here is an example of a function that uses the new syntax to
+    produce n values:
+
+      function [...] = foo (n)
+        for i = 1:n
+          vr_val (i * x);
+        endfor
+      endfunction
+
+  * New keyword, all_va_args, that allows the entire list of va_args
+    to be passed to another function.  For example, given the functions
+
+      function f (...)
+        while (nargin--)
+          disp (va_arg ())
+        endwhile
+      endfunction
+      function g (...)
+        f ("begin", all_va_args, "end")
+      endfunction
+
+    the statement
+
+      g (1, 2, 3)
+
+    prints
+
+      begin
+      1
+      2
+      3
+      end
+
+    all_va_args may be used more than once, but can only be used
+    within functions that take a variable number of arguments.
+
+  * If given a second argument, svd now returns an economy-sized
+    decomposition, eliminating the unecessary rows or columns of U or
+    V.
+
+  * The max and min functions correctly handle complex matrices in
+    which some columns contain real values only.
+
+  * The find function now handles 2 and 3 output arguments.
+
+  * The qr function now allows computation of QR with pivoting.
+
+  * hilb() is much faster for large matrices.
+
+  * computer() is now a built-in function.
+
+  * pinv() is now a built-in function.
+
+  * The output from the history command now goes through the pager.
+
+  * If a function is called without assigning the result, nargout is
+    now correctly set to 0.
+
+  * It is now possible to write functions that only set some return
+    values.  For example, calling the function
+
+      function [x, y, z] = f () x = 1; z = 2; endfunction
+
+    as
+
+      [a, b, c] = f ()
+
+    produces:
+
+      a = 1
+
+      b = [](0x0)
+
+      c = 2
+
+  * The shell_cmd function has been renamed to system (the name
+    shell_cmd remains for compatibility).  It now returns [output, status].
+
+  * New built-in variable `OCTAVE_VERSION'.  Also a new function,
+    version, for compatibility with Matlab.
+
+  * New built-in variable `automatic_replot'.  If it is "true", Octave
+    will automatically send a replot command to gnuplot each time the
+    plot changes.  Since this is fairly inefficient, the default value
+    is "false".
+
+  * New built-in variable `whitespace_in_literal_matrix' allows some
+    control over how Octave decides to convert spaces to commas in
+    matrix expressions like `[m (1)]'.
+
+    If the value of `whitespace_in_literal_matrix' is "ignore", Octave
+    will never insert a comma or a semicolon in a literal matrix list.
+    For example, the expression `[1 2]' will result in an error
+    instead of being treated the same as `[1, 2]', and the expression
+
+      [ 1, 2,
+        3, 4 ]
+
+    will result in the vector [1 2 3 4] instead of a matrix.
+
+    If the value of `whitespace_in_literal_matrix' is "traditional",
+    Octave will convert spaces to a comma between identifiers and `('.
+    For example, given the matrix
+
+      m = [3 2]
+
+    the expression
+
+      [m (1)]
+
+    will be parsed as
+
+      [m, (1)]
+
+    and will result in
+
+      [3 2 1]
+
+    and the expression
+
+      [ 1, 2,
+        3, 4 ]
+
+    will result in a matrix because the newline character is converted
+    to a semicolon (row separator) even though there is a comma at the
+    end of the first line (trailing commas or semicolons are ignored).
+    This is apparently how Matlab behaves.
+
+    Any other value for `whitespace_in_literal_matrix' results in
+    behavior that is the same as traditional, except that Octave does
+    not convert spaces to a comma between identifiers and `('.
+    For example, the expression
+
+      [m (1)]
+
+    will produce 3.  This is the way Octave has always behaved.
+
+  * Line numbers in error messages for functions defined in files and
+    for script files now correspond to the file line number, not the
+    number of lines after the function keyword appeared.
+
+  * Octave now extracts help from script files.  The comments must
+    come before any other statements in the file.
+
+  * In function files, the first block of comments in the file will
+    now be interpreted as the help text if it doesn't look like the
+    Octave copyright notice.  Otherwise, Octave extracts the first set
+    of comments after the function keyword.
+
+  * The function clock is more accurate on systems that have the
+    gettimeofday() function.
+
+  * The standard output stream is now automatically flushed before
+    reading from stdin with any of the *scanf() functions.
+
+  * Expanded reference card.
+
+  * The Octave distribution now includes a frequently asked questions
+    file, with answers.  Better answers and more questions (with
+    answers!) are welcome.
+
+  * New option --verbose.  If Octave is invoked with --verbose and not
+    --silent, a message is printed if an octaverc file is read while
+    Octave is starting.
+
+  * An improved configure script generated by Autoconf 2.0.
+
+  * Lots of bug fixes.
+
+ +

Summary of changes for version 1.0

+ +
+  * C-style I/O functions now handle files referenced by name or by
+    number more consistently.
+
+ +

Summary of changes for version 0.83

+ +
+  * Loading global symbols should work now.
+
+  * Clearing the screen doesn't reprint the prompt unnecessarily.
+
+  * The operations  OP  for OP == +, -,
+    *, or ./ no longer crash Octave.
+
+  * More portability and configuration fixes.
+
+ +

Summary of changes for version 0.82

+ +
+  * Octave now comes with a reference card.
+
+  * The manual has been improved, but more work remains to be done.
+
+  * The atanh function now works for complex arguments.
+
+  * The asin, acos, acosh, and atanh functions now work properly when
+    given real-valued arguments that produce complex results.
+
+  * SEEK_SET, SEEK_CUR, and SEEK_END are now constants.
+
+  * The `using' qualifier now works with gplot and gsplot when the
+    data to plot is coming directly from a file.
+
+  * The strcmp function now works correctly for empty strings.
+
+  * Eliminated bogus parse error for M-files that don't end with `end'
+    or `endfunction'.
+
+  * For empty matrices with one nonzero dimension, the +, -, .*, and
+    ./ operators now correctly preserve the dimension.
+
+  * Octave no longer crashes if you type ^D at the beginning of a line
+    in the middle of defining a loop or if statement.
+
+  * On AIX systems, Back off on indexing DiagArray via Proxy class to
+    avoid gcc (or possibly AIX assembler?) bug.
+
+  * Various other bug and portability fixes.
+
+ +

Summary of changes for version 0.81

+ +
+  * Octave no longer dumps core if you try to define a function in
+    your .octaverc file.
+
+  * Fixed bug in Array class that resulted in bogus off-diagonal
+    elements when computing eigenvalue and singular value
+    decompositions.
+
+  * Fixed bug that prevented lsode from working on the SPARCstation,
+    at least with some versions of Sun's f77.  This bug was introduced
+    in 0.80, when I changed LSODE to allow the user to abort the
+    integration from within the RHS function.
+
+  * Fixed bug that prevented global attribute of variables from being
+    saved with save(), and another that prevented load() from working
+    at all.
+
+ +

Summary of changes for version 0.80

+ +
+  * I have started working on a manual for the C++ classes.  At this
+    point, it is little more than a list of function names.  If you
+    would like to volunteer to help work on this, please contact
+    bug-octave@bevo.che.wisc.edu.
+
+  * The patterns accepted by the save and clear commands now work like
+    file name globbing patterns instead of regular expressions.  I
+    apologize for any inconvenience this change may cause, but file
+    name globbing seems like a more reasonable style of pattern
+    matching for this purpose.
+
+  * It is now possible to specify tolerances and other optional inputs
+    for dassl, fsolve, lsode, npsol, qpsol, and quad.  For each of
+    these functions, there is a corresponding function X_options,
+    which takes a keyword and value arguments.  If invoked without any
+    arguments, the X_options functions print a list of possible
+    keywords and current values.  For example,
+
+      npsol_options ()
+
+    prints a list of possible options with values, and
+
+      npsol_options ("major print level", 10)
+
+    sets the major print level to 10.
+
+    The keyword match is not case sensitive, and the keywords may be
+    abbreviated to the shortest unique match.  For example,
+
+      npsol_options ("ma p", 10)
+
+    is equivalent to the statement shown above.
+
+  * The new built-in variable save_precision can be used to set the
+    number of digits preserved by the ASCII save command.
+
+  * Assignment of [] now works in most cases to allow you to delete
+    rows or columns of matrices and vectors.  For example, given a
+    4x5 matrix A, the assignment
+
+      A (3, :) = []
+
+    deletes the third row of A, and the assignment
+
+      A (:, 1:2:5) = []
+
+    deletes the first, third, and fifth columns.
+
+  * Variable argument lists.  Octave now has a real mechanism for
+    handling functions that take an unspecified number of arguments,
+    so it is no longer necessary to place an upper bound on the number
+    of optional arguments that a function can accept.
+
+    Here is an example of a function that uses the new syntax to print
+    a header followed by an unspecified number of values:
+
+      function foo (heading, ...)
+        disp (heading);
+        va_start ();
+        while (--nargin)
+          disp (va_arg ());
+        endwhile
+      endfunction
+
+    Note that the argument list must contain at least one named
+    argument (this restriction may eventually be removed), and the
+    ellipsis must appear as the last element of the argument list.
+
+    Calling va_start() positions an internal pointer to the first
+    unnamed argument and allows you to cycle through the arguments
+    more than once.  It is not necessary to call va_start() if you
+    do not plan to cycle through the arguments more than once.
+
+  * Recursive functions should work now.
+
+  * The environment variable OCTAVE_PATH is now handled in the same
+    way as TeX handles TEXINPUTS.  If the path starts with `:', the
+    standard path is prepended to the value obtained from the
+    environment.  If it ends with `:' the standard path is appended to
+    the value obtained from the environment.
+
+  * New functions, from Kurt Hornik (hornik@neuro.tuwien.ac.at) and
+    the Department of Probability Theory and Statistics TU Wien,
+    Austria:
+
+     corrcoef    -- corrcoef (X, Y) is the correlation between the i-th
+                    variable in X and the j-th variable in Y
+                    corrcoef (X) is corrcoef (X, X)
+     cov         -- cov (X, Y) is the covariance between the i-th
+                    variable in X and the j-th variable in Y
+                    cov (X) is cov (X, X)
+     gls         -- generalized least squares estimation
+     kurtosis    -- kurtosis(x) = N^(-1) std(x)^(-4) SUM_i (x(i)-mean(x))^4 - 3
+                    If x is a matrix, return the row vector containing
+                    the kurtosis of each column
+     mahalanobis -- returns Mahalanobis' D-square distance between the
+                    multivariate samples X and Y, which must have the
+                    same number of components (columns), but may have
+                    a different number of observations (rows)
+     ols         -- ordinary least squares estimation
+     pinv        -- returns the pseudoinverse of X; singular values
+                    less than tol are ignored
+     skewness    -- skewness (x) = N^(-1) std(x)^(-3) SUM_i (x(i)-mean(x))^3
+                    if x is a matrix, return the row vector containing
+                    the skewness of each column
+
+  * Errors in user-supplied functions called from dassl, fsolve,
+    lsode, npsol, and quad are handled more gracefully.
+
+  * Programming errors in the use of the C++ classes within Octave
+    should no longer cause Octave to abort.  Instead, Octave's error
+    handler function is called and execution continues as best as is
+    possible.  This should result in eventually returning control to
+    the top-level Octave prompt.  (It would be nice to have a real
+    exception handling mechanism...)
+
+  * A number of memory leaks have been eliminated.  Thanks to
+    Fong Kin Fui  for reporting them.
+
+  * The C++ matrix classes are now derived from a generic
+    template-based array class.
+
+  * The readline function operate-and-get-next (from bash) is now
+    available and bound to C-O by default.
+
+  * Octave now uses the version of readline currently distributed with
+    bash-1.13.  On some systems, interactive invocations of Octave
+    will now blink the cursor to show matching parens.
+
+  * By default, include files are now installed in
+    $prefix/include/octave instead of $prefix/include.
+
+  * Octave now uses a config.h file instead of putting all defines on
+    the compiler command line.
+
+ +

Summary of changes for version 0.79

+ +
+  * New control systems functions:
+
+     dgram -- Returns the discrete controllability and observability gramian.
+     dlqr  -- Discrete linear quadratic regulator design.
+     dlqe  -- Discrete linear quadratic estimator (Kalman Filter) design.
+     c2d   -- Convert continuous system description to discrete time
+              description assuming zero-order hold and given sample time.
+
+  * The max (min) functions can now return the index of the max (min)
+    value as a second return value.
+
+ +

Summary of changes for version 0.78

+ +
+  * Octave's handling of global variables has been completely
+    rewritten.  To access global variables inside a function, you must
+    now declare them to be global within the function body.  Likewise,
+    if you do not declare a variable as global at the command line,
+    you will not have access to it within a function, even if it is
+    declared global there.  For example, given the function
+
+      function f ()
+        global x = 1;
+        y = 2;
+      endfunction
+
+    the global variable `x' is not visible at the top level until the
+    command
+
+      octave:13> global x
+
+    has been evaluated, and the variable `y' remains local to the
+    function f() even if it is declared global at the top level.
+
+    Clearing a global variable at the top level will remove its global
+    scope and leave it undefined.  For example,
+
+      octave:1> function f ()   # Define a function that accesses
+      >  global x;              #   the global variable `x'.
+      >  x
+      > endfunction
+      octave:2> global x = 1    # Give the variable `x' a value.
+      octave:3> f ()            # Evaluating the function accesses the
+      x = 1                     #   global `x'.
+      octave:4> clear x         # Remove `x' from global scope, clear value.
+      octave:5> x = 2           # Define new local `x' at the top level
+      x = 2
+      octave:6> f               # The global `x' is no longer defined.
+      error: `x' undefined near line 1 column 25
+      error: evaluating expression near line 1, column 25
+      error: called from `f'
+      octave:7> x               # But the local one is.
+      x = 2
+
+  * The new function, `is_global (string)' returns 1 if the variable
+    named by string is globally visible.  Otherwise, returns 0.
+
+  * The implementation of `who' has changed.  It now accepts the
+    following options:
+
+      -b -builtins   -- display info for built-in variables and functions
+      -f -functions  -- display info for currently compiled functions
+      -v -variables  -- display info for user variables
+      -l -long       -- display long info
+
+    The long output looks like this:
+
+      octave:5> who -l
+
+      *** currently compiled functions:
+
+      prot  type               rows   cols  name
+      ====  ====               ====   ====  ====
+       wd   user function         -      -  f
+
+      *** local user variables:
+
+      prot  type               rows   cols  name
+      ====  ====               ====   ====  ====
+       wd   real scalar           1      1  y
+
+      *** globally visible user variables:
+
+      prot  type               rows   cols  name
+      ====  ====               ====   ====  ====
+       wd   complex matrix       13     13  x
+
+    where the first character of the `protection' field is `w' if the
+    symbol can be redefined, and `-' if it has read-only access.  The
+    second character may be `d' if the symbol can be deleted, or `-'
+    if the symbol cannot be cleared.
+
+  * The new built-in variable ignore_function_time_stamp can be used
+    to prevent Octave from calling stat() each time it looks up
+    functions defined in M-files.  If set to "system", Octave will not
+    automatically recompile M-files in subdirectories of
+    $OCTAVE_HOME/lib/VERSION if they have changed since they were last
+    compiled, but will recompile other M-files in the LOADPATH if they
+    change.  If set to "all", Octave will not recompile any M-files
+    unless their definitions are removed with clear.  For any other
+    value of ignore_function_time_stamp, Octave will always check to
+    see if functions defined in M-files need to recompiled.  The
+    default value of ignore_function_time_stamp is "system".
+
+  * The new built-in variable EDITOR can be used to specify the editor
+    for the edit_history command.  It is set to the value of the
+    environment variable EDITOR, or `vi' if EDITOR is not set, or is
+    empty.
+
+  * There is a new built-in variable, INFO_FILE, which is used as the
+    location of the info file.  Its initial value is
+    $OCTAVE_HOME/info/octave.info, so `help -i' should now work
+    provided that OCTAVE_HOME is set correctly, even if Octave is
+    installed in a directory different from that specified at compile
+    time.
+
+  * There is a new command line option, --info-file FILE, that may be
+    used to set Octave's idea of the location of the info file.  It
+    will override any value of OCTAVE_INFO_FILE found in the
+    environment, but not any INFO_FILE="filename" commands found in
+    the system or user startup files.
+
+  * Octave's Info reader will now recognize gzipped files that have
+    names ending in `.gz'.
+
+  * The save command now accepts regular expressions as arguments.
+    Note that these patterns are regular expressions, and do not work
+    like filename globbing.  For example, given the variables `a',
+    `aa', and `a1', the command `save a*' saves `a' and `aa' but not
+    `a1'.  To match all variables beginning with `a', you must use an
+    expression like `a.*' (match all sequences beginning with `a'
+    followed by zero or more characters).
+
+  * Line and column information is included in more error messages.
+
+ +

Summary of changes for version 0.77

+ +
+  * Improved help.  The command `help -i topic' now uses the GNU Info
+    browser to display help for the given topic directly from the
+    Texinfo documenation.
+
+  * New function: chol -- Cholesky factorization.
+
+ +

Summary of changes for version 0.76

+ +
+  * Better run-time error messages.  Many now include line and column
+    information indicating where the error occurred.  Octave will also
+    print a traceback for errors occurring inside functions. If you
+    find error messages that could use improvement, or errors that
+    Octave fails to catch, please send a bug report to
+    bug-octave@bevo.che.wisc.edu.
+
+  * If gplot (or gsplot) is given a string to plot, and the string
+    does not name a file, Octave will pass the string along to gnuplot
+    directly.  This allows commands like
+
+      gplot "sin (x)" w l, data w p
+
+    to work (assuming that data is a variable containing a matrix of
+    values).
+
+  * Long options (--help, --version, etc.) are supported.
+
+ +

Summary of changes for version 0.75

+ +
+  * The documentation is much more complete, but still could use a lot
+    of work.
+
+  * The history function now prints line numbers by default.  The
+    command `history -q' will  omit them.
+
+  * The clear function now accepts regular expressions.
+
+  * If gplot (or gsplot) is given a string to plot, and the string
+    names a file, Octave attempts to plot the contents of the file.
+
+  * New functions:
+
+    history:
+
+      run_history  -- run commands from the history list.
+      edit_history -- edit commands from the history list with your
+                      favorite editor.
+
+    linear algebra:
+
+      balance         -- Balancing for algebraic and generalized
+                         eigenvalue problems.
+      givens          -- Givens rotation.
+      is_square       -- Check to see if a matrix is square.
+      qzhess          -- QZ decomposition of the matrix pencil (a - lambda b).
+      qzval           -- Generalized eigenvalues for real matrices.
+      syl             -- Sylvester equation solver.
+
+    control systems:
+
+      is_symmetric    -- Check to see if a matrix is symmetric.
+      abcddim         -- Check dimensions of linear dynamic system [A,B,C,D].
+      is_controllable -- Check to see if [A,B,C,D] is controllable.
+      is_observable   -- Check to see if [A,B,C,D] is observable.
+      are             -- Solve algebraic Ricatti equation.
+      dare            -- Solve discrete-time algebraic Ricatti equation.
+      lqe             -- Kalman filter design for continuous linear system.
+      lqr             -- Linear Quadratic Regulator design.
+      lyap            -- Solve Lyapunov equation.
+      dlyap           -- Solve discrete Lyapunov equation.
+      tzero           -- Compute the transmission zeros of [A,B,C,D].
+
+ +

Summary of changes for version 0.74

+ +
+  * Formal parameters to functions are now always considered to be
+    local variables, so things like
+
+      global x = 0
+      global y = 0
+      function y = f (x) x = 1; y = x; end
+      f (x)
+
+    result in the function returning 1, with the global values of x
+    and y unchanged.
+
+  * Multiple assignment expressions are now allowed to take indices,
+    so things like
+
+      octave:13> [a([1,2],[3,4]), b([5,6],[7,8])] = lu ([1,2;3,4])
+
+    will work correctly.
+
+ +

Summary of changes for version 0.73

+ +
+  * Saving and loading global variables works correctly now.
+
+  * The save command no longer saves built-in variables.
+
+  * Global variables are more reliable.
+
+  * Matrices may now have one or both dimensions zero, so that
+    operations on empty matrices are now handled more consistently.
+
+    By default, dimensions of the empty matrix are now printed along
+    with the empty matrix symbol, `[]'.  For example:
+
+      octave:13> zeros (3, 0)
+      ans =
+
+      [](3x0)
+
+    The new variable `print_empty_dimensions' controls this behavior.
+
+    See also Carl de Boor, An Empty Exercise, SIGNUM, Volume 25,
+    pages 2--6, 1990, or C. N. Nett and W. M. Haddad, A
+    System-Theoretic Appropriate Realization of the Empty Matrix
+    Concept, IEEE Transactions on Automatic Control, Volume 38,
+    Number 5, May 1993.
+
+  * The right and left division operators `/' and `\' will now find a
+    minimum norm solution if the system is not square, or if the
+    coefficient matrix is singular.
+
+  * New functions:
+
+      hess   -- Hessenberg decomposition
+      schur  -- Ordered Schur factorization
+      perror -- print error messages corresponding to error codes
+                returned from the functions fsolve, npsol, and qpsol
+                (with others to possibly be added later).
+
+  * Octave now prints a warning if it finds anything other than
+    whitespace or comments after the final `end' or `endfunction'
+    statement.
+
+  * The bodies of functions, and the for, while, and if commands are
+    now allowed to be empty.
+
+  * Support for Gill and Murray's QPSOL has been added.  Like NPSOL,
+    QPSOL is not freely redistributable either, so you must obtain
+    your own copy to be able to use this feature.  More information
+    about where to find QPSOL and NPSOL are in the file README.NLP.
+
+ +

Summary of changes for version 0.72

+ +
+  * For numeric output, columns are now lined up on the decimal point.
+    (This requires libg++-2.3.1 or later to work correctly).
+
+  * If octave is running interactively and the output intended for the
+    screen is longer than one page and a pager is available, it is
+    sent to the pager through a pipe.  You may specify the program to
+    use as the pager by setting the variable PAGER.  PAGER may also
+    specify a command pipeline.
+
+  * Spaces are not always significant inside square brackets now, so
+    commands like
+
+      [ linspace (1, 2) ]
+
+    will work.  However, some possible sources of confusion remain
+    because Octave tries (possibly too hard) to determine exactly what
+    operation is intended from the context surrounding an operator.
+    For example:
+
+    -- In the command
+
+         [ 1 - 1 ]
+
+       the `-' is treated as a binary operator and the result is the
+       scalar 0, but in the command
+
+         [ 1 -1 ]
+
+       the `-' is treated as a unary operator and the result is the
+       vector [ 1 -1 ].
+
+    -- In the command
+
+         a = 1; [ 1 a' ]
+
+       the single quote character `'' is treated as a transpose operator
+       and the result is the vector [ 1 1 ], but in the command
+
+         a = 1; [ 1 a ' ]
+
+       an error message indicating an unterminated string constant is
+       printed.
+
+  * Assignments are just expressions now, so they are valid anywhere
+    other expressions are.  This means that things like
+
+      if (a = n < m) ... endif
+
+    are valid.  This is parsed as:  compare `n < m', assign the result
+    to the variable `a', and use it as the test expression in the if
+    statement.
+
+    To help avoid errors where `=' has been used but `==' was
+    intended, Octave issues a warning suggesting parenthesis around
+    assignments used as truth values.  You can suppress this warning
+    by adding parenthesis, or by setting the value of the new built-in
+    variable `warn_assign_as_truth_value' to 'false' (the default
+    value is 'true').
+
+    This is also true for multiple assignments, so expressions like
+
+      [a, b, c] = [u, s, v] = expression
+
+    are now possible.  If the expression is a function, nargout is set
+    to the number of arguments for the right-most assignment.  The
+    other assignments need not contain the same number of elements.
+    Extra left hand side variables in an assignment become undefined.
+
+  * The default line style for plots is now `lines' instead of
+    `points'.  To change it, use the `set data style STYLE' command.
+
+  * New file handling and I/O functions:
+
+      fopen    -- open a file for reading or writing
+      fclose   -- close a file
+      fflush   -- flush output to a file
+      fgets    -- read characters from a file
+      frewind  -- set file position to the beginning of a file
+      fseek    -- set file position
+      ftell    -- tell file position
+      freport  -- print a report for all open files
+      fscanf   -- read from a file
+      sscanf   -- read from a string
+      scanf    -- read from the standard input
+
+  * New built-in variables for file and I/O functions:
+
+      stdin    -- file number corresponding to the standard input stream.
+      stdout   -- file number corresponding to the standard output stream.
+      stderr   -- file number corresponding to the standard error stream.
+
+    The following may be used as the final (optional) argument for
+    fseek:
+
+      SEEK_SET -- set position relative to the beginning of the file.
+      SEEK_CUR -- set position relative to the current position.
+      SEEK_END -- set position relative to the end of the file.
+
+  * New function: setstr -- convert vectors or scalars to strings
+    (doesn't work for matrices yet).
+
+  * If possible, computer now prints the system type instead of
+    always printing `Hi Dave, I'm a HAL-9000'.
+
+  * Octave now properly saves and restores its internal state
+    correctly in more places.  Interrupting Octave while it is
+    executing a script file no longer causes it to exit.
+
+  * Octave now does tilde expansion on each element of the LOADPATH.
+
+  * A number of memory leaks have been plugged.
+
+  * Dependencies for C++ source files are now generated automatically
+    by g++.
+
+  * There is a new command line option, -p PATH, that may be used to
+    set Octave's loadpath from the command line.  It will override any
+    value of OCTAVE_PATH found in the environment, but not any
+    LOADPATH="path" commands found in the system or user startup files.
+
+  * It is now possible to override Octave's default idea of the
+    location of the system-wide startup file (usually stored in
+    $(prefix)/lib/octave/octaverc) using the environment variable
+    OCTAVE_HOME.  If OCTAVE_HOME has a value, Octave will look for
+    octaverc and its M-files in the directory $OCTAVE_HOME/lib/octave.
+
+    This allows people who are using binary distributions (as is
+    common with systems like Linux) to install the real octave binary
+    in any directory (using a name like octave.bin) and then install
+    a simple script like this
+
+      #!/bin/sh
+      OCTAVE_HOME=/foo/bar/baz
+      export OCTAVE_HOME
+      exec octave.bin
+
+    to be invoked as octave.
+
+
+ +

Summary of changes for version 0.71

+ +
+  * Much improved plotting facility.  With this release, Octave does
+    not require a specially modified version of gnuplot, so gnuplot
+    sources are no longer distributed with Octave.  For a more
+    detailed description of the new plotting features, see the file
+    PLOTTING.
+
+  * New plotting commands:
+
+      plot            -- 2D plots
+      semilogx        -- 2D semilog plot with logscale on the x axis
+      semilogy        -- 2D semilog plot with logscale on the y axis
+      loglog          -- 2D log-log plot
+      mesh            -- 3D mesh plot
+      meshdom         -- create matrices for 3D plotting from two vectors
+      contour         -- contour plots of 3D data
+      bar             -- create bar graphs
+      stairs          -- create stairstep plots
+      polar           -- 2D plots from theta-R data
+      grid            -- turn plot grid lines on or off
+      xlabel, ylabel  -- place labels on the x and y axes of 2D plots
+      sombrero        -- demonstrate 3D plotting
+      gplot           -- 2D plot command with gnuplot-like syntax
+      gsplot          -- 3D plot command with gnuplot-like syntax
+      set             -- set plot options with gnuplot syntax
+      show            -- show plot options with gnuplot syntax
+      closeplot       -- close stream to gnuplot process
+      purge_tmp_files -- delete temporary files created by plot command
+
+  * Other new commands:
+
+      ls, dir         -- print a directory listing
+      shell_cmd       -- execute shell commands
+      keyboard        -- get input from keyboard, useful for debugging
+      menu            -- display a menu of options and ask for input
+      fft             -- fast fourier transform
+      ifft            -- inverse fast fourier transform
+
+  * Strings may be enclosed in either single or double quote
+    characters.  Double quote characters are not special within single
+    quote strings, and single quotes are not special within double
+    quote strings.
+
+  * Command name completion now works for M-file names too.
+
+  * Better help and usage messages for many functions.
+
+  * Help is now available for functions defined in M-files.  The first
+    block of comments is taken as the text of the help message.
+
+  * Numerous changes in preparation to support dynamic loading of
+    object files with dld.
+
+  * Bug fixes to make solving DAEs with dassl actually work.
+
+  * The command `save file' now saves all variables in the named file.
+
+  * If do_fortran_indexing is 'true', indexing a scalar with
+    [1,1,1,...] (n times) replicates its value n times.  The
+    orientation of the resulting vector depends on the value of
+    prefer_column_vectors.
+
+  * Things like [[1,2][3,4]] no longer cause core dumps, and invalid
+    input like [1,2;3,4,[5,6]] now produces a diagnositic message.
+
+  * The cd, save, and load commands now do tilde expansion.
+
+  * It's now possible to clear global variables and functions by name.
+
+  * Use of clear inside functions is now a parse error.
+
+ +

Summary of changes for version 0.70

+ +
+  * Better parse error diagnostics.  For interactive input, you get
+    messages like
+
+      octave:1> a = 3 + * 4;
+
+      parse error:
+
+          a = 3 + * 4;
+                  ^
+
+    and for script files, the message includes the file name and input
+    line number:
+
+      octave:1> foo
+
+      parse error near line 4 of file foo.m:
+
+          a = 3 + * 4;
+                  ^
+
+  * New built-in variable PS2 which is used as the secondary prompt.
+    The default value is '> '.
+
+  * New file, octave-mode.el, for editing Octave code with GNU Emacs.
+    This is a modified version of Matthew R. Wette's matlab-mode.el.
+
+  * Better support for missing math functions.
+
+  * User preferences are now cached in a global struct so we don't
+    have to do a symbol table lookup each time we need to know what
+    they are.  This should mean slightly improved performance for
+    evaluating expressions.
+
+ +

Summary of changes for version 0.69

+ +
+  * Multiple assignments are now possible, so statements like
+
+      a = b = c = 3;
+      a = b = c = [1,2;3,4];
+
+    or
+
+      c = (a = (b = 2) * 3 + 4) * 5
+
+    are legal, as are things that have even more bizarre effects, like
+
+      a(4:6,4:6) = b(2:3,2:3) = [1,2;3,4];
+
+    (try it).
+
+  * Improved parsing of strings (but they still don't work as matrix
+    elements).
+
+  * An M-file may now either define a function or be a list of
+    commands to execute.
+
+  * Better detection and conditional compilation of IEEE functions
+    isinf, finite, and isnan.
+
+  * Replacements for acosh, asinh, atanh, and gamma from the BSD math
+    library for those systems that don't have them.
+
+ +

Summary of changes for version 0.68

+ +
+  * New functions:
+
+      eval  -- evaluate a string as a sequence of Octave commands.
+      input -- print a prompt and get user input.
+
+ +

Summary of changes for version 0.67

+ +
+  * New functions:
+
+      find -- return the indices of nonzero elements.
+
+  * Zero-one style indexing now works.  For example,
+
+      a = [1,2,3,4];
+      b = a([1,0,0,1])
+
+    sets b to the first and fourth elememnts of a.
+
+    Zero-one style indexing also works for indexing the left hand side
+    of an assignment.  For example,
+
+      a = rand (1,2;3,4);
+      a([0,1],:) = [-1,-2]
+
+    sets the second row of a to [-1 -2]
+
+    The behavior for the ambiguous case
+
+      a = [1,2,3,4];
+      b = a([1,1,1,1]);
+
+    is controlled by the new global variable `prefer_zero_one_indexing'.
+    If this variable is equal to 'true', b will be set to [1 2 3 4].
+    If it is false, b will be set to [1 1 1 1].  The default value is
+    'false'.
+
+  * Using the new global variable `propagate_empty_matrices', it is
+    possible to have unary andy binary operations on empty matrices
+    return an empty matrix.  The default value of this variable is
+    'warn', so that empty matrices are propagated but you get a
+    warning.  Some functions, like eig and svd have also been changed
+    to handle this.
+
+  * Empty matrices can be used in conditionals, but they always
+    evaluate to `false'.  With propagate_empty_matrices = 'true', both
+    of the following expressions print 0:
+
+      if  [], 1, else 0, end
+      if ~[], 1, else 0, end
+
+  * Octave no longer converts input like `3.2 i' or `3 I' to complex
+    constants directly because that causes problems inside square
+    brackets, where spaces are important.  This abbreviated notation
+    *does* work if there isn't a space between the number and the i,
+    I, j, or J.
+
+ +

Summary of changes for version 0.66

+ +
+  * Logical unary not operator (~ or !) now works for complex.
+
+  * Left division works.
+
+  * Right and left element by element division should work correctly
+    now.
+
+  * Numbers like .3e+2 are no longer errors.
+
+  * Indexing a matrix with a complex value doesn't cause a core dump.
+
+  * The min and max functions should work correctly for two arguments.
+
+  * Improved (I hope!) configuration checks.
+
+  * Octave is now installed as octave-M.N, where M and N are version
+    numbers, and octave is a link to that file.  This makes it
+    possible to have more than one version of the interpreter installed.
+
+ +

Summary of changes for version 0.63

+ +
+  * The reshape function works again.
+
+  * Octave now converts input like `3.2i' or `3 I' or `2.3e5 j' to be
+    complex constants directly, rather than requiring an expression
+    like `3.3 * i' to be evaluated.
+
+ +

Summary of changes for version 0.61

+ +
+  * Octave has been successfully compiled using gcc 2.3.3 and libg++ 2.3.
+    on a 486 system running Linux.
+
+  * The win_texas_lotto function is now called texas_lotto (it's a
+    script file, and win_texas_lotto.m is too long for some Linux and
+    System V systems).
+
+ +

Summary of changes for version 0.57

+ +
+  * The C-like formatted print functions printf, fprintf, and sprintf
+    finally work.
+
+ +

Summary of changes for version 0.56

+ +
+  * By default, octave prints a short disclaimer when it starts.
+    (You can suppress it by invoking octave with -q).
+
+  * You can keep octave from reading your ~/.octaverc and .octaverc
+    files by invoking it with -f.
+
+  * When returning two values, eig now returns [v, d] instead of
+    [lambda, v], where d is a diagonal matrix made from lambda.
+
+  * The win_texas_lotto function now produces a sorted list.
+
+  * New functions:
+
+      expm -- matrix exponential.
+      logm -- matrix logarithm.
+
+ +

Summary of changes for version 0.55

+ +
+  * The following (C-style) backslash escape sequences work in quoted
+    strings (useful(?) with printf()):
+
+      \a  bell         \r  carriage return
+      \b  backspace    \t  horizontal tab
+      \f  formfeed     \v  vertical tab
+      \n  newline      \\  backslash
+
+  * Use of `...' at the end of a line will allow a statement to
+    continue over more than one line.
+
+  * The names `inf' and `nan' are now aliases for `Inf' and `NaN',
+    respectively.
+
+  * New functions:
+
+      casesen -- print a warning if the luser tries to turn off case
+                 sensitivity.
+      median  -- find median value.
+      norm    -- compute the norm of a matrix.
+      sort    -- sort columns.
+
+  * New variable, `silent_functions'.  If silent_functions == 'true',
+    the results of expressions are not printed even if they are not
+    followed by a semicolon.  The disp() and printf() functions still
+    result in output.  The default value for this variable is 'false'.
+
+  * New variable `return_last_value_computed'.  If it is 'true',
+    functions defined in script files return the last value computed
+    if a return value has not been explicitly declared.  The default
+    value for this variable is 'false'.
+
+ +

Summary of changes for version 0.52

+ +
+  * Name completion works for function and variable names currently in
+    the symbol tables.  Coming soon: completion for names of functions
+    defined in script files but not yet compiled.
+
+  * The initial value of do_fortran_indexing is now false, and the
+    initial value of prefer_column_vectors is now true.  Swap the
+    values of these variables if you want behavior that is more like
+    Matlab.
+
+  * All script files check the number of input arguments before doing
+    much real work.
+
+  * The identifiers `i' and `j' are now also names for sqrt(-1).
+    These symbols may be used for other purposes, but their original
+    definition will reappear if they are cleared.
+
+  * The symbol tables are now implemented with hash tables for faster
+    searching.
+
+  * A small amount of help is now available for most built-in
+    operators, keywords and functions.  Coming soon: help for script
+    files.
+
+  * Without any arguments, the help command now lists all known
+    built-in operators, keywords and functions.
+
+  * Generic parse errors are now signalled by `Eh, what's up doc?',
+    which is closer to what Bugs actually says.
+
+  * The who command now only prints variable names by default.
+    Use the -fcn (or -fcns, or -functions) switch to print the names of
+    built-in or currently compiled functions.
+
+ +

Summary of changes for version 0.51

+ +
+  * Major overhaul of array indexing.
+
+  * The colloc function actually works now.
+
+ +

Summary of changes for version 0.50

+ +
+  * The lsode and dassl functions now return the states only,
+    instead of the time and the states, so you must keep track of
+    the corresponding times (this is easy though, because you have
+    to specify a vector of desired output times anyway).
+
+  * Solution of NLPs with NPSOL now works on the SPARC.
+
+  * New keywords `endif', `endfor', `endfunction', `endif', and
+    `endwhile', which allow for better diagnostics.  The `end' keyword
+    is still recognized.  All script files have been changed to use
+    these new keywords in place of `end'.
+
+  * It is now possible to uninstall Octave by doing a `make uninstall'
+    in the top level directory.
+
+  * The Makefiles are much closer to conforming with GNU coding standards.
+
+  * New functions:
+
+      win_texas_lotto  -- produce six unique random numbers between 1 and 50.
+      quad             -- numerical integration.
+      lu               -- LU factorization
+      qr               -- QR factorization
+      dassl            -- Solution of DAEs using DASSL.
+
+  * New files:
+
+      THANKS -- A list of people and organazations who have supported
+                the development of Octave.
+
+      NEWS   -- This file, listing recent changes.
+
+  * Help is now available at the gnuplot prompt.
+
diff -r fe5dcb23372a -r dedb85c54245 pages/NEWS-2.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/NEWS-2.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,1272 @@ +--- +layout: page +title: GNU Octave Version 2 +menu: false +permalink: NEWS-2.html +--- + +## Summary of important user-visible changes + +{% include release_news_select.md %} + +

Summary of changes for version 2.0.17

+ +

This will probably be the last release in the 2.0.x series. There are +a few bug fixes, but the major change is to print a message saying +that Octave 2.0.x cannot be compiled with gcc 3.0.x or gcc 2.96. If +you want to build Octave 2.0.x, you will need to use gcc 2.95.x. If +you want to use gcc 3.0.x or some later version, you should be using +the Octave 2.1.35 sources or a more recent version.

+ +

Summary of changes for version 2.0.16

+ +

This is primarily a bug-fixing release.

+ +

Summary of changes for version 2.0.15

+ +

This is primarily a bug-fixing release.

+ +
    +
  • If you are using GNU Emacs 19.34 or earlier, you will need to add + the following code to your ~/.emacs file in order to use Emacs + Octave mode: +
    +      ;; Set up the custom library.
    +      ;; taken from http://www.dina.kvl.dk/~abraham/custom/
    +      (eval-and-compile
    +	(condition-case ()
    +	    (require 'custom)
    +	  (error nil))
    +	(if (and (featurep 'custom) (fboundp 'custom-declare-variable))
    +	    nil ;; We've got what we needed
    +	  ;; We have the old custom-library, hack around it!
    +	  (defmacro defgroup (&rest args)
    +	    nil)
    +	  (defmacro defcustom (var value doc &rest args)
    +	    (` (defvar (, var) (, value) (, doc))))))
    +
  • +
+ +

Summary of changes for version 2.0.14

+ +This release fixes numerous bugs and adds the following new features: + +
    +
  • argv is now padded with blanks instead of ASCII NUL.
  • + +
  • New functions: +
    +
    besselh
    +Hankel functions of the first and second kind +
    airy
    +Airy functions of the first and second kind, and + their derivatives +
  • + +
  • The Bessel functions now accept complex values for the argument + and any real value for the order.
  • + +
  • The value of LOADPATH set by the environment variable + OCTAVE_PATH, the -p or --path command line options, or on the + command line is no longer modified to include the default path. + Instead it is left as specified. Its default value is now ":", + which tells Octave to search the default path, and the new + built-in variable DEFAULT_LOADPATH contains the default list of + directories to search.
  • + +
  • The function file_in_path no longer does any special processing of + its PATH argument. To search LOADPATH for files, it is now + generally better to use the new function file_in_loadpath.
  • + +
  • If fread is given a skip parameter, the skip is performed after + the read instead of before (for compatibility with Matlab).
  • + +
  • The new built-in variable `crash_dumps_octave_core' controls + whether Octave writes user variables to the file `octave-core' + when it crashes or is killed by a signal. The default value is 1 + (0 if you use --traditional).
  • + +
  • If LOADPATH contains a doubled colon, the default path is inserted + in its place. This is similar to the substitution that also takes + place for leading or trailing colons in the LOADPATH.
  • + +
  • Loops of the form `for i = STRING ... endfor' are now allowed.
  • + +
  • It is now possible to set the iteration limit for lsode using + lsode_options ("step limit", N).
  • + +
  • New functions: +
    +
    is_complex
    +tell whether a value is complex +
    isnumeric
    +tell whether a value is a numeric object +
    isfinite
    +find finite elements of a matrix object +
    rehash
    +re-initialize the cache of directories in LOADPATH +
    graw
    +send a string to the gnuplot subprocess +
  • + +
  • New functions from Kurt Hornik's Octave-ci package: +
      +
    • In finance (new directory): +
      +
      fv
      +
      future value of an investment
      +
      fvl
      +
      future value of an initial lump sum investment
      +
      irr
      +
      internal rate of return of an investment
      +
      nper
      +
      number of payments needed for amortizing a loan
      +
      npv
      +
      net present value of a series of payments
      +
      pmt
      +
      amount of periodic payment needed to amortize a loan
      +
      pv
      +
      present value of an investment
      +
      pvl
      +
      present value of an investment that pays off at the end
      +
      rate
      +
      rate of return of an investment
      +
      vol
      +
      volatility of financial time series data
      +
    • + +
    • In linear-algebra: +
      +
      dmult
      +
      rescale the rows of a matrix
      +
    • + +
    • In signal: +
      +
      arch_fit
      +
      fit an ARCH regression model
      +
      arch_rnd
      +
      simulate an ARCH process
      +
      arch_test
      +
      test for conditional heteroscedascity
      +
      arma_rnd
      +
      simulate an ARMA process
      +
      autocor
      +
      compute autocorrelations
      +
      autocov
      +
      compute autocovariances
      +
      autoreg_matrix
      +
      design matrix for autoregressions
      +
      bartlett
      +
      coefficients of the Bartlett (triangular) window
      +
      blackman
      +
      coefficients of the Blackman window
      +
      diffpara
      +
      estimate the fractional differencing parameter
      +
      durbinlevinson
      +
      perform one step of the Durbin-Levinson algorithm
      +
      fractdiff
      +
      compute fractional differences
      +
      hamming
      +
      coefficients of the Hamming window
      +
      hanning
      +
      coefficients of the Hanning window
      +
      hurst
      +
      estimate the Hurst parameter
      +
      periodogram
      +
      compute the periodogram
      +
      rectangle_lw
      +
      rectangular lag window
      +
      rectangle_sw
      +
      rectangular spectral window
      +
      sinetone
      +
      compute a sine tone
      +
      sinewave
      +
      compute a sine wave
      +
      spectral_adf
      +
      spectral density estimation
      +
      spectral_xdf
      +
      spectral density estimation
      +
      spencer
      +
      apply Spencer's 15-point MA filter
      +
      stft
      +
      short-term Fourier transform
      +
      synthesis
      +
      recover a signal from its short-term Fourier transform
      +
      triangle_lw
      +
      triangular lag window
      +
      triangle_sw
      +
      triangular spectral window
      +
      yulewalker
      +
      fit AR model by Yule-Walker method
      +
    • + +
    • In statistics/base (new directory): +
      +
      center
      +
      center by subtracting means
      +
      cloglog
      +
      complementary log-log function
      +
      cor
      +
      compute correlations
      +
      cov
      +
      compute covariances
      +
      cut
      +
      cut data into intervals
      +
      iqr
      +
      interquartile range
      +
      kendall
      +
      kendall's rank correlation tau
      +
      logit
      +
      logit transformation
      +
      mean
      +
      compute arithmetic, geometric, and harmonic mean
      +
      meansq
      +
      compute mean square
      +
      moment
      +
      compute moments
      +
      ppplot
      +
      perform a PP-plot (probability plot)
      +
      probit
      +
      probit transformation
      +
      qqplot
      +
      perform a QQ-plot (quantile plot)
      +
      range
      +
      compute range
      +
      ranks
      +
      compute ranks
      +
      run_count
      +
      count upward runs
      +
      spearman
      +
      spearman's rank correlation rho
      +
      statistics
      +
      compute basic statistics
      +
      studentize
      +
      subtract mean and divide by standard deviation
      +
      table
      +
      cross tabulation
      +
      values
      +
      extract unique elements
      +
      var
      +
      compute variance
      +
    • + +
    • In statistics/distributions (new directory): +
      +
      beta_cdf
      +
      CDF of the Beta distribution
      +
      beta_inv
      +
      Quantile function of the Beta distribution
      +
      beta_pdf
      +
      PDF of the Beta distribution
      +
      beta_rnd
      +
      Random deviates from the Beta distribution +
      +
      binomial_cdf
      +
      CDF of the binomial distribution
      +
      binomial_inv
      +
      Quantile function of the binomial distribution
      +
      binomial_pdf
      +
      PDF of the binomial distribution
      +
      binomial_rnd
      +
      Random deviates from the binomial distribution +
      +
      cauchy_cdf
      +
      CDF of the Cauchy distribution
      +
      cauchy_inv
      +
      Quantile function of the Cauchy distribution
      +
      cauchy_pdf
      +
      PDF of the Cauchy distribution
      +
      cauchy_rnd
      +
      Random deviates from the Cauchy distribution +
      +
      chisquare_cdf
      +
      CDF of the chi-square distribution
      +
      chisquare_inv
      +
      Quantile function of the chi-square distribution
      +
      chisquare_pdf
      +
      PDF of the chi-sqaure distribution
      +
      chisquare_rnd
      +
      Random deviates from the chi-square distribution +
      +
      discrete_cdf
      +
      CDF of a discrete distribution
      +
      discrete_inv
      +
      Quantile function of a discrete distribution
      +
      discrete_pdf
      +
      PDF of a discrete distribution
      +
      discrete_rnd
      +
      Random deviates from a discrete distribution +
      +
      empirical_cdf
      +
      CDF of the empirical distribution
      +
      empirical_inv
      +
      Quantile function of the empirical distribution
      +
      empirical_pdf
      +
      PDF of the empirical distribution
      +
      empirical_rnd
      +
      Bootstrap samples from the empirical distribution +
      +
      exponential_cdf
      +
      CDF of the exponential distribution
      +
      exponential_inv
      +
      Quantile function of the exponential distribution
      +
      exponential_pdf
      +
      PDF of the exponential distribution
      +
      exponential_rnd
      +
      Random deviates from the exponential distribution +
      +
      f_cdf
      +
      CDF of the F distribution
      +
      f_inv
      +
      Quantile function of the F distribution
      +
      f_pdf
      +
      PDF of the F distribution
      +
      f_rnd
      +
      Random deviates from the F distribution +
      +
      gamma_cdf
      +
      CDF of the Gamma distribution
      +
      gamma_inv
      +
      Quantile function of the Gamma distribution
      +
      gamma_pdf
      +
      PDF of the Gamma distribution
      +
      gamma_rnd
      +
      Random deviates from the Gamma distribution +
      +
      geometric_cdf
      +
      CDF of the geometric distribution
      +
      geometric_inv
      +
      Quantile function of the geometric distribution
      +
      geometric_pdf
      +
      PDF of the geometric distribution
      +
      geometric_rnd
      +
      Random deviates from the geometric distribution +
      +
      hypergeometric_cdf
      +
      CDF of the hypergeometric distribution
      +
      hypergeometric_inv
      +
      Random deviates from hypergeometric distribution
      +
      hypergeometric_pdf
      +
      PDF of the hypergeometric distribution
      +
      hypergeometric_rnd
      +
      Random deviates from hypergeometric distribution +
      +
      kolmogorov_smirnov_cdf
      +
      CDF of the Kolmogorov-Smirnov distribution +
      +
      laplace_cdf
      +
      CDF of the Laplace distribution
      +
      laplace_inv
      +
      Quantile function of the Laplace distribution
      +
      laplace_pdf
      +
      PDF of the Laplace distribution
      +
      laplace_rnd
      +
      Random deviates from the Laplace distribution +
      +
      logistic_cdf
      +
      CDF of the logistic distribution
      +
      logistic_inv
      +
      Quantile function of the logistic distribution
      +
      logistic_pdf
      +
      PDF of the logistic distribution
      +
      logistic_rnd
      +
      Random deviates from the logistic distribution +
      +
      lognormal_cdf
      +
      CDF of the log normal distribution
      +
      lognormal_inv
      +
      Quantile function of the log normal distribution
      +
      lognormal_pdf
      +
      PDF of the log normal distribution
      +
      lognormal_rnd
      +
      Random deviates from the log normal distribution +
      +
      normal_cdf
      +
      CDF of the normal distribution
      +
      normal_inv
      +
      Quantile function of the normal distribution
      +
      normal_pdf
      +
      PDF of the normal distribution
      +
      normal_rnd
      +
      Random deviates from the normal distribution +
      +
      pascal_cdf
      +
      CDF of the Pascal (negative binomial) distribution
      +
      pascal_inv
      +
      Quantile function of the Pascal distribution
      +
      pascal_pdf
      +
      PDF of the Pascal (negative binomial) distribution
      +
      pascal_rnd
      +
      Random deviates from the Pascal distribution +
      +
      poisson_cdf
      +
      CDF of the Poisson distribution
      +
      poisson_inv
      +
      Quantile function of the Poisson distribution
      +
      poisson_pdf
      +
      PDF of the Poisson distribution
      +
      poisson_rnd
      +
      Random deviates from the Poisson distribution +
      +
      stdnormal_cdf
      +
      CDF of the standard normal distribution
      +
      stdnormal_inv
      +
      Quantile function of standard normal distribution
      +
      stdnormal_pdf
      +
      PDF of the standard normal distribution
      +
      stdnormal_rnd
      +
      Random deviates from standard normal distribution +
      +
      t_cdf
      +
      CDF of the t distribution
      +
      t_inv
      +
      Quantile function of the t distribution
      +
      t_pdf
      +
      PDF of the t distribution
      +
      t_rnd
      +
      Random deviates from the t distribution +
      +
      uniform_cdf
      +
      CDF of the uniform distribution
      +
      uniform_inv
      +
      Quantile function of the uniform distribution
      +
      uniform_pdf
      +
      PDF of the uniform distribution
      +
      uniform_rnd
      +
      Random deviates from the uniform distribution +
      +
      weibull_cdf
      +
      CDF of the Weibull distribution
      +
      weibull_inv
      +
      Quantile function of the Weibull distribution
      +
      weibull_pdf
      +
      PDF of the Weibull distribution
      +
      weibull_rnd
      +
      Random deviates from the Weibull distribution +
      +
      wiener_rnd
      +
      Simulate a Wiener process
      +
    • + +
    • In statistics/models (new directory): +
      +
      logistic_regression
      +
      ordinal logistic regression
      +
      logistic_regression_derivatives
      +
      derivates of log-likelihood + in logistic regression
      +
      logistic_regression_likelihood
      +
      likelihood in logistic regression
      +
    • + +
    • In statistics/tests (new directory): +
      +
      anova
      +
      one-way analysis of variance
      +
      bartlett_test
      +
      bartlett test for homogeneity of variances
      +
      chisquare_test_homogeneity
      +
      chi-square test for homogeneity
      +
      chisquare_test_independence
      +
      chi-square test for independence
      +
      cor_test
      +
      test for zero correlation
      +
      f_test_regression
      +
      test linear hypotheses in linear + regression model
      +
      hotelling_test
      +
      test for mean of a multivariate normal
      +
      hotelling_test_2
      +
      compare means of two multivariate normals
      +
      kolmogorov_smirnov_test
      +
      one-sample Kolmogorov-Smirnov test
      +
      kolmogorov_smirnov_test_2
      +
      two-sample Kolmogorov-Smirnov test
      +
      kruskal_wallis_test
      +
      kruskal-Wallis test
      +
      manova
      +
      one-way multivariate analysis of variance
      +
      mcnemar_test
      +
      mcnemar's test for symmetry
      +
      prop_test_2
      +
      compare two proportions
      +
      run_test
      +
      run test for independence
      +
      sign_test
      +
      sign test
      +
      t_test
      +
      student's one-sample t test
      +
      t_test_2
      +
      student's two-sample t test
      +
      t_test_regression
      +
      test one linear hypothesis in linear + regression model
      +
      u_test
      +
      mann-Whitney U-test
      +
      var_test
      +
      f test to compare two variances
      +
      welch_test
      +
      welch two-sample t test
      +
      wilcoxon_test
      +
      wilcoxon signed-rank test
      +
      z_test
      +
      test for mean of a normal sample with + known variance
      +
      z_test_2
      +
      compare means of two normal samples with + known variances
      +
    • +
  • + +
  • The save command now accepts the option -append to save the + variables at the end of the file, leaving the existing contents.
  • + +
  • New command-line option --no-history (also available using the + single character option -H) inhibits saving command history.
  • + +
  • The mkoctfile script now accepts -DDEF options and passes them on + to the C and C++ compilers.
  • +
+

Summary of changes for version 2.0.13

+ +

This is a bug-fixing release. There are no new user-visible features.

+ +

Summary of changes for version 2.0.12

+ +
    +
  • Tilde expansion is once again performed on the directories listed + in the LOADPATH variable.
  • + +
  • gplot now supports the `axes' qualifier that is new with gnuplot + 3.6beta.
  • + +
  • Timestamps on .m and .oct files are now only checked if a prompt + has been printed since the last timestamp check.
  • + +
  • Octave now prints a warning if a .m or .oct file has a time stamp + in the future.
  • + +
  • For matrices, x(:) now works no matter what the value of + do_fortran_indexing is.
  • + +
  • New keywords __FILE__ and __LINE__ expand to the name of the file + that is being read and the current input line number, respectively.
  • + +
  • The GNU Info reader is no longer distributed with Octave because + current releases of GNU Info now support all the features needed + by Octave. If your copy of GNU Info doesn't support the + --index-search option, you should install a newer version of GNU + Info, which is distributed as part of the GNU Texinfo package.
  • + +
  • Running `make check' should work now before you run `make install', + even if you build a copy of Octave that depends on shared versions + of the Octave libraries.
  • + +
  • Octave now uses kpathsea 3.2.
  • + +
  • The new built-in variable `kluge_procbuf_delay' specifies the number + of microseconds to delay in the parent process after forking. By + default on gnu-win32 systems, it's set to 500000 (1/2 second). On + other systems, the default value is 0. Delaying for a short time + in the parent after forking seems to avoid problems in which + communicating with subprocesses via pipes would sometimes cause + Octave to hang. I doubt that the delay is really the right + solution. If anyone has a better idea, I'd love to hear it.
  • +
+ +

Summary of changes for version 2.0.11

+ +
    +
  • There are two new built-in variables that control how global + variables are initialized. If `initialize_global_variables' is + nonzero, global variables are initialized to the value of the + variable `default_global_variable_value'. The default value of + `initialize_global_variables' is 0 (1 if you use --traditional) + and `default_global_variable_value' is undefined (the empty matrix + if you use --traditional). The default settings are compatible + with versions of Octave before 2.0.10.
  • +
+ +

Summary of changes for version 2.0.10

+ +
    +
  • The built-in variable `PWD' has been removed. If you need to get + the value of the current working directory, use the pwd() function + instead.
  • +
  • For compatibility with Matlab, Octave's lyap function now solves +
    +      A*X + X*A' + C = 0
    +
    + instead of +
    +      A'*X + X*A + C = 0
    +
    + To try to avoid confusion for people who are used to the way + Octave behaved in previous versions, a warning is printed the + first time lyap is called in a given session. To completely + disable the warning, simply add +
    +      global __disable_lyap_interface_change_warning__;
    +
    + to your ~/.octaverc file. The warning will eventually disappear + for good in some future version of Octave.
  • +
  • New built-in functions for computing Bessel functions: + besseli, besselj, besselk, and bessely.
  • +
  • The gammai and betai functions are now implemented as built-in + functions rather than function files.
  • +
  • The new built-in variable `implicit_num_to_str_ok' controls + whether Octave converts expressions like `[97, 98, 99, "123"]' to + strings. The default value is 0 unless you use --traditional.
  • +
  • The new built-in variable `fixed_point_format' controls whether + Octave uses a scaled fixed-point format for displaying matrices. + The default value is 0 unless you use --traditional.
  • +
  • The function sumsq now computes sum (x .* conj (x)) for complex values.
  • +
  • Dynamically linked functions can be cleared.
  • +
  • If a .oct file has a time stamp more recent than the time that it + was loaded, it is automatically reloaded. Reloading a .oct file + may cause several functions to be cleared automatically. By + default, a warning is printed that lists the names of the + functions that will be cleared. You can suppress the message by + setting the new built-in variable `warn_reload_forces_clear' to 0.
  • +
  • Global variables are now initialized to the empty matrix, for + compatibility with Matlab.
  • +
  • Explicit initialization of global variables only happens once. + For example, after the following statements are evaluated, g still + has the value 1. +
    +      global g = 1
    +      global g = 2
    +
    + This is useful for initializing global variables that are used to + maintain state information that is shared among several functions.
  • +
  • The new built-in variable max_recursion_depth allows you to + prevent Octave from attempting infinite recursion. The default + value is 256.
  • +
  • Octave now uses readline version 2.1 and kpathsea 3.0.
  • +
  • The libreadline and libkpathsea libraries are no longer installed.
  • +
  • The libcruft, liboctave, and liboctinterp libraries are now + installed in $libdir/octave instead of just $libdir.
  • +
  • It's no longer necessary to have libg++, but you do need to have + the GNU implementation of libstdc++. If you are using gcc 2.7.2, + libstdc++ is distributed as part of libg++ 2.7.2. For later + versions, libstdc++ is distributed separately. For egcs, + libstdc++ is included with the compiler distribution.
  • +
+ +

Summary of changes for version 2.0.9

+ +

This is a bug-fixing release, but there is one new user-visible +feature:

+ +
    +
  • It is now possible to specify a label for lines in the plot key + when using the plot function. For example, +
    +      plot (x, y, "-*;sin(x);")
    +
    + plots y vs. x using the linespoints style and sets the title of + the line in the key to be `sin(x)'
  • +
+ +

Summary of changes for version 2.0.8

+ +

This is a bug-fixing release. There are only a few new user-visible +features.

+ +
    +
  • If the argument to eig() is symmetric, Octave uses the specialized + Lapack subroutine for symmetric matrices for a significant + increase in performance.
  • +
  • It is now possible to use the mkoctfile script to create .oct + files from multiple source and object files.
  • +
+ +

Summary of changes for version 2.0.7

+ +

This is a bug-fixing release. There are no new user-visible features.

+ +

Summary of changes for version 2.0.6

+ +

This is primarily a bug-fixing release. There are only a few new +user-visilbe features.

+ +
    +
  • The new built-in variable default_eval_print_flag controls whether + Octave prints the results of commands executed by eval() that do + not end with semicolons. The default is 1.
  • +
  • The new built-in constant OCTAVE_HOME specifies the top-level + directory where Octave is installed.
  • +
  • Octave no longer includes functions to work with NPSOL or QPSOL, + because they are not free software.
  • +
+ +

Summary of changes for version 2.0.5

+ +
    +
  • A `switch' statement is now available. See the Statements chapter + in the manual for details.
  • +
  • Commands like ls, save, and cd may now also be used as formal + parameters for functions.
  • +
  • More tests.
  • +
+ +

Summary of changes for version 2.0.4

+ +
    +
  • It is now possible to use commands like ls, save, and cd as simple + variable names. They still cannot be used as formal parameters + for functions, or as the names of structure variables. Failed + assignments leave them undefined (you can recover the orginal + function definition using clear).
  • +
  • Is is now possible to invoke commands like ls, save, and cd as + normal functions (for example, load ("foo", "x", "y", "z")).
  • +
+ +

Summary of changes for version 2.0.3

+ +
    +
  • The manual has been completely revised and now corresponds much + more closely to the features of the current version.
  • +
  • The return value for assignment expressions is now the RHS since + that is more consistent with the way other programming languages + work. However, Octave still prints the entire LHS value so that +
    +      x = zeros (1, 2);
    +      x(2) = 1
    +
    + still prints +
    +      x =
    +
    +        0  1
    +
    +
    + but an assignment like +
    +      z = x(2) = 1
    +
    + sets z to 1 (not [ 0, 1 ] as in previous versions of Octave).
  • +
  • It is now much easier to make binary distributions. See the + Binary Distributions section of the manual for more details.
  • +
+ +

Summary of changes for version 2.0.2

+ +
    +
  • Octave now stops executing commands from a script file if an error + is encountered.
  • +
  • The return, and break commands now cause Octave to quit executing + commands from script files. When used in invalid contexts, the + break, continue, and return commands are now simply ignored + instead of producing parse errors.
  • +
  • size ("") is now [0, 0].
  • +
  • New functions: +
    +
    sleep
    +
    pause execution for a specified number of seconds
    +
    usleep
    +
    pause execution for a specified number of microseconds
    +
  • +
+ + +

Summary of changes for version 2.0.1

+ +

Other than bug fixes, there were no user-visible changes in version +2.0.1. + +

Summary of changes for version 2.0

+ +

    +
  • The set and show commands for setting and displaying gnuplot + parameters have been replaced by gset and gshow. This change will + probably break lots of things, but it is necessary to allow for + compatibility with the Matlab graphics and GUI commands in a + future version of Octave. (For now, the old set and show commands + do work, but they print an annoying warning message to try to get + people to switch to using gset.)
  • +
  • Octave has been mostly ported to Windows NT and Windows 95 using + the beta 17 release of the Cygnus GNU-WIN32 tools. Not everything + works, but it is usable. See the file README.WINDOWS for more + information.
  • +
  • Dynamic linking works on more systems using dlopen() and friends + (most modern Unix systems) or shl_load() and friends (HP/UX + systems). A simple example is provided in examples/hello.cc. + For this feature to work, you must configure Octave with + --enable-shared. You may also need to have a shared-library + version of libg++ and libstdc++.
  • +
  • New data types can be added to Octave by writing a C++ class. On + systems that support dynamic linking, new data types can be added + to an already running Octave binary. A simple example appears in + the file examples/make_int.cc. Other examples are the standard + Octave data types defined in the files src/ov*.{h,cc} and + src/op-*.cc.
  • +
  • The configure option --enable-bounds-check turns on bounds + checking on element references for Octave's internal array and + matrix classes. It's enabled by default. To disable this + feature, configure Octave with --disable-bounds-check.
  • +
  • The C-style I/O functions (fopen, fprintf, etc.) have been + rewritten to be more compatible with Matlab. The fputs function + has also been added. Usage of the *printf functions that was + allowed in previous versions of Octave should still work. + However, there is no way to make the new versions of the *scanf + functions compatible with Matlab *and* previous versions of + Octave. An optional argument to the *scanf functions is now + available to make them behave in a way that is compatible with + previous versions of Octave.
  • +
  • Octave can now read files that contain columns of numbers only, + with no header information. The name of the loaded variable is + constructed from the file name. Each line in the file must have + the same number of elements.
  • +
  • The interface to the pager has changed. The new built-in variable + `page_output_immediately' controls when Octave sends output to the + pager. If it is nonzero, Octave sends output to the pager as soon + as it is available. Otherwise, Octave buffers its output and + waits until just before the prompt is printed to flush it to the + pager.
  • +
  • Expressions of the form +
    +      A(i,j) = x
    +
    + where X is a scalar and the indices i and j define a matrix of + elements now work as you would expect rather than giving an error. + I am told that this is how Matlab 5.0 will behave when it is + released.
  • +
  • Indexing of character strings now works.
  • +
  • The echo command has been implemented.
  • +
  • The document command is now a regular function.
  • +
  • New method for handling errors: +
    +      try
    +        BODY
    +      catch
    +        CLEANUP
    +      end_try_catch
    +
    + Where BODY and CLEANUP are both optional and may contain any + Octave expressions or commands. The statements in CLEANUP are + only executed if an error occurs in BODY. + +

    No warnings or error messages are printed while BODY is + executing. If an error does occur during the execution of BODY, + CLEANUP can access the text of the message that would have been + printed in the builtin constant __error_text__. This is the same + as eval (TRY, CATCH) (which may now also use __error_text__) but + it is more efficient since the commands do not need to be parsed + each time the TRY and CATCH statements are evaluated.

  • +
  • Octave no longer parses the help command by grabbing everything + after the keyword `help' until a newline character is read. To + get help for `;' or `,', now, you need to use the command + `help semicolon' or `help comma'.
  • +
  • Octave's parser now does some simple constant folding. This means + that expressions like 3*i are now evaluated only once, when a + function is compiled, and the right hand side of expressions like + a = [1,2;3,4] are treated as true matrix constants rather than + lists of elements which must be evaluated each time they are + needed.
  • +
  • Built-in variables that can take values of "true" and "false" can + now also be set to any nonzero scalar value to indicate "true", + and 0 to indicate "false".
  • +
  • New built-in variables `history_file', `history_size', and + `saving_history'.
  • +
  • New built-in variable `string_fill_char' specifies the character + to fill with when creating arrays of strings.
  • +
  • If the new built-in variable `gnuplot_has_frames' is nonzero, + Octave assumes that your copy of gnuplot includes support for + multiple plot windows when using X11. + + If the new built-in variable `gnuplot_has_multiplot' is nonzero, + Octave assumes that your copy of gnuplot has the multiplot support + that is included in recent 3.6beta releases. + + The initial values of these variables are determined by configure, + but can be changed in your startup script or at the command line + in case configure got it wrong, or if you upgrade your gnuplot + installation.
  • +
  • The new plot function `figure' allows multiple plot windows when + using newer versions of gnuplot with X11.
  • +
  • Octave now notices when the plotter has exited unexpectedly.
  • +
  • New built-in variable `warn_missing_semicolon'. If nonzero, Octave + will warn when statements in function definitions don't end in + semicolons. The default value is 0.
  • +
  • Octave now attempts to continue after floating point exceptions + or out-of-memory errors.
  • +
  • If Octave crashes, it now attempts to save all user-defined + variables in a file named `octave-core' in the current directory + before exiting.
  • +
  • It is now possible to get the values of individual option settings + for the dassl, fsolve, lsode, npsol, qpsol, and quad functions + using commands like +
    +      dassl_reltol = dassl_options ("relative tolerance");
    +
  • +
  • The svd() function no longer computes the left and right singular + matrices unnecessarily. This can significantly improve + performance for large matrices if you are just looking for the + singular values.
  • +
  • The filter() function is now a built-in function.
  • +
  • New function randn() returns a pseudo-random number from a normal + distribution. The rand() and randn() functions have separate + seeds and generators.
  • +
  • Octave's command-line arguments are now available in the built-in + variable `argv'. The program name is also available in the + variables `program_invocation_name' and `program_name'. If + executing a script from the command line (e.g., octave foo.m) or + using the `#! /bin/octave' hack, the program name is set to the + name of the script.
  • +
  • New built-in variable `completion_append_char' used as the + character to append to successful command-line completion + attempts. The default is " " (a single space).
  • +
  • Octave now uses a modified copy of the readline library from + version 1.14.5 of GNU bash.
  • +
  • In prompt strings, `\H' expands to the whole host name.
  • +
  • New built-in variable `beep_on_error'. If nonzero, Octave will try + to ring your terminal's bell before printing an error message. + The default value is 0.
  • +
  • For functions defined from files, the type command now prints the + text of the file. You can still get the text reconstructed from + the parse tree by using the new option -t (-transformed).
  • +
  • New command-line argument --traditional sets the following + preference variables for compatibility with Matlab: +
    +      PS1                           = ">> "
    +      PS2                           = ""
    +      beep_on_error                 = 1
    +      default_save_format           = "mat-binary"
    +      define_all_return_values      = 1
    +      do_fortran_indexing           = 1
    +      empty_list_elements_ok        = 1
    +      implicit_str_to_num_ok        = 1
    +      ok_to_lose_imaginary_part     = 1
    +      page_screen_output            = 0
    +      prefer_column_vectors         = 0
    +      prefer_zero_one_indexing      = 1
    +      print_empty_dimensions        = 0
    +      treat_neg_dim_as_zero         = 1
    +      warn_function_name_clash      = 0
    +      whitespace_in_literal_matrix  = "traditional"
    +
  • +
  • New functions: +
    +
    readdir
    +
    returns names of files in directory as array of strings
    +
    mkdir
    +
    create a directory
    +
    rmdir
    +
    remove a directory
    +
    rename
    +
    rename a file
    +
    unlink
    +
    delete a file
    +
    umask
    +
    set permission mask for file creation
    +
    stat
    +
    get information about a file
    +
    lstat
    +
    get information about a symbolic link
    +
    glob
    +
    perform filename globbing
    +
    fnmatch
    +
    match strings with filename globbing patterns
    +
    more
    +
    turn the pager on or off
    +
    gammaln
    +
    alias for lgamma
    +
  • +
  • New audio functions from Andreas Weingessel: +
    +
    lin2mu
    +
    linear to mu-law encoding
    +
    loadaudio
    +
    load an audio file to a vector
    +
    mu2lin
    +
    mu-law to linear encoding
    +
    playaudio
    +
    play an audio file
    +
    record
    +
    record sound and store in vector
    +
    saveaudio
    +
    save a vector as an audio file
    +
    setaudio
    +
    executes mixer shell command
    +
  • +
  • New plotting functions from Vinayak Dutt. Ones dealing with + multiple plots on one page require features from gnuplot 3.6beta + (or later). +
    +
    bottom_title
    +
    put title at the bottom of the plot
    +
    mplot
    +
    multiplot version of plot
    +
    multiplot
    +
    switch multiple-plot mode on or off
    +
    oneplot
    +
    return to one plot per page
    +
    plot_border
    +
    put a border around plots
    +
    subplot
    +
    position multiple plots on a single page
    +
    subwindow
    +
    set subwindow position for next plot
    +
    top_title
    +
    put title at the top of the plot
    +
    zlabel
    +
    put a label on the z-axis
    +
  • +
  • New string functions +
    +
    bin2dec
    +
    convert a string of ones and zeros to an integer
    +
    blanks
    +
    create a string of blanks
    +
    deblank
    +
    delete trailing blanks
    +
    dec2bin
    +
    convert an integer to a string of ones and zeros
    +
    dec2hex
    +
    convert an integer to a hexadecimal string
    +
    findstr
    +
    locate occurrences of one string in another
    +
    hex2dec
    +
    convert a hexadecimal string to an integer
    +
    index
    +
    return position of first occurrence a string in another
    +
    rindex
    +
    return position of last occurrence a string in another
    +
    split
    +
    divide one string into pieces separated by another
    +
    str2mat
    +
    create a string matrix from a list of strings
    +
    strrep
    +
    replace substrings in a string
    +
    substr
    +
    extract a substring
    +
    +

    The following functions return a matrix of ones and zeros. + Elements that are nonzero indicate that the condition was true for + the corresponding character in the string array. +

    +
    isalnum
    +
    letter or a digit
    +
    isalpha
    +
    letter
    +
    isascii
    +
    ascii
    +
    iscntrl
    +
    control character
    +
    isdigit
    +
    digit
    +
    isgraph
    +
    printable (but not space character)
    +
    islower
    +
    lower case
    +
    isprint
    +
    printable (including space character)
    +
    ispunct
    +
    punctuation
    +
    isspace
    +
    whitespace
    +
    isupper
    +
    upper case
    +
    isxdigit
    +
    hexadecimal digit
    +
    +

    These functions return new strings. +

    +
    tolower
    +
    convert to lower case
    +
    toupper
    +
    convert to upper case
    +
  • +
  • New function, fgetl. Both fgetl and fgets accept an optional + second argument that specifies a maximum number of characters to + read, and the function fgets is now compatible with Matlab.
  • +
  • Printing in hexadecimal format now works (format hex). It is also + possible to print the internal bit representation of a value + (format bit). Note that these formats are only implemented for + numeric values.
  • +
  • Additional structure features: +
      +
    • Name completion now works for structures.
    • +
    • Values and names of structure elements are now printed by + default. The new built-in variable `struct_levels_to_print' + controls the depth of nested structures to print. The default + value is 2.
    • +
    • New functions: +
      +
      struct_contains (S, NAME)
      +
      returns 1 if S is a structure with element NAME; otherwise returns 0.
      +
      struct_elements (S)
      +
      returns the names of all elements of structure S in an array of + strings.
      +
    • +
  • +
  • New io/subprocess functions: +
    +
    fputs
    +
    write a string to a file with no formatting
    +
    popen2
    +
    start a subprocess with 2-way communication
    +
    mkfifo
    +
    create a FIFO special file
    +
    popen
    +
    open a pipe to a subprocess
    +
    pclose
    +
    close a pipe from a subprocess
    +
    waitpid
    +
    check the status of or wait for subprocesses
    +
  • +
  • New time functions: +
    +
    asctime
    +
    format time structure according to local format
    +
    ctime
    +
    equivalent to `asctime (localtime (TMSTRUCT))'
    +
    gmtime
    +
    return time structure corresponding to UTC
    +
    localtime
    +
    return time structure corresponding to local time zone
    +
    strftime
    +
    print given time structure using specified format
    +
    time
    +
    return current time
    +
    +

    The `clock' and `date' functions are now implemented in M-files + using these basic functions.

  • +
  • Access to additional Unix system calls: +
    +
    dup2
    +
    duplicate a file descriptor
    +
    exec
    +
    replace current process with a new process
    +
    fcntl
    +
    control open file descriptors
    +
    fork
    +
    create a copy of the current process
    +
    getpgrp
    +
    return the process group id of the current process
    +
    getpid
    +
    return the process id of the current process
    +
    getppid
    +
    return the process id of the parent process
    +
    getuid
    +
    return the real user id of the current process
    +
    getgid
    +
    return the real group id of the current process
    +
    geteuid
    +
    return the effective user id of the current process
    +
    getegid
    +
    return the effective group id of the current process
    +
    pipe
    +
    create an interprocess channel
    +
  • +
  • Other new functions: +
    +
    commutation_matrix
    +
    compute special matrix form
    +
    duplication_matrix
    +
    compute special matrix form
    +
    common_size.m
    +
    bring arguments to a common size
    +
    completion_matches
    +
    perform command completion on string
    +
    tilde_expand
    +
    perform tilde expansion on string
    +
    meshgrid
    +
    compatible with Matlab's meshgrid function
    +
    tmpnam
    +
    replaces octave_tmp_file_name
    +
    atexit
    +
    register functions to be called when Octave exits
    +
    putenv
    +
    define an environment variable
    +
    bincoeff
    +
    compute binomial coefficients
    +
    nextpow2
    +
    compute the next power of 2 greater than a number
    +
    detrend
    +
    remove a best fit polynomial from data
    +
    erfinv
    +
    inverse error function
    +
    shift
    +
    perform a circular shift on the elements of a matrix
    +
    pow2
    +
    compute 2 .^ x
    +
    log2
    +
    compute base 2 logarithms
    +
    diff
    +
    compute differences of matrix elements
    +
    vech
    +
    stack columns of a matrix below the diagonal
    +
    vec
    +
    stack columns of a matrix to form a vector
    +
    xor
    +
    compute exclusive or
    +
  • +
  • Functions for getting info from the password database on Unix systems: +
    +
    getpwent
    +
    read entry from password-file stream, opening if necessary
    +
    getpwuid
    +
    search for password entry with matching user ID
    +
    getpwnam
    +
    search for password entry with matching username
    +
    setpwent
    +
    rewind the password-file stream
    +
    endpwent
    +
    close the password-file stream
    +
  • +
  • Functions for getting info from the group database on Unix systems: +
    +
    getgrent
    +
    read entry from group-file stream, opening if necessary
    +
    getgrgid
    +
    search for group entry with matching group ID
    +
    getgrnam
    +
    search for group entry with matching group name
    +
    setgrent
    +
    rewind the pgroup-file stream
    +
    endgrent
    +
    close the group-file stream
    +
  • +
  • The New function octave_config_info returns a structure containing + information about how Octave was configured and compiled.
  • +
  • New function getrusage returns a structure containing system + resource usage statistics. The `cputime' function is now defined + in an M-file using getrusage.
  • +
  • The info reader is now a separate binary that runs as a + subprocess. You still need the info reader distributed with + Octave though, because there are some new command-line arguments + that are not yet available in the public release of Info.
  • +
  • There is a new built-in variable, INFO_PROGRAM, which is used as + the name of the info program to run. Its initial value is + $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH/info, but that value can + be overridden by the environment variable OCTAVE_INFO_PROGRAM, or + the command line argument --info-program NAME, or by setting the + value of INFO_PROGRAM in a startup script.
  • +
  • There is a new built-in variable, EXEC_PATH, which is used as + the list of directories to search when executing subprograms. Its + initial value is taken from the environment variable + OCTAVE_EXEC_PATH (if it exists) or PATH, but that value can be + overridden by the the command line argument --exec-path PATH, or + by setting the value of EXEC_PATH in a startup script. If the + EXEC_PATH begins (ends) with a colon, the directories + $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH and $OCTAVE_HOME/bin are + prepended (appended) to EXEC_PATH (if you don't specify a value + for EXEC_PATH explicitly, these special directories are prepended + to your PATH).
  • +
  • If it is present, Octave will now use an `ls-R' database file to + speed up recursive path searching. Octave looks for a file called + ls-R in the directory specified by the environment variable + OCTAVE_DB_DIR. If that is not set but the environment variable + OCTAVE_HOME is set, Octave looks in $OCTAVE_HOME/lib/octave. + Otherwise, Octave looks in the directory $datadir/octave (normally + /usr/local/lib/octave).
  • +
  • New examples directory.
  • +
  • There is a new script, mkoctfile, that can be used to create .oct + files suitable for dynamic linking.
  • +
  • Many more bug fixes.
  • +
  • ChangeLogs are now kept in each subdirectory.
  • +
diff -r fe5dcb23372a -r dedb85c54245 pages/NEWS-3.2.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/NEWS-3.2.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,408 @@ +--- +layout: page +title: GNU Octave Version 3.2 +menu: false +permalink: NEWS-3.2.html +--- + +## Summary of important user-visible changes + +June 5, 2009 + +{% include release_news_select.md %} + +
+ ** Compatibility with Matlab graphics has been improved.
+
+    The hggroup object and associated listener callback functions have
+    been added allowing the inclusion of group objects.  Data sources
+    have been added to these group objects such that
+
+           x = 0:0.1:10;
+           y = sin (x);
+           plot (x, y, "ydatasource", "y");
+           for i = 1 : 100
+             pause(0.1)
+             y = sin (x + 0.1 * i);
+             refreshdata();
+           endfor
+
+    works as expected.  This capability has be used to introduce
+    stem-series, bar-series, etc., objects for better Matlab
+    compatibility.
+
+ ** New graphics functions:
+
+      addlistener         ezcontour   gcbo         refresh
+      addproperty         ezcontourf  ginput       refreshdata
+      allchild            ezmesh      gtext        specular
+      available_backends  ezmeshc     intwarning   surfl
+      backend             ezplot      ishghandle   trisurf
+      cla                 ezplot3     isocolors    waitforbuttonpress
+      clabel              ezpolar     isonormals
+      comet               ezsurf      isosurface
+      dellistener         findall     linkprop
+      diffuse             gcbf        plotmatrix
+
+ ** New experimental OpenGL/FLTK based plotting system.
+
+    An experimental plotting system based on OpenGL and the FLTK
+    toolkit is now part of Octave.  This backend is disabled by
+    default.  You can switch to using it with the command
+
+        backend ("fltk")
+
+    for all future figures or for a particular figure with the command
+
+        backend (h, "fltk")
+
+    where "h" is a valid figure handle.  Please note that this backend
+    does not yet support text objects.  Obviously, this is a necessary
+    feature before it can be considered usable.  We are looking for
+    volunteers to help implement this missing feature.
+
+ ** Functions providing direct access to gnuplot have been removed.
+
+    The functions __gnuplot_plot__, __gnuplot_set__, __gnuplot_raw__,
+     __gnuplot_show__, __gnuplot_replot__, __gnuplot_splot__,
+     __gnuplot_save_data__ and __gnuplot_send_inline_data__ have been
+     removed from Octave.  These function were incompatible with the
+     high level graphics handle code.
+
+ ** The Control, Finance and Quaternion functions have been removed.
+
+    These functions are now available as separate packages from
+
+      http://octave.sourceforge.net/packages.html
+
+    and can be reinstalled using the Octave package manager (see
+    the pkg function).
+
+ ** Specific sparse matrix functions removed.
+
+    The following functions, which handled only sparse matrices have
+    been removed.  Instead of calling these functions directly, you
+    should use the corresponding function without the "sp" prefix.
+
+      spatan2     spcumsum  spkron   spprod
+      spchol      spdet     splchol  spqr
+      spchol2inv  spdiag    splu     spsum
+      spcholinv   spfind    spmax    spsumsqk
+      spcumprod   spinv     spmin
+
+ ** Improvements to the debugger.
+
+    The interactive debugging features have been improved.  Stopping
+    on statements with dbstop should work correctly now.  Stepping
+    into and over functions, and stepping one statement at a time
+    (with dbstep) now works.  Moving up and down the call stack with
+    dbup and dbdown now works.  The dbstack function is now available
+    to print the current function call stack.  The new dbquit function
+    is available to exit the debugging mode.
+
+ ** Improved traceback error messages.
+
+    Traceback error messages are much more concise and easier to
+    understand.  They now display information about the function call
+    stack instead of the stack of all statements that were active at
+    the point of the error.
+
+ ** Object Oriented Programming.
+
+    Octave now includes OOP features and the user can create their own
+    class objects and overloaded functions and operators.  For
+    example, all methods of a class called "myclass" will be found in
+    a directory "@myclass" on the users path.  The class specific
+    versions of functions and operators take precedence over the
+    generic versions of these functions.
+
+    New functions related to OOP include
+
+      class  inferiorto  isobject  loadobj  methods  superiorto
+
+    See the Octave manual for more details.
+
+ ** Parsing of Command-style Functions.
+
+    Octave now parses command-style functions without needing to first
+    declare them with "mark_as_command".  The rules for recognizing a
+    command-style function calls are
+
+      * A command must appear as the first word in a statement,
+        followed by a space.
+
+      * The first character after the space must not be '=' or '('
+
+      * The next token after the space must not look like a binary
+        operator.
+
+    These rules should be mostly compatible with the way Matlab parses
+    command-style function calls and allow users to define commands in
+    .m files without having to mark them as commands.
+
+    Note that previous versions of Octave allowed expressions like
+
+      x = load -text foo.dat
+
+    but an expression like this will now generate a parse error.  In
+    order to assign the value returned by a function to a variable,
+    you must use the normal function call syntax:
+
+      x = load ("-text", "foo.dat");
+
+ ** Block comments.
+
+    Commented code can be between matching "#{" and "#}" or "%{" and
+    "%}" markers, even if the commented code spans several line.  This
+    allows blocks code to be commented, without needing to comment
+    each line.  For example,
+
+    function [s, t] = func (x, y)
+      s = 2 * x;
+    #{
+      s *= y;
+      t = y + x;
+    #}
+    endfunction
+
+    the lines "s *= y;" and "t = y + x" will not be executed.
+
+ ** Special treatment in the parser of expressions like "a' * b".
+
+    In these cases the transpose is no longer explicitly formed and
+    BLAS libraries are called with the transpose flagged,
+    significantly improving performance for these kinds of
+    operations.
+
+ ** Single Precision data type.
+
+    Octave now includes a single precision data type.  Single
+    precision variables can be created with the "single" command, or
+    from functions like ones, eye, etc.  For example,
+
+      single (1)
+      ones (2, 2, "single")
+      zeros (2, 2, "single")
+      eye (2, 2, "single")
+      Inf (2, 2, "single")
+      NaN (2, 2, "single")
+      NA (2, 2, "single")
+
+    all create single precision variables.  For compatibility with
+    Matlab, mixed double/single precision operators and functions
+    return single precision types.
+
+    As a consequence of this addition to Octave the internal
+    representation of the double precision NA value has changed, and
+    so users that make use of data generated by Octave with R or
+    visa-versa are warned that compatibility might not be assured.
+
+ ** Improved array indexing.
+
+    The underlying code used for indexing of arrays has been
+    completely rewritten and indexing is now significantly faster.
+
+ ** Improved memory management.
+
+    Octave will now attempt to share data in some cases where previously
+    a copy would be made, such as certain array slicing operations or
+    conversions between cells, structs and cs-lists.  This usually reduces
+    both time and memory consumption.
+    Also, Octave will now attempt to detect and optimize usage of a vector
+    as a stack, when elements are being repeatedly inserted at/removed from
+    the end of the vector.
+
+ ** Improved performance for reduction operations.
+
+    The performance of the sum, prod, sumsq, cumsum, cumprod, any, all,
+    max and min functions has been significantly improved.
+
+ ** Sorting and searching.
+
+    The performance of sort has been improved, especially when sorting
+    indices are requested. An efficient built-in issorted implementation
+    was added. sortrows now uses a more efficient algorithm, especially
+    in the homegeneous case. lookup is now a built-in function performing
+    a binary search, optimized for long runs of close elements. Lookup
+    also works with cell arrays of strings.
+
+ ** Range arithmetics
+
+    For some operations on ranges, Octave will attempt to keep the result as a
+    range.  These include negation, adding a scalar, subtracting a scalar, and
+    multiplying by a scalar. Ranges with zero increment are allowed and can be
+    constructed using the built-in function `ones'.
+
+ ** Various performance improvements.
+
+    Performance of a number of other built-in operations and functions was
+    improved, including:
+
+    * logical operations
+    * comparison operators
+    * element-wise power
+    * accumarray
+    * cellfun
+    * isnan
+    * isinf
+    * isfinite
+    * nchoosek
+    * repmat
+    * strcmp
+
+ ** 64-bit integer arithmetic.
+
+    Arithmetic with 64-bit integers (int64 and uint64 types) is fully
+    supported, with saturation semantics like the other integer types.
+    Performance of most integer arithmetic operations has been
+    improved by using integer arithmetic directly.  Previously, Octave
+    performed integer math with saturation semantics by converting the
+    operands to double precision, performing the operation, and then
+    converting the result back to an integer value, truncating if
+    necessary.
+
+ ** Diagonal and permutation matrices.
+
+    The interpreter can now treat diagonal and permutation matrices as
+    special objects that store only the non-zero elements, rather than
+    general full matrices.  Therefore, it is now possible to construct
+    and use these matrices in linear algebra without suffering a
+    performance penalty due to storing large numbers of zero elements.
+
+ ** Improvements to fsolve.
+
+    The fsolve function now accepts an option structure argument (see
+    also the optimset function).  The INFO values returned from fsolve
+    have changed to be compatible with Matlab's fsolve function.
+    Additionally, fsolve is now able to solve overdetermined systems,
+    complex-differentiable complex systems, systems with a sparse
+    jacobian and can work in single precision if given single precision
+    inputs.  It can also be called recursively.
+
+ ** Improvements to the norm function.
+
+    The norm function is now able to compute row or column norms of a
+    matrix in a single call, as well as general matrix p-norms.
+
+ ** New functions for computing some eigenvalues or singular values.
+
+    The eigs and svds functions have been included in Octave.  These
+    functions require the ARPACK library (now distributed under a
+    GPL-compatible license).
+
+ ** New QR and Cholesky factorization updating functions.
+
+      choldelete  cholshift   qrdelete  qrshift
+      cholinsert  cholupdate  qrinsert  qrupdate
+
+ ** New quadrature functions.
+
+      dblquad  quadgk  quadv  triplequad
+
+ ** New functions for reading and writing images.
+
+    The imwrite and imread functions have been included in Octave.
+    These functions require the GraphicsMagick library.  The new
+    function imfinfo provides information about an image file (size,
+    type, colors, etc.)
+
+ ** The input_event_hook function has been replaced by the pair of
+    functions add_input_event_hook and remove_input_event_hook so that
+    more than one hook function may be installed at a time.
+
+ ** Other miscellaneous new functions.
+
+      addtodate          hypot                       reallog
+      bicgstab           idivide                     realpow
+      cellslices         info                        realsqrt
+      cgs                interp1q                    rectint
+      command_line_path  isdebugmode                 regexptranslate
+      contrast           isfloat                     restoredefaultpath
+      convn              isstrprop                   roundb
+      cummin             log1p                       rundemos
+      cummax             lsqnonneg                   runlength
+      datetick           matlabroot                  saveobj
+      display            namelengthmax               spaugment
+      expm1              nargoutchk                  strchr
+      filemarker         pathdef                     strvcat
+      fstat              perl                        subspace
+      full               prctile                     symvar
+      fzero              quantile                    treelayout
+      genvarname         re_read_readline_init_file  validatestring
+      histc
+
+ ** Changes to strcat.
+
+    The strcat function is now compatible with Matlab's strcat
+    function, which removes trailing whitespace when concatenating
+    character strings.  For example
+
+      strcat ('foo ', 'bar')
+      ==> 'foobar'
+
+    The new function cstrcat provides the previous behavior of
+    Octave's strcat.
+
+ ** Improvements to the help functions.
+
+    The help system has been mostly re-implemented in .m files to make
+    it easier to modify.  Performance of the lookfor function has been
+    greatly improved by caching the help text from all functions that
+    are distributed with Octave.  The pkg function has been modified
+    to generate cache files for external packages when they are
+    installed.
+
+ ** Deprecated functions.
+
+    The following functions were deprecated in Octave 3.0 and will be
+    removed in Octave 3.4 (or whatever version is the second major
+    release after 3.0):
+
+      beta_cdf         geometric_pdf        pascal_pdf
+      beta_inv         geometric_rnd        pascal_rnd
+      beta_pdf         hypergeometric_cdf   poisson_cdf
+      beta_rnd         hypergeometric_inv   poisson_inv
+      binomial_cdf     hypergeometric_pdf   poisson_pdf
+      binomial_inv     hypergeometric_rnd   poisson_rnd
+      binomial_pdf     intersection         polyinteg
+      binomial_rnd     is_bool              setstr
+      chisquare_cdf    is_complex           struct_contains
+      chisquare_inv    is_list              struct_elements
+      chisquare_pdf    is_matrix            t_cdf
+      chisquare_rnd    is_scalar            t_inv
+      clearplot        is_square            t_pdf
+      clg              is_stream            t_rnd
+      com2str          is_struct            uniform_cdf
+      exponential_cdf  is_symmetric         uniform_inv
+      exponential_inv  is_vector            uniform_pdf
+      exponential_pdf  isstr                uniform_rnd
+      exponential_rnd  lognormal_cdf        weibcdf
+      f_cdf            lognormal_inv        weibinv
+      f_inv            lognormal_pdf        weibpdf
+      f_pdf            lognormal_rnd        weibrnd
+      f_rnd            meshdom              weibull_cdf
+      gamma_cdf        normal_cdf           weibull_inv
+      gamma_inv        normal_inv           weibull_pdf
+      gamma_pdf        normal_pdf           weibull_rnd
+      gamma_rnd        normal_rnd           wiener_rnd
+      geometric_cdf    pascal_cdf
+      geometric_inv    pascal_inv
+
+    The following functions are now deprecated in Octave 3.2 and will
+    be removed in Octave 3.6 (or whatever version is the second major
+    release after 3.2):
+
+      create_set          spcholinv  spmax
+      dmult               spcumprod  spmin
+      iscommand           spcumsum   spprod
+      israwcommand        spdet      spqr
+      lchol               spdiag     spsum
+      loadimage           spfind     spsumsq
+      mark_as_command     spinv      str2mat
+      mark_as_rawcommand  spkron     unmark_command
+      spatan2             splchol    unmark_rawcommand
+      spchol              split
+      spchol2inv          splu
+
+See NEWS.3 for old news.
+
diff -r fe5dcb23372a -r dedb85c54245 pages/NEWS-3.4.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/NEWS-3.4.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,482 @@ +--- +layout: page +title: GNU Octave Version 3.4 +menu: false +permalink: NEWS-3.4.html +--- + +## Summary of important user-visible changes + +February 8, 2011 + +{% include release_news_select.md %} + +
+ ** IMPORTANT note about binary incompatibility in this release:
+
+    Binary compatibility for all 3.4.x releases was originally planned,
+    but this is impossible for the 3.4.1 release due to a bug in the way
+    shared libraries were built in Octave 3.4.0.  Because of this bug,
+    .oct files built for Octave 3.4.0 must be recompiled before they
+    will work with Octave 3.4.1.
+
+    Given that there would be binary incompatibilities with shared
+    libraries going from Octave 3.4.0 to 3.4.1, the following
+    incompatible changes were also made in this release:
+
+      * The Perl Compatible Regular Expression (PCRE) library is now
+        required to build Octave.
+
+      * Octave's libraries and .oct files are now installed in
+        subdirectories of $libdir instead of $libexecdir.
+
+    Any future Octave 3.4.x release versions should remain binary
+    compatible with Octave 3.4.1 as proper library versioning is now
+    being used as recommended by the libtool manual.
+
+ ** The following functions have been deprecated in Octave 3.4.1 and will
+    be removed from Octave 3.8 (or whatever version is the second major
+    release after 3.4):
+
+      cquad  is_duplicate_entry  perror  strerror
+
+ ** The following functions are new in 3.4.1:
+
+      colstyle  gmres  iscolumn  isrow  mgorth  nproc  rectangle
+
+ ** The get_forge_pkg function is now private.
+
+ ** The rectangle_lw, rectangle_sw, triangle_lw, and triangle_sw
+    functions are now private.
+
+ ** The logistic_regression_derivatives and logistic_regression_likelihood
+    functions are now private.
+
+ ** ChangeLog files in the Octave sources are no longer maintained
+    by hand.  Instead, there is a single ChangeLog file generated from
+    the Mercurial version control commit messages.  Older ChangeLog
+    information can be found in the etc/OLD-ChangeLogs directory in the
+    source distribution.
+
+Summary of important user-visible changes for version 3.4:
+---------------------------------------------------------
+
+ ** BLAS and LAPACK libraries are now required to build Octave.  The
+    subset of the reference BLAS and LAPACK libraries has been removed
+    from the Octave sources.
+
+ ** The `lookup' function was extended to be more useful for
+    general-purpose binary searching.  Using this improvement, the
+    ismember function was rewritten for significantly better
+    performance.
+
+ ** Real, integer and logical matrices, when used in indexing, will now
+    cache the internal index_vector value (zero-based indices) when
+    successfully used as indices, eliminating the conversion penalty for
+    subsequent indexing by the same matrix.  In particular, this means it
+    is no longer needed to avoid repeated indexing by logical arrays
+    using find for performance reasons.
+
+ ** Logical matrices are now treated more efficiently when used as
+    indices.  Octave will keep the index as a logical mask unless the
+    ratio of true elements is small enough, using a specialized
+    code.  Previously, all logical matrices were always first converted
+    to index vectors.  This results in savings in both memory and
+    computing time.
+
+ ** The `sub2ind' and `ind2sub' functions were reimplemented as compiled
+    functions for better performance.  These functions are now faster,
+    can deliver more economized results for ranges, and can reuse the
+    index cache mechanism described in previous paragraph.
+
+ ** The built-in function equivalents to associative operators (`plus',
+    `times', `mtimes', `and', and `or') have been extended to accept
+    multiple arguments.  This is especially useful for summing
+    (multiplying, etc.) lists of objects (of possibly distinct types):
+
+      matrix_sum = plus (matrix_list{:});
+
+ ** An FTP object type based on libcurl has been implemented.  These
+    objects allow ftp connections, downloads and uploads to be
+    managed.  For example,
+
+      fp = ftp ("ftp.octave.org);
+      cd (fp, "gnu/octave");
+      mget (fp, "octave-3.2.3.tar.bz2");
+      close (fp);
+
+ ** The default behavior of `assert (observed, expected)' has been
+    relaxed to employ less strict checking that does not require the
+    internals of the values to match.  This avoids previously valid
+    tests from breaking due to new internal classes introduced in future
+    Octave versions.
+
+    For instance, all of these assertions were true in Octave 3.0.x
+    but false in 3.2.x due to new optimizations and improvements:
+
+      assert (2*linspace (1, 5, 5), 2*(1:5))
+      assert (zeros (0, 0), [])
+      assert (2*ones (1, 5), (2) (ones (1,5)))
+
+ ** The behavior of library functions `ismatrix', `issquare', and
+    `issymmetric' has been changed for better consistency.
+
+    * The `ismatrix' function now returns true for all numeric,
+      logical and character 2-D or N-D matrices.  Previously, `ismatrix'
+      returned false if the first or second dimension was zero.
+      Hence, `ismatrix ([])' was false,
+      while `ismatrix (zeros (1,2,0))' was true.
+
+    * The `issquare' function now returns a logical scalar, and is
+      equivalent to the expression
+
+        ismatrix (x) && ndims (x) == 2 && rows (x) == columns (x)
+
+      The dimension is no longer returned.  As a result, `issquare ([])'
+      now yields true.
+
+    * The `issymmetric' function now checks for symmetry instead of
+      Hermitianness.  For the latter, ishermitian was created.  Also,
+      logical scalar is returned rather than the dimension, so
+      `issymmetric ([])' is now true.
+
+ ** Function handles are now aware of overloaded functions.  If a
+    function is overloaded, the handle determines at the time of its
+    reference which function to call.  A non-overloaded version does not
+    need to exist.
+
+ ** Overloading functions for built-in classes (double, int8, cell,
+    etc.) is now compatible with Matlab.
+
+ ** Function handles can now be compared with the == and != operators,
+    as well as the `isequal' function.
+
+ ** Performance of concatenation (using []) and the functions `cat',
+    `horzcat', and `vertcat' has been improved for multidimensional
+    arrays.
+
+ ** The operation-assignment operators +=, -=, *= and /= now behave more
+    efficiently in certain cases.  For instance, if M is a matrix and S a
+    scalar, then the statement
+
+      M += S;
+
+    will operate on M's data in-place if it is not shared by another
+    variable, usually increasing both time and memory efficiency.
+
+    Only selected common combinations are affected, namely:
+
+      matrix += matrix
+      matrix -= matrix
+      matrix .*= matrix
+      matrix ./= matrix
+
+      matrix += scalar
+      matrix -= scalar
+      matrix *= scalar
+      matrix /= scalar
+
+      logical matrix |= logical matrix
+      logical matrix &= logical matrix
+
+    where matrix and scalar belong to the same class.  The left-hand
+    side must be a simple variable reference.
+
+    Moreover, when unary operators occur in expressions, Octave will
+    also try to do the operation in-place if it's argument is a
+    temporary expresssion.
+
+ ** The effect of comparison operators (<, >, <=, and >=) applied to
+    complex numbers has changed to be consistent with the strict
+    ordering defined by the `max', `min', and `sort' functions.  More
+    specifically, complex numbers are compared by lexicographical
+    comparison of the pairs `[abs(z), arg(z)]'.  Previously, only real
+    parts were compared; this can be trivially achieved by wrapping the
+    operands in real().
+
+ ** The automatic simplification of complex computation results has
+    changed.  Octave will now simplify any complex number with a zero
+    imaginary part or any complex matrix with all elements having zero
+    imaginary part to a real value.  Previously, this was done only for
+    positive zeros.  Note that the behavior of the complex function is
+    unchanged and it still produces a complex value even if the
+    imaginary part is zero.
+
+ ** As a side effect of code refactoring in liboctave, the binary
+    logical operations are now more easily amenable to compiler
+    optimizations and are thus significantly faster.
+
+ ** Octave now allows user-defined `subsasgn' methods to optimize out
+    redundant copies.  For more information, see the manual.
+
+ ** More efficient matrix division handling.  Octave is now able to
+    handle the expressions
+
+       M' \ V
+       M.' \ V
+       V / M
+
+    (M is a matrix and V is a vector) more efficiently in certain cases.
+    In particular, if M is triangular, all three expressions will be
+    handled by a single call to xTRTRS (from LAPACK), with appropriate
+    flags.  Previously, all three expressions required a physical
+    transpose of M.
+
+ ** More efficient handling of certain mixed real-complex matrix
+    operations.  For instance, if RM is a real matrix and CM a complex
+    matrix,
+
+      RM * CM
+
+    can now be evaluated either as
+
+      complex (RM * real (CM), RM * imag (CM))
+
+    or as
+
+      complex (RM) * CM,
+
+    depending on the dimensions.  The first form requires more
+    temporaries and copying, but halves the FLOP count, which normally
+    brings better performance if RM has enough rows.  Previously, the
+    second form was always used.
+
+    Matrix division is similarly affected.
+
+ ** More efficient handling of triangular matrix factors returned from
+    factorizations.  The functions for computing QR, LU and Cholesky
+    factorizations will now automatically return the triangular matrix
+    factors with proper internal matrix_type set, so that it won't need
+    to be computed when the matrix is used for division.
+
+ ** The built-in `sum' function now handles the non-native summation
+    (i.e., double precision sum of single or integer inputs) more
+    efficiently, avoiding a temporary conversion of the whole input
+    array to doubles.  Further, `sum' can now accept an extra option
+    argument, using a compensated summation algorithm rather than a
+    straightforward sum, which significantly improves precision if lots
+    of cancellation occurs in the summation.
+
+ ** The built-in `bsxfun' function now uses optimized code for certain
+    cases where built-in operator handles are passed in.  Namely, the
+    optimizations concern the operators `plus', `minus', `times',
+    `ldivide', `rdivide', `power', `and', `or' (for logical arrays),
+    the relational operators `eq', `ne', `lt', `le', `gt', `ge', and the
+    functions `min' and `max'.  Optimizations only apply when both
+    operands are of the same built-in class.  Mixed real/complex and
+    single/double operations will first convert both operands to a
+    common type.
+
+ ** The `strfind' and `strrep' functions now have compiled
+    implementations, facilitating significantly more efficient searching
+    and replacing in strings, especially with longer patterns.  The code
+    of `strcat' has been vectorized and is now much more efficient when
+    many strings are concatenated.  The `strcmpi' and `strncmpi'
+    functions are now built-in functions, providing better performance.
+
+ ** Matlab-style ignoring input and output function arguments using
+    tilde (~) is now supported.  Ignored output arguments may be
+    detected from a function using the built-in function `isargout'.
+    For more details, consult the manual.
+
+ ** The list datatype, deprecated since the introduction of cells, has
+    been removed.
+
+ ** The accumarray function has been optimized and is now significantly
+    faster in certain important cases.
+
+ ** The behavior of isreal and isnumeric functions was changed to be more
+    Matlab-compatible.
+
+ ** The integer math & conversion warnings (Octave:int-convert-nan,
+    Octave:int-convert-non-int-val, Octave:int-convert-overflow,
+    Octave:int-math-overflow) have been removed.
+
+ ** rem and mod are now built-in functions.  They also handle integer
+    types efficiently using integer arithmetic.
+
+ ** Sparse indexing and indexed assignment has been mostly rewritten.
+    Since Octave uses compressed column storage for sparse matrices,
+    major attention is devoted to operations manipulating whole columns.
+    Such operations are now significantly faster, as well as some other
+    important cases.
+
+    Further, it is now possible to pre-allocate a sparse matrix and
+    subsequently fill it by assignments, provided they meet certain
+    conditions.  For more information, consult the `spalloc' function,
+    which is no longer a mere dummy.  Consequently, nzmax and nnz are no
+    longer always equal in Octave.  Octave may also produce a matrix
+    with nnz < nzmax as a result of other operations, so you should
+    consistently use nnz unless you really want to use nzmax (i.e. the
+    space allocated for nonzero elements).
+
+    Sparse concatenation is also affected, and concatenating sparse
+    matrices, especially larger collections, is now significantly more
+    efficient.  This applies to both the [] operator and the
+    cat/vertcat/horzcat functions.
+
+ ** It is now possible to optionally employ the xGESDD LAPACK drivers
+    for computing the singular value decomposition using svd(), instead
+    of the default xGESVD, using the configuration pseudo-variable
+    svd_driver.  The xGESDD driver can be up to 6x times faster when
+    singular vectors are requested, but is reported to be somewhat less
+    robust on highly ill-conditioned matrices.
+
+ ** Configuration pseudo-variables, such as page_screen_output or
+    confirm_recursive_rmdir (or the above mentioned svd_driver), now
+    accept a "local" option as second argument, requesting the change
+    to be undone when the current function returns:
+
+    function [status, msg] = rm_rf (dir)
+      confirm_recursive_rmdir (false, "local");
+      [status, msg] = rmdir (dir, "s");
+      ...
+    endfunction
+
+    Upon return, confirm_recursive_rmdir will be restored to the value
+    it had on entry to the function, even if there were subsequent
+    changes to the variable in function rm_rf or any of the functions
+    it calls.
+
+ ** pkg now accepts a -forge option for downloading and installing
+    packages from Octave Forge automatically.  For example,
+
+      pkg install -forge general
+
+    will automatically download the latest release of the general
+    package and attempt to install it. No automatic resolving of
+    dependencies is provided.  Further,
+
+      pkg list -forge
+
+    can be used to list all available packages.
+
+  ** The internal data representation of structs has been completely
+     rewritten to make certain optimizations feasible.  The field data
+     can now be shared between structs with equal keys but different
+     dimensions or values, making operations that preserve the fields
+     faster.  Economized storage is now used for scalar structs (just
+     like most other scalars), making their usage more
+     memory-efficient.  Certain array-like operations on structs
+     (concatenation, uniform cellfun, num2cell) have gained a
+     significant speed-up.  Additionally, the octave_scalar_map class
+     now provides a simpler interface to work with scalar structs within
+     a C++ DLD function.
+
+  ** Two new formats are available for displaying numbers:
+
+       format short eng
+       format long eng
+
+     Both display numbers in engineering notation, i.e., mantissa +
+     exponent where the exponent is a multiple of 3.
+
+  ** The following functions are new in Octave 3.4:
+
+       accumdim    erfcx        nfields      pqpnonneg  uigetdir
+       bitpack     fileread     nth_element  quadcc     uigetfile
+       bitunpack   fminbnd      onCleanup    randi      uiputfile
+       blkmm       fskipl       pbaspect     repelems   uimenu
+       cbrt        ifelse       pie3         reset      whitebg
+       curl        ishermitian  powerset     rsf2csf
+       chop        isindex      ppder        saveas
+       daspect     luupdate     ppint        strread
+       divergence  merge        ppjumps      textread
+
+  ** Using the image function to view images with external programs such
+     as display, xv, and xloadimage is no longer supported.  The
+     image_viewer function has also been removed.
+
+  ** The behavior of struct assignments to non-struct values has been
+     changed.  Previously, it was possible to overwrite an arbitrary
+     value:
+
+        a = 1;
+        a.x = 2;
+
+     This is no longer possible unless a is an empty matrix or cell
+     array.
+
+  ** The dlmread function has been extended to allow specifying a custom
+     value for empty fields.
+
+  ** The dlmread and dlmwrite functions have been modified to accept
+     file IDs (as returned by fopen) in addition to file names.
+
+  ** Octave can now optimize away the interpreter overhead of an
+     anonymous function handle, if the function simply calls another
+     function or handle with some of its parameters bound to certain
+     values.  Example:
+
+       f = @(x) sum (x, 1);
+
+     When f is called, the call is forwarded to @sum with the constant 1
+     appended, and the anonymous function call does not occur on the
+     call stack.
+
+ ** Deprecated functions.
+
+    The following functions were deprecated in Octave 3.0 and have been
+    removed from Octave 3.4.
+
+      beta_cdf         geometric_pdf        pascal_pdf
+      beta_inv         geometric_rnd        pascal_rnd
+      beta_pdf         hypergeometric_cdf   poisson_cdf
+      beta_rnd         hypergeometric_inv   poisson_inv
+      binomial_cdf     hypergeometric_pdf   poisson_pdf
+      binomial_inv     hypergeometric_rnd   poisson_rnd
+      binomial_pdf     intersection         polyinteg
+      binomial_rnd     is_bool              setstr
+      chisquare_cdf    is_complex           struct_contains
+      chisquare_inv    is_list              struct_elements
+      chisquare_pdf    is_matrix            t_cdf
+      chisquare_rnd    is_scalar            t_inv
+      clearplot        is_square            t_pdf
+      clg              is_stream            t_rnd
+      com2str          is_struct            uniform_cdf
+      exponential_cdf  is_symmetric         uniform_inv
+      exponential_inv  is_vector            uniform_pdf
+      exponential_pdf  isstr                uniform_rnd
+      exponential_rnd  lognormal_cdf        weibcdf
+      f_cdf            lognormal_inv        weibinv
+      f_inv            lognormal_pdf        weibpdf
+      f_pdf            lognormal_rnd        weibrnd
+      f_rnd            meshdom              weibull_cdf
+      gamma_cdf        normal_cdf           weibull_inv
+      gamma_inv        normal_inv           weibull_pdf
+      gamma_pdf        normal_pdf           weibull_rnd
+      gamma_rnd        normal_rnd           wiener_rnd
+      geometric_cdf    pascal_cdf
+      geometric_inv    pascal_inv
+
+    The following functions were deprecated in Octave 3.2 and will
+    be removed from Octave 3.6 (or whatever version is the second major
+    release after 3.2):
+
+      create_set          spcholinv    splu
+      dmult               spcumprod    spmax
+      iscommand           spcumsum     spmin
+      israwcommand        spdet        spprod
+      lchol               spdiag       spqr
+      loadimage           spfind       spsum
+      mark_as_command     sphcat       spsumsq
+      mark_as_rawcommand  spinv        spvcat
+      spatan2             spkron       str2mat
+      spchol              splchol      unmark_command
+      spchol2inv          split        unmark_rawcommand
+
+    The following functions have been deprecated in Octave 3.4 and will
+    be removed from Octave 3.8 (or whatever version is the second major
+    release after 3.4):
+
+      autocor  cellidx   gammai     krylovb    values
+      autocov  dispatch  glpkmex    replot
+      betai    fstat     is_global  saveimage
+
+  * For compatibility with Matlab, mu2lin (x) is now equivalent to
+    mu2lin (x, 0).
+
+  * The ARPACK library is now distributed with Octave so it no longer
+    needs to be available as an external dependency when building
+    Octave.
+
diff -r fe5dcb23372a -r dedb85c54245 pages/NEWS-3.6.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/NEWS-3.6.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,223 @@ +--- +layout: page +title: GNU Octave Version 3.6 +menu: false +permalink: NEWS-3.6.html +--- + +## Summary of important user-visible changes + +January 15, 2012 + +{% include release_news_select.md %} + +
+ ** The PCRE library is now required to build Octave.  If a pre-compiled
+    package does not exist for your system, you can find PCRE sources
+    at http://www.pcre.org
+
+ ** The ARPACK library is no longer distributed with Octave.
+    If you need the eigs or svds functions you must provide an
+    external ARPACK through a package manager or by compiling it
+    yourself.  If a pre-compiled package does not exist for your system,
+    you can find the current ARPACK sources at
+    http://forge.scilab.org/index.php/p/arpack-ng
+
+ ** Many of Octave's binary operators (.*, .^, +, -, ...) now perform
+    automatic broadcasting for array operations which allows you to use
+    operator notation instead of calling bsxfun or expanding arrays (and
+    unnecessarily wasting memory) with repmat or similar idioms.  For
+    example, to scale the columns of a matrix by the elements of a row
+    vector, you may now write
+
+      rv .* M
+
+    In this expression, the number of elements of rv must match the
+    number of columns of M.  The following operators are affected:
+
+      plus      +  .+
+      minus     -  .-
+      times     .*
+      rdivide   ./
+      ldivide   .\
+      power     .^  .**
+      lt        <
+      le        <=
+      eq        ==
+      gt        >
+      ge        >=
+      ne        !=  ~=
+      and       &
+      or        |
+      atan2
+      hypot
+      max
+      min
+      mod
+      rem
+      xor
+
+    additionally, since the A op= B assignment operators are equivalent
+    to A = A op B, the following operators are also affected:
+
+      +=  -=  .+=  .-=  .*=  ./=  .\=  .^=  .**=  &=  |=
+
+    See the "Broadcasting" section in the new "Vectorization and Faster
+    Code Execution" chapter of the manual for more details.
+
+ ** Octave now features a profiler, thanks to the work of Daniel Kraft
+    under the Google Summer of Code mentorship program.  The manual has
+    been updated to reflect this addition.  The new user-visible
+    functions are profile, profshow, and profexplore.
+
+ ** Overhaul of statistical distribution functions
+
+    Functions now return "single" outputs for inputs of class "single".
+
+    75% reduction in memory usage through use of logical indexing.
+
+    Random sample functions now use the same syntax as rand and accept
+    a comma separated list of dimensions or a dimension vector.
+
+    Functions have been made Matlab-compatible with regard to special
+    cases (probability on boundaries, probabilities for values outside
+    distribution, etc.).  This may cause subtle changes to existing
+    scripts.
+
+    negative binomial function has been extended to real, non-integer
+    inputs.  The discrete_inv function now returns v(1) for 0 instead of
+    NaN.  The nbincdf function has been recoded to use a closed form
+    solution with betainc.
+
+ ** strread, textscan, and textread have been completely revamped.
+
+    They now support nearly all Matlab functionality including:
+
+      * Matlab-compatible whitespace and delimiter defaults
+
+      * Matlab-compatible options: 'whitespace', treatasempty', format
+        string repeat count, user-specified comment style, uneven-length
+        output arrays, %n and %u conversion specifiers (provisionally)
+
+ ** All .m string functions have been modified for better performance or
+    greater Matlab compatibility.  Performance gains of 15X-30X have
+    been demonstrated.  Operations on cell array of strings no longer pay
+    quite as high a penalty as those on 2-D character arrays.
+
+      deblank:  Now requires character or cellstr input.
+
+      strtrim:  Now requires character or cellstr input.
+                No longer trims nulls ("\0") from string for Matlab
+                compatibility.
+
+      strmatch: Follows documentation precisely and ignores trailing spaces
+                in pattern and in string.  Note that this is documented
+                Matlab behavior but the implementation apparently does
+                not always follow it.
+
+      substr:   Now possible to specify a negative LEN option which
+                extracts to within LEN of the end of the string.
+
+      strtok:   Now accepts cellstr input.
+
+      base2dec, bin2dec, hex2dec:
+                Now accept cellstr inputs.
+
+      dec2base, dec2bin, dec2hex:
+                Now accept cellstr inputs.
+
+      index, rindex:
+                Now accept 2-D character array input.
+
+      strsplit: Now accepts 2-D character array input.
+
+ ** Geometry functions derived from Qhull (convhull, delaunay, voronoi)
+    have been revamped.  The options passed to the underlying qhull
+    command have been changed for better results or for Matlab
+    compatibility.
+
+      convhull: Default options are "Qt" for 2D, 3D, 4D inputs
+                Default options are "Qt Qx" for 5D and higher
+
+      delaunay: Default options are "Qt Qbb Qc Qz" for 2D and 3D inputs
+                Default options are "Qt Qbb Qc Qx" for 4D and higher
+
+      voronoi:  No default arguments
+
+ ** Date/Time functions updated.  Millisecond support with FFF format
+    string now supported.
+
+    datestr: Numerical formats 21, 22, 29 changed to match Matlab.
+             Now accepts cellstr input.
+
+ ** The following warning IDs have been removed:
+
+      Octave:associativity-change
+      Octave:complex-cmp-ops
+      Octave:empty-list-elements
+      Octave:fortran-indexing
+      Octave:precedence-change
+
+ ** The warning ID Octave:string-concat has been renamed to
+    Octave:mixed-string-concat.
+
+ ** Octave now includes the following Matlab-compatible preference
+    functions:
+
+      addpref  getpref  ispref  rmpref  setpref
+
+ ** The following Matlab-compatible handle graphics functions have been
+    added:
+
+      guidata         uipanel        uitoolbar
+      guihandles      uipushtool     uiwait
+      uicontextmenu   uiresume       waitfor
+      uicontrol       uitoggletool
+
+    The uiXXX functions above are experimental.
+
+    Except for uiwait and uiresume, the uiXXX functions are not
+    supported with the FLTK+OpenGL graphics toolkit.
+
+    The gnuplot graphics toolkit does not support any of the uiXXX
+    functions nor the waitfor function.
+
+ ** New keyword parfor (parallel for loop) is now recognized as a valid
+    keyword.  Implementation, however, is still mapped to an ordinary
+    for loop.
+
+ ** Other new functions added in 3.6.0:
+
+      bicg                       nthargout                   usejava
+      is_dq_string               narginchk                   waitbar
+      is_sq_string               python                      zscore
+      is_function_handle         register_graphics_toolkit
+      loaded_graphics_toolkits   recycle
+
+ ** Deprecated functions.
+
+    The following functions were deprecated in Octave 3.2 and have been
+    removed from Octave 3.6.
+
+      create_set          spcholinv    splu
+      dmult               spcumprod    spmax
+      iscommand           spcumsum     spmin
+      israwcommand        spdet        spprod
+      lchol               spdiag       spqr
+      loadimage           spfind       spsum
+      mark_as_command     sphcat       spsumsq
+      mark_as_rawcommand  spinv        spvcat
+      spatan2             spkron       str2mat
+      spchol              splchol      unmark_command
+      spchol2inv          split        unmark_rawcommand
+
+    The following functions have been deprecated in Octave 3.6 and will
+    be removed from Octave 3.10 (or whatever version is the second major
+    release after 3.6):
+
+      cut                is_duplicate_entry
+      cor                polyderiv
+      corrcoef           shell_cmd
+      __error_text__     studentize
+      error_text         sylvester_matrix
+
diff -r fe5dcb23372a -r dedb85c54245 pages/NEWS-3.8.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/NEWS-3.8.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,410 @@ +--- +layout: page +title: GNU Octave Version 3.8 +menu: false +permalink: NEWS-3.8.html +--- + +## Summary of important user-visible changes + +December 27, 2013 + +{% include release_news_select.md %} + +
+  ** One of the biggest new features for Octave 3.8 is a graphical user
+     interface.  It is the one thing that users have requested most
+     often over the last few years and now it is almost ready.  But
+     because it is not quite as polished as we would like, we have
+     decided to wait until the 4.0.x release series before making the
+     GUI the default interface (until then, you can use the --force-gui
+     option to start the GUI).
+
+     Given the length of time and the number of bug fixes and
+     improvements since the last major release Octave, we also decided
+     against delaying the release of all these new improvements any
+     longer just to perfect the GUI.  So please enjoy the 3.8 release of
+     Octave and the preview of the new GUI.  We believe it is working
+     reasonably well, but we also know that there are some obvious rough
+     spots and many things that could be improved.
+
+     WE NEED YOUR HELP.  There are many ways that you can help us fix
+     the remaining problems, complete the GUI, and improve the overall
+     user experience for both novices and experts alike:
+
+       * If you are a skilled software developer, you can help by
+         contributing your time to help with Octave's development.  See
+         http://octave.org/get-involved.html for more information.
+
+       * If Octave does not work properly, you are encouraged
+         report the problems you find.  See http://octave.org/bugs.html
+         for more information about how to report problems.
+
+       * Whether you are a user or developer, you can help to fund the
+         project.  Octave development takes a lot of time and expertise.
+         Your contributions help to ensure that Octave will continue to
+         improve.  See http://octave.org/donate.html for more details.
+
+    We hope you find Octave to be useful.  Please help us make it even
+    better for the future!
+
+ ** Octave now uses OpenGL graphics by default with FLTK widgets.  If
+    OpenGL libraries or FLTK widgets are not available when Octave is
+    built, gnuplot is used.  You may also choose to use gnuplot for
+    graphics by executing the command
+
+      graphics_toolkit ("gnuplot")
+
+    Adding this command to your ~/.octaverc file will set the default
+    for each session.
+
+ ** Printing or saving figures with OpenGL graphics requires the
+    gl2ps library which is no longer distributed with Octave.  The
+    software is widely available in most package managers.  If a
+    pre-compiled package does not exist for your system, you can find
+    the current sources at http://www.geuz.org/gl2ps/.
+
+ ** Octave now supports nested functions with scoping rules that are
+    compatible with Matlab.  A nested function is one declared and defined
+    within the body of another function.  The nested function is only
+    accessible from within the enclosing function which makes it one
+    method for making private functions whose names do not conflict with those
+    in the global namespace (See also subfunctions and private functions).
+    In addition, variables in the enclosing function are visible within the
+    nested function.  This makes it possible to have a pseudo-global variable
+    which can be seen by a group of functions, but which is not visible in
+    the global namespace.
+
+    Example:
+    function outerfunc (...)
+      ...
+      function nested1 (...)
+        ...
+        function nested2 (...)
+           ...
+        endfunction
+      endfunction
+
+      function nested3 (...)
+        ...
+      endfunction
+    endfunction
+
+ ** Line continuations inside character strings have changed.
+
+    The sequence '...' is no longer recognized as a line continuation
+    inside a character string.  A backslash '\' followed by a newline
+    character is no longer recognized as a line continuation inside
+    single-quoted character strings.  Inside double-quoted character
+    strings, a backslash followed by a newline character is still
+    recognized as a line continuation, but the backslash character must
+    be followed *immediately* by the newline character.  No whitespace or
+    end-of-line comment may appear between them.
+
+ ** Backslash as a continuation marker outside of double-quoted strings
+    is now deprecated.
+
+    Using '\' as a continuation marker outside of double quoted strings
+    is now deprecated and will be removed from a future version of
+    Octave.  When that is done, the behavior of
+
+      (a \
+       b)
+
+    will be consistent with other binary operators.
+
+ ** Redundant terminal comma accepted by parser
+
+    A redundant terminal comma is now accepted in matrix
+    definitions which allows writing code such as
+
+    [a,...
+     b,...
+     c,...
+    ] = deal (1,2,3)
+
+ ** Octave now has limited support for named exceptions
+
+    The following syntax is now accepted:
+
+      try
+        statements
+      catch exception-id
+        statements
+      end
+
+    The exception-id is a structure with the fields "message" and
+    "identifier".  For example
+
+      try
+        error ("Octave:error-id", "error message");
+      catch myerr
+        printf ("identifier: %s\n", myerr.identifier);
+        printf ("message:    %s\n", myerr.message);
+      end_try_catch
+
+    When classdef-style classes are added to Octave, the exception-id
+    will become an MException object.
+
+ ** Warning states may now be set temporarily, until the end of the
+    current function, using the syntax
+
+      warning STATE ID "local"
+
+    in which STATE may be "on", "off", or "error".  Changes to warning
+    states that are set locally affect the current function and all
+    functions called from the current scope.  The previous warning state
+    is restored on return from the current function.  The "local"
+    option is ignored if used in the top-level workspace.
+
+ ** Warning IDs renamed:
+
+    Octave:array-as-scalar => Octave:array-to-scalar
+    Octave:array-as-vector => Octave:array-to-vector
+
+ ** 'emptymatch', 'noemptymatch' options added to regular expressions.
+
+    With this addition Octave now accepts the entire set of Matlab options
+    for regular expressions.  'noemptymatch' is the default, but 'emptymatch'
+    has certain uses where you need to match an assertion rather than actual
+    characters.  For example,
+
+    regexprep ('World', '^', 'Hello ', 'emptymatch')
+      => Hello World
+
+    where the pattern is actually the assertion '^' or start-of-line.
+
+ ** For compatibility with Matlab, the regexp, regexpi, and regexprep
+    functions now process backslash escape sequences in single-quoted pattern
+    strings.  In addition, the regexprep function now processes backslash
+    escapes in single-quoted replacement strings.  For example,
+
+    regexprep (str, '\t', '\n')
+
+    would search the variable str for a TAB character (escape sequence \t)
+    and replace it with a NEWLINE (escape sequence \n).  Previously the
+    expression would have searched for a literal '\' followed by 't' and
+    replaced the two characters with the sequence '\', 'n'.
+
+ ** A TeX parser has been implemented for the FLTK toolkit and is the default
+    for any text object including titles and axis labels.  The TeX parser is
+    supported only for display on a monitor, not for printing.
+
+    A quick summary of features:
+
+    Code         Feature     Example             Comment
+    -----------------------------------------------------------------
+    _            subscript   H_2O                formula for water
+    ^            exponent    y=x^2               formula for parabola
+    \char        symbol      \beta               Greek symbol beta
+    \fontname    font        \fontname{Arial}    set Arial font
+    \fontsize    fontsize    \fontsize{16}       set fontsize 16
+    \color[rgb]  fontcolor   \color[rgb]{1 0 1}  set magenta color
+    \bf          bold        \bfBold Text        bold font
+    \it          italic      \itItalic Text      italic font
+    \sl          slanted     \slOblique Text     slanted font
+    \rm          normal      \bfBold\rmNormal    normal font
+    {}           group       {\bf Bold}Normal    group objects
+                             e^{i*\pi} = -1      group objects
+
+ ** The m-files in the plot directory have been overhauled.
+
+    The plot functions now produce output that is nearly visually compatible
+    with Matlab.  Plot performance has also increased, dramatically for some
+    functions such as comet and waitbar.  Finally, the documentation for most
+    functions has been updated so it should be clearer both how to use a
+    function and when a function is appropriate.
+
+ ** The m-files in the image directory have been overhauled.
+
+    The principal benefit is that Octave will now no longer automatically
+    convert images stored with integers to doubles.  Storing images as uint8
+    or uint16 requires only 1/8 or 1/4 the memory of an image stored using
+    doubles.  For certain operations, such as fft2, the image must still be
+    converted to double in order to work.
+
+    Other changes include fixes to the way indexed images are read from a
+    colormap depending on the image class (integer images have a -1 offset to
+    the colormap row number).
+
+ ** The imread and imwrite functions have been completely rewritten.
+
+    The main changes relate to the alpha channel, support for reading and
+    writing of floating point images, implemented writing of indexed images,
+    and appending images to multipage image files.
+
+    The issues that may arise due to backwards incompatibility are:
+
+      * imwrite no longer interprets a length of 2 or 4 in the third dimension
+        as grayscale or RGB with alpha channel (a length of 4 will be saved
+        as a CMYK image).  Alpha channel must be passed as separate argument.
+
+      * imread will always return the colormap indexes when reading an indexed
+        image, even if the colormap is not requested as output.
+
+      * transparency values are now inverted from previous Octave versions
+        (0 is for completely transparent instead of completely opaque).
+
+    In addition, the function imformats has been implemented to expand
+    reading and writing of images of different formats through imread
+    and imwrite.
+
+ ** The colormap function now provides new options--"list", "register",
+    and "unregister"--to list all available colormap functions, and to
+    add or remove a function name from the list of known colormap
+    functions.  Packages that implement extra colormaps should use these
+    commands with PKG_ADD and PKG_DEL statements.
+
+ ** strsplit has been modified to be compatible with Matlab.  There
+    are two instances where backward compatibility is broken.
+
+    (1) Delimiters are now string vectors, not scalars.
+
+    Octave's legacy behavior
+
+      strsplit ("1 2, 3", ", ")
+      ans =
+      {
+       [1,1] = 1
+       [1,2] = 2
+       [1,3] =
+       [1,4] = 3
+      }
+
+    Matlab compatible behavior
+
+      strsplit ("1 2, 3", ", ")
+      ans =
+      {
+       [1,1] = 1 2
+       [1,2] = 3
+      }
+
+    (2) By default, Matlab treats consecutive delimiters as a single
+    delimiter.  By default, Octave's legacy behavior was to return an
+    empty string for the part between the delmiters.
+
+    Where legacy behavior is desired, the call to strsplit() may be
+    replaced by ostrsplit(), which is Octave's original implementation of
+    strsplit().
+
+ ** The datevec function has been extended for better Matlab compatibility.
+    It now accepts string inputs in the following numerical formats: 12, 21,
+    22, 26, 29, 31.  This is undocumented, but verifiable, Matlab behavior.
+    In addition, the default for formats which do not specify a date is
+    January 1st of the current year.  The previous default was the current day,
+    month, and year.  This may produce changes in existing scripts.
+
+ ** The error function and its derivatives has been extended to accept complex
+    arguments.  The following functions now accept complex inputs:
+
+    erf  erfc  erfcx
+
+    In addition two new error functions erfi (imaginary error function) and
+    dawson (scaled imaginary error function) have been added.
+
+ ** The glpk function has been modified to reflect changes in the GLPK
+    library.  The "round" and "itcnt" options have been removed.  The
+    "relax" option has been replaced by the "rtest" option.  The numeric
+    values of error codes and of some options have also changed.
+
+ ** The kurtosis function has changed definition to be compatible with
+    Matlab.  It now returns the base kurtosis instead of the "excess kurtosis".
+    The old behavior can be had by changing scripts to normalize with -3.
+
+               "excess kurtosis" = kurtosis (x) - 3
+
+ ** The moment function has changed definition to be compatible with
+    Matlab.  It now returns the central moment instead of the raw moment.
+    The old behavior can be had by passing the type argument "r" for raw.
+
+ ** The default name of the Octave crash dump file is now
+    "octave-workspace" instead of "octave-core".  The exact name can
+    always be customized with the octave_core_file_name function.
+
+ ** A citation command has been added to display information on how to
+    cite Octave and packages in publications.  The package system will
+    look for and install CITATION files from packages.
+
+ ** The java package from Octave Forge is now part of core Octave.  The
+    following new functions are available for interacting with Java
+    directly from Octave:
+
+      debug_java     java_matrix_autoconversion
+      isjava         java_unsigned_autoconversion
+      java2mat       javaaddpath
+      javaArray      javaclasspath
+      javaMethod     javamem
+      javaObject     javarmpath
+                     usejava
+
+    In addition, the following functions that use the Java interface
+    are now available (provided that Octave is compiled with support for
+    Java enabled):
+
+      helpdlg    listdlg   questdlg
+      inputdlg   msgbox    warndlg
+
+ ** Other new functions added in 3.8.0:
+
+      atan2d                     erfi             lines
+      base64_decode              expint           linsolve
+      base64_encode              findfigs         missing_component_hook
+      betaincinv                 flintmax         polyeig
+      built_in_docstrings_file   fminsearch       prefdir
+      cmpermute                  gallery          preferences
+      cmunique                   gco              readline_re_read_init_file
+      colorcube                  hdl2struct       readline_read_init_file
+      copyobj                    history_save     rgbplot
+      dawson                     imformats        save_default_options
+      dblist                     importdata       shrinkfaces
+      desktop                    isaxes           splinefit
+      doc_cache_create           iscolormap       stemleaf
+      ellipj                     isequaln         strjoin
+      ellipke                    jit_debug        struct2hdl
+      erfcinv                    jit_enable       tetramesh
+                                 jit_startcnt     waterfall
+
+ ** Deprecated functions.
+
+    The following functions were deprecated in Octave 3.4 and have been
+    removed from Octave 3.8.
+
+      autocor    dispatch              is_global    setstr
+      autocov    fstat                 krylovb      strerror
+      betai      gammai                perror       values
+      cellidx    glpkmex               replot
+      cquad      is_duplicate_entry    saveimage
+
+    The following functions have been deprecated in Octave 3.8 and will
+    be removed from Octave 3.12 (or whatever version is the second major
+    release after 3.8):
+
+      default_save_options    java_new
+      gen_doc_cache           java_set
+      interp1q                java_unsigned_conversion
+      isequalwithequalnans    javafields
+      java_convert_matrix     javamethods
+      java_debug              re_read_readline_init_file
+      java_get                read_readline_init_file
+      java_invoke             saving_history
+
+
+    The following keywords have been deprecated in Octave 3.8 and will
+    be removed from Octave 3.12 (or whatever version is the second major
+    release after 3.8):
+
+      static
+
+    The following configuration variables have been deprecated in Octave
+    3.8 and will be removed from Octave 3.12 (or whatever version is the
+    second major release after 3.8):
+
+      CC_VERSION  (now GCC_VERSION)
+      CXX_VERSION (now GXX_VERSION)
+
+    The internal class Octave_map has been deprecated in Octave 3.8 and
+    will be removed from Octave 3.12 (or whatever version is the second
+    major release after 3.8).  Replacement classes are octave_map
+    (struct array) or octave_scalar_map for a single structure.
+
diff -r fe5dcb23372a -r dedb85c54245 pages/NEWS-3.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/NEWS-3.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,222 @@ +--- +layout: page +title: GNU Octave Version 3 +menu: false +permalink: NEWS-3.html +--- + +## Summary of important user-visible changes + +December 21, 2007 + +{% include release_news_select.md %} + +
    +
  • Compatibility with Matlab graphics is much better. We now + have some graphics features that work like Matlab's Handle + Graphics (tm): +
      +
    • You can make a subplot and then use the print function to + generate file with the plot.
    • + +
    • RGB line colors are supported if you use gnuplot 4.2. Octave + can still use gnuplot 4.0, but there is no way to set arbitrary + line colors with it when using the Matlab-style plot functions. + There never was any way to do this reliably with older versions + of gnuplot (whether run from Octave or not) since it only + provided a limited set to choose from, and they were terminal + dependent, so choosing color 1 with the X11 terminal would be + different from color 1 with the PostScript terminal. Valid RGB + colors for gnuplot 4.0 are the eight possible combinations of 0 + and 1 for the R, G and B values. Invalid values are all mapped + to the same color. +

      + This also affects patch objects used in the bar, countour, meshc + and surfc functions, where the bars and contours will be + monochrome. A workaround for this is to type "colormap gmap40" + that loads a colormap that in many cases will be adequate for + simple bar and contour plots.

    • + +
    • You can control the width of lines using (for example): +
      +	line (x, y, "linewidth", 4, "color", [1, 0, 0.5]);
      +
      + (this also shows the color feature).
    • + +
    • With gnuplot 4.2, image data is plotted with gnuplot and may be + combined with other 2-d plot data.
    • + +
    • Lines for contour plots are generated with an Octave function, so + contour plots are now 2-d plots instead of special 3-d plots, and + this allows you to plot additional 2-d data on top of a contour + plot.
    • + +
    • With the gnuplot "extended" terminals the TeX interpreter is + emulated. However, this means that the TeX interpreter is only + supported on the postscript terminals with gnuplot 4.0. Under + gnuplot 4.2 the terminals aqua, dumb, png, jpeg, gif, pm, windows, + wxt, svg and x11 are supported as well.
    • + +
    • The following plot commands are now considered obsolete and will + be removed from a future version of Octave: +
      +	__gnuplot_set__
      +	__gnuplot_show__
      +	__gnuplot_plot__
      +	__gnuplot_splot__
      +	__gnuplot_replot__
      +
      + Additionally, these functions no longer have any effect on plots + created with the Matlab-style plot commands + (plot, line, mesh, semilogx, + etc.). + +
    • Plot property values are not extensively checked. Specifying + invalid property values may produce unpredictible results.
    • + +
    • Octave now sends data over the same pipe that is used to send + commands to gnuplot. While this avoids the problem of + cluttering /tmp with data files, it is no longer possible to use + the mouse to zoom in on plots. This is a limitation of gnuplot, + which is unable to zoom when the data it plots is not stored in + a file. Some work has been done to fix this problem in newer + versions of gnuplot (> 4.2.2). See for example, + this thread on the gnuplot development list. +
  • + + +
  • The way Octave handles search paths has changed. Instead of + setting the built-in variable LOADPATH, you must + use addpath, rmpath, or path to + manipulate the function search path. These functions will + maintain "." at the head of the path, for compatibility + with Matlab. +

    + Leading, trailing or doubled colons are no longer special. + Now, all elements of the search path are explicitly included in + the path when Octave starts. To display the path, use + the path function. +

    + Path elements that end in // are no longer searched recursively. + Instead, you may use addpath and the genpath function to add an + entire directory tree to the path. For example, +

    +      addpath (genpath ("~/octave"));
    +
    + will add ~/octave and all directories below it to the head of the + path.
  • + + +
  • Previous versions of Octave had a number of built-in variables to + control warnings (for example, warn_divide_by_zero). These + variables have been replaced by warning identifiers that are used + with the warning function to control the state of warnings. +

    + For example, instead of writing +

    +      warn_divide_by_zero = false;
    +
    + to disable divide-by-zero warnings, you should write +
    +      warning ("off", "Octave:divide-by-zero");
    +
    + You may use the same technique in your own code to control + warnings. For example, you can use +
    +      warning ("My-package:phase-of-the-moon",
    +               "the phase of the moon could cause trouble today");
    +
    + to allow users to control this warning using the + "My-package:phase-of-the-moon" warning identifier. +

    + You may also enable or disable all warnings, or turn them into + errors: +

    +      warning ("on", "all");
    +      warning ("off", "all");
    +      warning ("error", "Octave:divide-by-zero");
    +      warning ("error", "all");
    +
    + You can query the state of current warnings using +
    +      warning ("query", ID)
    +      warning ("query")
    +
    + (only those warning IDs which have been explicitly set are + returned). +

    + A partial list and description of warning identifiers is available + using +

    +      help warning_ids
    +
  • + + +
  • All built-in variables have been converted to functions. This + change simplifies the interpreter and allows a consistent + interface to internal variables for user-defined packages and the + core functions distributed with Octave. In most cases, code that + simply accesses internal variables does not need to change. Code + that sets internal variables will change. For example, instead of + writing +
    +      PS1 = ">> ";
    +
    + you will need to write +
    +      PS1 (">> ");
    +
    + If you need write code that will run in both old and new versions + of Octave, you can use something like +
    +      if (exist ("OCTAVE_VERSION") == 5)
    +        ## New:
    +        PS1 (">> ");
    +      else
    +        ## Old:
    +        PS1 = ">> ";
    +      endif
    +
  • + + +
  • For compatibility with Matlab, the output order of Octave's + "system" function has changed from +
    +      [output, status] = system (cmd);
    +
    + to +
    +      [status, output] = system (cmd);
    +
  • + + +
  • For compatibility with Matlab, normcdf, norminv, + normpdf, and normrnd have been modified to + compute distributions using the standard deviation instead of the + variance.
  • + + +
  • For compatibility with Matlab, the output of Octave's fsolve + function has been changed from +
    +      [x, info, msg] = fsolve (...);
    +
    + to +
    +      [x, fval, info] = fsolve (...);
    +
  • + + +
  • For compatibility with Matlab, normcdf, norminv, + normpdf, and normrnd have been modified to + compute distributions using the standard deviation instead of the + variance.
  • + + +
  • For compatibility with + Matlab, gamcdf, gaminv, gampdf, + gamrnd, expcdf, expinv, exppdf + and exprnd have been modified to compute the + distributions using the standard scale factor rather than one over + the scale factor. +
diff -r fe5dcb23372a -r dedb85c54245 pages/NEWS-4.0.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/NEWS-4.0.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,349 @@ +--- +layout: page +title: GNU Octave Version 4.0 +menu: false +permalink: NEWS-4.0.html +--- + +## Summary of important user-visible changes + +May 23, 2015 + +{% include release_news_select.md %} + +
+ ** A graphical user interface is now the default when running Octave
+    interactively.  The start-up option --no-gui will run the familiar
+    command line interface, and still allows use of the GUI dialogs and
+    qt plotting toolkit.  The option --no-gui-libs runs a minimalist
+    command line interface that does not link with the Qt libraries and
+    uses the fltk toolkit for plotting.
+
+ ** Octave now uses OpenGL graphics with Qt widgets by default.  If OpenGL
+    libraries are not available when Octave is built, gnuplot is used.
+    You may choose to use the fltk or gnuplot toolkit for graphics by
+    executing the command
+
+      graphics_toolkit ("fltk")
+        OR
+      graphics_toolkit ("gnuplot")
+
+    Adding such a command to your ~/.octaverc file will set the default
+    for each session.
+
+ ** A new syntax for object oriented programming termed classdef has been
+    introduced.  See the manual for more extensive documentation of the
+    classdef interface.
+
+    New keywords:
+
+      classdef      endclassdef
+      enumeration   endenumeration
+      events        endevents
+      methods       endmethods
+      properties    endproperties
+
+ ** New audio functions and classes:
+
+      audiodevinfo  audioread      sound
+      audioinfo     audiorecorder  soundsc
+      audioplayer   audiowrite
+
+ ** Other new classes in Octave 4.0:
+
+      audioplayer    inputParser
+      audiorecorder
+
+ ** Optional stricter Matlab compatibility for ranges, diagonal matrices,
+    and permutation matrices.
+
+    Octave has internal optimizations which use space-efficient storage
+    for the three data types above.  Three new functions have been added
+    which control whether the optimizations are used (default), or whether
+    the data types are stored as full matrices.
+
+    disable_range   disable_diagonal_matrix   disable_permutation_matrix
+
+    All three optimizations are disabled if Octave is started with the
+    --braindead command line option.
+
+ ** The preference
+
+      do_braindead_shortcircuit_evaluation
+
+    is now enabled by default.
+
+ ** The preference
+
+      allow_noninteger_range_as_index
+
+    is now enabled by default and the warning ID
+
+      Octave:noninteger-range-as-index
+
+    is now set to "on" by default instead of "error" by default and "on"
+    for --traditional.
+
+ ** The "backtrace" warning option is now enabled by default.  This change
+    was made for Matlab compatibility.
+
+ ** For compatibility with Matlab, the "ismatrix (x)" function now only checks
+    the dimension of "x".  The old behaviour of "ismatrix" is obtained by
+    "isnumeric (x) || islogical (x) || ischar (x)".
+
+ ** The nextpow2 function behaviour has been changed for vector inputs.
+    Instead of computing `nextpow2 (length (x))', it will now compute
+    nextpow2 for each element of the input.  This change is Matlab compatible,
+    and also prevents bugs for "vectors" of length 1.
+
+ ** polyeig now returns a row vector of eigenvalues rather than a matrix
+    with the eigenvalues on the diagonal.  This change was made for Matlab
+    compatibility.
+
+ ** Interpolation function changes for Matlab compatibility
+
+    The interpolation method 'cubic' is now equivalent to 'pchip'
+    for interp1, interp2, and interp3.  Previously, 'cubic' was equivalent
+    to 'spline' for interp2.  This may produce different results as 'spline'
+    has continuous 1st and 2nd derivatives while 'pchip' only has a continuous
+    1st derivative.  The methods 'next' and 'previous' have been added to
+    interp1 for compatibility.
+
+ ** The delaunay function has been extended to accept 3-D inputs for
+    Matlab compatibility.  The delaunay function no longer plots the
+    triangulation if no output argument is requested, instead, the
+    triangulation is always returned.  The delaunay3 function which
+    handles 3-D inputs has been deprecated in favor of delaunay.
+
+ ** The trigonometric functions asin and acos return different phase values
+    from previous versions of Octave when the input is outside the principal
+    branch ([-1, 1]).  If the real portion of the input is greater than 1 then
+    the limit from below is taken.  If the real portion is less than 1 then the
+    limit from above is taken.  This criteria is consistent with several other
+    numerical analysis software packages.
+
+ ** The hyperbolic function acosh now returns values with a phase in the range
+    [-pi/2, +pi/2].  Previously Octave returned values in the range [0, pi].
+    This is consistent with several other numerical analysis software packages.
+
+ ** strfind changes when using empty pattern ("") for Matlab compatibility
+
+    strfind now returns an empty array when the pattern itself is empty.
+    In previous versions of Octave, strfind matched at every character
+    location when the pattern was empty.
+
+      NEW
+      strfind ("abc", "") => []
+      OLD
+      strfind ("abc", "") => [1, 2, 3, 4]
+
+ ** Integer formats used in the printf family of functions now work for
+    64-bit integers and are more compatible with Matlab when printing
+    non-integer values.  Now instead of truncating, Octave will switch
+    the effective format to '%g' in the following circumstances:
+
+      * the value of an integer type (int8, uint32, etc.) value exceeds
+        the maximum for the format specifier.  For '%d', the limit is
+        intmax ('int64') and for '%u' it is intmax ('uint64').
+
+      * round(x) != x or the value is outside the range allowed by the
+        integer format specifier.
+
+    There is still one difference:  Matlab switches to '%e' and Octave
+    switches to '%g'.
+
+ ** The functions intersect, setdiff, setxor, and union now return a
+    column vector as output unless the input was a row vector.  This change
+    was made for Matlab compatibility.
+
+ ** The inpolygon function now returns true for points that are within
+    the polygon OR on it's edge.  This change was made for Matlab
+    compatibility.
+
+ ** The archive family of functions (bzip2, gzip, zip, tar) and their
+    unpacking routines (bunzip2, gunzip, unzip, untar, unpack) have
+    been recoded.  Excepting unpack, the default is now to place files
+    in the same directory as the archive (on unpack) or as the original
+    files (on archiving).
+
+ ** Qt and FLTK graphics toolkits now support offscreen rendering on Linux.
+    In other words, print will work even when the figure visibility is "off".
+
+ ** Z-order stacking issues with patches, grid lines, and line object
+    plot markers for on screen display and printing have all been resolved.
+    For 2-D plots the axis grid lines can be placed on top of the plot
+    with set (gca, "layer", "top").
+
+ ** The patch graphic object has been overhauled.  It now produces visual
+    results equivalent to Matlab even for esoteric combinations of
+    faces/vertices/cdata.
+
+ ** The polar() plot function now draws a circular theta axis and
+    radial rho axis rather than using a rectangular x/y axis.
+
+ ** linkprop has been completely re-coded for performance and Matlab
+    compatibility.  It now returns a linkprop object which must be stored
+    in a variable for as long as the graphic objects should remain linked.
+    To unlink properties use 'clear hlink' where hlink is the variable
+    containing the linkprop object.
+
+ ** isprime has been extended to operate on negative and complex inputs.
+
+ ** xor has been extended to accept more than two arguments in which case
+    it performs cumulative XOR reduction.
+
+ ** The following functions now support N-dimensional arrays:
+
+      fliplr   flipud   rot90   rectint
+
+ ** The new warning ID "Octave:data-file-in-path" replaces the three
+    previous separate warning IDs "Octave:fopen-file-in-path",
+    "Octave:load-file-in-path", and "Octave:md5sum-file-in-path".
+
+ ** The warning ID Octave:singular-matrix-div has been replaced by
+    Octave:nearly-singular-matrix and Octave:singular-matrix.
+
+ ** The warning ID Octave:matlab-incompatible has been replaced by
+    Octave:language-extension to better reflect its meaning.
+
+ ** The warning ID Octave:broadcast has been removed.  Instead automatic
+    broadcasting will throw an Octave:language-extension warning.  This
+    warning ID is used for broadcasting as well as other features not
+    available in Matlab.
+
+ ** Other new functions added in 4.0:
+
+      annotation
+      bandwidth
+      cubehelix
+      dir_in_loadpath
+      flip
+      frame2im
+      get_home_directory
+      hgload
+      hgsave
+      ichol
+      ilu
+      im2frame
+      isbanded
+      isdiag
+      isstudent
+      istril
+      istriu
+      javachk
+      jit_failcnt
+      linkaxes
+      lscov
+      metaclass
+      numfields
+      open
+      ordschur
+      pan
+      qmr
+      rotate
+      rotate3d
+      sylvester
+      unsetenv
+      validateattributes
+      zoom
+
+ ** inline() scheduled for eventual deprecation by Matlab
+
+    Functions created through the use of inline are scheduled for deprecation
+    by Matlab.  When this occurs Octave will continue to support inline
+    functions for an indeterminate amount of time before also removing support.
+    All new code should use anonymous functions in place of inline functions.
+
+ ** Deprecated functions.
+
+    The following functions have been deprecated in Octave 4.0 and will
+    be removed from Octave 4.4 (or whatever version is the second major
+    release after 4.0):
+
+      Function             | Replacement
+      ---------------------|------------------
+      bicubic              | interp2
+      delaunay3            | delaunay
+      dump_prefs           | individual preference get/set routines
+      find_dir_in_path     | dir_in_loadpath
+      finite               | isfinite
+      fmod                 | rem
+      fnmatch              | glob or regexp
+      loadaudio            | audioread
+      luinc                | ilu or ichol
+      mouse_wheel_zoom     | mousewheelzoom axes property
+      nfields              | numfields
+      octave_tmp_file_name | tempname
+      playaudio            | audioplayer
+      saveaudio            | audiowrite
+      syl                  | sylvester
+      usage                | print_usage
+
+      allow_noninteger_range_as_index
+      do_braindead_shortcircuit_evaluation
+      setaudio
+
+ ** The following functions were deprecated in Octave 3.8 and will be
+    removed from Octave 4.2 (or whatever version is the second major
+    release after 3.8):
+
+      default_save_options    java_new
+      gen_doc_cache           java_unsigned_conversion
+      interp1q                javafields
+      isequalwithequalnans    javamethods
+      java_convert_matrix     re_read_readline_init_file
+      java_debug              read_readline_init_file
+      java_invoke             saving_history
+
+ ** The following functions were deprecated in Octave 3.6 and have been
+    removed from Octave 4.0.
+
+      cut                polyderiv
+      cor                shell_cmd
+      corrcoef           studentize
+      __error_text__     sylvester_matrix
+      error_text
+
+ ** The following keywords were deprecated in Octave 3.8 and have been
+    removed from Octave 4.0
+
+      static
+
+ ** The following configuration variables were deprecated in Octave 3.8
+    and have been removed from Octave 4.0
+
+      CC_VERSION  (now GCC_VERSION)
+      CXX_VERSION (now GXX_VERSION)
+
+ ** The internal function atan2 of the sparse matrix class has been deprecated
+    in Octave 4.0 and will be removed from Octave 4.4 (or whatever version is
+    the second major release after 4.0).  Use the Fatan2 function with sparse
+    inputs as a replacement.
+
+ ** The internal class Octave_map was deprecated in Octave 3.8 and has
+    been removed from Octave 4.0.  Replacement classes are
+    octave_map (struct array) or octave_scalar_map for a single structure.
+
+ ** The configure option --enable-octave-allocator has been removed.
+    The internal class octave_allocator declared in oct-alloc.h has
+    been removed.  The header remains, but is deprecated.  The macros to
+    access the class (DECLARE_OCTAVE_ALLOCATOR, DEFINE_OCTAVE_ALLOCATOR,
+    and DEFINE_OCTAVE_ALLOCATOR2) are now unconditionally defined to be
+    empty.
+
+ ** Octave now has OpenMP enabled by default if the system provides a
+    working OpenMP implementation.  This allows oct-file modules to take
+    advantage of OpenMP if desired.  This can be disabled when building
+    Octave with the configure option --disable-openmp.
+
+ ** Octave now automatically truncates intermediate calculations done with
+    floating point values to 64 bits.  Some hardware math co-processors, such
+    as the x87, maintain extra precision, but this leads to disagreements in
+    calculations when compared to reference implementations in software using
+    the IEEE standard for double precision.  There was no measurable
+    performance impact to this change, but it may be disabled with the
+    configure option --disable-float-truncate.  MinGW and Cygwin platforms,
+    as well as GCC compilers >= 5.0 require this feature.  Non-x87 hardware,
+    or hardware using SSE options exclusively, can disable float truncation
+    if desired.
+
diff -r fe5dcb23372a -r dedb85c54245 pages/NEWS-4.2.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/NEWS-4.2.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,257 @@ +--- +layout: page +title: GNU Octave Version 4.2 +menu: false +permalink: NEWS-4.2.html +--- + +## Summary of important user-visible changes + +November 13, 2016 + +{% include release_news_select.md %} + +
+ ** The parser has been extended to accept, but ignore, underscore
+    characters in numbers.  This facilitates writing more legible code
+    by using '_' as a thousands separator or to group nibbles into bytes
+    in hex constants.
+
+    Examples: 1_000_000 == 1e6  or  0xDE_AD_BE_EF
+
+ ** The parser has been extended to understand binary numbers which
+    begin with the prefix '0b' or '0B'.  The value returned is Octave's
+    default numeric class of double, not at unsigned integer class.
+    Therefore numbers greater than flintmax, i.e., 2^53, will lose some
+    precision.
+
+    Examples: 0b101 == 5  or  0B1100_0001 == 0xC1
+
+ ** gnuplot 4.4 is now the minimum version supported by Octave.
+
+ ** The default set of colors used to plot lines has been updated to be
+    compatible with Matlab's new default color scheme.  The line plot
+    color scheme can be set with the axes property "ColorOrder".
+
+ ** The default colormap is now set to "viridis" which is also the
+    default colormap in matplotlib.  This new colormap fixes some of the
+    main issues with the old default colormap "jet" such as its bad
+    "luminance profile" and is also more similar to Matlab's new default
+    colormap "parula".
+
+ ** The colormap function no longer supports the input argument "list"
+    to show built-in colormaps.  Use "help colormap" to find the
+    built-in colormaps.
+
+ ** The graphics command "hold on" now ensures that each new plot added
+    to an existing plot has a different color or linestyle according to
+    the "ColorOrder" and/or "LineStyleOrder" properties.  This is
+    equivalent to the old command "hold all" and was made for Matlab
+    compatibility.  Existing code *may* produce differently colored
+    plots if it did not specify the color for a plot and relied on each
+    new plot having the default first color in the "ColorOrder"
+    property.
+
+ ** When starting, Octave now looks in the function path for a file
+    startup.m and executes any commands found there.  This change was
+    made to accommodate Matlab users.  Octave has it's own configuration
+    system based on the file .octaverc which is preferred.
+
+ ** Octal ('\NNN') and hex ('\xNN') escape sequences in single quoted
+    strings are now interpreted by the function do_string_escapes().
+    The *printf family of functions now supports octal and hex escape
+    sequences in single-quoted strings for Matlab compatibility.
+
+ ** Special octal and hex escape sequences for the pattern and
+    replacement strings in regular expressions are now interpreted for
+    Matlab compatibility.
+
+    octal: '\oNNN' or '\o{NNN}'
+    hex  : '\xNN'  or '\x{NN}'
+
+ ** Unknown escape sequences in the replacement string for regexprep are
+    now substituted with their unescaped version and no warning is
+    emitted.  This change was made for Matlab compatibility.
+
+    Example: regexprep ('a', 'a', 'x\yz')
+             => 'xyz'
+
+ ** mkfifo now interprets the MODE argument as an octal, not decimal,
+    integer.  This is consistent with the equivalent shell command.
+
+ ** linspace now returns an empty matrix if the number of requested
+    points is 0 or a negative number.  This change was made to be
+    compatible with Matlab releases newer than 2011.  In addition,
+    Octave no longer supports matrix inputs for A or B.
+
+ ** The cov function now returns the complex conjugate of the result
+    from previous versions of Octave.  This change was made for
+    compatibility with Matlab.
+
+ ** condest now works with a normest1 compatible syntax.
+
+ ** The griddata function no longer plots the interpolated mesh if no
+    output argument is requested, instead the vector or array of
+    interpolated values is always returned for Matlab compatibility.
+
+ ** The new function "light" and the corresponding graphics object
+    provide light and shadow effects for patch and surface objects.
+
+ ** The surfnorm function now returns unnormalized (magnitude != 1)
+    normal vectors for compatibility with Matlab.
+
+ ** The normal vectors returned from isonormals have been reversed to
+    point towards smaller values for compatibility with Matlab.
+
+ ** The quadl function now uses an absolute, rather than relative,
+    tolerance for Matlab compatibility.  The default tolerance is 1e-6
+    which may result in lower precision results than previous versions
+    of Octave which used eps as the relative tolerance.  The quadl
+    function has also been extended to return a second output with the
+    total number of function evaluations.
+
+ ** The textscan function is now built-in and is much faster and much
+    more Matlab-compatible than the previous m-file version.
+
+ ** Dialog boxes--errordlg, helpdlg, inputdlg, listdlg, msgbox,
+    questdlg, and warndlg--now exclusively use Qt for rendering.
+    Java based versions have been removed.
+
+ ** The axes properties "TitleFontSizeMultiplier" and "TitleFontWeight"
+    are now implemented which control the default appearance of text
+    created with title().
+    The axes property "LabelFontSizeMultiplier" is now implemented
+    which controls the default appearance of text created with
+    xlabel(), ylabel(), or zlabel().
+
+ ** The graphics property "box" for axes now defaults to "off".
+    To obtain equivalent plots to previous versions of Octave use
+      set (0, "DefaultAxesBox", "on");
+    in your .octaverc file.
+
+ ** The graphics property "boxstyle" has been implemented.  The default
+    is "back" which draws only the back planes in a 3-D view.  If the
+    option is "full" then all planes are drawn.
+
+ ** The graphics property "erasemode" has been hidden, and will
+    eventually be removed.  This property has also been removed
+    from Matlab, and was never implemented in Octave.
+
+ ** The graphics property "graphicssmoothing" for figures now controls
+    whether anti-aliasing will be used for lines.  The default is "on".
+
+ ** The value "zero" for the axes properties "xaxislocation" and
+    "yaxislocation" has been deprecated and will be removed from
+    Octave 4.6.  Use "origin" instead.
+
+ ** The publish function allows easy publication of Octave script files
+    in HTML or other formats, including figures and output created by
+    this script.  It comes with its counterpart grabcode, which lets one
+    literally grab the HTML published code from a remote website, for
+    example.
+
+ ** The value of the MEX variable TrapFlag now defaults to 0, which will
+    cause Octave to abort execution of a MEX file and return to the
+    prompt if an error is encountered in mexCallMATLAB.
+
+ ** The MEX API now includes the function mexCallMATLABWithTrap.  This
+    function will not abort if an error occurs during mexCallMATLAB, but
+    instead will return execution to the MEX function for error
+    handling.
+
+ ** The MEX API functions for input validation that begin with "mxIs"
+    (e.g., mxIsDouble, mxIsEmpty, etc.) now return type bool rather than
+    type int.
+
+ ** The functions mxAssert and mxAssertS for checking assertions have
+    been added.  In order to avoid a performance penalty they are only
+    compiled in to debug versions of a MEX file, i.e., that are produced
+    when the '-g' option is given to mex or mkoctfile.
+
+ ** Other new MEX API functions include mexEvalStringWithTrap,
+    mxIsScalar, mxCreateUninitNumericArray, mxCreateUninitNumericMatrix.
+
+ ** Other new functions added in 4.2:
+
+      audioformats
+      camlight
+      condeig
+      deg2rad
+      dialog
+      evalc
+      hash
+      im2double
+      isocaps
+      lighting
+      localfunctions
+      material
+      normest1
+      ode23
+      ode45
+      odeget
+      odeplot
+      odeset
+      padecoef
+      profexport
+      psi
+      rad2deg
+      reducepatch
+      reducevolume
+      smooth3
+      uibuttongroup
+
+ ** Deprecated functions.
+
+    The following functions have been deprecated in Octave 4.2 and will
+    be removed from Octave 4.6 (or whatever version is the second major
+    release after 4.2):
+
+      Function             | Replacement
+      ---------------------|------------------
+      bitmax               | flintmax
+      mahalanobis          | mahal in Octave-Forge statistics pkg
+      md5sum               | hash
+      octve_config_info    | __octave_config_info__
+      onenormest           | normest1
+      sleep                | pause
+      usleep               | pause
+      wavread              | audioread
+      wavwrite             | audiowrite
+
+ ** The following functions were deprecated in Octave 3.8 and have been
+    removed from Octave 4.2.
+
+      default_save_options    java_new
+      gen_doc_cache           java_unsigned_conversion
+      interp1q                javafields
+      isequalwithequalnans    javamethods
+      java_convert_matrix     re_read_readline_init_file
+      java_debug              read_readline_init_file
+      java_invoke             saving_history
+
+ ** The global error_state variable in Octave's C++ API has been
+    deprecated and will be removed in a future version.  Now the error
+    and print_usage functions throw an exception
+    (octave::execution_exception) after displaying the error message.
+    This makes the error and print_usage functions in C++ work more like
+    the corresponding functions in the scripting language.
+
+ ** The default error handlers in liboctave have been updated to use
+    exceptions.  After displaying an error message they no longer return
+    control to the calling program.  The error handler function can be
+    customized through the global variables
+    "current_liboctave_error_handler" and
+    "current_liboctave_error_with_id_handler".  If a programmer has
+    installed their own custom error handling routines when directly
+    linking with liboctave then these must be updated to throw an
+    exception and not return to the calling program.
+
+ ** The system for common errors and warnings has been renamed from
+    gripe_XXX to either err_XXX if error is called or warn_XXX if
+    warning is called.  The gripe_XXX functions are deprecated and will
+    be removed in version 4.6.
+
+ ** New configure option, --enable-address-sanitizer-flags, to build
+    Octave with memory allocator checks (similar to those in valgrind)
+    built in.
+
diff -r fe5dcb23372a -r dedb85c54245 pages/NEWS-4.4.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/NEWS-4.4.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,391 @@ +--- +layout: page +title: GNU Octave Version 4.4 +menu: false +permalink: NEWS-4.4.html +--- + +## Summary of important user-visible changes + +April 30, 2018 + +{% include release_news_select.md %} + +
+ ** A graphical Variable Editor has been added to the GUI interface.
+    It uses a spreadsheet-like interface for quick, intuitive editing
+    of variables.  The Variable Editor is launched by double-clicking
+    on a variable name in the Workspace Window or by typing
+    "openvar VARIABLE_NAME" in the Command Window.
+
+ ** On systems with 64-bit pointers, --enable-64 is now the default and
+    Octave always uses 64-bit indexing.  However, if the configure
+    script determines that the BLAS library uses 32-bit integers, then
+    operations using the following libraries are limited to arrays with
+    dimensions that are smaller than 2^31 elements:
+
+      BLAS  LAPACK  QRUPDATE  SuiteSparse  ARPACK
+
+    Additionally, the following libraries use "int" internally, so
+    maximum problem sizes are always limited:
+
+      glpk  Qhull
+
+ ** The octave command no longer starts the GUI by default.  Most users
+    starting Octave from a shell were expecting the command line
+    interface, and desktop launchers already required the `--force-gui'
+    option.  With this change, desktop launchers should be modified to
+    use the new option `--gui'.  The previous `--force-gui' option will
+    continue to work, and maps to `--gui', but it will be removed in
+    Octave 6.
+
+ ** A known bug in Qt (https://bugreports.qt.io/browse/QTBUG-55357) is
+    addressed by limiting GUI sub-panel relocation capabilities for Qt
+    versions in the range >= 5.6.1 and < 5.7.1.  However, this may not
+    thoroughly avoid issues on all platforms.
+
+ ** A new container data type--containers.Map--is available.  Map is a
+    key/value storage container (a.k.a, a hash) that efficiently allows
+    storing and retrieving values by name, rather than by position which
+    is how arrays work.
+
+ ** The bareword "import" is now recognized in scripts and functions.
+    However, the functionality to import functions and classes from
+    other namespaces into the local scope has not yet been implemented.
+    Attempting to use "import" will provoke an error message.
+
+ ** hex2num and num2hex now work for integer and char types and num2hex
+    may optionally return a cell array of strings instead of a character
+    array.  If given a cell array of strings, hex2num now returns a
+    numeric array of the same size as the input cell array.  Previously,
+    hex2num would accept a cell array of strings of arbitrary dimension
+    but would always return a column vector.
+
+ ** New special functions cosint, sinint, and gammaincinv have been added.
+
+ ** Special functions in Octave have been rewritten for larger input
+    domains, better accuracy, and additional options.
+    * gammainc now accepts negative real values for X.
+    * improved accuracy for gammainc, betainc, betaincinv, expint.
+    * gammainc has new options "scaledlower" and "scaledupper".
+    * betainc, betaincinv have new option "upper".
+
+ ** The "names" option used in regular expressions now returns a struct
+    array, rather than a struct with a cell array for each field.  This
+    change was made for Matlab compatibility.
+
+ ** The quadcc function now uses both absolute tolerance and relative
+    tolerance to determine the stopping criteria for an integration.
+    To be compatible with other quadXXX functions, such as quadgk, the
+    calling syntax has changed to
+
+      quadcc (f, a, b, [AbsTol, [RelTol]])
+
+    To update existing code, change instances of RelTol to [0, RelTol].
+
+      quadcc (f, a, b, tol) => quadcc (f, a, b, [0, tol])
+
+    A warning that a single tolerance input is now interpreted as an
+    absolute tolerance will be issued in Octave versions 4.4 and 5,
+    after which it will be removed.  The warning has ID
+    "Octave:quadcc:RelTol-conversion" and can be disabled with
+
+      warning ("off", "Octave:quadcc:RelTol-conversion")
+
+ ** The qr function now returns a standard factorization unless
+    explicitly instructed to perform an economy factorization by using a
+    final argument of 0.
+
+ ** The Qt graphics toolkit now supports offscreen printing without osmesa
+    if Octave was built with Qt >= 5.1.
+
+ ** The built-in pager for display of large data is now disabled by
+    default.  To re-enable it for every Octave session add the following
+    to your .octaverc file:
+
+      more on;
+
+ ** The FLTK toolkit is no longer prioritized for development.  The
+    number of Octave Maintainers is too small to support three different
+    graphic toolkits.  New development will target the Qt toolkit.
+    While no longer prioritized, the FLTK toolkit is not deprecated and
+    there is no schedule for its removal.
+
+ ** The graphic object property "PickableParts" has been implemented
+    which controls whether an object can accept mouse clicks.
+
+ ** The graphic object property "Interruptible" has been fully
+    implemented which controls whether a running callback function can
+    be interrupted by another callback function.
+
+ ** The graphic object property "HitTest" has been updated to be fully
+    compatible with Matlab.
+
+ ** Text objects now implement the properties "BackgroundColor",
+    "EdgeColor", "LineStyle", "LineWidth", and "Margin".
+
+ ** An initial implementation of alpha transparency has been made for
+    patch and surface objects.  Printing to svg and pdf is supported.
+
+ ** ishandle now returns true for both graphics handle objects and
+    Java objects.  The latter change was made for Matlab compatibility.
+    Use ishghandle or isgraphics if it is important not to include Java
+    objects.
+
+ ** The pkg command now accepts a URL as an argument, allowing a valid
+    Octave package to be installed from any remote host with one command,
+    for example
+
+      pkg install https://example.org/download/example-package.tar.gz
+
+ ** The following statistical functions have been moved from core
+    Octave to the statistics package available from Octave Forge.
+
+    BASE
+      cloglog
+      logit
+      prctile
+      probit
+      qqplot
+      table  (renamed to crosstab)
+
+    DISTRIBUTIONS
+      betacdf
+      betainv
+      betapdf
+      betarnd
+      binocdf
+      binoinv
+      binopdf
+      binornd
+      cauchy_cdf
+      cauchy_inv
+      cauchy_pdf
+      cauchy_rnd
+      chi2cdf
+      chi2inv
+      chi2pdf
+      chi2rnd
+      expcdf
+      expinv
+      exppdf
+      exprnd
+      fcdf
+      finv
+      fpdf
+      frnd
+      gamcdf
+      gaminv
+      gampdf
+      gamrnd
+      geocdf
+      geoinv
+      geopdf
+      geornd
+      hygecdf
+      hygeinv
+      hygepdf
+      hygernd
+      kolmogorov_smirnov_cdf
+      laplace_cdf
+      laplace_inv
+      laplace_pdf
+      laplace_rnd
+      logistic_cdf
+      logistic_inv
+      logistic_pdf
+      logistic_rnd
+      logncdf
+      logninv
+      lognpdf
+      lognrnd
+      nbincdf
+      nbininv
+      nbinpdf
+      nbinrnd
+      normcdf
+      norminv
+      normpdf
+      normrnd
+      poisscdf
+      poissinv
+      poisspdf
+      poissrnd
+      stdnormal_cdf
+      stdnormal_inv
+      stdnormal_pdf
+      stdnormal_rnd
+      tcdf
+      tinv
+      tpdf
+      trnd
+      unidcdf
+      unidinv
+      unidpdf
+      unidrnd
+      unifcdf
+      unifinv
+      unifpdf
+      unifrnd
+      wblcdf
+      wblinv
+      wblpdf
+      wblrnd
+      wienrnd
+
+    MODELS
+      logistic_regression
+
+    TESTS
+      anova
+      bartlett_test
+      chisquare_test_homogeneity
+      chisquare_test_independence
+      cor_test
+      f_test_regression
+      hotelling_test
+      hotelling_test_2
+      kolmogorov_smirnov_test
+      kolmogorov_smirnov_test_2
+      kruskal_wallis_test
+      manova
+      mcnemar_test
+      prop_test_2
+      run_test
+      sign_test
+      t_test
+      t_test_2
+      t_test_regression
+      u_test
+      var_test
+      welch_test
+      wilcoxon_test
+      z_test
+      z_test_2
+
+ ** The following image functions have been moved from core Octave to
+    the image package available from Octave Forge.
+
+      ntsc2rgb
+      rgb2ntsc
+
+ ** Other new functions added in 4.4:
+
+      bounds
+      camlookat
+      camorbit
+      campos
+      camroll
+      camtarget
+      camup
+      camva
+      camzoom
+      corrcoef
+      cosint
+      decic
+      erase
+      gammaincinv
+      getframe
+      groot
+      gsvd
+      hgtransform
+      humps
+      integral
+      integral2
+      integral3
+      isgraphics
+      isstring
+      mad
+      ode15i
+      ode15s
+      openvar
+      quad2d
+      repelem
+      rgb2gray
+      rticks
+      sinint
+      tfqmr
+      thetaticks
+      vecnorm
+      winqueryreg
+      xticklabels
+      xticks
+      yticklabels
+      yticks
+      zticklabels
+      zticks
+
+ ** Deprecated functions.
+
+    The following functions have been deprecated in Octave 4.4 and will
+    be removed from Octave 6 (or whatever version is the second major
+    release after 4.4):
+
+      Function             | Replacement
+      ---------------------|------------------
+      chop                 | sprintf for visual results
+      desktop              | isguirunning
+      tmpnam               | tempname
+      toascii              | double
+      java2mat             | __java2mat__
+
+
+ ** The following functions were deprecated in Octave 4.0 and have been
+    removed from Octave 4.4.
+
+      allow_noninteger_range_as_index
+      bicubic
+      delaunay3
+      do_braindead_shortcircuit_evaluation
+      dump_prefs
+      find_dir_in_path
+      finite
+      fmod
+      fnmatch
+      gmap40
+      loadaudio
+      luinc
+      mouse_wheel_zoom
+      nfields
+      octave_tmp_file_name
+      playaudio
+      saveaudio
+      setaudio
+      syl
+      usage
+
+ ** The "Octave:undefined-return-values" warning ID is obsolete.  Octave
+    now throws an error for any attempts to assign undefined values that
+    might be returned from functions.
+
+ ** Deprecated graphics properties.
+
+    The following properties or allowed corresponding values have been
+    deprecated in Octave 4.4 and will be removed from Octave 6 (or whatever
+    version is the second major release after 4.4):
+
+      Object               | Property                | Value
+      ---------------------|-------------------------|-------------------
+      figure               | doublebuffer            |
+                           | mincolormap             |
+                           | wvisual                 |
+                           | wvisualmode             |
+                           | xdisplay                |
+                           | xvisual                 |
+                           | xvisualmode             |
+      axes                 | drawmode                |
+      annotation           | edgecolor ("rectangle") |
+      text                 | fontweight              | "demi" and "light"
+      uicontrol            | fontweight              | "demi" and "light"
+      uipanel              | fontweight              | "demi" and "light"
+      uibuttongroup        | fontweight              | "demi" and "light"
+
+ ** The rectangle and ellipse annotation property "edgecolor" has been
+    deprecated and will be removed from Octave 6 (or whatever version
+    is the second major release after 4.4).  Use the property "color"
+    instead.
+
+ ** The header file oct-alloc.h has been removed along with the macros
+    that it defined (DECLARE_OCTAVE_ALLOCATOR, DEFINE_OCTAVE_ALLOCATOR,
+    and DEFINE_OCTAVE_ALLOCATOR2).
+
diff -r fe5dcb23372a -r dedb85c54245 pages/NEWS-5.1.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/NEWS-5.1.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,323 @@ +--- +layout: page +title: GNU Octave Version 5 +menu: false +permalink: NEWS-5.1.html +--- + +## Summary of important user-visible changes + +February 23, 2019 + +{% include release_news_select.md %} + +{::options parse_block_html="true" /} +
+* TOC +{:toc} +
+{::options parse_block_html="false" /} + +### General improvements + +- The Octave plotting system now supports high resolution screens, + i.e., those with greater than 96 DPI which are referred to as + HiDPI/Retina monitors. + +- Unicode character support for files and folders in Windows. + +- A new core function `movfun` will apply a function to a sliding + window of arbitrary size on a dataset and accumulate the results. + Many common cases have been implemented using the naming + scheme `movXXX` where `XXX` is the function that will be applied. + For example, the moving average over a dataset is `movmean`. + New moving window functions: + + `movfun` `movslice` + `movmad` `movmax` `movmean` `movmedian` `movmin` `movprod` + `movstd` `movsum` `movvar` + +- The `fsolve` function has been tweaked to use larger step sizes when + calculating the Jacobian of a function with finite differences. + This leads to faster convergence. + +- The `ranks` function has been recoded for performance and is now 25X + faster. In addition, it now supports a third argument that specifies + how to resolve the ranking of tie values. + +- The function `randi` has been recoded to produce an unbiased (all + results are equally likely) sample of integers. This may produce + different results in existing code. If it is necessary to reproduce + the exact random integer sequence as in previous versions use + + `ri = imin + floor ((imax - imin + 1) * rand ());` + +- The function `isdefinite` now returns `true` or `false` rather than + `-1`, `0`, or `1`. To test for a positive semi-definite matrix (old + output of `0`) check whether the following two conditions hold: + + `isdefinite (A) => 0` and `isdefinite (A + 5*TOL, TOL) => 1` + +- The `intmax`, `intmin`, and `flintmax` functions now accept a variable + as input. Existing code to query the range of an existing variable can + be simplified by removing the call to `class` that was previously + required. For example defining the variable `x = int8 (3)` in the + workspace, calls like + + `range = [ intmin(class(x)), intmax(class(x)) ]` + + can in Octave 5 be simplified to `range = [ intmin(x), intmax(x) ]`. + +- The path handling functions no longer perform variable or brace + expansion on path elements and Octave's load-path is no longer + subject to these expansions. + +- A new printing device is available, `"-ddumb"`, which produces ASCII + art for plots. This device is only available with the gnuplot toolkit. + + +### Dependencies + +- The GUI requires Qt libraries. The minimum Qt4 version supported is + Qt4.8. Qt5 of any version is preferred. + +- The OSMesa library is no longer used. To print invisible figures + when using OpenGL graphics, the Qt `QOFFSCREENSURFACE` feature must be + available and you must use the qt graphics toolkit. + +- The FFTW library is now required to perform FFT calculations. + The FFTPACK sources have been removed from Octave. + + +### Matlab compatibility + +- The determination of an object's dimensions, size, and shape by the + functions `ndims`, `rows`, `columns`, `isscalar`, `isvector`, + `isrow`, `iscolumn`, `ismatrix`, and `issquare` now fully depends + on the function size. Thus, any user-defined object can ensure correct + treatment by the aforementioned functions by properly overloading the + `size` function. + +- The functions `issymmetric` and `ishermitian` accept an option + `"nonskew"` or `"skew"` to calculate the symmetric or skew-symmetric + property of a matrix. Performance has also been increased. + +- The `issorted` function now uses a direction option of `"ascend"` + or `"descend"`. Change all uses of `"ascending"` and `"descending"` + in existing code to the new options. + +- The `strncmp` and `strncmpi` functions now return `true` if the two + input strings match, even though the number of characters specified + by `n` exceeds the string length. For Example: + + `strncmp ("abc", "abc", 100)` + + returns `true` in Octave 5 and `false` in older versions of Octave. + +- The `str2func` function no longer accepts a second `"global"` argument. + This argument was typically used to allow functions that accept + function names as arguments to avoid conflicts with subfunctions or + nested functions. Instead, it's best to avoid this situation + entirely and require users to pass function handles rather than + function names. + +- Using `clear` with no arguments now removes only local variables + from the current workspace. Global variables will no longer be + visible, but they continue to exist in the global workspace and + possibly other workspaces such as the base workspace. + + +#### Nonlinear Equations + +Several default solver options have been changed to be Matlab compatible. +This *may* result in existing code producing different results. + +- `fsolve` + + Option | New Default | Old Default + ---------------|------------------|------------- + `FinDiffType` | `"forward"` | `"central"` + `MaxFunEvals` | `100*length(x0)` | `Inf` + `TolFun` | `1e-6` | `1e-7` + `TolX` | `1e-6` | `1e-7` + `Updating` | `"off"` | `"on"` + +- `fminsearch` + + Option | New Default | Old Default + ---------|-------------|------------ + `TolFun` | `1e-7` | `1e-4` + +- `fminbnd` + + Option | New Default | Old Default + ---------------|-------------|------------ + `MaxFunEvals` | `500` | `Inf` + `MaxIter` | `500` | `Inf` + `TolX` | `1e-4` | `1e-8` + +- `fminunc` + + Option | New Default | Old Default + ---------------|------------------|------------ + `FinDiffType` | `"forward"` | `"central"` + `MaxFunEvals` | `100*length(x0)` | `Inf` + `TolX` | `1e-6` | `1e-7` + `TolFun` | `1e-6` | `1e-7` + + +#### Graphic objects + +- Figure graphic objects have a new property `"Number"` which is + read-only and will return the handle (number) of the figure. + However, if the property `"IntegerHandle"` has been set to `"off"` + then the property will return an empty matrix `[]`. + +- Patch and surface graphic objects now use the `"FaceNormals"` property + for flat lighting. + +- `"FaceNormals"` and `"VertexNormals"` for patch and surface graphic + objects are now calculated only when necessary to improve graphics + performance. In order for any normals to be calculated the + `"FaceLighting"` property must be set to `"flat"` (FaceNormals) or + `"gouraud"` (VertexNormals), **and** a light object must be present + in the axes. + +- The `"Margin"` property of `text`-objects has a new default of `3` + rather than `2`. + +- Printing to raster formats (bitmaps like PNG or JPEG) now uses an + OpenGL-based method by default. The print options `"-opengl"` + (raster) and `"-painters"` (vector) have been added ("qt" toolkit + only). The figure property `"renderer"` specifies which renderer to + use. When the property `"renderermode"` is `"auto"` Octave will select + `"-opengl"` for a raster output format and `"-painters"` for a vector + output format. + +- A new print option `"-RGBImage"` has been added which captures the + pixels of a figure as an image. This is similar to screen capture + tools, except that print formatting options can be used to, for + example, change the resolution or display the image in black and + white. + +- Two new print options for page-based formats (PDF, PostScript) have + been added. The `"-fillpage"` option will stretch the plot to occupy + the entire page with 0.25 inch margins all around. The `"-bestfit"` + option will expand the plot to take up as much room as possible on + the page without distorting the original aspect ratio of the plot. + +- Printing using the `"-dtiff"` output device will now create compressed + images using LZW compression. To produce uncompressed images use the + `"-dtiffn"` device. + + +### Legacy functions + +The following functions have been declared legacy functions which +means they are obsolete and should not be used in any new code. +Unlike deprecated functions, however, their removal from Octave has +not yet been scheduled. + + Function | Replacement + -----------------------|------------------ + `findstr` | `strfind` + `flipdim` | `flip` + `isdir` | `isfolder` or `dir_in_loadpath` + `isequalwithequalnans` | `isequaln` + `isstr` | `ischar` + `setstr` | `char` + `strmatch` | `strncmp` or `strcmp` + `strread` | `textscan` + `textread` | `textscan` + + +### Deprecated functions and properties + +The following functions and graphics properties have been deprecated +in Octave 5 and will be removed from Octave 7 (or whatever version +is the second major release after 5): + +- Functions + + Function | Replacement + -------------------------|------------------- + `output_max_field_width` | `output_precision` + `is_keyword` | `iskeyword` + +- Graphics properties + + Object | Property | Value + -----------------|---------------|------------ + `text` | `fontangle` | `"oblique"` + `uibuttongroup` | `fontangle` | `"oblique"` + `uicontrol` | `fontangle` | `"oblique"` + `uipanel` | `fontangle` | `"oblique"` + `uitable` | `fontangle` | `"oblique"` + +- Specifying `legend` position with a numeric argument is deprecated. + Use a string argument instead. + +- The environment variable used by `mkoctfile` for linker flags is now + `LDFLAGS` rather than `LFLAGS`. `LFLAGS` is deprecated, and a warning + is emitted if is used, but it will continue to work. + + +### Removed functions and properties + +The following functions and properties were deprecated in Octave 4.2 +and have been removed from Octave 5. + +- Functions + + Function | Replacement + -----------------------|------------------ + `bitmax` | `flintmax` + `mahalanobis` | `mahal` in Octave Forge statistics pkg + `md5sum` | `hash` + `octave_config_info` | `__octave_config_info__` + `onenormest` | `normest1` + `sleep` | `pause` + `usleep` | `pause` + `wavread` | `audioread` + `wavwrite` | `audiowrite` + +- Properties + + Object | Property | Value + ------------|-------------------|--------- + `axes` | `xaxislocation` | `"zero"` + | `yaxislocation` | `"zero"` + `hggroup` | `erasemode` | + `image` | `erasemode` | + `line` | `erasemode` | + `patch` | `erasemode` | + `patch` | `normalmode` | + `surface` | `erasemode` | + `surface` | `normalmode` | + `text` | `erasemode` | + + +### Alphabetical list of new functions added in 5 + +- `clearvars` +- `isfile` +- `isfolder` +- `matlab.lang.makeUniqueStrings` +- `matlab.lang.makeValidName` +- `movegui` +- `movfun` +- `movie` +- `movmad` +- `movmax` +- `movmean` +- `movmedian` +- `movmin` +- `movprod` +- `movslice` +- `movstd` +- `movsum` +- `movvar` +- `openfig` +- `ordeig` +- `savefig` +- `uitable` diff -r fe5dcb23372a -r dedb85c54245 pages/about.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/about.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,96 @@ +--- +layout: page +title: About +menu: true +permalink: about +--- + +GNU Octave is a high-level language, primarily intended for numerical +computations. +It provides a convenient command line interface for solving linear and +nonlinear problems numerically, +and for performing other numerical experiments using a language that is mostly +compatible with Matlab. +It may also be used as a batch-oriented language. + +Octave has extensive tools for solving common numerical linear algebra problems, +finding the roots of nonlinear equations, +integrating ordinary functions, +manipulating polynomials, +and integrating ordinary differential and differential-algebraic equations. +It is easily extensible and customizable via user-defined functions written in +Octave's own language, +or using dynamically loaded modules written in C++, C, Fortran, +or other languages. + +GNU Octave is also freely redistributable software. +You may redistribute it and/or modify it under the terms of the +[GNU General Public License (GPL)][GPL] as published by the +[Free Software Foundation](https://www.fsf.org/). + +Octave was written by [John W. Eaton](mailto:jwe@octave.org) and +[many others](https://hg.savannah.gnu.org/hgweb/octave/file/tip/doc/interpreter/contributors.in). +Because Octave is [free software](https://www.gnu.org/philosophy/free-sw.html) you are encouraged to help make Octave +more useful by writing and contributing additional functions for it, +and by reporting any problems you may have. + + +## History + +Octave was originally conceived (in about 1988) to be companion software for an +undergraduate-level textbook on chemical reactor design being written by James +B. Rawlings of the University of Wisconsin-Madison and John G. Ekerdt of the +University of Texas. +We originally envisioned some very specialized tools for the solution of +chemical reactor design problems. +Later, +after seeing the limitations of that approach, +we opted to attempt to build a much more flexible tool. + +There were still some people who said that we should just be using Fortran +instead, +because it is the computer language of engineering, +but every time we had tried that, +the students spent far too much time trying to figure out why their Fortran +code failed and not enough time learning about chemical engineering. +We believed that with an interactive environment like Octave, +most students would be able to pick up the basics quickly, +and begin using it confidently in just a few hours. + +Full-time development began in the Spring of 1992. +The first alpha release was January 4, 1993, and version 1.0 was released +February 17, 1994. +Since then, Octave has been through several major revisions, +is included with [Debian GNU/Linux](https://www.debian.org/), +[openSUSE](https://www.opensuse.org/), +and many other GNU/Linux distributions. +Octave was reviewed in the in the July, 1997 issue of the +[Linux Journal](http://www.linuxjournal.com/article/1225). + +Clearly, +Octave is now much more than just another courseware package with limited +utility beyond the classroom. +Although our initial goals were somewhat vague, +we knew that we wanted to create something that would enable students to solve +realistic problems, +and that they could use for many things other than chemical reactor design +problems. +Today, thousands of people worldwide are using Octave in teaching, +research, and commercial applications. + +Just about everyone thinks that the name Octave has something to do with music, +but it is actually the name of one of the author's former professor +[Octave Levenspiel](https://en.wikipedia.org/wiki/Octave_Levenspiel) +who wrote a famous textbook on chemical reaction engineering, +and who was also well known for his ability to do quick "back of the envelope" +calculations. +We hope that this software will make it possible for many people to do more +ambitious computations just as easily. + +Everyone is encouraged to share this software with others under the terms of +the [GNU General Public License (GPL)][GPL]. +You are also encouraged to help make Octave more useful by writing and +contributing additional functions for it, +and by reporting any problems you may have. + +[GPL]: https://www.gnu.org/copyleft/gpl.html diff -r fe5dcb23372a -r dedb85c54245 pages/bugs.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/bugs.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,76 @@ +--- +layout: page +title: Bugs +menu: true +permalink: bugs +--- + +GNU Octave uses the bug tracker at [Savannah]({{ site.bugs_url }}). +There you can [report a new bug]({{ site.bugs_url }}&func=additem), +[browse recent bugs]({{ site.bugs_url }}), +or [search for bugs]({{ site.bugs_url }}&func=search). + +### Guidelines for reporting a new bug + +1. **Is the bug already known?** + + - [Search for already reported bugs at the bug tracker]({{ site.bugs_url }}&func=search), + - look at the + [list of known causes of trouble]({{ site.docs_url }}/Trouble.html) + in the Octave manual. + +

+ + If you your problem **does not appear** to be known, + then you should report the problem. + +2. **Is it really a bug?** + + - If Octave **crashes**, for any input whatever, that is a bug. + Reliable interpreters never crash. + - If Octave produces **incorrect results**, for any input whatever, + that is a bug. + - If Octave produces an **error message** for **valid input**, that is a bug. + - If Octave produces **no error message** for **invalid input**, + that is a bug. + +

+ +3. **Missing function in Octave** + + - If the function is + [part of some Octave Forge package]({{ site.sourceforge_url }}/functions_by_alpha.php), + this is **not** a bug. + - If the function **exists in Matlab**, + but **not in core Octave** and **not in Octave Forge packages**, + that is a bug. + +

+ + It might take several months or years until for new features to become part + of Octave, consider + [commercial support]({{ "commercial-support.html" | relative_url }}) + if you don't want to wait that long). + +4. **Make your bug report count** + + - **Report all the facts:**
+ Include all information that make it possible to fix the bug. + If you are not sure whether to state a fact or leave it out, state it. + This information includes your **operating system**, **Octave version**, + **exact error message** or **exact output**. + - **Give a short, specific, complete example:**
+ Avoid: pseudocode, uninitialized variables, + calls to unattached scripts or functions. + - **Justify your exectations briefly:**
+ Although it might seem obvious to you, + someone examining the problem might not know what result you consider + correct. + + +### Sending Patches for Octave + +If you have a suggested fix for a bug, +please attach it to your report in the tracker. +Your patch is more likely to be reviewed if you follow the guidelines from the +Octave Wiki about the [creation of changesets]({{ site.wiki_url }}/Mercurial). diff -r fe5dcb23372a -r dedb85c54245 pages/commercial-support.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/commercial-support.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,54 @@ +--- +layout: page +title: Commercial Support +menu: false +permalink: commercial-support +--- + +The following organizations and individuals provide paid consulting services +for Octave. If you have questions about them, please visit their web sites +or contact them individually. This list is provided as a service to the +community and the support providers. The Octave project does not provide +endorsements or recommendations. + +If you would like to have your company listed here, +please contact us at [Octave Discourse]({{ site.discourse_url }}) +in the "maintainers" category. + +- [**John W. Eaton Consulting, Inc.**][2] provides software consulting and + support services, primarily for GNU Octave, a free software system for + numerical analysis. Services include help with installing and using the + software, as well as prompt responses to problem reports. + + As the original author and current maintainer of GNU Octave, Dr. Eaton is + uniquely qualified to deliver the most comprehensive solutions for your + Octave needs. + +- [**MOXOFF**][3] provides custom programming and custom numerical modeling + solutions based on free software tools and in particular on GNU Octave. + + MOXOFF applies mathematics and statistical analysis to complex, multiphysics + problems. Our approach covers a broad spectrum of fields: we run applied + research and develop innovative mathematical solutions for engineering, + life science and social science problems. Our skills can be applied to a + wide range of subjects: bio-technologies, aerospace design, domestic + appliances, conventional and renewable power generation, electronics, + financial instruments, analysis and simulation of geological processes, + biomedical equipment to cite just a few of our more recent projects. + We deliver business-class solutions based on GNU Octave and we also provide + evolutive maintenance. We design GNU Octave based interfaces to free + software tools for scientific computing. + +- [**CoCalc**][4] is an online service that provides GNU Octave via Linux + Terminals, Jupyter Notebooks and X11 desktops, with full support for realtime + collaboration. Moreover, CoCalc features a course management system that is + tailored for teaching courses online. + + The company Sagemath, Inc. develops and operates CoCalc. You can start + working with the [online service][5] for free and upgrade later for a better + experience. You can also run your own CoCalc on-premises. + +[2]: https://jweaton.org +[3]: https://www.moxoff.com/moxoff-partner-di-octave/ +[4]: https://cocalc.com/doc/octave.html +[5]: https://cocalc.com diff -r fe5dcb23372a -r dedb85c54245 pages/community-news.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/community-news.html Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,40 @@ +--- +layout: null +permalink: community-news +--- + + + + + + + +Octave Community News + + + +{% for post in site.categories.release limit:3 %} + +

{{ post.title }}

+ +{{ post.excerpt }} + +— The Octave Developers, {{ post.date | date: "%b %-d, %Y" }} + +{% endfor %} + + + diff -r fe5dcb23372a -r dedb85c54245 pages/donate.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/donate.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,30 @@ +--- +layout: page +title: Donate +menu: true +permalink: donate +--- + +> **Octave development takes a lot of time and expertise.** +> **Your contributions help to ensure that Octave will continue to improve.** + +- [FSF Donation Page](https://crm.fsf.org/civicrm/contribute/transact?reset=1&id=10) +- [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=UYHVW7R596RZ8) + to John W. Eaton Consulting, Inc. (Octave project leader) +- [Bitcoin](bitcoin:1E6HchBMX1EfiJQhSUanuF4VYKk552tEHF) + (1E6HchBMX1EfiJQhSUanuF4VYKk552tEHF) +- [Commercial support options]({{ "commercial-support.html" | relative_url }}) + to implement the specific features + +If you are already an Octave user and would like to see it improve more rapidly, +then please donate so that we can spend more of our time working on Octave. +If we could raise as little as $300,000/year, +we could pay several key developers to work full time on Octave. +Given even the most conservative estimate of the number of users of Octave, +this amount could easily be reached if every user contributed the cost of +a few lattes. + +If your company has a budget for numerical computing tools, +consider spending 10% (or more!) of that on Octave. +Do you expect Octave to improve on a $0 budget +while the proprietary tools are well-funded by your license fees? diff -r fe5dcb23372a -r dedb85c54245 pages/download.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/download.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,131 @@ +--- +layout: page +title: Download +menu: true +permalink: download +--- + + + + +

 

+ +### Source {#source2} + +The latest released version of Octave is always available from + +- https://ftp.gnu.org/gnu/octave +- ftp://ftp.gnu.org/gnu/octave + +Please download from +[https://ftpmirror.gnu.org/octave](https://ftpmirror.gnu.org/octave), +which will redirect automatically to a nearby +[mirror site](https://www.gnu.org/order/ftp.html). + + +

 

+ +### GNU/Linux {#linux2} + +Packaged versions of Octave for GNU/Linux systems are provided by the +individual distributions described in the +[Octave wiki]({{ site.wiki_url }}/Category:Installation). +These packages are created by volunteers. +The delay between an Octave source release and the availability of a package +for a particular GNU/Linux distribution varies. + +Alternatively, +there are some distribution independent installation methods for more recent +versions of GNU Octave described in the +[Octave wiki]({{ site.wiki_url }}/Octave_for_GNU/Linux#Distribution_independent). + + +

 

+ +### macOS {#macos2} + +The [Octave Wiki]({{ site.wiki_url }}/Octave_for_macOS) has instructions for +installing Octave on macOS systems. +Octave is also available in third-party package managers such as +[Homebrew](https://brew.sh/) and [MacPorts](https://www.macports.org). + + +

 

+ +### BSD {#bsd2} + +Executable versions of Octave for BSD systems are provided by the individual +distributions. +Both [FreeBSD](https://www.freebsd.org/) and [OpenBSD](https://www.openbsd.org/) +have Octave packages. +These packages are created by volunteers and the Octave project has no control +over that process. + + +

 

+ +### Microsoft Windows {#ms-windows2} + +
+Note: All installers below bundle several Octave Forge packages +so they don't have to be installed separately. +After installation type pkg list to list them. +Read more. + + + +
+ +- Windows-64 (recommended) + - [octave-5.2.0_1-w64-installer.exe](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-installer.exe) + (~ 300 MB) + [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-installer.exe.sig) + - [octave-5.2.0_1-w64.7z](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64.7z) + (~ 300 MB) + [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64.7z.sig) + - [octave-5.2.0_1-w64.zip](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64.zip) + (~ 530 MB) + [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64.zip.sig) + +

+ +- Windows-32 (old computers) + - [octave-5.2.0_1-w32-installer.exe](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32-installer.exe) + (~ 275 MB) + [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32-installer.exe.sig) + - [octave-5.2.0_1-w32.7z](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32.7z) + (~ 258 MB) + [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32.7z.sig) + - [octave-5.2.0_1-w32.zip](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32.zip) + (~ 447 MB) + [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w32.zip.sig) + +

+ +- Windows-64 (64-bit linear algebra for large data) +
+ Unless your computer has more than ~32GB of memory + and you need to solve linear algebra problems + with arrays containing more than ~2 billion elements, this + version will offer no advantage over the recommended Windows-64 + version above. + + + - [octave-5.2.0_1-w64-64-installer.exe](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64-installer.exe) + (~ 286 MB) + [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64-installer.exe.sig) + - [octave-5.2.0_1-w64-64.7z](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64.7z) + (~ 279 MB) + [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64.7z.sig) + - [octave-5.2.0_1-w64-64.zip](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64.zip) + (~ 490 MB) + [[signature]](https://ftpmirror.gnu.org/octave/windows/octave-5.2.0_1-w64-64.zip.sig) + +All Windows binaries with corresponding source code can be downloaded from +[https://ftpmirror.gnu.org/octave/windows/](https://ftpmirror.gnu.org/octave/windows/). diff -r fe5dcb23372a -r dedb85c54245 pages/get-involved.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/get-involved.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,45 @@ +--- +layout: page +title: Get Involved +menu: true +permalink: get-involved +--- + +We always need more help improving Octave +and there are many ways you can contribute. +You can help by fixing bugs, +developing new features, +writing [Octave Forge packages]({{ site.sourceforge_url }}), +answering questions in Discourse, +helping to improve the web pages. +If you are wondering what to work on, +we have a standard answer: +**What would you like to work on?** + +For some inspiration, +we do maintain a [list of possible projects]({{ site.wiki_url }}/Projects) +and a [Developer FAQ]({{ site.wiki_url }}/Developer_FAQ) on the Octave Wiki. + +If know what to contribute, +discuss your ideas with us on [Discourse]({{ site.discourse_url }}) +("maintainers" category) or on our IRC +[Freenode `{{ site.irc_channel }}` channel](https://webchat.freenode.net/#octave). + + +### Using the Development Sources + +The latest development sources of GNU Octave are available via +[Mercurial](https://www.mercurial-scm.org/) (hg). +The primary repository address is +[https://www.octave.org/hg/octave](https://www.octave.org/hg/octave), +which currently redirects to +[https://hg.savannah.gnu.org/hgweb/octave](https://hg.savannah.gnu.org/hgweb/octave). +You obtain the latest development version of Octave sources with the following +command: + +{% highlight text %} +hg clone https://www.octave.org/hg/octave +{% endhighlight %} + +The [Developer FAQ]({{ site.wiki_url }}/Developer_FAQ) on the Octave Wiki +contains more detailed and recent information about Octave development. diff -r fe5dcb23372a -r dedb85c54245 pages/index.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/index.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,158 @@ +--- +layout: default +permalink: index +--- + +
+
+ Need help? Try out our new user and developer forum + Octave Discourse. +
+ +
+ +
+
+ + Example mesh + +
+
+ +

Scientific Programming Language

+
    +
  • Powerful mathematics-oriented syntax with built-in 2D/3D plotting and visualization tools
  • +
  • Free software, runs on GNU/Linux, macOS, BSD, and Microsoft Windows
  • +
  • Drop-in compatible with many Matlab scripts
  • +
+ +
+
+ +### Syntax Examples + +The Octave syntax is largely compatible with Matlab. +The Octave interpreter can be run in +GUI mode, as a console, +or invoked as part of a shell script. +More Octave examples can be found in +[the Octave wiki]({{ site.wiki_url }}/Using_Octave). + +
+
+

+ Solve systems of equations with linear algebra operations on + vectors and matrices. +

+
+
+{%- include code1.html -%} + +
+
+ +
+
+

+ Visualize data with high-level plot commands + in 2D and 3D. +

+
+
+{%- include code2.html -%} + + Click here to see the plot output +
+
+ + +### Octave Forge + +[Octave Forge]({{ site.sourceforge_url }}) is a collection of high quality +packages for GNU Octave, similar to Matlab's toolboxes. +To install a package, use the `pkg` command from the Octave prompt by typing: + +{% highlight text %} +pkg install -forge package_name +pkg load package_name +{% endhighlight %} + +Browse Packages + + +### Development + +Octave is free software licensed under the +[GNU General Public License (GPL)]({{ "license.html" | relative_url }}). +Assuming you have Mercurial installed on your machine you may obtain the latest +development version of Octave sources with the following command: + +{% highlight text %} +hg clone https://www.octave.org/hg/octave +{% endhighlight %} + +[Get involved]({{ "/get-involved.html" | relative_url }}) in Octave development. + + +{% assign latest_post = site.posts.first %} +{% if latest_post %} +
+ + RSS + +

+ {{ latest_post.title }} +

+ +
{{ latest_post.excerpt }}
+
+{% endif %} + +
+ Example mesh + +
+ +
+ Example plot + +
+ +
+ GNU Octave GUI screenshot + +
diff -r fe5dcb23372a -r dedb85c54245 pages/license.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/license.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,35 @@ +--- +layout: page +title: License +menu: false +permalink: license +--- + +The source code for Octave is freely redistributable under the +terms of the [GNU General Public License (GPL)][1] as published by +the [Free Software Foundation][2]. + +Simply put, the GPL says that anyone who redistributes the +software, with or without changes, must pass along the freedom to +further copy and change it. By distributing the complete source +code for GNU Octave under the terms of the GPL, we guarantee that +you and all other users will have the freedom to redistribute and +change Octave. + +Releasing the source code for Octave has another benefit as well. +By having access to all of the source code for a mathematical +system like Octave, you have the ability to see *exactly* +how each and every computation is performed. There are no black +boxes that hide the details of any calculation. + +Although enhancements to Octave that are written as function files +in Octave's scripting language are not required to be +redistributed under the terms of the GPL, we encourage you to +release your enhancements to Octave under the same terms for the +benefit of all users. We also encourage you to +[get involved with the Octave project][3] and submit your changes +for inclusion in future versions of Octave. + +[1]: https://www.gnu.org/copyleft/gpl.html +[2]: https://www.fsf.org/ +[3]: {{ "get-involved.html" | relative_url }} diff -r fe5dcb23372a -r dedb85c54245 pages/missing.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/missing.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,22 @@ +--- +layout: page +title: Missing function +menu: false +permalink: missing +--- + +If you are reading this page, +it is most likely because you attempted to use a function +that is part of Matlab, +but has yet to be implemented in Octave. +GNU Octave strives to be among the very best numerical tools available. +While compatibility with Matlab is one of many strong features of Octave, +we have not achieved 100% compatibility. + +This is what you can do now: + +- Check if the function is + [part of some Octave Forge package]({{ site.sourceforge_url }}/functions_by_alpha.php) +- [Report a bug]({{ "bugs.html" | relative_url }}) +- [Implement the feature yourself]({{ "get-involved.html" | relative_url }}) +- [Get commercial support]({{ "commercial-support.html" | relative_url }}) diff -r fe5dcb23372a -r dedb85c54245 pages/news.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/news.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,29 @@ +--- +layout: page +title: News +menu: true +permalink: news +--- + +{% for post in site.posts %} +
+ {% if post == site.posts.first %} + + RSS + + {% endif %} + {% if post.title == "News Archive" %} +

+ {{ post.title }} +

+ {% else %} +

+ {{ post.title }} +

+ +
+ {{ post.excerpt }} +
+ {% endif %} +
+{% endfor %} diff -r fe5dcb23372a -r dedb85c54245 pages/support-expectations.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/support-expectations.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,112 @@ +--- +layout: page +title: Support Expectations +menu: false +permalink: support-expectations +--- + +Octave is a capable free software system for numerical computing developed +primarily by a community of **volunteers**. +As good as Octave is, +there are certainly some flaws and a lot of room for improvement. +Most people who use Octave understand these things +and know that if they work together with the community bugs will be fixed, +features will be added, +and Octave will improve over time. +Working with people who have this kind of attitude is fun and rewarding. + +Unfortunately, +there are a few people who behave as though the community owes them support as +well as a 100% Matlab compatible system, +all at zero cost. +**Working with these people is no fun.** +If you approach the Octave community this way, +you are sure to be disappointed. +You should also not be surprised when your requests for help are ignored. + + +### Development Group + +People sometimes think that Octave is developed by some large team of well-paid +programmers. +Nothing could be further from the truth. +Most of the initial development of Octave was done by one person over several +years. +Since then, +there have been at most a half-dozen or so volunteers working on Octave +at any one time. +You can see who has done most of the work by looking through the +[development history](https://hg.savannah.gnu.org/hgweb/octave) +(prior to February 2008 it is best to look in the old `ChangeLog` files). +Currently, +none of the Octave developers are paid to work on Octave directly. + +If you would like to see Octave moving forward more quickly, +then contribute to its development, +either by working on the project yourself, +or by [donating funds]({{ "donation.html" | relative_url }}). +With sufficient funding, +the Octave project would be able to pay a few developers to work on it full +time. + + +### Help + +When asking for help on Discourse or IRC channel, +or reporting a bug, +remember that the people helping you are Octave users just like you +who are volunteering their time. +They are not paid support staff. +Use meaningful subject lines. +Try to ask clear questions. +Be precise about the problems you are having. + + +### Bugs + +No software is perfect, +and Octave is no exception. +You can search the list of bug reports to see what problems have been reported. +In looking at the list, +you might also noticed the number of problems that have been *fixed*. +Nearly all of these problems have been fixed by volunteers. +If you find a problem, +you are encouraged to [report it]({{ "bugs.html" | relative_url }}). +Your report can help to improve Octave, +but you should not think of the bug tracker as your personal support line. + +If you depend on Octave and absolutely must have prompt responses to problem +reports, +you should consider paying for +[commercial support]({{ "commercial-support.html" | relative_url }}). + + +### Features + +When we say that Octave is "mostly compatible" with Matlab, +we mean that the language that it accepts is similar enough that a substantial +amount of code written for Matlab can also run in Octave without needing to be +changed. +But Octave does not have all the features of Matlab, +and it is unlikely that it ever will. +Given that Matlab is developed in secret and Octave developers only find out +about new Matlab features when new versions of Matlab are released, +it is clearly impossible for Octave to have new Matlab features as soon as they +are available in Matlab. + +In most cases, +Octave has the features that it does because someone decided to add them +because they needed them. +If you have the programming skills perhaps you can add the features you need. +If you not, +then consider paying for someone to implement the feature for you. +Most people who provide +[commercial support]({{ "commercial-support.html" | relative_url }}) +services for Octave will also take on custom programming projects. + +Even if you don't have the expertise required to implement new features or +can't pay for someone to do the work for you, +you may submit feature requests to the bug tracker. +But you should understand that unless you are paying for someone to to add the +feature, +no one is obligated to do it for you. diff -r fe5dcb23372a -r dedb85c54245 pages/support.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/support.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,48 @@ +--- +layout: page +title: Support/Help +menu: true +permalink: support +--- + +#### Contact the **user community** + +
+The Octave user community is a loosely organized association of **volunteers**. +Your interactions with the community will be better if you have the +[right expectations about the support options]({{ "support-expectations.html" | relative_url }}) +available to you. +
+ +
+- [**Discourse**]({{ site.discourse_url }}) — + the main chat portal for Octave users and developers. +- **IRC**: Chat with users and developers on the + [Freenode `{{ site.irc_channel }}` channel](https://webchat.freenode.net/#octave). +- Browse the + [**mailing list archives**](https://lists.gnu.org/archive/html/help-octave/). +
+ + +#### Get [**commercial support**]({{ "commercial-support.html" | relative_url }}) + +
+- Setup assistance +- Custom feature implementation +
+ + +#### Read the **GNU Octave Manual** + +
+- [Web version]({{ site.docs_url }}) +- [PDF version]({{ "octave.pdf" | relative_url }}) +- Type `doc` inside Octave +
+ + +#### Browse the [Octave Wiki]({{ site.wiki_url }}) + +
+- Read [Frequently Asked Questions (FAQ)]({{ site.faq_url }}) +
diff -r fe5dcb23372a -r dedb85c54245 support-expectations.md --- a/support-expectations.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ ---- -layout: page -title: Support Expectations -menu: false ---- - -Octave is a capable free software system for numerical computing developed -primarily by a community of **volunteers**. -As good as Octave is, -there are certainly some flaws and a lot of room for improvement. -Most people who use Octave understand these things -and know that if they work together with the community bugs will be fixed, -features will be added, -and Octave will improve over time. -Working with people who have this kind of attitude is fun and rewarding. - -Unfortunately, -there are a few people who behave as though the community owes them support as -well as a 100% Matlab compatible system, -all at zero cost. -**Working with these people is no fun.** -If you approach the Octave community this way, -you are sure to be disappointed. -You should also not be surprised when your requests for help are ignored. - - -### Development Group - -People sometimes think that Octave is developed by some large team of well-paid -programmers. -Nothing could be further from the truth. -Most of the initial development of Octave was done by one person over several -years. -Since then, -there have been at most a half-dozen or so volunteers working on Octave -at any one time. -You can see who has done most of the work by looking through the -[development history](https://hg.savannah.gnu.org/hgweb/octave) -(prior to February 2008 it is best to look in the old `ChangeLog` files). -Currently, -none of the Octave developers are paid to work on Octave directly. - -If you would like to see Octave moving forward more quickly, -then contribute to its development, -either by working on the project yourself, -or by [donating funds]({{ "donation.html" | relative_url }}). -With sufficient funding, -the Octave project would be able to pay a few developers to work on it full -time. - - -### Help - -When asking for help on Discourse or IRC channel, -or reporting a bug, -remember that the people helping you are Octave users just like you -who are volunteering their time. -They are not paid support staff. -Use meaningful subject lines. -Try to ask clear questions. -Be precise about the problems you are having. - - -### Bugs - -No software is perfect, -and Octave is no exception. -You can search the list of bug reports to see what problems have been reported. -In looking at the list, -you might also noticed the number of problems that have been *fixed*. -Nearly all of these problems have been fixed by volunteers. -If you find a problem, -you are encouraged to [report it]({{ "bugs.html" | relative_url }}). -Your report can help to improve Octave, -but you should not think of the bug tracker as your personal support line. - -If you depend on Octave and absolutely must have prompt responses to problem -reports, -you should consider paying for -[commercial support]({{ "commercial-support.html" | relative_url }}). - - -### Features - -When we say that Octave is "mostly compatible" with Matlab, -we mean that the language that it accepts is similar enough that a substantial -amount of code written for Matlab can also run in Octave without needing to be -changed. -But Octave does not have all the features of Matlab, -and it is unlikely that it ever will. -Given that Matlab is developed in secret and Octave developers only find out -about new Matlab features when new versions of Matlab are released, -it is clearly impossible for Octave to have new Matlab features as soon as they -are available in Matlab. - -In most cases, -Octave has the features that it does because someone decided to add them -because they needed them. -If you have the programming skills perhaps you can add the features you need. -If you not, -then consider paying for someone to implement the feature for you. -Most people who provide -[commercial support]({{ "commercial-support.html" | relative_url }}) -services for Octave will also take on custom programming projects. - -Even if you don't have the expertise required to implement new features or -can't pay for someone to do the work for you, -you may submit feature requests to the bug tracker. -But you should understand that unless you are paying for someone to to add the -feature, -no one is obligated to do it for you. diff -r fe5dcb23372a -r dedb85c54245 support.md --- a/support.md Mon Jul 20 16:14:52 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ ---- -layout: page -title: Support/Help -menu: true ---- - -#### Contact the **user community** - -
-The Octave user community is a loosely organized association of **volunteers**. -Your interactions with the community will be better if you have the -[right expectations about the support options]({{ "support-expectations.html" | relative_url }}) -available to you. -
- -
-- [**Discourse**]({{ site.discourse_url }}) — - the main chat portal for Octave users and developers. -- **IRC**: Chat with users and developers on the - [Freenode `{{ site.irc_channel }}` channel](https://webchat.freenode.net/#octave). -- Browse the - [**mailing list archives**](https://lists.gnu.org/archive/html/help-octave/). -
- - -#### Get [**commercial support**]({{ "commercial-support.html" | relative_url }}) - -
-- Setup assistance -- Custom feature implementation -
- - -#### Read the **GNU Octave Manual** - -
-- [Web version]({{ site.docs_url }}) -- [PDF version]({{ "octave.pdf" | relative_url }}) -- Type `doc` inside Octave -
- - -#### Browse the [Octave Wiki]({{ site.wiki_url }}) - -
-- Read [Frequently Asked Questions (FAQ)]({{ site.faq_url }}) -