https://wiki.octave.org/wiki/api.php?action=feedcontributions&user=JordiGH&feedformat=atomOctave - User contributions [en]2021-05-10T19:57:07ZUser contributionsMediaWiki 1.35.2https://wiki.octave.org/wiki/index.php?title=User:JordiGH&diff=13607User:JordiGH2021-01-29T21:56:39Z<p>JordiGH: </p>
<hr />
<div>I'm Jordi Gutiérrez Hermoso. You may contact me at [mailto:jordigh@octave.org jordigh@octave.org]. [http://jordi.inversethought.com My personal website and blog] are elsewhere.<br />
<br />
Testing math:<br />
<math><br />
\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}<br />
</math><br />
<br />
Hello!</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=User:JordiGH&diff=13606User:JordiGH2021-01-29T21:56:22Z<p>JordiGH: </p>
<hr />
<div>I'm Jordi Gutiérrez Hermoso. You may contact me at [mailto:jordigh@octave.org jordigh@octave.org]. [http://jordi.inversethought.com My personal website and blog] are elsewhere.<br />
<br />
Testing math:<br />
<math><br />
\frac{-b \pm \sqrt{b^2 - 4ac}}{2c}<br />
</math><br />
<br />
Hello!</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2017&diff=9911OctConf 20172017-03-01T03:57:11Z<p>JordiGH: /* Participants */</p>
<hr />
<div>We are happy to announce the upcoming Octave Conference 2017 to be held at [http://home.cern CERN], near Geneva, Switzerland, from March 20th until March 22nd. The Local Organising Committee is happy and proud that CERN will host this event for at least two reasons: Octave [2] is a fundamental tool of analysis and research for hundreds of CERN scientists; Octave and CERN share and promote the same values of openness, cooperation, diversity, quality and commitment.<br />
<br />
The three-day event will be an opportunity for sharing experiences, planning the future of Octave and promoting its use among the scientific community and beyond. There will two open sessions on Monday and Tuesday showcasing Octave and some interesting and successful Octave stories.<br />
To register officially, please use the CERN conference manager [https://indico.cern.ch/event/609833/ Indico].<br />
In addition, *please* add your name to the Participants section of this page so we can plan appropriately.<br />
<br />
We are working out the details of the programme, and the call for contributions and abstract is still open. You are all invited to submit an abstract and present your experience with Octave at the conference!<br />
<br />
We are hopeful that the key members of the Octave development team will make it, both from oversea and from Europe. You can find more updated information on the programme in the [https://indico.cern.ch/event/609833 CERN's OctConf webpage] and in here.<br />
<br />
== Dates ==<br />
<br />
The conference will run for three days from Monday, March 20th through Wednesday, March 22nd.<br />
<br />
<br />
== Location ==<br />
<br />
=== Geneva, Switzerland ===<br />
=== Venue ===<br />
The upcoming Octconf 2017 will take place at [http://home.cern/ CERN] (European Center for Nuclear Research)<br />
<br />
At CERN, the European Organization for Nuclear Research, physicists and engineers are probing the fundamental structure of the universe. They use the world's largest and most complex scientific instruments to study the basic constituents of matter – the fundamental particles. The particles are made to collide together at close to the speed of light. The process gives the physicists clues about how the particles interact, and provides insights into the fundamental laws of nature.<br />
The instruments used at CERN are purpose-built particle accelerators and detectors. Accelerators boost beams of particles to high energies before the beams are made to collide with each other or with stationary targets. Detectors observe and record the results of these collisions.<br />
<br />
Founded in 1954, the CERN laboratory sits astride the Franco-Swiss border near Geneva. It was one of Europe's first joint ventures and now has 22 member states.<br />
<br />
=== Social activities ===<br />
<br />
Two social events have been foreseen, besides the coffee and the lunch breaks:<br />
* A unique visit to [http://visit.cern/tours CERN]<br />
* A [https://en.wikipedia.org/wiki/Fondue Fondue] dinner down-town Geneva<br />
<br />
=== Travelling ===<br />
The information below is taken from [http://visit.cern/exhibitions/how-get-cern CERN instructions].<br />
Please check that link for further details.<br />
<br />
[http://visit.cern/sites/visits.web.cern.ch/files/files/exhibitions/access-map.pdf How to get to CERN infographics]<br />
<br />
CERN Reception - Meyrin<br />
<br />
CERN - European Organization for Nuclear Research<br />
385 route de Meyrin<br />
CH-1217 Meyrin - Geneva<br />
Switzerland<br />
<br />
* GPS Coordinates<br />
Latitude: 46.2314284<br />
<br />
Longitude: 6.0539718<br />
<br />
<br />
==== By train ====<br />
Coming from the Geneva railway station at Cornavin<br />
<br />
Tram - Take the number 18 tram to "CERN" which is the final stop at the CERN entrance.<br />
<br />
Ticket costs 3 CHF full-fare / 2 CHF reduced-fare (Ticket "Tout Genève" on the ticket machine). <br />
<br />
See the [http://www.tpg.ch/ TPG] web site for full details.<br />
<br />
==== By car ====<br />
<br />
* From Switzerland<br />
<br />
Follow signs for "Aéroport", "Lyon" and "Meyrin".<br />
<br />
Once you are in Meyrin, follow signs for "St. Genis" (which is just beyond the border, in France). <br />
<br />
Before reaching St Genis, the CERN site is on your left on "Route de Meyrin", just before you reach the border.<br />
<br />
* From France (département of Ain)<br />
<br />
Follow signs for "Gex" or "St. Genis". <br />
When you reach the border, CERN is on your right immediately after passing through customs.<br />
<br />
See [http://visit.cern/exhibitions/how-get-cern-car Parking] for parking information.<br />
<br />
==== By plane ====<br />
Coming from the Geneva International Airport at Cointrin<br />
<br />
Taxi - approximately 35CHF.<br />
<br />
Bus - First take a public transport ticket from the machine you will find at the exit to the baggage collection hall, just before customs control. Then:<br />
<br />
Option 1: Take bus Y direction "CERN" and get off at the CERN stop opposite the large Globe and the CERN site.<br />
<br />
Option 2: Take bus 23, 28 or 57 and get off at the stop "Blandonnet" and then catch the Tram number 18, final stop "CERN".<br />
<br />
See the [http://www.tpg.ch/ TPG] web site for full details.<br />
<br />
== Tips and tricks ==<br />
A normal lunch at CERN costs about 15 CHF, inclusive of one coffee and one delicious dessert.<br />
<br />
A bus ride from the airport to CERN is free of charge, if you take a ticket at the vending machine in the baggage claim area. Should you miss that vending machine, a ticket will cost you 3.00 CHF. https://genevalunch.com/guides/travel/the-cheerful-traveler-geneva-airport-public-transport/<br />
<br />
<br />
== Accommodation ==<br />
<br />
The conference will take place in the CERN's main site (Meyrin). You can try your luck and search for an accommodation in one of the [http://smb-dep.web.cern.ch/en/CERN_Housing CERN Hostels].<br />
<br />
Should the CERN hostels be full, or should you prefer to stay in Geneva, we advise you to consult your favourite on-line booking portal (www.booking.com, www.tripadvisor.com, www.trivago.com, www.expedia.com etc.) and to contact the hotel directly in order to identify the lowest tariff available for CERN users and collaborators (preferential tariffs may apply in some cases).<br />
<br />
Hotels in the vicinity of "Gare Cornavin" (Geneva's main railway station), or along "Route de Meyrin", are particularly recommended. Tram number 18 links Gare Cornavin to CERN in 20' (see [http://www.tpg.ch/ timetable on the TPG's webpage]). <br />
<br />
Notice that, by staying in hotel, youth hostel or at a campsite, you are entitled to receive a personal and non transferable Geneva Transport Card for free, which will allow you to use the whole public transportation system of Geneva for the length of your stay for free. This includes buses, trams, trains, and yellow taxi-boats - Mouettes. Just ask for it upon arrival on the reception.<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Approximately half of each day will be devoted to presentations. The remainder will be used for informal discussions, code sprints, etc.<br />
<br />
Please propose session topics in the schedule below. The actual time slot you pick is not important--we can re-arrange the schedule later--but we need to know what topics are of interest.<br />
<br />
In addition, if you have a poster, rather than a full presentation, there is a separate sign-up sheet below.<br />
<br />
=== Schedule ===<br />
During the daytime: CERN offers many areas where people can socialize and/or discuss, informally. For instance, the CERN main restaurant is open until 23:00 (11:00 PM).<br />
<br />
<table class="tg" border="1" width="800" style="text-align: center"><br />
<tr><br />
<th width="110">Time</th><br />
<th width="220">Monday<br/>(General GNU Octave day)</th><br />
<th width="220">Tuesday<br/>(GNU Octave Packages day)</th><br />
<th width="250">Wednesday<br/>(Libre and Open Source Software day)</th><br />
</tr><br />
<tr><br />
<td>9:00-9:30</td><br />
<td>Open slot</td><br />
<td>GSoC project: Exponential Integrators<br/>(Chiara Segala)</td><br />
<td rowspan="2">Unconference</td><br />
</tr><br />
<tr><br />
<td>9:30-10:00</td><br />
<td>Octave for N dimensions and microscope image processing (Carnë Draug / David Miguel Susano Pinto)</td><br />
<td>SOCIS project: Improve iterative methods for sparse linear systems<br/>(Cristiano Dorigo)</td><br />
</tr><br />
<tr><br />
<td>10:00-10:15</td><br />
<td><strong>Coffee</strong></td><br />
<td><strong>Coffee</strong></td><br />
<td><strong>Coffee</strong></td><br />
</tr><br />
<tr><br />
<td>10:15-10:50</td><br />
<td>Octave for Particle Accelerator Design (A. Latina)</td><br />
<td>Support of free software in public institutions: the KiCad case (J. Serrano)</td><br />
<td>MOOC: Matlab and Octave for beginners (Simone Deparis)</td> <br />
</tr><br />
<tr><br />
<td>10:50-11:25</td><br />
<td>[https://www.gnu.org/software/octave/doc/interpreter/XREFpublish.html publish] your code with Octave (Kai T. Ohlhus)</td><br />
<td>Discussion</td><br />
<td rowspan="2">SIAM event by EPFL<br/>(To be confirmed. Move it to the first day if you think it would be better)</td><br />
</tr><br />
<tr><br />
<td>11:25-12:00</td><br />
<td>GSoC project: ode15{i,s}<br/>(Francesco Faccio)</td><br />
<td>The future of the Neural Network package<br/>(Francesco Faccio)</td><br />
</tr><br />
<tr><br />
<td>12:00-12:45</td><br />
<td><strong>Discussion</strong></td><br />
<td><strong>Discussion</strong></td><br />
<td>8/16-bit simulation with GNU Octave (Andreas Stahel)</td><br />
</tr><br />
<tr><br />
<td><br/>12:45-14:00<br/><br/></td><br />
<td><strong>Lunch</strong></td><br />
<td><strong>Lunch</strong></td><br />
<td><strong>Lunch</strong></td><br />
</tr><br />
<tr><br />
<td>14:00-14:35</td><br />
<td rowspan="3">Open Slot (Plenary session: CERN main auditorium)<br/>Status of Octave - 1h<br/>(John W. Eaton) </td><br />
<td>Technical overview of user code parallelization (Olaf Till)</td><br />
<td rowspan="3">Visit to CERN sites</td><br />
</tr><br />
<tr><br />
<td>14:35-15:10</td><br />
<td rowspan="2">Open Slot (Plenary session: CERN main auditorium)</td><br />
</tr><br />
<tr><br />
<td>15:10-15:45</td><br />
</tr><br />
<tr><br />
<td>15:45-16:00</td><br />
<td><strong>Coffee</strong></td><br />
<td><strong>Coffee</strong></td><br />
<td><strong>Coffee</strong></td><br />
</tr><br />
<tr><br />
<td><br/><br/>16:00-18:00<br/><br/><br/></td><br />
<td><strong>Code Sprint</strong></td><br />
<td><strong>Code Sprint</strong></td><br />
<td><strong>Organization of OctConf2018</strong></td><br />
</tr><br />
<tr><br />
<td>18:00-19:00</td><br />
<td rowspan="2">Fondue night (alternative 1)</td><br />
<td rowspan="2">Fondue night (alternative 2)</td><br />
<td rowspan="2">Closing and Farewell</td><br />
</tr><br />
<tr><br />
<td>19:00-20:00</td><br />
</tr><br />
</table><br />
<br />
=== Poster Session ===<br />
<br />
If you have a poster demonstrating how you use Octave to address an application in your field please add your name and poster topic to the list below. We will schedule an appropriately sized space based on the number of posters.<br />
<br />
Confirmed Posters:<br />
<br />
<table class="tg" border="0" width="600" style="text-align: left"><br />
<tr><br />
<th width="400">Title</th><br />
<th width="200">Author</th><br />
</tr><br />
<tr><br />
<td>Fast approximation of complicated simulators</td><br />
<td>[[User:KaKiLa |JuanPi Carbajal]]</td><br />
</tr><br />
<tr><br />
<td>VSDP: Verified SemiDefinite Programming</td><br />
<td>[[User:Siko1056|Kai T. Ohlhus]]</td><br />
</tr><br />
<tr><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td></td><br />
<td></td><br />
</tr> <br />
<tr><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td></td><br />
<td></td><br />
</tr><br />
<tr><br />
<td></td><br />
<td></td><br />
</tr><br />
<br />
</table><br />
<br />
== Participants ==<br />
To register officially, please use the CERN conference manager [https://indico.cern.ch/event/609833/ Indico].<br />
<br />
* [[User:KaKiLa|JuanPi Carbajal]]<br />
* [[User:Francesco Faccio|Francesco Faccio]] (need funding for travel)<br />
* [[User:jwe|John W. Eaton]] (need funding for travel)<br />
* [[User:JordiGH|Jordi Gutiérrez Hermoso]] (need funding for travel)<br />
* [[User:Doug|Douglas Stewart]]<br />
* [[User:Siko1056|Kai T. Ohlhus]]<br />
* [[User:Oheim|Oliver Heimlich]] (Tuesday–Wednesday)<br />
* [[User:Carandraug|Carnë Draug]]<br />
* [[User:Andy1978|Andreas Weber]] (likely to attend but have to wait for the final okay from employer)<br />
* Valentin Ortega Clavero (likely to attend but have to wait for the final okay from employer)<br />
* Andrea Latina<br />
* Andreas Stahel<br />
* [[User:CdF|Carlo de Falco]] (likely to attend, probably one day only)<br />
* Cristiano Dorigo<br />
* Michele Ginesi<br />
* Chiara Segala<br />
* [[User:pantxo|Pantxo Diribarne]] (likely to attend, probably one day only)<br />
* Marco Caliari (arrival in Monday afternoon)<br />
* Anna Ferrarini<br />
* Elisa Frison<br />
* Sara Stillavati<br />
* Olaf Till<br />
<br />
== Funding ==<br />
<br />
== Previous OctConf ==<br />
[[OctConf 2015]]<br />
<br />
== Next OctConf ==<br />
[[OctConf 2018]]<br />
<br />
[[Category:OctConf]]<br />
[[Category:2017]]</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=Classdef&diff=5761Classdef2015-03-20T14:16:31Z<p>JordiGH: init</p>
<hr />
<div>This page is a stub. We should begin documenting what classdef is implemented and what is not.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=Summer_of_Code_-_Getting_Started&diff=5557Summer of Code - Getting Started2015-02-18T20:13:15Z<p>JordiGH: /* Improve logm, sqrtm, funm */</p>
<hr />
<div>The following is distilled from the [[Projects]] page for the benefit of potential [https://www.google-melange.com/gsoc/homepage/google/gsoc2015 Google] and [http://sophia.estec.esa.int/socis2014 ESA] Summer of Code (SoC) students. Although students are welcome to attempt any of the projects in that page or any of their own choosing, here we offer some suggestions on what good student projects might be.<br />
<br />
= Steps Toward a Successful Application =<br />
<br />
If you like any of the projects described below these are the steps you need to follow to apply:<br />
<br />
* '''Help Us Get To Know You'''<br><br />
: If you aren't communicating with us before the application is due, your application will not be accepted.<br />
:: '''Join the [https://lists.gnu.org/mailman/listinfo/octave-maintainers maintainers mailing list]''' or read the archives and see what topics we discuss and how the developers interact with each other.<br />
:: '''Hang out in our [https://webchat.freenode.net/?channels=#octave IRC channel]'''. Ask questions, submit patches, show us that you are motivated and well-prepared. There will be more applicants than we can effectively mentor, so do ask for feedback on your public application to increase the strength of your proposal!<br />
* '''Find Something That Interests You'''<br />
: It's '''critical''' that you '''find a project that excites you'''. You'll be spending most of the summer working on it (we expect you to treat the SoC as a full-time job). But don't just tell us how interested you are, show us. You can do that by [https://savannah.gnu.org/bugs/?group=octave fixing a few bugs] or interacting with us on [https://webchat.freenode.net/?channels=#octave IRC] well before the deadline. Our experience shows us that successful SoC students demonstrate their interest early and often.<br />
* '''Prepare Your Proposal With Us'''<br />
: By working with us to prepare your proposal, you'll be getting to know us and showing us how you approach problems. The best place for this is your wiki user page and the [https://webchat.freenode.net/?channels=#octave IRC channel].<br />
* '''Complete Your Application'''<br />
: Fill out our '''''public''''' application template.<br />
:: This is best done by '''[[Special:CreateAccount|creating an account at this wiki]]''' and copying the '''[[Template:Student_application_template_public|template]]''' from its page.<br/><br />
:: You really only need to copy and answer the '''''public''''' part there, there is no need to showcase everything else to everybody reading your user page!<br />
: Fill out our '''''private''''' application template.<br />
:: This is best done by copying the '''[[Template:Student_application_template_private|template]]''' from its page and '''adding the required information to your application at Google (melange)''' or at '''ESA'''.<br><br />
:: Only the organization admin and the possible mentors will see this data. You can still edit it after submitting until the deadline!<br />
<br />
== Things You'll be Expected to Know or Quickly Learn ==<br />
<br />
Octave is mostly written in C++ and its own scripting language that is mostly compatible with Matlab. There are bits and pieces of Fortran, Perl, C, awk, and Unix shell scripts here and there. In addition to being familiar with C++ and Octave's scripting language, successful applicants will be familiar with or able to quickly learn about Octave's infrastructure. You can't spend the whole summer learning how to build Octave or prepare a changeset and still successfully complete your project.<br />
<br />
* '''The Build System'''<br />
: [http://en.wikipedia.org/wiki/GNU_build_system The GNU build system] is used to build Octave.<br />
: While you generally don't need to understand too much unless you actually want to change how Octave is built, you should be able to understand enough to get a general idea of how to build Octave.<br />
: If you've ever done a <tt>configure && make && make install</tt> series of commands, you have already used the GNU build system.<br />
: '''You must demonstrate that you are able to build the development version of Octave from sources before the application deadline.'''<br />
* '''The Version Control System'''<br />
: We use [http://mercurial.selenic.com/ Mercurial] (abbreviated hg).<br />
: Mercurial is the [http://en.wikipedia.org/wiki/Distributed_Version_Control_System distributed version control system] (DVCS) we use for managing our source code. You should have some basic understanding of how a DVCS works, but hg is pretty easy to pick up, especially if you already know a VCS like git or svn.<br />
* '''The Procedure for Contributing Changesets'''<br />
: You will be expected to follow the same procedures as other contributors and core developers.<br />
: You will be helping current and future Octave developers by using the same style for changes, commit messages, and so on. You should also read the same [https://www.gnu.org/software/octave/doc/interpreter/Contributing-Guidelines.html contributing] [http://hg.savannah.gnu.org/hgweb/octave/file/tip/etc/HACKING guidelines] we have for everyone.<br />
: [[Hg_instructions_for_mentors#Mercurial_Tips_for_SoC_students | This page]] describes the procedures students are expected to use to publicly display their progress in a public mercurial repo during their work.<br />
* '''The Maintainers Mailing List'''<br />
: We primarily use [https://lists.gnu.org/mailman/listinfo/octave-maintainers mailing lists] for communication among developers.<br />
: The mailing list is used most often for discussions about non-trivial changes to Octave, or for setting the direction of development.<br />
: You should follow basic mailing list etiquette. For us, this mostly means "do not [https://en.wikipedia.org/wiki/Posting_style#Top-posting top post]".<br />
* '''The IRC Channel'''<br />
: We also have [http://webchat.freenode.net?channels=octave the #octave IRC channel in Freenode].<br />
: You should be familiar with the IRC channel. It's very helpful for new contributors (you) to get immediate feedback on ideas and code.<br />
: Unless your primary mentor has a strong preference for some other method of communication, the IRC channel will likely be your primary means of communicating with your mentor and Octave developers.<br />
* '''The Octave Forge Project'''<br />
: [http://octave.sf.net Octave-Forge] is a project closely related to Octave where packages reside. They are somewhat analogous to Matlab's toolboxes.<br />
* '''Related Skills'''<br />
: In addition, you probably should know '''some''' mathematics, engineering, or experimental science or something of the sort.<br />
: If you've used Matlab before, you probably have already been exposed to the kinds of problems that Octave is used for.<br />
<br />
== Criteria by which applications are judged ==<br />
<br />
These might vary somewhat depending on the mentors and coordinators for a particular Summer of Code, but typically the main factors considered would be:<br />
<br />
* '''Applicant has demonstrated an ability to make substantial modifications to Octave'''<br />
: The most important thing is that your application has some interesting code samples to judge you by. It's ok during the application period to ask for help on how to format these code samples, which normally are Mercurial patches.<br />
<br />
* '''Applicant shows understanding of topic'''<br />
: Your application should make it clear that you're reasonably well versed in the subject area and won't need all summer just to read up on it.<br />
<br />
* '''Applicant shows understanding of and interest in Octave development'''<br />
: The best evidence for this is previous contributions and interactions.<br />
<br />
* '''Well thought out, adequately detailed, realistic project plan'''<br />
: "I'm good at this, so trust me" isn't enough. You should describe which algorithms you'll use and how you'll integrate with existing Octave code. You should also prepare a full timeline and goals for the midterm and final evaluations.<br />
<br />
<noinclude>[[Category:Summer of Code]]</noinclude><br />
<br />
= Suggested projects =<br />
<br />
The following projects are broadly grouped by category and probable skills required to tackle each. Remember to check [[Projects]] for more ideas if none of these suit you, and your own ideas are always welcome.<br />
<br />
== Numerical ==<br />
<br />
These projects involve implementing certain mathematical functions in Octave.<br />
<br />
'''Required skills''': You should understand quite a bit of mathematics. Words like "eigenvalue", "analytic", and "Taylor series" shouldn't scare you at all. There is probably little C++ experience required, and probably many of these problems can be solved with m-scripts.<br />
<br />
'''Difficulty''': Mid-to-hard depending how much mathematics you know and how well you can read numerical analysis journal articles.<br />
<br />
'''Potential mentor''': Carlo de Falco, Fotios Kasolis, Luis Gustavo Lira, JuanPi Carbajal<br />
<br />
=== General purpose Finite Element library ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Octave-Forge already has a set of packages for discretizing Partial Differential operators by Finite Elements and/or Finite Volumes,<br />
namely the [[bim package]] which relies on the [http://octave.sf.net/msh msh package] (which is in turn based on [http://geuz.org/gmsh/ gmsh]) for creating and managing 2D triangular and 3D tetrahedral meshes and on the [http://octave.sf.net/fpl fpl package] for visualizing 2D results within Octave or exporting 2D or 3D results in a format compatible with [http://www.paraview.org Paraview] or [https://wci.llnl.gov/codes/visit/ VisIT]. These packages, though, offer only a limited choice of spatial discretization methods which are based on low degree polynomials and therefore have a low order of accuracy even for problems with extremely smooth solutions.<br />
The [http://geopdes.sf.net GeoPDEs] project, on the other hand, offers a complete suite of functions for discretizing a wide range of<br />
differential operators related to important physical problems and uses basis functions of arbitrary polynomial degree that allow the construction of methods of high accuracy. These latter, though, are based on the IsoGeometric Analysis Method which, although very powerful and often better performing, is less widely known and adopted than the Finite Elements Method. The implementation of a general purpose library of Finite Elements seems therefore a valuable addition to Octave-Forge. Two possible interesting choices for implementing this package exist, the first consists of implementing the most common Finite Element spaces in the [http://geopdes.sf.net GeoPDEs] framework, which is possible as IsoGeometric Analysis can be viewed as a superset of the Finite Element Method, the other is to construct Octave language bindings for the free software library [http://fenicsproject.org/documentation/ FEniCS] based on the existing C++ or Python interfaces. This second approach has been developed during the GSOC 2013 and the Octave-Forge package [http://octave.sf.net/fem-fenics fem-fenics] is now available. However, fem-fenics could be extended in many different ways:<br />
* implement the bindings for the UFL language inside Octave<br />
* add new functions already available with Fenics but not yet in Octave<br />
* create new functions specifically suited for Octave<br />
* improve the efficiency of the code<br />
The main goal for the fem-fenics package is ultimately to be merged with the FEnics project itself, so that it can remain in-sync with the main library development.<br />
<br />
'''Potential mentor''': Marco Vassallo<br />
<br />
=== Improve logm, sqrtm, funm ===<br />
<br />
The goal here is to implement some missing Matlab functions related to matrix functions like the [http://en.wikipedia.org/wiki/Matrix_exponential matrix exponential]. There is [http://octave.1599824.n4.nabble.com/matrix-functions-td3137935.html a general discussion] of the problem.<br />
<br />
'''Potential mentor''': Jordi Gutiérrez Hermoso<br />
<br />
=== Generalised eigenvalue problem ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
[http://www.mathworks.com/help/techdoc/ref/eig.html Certain calling forms] of the <tt>eig</tt> function are missing. The problem is to understand what those missing forms are and implement them.<br />
<br />
=== Various sparse matrix improvements ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
The implementation of sparse matrices in Octave needs several improvements. Any of [[Projects#Sparse Matrices|these]] would be good. The paper by [http://arxiv.org/abs/cs.MS/0604006 Bateman & Adler] is good reading for understanding the sparse matrix implementation.<br />
<br />
=== Implement solver for initial-boundary value problems for parabolic-elliptic PDEs in 1D ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
The project will deliver a solver for initial-boundary value problems for parabolic-elliptic PDEs in 1D similar to Matlab's function <tt>pdepe</tt>. A good starting point is the [http://en.wikipedia.org/wiki/Method_of_lines method of lines] for which you can find more details [http://en.wikibooks.org/wiki/Partial_Differential_Equations/Method_of_Lines here] and [http://www.scholarpedia.org/article/Method_of_lines here], whereas an example implementation can be found [http://www.scholarpedia.org/article/Method_of_Lines/Example_Implementation here]. In addition, [http://www.pdecomp.net/ this page] provides some useful material.<br />
<br />
=== Implement solver for 1D nonlinear boundary value problems ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
The project will complete the implementation of the bvp4c solver that is already available in an initial version in the odepkg package<br />
by adding a proper error estimator and will implement a matlab-compatible version of the bvp5c solver.<br />
Details on the methods to be implemented can be found in [http://dx.doi.org/10.1145/502800.502801 this paper] on bvp4c and [http://www.jnaiam.net/new/uploads/files/014dde86eef73328e7ab674d1a32aa9c.pdf this paper] on bvp5c. Further details are available in [http://books.google.it/books/about/Nonlinear_two_point_boundary_value_probl.html?id=s_pQAAAAMAAJ&redir_esc=y this book].<br />
<br />
=== Geometric integrators for Hamiltonian Systems ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
[http://openlibrary.org/books/OL9056139M/Geometric_Numerical_Integration Geometric (AKA Symplectic) integrators] are useful for <br />
multi-dimensional classical mechanics problems and for molecular dynamics simulations.<br />
The odepkg package has a number of solvers for ODE, DAE and DDE problems but none of them is currently<br />
specifically suited for second order problems in general and Hamiltonian systems in particular.<br />
Therefore a new package for geometric integrators would be a useful contribution.<br />
This could be created as new package or added as a set of new functions for odepkg.<br />
The function interface should be consistent throughout the package and should be modeled to follow <br />
that of other functions in odepkg (or that of DASPK and LSODE) but will need specific extensions to accommodate for specific options that only make sense for this specific class of solvers.<br />
An initial list of methods to be implemented includes (but is not limited to)<br />
* Symplectic Euler methods, see [http://en.wikipedia.org/wiki/Semi-implicit_Euler_method here] and [http://openlibrary.org/books/OL9056139M/Geometric_Numerical_Integration here]<br />
* Störmer-Verlet method, see [http://en.wikipedia.org/wiki/Verlet_integration here] and [http://openlibrary.org/books/OL9056139M/Geometric_Numerical_Integration here]<br />
* Velocity Verlet method, see [http://en.wikipedia.org/wiki/Verlet_integration here] and [http://openlibrary.org/books/OL9056139M/Geometric_Numerical_Integration here]<br />
* Symplectic partitioned Runge-Kutta methods, see [http://reference.wolfram.com/mathematica/tutorial/NDSolveSPRK.html here] or [http://dx.doi.org/10.1137/0733019 here]<br />
* Spectral Variational Integrator methods, see [http://www3.nd.edu/~izaguirr/papers/acta_numerica.pdf here] or [http://www.math.ucsd.edu/~mleok/pdf/HaLe2012_SVI.pdf here]<br />
<br />
For this latter there is an existing code which is already working but needs to be improved, posted on the patch tracker.<br />
Furthermore, methods to implement solutions of problems with rigid constraints should be implemented, e.g.<br />
* SHAKE, see [http://en.wikipedia.org/wiki/Constraint_algorithm here] or [http://dx.doi.org/10.1016/0021-9991(77)90098-5 here]<br />
* RATTLE, see [http://dx.doi.org/10.1016/0021-9991(83)90014-1 here] or [http://dx.doi.org/10.1002/jcc.540161003 here]<br />
<br />
'''Potential mentor:''' Mattia Penati, Edie Miglio, Carlo de Falco<br />
<br />
=== Matlab-compatible ODE solvers in core-Octave ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
* Adapt "odeset" and "odeget" from the odepkg package so that the list of supported options is more Matlab-compatible, in the sense that all option names that are supported by Matlab should be available. On the other hand, Matlab returns an error if an option which is not in the list of known options is passed to "odeset", but we would rather make this a warning in order to allow for special extensions, for example for symplectic integrators.<br />
* Adapt the interface of "ode45" in odepkg to be completely Matlab compatible, fix its code and documentation style and move it to Octave-core.<br />
* Build Matlab compatible versions of "ode15s" and "ode15i". jwe has prototype implementations [https://savannah.gnu.org/patch/index.php?8102|here] of these built as wrappers to "dassl" and "daspk". An initial approach could be to just improve these wrappers, but eventually it would be better to have wrappers for "IDA" from the sundials library.<br />
* Implement Matlab compatible versions of "deval".<br />
<br />
'''Potential mentor:''' Sebastian Schöps, Carlo de Falco, JuanPi Carbajal<br />
<br />
=== Nonlinear and constrained least squares ===<br />
<br />
The [[Optimization package]] is missing the functions <tt>lsqcurvefit</tt>, <tt>lsqlin</tt>, <tt>lsqnonlin</tt> to conveniently solve least-squares problems that are nonlinear and/or constrained. There are free implementations of the needed algorithms in other languages, such as [http://www.netlib.org/minpack/ minpack] in Fortran and [http://users.ics.forth.gr/~lourakis/levmar/ levmar] in C. This project would link to or port these implementations and develop Matlab-compatible Octave wrappers.<br />
<br />
'''Mentor:''' Nir Krakauer<br />
<br />
=== TISEAN package ===<br />
<br />
[http://www.mpipks-dresden.mpg.de/~tisean/Tisean_3.0.1/index.html TISEAN] is a suite of code for nonlinear time series analysis. It is old but there are many algorithms there that haven't been re-implemented as libre software. The objective is to integrate TISEAN as a<br />
octave package as it was done for the Control package.<br />
The functions cuould be integrated in the existing [http://octave.sourceforge.net/tsa/ time series analysis] package<br />
<br />
'''Required skills''': m-file scripting, c/C++ and FORTRAN API knowledge. <br />
<br />
'''Difficulty''': easy/medium<br />
<br />
'''Mentor''': [[User:KaKiLa]]<br />
<br />
=== High Precision Arithmetic Computation ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
The Linear Algebra Fortran libraries used by Octave make use of of single (32 bits) and double (64 bits) precision floating point numbers. Many operations are stopped when matrices condition number goes below 1e-16: such matrices are considered as ill-conditioned. There are cases where this is not enough, for instance simulations implying chemical concentrations covering the range 10^4 up to 10^34. There are a number of ways to increase the numerical resolution, like f.i. make use of 128 bits quadruple precision numbers available in GFortran. A simpler option is to build an interface over Gnu MPL arbitrary precision library, which is used internally by gcc and should be available on any platform where gcc runs. Such approach has been made available for MatLab under the name mptoolbox and is licensed under a BSD license. The author kindly provided a copy of the latest version and agreed to have it ported under Octave and re-distributed under GPL v3.0<br />
<br />
The architecture consists of an Octave class interface implementing "mp" (multi-precision) objects. Arithmetic operations are forwarded to MPL using MEX files. This is totally transparent to the end user, except when displaying numbers. This implementation needs to be ported and tested under Octave. <br />
<br />
'''Required skills''': Octave classes and object programming. C for understanding the MEX glue code.<br />
<br />
'''Difficulty''': medium.<br />
<br />
'''Potential mentor''': Pascal Dupuis<br />
<br />
<br />
== GUI ==<br />
<br />
Octave currently includes an experimental native GUI, written in Qt. There are various ways in which it could be improved.<br />
<br />
'''Required skills''': C++ and Qt. Whatever tools you want to use to write Qt code are fine, but Qt Creator is a popular choice nowadays.<br />
<br />
'''Difficulty''': Mostly medium, depending if you've had Qt or GUI development experience before.<br />
<br />
'''Potential mentor''': Jordi Gutiérrez Hermoso, Michael Goffioul, Torsten<br />
<br />
=== Finish the Octave GUI ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
<strike><br />
The GUI is currently on its own branch in hg. It is not stable enough and its design is still in flux. It is in a very alpha stage and needs to be turned into a real usable product. At the moment, it consists of the basic building blocks (terminal window, editor, variable browser, history, file browser) that are put together into a main interface. The GUI uses the Qt library. Among the things to improve are:<br />
* improve integration with octave: variable browser/editor, debugger, profiler...<br />
* define and implement an option/preferences dialog<br />
* improve additional components like the documentation browser<br />
</strike><br />
Fix existing bugs related to the GUI, which can be browsed [https://savannah.gnu.org/bugs/index.php?go_report=Apply&group=octave&func=browse&set=custom&msort=0&report_id=100&advsrch=0&status_id=1&resolution_id=0&assigned_to=0&category_id=107&bug_group_id=0&history_search=0&history_field=0&history_event=modified&history_date_dayfd=5&history_date_monthfd=2&history_date_yearfd=2014&chunksz=50&spamscore=5&boxoptionwanted=1#options here]<br />
<br />
=== Implement a Qt widget for manipulating plots ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Octave has had for some time a native OpenGL plotter. The plotter requires some user interaction for manipulating the plots, and it's been using fltk for quite some time. We want to replace this with Qt, so it fits better with the overall GUI look-and-feel and is easier to extend in the future.<br />
<br />
[https://github.com/goffioul/QtHandles QtHandles] is a current work in progress integrating the octave OpenGL renderer plus good support for GUI elements (uicontrol, uimenu, uitoolbar...). This project may initially consists of integrating the existing QtHandles code base into Octave. Then if time permits, further improvements can be made to QtHandles.<br />
<br />
=== Create a better (G)UI for the profiler ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
During GSoC 2011, Daniel Kraft successfully implemented a profiler for Octave. It needs a better interface and a way to generate reports. This may be done with Qt, but not necessarily, and HTML reports might also be good.<br />
<br />
=== Sisotool. Create a graphical design tool for tuning closed loop control system (control pkg) ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
When tuning a SISO feedback system it is very helpful to be able to grab a pole or a zero and move them by dragging them with the mouse. As they are moving the software must update all the plotted lines. There should be the ability to display various graphs rlocuse, bode, step, impulse etc. and have them all change dynamically as the mouse is moving. The parameters of the compensator must be displayed and updated.<br />
Potential mentor: Doug Stewart<br />
<br />
=== Interface to Electronic Circuit Simulator ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
[http://sourceforge.net/projects/qucs/ Qucs] is a C++ based circuit simulation package. This project aims to improve the interface to the Qucs algorithms to allow the transient, i.e. time series, simulation of circuits in Octave within a larger ODE system simulation driven by Octave. Other possible goals would be to make other analysis types available directly from Octave. There is an existing C++ interface which is based on handle class syntax available in the development version of Octave. The Qucs interface is intended to have two modes, synchronous and asynchronous. The asynchronous mode uses qucs to solve a circuit between two given time steps (internally taking as many smaller time steps as required), returning only the final result. This method is well developed. The alternative synchronous mode is intended to give full control of the time steps to Octave, and it is this mode which requires more work. A simple synchronous interface exists which can be built upon.<br />
<br />
'''Required skills''': C++ and m-file scripting. Familiarity with new classdef syntax would be useful. May require some modification/adaptation of the Qucs sources. Familiarity with the Octave ODE solvers useful but not essential. Ability to compile Octave from the development sources.<br />
<br />
'''Difficulty''': medium.<br />
<br />
'''Potential mentor''': <strike>Richard Crozier</strike> ''Unfortunately I can't mentor this year (2014)''<br />
<br />
'''Main Goals'''<br />
* Improve the functionality of the transient solver interface by implementing a robust synchronous simulation mode that integrates well with Octave ode solvers, particularly those from the odepkg package from OctaveForge. <br />
* Create interface to other analysis types (AC, DC, S-Parameter and Harmonic Balance)<br />
* Packaging the interface for Octave, to make it available through OctaveForge<br />
<br />
== Graphics ==<br />
<br />
Octave has a new native OpenGL plotter (currently via [http://en.wikipedia.org/wiki/Fltk fltk], but we want to move away from that). There are several possible projects involved with it.<br />
<br />
'''Required skills''': C++ and OpenGL. General understanding of computer graphics.<br />
<br />
'''Difficulty''': Medium, depending on your previous understanding of the topic.<br />
<br />
'''Potential mentor''': Michael Goffioul<br />
<br />
=== Lighting ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Implement transparency and lighting in OpenGL backend(s). A basic implementation is available in [http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/extra/jhandles/ JHandles]. This needs to be ported/re-implement/re-engineered/optimized in the C++ OpenGL renderer of Octave.<br />
<br />
=== Object selection in OpenGL renderer ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
This project is about the implementation of a selection method of graphics elements within the OpenGL renderer [http://glprogramming.com/red/chapter13.html]<br />
<br />
=== Non-OpenGL renderer ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Besides the original gnuplot backend, Octave also contains an OpenGL-based renderer for advanced and more powerful 3D plots. However, OpenGL is not perfectly suited for 2D-only plots where other methods could result in better graphics. The purpose of this project is to implement an alternate graphics renderer for 2D only plots (although 3D is definitely not the focus, extending the new graphics renderer to support basic 3D features should also be taken into account). There is no particular toolkit/library that must be used, but natural candidates are:<br />
* [http://qt.nokia.com Qt]: the GUI is currently written in Qt and work is also in progress to provide a Qt/OpenGL based backend [https://github.com/goffioul/QtHandles]<br />
* [http://en.wikipedia.org/wiki/Cairo_%28software%29 Cairo]: this library is widely used and known to provides high-quality graphics with support for PS/PDF/SVG output.<br />
<br />
=== TeX/LaTeX markup ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Text objects in plots (like titles, labels, texts...) in the OpenGL renderer only support plain text mode without any formatting possibility. Support for TeX and/or LaTeX formatting needs to be added.<br />
<br />
* The TeX formatting support actually only consists of a very limited subset of the TeX language. This can be implemented directly in C++ into Octave by extending the existing text engine, avoiding to add a dependency on a full TeX system. Essentially, support for Greek letters, super/sub-scripts, and several mathematical symbols needs to be supported. For example,<br />
<br />
:<pre>\alpha \approx \beta_0 + \gamma^\chi</pre><br />
<br />
:Would be rendered as,<br />
<br />
:&alpha; &asymp; &beta;<sub>0</sub> + &gamma;<sup>&chi;</sup><br />
<br />
:This is analogous to how special characters may be included in a wiki using html.<br />
<br />
:<pre>&amp;alpha; &amp;asymp; &amp;beta;<sub>0</sub> + &amp;gamma;<sup>&amp;chi;</sup></pre><br />
<br />
:The text object's {{Codeline|extent}} for the rendered result needs to be calculated and the text placed the location specified by the text object's {{Codeline|position}} property. An itemized list of a text objects properties can be found [http://www.gnu.org/software/octave/doc/interpreter/Text-Properties.html here].<br />
<br />
* On the other hand, the LaTeX formatting support is expected to provide full LaTeX capabilities. This will require to use an external LaTeX system to produce text graphics in some format (to be specified) that is then integrated into Octave plots.<br />
<br />
:The matplotlib project [http://matplotlib.sourceforge.net/users/usetex.html has already done this in Python] and might be used as an example of how to do this in Octave. Mediawiki has also also done [http://en.wikipedia.org/wiki/Wikipedia:Texvc something similar]. There is also [http://forge.scilab.org/index.php/p/jlatexmath/ JLaTeXMath], a Java API to display LaTeX code in mathematical mode.<br />
<br />
== Interpreter ==<br />
<br />
The interpreter is written in C++, undocumented. There are many possible projects associated with it.<br />
<br />
'''Required skills''': ''Very good'' C and C++ knowledge, possibly also understanding of [http://en.wikipedia.org/wiki/Gnu_bison GNU bison] and [http://en.wikipedia.org/wiki/Flex_lexical_analyser flex]. Understanding how compilers and interpreters are made plus being able to understand how to use a profiler and a debugger will probably be essential skills.<br />
<br />
'''Difficulty''': Mid hard to very hard. Some of the biggest problems will probably be the interpreter.<br />
<br />
'''Potential mentors''': John W. Eaton, Jordi Gutiérrez Hermoso, Max Brister.<br />
<br />
=== Improve JIT compiling ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Octave's interpreter is ''very'' slow on some loops. Recently, thanks to Max Brister's work, an initial implement of a just-in-time compiler (JITC) in [http://llvm.org LLVM] for GSoC 2012. This project consists in understanding Max's current implementation and extending it so that functions and exponents (e.g. 2^z) compile with the JITC. This requires knowledge of compilers, C++, LLVM, and the Octave or Matlab languages. A capable student who demonstrates the ability to acquire this knowledge quickly may also be considered. Max himself will mentor this project. [http://planet.octave.org/octconf2012/jit.pdf Here] is Max's OctConf 2012 presentation about his current implementation. See also [[JIT]].<br />
<br />
=== Improve memory management ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
From profiling the interpreter, it appears that a lot of time is spending allocating and deallocating memory. A better memory management algorithm might provide some improvement.<br />
<br />
=== Implement classdef classes ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Matlab has two kinds of classes: old style @classes and new style classdef. Octave has only fully implemented the old style. There is partial support for new classes in [http://hg.savannah.gnu.org/hgweb/octave/shortlog/classdef our classdef branch]. There is irregular work here, and classdef is [http://www.mathworks.com/help/matlab/matlab_oop/method-attributes.html a very] [http://www.mathworks.com/help/matlab/events-sending-and-responding-to-messages.html complicated] [http://www.mathworks.com/help/matlab/enumeration-classes.html thing] to fully implement. A successful project would be to implement enough of classdef for most basic usages. Familiarity with Matlab's current classdef support would be a huge plus. Michael Goffioul and jwe can mentor this.<br />
<br />
Although there's already a substantial classdef support in current octave code base, there are still many areas that are unimplemented or need improvements. The main ones that come to my mind are:<br />
* support for events<br />
* support for enums<br />
* support for "import" (this requires good understanding of octave internals, especially he symbol table)<br />
* improving multiple inheritance and method resolution<br />
* honoring and computing "Sealed" attribute<br />
* support for function handle to methods<br />
<br />
=== Improve MPI package ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Octave Forge's [http://octave.sourceforge.net/mpi/index.html MPI package] <br />
is a wrapper for basic MPI functions for parallel computing. It is implemented <br />
by wrapping MPI function calls in simple DLD functions that map Octave's Datataypes to <br />
MPI Derived Datatypes. <br />
The proposed project deals with improving and extending the Octave MPI package, for example:<br />
* Octave MPI applications can currently be only run in batch mode, add the ability to launch parallel jobs and collect their output in an interactive Octave session.<br />
* Implement functions for non-blocking communication (MPI_Isend, MPI_Irecv)<br />
* Implement one-to-many (Broadcast, Scatter), many-to-one (Reduce, Gather), and many-to-many (All Reduce, Allgather) communication routines<br />
<br />
'''Required skills''': C++. Message Passing Interface (MPI).<br />
<br />
'''Difficulty''': medium.<br />
<br />
'''Potential mentor''': Carlo de Falco, Michael Creel, Sukanta Basu<br />
<br />
<br />
== Infrastructure ==<br />
<br />
There are several projects closely related to Octave but not exactly core Octave that could be worked on. They are mostly infrastructure around Octave, stuff that would help a lot.<br />
<br />
'''Required skills''': Various. See below.<br />
<br />
'''Difficulty''': Various. See below.<br />
<br />
'''Potential mentor''': Jordi Gutiérrez Hermoso, Carlo de Falco, JuanPi Carbajal<br />
<br />
=== Finish the Agora website ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
In 2009, the Mathworks decided to restrict the terms of use Matlab Central, a place dedicated to Matlab collaboration. The Mathworks forbade copyleft licenses and using the "free" code found in Matlab central on anything other than Mathworks products (e.g. forbidding from using it on Octave, even if the authors of the code wanted to allow this). Thus Octave users have no place to centrally, quickly, and conveniently share Octave code. See the [[FAQ#Why_can.27t_I_use_code_from_File_Exchange_in_Octave.3F_It.27s_released_under_a_BSD_license.21|FAQ]] for more details.<br />
<br />
In response to this, a website started to form, [http://agora.octave.org/ Agora Octave].<br />
<br />
This should be relatively easy webdev in Python using [http://en.wikipedia.org/wiki/Django_%28web_framework%29 Django].<br />
<br />
Things to be considered when working on this:<br />
<br />
* [http://octave-forge.blogspot.ie/2012/08/octconf2012-agora-and-pkg.html discussion of Agora during OctConf2012]<br />
* [http://scipy-central.org/ Scipy Central] - a website with the same objective as Agora for Scipy. Their [https://github.com/scipy/SciPyCentral Code] is released under a BSD license. Might be useful to reuse some parts.<br />
<br />
Most of the basic functionality of Agora is already in, but there are many ways in which it could be improved, such as implementing comment threads, giving it an email interface, or a ReSTful API which could be used from Octave for package management. See also [[Agora]].<br />
<br />
=== Improve binary packaging ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
We would like to be able to easily generate binary packages for Windows and Mac OS X. Right now, it's difficult and tedious to do so. Any way to help us do this in a faster way would be appreciated. Required knowledge is understanding how building binaries in Windows and Mac OS X works. Our current approach to fixing this is to cross-compile from a GNU system using [http://mxe.cc/ MXE] or [http://lilypond.org/gub/ GUB].<br />
<br />
'''Skills Required''': Knowledge of GNU build systems, Makefiles, configure files, chasing library dependencies, how to use a compiler. If you choose to work on GUB, Python will be required. No m-scripting or C++ necessary, beyond understanding [http://david.rothlis.net/c/compilation_model/ the C++ compilation model].<br />
<br />
'''Difficulty''': Medium to easy. You need to understand how build systems work and how to fix packages when they don't build.<br />
<br />
'''Possible mentors''': John W. Eaton or Jordi Gutiérrez Hermoso<br />
<br />
=== Installation of packages ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
We would like to enhance the management of Octave-forge packages from within Octave environment. Currently there is a working (but rather monolithic) function that is used to do the job. The work would be to improve the way Octave interacts with the package server. Since the functionality is already sketched by the current function, the most important skill is software design.<br />
<br />
'''Minimum requirements''': Ability to read and write Octave code. Minimal FTP/HTTP knowledge.<br />
<br />
'''Difficulty''': Easy<br />
<br />
== Image Analysis ==<br />
<br />
=== Improvements to N-dimensional image processing ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
The image package has partial functionality for N-dimensional images. These images exist for example in medical imaging where slices from scans are assembled to form anatomical 3D images, or even exposures taken over time at different wavelengths can result in 5D images. As part of GSoC 2013, the core functions {{codeline|imwrite}} and {{codeline|imread}} were extended to better support this type of image. Likewise, many functions in the image package, mostly morphology operators, were expanded to deal with this type of image. Still, many are left, specially image transformation and analysis of ROIs.<br />
<br />
Note that while many functions in the image package will not complain about ND images, they are actually not correctly implemented and will give incorrect results for ND.<br />
<br />
'''Required skills''': m-file scripting, and a fair amount of C++ since a lot of image analysis cannot be vectorized. Familiarity with common CS algorithms and willingness to read literature describing new algorithms will be useful. <br />
<br />
'''Difficulty''': difficult<br />
<br />
'''Potential mentor''': Carnë Draug<br />
<br />
<br />
=== Color management functions in image package ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
The goal is to implement these functions:<br />
<br />
iccread<br />
iccwrite<br />
makecform<br />
applycform<br />
<br />
These functions are useful for color management, in particular for converting data (especially images) between color spaces. ICC profiles are essentially used to store look-up tables or matrix transforms (or both) that define the conversions. For example, to convert an CMYK image to sRGB, you would load a "print" ICC profile that defines the conversion from CMYK to L*a*b* (the CIE color space that is supposed to match the human visual system), then load another profile that defines the conversion from L*a*b* to sRGB (there is a standard profile for this conversion (IEC 61966-2-1), which is why Matlab has a built-in conversion from sRGB to L*a*b*). To do the above conversions in Matlab, you would use the following code:<br />
<br />
<syntaxhighlight lang="octave"><br />
cmykImage = double(imread('cmyk-image-filename.tif'));<br />
iccProfile = iccread('icc-profile-filename.icc');<br />
labImage = applycform(cmykImage, makecform('clut', iccProfile, 'AToB3'));<br />
rgbImage = applycform(labImage, makecform('lab2srgb'));<br />
</syntaxhighlight><br />
<br />
The <code>'AToB3'</code> selects one of the color transforms (look-up tables) contained in the profile. This one is "Absolute Colorimetric." More details on ICC profiles may be obtained from [http://www.color.org/icc_specs2.xalter the ICC spec].<br />
<br />
Knowledge of ICC profiles (at least knowledge of their application) would be a prerequisite. Since [http://www.littlecms.com/ littlecms] implements all the necessary functions for reading, writing, and applying profiles, it would be primarily a matter of integrating this library into Octave (assuming that is the preferred implementation -- one could certainly read the ICC files directly, but why reinvent that particular wheel).<br />
<br />
'''Required skills''': C++ programming, some knowledge of ICC profiles desirable.<br />
<br />
'''Difficulty''': Easy.<br />
<br />
'''Possible Mentor''': TBD</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=Summer_of_Code_-_Getting_Started&diff=5556Summer of Code - Getting Started2015-02-18T20:12:22Z<p>JordiGH: /* Improve logm, sqrtm, funm */</p>
<hr />
<div>The following is distilled from the [[Projects]] page for the benefit of potential [https://www.google-melange.com/gsoc/homepage/google/gsoc2015 Google] and [http://sophia.estec.esa.int/socis2014 ESA] Summer of Code (SoC) students. Although students are welcome to attempt any of the projects in that page or any of their own choosing, here we offer some suggestions on what good student projects might be.<br />
<br />
= Steps Toward a Successful Application =<br />
<br />
If you like any of the projects described below these are the steps you need to follow to apply:<br />
<br />
* '''Help Us Get To Know You'''<br><br />
: If you aren't communicating with us before the application is due, your application will not be accepted.<br />
:: '''Join the [https://lists.gnu.org/mailman/listinfo/octave-maintainers maintainers mailing list]''' or read the archives and see what topics we discuss and how the developers interact with each other.<br />
:: '''Hang out in our [https://webchat.freenode.net/?channels=#octave IRC channel]'''. Ask questions, submit patches, show us that you are motivated and well-prepared. There will be more applicants than we can effectively mentor, so do ask for feedback on your public application to increase the strength of your proposal!<br />
* '''Find Something That Interests You'''<br />
: It's '''critical''' that you '''find a project that excites you'''. You'll be spending most of the summer working on it (we expect you to treat the SoC as a full-time job). But don't just tell us how interested you are, show us. You can do that by [https://savannah.gnu.org/bugs/?group=octave fixing a few bugs] or interacting with us on [https://webchat.freenode.net/?channels=#octave IRC] well before the deadline. Our experience shows us that successful SoC students demonstrate their interest early and often.<br />
* '''Prepare Your Proposal With Us'''<br />
: By working with us to prepare your proposal, you'll be getting to know us and showing us how you approach problems. The best place for this is your wiki user page and the [https://webchat.freenode.net/?channels=#octave IRC channel].<br />
* '''Complete Your Application'''<br />
: Fill out our '''''public''''' application template.<br />
:: This is best done by '''[[Special:CreateAccount|creating an account at this wiki]]''' and copying the '''[[Template:Student_application_template_public|template]]''' from its page.<br/><br />
:: You really only need to copy and answer the '''''public''''' part there, there is no need to showcase everything else to everybody reading your user page!<br />
: Fill out our '''''private''''' application template.<br />
:: This is best done by copying the '''[[Template:Student_application_template_private|template]]''' from its page and '''adding the required information to your application at Google (melange)''' or at '''ESA'''.<br><br />
:: Only the organization admin and the possible mentors will see this data. You can still edit it after submitting until the deadline!<br />
<br />
== Things You'll be Expected to Know or Quickly Learn ==<br />
<br />
Octave is mostly written in C++ and its own scripting language that is mostly compatible with Matlab. There are bits and pieces of Fortran, Perl, C, awk, and Unix shell scripts here and there. In addition to being familiar with C++ and Octave's scripting language, successful applicants will be familiar with or able to quickly learn about Octave's infrastructure. You can't spend the whole summer learning how to build Octave or prepare a changeset and still successfully complete your project.<br />
<br />
* '''The Build System'''<br />
: [http://en.wikipedia.org/wiki/GNU_build_system The GNU build system] is used to build Octave.<br />
: While you generally don't need to understand too much unless you actually want to change how Octave is built, you should be able to understand enough to get a general idea of how to build Octave.<br />
: If you've ever done a <tt>configure && make && make install</tt> series of commands, you have already used the GNU build system.<br />
: '''You must demonstrate that you are able to build the development version of Octave from sources before the application deadline.'''<br />
* '''The Version Control System'''<br />
: We use [http://mercurial.selenic.com/ Mercurial] (abbreviated hg).<br />
: Mercurial is the [http://en.wikipedia.org/wiki/Distributed_Version_Control_System distributed version control system] (DVCS) we use for managing our source code. You should have some basic understanding of how a DVCS works, but hg is pretty easy to pick up, especially if you already know a VCS like git or svn.<br />
* '''The Procedure for Contributing Changesets'''<br />
: You will be expected to follow the same procedures as other contributors and core developers.<br />
: You will be helping current and future Octave developers by using the same style for changes, commit messages, and so on. You should also read the same [https://www.gnu.org/software/octave/doc/interpreter/Contributing-Guidelines.html contributing] [http://hg.savannah.gnu.org/hgweb/octave/file/tip/etc/HACKING guidelines] we have for everyone.<br />
: [[Hg_instructions_for_mentors#Mercurial_Tips_for_SoC_students | This page]] describes the procedures students are expected to use to publicly display their progress in a public mercurial repo during their work.<br />
* '''The Maintainers Mailing List'''<br />
: We primarily use [https://lists.gnu.org/mailman/listinfo/octave-maintainers mailing lists] for communication among developers.<br />
: The mailing list is used most often for discussions about non-trivial changes to Octave, or for setting the direction of development.<br />
: You should follow basic mailing list etiquette. For us, this mostly means "do not [https://en.wikipedia.org/wiki/Posting_style#Top-posting top post]".<br />
* '''The IRC Channel'''<br />
: We also have [http://webchat.freenode.net?channels=octave the #octave IRC channel in Freenode].<br />
: You should be familiar with the IRC channel. It's very helpful for new contributors (you) to get immediate feedback on ideas and code.<br />
: Unless your primary mentor has a strong preference for some other method of communication, the IRC channel will likely be your primary means of communicating with your mentor and Octave developers.<br />
* '''The Octave Forge Project'''<br />
: [http://octave.sf.net Octave-Forge] is a project closely related to Octave where packages reside. They are somewhat analogous to Matlab's toolboxes.<br />
* '''Related Skills'''<br />
: In addition, you probably should know '''some''' mathematics, engineering, or experimental science or something of the sort.<br />
: If you've used Matlab before, you probably have already been exposed to the kinds of problems that Octave is used for.<br />
<br />
== Criteria by which applications are judged ==<br />
<br />
These might vary somewhat depending on the mentors and coordinators for a particular Summer of Code, but typically the main factors considered would be:<br />
<br />
* '''Applicant has demonstrated an ability to make substantial modifications to Octave'''<br />
: The most important thing is that your application has some interesting code samples to judge you by. It's ok during the application period to ask for help on how to format these code samples, which normally are Mercurial patches.<br />
<br />
* '''Applicant shows understanding of topic'''<br />
: Your application should make it clear that you're reasonably well versed in the subject area and won't need all summer just to read up on it.<br />
<br />
* '''Applicant shows understanding of and interest in Octave development'''<br />
: The best evidence for this is previous contributions and interactions.<br />
<br />
* '''Well thought out, adequately detailed, realistic project plan'''<br />
: "I'm good at this, so trust me" isn't enough. You should describe which algorithms you'll use and how you'll integrate with existing Octave code. You should also prepare a full timeline and goals for the midterm and final evaluations.<br />
<br />
<noinclude>[[Category:Summer of Code]]</noinclude><br />
<br />
= Suggested projects =<br />
<br />
The following projects are broadly grouped by category and probable skills required to tackle each. Remember to check [[Projects]] for more ideas if none of these suit you, and your own ideas are always welcome.<br />
<br />
== Numerical ==<br />
<br />
These projects involve implementing certain mathematical functions in Octave.<br />
<br />
'''Required skills''': You should understand quite a bit of mathematics. Words like "eigenvalue", "analytic", and "Taylor series" shouldn't scare you at all. There is probably little C++ experience required, and probably many of these problems can be solved with m-scripts.<br />
<br />
'''Difficulty''': Mid-to-hard depending how much mathematics you know and how well you can read numerical analysis journal articles.<br />
<br />
'''Potential mentor''': Carlo de Falco, Fotios Kasolis, Luis Gustavo Lira, JuanPi Carbajal<br />
<br />
=== General purpose Finite Element library ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Octave-Forge already has a set of packages for discretizing Partial Differential operators by Finite Elements and/or Finite Volumes,<br />
namely the [[bim package]] which relies on the [http://octave.sf.net/msh msh package] (which is in turn based on [http://geuz.org/gmsh/ gmsh]) for creating and managing 2D triangular and 3D tetrahedral meshes and on the [http://octave.sf.net/fpl fpl package] for visualizing 2D results within Octave or exporting 2D or 3D results in a format compatible with [http://www.paraview.org Paraview] or [https://wci.llnl.gov/codes/visit/ VisIT]. These packages, though, offer only a limited choice of spatial discretization methods which are based on low degree polynomials and therefore have a low order of accuracy even for problems with extremely smooth solutions.<br />
The [http://geopdes.sf.net GeoPDEs] project, on the other hand, offers a complete suite of functions for discretizing a wide range of<br />
differential operators related to important physical problems and uses basis functions of arbitrary polynomial degree that allow the construction of methods of high accuracy. These latter, though, are based on the IsoGeometric Analysis Method which, although very powerful and often better performing, is less widely known and adopted than the Finite Elements Method. The implementation of a general purpose library of Finite Elements seems therefore a valuable addition to Octave-Forge. Two possible interesting choices for implementing this package exist, the first consists of implementing the most common Finite Element spaces in the [http://geopdes.sf.net GeoPDEs] framework, which is possible as IsoGeometric Analysis can be viewed as a superset of the Finite Element Method, the other is to construct Octave language bindings for the free software library [http://fenicsproject.org/documentation/ FEniCS] based on the existing C++ or Python interfaces. This second approach has been developed during the GSOC 2013 and the Octave-Forge package [http://octave.sf.net/fem-fenics fem-fenics] is now available. However, fem-fenics could be extended in many different ways:<br />
* implement the bindings for the UFL language inside Octave<br />
* add new functions already available with Fenics but not yet in Octave<br />
* create new functions specifically suited for Octave<br />
* improve the efficiency of the code<br />
The main goal for the fem-fenics package is ultimately to be merged with the FEnics project itself, so that it can remain in-sync with the main library development.<br />
<br />
'''Potential mentor''': Marco Vassallo<br />
<br />
=== Improve logm, sqrtm, funm ===<br />
<br />
possible mentor: Jordi<br />
<br />
The goal here is to implement some missing Matlab functions related to matrix functions like the [http://en.wikipedia.org/wiki/Matrix_exponential matrix exponential]. There is [http://octave.1599824.n4.nabble.com/matrix-functions-td3137935.html a general discussion] of the problem.<br />
<br />
=== Generalised eigenvalue problem ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
[http://www.mathworks.com/help/techdoc/ref/eig.html Certain calling forms] of the <tt>eig</tt> function are missing. The problem is to understand what those missing forms are and implement them.<br />
<br />
=== Various sparse matrix improvements ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
The implementation of sparse matrices in Octave needs several improvements. Any of [[Projects#Sparse Matrices|these]] would be good. The paper by [http://arxiv.org/abs/cs.MS/0604006 Bateman & Adler] is good reading for understanding the sparse matrix implementation.<br />
<br />
=== Implement solver for initial-boundary value problems for parabolic-elliptic PDEs in 1D ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
The project will deliver a solver for initial-boundary value problems for parabolic-elliptic PDEs in 1D similar to Matlab's function <tt>pdepe</tt>. A good starting point is the [http://en.wikipedia.org/wiki/Method_of_lines method of lines] for which you can find more details [http://en.wikibooks.org/wiki/Partial_Differential_Equations/Method_of_Lines here] and [http://www.scholarpedia.org/article/Method_of_lines here], whereas an example implementation can be found [http://www.scholarpedia.org/article/Method_of_Lines/Example_Implementation here]. In addition, [http://www.pdecomp.net/ this page] provides some useful material.<br />
<br />
=== Implement solver for 1D nonlinear boundary value problems ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
The project will complete the implementation of the bvp4c solver that is already available in an initial version in the odepkg package<br />
by adding a proper error estimator and will implement a matlab-compatible version of the bvp5c solver.<br />
Details on the methods to be implemented can be found in [http://dx.doi.org/10.1145/502800.502801 this paper] on bvp4c and [http://www.jnaiam.net/new/uploads/files/014dde86eef73328e7ab674d1a32aa9c.pdf this paper] on bvp5c. Further details are available in [http://books.google.it/books/about/Nonlinear_two_point_boundary_value_probl.html?id=s_pQAAAAMAAJ&redir_esc=y this book].<br />
<br />
=== Geometric integrators for Hamiltonian Systems ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
[http://openlibrary.org/books/OL9056139M/Geometric_Numerical_Integration Geometric (AKA Symplectic) integrators] are useful for <br />
multi-dimensional classical mechanics problems and for molecular dynamics simulations.<br />
The odepkg package has a number of solvers for ODE, DAE and DDE problems but none of them is currently<br />
specifically suited for second order problems in general and Hamiltonian systems in particular.<br />
Therefore a new package for geometric integrators would be a useful contribution.<br />
This could be created as new package or added as a set of new functions for odepkg.<br />
The function interface should be consistent throughout the package and should be modeled to follow <br />
that of other functions in odepkg (or that of DASPK and LSODE) but will need specific extensions to accommodate for specific options that only make sense for this specific class of solvers.<br />
An initial list of methods to be implemented includes (but is not limited to)<br />
* Symplectic Euler methods, see [http://en.wikipedia.org/wiki/Semi-implicit_Euler_method here] and [http://openlibrary.org/books/OL9056139M/Geometric_Numerical_Integration here]<br />
* Störmer-Verlet method, see [http://en.wikipedia.org/wiki/Verlet_integration here] and [http://openlibrary.org/books/OL9056139M/Geometric_Numerical_Integration here]<br />
* Velocity Verlet method, see [http://en.wikipedia.org/wiki/Verlet_integration here] and [http://openlibrary.org/books/OL9056139M/Geometric_Numerical_Integration here]<br />
* Symplectic partitioned Runge-Kutta methods, see [http://reference.wolfram.com/mathematica/tutorial/NDSolveSPRK.html here] or [http://dx.doi.org/10.1137/0733019 here]<br />
* Spectral Variational Integrator methods, see [http://www3.nd.edu/~izaguirr/papers/acta_numerica.pdf here] or [http://www.math.ucsd.edu/~mleok/pdf/HaLe2012_SVI.pdf here]<br />
<br />
For this latter there is an existing code which is already working but needs to be improved, posted on the patch tracker.<br />
Furthermore, methods to implement solutions of problems with rigid constraints should be implemented, e.g.<br />
* SHAKE, see [http://en.wikipedia.org/wiki/Constraint_algorithm here] or [http://dx.doi.org/10.1016/0021-9991(77)90098-5 here]<br />
* RATTLE, see [http://dx.doi.org/10.1016/0021-9991(83)90014-1 here] or [http://dx.doi.org/10.1002/jcc.540161003 here]<br />
<br />
'''Potential mentor:''' Mattia Penati, Edie Miglio, Carlo de Falco<br />
<br />
=== Matlab-compatible ODE solvers in core-Octave ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
* Adapt "odeset" and "odeget" from the odepkg package so that the list of supported options is more Matlab-compatible, in the sense that all option names that are supported by Matlab should be available. On the other hand, Matlab returns an error if an option which is not in the list of known options is passed to "odeset", but we would rather make this a warning in order to allow for special extensions, for example for symplectic integrators.<br />
* Adapt the interface of "ode45" in odepkg to be completely Matlab compatible, fix its code and documentation style and move it to Octave-core.<br />
* Build Matlab compatible versions of "ode15s" and "ode15i". jwe has prototype implementations [https://savannah.gnu.org/patch/index.php?8102|here] of these built as wrappers to "dassl" and "daspk". An initial approach could be to just improve these wrappers, but eventually it would be better to have wrappers for "IDA" from the sundials library.<br />
* Implement Matlab compatible versions of "deval".<br />
<br />
'''Potential mentor:''' Sebastian Schöps, Carlo de Falco, JuanPi Carbajal<br />
<br />
=== Nonlinear and constrained least squares ===<br />
<br />
The [[Optimization package]] is missing the functions <tt>lsqcurvefit</tt>, <tt>lsqlin</tt>, <tt>lsqnonlin</tt> to conveniently solve least-squares problems that are nonlinear and/or constrained. There are free implementations of the needed algorithms in other languages, such as [http://www.netlib.org/minpack/ minpack] in Fortran and [http://users.ics.forth.gr/~lourakis/levmar/ levmar] in C. This project would link to or port these implementations and develop Matlab-compatible Octave wrappers.<br />
<br />
'''Mentor:''' Nir Krakauer<br />
<br />
=== TISEAN package ===<br />
<br />
[http://www.mpipks-dresden.mpg.de/~tisean/Tisean_3.0.1/index.html TISEAN] is a suite of code for nonlinear time series analysis. It is old but there are many algorithms there that haven't been re-implemented as libre software. The objective is to integrate TISEAN as a<br />
octave package as it was done for the Control package.<br />
The functions cuould be integrated in the existing [http://octave.sourceforge.net/tsa/ time series analysis] package<br />
<br />
'''Required skills''': m-file scripting, c/C++ and FORTRAN API knowledge. <br />
<br />
'''Difficulty''': easy/medium<br />
<br />
'''Mentor''': [[User:KaKiLa]]<br />
<br />
=== High Precision Arithmetic Computation ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
The Linear Algebra Fortran libraries used by Octave make use of of single (32 bits) and double (64 bits) precision floating point numbers. Many operations are stopped when matrices condition number goes below 1e-16: such matrices are considered as ill-conditioned. There are cases where this is not enough, for instance simulations implying chemical concentrations covering the range 10^4 up to 10^34. There are a number of ways to increase the numerical resolution, like f.i. make use of 128 bits quadruple precision numbers available in GFortran. A simpler option is to build an interface over Gnu MPL arbitrary precision library, which is used internally by gcc and should be available on any platform where gcc runs. Such approach has been made available for MatLab under the name mptoolbox and is licensed under a BSD license. The author kindly provided a copy of the latest version and agreed to have it ported under Octave and re-distributed under GPL v3.0<br />
<br />
The architecture consists of an Octave class interface implementing "mp" (multi-precision) objects. Arithmetic operations are forwarded to MPL using MEX files. This is totally transparent to the end user, except when displaying numbers. This implementation needs to be ported and tested under Octave. <br />
<br />
'''Required skills''': Octave classes and object programming. C for understanding the MEX glue code.<br />
<br />
'''Difficulty''': medium.<br />
<br />
'''Potential mentor''': Pascal Dupuis<br />
<br />
<br />
== GUI ==<br />
<br />
Octave currently includes an experimental native GUI, written in Qt. There are various ways in which it could be improved.<br />
<br />
'''Required skills''': C++ and Qt. Whatever tools you want to use to write Qt code are fine, but Qt Creator is a popular choice nowadays.<br />
<br />
'''Difficulty''': Mostly medium, depending if you've had Qt or GUI development experience before.<br />
<br />
'''Potential mentor''': Jordi Gutiérrez Hermoso, Michael Goffioul, Torsten<br />
<br />
=== Finish the Octave GUI ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
<strike><br />
The GUI is currently on its own branch in hg. It is not stable enough and its design is still in flux. It is in a very alpha stage and needs to be turned into a real usable product. At the moment, it consists of the basic building blocks (terminal window, editor, variable browser, history, file browser) that are put together into a main interface. The GUI uses the Qt library. Among the things to improve are:<br />
* improve integration with octave: variable browser/editor, debugger, profiler...<br />
* define and implement an option/preferences dialog<br />
* improve additional components like the documentation browser<br />
</strike><br />
Fix existing bugs related to the GUI, which can be browsed [https://savannah.gnu.org/bugs/index.php?go_report=Apply&group=octave&func=browse&set=custom&msort=0&report_id=100&advsrch=0&status_id=1&resolution_id=0&assigned_to=0&category_id=107&bug_group_id=0&history_search=0&history_field=0&history_event=modified&history_date_dayfd=5&history_date_monthfd=2&history_date_yearfd=2014&chunksz=50&spamscore=5&boxoptionwanted=1#options here]<br />
<br />
=== Implement a Qt widget for manipulating plots ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Octave has had for some time a native OpenGL plotter. The plotter requires some user interaction for manipulating the plots, and it's been using fltk for quite some time. We want to replace this with Qt, so it fits better with the overall GUI look-and-feel and is easier to extend in the future.<br />
<br />
[https://github.com/goffioul/QtHandles QtHandles] is a current work in progress integrating the octave OpenGL renderer plus good support for GUI elements (uicontrol, uimenu, uitoolbar...). This project may initially consists of integrating the existing QtHandles code base into Octave. Then if time permits, further improvements can be made to QtHandles.<br />
<br />
=== Create a better (G)UI for the profiler ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
During GSoC 2011, Daniel Kraft successfully implemented a profiler for Octave. It needs a better interface and a way to generate reports. This may be done with Qt, but not necessarily, and HTML reports might also be good.<br />
<br />
=== Sisotool. Create a graphical design tool for tuning closed loop control system (control pkg) ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
When tuning a SISO feedback system it is very helpful to be able to grab a pole or a zero and move them by dragging them with the mouse. As they are moving the software must update all the plotted lines. There should be the ability to display various graphs rlocuse, bode, step, impulse etc. and have them all change dynamically as the mouse is moving. The parameters of the compensator must be displayed and updated.<br />
Potential mentor: Doug Stewart<br />
<br />
=== Interface to Electronic Circuit Simulator ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
[http://sourceforge.net/projects/qucs/ Qucs] is a C++ based circuit simulation package. This project aims to improve the interface to the Qucs algorithms to allow the transient, i.e. time series, simulation of circuits in Octave within a larger ODE system simulation driven by Octave. Other possible goals would be to make other analysis types available directly from Octave. There is an existing C++ interface which is based on handle class syntax available in the development version of Octave. The Qucs interface is intended to have two modes, synchronous and asynchronous. The asynchronous mode uses qucs to solve a circuit between two given time steps (internally taking as many smaller time steps as required), returning only the final result. This method is well developed. The alternative synchronous mode is intended to give full control of the time steps to Octave, and it is this mode which requires more work. A simple synchronous interface exists which can be built upon.<br />
<br />
'''Required skills''': C++ and m-file scripting. Familiarity with new classdef syntax would be useful. May require some modification/adaptation of the Qucs sources. Familiarity with the Octave ODE solvers useful but not essential. Ability to compile Octave from the development sources.<br />
<br />
'''Difficulty''': medium.<br />
<br />
'''Potential mentor''': <strike>Richard Crozier</strike> ''Unfortunately I can't mentor this year (2014)''<br />
<br />
'''Main Goals'''<br />
* Improve the functionality of the transient solver interface by implementing a robust synchronous simulation mode that integrates well with Octave ode solvers, particularly those from the odepkg package from OctaveForge. <br />
* Create interface to other analysis types (AC, DC, S-Parameter and Harmonic Balance)<br />
* Packaging the interface for Octave, to make it available through OctaveForge<br />
<br />
== Graphics ==<br />
<br />
Octave has a new native OpenGL plotter (currently via [http://en.wikipedia.org/wiki/Fltk fltk], but we want to move away from that). There are several possible projects involved with it.<br />
<br />
'''Required skills''': C++ and OpenGL. General understanding of computer graphics.<br />
<br />
'''Difficulty''': Medium, depending on your previous understanding of the topic.<br />
<br />
'''Potential mentor''': Michael Goffioul<br />
<br />
=== Lighting ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Implement transparency and lighting in OpenGL backend(s). A basic implementation is available in [http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/extra/jhandles/ JHandles]. This needs to be ported/re-implement/re-engineered/optimized in the C++ OpenGL renderer of Octave.<br />
<br />
=== Object selection in OpenGL renderer ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
This project is about the implementation of a selection method of graphics elements within the OpenGL renderer [http://glprogramming.com/red/chapter13.html]<br />
<br />
=== Non-OpenGL renderer ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Besides the original gnuplot backend, Octave also contains an OpenGL-based renderer for advanced and more powerful 3D plots. However, OpenGL is not perfectly suited for 2D-only plots where other methods could result in better graphics. The purpose of this project is to implement an alternate graphics renderer for 2D only plots (although 3D is definitely not the focus, extending the new graphics renderer to support basic 3D features should also be taken into account). There is no particular toolkit/library that must be used, but natural candidates are:<br />
* [http://qt.nokia.com Qt]: the GUI is currently written in Qt and work is also in progress to provide a Qt/OpenGL based backend [https://github.com/goffioul/QtHandles]<br />
* [http://en.wikipedia.org/wiki/Cairo_%28software%29 Cairo]: this library is widely used and known to provides high-quality graphics with support for PS/PDF/SVG output.<br />
<br />
=== TeX/LaTeX markup ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Text objects in plots (like titles, labels, texts...) in the OpenGL renderer only support plain text mode without any formatting possibility. Support for TeX and/or LaTeX formatting needs to be added.<br />
<br />
* The TeX formatting support actually only consists of a very limited subset of the TeX language. This can be implemented directly in C++ into Octave by extending the existing text engine, avoiding to add a dependency on a full TeX system. Essentially, support for Greek letters, super/sub-scripts, and several mathematical symbols needs to be supported. For example,<br />
<br />
:<pre>\alpha \approx \beta_0 + \gamma^\chi</pre><br />
<br />
:Would be rendered as,<br />
<br />
:&alpha; &asymp; &beta;<sub>0</sub> + &gamma;<sup>&chi;</sup><br />
<br />
:This is analogous to how special characters may be included in a wiki using html.<br />
<br />
:<pre>&amp;alpha; &amp;asymp; &amp;beta;<sub>0</sub> + &amp;gamma;<sup>&amp;chi;</sup></pre><br />
<br />
:The text object's {{Codeline|extent}} for the rendered result needs to be calculated and the text placed the location specified by the text object's {{Codeline|position}} property. An itemized list of a text objects properties can be found [http://www.gnu.org/software/octave/doc/interpreter/Text-Properties.html here].<br />
<br />
* On the other hand, the LaTeX formatting support is expected to provide full LaTeX capabilities. This will require to use an external LaTeX system to produce text graphics in some format (to be specified) that is then integrated into Octave plots.<br />
<br />
:The matplotlib project [http://matplotlib.sourceforge.net/users/usetex.html has already done this in Python] and might be used as an example of how to do this in Octave. Mediawiki has also also done [http://en.wikipedia.org/wiki/Wikipedia:Texvc something similar]. There is also [http://forge.scilab.org/index.php/p/jlatexmath/ JLaTeXMath], a Java API to display LaTeX code in mathematical mode.<br />
<br />
== Interpreter ==<br />
<br />
The interpreter is written in C++, undocumented. There are many possible projects associated with it.<br />
<br />
'''Required skills''': ''Very good'' C and C++ knowledge, possibly also understanding of [http://en.wikipedia.org/wiki/Gnu_bison GNU bison] and [http://en.wikipedia.org/wiki/Flex_lexical_analyser flex]. Understanding how compilers and interpreters are made plus being able to understand how to use a profiler and a debugger will probably be essential skills.<br />
<br />
'''Difficulty''': Mid hard to very hard. Some of the biggest problems will probably be the interpreter.<br />
<br />
'''Potential mentors''': John W. Eaton, Jordi Gutiérrez Hermoso, Max Brister.<br />
<br />
=== Improve JIT compiling ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Octave's interpreter is ''very'' slow on some loops. Recently, thanks to Max Brister's work, an initial implement of a just-in-time compiler (JITC) in [http://llvm.org LLVM] for GSoC 2012. This project consists in understanding Max's current implementation and extending it so that functions and exponents (e.g. 2^z) compile with the JITC. This requires knowledge of compilers, C++, LLVM, and the Octave or Matlab languages. A capable student who demonstrates the ability to acquire this knowledge quickly may also be considered. Max himself will mentor this project. [http://planet.octave.org/octconf2012/jit.pdf Here] is Max's OctConf 2012 presentation about his current implementation. See also [[JIT]].<br />
<br />
=== Improve memory management ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
From profiling the interpreter, it appears that a lot of time is spending allocating and deallocating memory. A better memory management algorithm might provide some improvement.<br />
<br />
=== Implement classdef classes ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Matlab has two kinds of classes: old style @classes and new style classdef. Octave has only fully implemented the old style. There is partial support for new classes in [http://hg.savannah.gnu.org/hgweb/octave/shortlog/classdef our classdef branch]. There is irregular work here, and classdef is [http://www.mathworks.com/help/matlab/matlab_oop/method-attributes.html a very] [http://www.mathworks.com/help/matlab/events-sending-and-responding-to-messages.html complicated] [http://www.mathworks.com/help/matlab/enumeration-classes.html thing] to fully implement. A successful project would be to implement enough of classdef for most basic usages. Familiarity with Matlab's current classdef support would be a huge plus. Michael Goffioul and jwe can mentor this.<br />
<br />
Although there's already a substantial classdef support in current octave code base, there are still many areas that are unimplemented or need improvements. The main ones that come to my mind are:<br />
* support for events<br />
* support for enums<br />
* support for "import" (this requires good understanding of octave internals, especially he symbol table)<br />
* improving multiple inheritance and method resolution<br />
* honoring and computing "Sealed" attribute<br />
* support for function handle to methods<br />
<br />
=== Improve MPI package ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
Octave Forge's [http://octave.sourceforge.net/mpi/index.html MPI package] <br />
is a wrapper for basic MPI functions for parallel computing. It is implemented <br />
by wrapping MPI function calls in simple DLD functions that map Octave's Datataypes to <br />
MPI Derived Datatypes. <br />
The proposed project deals with improving and extending the Octave MPI package, for example:<br />
* Octave MPI applications can currently be only run in batch mode, add the ability to launch parallel jobs and collect their output in an interactive Octave session.<br />
* Implement functions for non-blocking communication (MPI_Isend, MPI_Irecv)<br />
* Implement one-to-many (Broadcast, Scatter), many-to-one (Reduce, Gather), and many-to-many (All Reduce, Allgather) communication routines<br />
<br />
'''Required skills''': C++. Message Passing Interface (MPI).<br />
<br />
'''Difficulty''': medium.<br />
<br />
'''Potential mentor''': Carlo de Falco, Michael Creel, Sukanta Basu<br />
<br />
<br />
== Infrastructure ==<br />
<br />
There are several projects closely related to Octave but not exactly core Octave that could be worked on. They are mostly infrastructure around Octave, stuff that would help a lot.<br />
<br />
'''Required skills''': Various. See below.<br />
<br />
'''Difficulty''': Various. See below.<br />
<br />
'''Potential mentor''': Jordi Gutiérrez Hermoso, Carlo de Falco, JuanPi Carbajal<br />
<br />
=== Finish the Agora website ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
In 2009, the Mathworks decided to restrict the terms of use Matlab Central, a place dedicated to Matlab collaboration. The Mathworks forbade copyleft licenses and using the "free" code found in Matlab central on anything other than Mathworks products (e.g. forbidding from using it on Octave, even if the authors of the code wanted to allow this). Thus Octave users have no place to centrally, quickly, and conveniently share Octave code. See the [[FAQ#Why_can.27t_I_use_code_from_File_Exchange_in_Octave.3F_It.27s_released_under_a_BSD_license.21|FAQ]] for more details.<br />
<br />
In response to this, a website started to form, [http://agora.octave.org/ Agora Octave].<br />
<br />
This should be relatively easy webdev in Python using [http://en.wikipedia.org/wiki/Django_%28web_framework%29 Django].<br />
<br />
Things to be considered when working on this:<br />
<br />
* [http://octave-forge.blogspot.ie/2012/08/octconf2012-agora-and-pkg.html discussion of Agora during OctConf2012]<br />
* [http://scipy-central.org/ Scipy Central] - a website with the same objective as Agora for Scipy. Their [https://github.com/scipy/SciPyCentral Code] is released under a BSD license. Might be useful to reuse some parts.<br />
<br />
Most of the basic functionality of Agora is already in, but there are many ways in which it could be improved, such as implementing comment threads, giving it an email interface, or a ReSTful API which could be used from Octave for package management. See also [[Agora]].<br />
<br />
=== Improve binary packaging ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
We would like to be able to easily generate binary packages for Windows and Mac OS X. Right now, it's difficult and tedious to do so. Any way to help us do this in a faster way would be appreciated. Required knowledge is understanding how building binaries in Windows and Mac OS X works. Our current approach to fixing this is to cross-compile from a GNU system using [http://mxe.cc/ MXE] or [http://lilypond.org/gub/ GUB].<br />
<br />
'''Skills Required''': Knowledge of GNU build systems, Makefiles, configure files, chasing library dependencies, how to use a compiler. If you choose to work on GUB, Python will be required. No m-scripting or C++ necessary, beyond understanding [http://david.rothlis.net/c/compilation_model/ the C++ compilation model].<br />
<br />
'''Difficulty''': Medium to easy. You need to understand how build systems work and how to fix packages when they don't build.<br />
<br />
'''Possible mentors''': John W. Eaton or Jordi Gutiérrez Hermoso<br />
<br />
=== Installation of packages ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
We would like to enhance the management of Octave-forge packages from within Octave environment. Currently there is a working (but rather monolithic) function that is used to do the job. The work would be to improve the way Octave interacts with the package server. Since the functionality is already sketched by the current function, the most important skill is software design.<br />
<br />
'''Minimum requirements''': Ability to read and write Octave code. Minimal FTP/HTTP knowledge.<br />
<br />
'''Difficulty''': Easy<br />
<br />
== Image Analysis ==<br />
<br />
=== Improvements to N-dimensional image processing ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
The image package has partial functionality for N-dimensional images. These images exist for example in medical imaging where slices from scans are assembled to form anatomical 3D images, or even exposures taken over time at different wavelengths can result in 5D images. As part of GSoC 2013, the core functions {{codeline|imwrite}} and {{codeline|imread}} were extended to better support this type of image. Likewise, many functions in the image package, mostly morphology operators, were expanded to deal with this type of image. Still, many are left, specially image transformation and analysis of ROIs.<br />
<br />
Note that while many functions in the image package will not complain about ND images, they are actually not correctly implemented and will give incorrect results for ND.<br />
<br />
'''Required skills''': m-file scripting, and a fair amount of C++ since a lot of image analysis cannot be vectorized. Familiarity with common CS algorithms and willingness to read literature describing new algorithms will be useful. <br />
<br />
'''Difficulty''': difficult<br />
<br />
'''Potential mentor''': Carnë Draug<br />
<br />
<br />
=== Color management functions in image package ===<br />
<br />
{{Warning|requires review and mentor}}<br />
<br />
The goal is to implement these functions:<br />
<br />
iccread<br />
iccwrite<br />
makecform<br />
applycform<br />
<br />
These functions are useful for color management, in particular for converting data (especially images) between color spaces. ICC profiles are essentially used to store look-up tables or matrix transforms (or both) that define the conversions. For example, to convert an CMYK image to sRGB, you would load a "print" ICC profile that defines the conversion from CMYK to L*a*b* (the CIE color space that is supposed to match the human visual system), then load another profile that defines the conversion from L*a*b* to sRGB (there is a standard profile for this conversion (IEC 61966-2-1), which is why Matlab has a built-in conversion from sRGB to L*a*b*). To do the above conversions in Matlab, you would use the following code:<br />
<br />
<syntaxhighlight lang="octave"><br />
cmykImage = double(imread('cmyk-image-filename.tif'));<br />
iccProfile = iccread('icc-profile-filename.icc');<br />
labImage = applycform(cmykImage, makecform('clut', iccProfile, 'AToB3'));<br />
rgbImage = applycform(labImage, makecform('lab2srgb'));<br />
</syntaxhighlight><br />
<br />
The <code>'AToB3'</code> selects one of the color transforms (look-up tables) contained in the profile. This one is "Absolute Colorimetric." More details on ICC profiles may be obtained from [http://www.color.org/icc_specs2.xalter the ICC spec].<br />
<br />
Knowledge of ICC profiles (at least knowledge of their application) would be a prerequisite. Since [http://www.littlecms.com/ littlecms] implements all the necessary functions for reading, writing, and applying profiles, it would be primarily a matter of integrating this library into Octave (assuming that is the preferred implementation -- one could certainly read the ICC files directly, but why reinvent that particular wheel).<br />
<br />
'''Required skills''': C++ programming, some knowledge of ICC profiles desirable.<br />
<br />
'''Difficulty''': Easy.<br />
<br />
'''Possible Mentor''': TBD</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=Project_liboctave_4.2&diff=5257Project liboctave 4.22015-01-08T17:05:14Z<p>JordiGH: </p>
<hr />
<div>Especially for new developers it is hard to get started with liboctave, one of the core elements of GNU Octave. Liboctave defines and implements data types, operators, and much more. To change that state this long term project has the following goals:<br />
<br />
* Document the existing code for developers (Doxygen)<br />
* Bring all the data types into order<br />
* Reduce the code to a sufficient minimum<br />
* Remove macros where possible<br />
<br />
= Milestone 1 - The Array hierarchy =<br />
<br />
A first desirable milestone is to start with the root of all advanced data types. The class Array. Here is a Doxygen generated picture of the current state inside the development version of liboctave. <br />
<br />
[[File:liboctave-arrays-2014-11-26.jpg]]<br />
<br />
Questions / Tasks:<br />
<br />
* On any changes to this structure there is an API-Constraint with [https://www.gnu.org/software/octave/doc/interpreter/Oct_002dFiles.html Oct-Files].<br />
** TODO: Document inside the C++-Classes that this are API relevant classes.<br />
<br />
* Identify the difference between for example Array<char>, charNDArray, and charMatrix<br />
** What is necessary?<br />
** What are preservable convenience classes?<br />
** Is there code redundancy?<br />
<br />
* Is there a necessity to specialize?<br />
** e.g. ComplexRowVector and RowVector vs. RowVector<T><br />
<br />
* Does every file name reflect its content? (Nested classes, etc.)</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=5092OctConf 20142014-09-21T17:44:33Z<p>JordiGH: /* Code Sprint */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
<br />
[[File:Octconf-2014.png|400px|thumb|right|OctConf 2014]] <br />
<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 24 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso]. A higher end option could be the [https://www.deltahotels.com/Hotels/Delta-Montreal Delta].<br />
<br />
As for getting around, the metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
We will schedule sessions in an [https://en.wikipedia.org/wiki/Unconference unconference] style. Basically, this means we will decide the schedule when we first get there. Any time when someone is not giving talk is open for code sprints.<br />
<br />
[https://titanpad.com/HXZTvtiUyM Link to Titanpad here!]<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|<br />
|''Friday''<br />
|''Saturday''<br />
|''Sunday''<br />
|-<br />
|09:00<br />
|Introductions, greetings, setting the agenda<br />
|What is Octave? (Jordi Gutiérrez Hermoso)<br />
|Session 1<br />
|-<br />
|10:30<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|-<br />
|10:45<br />
|Project Infrastructure<br />
|CoolProp and What It Does (Kumar)<br />
|Session 2<br />
|-<br />
|12:30<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|-<br />
|14:30<br />
|Bug reporting woes<br />
|Hydra and GNU (Mike Miller)<br />
|Session 3<br />
|-<br />
|15:15<br />
|GPL Issues<br />
|Octave for teaching AI, Signal Processing, and Computational Neuroscience (Jean Rouat)<br />
|Session 4<br />
|-<br />
|16:00<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|-<br />
|16:15<br />
|4.0 release discussion<br />
|GUI background command (Dan Sebald & Jordi Gutiérrez Hermoso)<br />
|Session 5<br />
|-<br />
|17:30<br />
|Performance loss over time (Rik)<br />
|Session 6<br />
|Session 6<br />
|-<br />
|18:30<br />
|<br />
|Social event at Benelux brewpub<br />
|<br />
|}<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Slides ==<br />
<br />
* [http://mtmxr.com/octave-hydra-slides Hydra and Octave] - Mike<br />
<br />
== Code Sprint ==<br />
<br />
The code sprint will be focused on improving coverage of our test suite. The coverage report is in HTML format and lets you browse through the code tree and see which paths are exercised or not. The latest generated coverage report is [http://hydra.nixos.org/job/gnu/octave-default/coverage/latest/download here].<br />
<br />
We will be writing tests again. Look through the test coverage, and pick something that doesn't have tests yet. Announce in IRC which function you're going to write a test for. Write it. If you have push access, push your test. Otherwise, post a Mercurial patch that someone else can apply for. Keep pulling from Savannah as we keep working on this.<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Rik|Rik]]<br />
* [[User:goffioul|Michael Goffioul]]<br />
* [[User:jrouat|Jean Rouat]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=5078OctConf 20142014-09-20T14:34:10Z<p>JordiGH: /* Schedule */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
<br />
[[File:Octconf-2014.png|400px|thumb|right|OctConf 2014]] <br />
<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 24 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso]. A higher end option could be the [https://www.deltahotels.com/Hotels/Delta-Montreal Delta].<br />
<br />
As for getting around, the metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
We will schedule sessions in an [https://en.wikipedia.org/wiki/Unconference unconference] style. Basically, this means we will decide the schedule when we first get there. Any time when someone is not giving talk is open for code sprints.<br />
<br />
[https://titanpad.com/HXZTvtiUyM Link to Titanpad here!]<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|<br />
|''Friday''<br />
|''Saturday''<br />
|''Sunday''<br />
|-<br />
|09:00<br />
|Introductions, greetings, setting the agenda<br />
|What is Octave? (Jordi Gutiérrez Hermoso)<br />
|Session 1<br />
|-<br />
|10:30<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|-<br />
|10:45<br />
|Project Infrastructure<br />
|CoolProp and What It Does (Kumar)<br />
|Session 2<br />
|-<br />
|12:30<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|-<br />
|14:30<br />
|Bug reporting woes<br />
|Hydra and GNU (Mike Miller)<br />
|Session 3<br />
|-<br />
|15:15<br />
|GPL Issues<br />
|Octave for teaching AI, Signal Processing, and Computational Neuroscience (Jean Rouat)<br />
|Session 4<br />
|-<br />
|16:00<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|-<br />
|16:15<br />
|4.0 release discussion<br />
|GUI background command (Dan Sebald & Jordi Gutiérrez Hermoso)<br />
|Session 5<br />
|-<br />
|17:30<br />
|Performance loss over time (Rik)<br />
|Session 6<br />
|Session 6<br />
|-<br />
|18:30<br />
|<br />
|Social event at Benelux brewpub<br />
|<br />
|}<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Rik|Rik]]<br />
* [[User:goffioul|Michael Goffioul]]<br />
* [[User:jrouat|Jean Rouat]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=5077OctConf 20142014-09-20T14:28:18Z<p>JordiGH: /* Schedule */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
<br />
[[File:Octconf-2014.png|400px|thumb|right|OctConf 2014]] <br />
<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 24 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso]. A higher end option could be the [https://www.deltahotels.com/Hotels/Delta-Montreal Delta].<br />
<br />
As for getting around, the metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
We will schedule sessions in an [https://en.wikipedia.org/wiki/Unconference unconference] style. Basically, this means we will decide the schedule when we first get there. Any time when someone is not giving talk is open for code sprints.<br />
<br />
[https://titanpad.com/HXZTvtiUyM Link to Titanpad here!]<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|<br />
|''Friday''<br />
|''Saturday''<br />
|''Sunday''<br />
|-<br />
|09:00<br />
|Introductions, greetings, setting the agenda<br />
|What is Octave? (Jordi Gutiérrez Hermoso)<br />
|Session 1<br />
|-<br />
|10:30<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|-<br />
|10:45<br />
|Project Infrastructure<br />
|CoolProp and What It Does (Kumar)<br />
|Session 2<br />
|-<br />
|12:30<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|-<br />
|14:30<br />
|Bug reporting woes<br />
|Hydra and GNU (Mike Miller)<br />
|Session 3<br />
|-<br />
|15:15<br />
|GPL Issues<br />
|Octave for teaching AI, Signal Processing, and Computational Neuroscience (Jean Rouat)<br />
|Session 4<br />
|-<br />
|16:00<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|-<br />
|16:15<br />
|4.0 release discussion<br />
|Session 5<br />
|Session 5<br />
|-<br />
|17:30<br />
|Performance loss over time (Rik)<br />
|Session 6<br />
|Session 6<br />
|-<br />
|18:30<br />
|<br />
|Social event at Benelux brewpub<br />
|<br />
|}<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Rik|Rik]]<br />
* [[User:goffioul|Michael Goffioul]]<br />
* [[User:jrouat|Jean Rouat]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=5074OctConf 20142014-09-19T14:29:44Z<p>JordiGH: /* Schedule */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
<br />
[[File:Octconf-2014.png|400px|thumb|right|OctConf 2014]] <br />
<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 24 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso]. A higher end option could be the [https://www.deltahotels.com/Hotels/Delta-Montreal Delta].<br />
<br />
As for getting around, the metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
We will schedule sessions in an [https://en.wikipedia.org/wiki/Unconference unconference] style. Basically, this means we will decide the schedule when we first get there. Any time when someone is not giving talk is open for code sprints.<br />
<br />
[https://titanpad.com/HXZTvtiUyM Link to Titanpad here!]<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|<br />
|''Friday''<br />
|''Saturday''<br />
|''Sunday''<br />
|-<br />
|09:00<br />
|Introductions, greetings, setting the agenda<br />
|Session 1<br />
|Session 1<br />
|-<br />
|10:30<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|-<br />
|10:45<br />
|Project Infrastructure<br />
|Session 2<br />
|Session 2<br />
|-<br />
|12:30<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|-<br />
|14:30<br />
|Bug reporting woes<br />
|Session 3<br />
|Session 3<br />
|-<br />
|15:15<br />
|GPL Issues<br />
|Session 4<br />
|Session 4<br />
|-<br />
|16:00<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|-<br />
|16:15<br />
|4.0 release discussion<br />
|Session 5<br />
|Session 5<br />
|-<br />
|17:30<br />
|Performance loss over time (Rik)<br />
|Session 6<br />
|Session 6<br />
|-<br />
|18:30<br />
|<br />
|Social event at Benelux brewpub<br />
|<br />
|}<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Rik|Rik]]<br />
* [[User:goffioul|Michael Goffioul]]<br />
* [[User:jrouat|Jean Rouat]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=5073OctConf 20142014-09-19T14:28:02Z<p>JordiGH: /* Schedule */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
<br />
[[File:Octconf-2014.png|400px|thumb|right|OctConf 2014]] <br />
<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 24 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso]. A higher end option could be the [https://www.deltahotels.com/Hotels/Delta-Montreal Delta].<br />
<br />
As for getting around, the metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
We will schedule sessions in an [https://en.wikipedia.org/wiki/Unconference unconference] style. Basically, this means we will decide the schedule when we first get there. Any time when someone is not giving talk is open for code sprints.<br />
<br />
[https://titanpad.com/HXZTvtiUyM Link to Titanpad here!]<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|<br />
|''Friday''<br />
|''Saturday''<br />
|''Sunday''<br />
|-<br />
|09:00<br />
|Introductions, greetings, setting the agenda<br />
|Session 1<br />
|Session 1<br />
|-<br />
|10:30<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|-<br />
|10:45<br />
|Project Infrastructure<br />
|Session 2<br />
|Session 2<br />
|-<br />
|12:30<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|-<br />
|14:30<br />
|Bug reporting woes<br />
|Session 3<br />
|Session 3<br />
|-<br />
|15:15<br />
|GPL Issues<br />
|Session 4<br />
|Session 4<br />
|-<br />
|16:00<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|-<br />
|16:15<br />
|4.0 release discussion<br />
|Session 5<br />
|Session 5<br />
|-<br />
|15:15<br />
|Performance loss over time (Rik)<br />
|Session 6<br />
|Session 6<br />
|-<br />
|18:30<br />
|<br />
|Social event at Benelux brewpub<br />
|<br />
|}<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Rik|Rik]]<br />
* [[User:goffioul|Michael Goffioul]]<br />
* [[User:jrouat|Jean Rouat]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=5072OctConf 20142014-09-19T14:26:08Z<p>JordiGH: /* Schedule */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
<br />
[[File:Octconf-2014.png|400px|thumb|right|OctConf 2014]] <br />
<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 24 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso]. A higher end option could be the [https://www.deltahotels.com/Hotels/Delta-Montreal Delta].<br />
<br />
As for getting around, the metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
We will schedule sessions in an [https://en.wikipedia.org/wiki/Unconference unconference] style. Basically, this means we will decide the schedule when we first get there. Any time when someone is not giving talk is open for code sprints.<br />
<br />
[https://titanpad.com/HXZTvtiUyM Link to Titanpad here!]<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|<br />
|''Friday''<br />
|''Saturday''<br />
|''Sunday''<br />
|-<br />
|09:00<br />
|Introductions, greetings, setting the agenda<br />
|Session 1<br />
|Session 1<br />
|-<br />
|10:30<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|-<br />
|10:45<br />
|Project Infrastructure<br />
|Session 2<br />
|Session 2<br />
|-<br />
|12:30<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|-<br />
|14:30<br />
|Bug reporting woes<br />
|Session 3<br />
|Session 3<br />
|-<br />
|15:15<br />
|GPL Issues<br />
|Session 4<br />
|Session 4<br />
|-<br />
|16:00<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|-<br />
|16:15<br />
|4.0 release discussion<br />
|Session 5<br />
|Session 5<br />
|-<br />
|18:30<br />
|<br />
|Social event at Benelux brewpub<br />
|<br />
|}<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Rik|Rik]]<br />
* [[User:goffioul|Michael Goffioul]]<br />
* [[User:jrouat|Jean Rouat]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=5071OctConf 20142014-09-19T14:21:47Z<p>JordiGH: /* Schedule */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
<br />
[[File:Octconf-2014.png|400px|thumb|right|OctConf 2014]] <br />
<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 24 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso]. A higher end option could be the [https://www.deltahotels.com/Hotels/Delta-Montreal Delta].<br />
<br />
As for getting around, the metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
We will schedule sessions in an [https://en.wikipedia.org/wiki/Unconference unconference] style. Basically, this means we will decide the schedule when we first get there. Any time when someone is not giving talk is open for code sprints.<br />
<br />
[https://titanpad.com/HXZTvtiUyM Link to Titanpad here!]<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|<br />
|''Friday''<br />
|''Saturday''<br />
|''Sunday''<br />
|-<br />
|09:00<br />
|Introductions, greetings, setting the agenda<br />
|Session 1<br />
|Session 1<br />
|-<br />
|10:30<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|-<br />
|10:45<br />
|Project Infrastructure<br />
|Session 2<br />
|Session 2<br />
|-<br />
|12:30<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|-<br />
|14:30<br />
|Bug reporting woes<br />
|Session 3<br />
|Session 3<br />
|-<br />
|16:00<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|-<br />
|16:15<br />
|Session 4<br />
|Session 4<br />
|Session 4<br />
|-<br />
|18:30<br />
|<br />
|Social event at Benelux brewpub<br />
|<br />
|}<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Rik|Rik]]<br />
* [[User:goffioul|Michael Goffioul]]<br />
* [[User:jrouat|Jean Rouat]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=5070OctConf 20142014-09-19T12:36:06Z<p>JordiGH: </p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
<br />
[[File:Octconf-2014.png|400px|thumb|right|OctConf 2014]] <br />
<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 24 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso]. A higher end option could be the [https://www.deltahotels.com/Hotels/Delta-Montreal Delta].<br />
<br />
As for getting around, the metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
We will schedule sessions in an [https://en.wikipedia.org/wiki/Unconference unconference] style. Basically, this means we will decide the schedule when we first get there. Any time when someone is not giving talk is open for code sprints.<br />
<br />
[https://titanpad.com/HXZTvtiUyM Link to Titanpad here!]<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|<br />
|''Friday''<br />
|''Saturday''<br />
|''Sunday''<br />
|-<br />
|09:00<br />
|Introductions, greetings, setting the agenda<br />
|Session 1<br />
|Session 1<br />
|-<br />
|10:30<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|-<br />
|10:45<br />
|Session 2<br />
|Session 2<br />
|Session 2<br />
|-<br />
|12:30<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|-<br />
|14:30<br />
|Session 3<br />
|Session 3<br />
|Session 3<br />
|-<br />
|16:00<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|-<br />
|16:15<br />
|Session 4<br />
|Session 4<br />
|Session 4<br />
|-<br />
|18:30<br />
|<br />
|Social event at Benelux brewpub<br />
|<br />
|}<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Rik|Rik]]<br />
* [[User:goffioul|Michael Goffioul]]<br />
* [[User:jrouat|Jean Rouat]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=5041OctConf 20142014-09-02T20:13:30Z<p>JordiGH: /* Dates */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
<br />
[[File:Octconf-2014.png|400px|thumb|right|OctConf 2014]] <br />
<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso]. A higher end option could be the [https://www.deltahotels.com/Hotels/Delta-Montreal Delta].<br />
<br />
As for getting around, the metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
We will schedule sessions in an [https://en.wikipedia.org/wiki/Unconference unconference] style. Basically, this means we will decide the schedule when we first get there. Any time when someone is not giving talk is open for code sprints.<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|<br />
|''Friday''<br />
|''Saturday''<br />
|''Sunday''<br />
|-<br />
|09:00<br />
|Introductions, greetings, setting the agenda<br />
|Session 1<br />
|Session 1<br />
|-<br />
|10:30<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|-<br />
|10:45<br />
|Session 2<br />
|Session 2<br />
|Session 2<br />
|-<br />
|12:30<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|-<br />
|14:30<br />
|Session 3<br />
|Session 3<br />
|Session 3<br />
|-<br />
|16:00<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|-<br />
|16:15<br />
|Session 4<br />
|Session 4<br />
|Session 4<br />
|-<br />
|18:30<br />
|<br />
|Social event at Benelux brewpub<br />
|<br />
|}<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Rik|Rik]]<br />
* [[User:Carandraug|Carnë Draug]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=5039OctConf 20142014-08-26T16:21:22Z<p>JordiGH: </p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
<br />
[[File:Octconf-2014.png|400px|thumb|right|OctConf 2014]] <br />
<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso]. A higher end option could be the [https://www.deltahotels.com/Hotels/Delta-Montreal Delta].<br />
<br />
As for getting around, the metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
We will schedule sessions in an [https://en.wikipedia.org/wiki/Unconference unconference] style. Basically, this means we will decide the schedule when we first get there. Any time when someone is not giving talk is open for code sprints.<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|<br />
|''Friday''<br />
|''Saturday''<br />
|''Sunday''<br />
|-<br />
|09:00<br />
|Introductions, greetings, setting the agenda<br />
|Session 1<br />
|Session 1<br />
|-<br />
|10:30<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|-<br />
|10:45<br />
|Session 2<br />
|Session 2<br />
|Session 2<br />
|-<br />
|12:30<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|-<br />
|14:30<br />
|Session 3<br />
|Session 3<br />
|Session 3<br />
|-<br />
|16:00<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|-<br />
|16:15<br />
|Session 4<br />
|Session 4<br />
|Session 4<br />
|-<br />
|18:30<br />
|Social event (TBA, probably beer at a pub or a music event)<br />
|<br />
|<br />
|}<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Rik|Rik]]<br />
* [[User:Carandraug|Carnë Draug]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=File:Octconf-2014.png&diff=5038File:Octconf-2014.png2014-08-26T16:16:48Z<p>JordiGH: </p>
<hr />
<div></div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=IRC&diff=5015IRC2014-08-19T13:46:26Z<p>JordiGH: </p>
<hr />
<div>There's an #octave channel on the freenode IRC servers.<br />
<br />
== Netiquette ==<br />
<br />
; #include <social-behaviour.h><br />
: All other social rules apply, i.e., be nice, be respectful, be helpful, have fun.<br />
; No public logging<br />
: What happens in #octave stays in #octave.<br />
; Just ask your question<br />
: It's the best way to know if anyone can help.<br />
; No paste<br />
: Do not paste code on the channel. Use a paste service such as [http://agora.octave.org/snippet/ Agora], [http://bpaste.net/ bpaste], or [http://paste.debian.net/ paste]. Use [http://picpaste.com/ picpaste] for pictures.<br />
; No private message without permission<br />
: That's considered rude unless you know the other person. Always ask on the channel first and take the conversation to private.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=FAQ&diff=4991FAQ2014-07-21T16:28:28Z<p>JordiGH: /* Why is this floating point computation wrong? */</p>
<hr />
<div>This is a list of frequently asked questions (FAQ) for GNU Octave users.<br />
<br />
We are always looking for new questions (with answers), better answers, or both. Feel free to edit this page with your changes. If you have general questions about GNU Octave, or need help for something that is not covered by the Octave manual or the FAQ, please use the [https://mailman.cae.wisc.edu/listinfo/help-octave help@octave.org mailing list].<br />
<br />
This FAQ is intended to supplement, not replace, the GNU Octave manual. Before posting a question to the [https://mailman.cae.wisc.edu/listinfo/help-octave help@octave.org mailing list], you should first check to see if the topic is covered in the manual.<br />
<br />
=General=<br />
<br />
==What is Octave?==<br />
<br />
GNU Octave is a high-level interactive language, primarily intended for numerical computations, that is mostly compatible with Matlab.<br />
<br />
GNU Octave can do arithmetic for real, complex or integer-valued scalars and matrices, solve sets of nonlinear algebraic equations, integrate functions over finite and infinite intervals, and integrate systems of ordinary differential and differential-algebraic equations.<br />
<br />
GNU Octave uses the GNU readline library to handle reading and editing input. By default, the line editing commands are similar to the cursor movement commands used by GNU Emacs, and a vi-style line editing interface is also available. At the end of each session, the command history is saved, so that commands entered during previous sessions are not lost.<br />
<br />
The GNU Octave distribution includes a 650+ page Texinfo manual. Access to the complete text of the manual is available via the doc command at the GNU Octave prompt.<br />
<br />
==What is Octave-Forge?==<br />
[http://octave.sourceforge.net/ Octave-Forge] is a collection of packages for GNU Octave, something similar to the Matlab toolboxes. When talking about the two projects at the same time, GNU Octave is usually referred to as Octave core (or just ''core''). [http://octave.sourceforge.net/ Octave-Forge] also serves as a test bed for code that may eventually end up in the core, and distributes binaries for systems with a lack of developers tools (mainly Windows).<br />
<br />
==Who uses Octave?==<br />
<br />
Lots of people. It seems that universities use it for research and teaching, companies of all sizes, for development, individuals. This question comes often on Octave mailing lists, see [[Who Uses Octave?]] for a few answers<br />
<br />
==Who develops Octave?==<br />
<br />
Discussions about writing the software that would eventually become Octave started in about 1988 with James B. Rawlings and John W. Eaton at the University of Texas. John W. Eaton was the original author of Octave, starting full-time development in February 1992. He is still the primary maintainer. The community of users/developers has in addition contributed some code and fuels the discussion on the mailing lists help@octave.org (user forum), maintainers@octave.org (development issues).<br />
<br />
==Why "Octave"?==<br />
<br />
Octave's name has nothing to do with music. It's named after [http://en.wikipedia.org/wiki/Octave_Levenspiel Octave Levenspiel], a former professor of John who was famous for his ability to do quick back-of-the-envelope calculations. You can hear John pronounce the name "Octave" a few times [http://videolectures.net/mloss08_eaton_oct/ in this video]. We hope that GNU Octave will help perform computations with the same ease as Dr. Levenspiel.<br />
<br />
==Why <em>GNU</em> Octave?==<br />
<br />
The GNU Project was launched in 1984 to develop a complete Unix-like operating system which is free software: the GNU system.<br />
<br />
GNU is a recursive acronym for “GNU's Not Unix”; it is pronounced guh-noo, approximately like canoe.<br />
<br />
The Free Software Foundation (FSF) is the principal organizational sponsor of the GNU Project.<br />
<br />
Octave became GNU Octave in 1997 (beginning with version 2.0.6). This meant agreeing to consider Octave a part of the GNU Project and support the efforts of the FSF. A big part of this effort is to adhere to the [http://www.gnu.org/prep/standards/standards.html GNU coding standards] and to benefit from GNU's infrastructure (e.g. [http://hg.savannah.gnu.org/hgweb/octave/ code hosting] and [http://bugs.octave.org bug tracking]). Additionally, Octave receives [https://my.fsf.org/donate/working-together/octave sponsorship] from the FSF's Working Together fund. However, Octave is not and has never been developed by the FSF.<br />
<br />
For more information about the GNU project, see http://www.gnu.org.<br />
<br />
==What version should I use?==<br />
<br />
In general, you will find the latest version on http://www.octave.org/download.html. It is recommended to use the stable version of octave for general use, and the development version if you want the latest features and are willing to tolerate instability.<br />
<br />
A list of user-visible changes since the last release is available in the file NEWS. The file ChangeLog in the source distribution contains a more detailed record of changes made since the last release.<br />
<br />
==On what platforms does Octave run?==<br />
<br />
Octave runs on various Unices—at least Linux and Solaris, Mac OS X, Windows and anything you can compile it on. Binary distributions exist at least for Debian, SUSE, Fedora and RedHat Linuxes (Intel and AMD CPUs, at least), for Mac OS X and Windows' 98, 2000, XP, Vista, and 7.<br />
<br />
Two and three dimensional plotting is fully supported using gnuplot and an experimental OpenGL backend.<br />
<br />
The underlying numerical solvers are currently standard Fortran ones like LAPACK, LINPACK, ODEPACK, the BLAS, etc., packaged in a library of C++ classes. If possible, the Fortran subroutines are compiled with the system's Fortran compiler, and called directly from the C++ functions. If that's not possible, you can still compile Octave if you have the free Fortran to C translator f2c.<br />
<br />
Octave is also free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 3, as published by the Free Software Foundation, or at your option any later version.<br />
<br />
==Why are the developers planning to replace Gnuplot with an OpenGL backend?==<br />
<br />
The development of Octave is committed to being both compatible with Matlab and adding additional features. Toward those ends, the development community has chosen to introduce a native OpenGL backend that supports Matlab handle graphics and its uicontrols. The introduction of the experimental fltk graphics toolkit is the first product of this effort. As of the 3.6.N series, the fltk toolkit is approximately as advanced as is the Gnuplot toolkit. It is not yet decided if the fltk toolkit is to become the default backend, or if another OpenGL implementation will replace Gnuplot as the default backend. A Qt OpenGL toolkit is also [https://github.com/goffioul/QtHandles under development].<br />
<br />
There are no plans to remove the gnuplot backend. While a better backend may some day become the new default plotter, the gnuplot backend will still be available as long as our users find it useful.<br />
<br />
==How can I cite Octave?==<br />
<br />
Pointing to http://www.octave.org is good, because that gives people a direct way to find out more. If citation of a URL is allowed by the publisher you can use this entry (update year and version accordingly!):<br />
<br />
<nowiki>@MISC{octave:2014,<br />
author = {{Octave community}},<br />
keywords = {Octave,Software},<br />
title = {{GNU Octave 3.8.1}},<br />
url = {www.gnu.org/software/octave/},<br />
year = {2014}<br />
}</nowiki><br />
<br />
if you also want to point to a traditional reference, then you can cite the Octave manual:<br />
<br />
<nowiki>@BOOK{eaton:2009,<br />
author = {John W. Eaton and David Bateman and S\oren Hauberg},<br />
title = {{GNU Octave} version 3.0.1 manual: a high-level interactive language for numerical computations},<br />
publisher = {CreateSpace Independent Publishing Platform},<br />
year = {2009},<br />
note = {{ISBN} 1441413006},<br />
url = {http://www.gnu.org/software/octave/doc/interpreter},<br />
}</nowiki><br />
<br />
<br />
If you want to acknowledge Octave instead of citing it, you can use text such as this:<br />
<br />
<blockquote><br />
The data has been numerically analyzed with the free software package GNU Octave.<br />
</blockquote><br />
<br />
or<br />
<br />
<blockquote><br />
This work made use of the free software package GNU Octave, and the authors are grateful for the support of the Octave development community.<br />
</blockquote><br />
<br />
==When will feature X be released or implemented?==<br />
When it's ready, sooner if you help. Send us patches if you can. We like patches. If you can't, some developers may be convinced to work on your specific problem for some money.<br />
<br />
==How can I get involved in Octave development?==<br />
<br />
Be around. Be social. Participate in the [https://mailman.cae.wisc.edu/listinfo/help-octave help] and [https://mailman.cae.wisc.edu/listinfo/octave-maintainers maintainers] mailing lists. Find things about Octave you don't like, and start thinking about how to fix them. Many people who now contribute to Octave first spent several years helping in the mailing list before they started to delve into the code. A good way to learn Octave is to understand the problems other people are having with it, so being helpful in the mailing lists not only helps Octave as a whole, but it also prepares you to be a better Octave contributor.<br />
<br />
If you feel ready to dive right into the code, read [[Hacking | here]] and [http://www.gnu.org/software/octave/get-involved.html here] for guidance. One of the best ways for understanding how Octave works is to [[Debugging Octave|run it in a debugger]].<br />
<br />
We also need help with this wiki and the [http://www.gnu.org/software/octave/doc/interpreter/ manual]. These are also important tasks. The documentation is easier to patch, so you can discuss improvements to it and submit patches. Or just edit this wiki! <br />
<br />
Accurate bug reporting is also very useful. Find and report [http://www.gnu.org/software/octave/bugs.html bugs], making an attempt to diagnose them. Eventually, you will also know how to fix them. If you want to help with bug reports or patches, subscribe to [https://savannah.gnu.org/mail/?group=octave the bug tracker mailing list]. You'll get updates on all bug activity, and you can jump in when you see something you can help with.<br />
<br />
Look at our [[Projects]] and [[Summer of Code Project Ideas]] if you need specific inspiration for coding tasks that we would like to get done. See also the list of [[short projects]].<br />
<br />
=Licensing issues=<br />
<br />
==If I write code using Octave do I have to release it under the GPL?==<br />
<br />
The answer depends on precisely how the code is written and how it works.<br />
<br />
Code written entirely in the scripting language of Octave (interpreted code in .m files) may be released under the terms of whatever license you choose.<br />
<br />
Code written using Octave's native plug-in interface (also known as a .oct file) necessarily links with Octave internals and is considered a derivative work of Octave and therefore must be released under terms that are compatible with the GPL.<br />
<br />
Code written using Octave's implementation of the Matlab MEX interface may be released under the terms of whatever license you choose, provided that the following conditions are met:<br />
<br />
# The plugin should not use any bindings that are specific to Octave. In other words, the MEX file must use the MEX interface only, and not also call on other Octave internals. It should be possible in principle to use the MEX file with other programs that implement the MEX interface (e.g., Matlab).<br />
# The MEX file should not be distributed together with Octave in such a way that they effectively create a single work. For example, you should not distribute the MEX file and Octave together in a single package such that Octave automatically loads and runs the MEX file when it starts up. There are other possible ways that you might effectively create a single work; this is just one example.<br />
<br />
A program that embeds the Octave interpreter (e.g., by calling the "octave_main" function), or that calls functions from Octave's libraries (e.g., liboctinterp, liboctave, or libcruft) is considered a derivative work of Octave and therefore must be released under terms that are compatible with the GPL.<br />
<br />
==Since the MEX interface allows plugins to be distributed under terms that are incompatible with the GPL, does this mean that you are encouraging people to write non-free software for Octave?==<br />
<br />
No. The original reason for implementing the MEX interface for Octave was to allow Octave to run free software that uses MEX files (the particular goal was to run SundialsTB in Octave). The intent was to liberate that software from Matlab and increase the amount of free software available to Octave users, not to enable people to write proprietary code for Octave. For the good of the community, we strongly encourage users of Octave to release the code they write for Octave under terms that are compatible with the GPL.<br />
<br />
==I wrote a program that links with Octave libraries and I don't want to release it under the terms of the GPL. Will you change the license of the Octave libraries for me?==<br />
<br />
No. Instead of asking us to change the licensing terms for Octave, we recommend that you release your program under terms that are compatible with the GPL so that the free software community can benefit from your work the same as you have benefited from the work of all the people who have contributed to Octave.<br />
<br />
==Why can't I use code from File Exchange in Octave? It's released under a BSD license!==<br />
<br />
When one downloads code from File Exchange and use it on non Mathworks software (such as Octave), they are violating the Matlab central [http://www.mathworks.co.uk/matlabcentral/termsofuse.html Terms of Use]. While the [http://en.wikipedia.org/wiki/BSD_licenses BSD licenses] does allow one to use such code in Octave, it also allows others to further impose restrictions which Mathworks does through the MATLAB Central Terms of Use of their site:<br />
<br />
{{quote|text=Content submitted to File Exchange may only be used with MathWorks products.|sign=Matlab central|source=[http://www.mathworks.co.uk/matlabcentral/termsofuse.html#content Terms of Use 2iii]}}<br />
<br />
It should suffice -- although interpretations of this vary -- to contact the author directly and have them send you the code personally, or download the code from the author's own website, if available.<br />
<br />
If you need that code or think that the code is useful, please write the authors asking them to release under a free license. Some examples of letters/email sent to authors can be found in the page [[Asking_for_package_to_be_released_under_GPL:_examples|Asking for package to be released under GPL: examples]].<br />
<br />
Feel free to remix and reuse, just make sure you use your name!<br />
<br />
=What's new in Octave=<br />
==What's new in version series 3.6.N and 3.7.N of Octave==<br />
<br />
Several new features have been added to the 3.6.N series. The full details are in the NEWS file, but in brief 3.6.N series brings:<br />
<br />
* Perl compatible regular expressions<br />
* A profiler has been added.<br />
* Broadcasting enabled for all built-in binary element-wise operators.<br />
* The statistical distribution functions have been overhauled.<br />
* The functions strread(), textscan(), and textread() have been rewritten.<br />
* Performance of all m-file string functions has been improved.<br />
* The qhull geometry functions have been revamped.<br />
* Date/time functions have been updated.<br />
* Matlab compatible preference functions have been added.<br />
* Various handle graphics functions have been introduced.<br />
* The parfor keyword is now recognized.<br />
<br />
==Features added in version series 3.4.N and 3.5.N of Octave==<br />
Here are some features that have been around since 3.4.N<br />
<br />
* Many improvements to native OpenGL plotting<br />
* ARPACK now distributed with Octave<br />
* Indexing optimisations<br />
* FTP object using libcurl<br />
* Better consistency with ismatrix, issquare, and issymetric<br />
* Function handles aware of overloaded functions<br />
* More efficient matrix division by making a single LAPACK call<br />
* Other optimisations in matrix operations<br />
* bsxfun optimised for basic arithmetic functions<br />
* Matlab-style ignoring of output arguments using {{Codeline|~}}<br />
* Many optimisations of the accumarray function<br />
* Sparse matrix indexing has been rewritten for speed<br />
* Configuration pseudo-variables like page_screen_output accept a "local" option argument to limit their scope to function scope<br />
* The pkg command now accepts a -forge option to pull packages directly from Octave-forge<br />
* Several dlmread improvements<br />
* Octave now uses gnulib for better cross-platform compatibility<br />
<br />
==Features added in version series 3.2.N and 3.3.N of Octave==<br />
Here are some features that have been around since 3.2.N<br />
<br />
* integer types<br />
* fixed point arithmetic<br />
* sparse matrices<br />
* linear programming code based on GLPK<br />
* 64-bit compilation support<br />
* gzipped files and stream and consequently support of Matlab v7 files<br />
* better support for both msvc and mingw<br />
* a fully compatible MEX interface<br />
* many many other minor features and compatibility changes<br />
* an experimental OpenGL graphics toolkit to replace gnuplot<br />
* object orient programming<br />
* block comments<br />
* imwrite and imread (based on the GraphicsMagick library)<br />
* Lazy transpose <br/> Special treatment in the parser of things like "a' * b", where the transpose is never explicitly formed but a flag is rather passed to the underlying LAPACK code.<br />
* Single precision type<br />
* Improved array indexing <br/> The underlying code used for indexing of arrays has been completely rewritten and so the indexing of arrays is now significantly faster.<br />
<br />
==Features available since 2.1.N==<br />
Here are some older features that have been around since 2.1.N:<br />
<br />
* NDArrays<br />
* cells<br />
<br />
==Coming in a future release==<br />
The 3.7.N series is the current development release and will become a 3.8.N release in the future. This series brings the following new features:<br />
<br />
* JIT compiling in the interpreter (speeds up loops)<br />
* A GUI for Octave (based on Qt4)<br />
* The default graphics toolkit is planned to be changed from Gnuplot to an OpenGL fltk toolkit.<br />
<br />
=What documentation exists for Octave?=<br />
<br />
Besides the current wiki, there are other important sources of documentation and help for Octave.<br />
<br />
==What documentation exists for Octave?==<br />
<br />
The Octave distribution includes a 650+ page manual that is also distributed under the terms of the GNU GPL. It is available on the web at http://www.gnu.org/software/octave/doc/interpreter/ and you will also find there instructions on how to order a paper version.<br />
<br />
The complete text of the Octave manual is also available using the GNU Info system via the GNU Emacs, info, or xinfo programs, or by using the {{Codeline|doc}} command to start the GNU info browser directly from the Octave prompt.<br />
<br />
If you have problems using this documentation, or find that some topic is not adequately explained, indexed, or cross-referenced, please report it on http://bugs.octave.org.<br />
<br />
==Getting additional help==<br />
<br />
If you can't find an answer to your question, the help@octave.org mailing list is available for questions related to using, installing, and porting Octave that are not adequately answered by the Octave manual or by this document.<br />
<br />
==User community==<br />
<br />
To subscribe to the list, go to http://www.octave.org/archive.html and follow the link to the subscription page for the list.<br />
<br />
Please do not send requests to be added or removed from the mailing list, or other administrative trivia to the list itself.<br />
<br />
An archive of old postings to the help-octave mailing list is maintained on http://www.octave.org/archive.html.<br />
<br />
You will also find some user advice and code spread over the web. Good starting points are the Octave Wiki http://wiki.octave.org and Octave-Forge http://octave.sourceforge.net<br />
<br />
We also have [http://webchat.freenode.net?channels=octave&uio=d4 an IRC chat room], <code>#octave</code> in Freenode.<br />
<br />
==I think I have found a bug in Octave.==<br />
<br />
“I think I have found a bug in Octave, but I'm not sure. How do I know, and who should I tell?”<br />
<br />
First, see the section [http://www.octave.org/bugs.html on bugs and bug reports in the Octave manual]. When you report a bug, make sure to describe the type of computer you are using, the version of the operating system it is running, and the version of Octave that you are using. Also provide enough code and configuration details of your operating system so that the Octave maintainers can duplicate your bug.<br />
<br />
=How can I obtain Octave?=<br />
<br />
==Source code==<br />
<br />
Source code is available on the Octave development site, where you are sure to get the latest version.<br />
<br />
* http://www.octave.org/download.html<br />
* ftp://ftp.octave.org/pub/octave/<br />
<br />
Since Octave is distributed under the terms of the GPL, you can get Octave from a friend who has a copy, or from the Octave website.<br />
<br />
==Pre-compiled binary packages==<br />
<br />
The Octave project does not distribute binary packages, but other projects do. For an up-to-date listing of packagers, see:<br />
<br />
* http://www.octave.org/download.html<br />
* [[Build From Source]]<br />
<br />
As of today, Octave binaries are available at least on Debian, Ubuntu, RedHat, Suse and Fedora GNU/Linux, Mac OS X, Windows versions 98, 2000, XP, Vista, 7 and 8.<br />
<br />
==How do I get a copy of Octave for (some other platform)?==<br />
<br />
Octave currently runs on Unix-like systems, Mac OS X, and Windows. It should be possible to make Octave work on other systems as well. If you are interested in porting Octave to other systems, please contact [mailto:maintainers@octave.org the maintainers' mailing list]<br />
.<br />
==How can I install Octave on Android? What is this Octave app in the Google Play store?==<br />
<br />
There is an unofficial Octave app available for Android in the Google Play store. Please see [[Android]] for more information.<br />
<br />
=Installation issues and problems= <br />
<br />
Octave 3.4 requires approximately 1.3 GB of disk storage to unpack and compile from source (considerably less if you don't compile with debugging symbols). Once installed, Octave requires approximately 355 MB of disk space (again, considerably less if you don't compile with debugging symbols, approximately 50 MB).<br />
<br />
Check out the page [[Installation]] for more detailed information about installing Octave.<br />
<br />
==What else do I need?==<br />
<br />
To compile Octave, you will need a recent version of GNU Make. You will also need GCC 4.3 or later, although GCC 4.4 or later is recommended.<br />
<br />
'''You must have GNU Make to compile octave'''. Octave's Makefiles use features of GNU Make that are not present in other versions of make. GNU Make is very portable and easy to install.<br />
<br />
==Can I compile Octave with another C++ compiler?==<br />
<br />
Yes, but development is done primarily with GCC, so you may hit some incompatibilities. Octave is intended to be portable to any standard conforming compiler. If you have difficulties that you think are bugs, please report them to the http://bugs.octave.org bug tracker, or ask for help on the [mailto:help@octave.org mailing list].<br />
<br />
== How do I install ''all'' Octave packages? ==<br />
Do not do it! Really, there is no reason to do this. Octave Forge has many packages for different needs but it's unlikely that you need all of them. The common misconception is that the more packages one installs, the more complete and powerful its octave installation will be. However, in the same way one would ''never'' install all perl modules, ruby gems or python packages (because it simply makes no sense), one should not install all octave packages. This isn't desirable and it's not even possible.<br />
<br />
Packages should be installed and loaded selectively. Note that some packages are meant to shadow core functions changing the way Octave works, and different packages can have different implementations of a function with the same name, leading to unpredictable results. Others are just broken or crappy and will break your system. What's worse, some of them packages are even loaded automatically at startup so you may be screwing your octave installation without even realizing it.<br />
<br />
=Coding=<br />
<br />
==What features are unique to Octave?==<br />
<br />
Although most of the Octave language will be familiar to Matlab users, it has some unique features of its own.<br />
<br />
=== Functions defined on the command-line===<br />
Functions can be defined by entering code on the command line, a feature not supported by Matlab. For example, you may type:<br />
<br />
octave:1> function s = hello_string (to_who)<br />
> ## Say hello<br />
> if nargin<1, to_who = "World"; end<br />
> s = ["Hello ",\<br />
> to_who];<br />
> endfunction<br />
octave:2> hello_string ("Moon")<br />
ans = Hello Moon<br />
<br />
As a natural extension of this, functions can also be defined in script files (m-files whose first non-comment line isn't {{Codeline|function out &#61; foo (...)}})<br />
<br />
===Comments with #===<br />
<br />
The pound character, {{Codeline|#}}, may be used to start comments, in addition to {{Codeline|%}}. See the previous example. The major advantage of this is that as {{Codeline|#}} is also a comment character for unix script files, any file that starts with a string like {{Codeline|#! /usr/bin/octave -q}} will be treated as an octave script and be executed by octave.<br />
<br />
===Strings delimited by double quotes "===<br />
<br />
The double quote, {{Codeline|"}}, may be used to delimit strings, in addition to the single quote {{Codeline|'}}. See the previous example. Also, double-quoted strings include backslash interpretation (like C++, C, and Perl) while single quoted are uninterpreted (like Matlab and Perl).<br />
<br />
===Line continuation by backslash===<br />
<br />
Lines can be continued with a backslash, {{Codeline|\}}, in addition to three points {{Codeline|...}}. See the previous example.<br />
<br />
===Informative block closing===<br />
<br />
You may close function, for, while, if, ... blocks with endfunction, endfor, endwhile, ... keywords in addition to using end. As with Matlab, the end (or endfunction) keyword that marks the end of a function defined in a .m file is optional.<br />
<br />
===Coherent syntax===<br />
<br />
Indexing other things than variables is possible, as in:<br />
<br />
octave:1> [3 1 4 1 5 9](3)<br />
ans = 4<br />
octave:2> cos([0 pi pi/4 7])(3)<br />
ans = 0.70711<br />
<br />
In Matlab, it is for example necessary to assign the intermediate result {{Codeline|cos([0 pi pi/4 7])}} to a variable before it can be indexed again.<br />
<br />
===Exclamation mark as not operator===<br />
<br />
The exclamation mark {{Codeline|!}} (aka “Bang!”) is a negation operator, just like the tilde {{Codeline|~}}:<br />
<br />
octave:1> if ! strcmp (program_name, "octave"),<br />
> "It's an error"<br />
> else<br />
> "It works!"<br />
> end<br />
ans = It works!<br />
Note however that Matlab uses the {{Codeline|!}} operator for shell escapes, for which Octave requires using the system command.<br />
<br />
===Increment and decrement operators===<br />
<br />
If you like the {{Codeline|++}}, {{Codeline|+&#61;}} etc operators, rejoice! Octave includes the C-like increment and decrement operators {{Codeline|++}} and {{Codeline|--}} in both their prefix and postfix forms, in addition to {{Codeline|+&#61;}}, {{Codeline|-&#61;}}, {{Codeline|*&#61;}}, {{Codeline|/&#61;}}, {{Codeline|^&#61;}}, {{Codeline|.*&#61;}}, {{Codeline|./&#61;}}, and {{Codeline|.^&#61;}}.<br />
<br />
For example, to pre-increment the variable x, you would write {{Codeline|++x}}. This would add one to x and then return the new value of x as the result of the expression. It is exactly the same as the expression {{Codeline|x &#61; x + 1}}.<br />
<br />
To post-increment a variable x, you would write {{Codeline|x++}}. This adds one to the variable x, but returns the value that x had prior to incrementing it. For example, if x is equal to 2, the result of the expression x++ is 2, and the new value of x is 3.<br />
<br />
For matrix and vector arguments, the increment and decrement operators work on each element of the operand.<br />
<br />
===Unwind-protect===<br />
<br />
In addition to try-catch blocks, Octave supports an alternative form of exception handling modeled after the unwind-protect form of Lisp. The general form of an unwind_protect block looks like this:<br />
<br />
unwind_protect<br />
body<br />
unwind_protect_cleanup<br />
cleanup<br />
end_unwind_protect<br />
<br />
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.<br />
<br />
The unwind_protect statement is often used to reliably restore the values of global variables that need to be temporarily changed.<br />
<br />
Matlab can be made to do something similar with their {{Codeline|onCleanup}} function that was introduced in 2008a. Octave also has {{Codeline|onCleanup}} since version 3.4.0.<br />
<br />
===Built-in ODE and DAE solvers===<br />
<br />
Octave includes LSODE, DASSL and DASPK for solving systems of stiff ordinary differential and differential-algebraic equations. These functions are built in to the interpreter.<br />
<br />
==How does Octave solve linear systems?==<br />
<br />
In addition to consulting Octave's source for the precise details, you can read the Octave manual for a complete high-level description of the algorithm that Octave uses to decide how to solve a particular linear system, e.g. how the backslash operator {{Codeline|A\x}} will be interpreted. Sections [http://www.gnu.org/software/octave/doc/interpreter/Techniques-Used-for-Linear-Algebra.html#Techniques-Used-for-Linear-Algebra Techniques Used for Linear Algebra] and [http://www.gnu.org/software/octave/doc/interpreter/Sparse-Linear-Algebra.html Linear Algebra on Sparse Matrices] from the manual describe this procedure.<br />
<br />
=How do I...?=<br />
<br />
==How do I execute an Octave script?==<br />
<br />
First of all, make sure you understand [http://www.gnu.org/software/octave/doc/interpreter/Script-Files.html the difference between script files and function files]. If you want to execute a function defined in a file, just call the function like any other Octave function: <code>foo(arg1, arg2);</code><br />
<br />
To execute a script from within Octave, just type its name without the .m extension. Thus, if you have a script called <code>foo.m</code>, just type <code>foo</code> from within Octave to execute it. You have to make sure that the script is in your current path. Type <code>path</code> in Octave to see what this path is, and type <code>pwd</code> to print the working directory (where you're currently standing). The current working directory is referred to as "." in the <code>path</code>.<br />
<br />
If the script name has characters that are not valid for an Octave identifier, or if you do not want to use addpath to add the script's location to the current path, you can use the <code>run</code> function instead:<br />
<br />
octave> run("Script Name With Spaces.m")<br />
octave> run("/opt/local/foo.m")<br />
<br />
An alternative is to run the script from outside Octave by calling Octave from your operating system shell. Unlike calling the script from inside Octave, this also allows you to pass arguments from the shell into the script, which the script can access using the <code>argv</code> command:<br />
<br />
$ octave the-script.m arg1 arg2<br />
<br />
In a Unix environment, if the script has a [http://en.wikipedia.org/wiki/Shebang_%28Unix%29 shebang] (e.g. <code>#!/usr/bin/octave</code>) and executable permissions, you can call it like any other Unix program with arguments:<br />
<br />
$ ./the-script arg1 arg2<br />
<br />
If you call the script from the shell and it's plotting, please note [[#When I try plotting from a script, why am I not seeing anything?|how to plot when running a script from the shell]].<br />
<br />
==do xxxx?==<br />
<br />
You are probably looking for the function ''lookfor''. This function searches the help text of all functions for a specific string and returns a list of functions. Note that by default it will only search the first line of the help text (check ''help lookfor'' at the octave prompt for more). The following example helps to find the function to calculate correlation coefficient in a matrix:<br />
<br />
octave> lookfor correlation<br />
corr2 Returns the correlation coefficient between I and J.<br />
cor Compute correlation.<br />
corrcoef Compute correlation.<br />
spearman Compute Spearman's rank correlation coefficient RHO for each of the variables sp<br />
autocor Return the autocorrelations from lag 0 to H of vector X.<br />
<br />
Also, there's a high chance that the function name has a suggestive name, and so you can try auto-completion to get some hints. For the previous example, typing ''corr'' at the octave promp followed by pressing [Tab] twice would suggest the following:<br />
<br />
octave> corr<br />
corr2 corrcoef<br />
<br />
==How do I erase a figure?== <br />
<br />
closeplot(); <br />
closefig(number)<br />
<br />
==How do I set the number of displayed decimals?==<br />
<br />
octave:1> format long<br />
octave:2> pi<br />
pi = 3.14159265358979<br />
octave:3> format short<br />
octave:4> pi<br />
pi = 3.1416<br />
<br />
==How do I call an octave function from C++?==<br />
<br />
*Here is an untested code snippet for calling rand([9000,1]), modified from a post by HerberFarnsworth? to help-octave on 2003-05-01:<br />
<br />
#include <octave/oct.h><br />
...<br />
ColumnVector NumRands(2);<br />
NumRands(0) = 9000;<br />
NumRands(1) = 1;<br />
octave_value_list f_arg, f_ret;<br />
f_arg(0) = octave_value(NumRands);<br />
f_ret = feval("rand",f_arg,1);<br />
Matrix unis(f_ret(0).matrix_value());<br />
<br />
==How do I change colour/line definition in gnuplot postscript?==<br />
Here is a awk script to get a rainbow colour map<br />
<br />
#!/bin/awk -f<br />
<br />
BEGIN {<br />
split("0 4 6 7 5 3 1 2 8", rainbow, " ");<br />
split("7 3 1 0 2 4 6 5 8", invraim, " ");<br />
}<br />
<br />
$1 ~ /\/LT[0-8]/ {<br />
n = substr($1, 4, 1);<br />
if (n == 0)<br />
lt = "{ PL [] 0.9 0.1 0.1 DL } def";<br />
else if (n == 1)<br />
lt = "{ PL [4 dl 2 dl] 0.1 .75 0.1 DL } def";<br />
else if (n == 2)<br />
lt = "{ PL [2 dl 3 dl] 0.1 0.1 0.9 DL } def";<br />
else if (n == 3)<br />
lt = "{ PL [1 dl 1.5 dl] 0.9 0 0.8 DL } def";<br />
else if (n == 4)<br />
lt = "{ PL [5 dl 2 dl 1 dl 2 dl] 0.1 0.8 0.8 DL } def";<br />
else if (n == 5)<br />
lt = "{ PL [4 dl 3 dl 1 dl 3 dl] 0.9 0.8 0.2 DL } def";<br />
else if (n == 6)<br />
lt = "{ PL [2 dl 2 dl 2 dl 4 dl] 0.5 0.3 0.1 DL } def";<br />
else if (n == 7)<br />
lt = "{ PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.4 0 DL } def";<br />
else if (n == 8)<br />
lt = "{ PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def";<br />
$0 = sprintf("/LT%d %s", rainbow[n+1], lt);<br />
##$0 = sprintf("/LT%x %s", invraim[n+1], lt);<br />
##$0 = sprintf("/LT%x %s", n, lt);<br />
}<br />
<br />
{ print; }<br />
<br />
==How do I tell if a file exists?==<br />
<br />
Look at functions like exist, file_in_path.. and the other functions that their descriptions point to.<br />
<br />
<br />
==How do I create a plot without a window popping up (ie, a plot to a file)?==<br />
<br />
'''This only works with gnuplot as graphics_toolkit, NOT with fltk. See [https://savannah.gnu.org/bugs/?33180 Bug#33180]'''<br />
<br />
figure(1, "visible", "off");<br />
plot(sin(1:100));<br />
print -deps "/tmp/sin.eps"<br />
<br />
One can set that behaviour as default:<br />
<br />
set(0, 'defaultfigurevisible', 'off');<br />
<br />
== How do I make Octave use more precision? ==<br />
<br />
Octave's default numerical type is IEEE 754 doubles, a.k.a. hardware floats. This type has 52 bits of precision or about 16 decimal digits. It's implemented in your computer's hardware, in your CPU, so it's '''fast'''. This type is assumed throughout for Octave's calculations.<br />
<br />
You can use a few other built-in types. The int64 type will have 63 bits of precision. One bit is used for the sign, but if you don't want to lose that bit, uint64 can be used instead. These types, however, cannot represent numbers as large as the default double type, and can only represent integers. Furthermore, there is no way to represent integer literals, so if you do <br />
<br />
<syntaxhighlight lang="Octave">uint64(18446744073709551610);</syntaxhighlight><br />
<br />
the literal "18446744073709551610" first gets converted to a double precision type, so <code>uint64</code>'s additional precision is lost. Instead, initialise the <code>uint64</code> with smaller numbers and perform a computation to get the larger number you want. E.g., <br />
<br />
<syntaxhighlight lang="Octave">uint64(999999999999999) * 10000</syntaxhighlight><br />
<br />
would produce value 9999999999999990000, which is close to the maximum possible value for the uint64 type, but can't be at the moment input directly, doing uint64(9999999999999990000), due to the mentioned error of rounding.<br />
<br />
Alternatively, one may use arbitrary precision arithmetic, which has as much precision as is practical to hold in your computer's memory. The ''symbolic'' package, when it works, has a vpa() function for arbitrary precision arithmetic. Note that arbitrary precision arithmetic must be implemented '''in software''' which makes it much slower than hardware floats.<br />
<br />
At present, however, the symbolic package is almost useless, since even when you get it to compile and not crash, it cannot handle any array type, which hardly helps for an array-oriented language like Octave. If this limitation is not important to you, attempt to use the symbolic package. If you would like to get this fixed, [http://octave.1599824.n4.nabble.com/Internal-Precision-Symbolic-tp4645257p4645594.html Jordi Gutiérrez Hermoso has volunteered] to fix the package for 5000 USD, which can be obtained from a kickstarter campaign.<br />
<br />
Consider carefully if your problem really needs more precision. Often if you're running out of precision the problem lies fundamentally in your methods being [http://en.wikipedia.org/wiki/Numerical_stability numerically unstable], so more precision will not help you here. If you absolutely must use arbitrary-precision arithmetic, you're at present better off using a CAS instead of Octave. An example of such a CAS is [http://sagemath.org Sage].<br />
<br />
=Common problems=<br />
<br />
==I am running a script that should produce output during execution but I don't see anything until it has finished==<br />
<br />
By default Octave is set to pass its screen output through a pager (usually the default pager is "less") which allows<br />
things such as navigating through the output with arrow keys or searching for text or regular expressions within the output.<br />
The pager only displays the output after it's finished receiving it, so when it is active you'll not be able to see anything until your script has terminated. To change this behavior temporarily or permanently you may want to use one of the options described [http://www.gnu.org/software/octave/doc/interpreter/Paging-Screen-Output.html here].<br />
<br />
==When I try plotting from a script, why am I not seeing anything?==<br />
<br />
If you are running an Octave script that includes a plotting command, the script and Octave may terminate immediately. So the plot window does show up, but immediately closes when Octave finishes execution. Alternatively, if using fltk, the plot window needs a readline loop to show up (the time when Octave is sitting around doing nothing waiting for interactive input).<br />
<br />
A common solution is to put a {{Codeline|pause}} command at the end of your script.<br />
<br />
==How do I get sound input or output in Windows?== <br />
Sound I/O is badly broken on anything that isn't using Linux's Open Sound System. Nowadays, this usually doesn't even include Linux, since OSS is frequently considered "legacy". All of the audio functions in Octave are badly in need of a rewrite so that they actually work.<br />
<br />
==I cannot install a package. Octave complains about a missing mkoctfile.==<br />
<br />
You should normally use your distribution's packages. For Debian and Fedora, Octave package '''foo''' will be a deb or rpm called '''octave-foo''', and you should install that instead using apt or yum.<br />
<br />
If you really need to build Octave packages from source to install them, you'll need mkoctfile. Most distributions split Octave into several packages. The script mkoctfile is then part of a separate package:<br />
<br />
* Debian/Ubuntu: {{Codeline|octave-headers}} or {{Codeline|liboctave-dev}}<br />
<br />
* Fedora: {{Codeline|octave-devel}}<br />
<br />
== I'm having problem XXX using the latest Octave version ==<br />
<br />
Please be more specific. What is the latest version, according to you? If you mean the latest released version, be aware that you may still have an older version due to whatever distribution method you're using. There may be a newer version available that you're not aware of due to the distribution method you're using to get Octave, and in most cases, there is a way to get a newer version via your distribution method (see other wiki pages for [[Octave_for_GNU/Linux|GNU/Linux]], [[Octave_for_MacOS_X|Mac OSX]], and [[Octave_for_Windows|Windows]]).<br />
<br />
If you mean the latest Mercurial revision, please specify which one that is. "Latest tip" is not informative, because from the time you wrote "latest tip" to the time someone reads that message, "latest tip" might have changed meaning. Also, you might be standing on a different commit than what "hg tip" says. The tip may be on a different branch, or you might have updated to a different revision different from what "hg tip" says.<br />
<br />
Instead, report the output of "hg summary" or "hg id". Also please use hashes instead or in addition to revision numbers. Revision numbers are just a convenience and only make sense in your local repo, and might not coincide with what someone sees on their own repo. Hashes are globally unique across all repos.<br />
<br />
If your problem truly persists with the latest version, as indicated [http://www.gnu.org/software/octave/download.html here], then by all means report a bug or ask for help, but don't be surprised if volunteers are less inclined to help you with a problem that only exists in an older version of Octave.<br />
<br />
== Why is this floating point computation wrong? ==<br />
<br />
Floating point arithmetic is an approximation '''in binary''' to arithmetic on real or complex numbers. Just like you cannot represent 1/3 exactly in decimal arithmetic (0.333333 is only a rough approximation to 1/3), you cannot represent some fractions like <math>1/10</math> exactly in base 2. In binary, the representation to one tenth is <math>0.0\overline{0011}_b</math> where the bar indicates that it repeats infinitely (like how <math>1/6 = 0.1\overline{6}_d</math> in decimal). Because this infinite repetition cannot be represented exactly with a finite number of digits, rounding errors occur for values that appear to be exact in decimal but are in fact approximations in binary, such as for example how 0.3 - 0.2 - 0.1 is not equal to zero.<br />
<br />
This isn't an Octave bug. It happens with any program that uses [http://en.wikipedia.org/wiki/IEEE_754 IEEE 754 floating point arithmetic]. The reason why Octave and other programs use IEEE 754 floats is that they are ''fast'', because they are implemented in hardware. Unless you are using very exotic hardware, Octave will use your computer's processor for floating point arithmetic.<br />
<br />
Like death and taxes, rounding errors are a fact of life. You cannot avoid them. You can only move a rounding error from one part of a computation to another, or you can use more precision and delay the rounding error. One way to delay the rounding error is to use arbitrary precision arithmetic, which is inevitably slower as it has to be implemented in software instead of hardware. You may use the vpa function from the symbolic package for this purpose.<br />
<br />
To learn more about floating point arithmetic, consult [http://en.wikipedia.org/wiki/Floating_point_arithmetic its Wikipedia article] or the classical reference [http://floating-point-gui.de/ What Every Computer Scientist Should Know About Floating Point Arithmetic].<br />
<br />
== I have installed a package but still get a "foo undefined" error ==<br />
<br />
You have probably forgotten to load the package. Use {{Codeline|pkg load package-name}} to load it. Most packages are no longer loaded automatically to avoid surprises. See reasoning on related FAQ [[FAQ#How_do_I_install_all_Octave_packages.3F|how do I install all Octave packages]]. If you want a specific package to be loaded by default at startup, consider adding the {{Codeline|pkg load}} command on your {{path|.octaverc}} file.<br />
<br />
=Porting programs from Matlab to Octave=<br />
<br />
People often ask<br />
<br />
<blockquote><br />
I wrote some code for Matlab, and I want to get it running under Octave. Is there anything I should watch out for?<br />
</blockquote><br />
<br />
or alternatively<br />
<br />
<blockquote><br />
I wrote some code in Octave, and want to share it with Matlab users. Is there anything I should watch out for?<br />
</blockquote><br />
<br />
which is not quite the same thing. There are still a number of differences between Octave and Matlab, however in general differences between the two are considered as bugs. Octave might consider that the bug is in Matlab and do nothing about it, but generally functionality is almost identical. If you find an important functional difference between Octave behavior and Matlab, then you should send a description of this difference (with code illustrating the difference, if possible) to http://bugs.octave.org.<br />
<br />
Furthermore, Octave adds a few syntactical extensions to Matlab that might cause some issues when exchanging files between Matlab and Octave users. As both Octave and Matlab are under constant development the information in this section is subject to change at anytime.<br />
<br />
You should also look at the pages http://octave.sourceforge.net/packages.php and http://octave.sourceforge.net/docs.html that have a function reference that is up to date. You can use this function reference to see the number of octave functions that are available and their Matlab compatibility.<br />
<br />
==How is Octave different from Matlab?==<br />
<br />
The major differences between Octave 3.4.N and Matlab R2010b are:<br />
<br />
===Nested Functions===<br />
Octave has limited support for nested functions. That is<br />
<br />
function y = foo (x)<br />
y = bar(x)<br />
function y = bar (x)<br />
y = ...;<br />
end<br />
end<br />
<br />
is equivalent to<br />
<br />
function y = foo (x)<br />
y = bar(x)<br />
end<br />
function y = bar (x)<br />
y = ...;<br />
end<br />
<br />
The main difference with Matlab is a matter of scope. While nested functions have access to the parent function's scope in Matlab, no such thing is available in Octave, due to how Octave essentially “un-nests” nested functions.<br />
<br />
The authors of Octave consider the nested function scoping rules of Matlab to be more problems than they are worth as they introduce difficult to find bugs as inadvertently modifying a variable in a nested function that is also used in the parent is particularly easy for those not attentive to detail.<br />
<br />
===Differences in core syntax===<br />
<br />
There are a few core Matlab syntaxes that are not accepted by Octave, these being<br />
<br />
* Some limitations on the use of function handles. The major difference is related to nested function scoping rules (as above) and their use with function handles.<br />
<br />
* Some limitations of variable argument lists on the LHS of an expression, though the most common types are accepted.<br />
<br />
* Matlab classdef object oriented programming is not yet supported, though work is underway in a branch of the development tree.<br />
<br />
===Differences in core functions===<br />
<br />
A large number of the Matlab core functions (ie those that are in the core and not a toolbox) are implemented, and certainly all of the commonly used ones. There are a few functions that aren't implemented, usually to do with specific missing Octave functionality (GUI, DLL, Java, ActiveX, DDE, web, and serial functions). Some of the core functions have limitations that aren't in the Matlab version. For example the sprandn function can not force a particular condition number for the matrix like Matlab can.<br />
<br />
===Just-In-Time compiler===<br />
<br />
Matlab includes a "Just-In-Time" compiler. This compiler allows the acceleration of for-loops in Matlab to almost native performance with certain restrictions. The JIT must know the return type of all functions called in the loops and so you can't include user functions in the loop of JIT optimized loops. Octave doesn't have a JIT and so to some might seem slower than Matlab. For this reason you must vectorize your code as much as possible. The MathWorks themselves have a good document discussing vectorization at http://www.mathworks.com/support/tech-notes/1100/1109.html.<br />
<br />
===Compiler===<br />
<br />
On a related point, there is no Octave compiler, and so you can't convert your Octave code into a binary for additional speed or distribution. There have been several aborted attempts at creating an Octave compiler. Should the JIT compiler above ever be implemented, an Octave compiler should be more feasible.<br />
<br />
===Graphic handles===<br />
<br />
Up to Octave 2.9.9 there was no support for graphic handles in Octave itself. In the 3.2.N versions of Octave and beyond the support for graphics handles is converging towards full compatibility. The patch function is currently limited to 2-D patches, due to an underlying limitation in gnuplot, but the experimental OpenGL backend is starting to see an implementation of 3-D patches.<br />
<br />
===GUI functions ===<br />
<br />
There are no Matlab compatible GUI functions yet. This might be an issue if you intend to exchange Octave code with Matlab users. There are a number of bindings from Octave to {{Forge|tcl-octave|Tcl/Tk}}, [http://octaviz.sourceforge.net/index.php? VTK] and {{Forge|zenity}} for example, that can be used for a GUI, but these are not Matlab compatible. Work on a Matlab compatible GUI is in an alpha stage in the QtHandles project, which may form part of a future release of Octave.<br />
<br />
===Simulink===<br />
<br />
Octave itself includes no Simulink support. Typically the simulink models lag research and are less flexible, so shouldn't really be used in a research environment. However, some Matlab users that try to use Octave complain about this lack.<br />
<br />
===MEX-Files===<br />
<br />
Octave includes an API to the Matlab MEX interface. However, as MEX is an API to the internals of Matlab and the internals of Octave differ from Matlab, there is necessarily a manipulation of the data to convert from a MEX interface to the Octave equivalent. This is notable for all complex matrices, where Matlab stores complex arrays as real and imaginary parts, whereas Octave respects the C99/C++ standards of co-locating the real/imag parts in memory. Also due to the way Matlab allows access to the arrays passed through a pointer, the MEX interface might require copies of arrays (even non complex ones).<br />
<br />
===Block comments===<br />
<br />
Block comments denoted by {{Codeline|#{}} and {{Codeline|#&#125;}} markers (or {{Codeline|%{}} and {{Codeline|%&#125;}}) are supported by Octave with some limitations. The major limitation is that block comments are not supported within [] or {}.<br />
<br />
===Mat-File format===<br />
<br />
There are some differences in the mat v5 file format accepted by Octave. Matlab recently introduced the "-V7.3" save option which is an HDF5 format which is particularly useful for 64-bit platforms where the standard Matlab format can not correctly save variables. Octave accepts HDF5 files, but is not yet compatible with the "-v7.3" versions produced by Matlab.<br />
<br />
Although Octave can load inline function handles saved by Matlab, it can not yet save them.<br />
<br />
Finally, Some multi-byte Unicode characters aren't yet treated in mat-files.<br />
<br />
===Profiler===<br />
<br />
Thanks to Daniel Kraft's 2011 Google Summer of Code project, Octave has a profiler since version 3.6.0. However, at the moment it only produces text output and has its own makeshift interface for hierarchical profiling.<br />
<br />
===Toolboxes===<br />
<br />
Octave is a community project and so the toolboxes that exist are donated by those interested in them through [[Octave Forge]]. These might be lacking in certain functionality relative to the Matlab toolboxes, and might not exactly duplicate the Matlab functionality or interface.<br />
<br />
===Short-circuit {{Codeline|&}} and {{Codeline|&#124;}} operators===<br />
<br />
The {{Codeline|&}} and {{Codeline|&#124;}} operators in Matlab short-circuit when included in a condition (e.g. an {{Codeline|if}} or {{Codeline|while}} statement) and not otherwise. In Octave only the {{Codeline|&&}} and {{Codeline|&#124;&#124;}} short circuit. Note that this means that<br />
<br />
if (a | b)<br />
...<br />
end<br />
<br />
and<br />
<br />
t = a | b;<br />
if t<br />
...<br />
end<br />
<br />
have different semantics in Matlab. This is really a Matlab bug, but there is too much code out there that relies on this behaviour to change it. Prefer the {{Codeline|&#124;&#124;}} and {{Codeline|&&}} operators in {{Codeline|if}} statements if possible. If you need to use code written for Matlab that depends on this buggy behaviour, you can enable it since Octave 3.4.0 with the following command:<br />
<br />
do_braindead_shortcircuit_evaluation(1)<br />
<br />
Note that the difference with Matlab is also significant when either argument is a function with side effects or if the first argument is a scalar and the second argument is an empty matrix. For example, note the difference between<br />
<br />
t = 1 | []; ## results in [], so...<br />
if (t) 1, end ## in if ([]), this is false.<br />
<br />
and<br />
<br />
if (1 | []) 1, end ## short circuits so condition is true.<br />
<br />
Another case that is documented in the Matlab manuals is that<br />
<br />
t = [1, 1] | [1, 2, 3]; ## error<br />
if ([1, 1] | [1, 2, 3]) 1, end ## OK<br />
<br />
Also Matlab requires the operands of {{Codeline|&&}} and {{Codeline|&#124;&#124;}} to be scalar values but Octave does not (it just applies the rule that for an operand to be considered true, every element of the object must be nonzero or logically true).<br />
<br />
Finally, note the inconsistence of thinking of the condition of an {{Codeline|if}} statement as being equivalent to {{Codeline|all(X(:))}} when {{Codeline|X}} is a matrix. This is true for all cases EXCEPT empty matrices:<br />
<br />
if ([0, 1]) == if (all ([0, 1])) ==> i.e., condition is false.<br />
if ([1, 1]) == if (all ([1, 1])) ==> i.e., condition is true.<br />
<br />
However,<br />
<br />
if ([])<br />
<br />
is not the same as<br />
<br />
if (all ([]))<br />
<br />
because, despite the name, the {{Codeline|all}} is really returning true if none of the elements of the matrix are zero, and since there are no elements, well, none of them are zero. This is an example of [http://en.wikipedia.org/wiki/Vacuous_truth vacuous truth]. But, somewhere along the line, someone decided that {{Codeline|if ([])}} should be false. Mathworks probably thought it just looks wrong to have {{Codeline|[]}} be true in this context even if you can use logical gymnastics to convince yourself that "all" the elements of an empty matrix are nonzero. Octave however duplicates this behavior for {{Codeline|if}} statements containing empty matrices.<br />
<br />
===Solvers for singular, under- and over-determined matrices===<br />
<br />
Matlab's solvers as used by the operators mldivide (\) and mrdivide (/), use a different approach than Octave's in the case of singular, under-, or over-determined matrices. In the case of a singular matrix, Matlab returns the result given by the LU decomposition, even though the underlying solver has flagged the result as erroneous. Octave has made the choice of falling back to a minimum norm solution of matrices that have been flagged as singular which arguably is a better result for these cases.<br />
<br />
In the case of under- or over-determined matrices, Octave continues to use a minimum norm solution, whereas Matlab uses an approach that is equivalent to<br />
<br />
function x = mldivide (A, b)<br />
m = rows(A);<br />
[Q, R, E] = qr(A);<br />
x = [A \ b, E(:, 1:m) * (R(:, 1:m) \ (Q' * b))]<br />
end<br />
<br />
While this approach is certainly faster and uses less memory than Octave's minimum norm approach, this approach seems to be inferior in other ways.<br />
<br />
A numerical question arises: how big can the null space component become, relative to the minimum-norm solution? Can it be nicely bounded, or can it be arbitrarily big? Consider this example:<br />
<br />
m = 10;<br />
n = 10000;<br />
A = ones(m, n) + 1e-6 * randn(m,n);<br />
b = ones(m, 1) + 1e-6 * randn(m,1);<br />
norm(A \ b)<br />
<br />
while Octave's minimum-norm values are around 3e-2, Matlab's results are 50-times larger. For another issue, try this code:<br />
<br />
m = 5;<br />
n = 100;<br />
j = floor(m * rand(1, n)) + 1;<br />
b = ones(m, 1);<br />
A = zeros(m, n);<br />
A(sub2ind(size(A),j,1:n)) = 1;<br />
x = A \ b;<br />
[dummy,p] = sort(rand(1,n));<br />
y = A(:,p)\b;<br />
norm(x(p)-y)<br />
<br />
It shows that unlike in Octave, mldivide in Matlab is not invariant with respect to column permutations. If there are multiple columns of the same norm, permuting columns of the matrix gets you different result than permuting the solution vector. This will surprise many users.<br />
<br />
Since the mldivide (\) and mrdivide (/) operators are often part of a more complex expression, where there is no room to react to warnings or flags, it should prefer intelligence (robustness) to speed, and so the Octave developers are firmly of the opinion that Octave's approach for singular, under- and over-determined matrices is a better choice than Matlab's.<br />
<br />
===Octave extensions===<br />
<br />
The extensions in Octave over Matlab syntax are very useful, but might cause issues when sharing with Matlab users. A list of the major extensions that should be avoided to be compatible with Matlab are:<br />
<br />
Comments in octave can be marked with {{Codeline|#}}. This allows POSIX systems to have the first line as {{Codeline|#! octave -q}} and mark the script itself executable. Matlab doesn't have this feature due to the absence of comments starting with {{Codeline|#}}".<br />
<br />
Code blocks like if, for, while, etc can be terminated with block specific terminations like endif. Matlab doesn't have this and all blocks must be terminated with end.<br />
<br />
Octave has a lisp-like {{Codeline|unwind_protect}} block that allows blocks of code that terminate in an error to ensure that the variables that are touched are restored. You can do something similar with try/catch combined with {{Codeline|rethrow (lasterror ())}} in Matlab, however rethrow and lasterror are only available in Octave 2.9.10 and later. Matlab 2008a also introduced {{Codeline|OnCleanUp}} that is similar to {{Codeline|unwind_protect}}, except that the object created by this function has to be explicitly cleared in order for the cleanup code to run.<br />
<br />
Note that using try/catch combined with {{Codeline|rethrow (lasterror ())}} can not guarantee that global variables will be correctly reset, as it won't catch user interrupts with Ctrl-C. For example<br />
<br />
global a<br />
a = 1;<br />
try<br />
_a = a;<br />
a = 2<br />
while true<br />
end<br />
catch<br />
fprintf ('caught interrupt\n');<br />
a = _a;<br />
rethrow (lasterror());<br />
end<br />
<br />
compared to<br />
<br />
global a<br />
a = 1;<br />
unwind_protect<br />
_a = a;<br />
a = 2<br />
while true<br />
end<br />
unwind_protect_cleanup<br />
fprintf ('caught interrupt\n');<br />
a = _a;<br />
end<br />
<br />
Typing Ctrl-C in the first case returns the user directly to the prompt, and the variable ''a'' is not reset to the saved value. In the second case the variable ''a'' is reset correctly. Therefore Matlab gives no safe way of temporarily changing global variables.<br />
<br />
Indexing can be applied to all objects in Octave and not just variables. Therefore {{Codeline|sin(x)(1:10)}} for example is perfectly valid in Octave but not Matlab. To do the same in Matlab you must do {{Codeline|y &#61; sin(x); y &#61; y([1:10]);}}<br />
<br />
Octave has the operators {{Codeline|++}}, {{Codeline|–-}}, {{Codeline|-&#61;}}, {{Codeline|+&#61;}}, {{Codeline|*&#61;}}, etc. As Matlab doesn't, if you are sharing code these should be avoided.<br />
<br />
Character strings in Octave can be denoted with double or single quotes. There is a subtle difference between the two in that escaped characters like {{Codeline|\n}} (newline), {{Codeline|\t}} (tab), etc are interpreted in double quoted strings but not single quoted strings. This difference is important on Windows platforms where the {{Codeline|\}} character is used in path names, and so single quoted strings should be used in paths. Matlab doesn't have double quoted strings and so they should be avoided if the code will be transferred to a Matlab user.<br />
<br />
=GUI=<br />
This is a small section but it's probably one of the most frequent questions.<br />
<br />
==Does Octave have a GUI?==<br />
Yes! It was released with Octave 3.8.0 (Jan 1st, 2014) but is considered experimental. To start Octave with the GUI, use the {{Codeline|--force-gui}} option.<br />
<br />
==When will the GUI stop being experimental?==<br />
The plan is for the GUI to be considered stable with version 4.0.<br />
<br />
==Why are you working on yet another GUI instead of making one that already exists better?==<br />
None of the GUIs for Octave that have been developed thus far are part of Octave and there is a reason for it. All of them fail at a very important point, integration with Octave. They treat Octave as a foreign black box using pipes for communication, an approach that is bound to fail with each new version. Any fix made to make them work with new Octave versions would only be temporary. This included QtOctave (now abandoned and incompatible with newer versions of Octave), Xoctave (which is proprietary and commercial) and GUI Octave (which is proprietary).<br />
<br />
QtOctave was great and very useful tool. It looked beautiful and we are thankful to its developers for working on such a nice tool plus making it libre. However, it would ''never'' be stable.<br />
<br />
Quint was a project for an Octave GUI that actually tried to do it right. Eventually it was merged into the Octave repository and is no longer a separate project. Also, many bits from QtOctave were reused in the GUI.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=FAQ&diff=4990FAQ2014-07-21T16:05:34Z<p>JordiGH: /* Why is this floating point computation wrong? */</p>
<hr />
<div>This is a list of frequently asked questions (FAQ) for GNU Octave users.<br />
<br />
We are always looking for new questions (with answers), better answers, or both. Feel free to edit this page with your changes. If you have general questions about GNU Octave, or need help for something that is not covered by the Octave manual or the FAQ, please use the [https://mailman.cae.wisc.edu/listinfo/help-octave help@octave.org mailing list].<br />
<br />
This FAQ is intended to supplement, not replace, the GNU Octave manual. Before posting a question to the [https://mailman.cae.wisc.edu/listinfo/help-octave help@octave.org mailing list], you should first check to see if the topic is covered in the manual.<br />
<br />
=General=<br />
<br />
==What is Octave?==<br />
<br />
GNU Octave is a high-level interactive language, primarily intended for numerical computations, that is mostly compatible with Matlab.<br />
<br />
GNU Octave can do arithmetic for real, complex or integer-valued scalars and matrices, solve sets of nonlinear algebraic equations, integrate functions over finite and infinite intervals, and integrate systems of ordinary differential and differential-algebraic equations.<br />
<br />
GNU Octave uses the GNU readline library to handle reading and editing input. By default, the line editing commands are similar to the cursor movement commands used by GNU Emacs, and a vi-style line editing interface is also available. At the end of each session, the command history is saved, so that commands entered during previous sessions are not lost.<br />
<br />
The GNU Octave distribution includes a 650+ page Texinfo manual. Access to the complete text of the manual is available via the doc command at the GNU Octave prompt.<br />
<br />
==What is Octave-Forge?==<br />
[http://octave.sourceforge.net/ Octave-Forge] is a collection of packages for GNU Octave, something similar to the Matlab toolboxes. When talking about the two projects at the same time, GNU Octave is usually referred to as Octave core (or just ''core''). [http://octave.sourceforge.net/ Octave-Forge] also serves as a test bed for code that may eventually end up in the core, and distributes binaries for systems with a lack of developers tools (mainly Windows).<br />
<br />
==Who uses Octave?==<br />
<br />
Lots of people. It seems that universities use it for research and teaching, companies of all sizes, for development, individuals. This question comes often on Octave mailing lists, see [[Who Uses Octave?]] for a few answers<br />
<br />
==Who develops Octave?==<br />
<br />
Discussions about writing the software that would eventually become Octave started in about 1988 with James B. Rawlings and John W. Eaton at the University of Texas. John W. Eaton was the original author of Octave, starting full-time development in February 1992. He is still the primary maintainer. The community of users/developers has in addition contributed some code and fuels the discussion on the mailing lists help@octave.org (user forum), maintainers@octave.org (development issues).<br />
<br />
==Why "Octave"?==<br />
<br />
Octave's name has nothing to do with music. It's named after [http://en.wikipedia.org/wiki/Octave_Levenspiel Octave Levenspiel], a former professor of John who was famous for his ability to do quick back-of-the-envelope calculations. You can hear John pronounce the name "Octave" a few times [http://videolectures.net/mloss08_eaton_oct/ in this video]. We hope that GNU Octave will help perform computations with the same ease as Dr. Levenspiel.<br />
<br />
==Why <em>GNU</em> Octave?==<br />
<br />
The GNU Project was launched in 1984 to develop a complete Unix-like operating system which is free software: the GNU system.<br />
<br />
GNU is a recursive acronym for “GNU's Not Unix”; it is pronounced guh-noo, approximately like canoe.<br />
<br />
The Free Software Foundation (FSF) is the principal organizational sponsor of the GNU Project.<br />
<br />
Octave became GNU Octave in 1997 (beginning with version 2.0.6). This meant agreeing to consider Octave a part of the GNU Project and support the efforts of the FSF. A big part of this effort is to adhere to the [http://www.gnu.org/prep/standards/standards.html GNU coding standards] and to benefit from GNU's infrastructure (e.g. [http://hg.savannah.gnu.org/hgweb/octave/ code hosting] and [http://bugs.octave.org bug tracking]). Additionally, Octave receives [https://my.fsf.org/donate/working-together/octave sponsorship] from the FSF's Working Together fund. However, Octave is not and has never been developed by the FSF.<br />
<br />
For more information about the GNU project, see http://www.gnu.org.<br />
<br />
==What version should I use?==<br />
<br />
In general, you will find the latest version on http://www.octave.org/download.html. It is recommended to use the stable version of octave for general use, and the development version if you want the latest features and are willing to tolerate instability.<br />
<br />
A list of user-visible changes since the last release is available in the file NEWS. The file ChangeLog in the source distribution contains a more detailed record of changes made since the last release.<br />
<br />
==On what platforms does Octave run?==<br />
<br />
Octave runs on various Unices—at least Linux and Solaris, Mac OS X, Windows and anything you can compile it on. Binary distributions exist at least for Debian, SUSE, Fedora and RedHat Linuxes (Intel and AMD CPUs, at least), for Mac OS X and Windows' 98, 2000, XP, Vista, and 7.<br />
<br />
Two and three dimensional plotting is fully supported using gnuplot and an experimental OpenGL backend.<br />
<br />
The underlying numerical solvers are currently standard Fortran ones like LAPACK, LINPACK, ODEPACK, the BLAS, etc., packaged in a library of C++ classes. If possible, the Fortran subroutines are compiled with the system's Fortran compiler, and called directly from the C++ functions. If that's not possible, you can still compile Octave if you have the free Fortran to C translator f2c.<br />
<br />
Octave is also free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 3, as published by the Free Software Foundation, or at your option any later version.<br />
<br />
==Why are the developers planning to replace Gnuplot with an OpenGL backend?==<br />
<br />
The development of Octave is committed to being both compatible with Matlab and adding additional features. Toward those ends, the development community has chosen to introduce a native OpenGL backend that supports Matlab handle graphics and its uicontrols. The introduction of the experimental fltk graphics toolkit is the first product of this effort. As of the 3.6.N series, the fltk toolkit is approximately as advanced as is the Gnuplot toolkit. It is not yet decided if the fltk toolkit is to become the default backend, or if another OpenGL implementation will replace Gnuplot as the default backend. A Qt OpenGL toolkit is also [https://github.com/goffioul/QtHandles under development].<br />
<br />
There are no plans to remove the gnuplot backend. While a better backend may some day become the new default plotter, the gnuplot backend will still be available as long as our users find it useful.<br />
<br />
==How can I cite Octave?==<br />
<br />
Pointing to http://www.octave.org is good, because that gives people a direct way to find out more. If citation of a URL is allowed by the publisher you can use this entry (update year and version accordingly!):<br />
<br />
<nowiki>@MISC{octave:2014,<br />
author = {{Octave community}},<br />
keywords = {Octave,Software},<br />
title = {{GNU Octave 3.8.1}},<br />
url = {www.gnu.org/software/octave/},<br />
year = {2014}<br />
}</nowiki><br />
<br />
if you also want to point to a traditional reference, then you can cite the Octave manual:<br />
<br />
<nowiki>@BOOK{eaton:2009,<br />
author = {John W. Eaton and David Bateman and S\oren Hauberg},<br />
title = {{GNU Octave} version 3.0.1 manual: a high-level interactive language for numerical computations},<br />
publisher = {CreateSpace Independent Publishing Platform},<br />
year = {2009},<br />
note = {{ISBN} 1441413006},<br />
url = {http://www.gnu.org/software/octave/doc/interpreter},<br />
}</nowiki><br />
<br />
<br />
If you want to acknowledge Octave instead of citing it, you can use text such as this:<br />
<br />
<blockquote><br />
The data has been numerically analyzed with the free software package GNU Octave.<br />
</blockquote><br />
<br />
or<br />
<br />
<blockquote><br />
This work made use of the free software package GNU Octave, and the authors are grateful for the support of the Octave development community.<br />
</blockquote><br />
<br />
==When will feature X be released or implemented?==<br />
When it's ready, sooner if you help. Send us patches if you can. We like patches. If you can't, some developers may be convinced to work on your specific problem for some money.<br />
<br />
==How can I get involved in Octave development?==<br />
<br />
Be around. Be social. Participate in the [https://mailman.cae.wisc.edu/listinfo/help-octave help] and [https://mailman.cae.wisc.edu/listinfo/octave-maintainers maintainers] mailing lists. Find things about Octave you don't like, and start thinking about how to fix them. Many people who now contribute to Octave first spent several years helping in the mailing list before they started to delve into the code. A good way to learn Octave is to understand the problems other people are having with it, so being helpful in the mailing lists not only helps Octave as a whole, but it also prepares you to be a better Octave contributor.<br />
<br />
If you feel ready to dive right into the code, read [[Hacking | here]] and [http://www.gnu.org/software/octave/get-involved.html here] for guidance. One of the best ways for understanding how Octave works is to [[Debugging Octave|run it in a debugger]].<br />
<br />
We also need help with this wiki and the [http://www.gnu.org/software/octave/doc/interpreter/ manual]. These are also important tasks. The documentation is easier to patch, so you can discuss improvements to it and submit patches. Or just edit this wiki! <br />
<br />
Accurate bug reporting is also very useful. Find and report [http://www.gnu.org/software/octave/bugs.html bugs], making an attempt to diagnose them. Eventually, you will also know how to fix them. If you want to help with bug reports or patches, subscribe to [https://savannah.gnu.org/mail/?group=octave the bug tracker mailing list]. You'll get updates on all bug activity, and you can jump in when you see something you can help with.<br />
<br />
Look at our [[Projects]] and [[Summer of Code Project Ideas]] if you need specific inspiration for coding tasks that we would like to get done. See also the list of [[short projects]].<br />
<br />
=Licensing issues=<br />
<br />
==If I write code using Octave do I have to release it under the GPL?==<br />
<br />
The answer depends on precisely how the code is written and how it works.<br />
<br />
Code written entirely in the scripting language of Octave (interpreted code in .m files) may be released under the terms of whatever license you choose.<br />
<br />
Code written using Octave's native plug-in interface (also known as a .oct file) necessarily links with Octave internals and is considered a derivative work of Octave and therefore must be released under terms that are compatible with the GPL.<br />
<br />
Code written using Octave's implementation of the Matlab MEX interface may be released under the terms of whatever license you choose, provided that the following conditions are met:<br />
<br />
# The plugin should not use any bindings that are specific to Octave. In other words, the MEX file must use the MEX interface only, and not also call on other Octave internals. It should be possible in principle to use the MEX file with other programs that implement the MEX interface (e.g., Matlab).<br />
# The MEX file should not be distributed together with Octave in such a way that they effectively create a single work. For example, you should not distribute the MEX file and Octave together in a single package such that Octave automatically loads and runs the MEX file when it starts up. There are other possible ways that you might effectively create a single work; this is just one example.<br />
<br />
A program that embeds the Octave interpreter (e.g., by calling the "octave_main" function), or that calls functions from Octave's libraries (e.g., liboctinterp, liboctave, or libcruft) is considered a derivative work of Octave and therefore must be released under terms that are compatible with the GPL.<br />
<br />
==Since the MEX interface allows plugins to be distributed under terms that are incompatible with the GPL, does this mean that you are encouraging people to write non-free software for Octave?==<br />
<br />
No. The original reason for implementing the MEX interface for Octave was to allow Octave to run free software that uses MEX files (the particular goal was to run SundialsTB in Octave). The intent was to liberate that software from Matlab and increase the amount of free software available to Octave users, not to enable people to write proprietary code for Octave. For the good of the community, we strongly encourage users of Octave to release the code they write for Octave under terms that are compatible with the GPL.<br />
<br />
==I wrote a program that links with Octave libraries and I don't want to release it under the terms of the GPL. Will you change the license of the Octave libraries for me?==<br />
<br />
No. Instead of asking us to change the licensing terms for Octave, we recommend that you release your program under terms that are compatible with the GPL so that the free software community can benefit from your work the same as you have benefited from the work of all the people who have contributed to Octave.<br />
<br />
==Why can't I use code from File Exchange in Octave? It's released under a BSD license!==<br />
<br />
When one downloads code from File Exchange and use it on non Mathworks software (such as Octave), they are violating the Matlab central [http://www.mathworks.co.uk/matlabcentral/termsofuse.html Terms of Use]. While the [http://en.wikipedia.org/wiki/BSD_licenses BSD licenses] does allow one to use such code in Octave, it also allows others to further impose restrictions which Mathworks does through the MATLAB Central Terms of Use of their site:<br />
<br />
{{quote|text=Content submitted to File Exchange may only be used with MathWorks products.|sign=Matlab central|source=[http://www.mathworks.co.uk/matlabcentral/termsofuse.html#content Terms of Use 2iii]}}<br />
<br />
It should suffice -- although interpretations of this vary -- to contact the author directly and have them send you the code personally, or download the code from the author's own website, if available.<br />
<br />
If you need that code or think that the code is useful, please write the authors asking them to release under a free license. Some examples of letters/email sent to authors can be found in the page [[Asking_for_package_to_be_released_under_GPL:_examples|Asking for package to be released under GPL: examples]].<br />
<br />
Feel free to remix and reuse, just make sure you use your name!<br />
<br />
=What's new in Octave=<br />
==What's new in version series 3.6.N and 3.7.N of Octave==<br />
<br />
Several new features have been added to the 3.6.N series. The full details are in the NEWS file, but in brief 3.6.N series brings:<br />
<br />
* Perl compatible regular expressions<br />
* A profiler has been added.<br />
* Broadcasting enabled for all built-in binary element-wise operators.<br />
* The statistical distribution functions have been overhauled.<br />
* The functions strread(), textscan(), and textread() have been rewritten.<br />
* Performance of all m-file string functions has been improved.<br />
* The qhull geometry functions have been revamped.<br />
* Date/time functions have been updated.<br />
* Matlab compatible preference functions have been added.<br />
* Various handle graphics functions have been introduced.<br />
* The parfor keyword is now recognized.<br />
<br />
==Features added in version series 3.4.N and 3.5.N of Octave==<br />
Here are some features that have been around since 3.4.N<br />
<br />
* Many improvements to native OpenGL plotting<br />
* ARPACK now distributed with Octave<br />
* Indexing optimisations<br />
* FTP object using libcurl<br />
* Better consistency with ismatrix, issquare, and issymetric<br />
* Function handles aware of overloaded functions<br />
* More efficient matrix division by making a single LAPACK call<br />
* Other optimisations in matrix operations<br />
* bsxfun optimised for basic arithmetic functions<br />
* Matlab-style ignoring of output arguments using {{Codeline|~}}<br />
* Many optimisations of the accumarray function<br />
* Sparse matrix indexing has been rewritten for speed<br />
* Configuration pseudo-variables like page_screen_output accept a "local" option argument to limit their scope to function scope<br />
* The pkg command now accepts a -forge option to pull packages directly from Octave-forge<br />
* Several dlmread improvements<br />
* Octave now uses gnulib for better cross-platform compatibility<br />
<br />
==Features added in version series 3.2.N and 3.3.N of Octave==<br />
Here are some features that have been around since 3.2.N<br />
<br />
* integer types<br />
* fixed point arithmetic<br />
* sparse matrices<br />
* linear programming code based on GLPK<br />
* 64-bit compilation support<br />
* gzipped files and stream and consequently support of Matlab v7 files<br />
* better support for both msvc and mingw<br />
* a fully compatible MEX interface<br />
* many many other minor features and compatibility changes<br />
* an experimental OpenGL graphics toolkit to replace gnuplot<br />
* object orient programming<br />
* block comments<br />
* imwrite and imread (based on the GraphicsMagick library)<br />
* Lazy transpose <br/> Special treatment in the parser of things like "a' * b", where the transpose is never explicitly formed but a flag is rather passed to the underlying LAPACK code.<br />
* Single precision type<br />
* Improved array indexing <br/> The underlying code used for indexing of arrays has been completely rewritten and so the indexing of arrays is now significantly faster.<br />
<br />
==Features available since 2.1.N==<br />
Here are some older features that have been around since 2.1.N:<br />
<br />
* NDArrays<br />
* cells<br />
<br />
==Coming in a future release==<br />
The 3.7.N series is the current development release and will become a 3.8.N release in the future. This series brings the following new features:<br />
<br />
* JIT compiling in the interpreter (speeds up loops)<br />
* A GUI for Octave (based on Qt4)<br />
* The default graphics toolkit is planned to be changed from Gnuplot to an OpenGL fltk toolkit.<br />
<br />
=What documentation exists for Octave?=<br />
<br />
Besides the current wiki, there are other important sources of documentation and help for Octave.<br />
<br />
==What documentation exists for Octave?==<br />
<br />
The Octave distribution includes a 650+ page manual that is also distributed under the terms of the GNU GPL. It is available on the web at http://www.gnu.org/software/octave/doc/interpreter/ and you will also find there instructions on how to order a paper version.<br />
<br />
The complete text of the Octave manual is also available using the GNU Info system via the GNU Emacs, info, or xinfo programs, or by using the {{Codeline|doc}} command to start the GNU info browser directly from the Octave prompt.<br />
<br />
If you have problems using this documentation, or find that some topic is not adequately explained, indexed, or cross-referenced, please report it on http://bugs.octave.org.<br />
<br />
==Getting additional help==<br />
<br />
If you can't find an answer to your question, the help@octave.org mailing list is available for questions related to using, installing, and porting Octave that are not adequately answered by the Octave manual or by this document.<br />
<br />
==User community==<br />
<br />
To subscribe to the list, go to http://www.octave.org/archive.html and follow the link to the subscription page for the list.<br />
<br />
Please do not send requests to be added or removed from the mailing list, or other administrative trivia to the list itself.<br />
<br />
An archive of old postings to the help-octave mailing list is maintained on http://www.octave.org/archive.html.<br />
<br />
You will also find some user advice and code spread over the web. Good starting points are the Octave Wiki http://wiki.octave.org and Octave-Forge http://octave.sourceforge.net<br />
<br />
We also have [http://webchat.freenode.net?channels=octave&uio=d4 an IRC chat room], <code>#octave</code> in Freenode.<br />
<br />
==I think I have found a bug in Octave.==<br />
<br />
“I think I have found a bug in Octave, but I'm not sure. How do I know, and who should I tell?”<br />
<br />
First, see the section [http://www.octave.org/bugs.html on bugs and bug reports in the Octave manual]. When you report a bug, make sure to describe the type of computer you are using, the version of the operating system it is running, and the version of Octave that you are using. Also provide enough code and configuration details of your operating system so that the Octave maintainers can duplicate your bug.<br />
<br />
=How can I obtain Octave?=<br />
<br />
==Source code==<br />
<br />
Source code is available on the Octave development site, where you are sure to get the latest version.<br />
<br />
* http://www.octave.org/download.html<br />
* ftp://ftp.octave.org/pub/octave/<br />
<br />
Since Octave is distributed under the terms of the GPL, you can get Octave from a friend who has a copy, or from the Octave website.<br />
<br />
==Pre-compiled binary packages==<br />
<br />
The Octave project does not distribute binary packages, but other projects do. For an up-to-date listing of packagers, see:<br />
<br />
* http://www.octave.org/download.html<br />
* [[Build From Source]]<br />
<br />
As of today, Octave binaries are available at least on Debian, Ubuntu, RedHat, Suse and Fedora GNU/Linux, Mac OS X, Windows versions 98, 2000, XP, Vista, 7 and 8.<br />
<br />
==How do I get a copy of Octave for (some other platform)?==<br />
<br />
Octave currently runs on Unix-like systems, Mac OS X, and Windows. It should be possible to make Octave work on other systems as well. If you are interested in porting Octave to other systems, please contact [mailto:maintainers@octave.org the maintainers' mailing list]<br />
.<br />
==How can I install Octave on Android? What is this Octave app in the Google Play store?==<br />
<br />
There is an unofficial Octave app available for Android in the Google Play store. Please see [[Android]] for more information.<br />
<br />
=Installation issues and problems= <br />
<br />
Octave 3.4 requires approximately 1.3 GB of disk storage to unpack and compile from source (considerably less if you don't compile with debugging symbols). Once installed, Octave requires approximately 355 MB of disk space (again, considerably less if you don't compile with debugging symbols, approximately 50 MB).<br />
<br />
Check out the page [[Installation]] for more detailed information about installing Octave.<br />
<br />
==What else do I need?==<br />
<br />
To compile Octave, you will need a recent version of GNU Make. You will also need GCC 4.3 or later, although GCC 4.4 or later is recommended.<br />
<br />
'''You must have GNU Make to compile octave'''. Octave's Makefiles use features of GNU Make that are not present in other versions of make. GNU Make is very portable and easy to install.<br />
<br />
==Can I compile Octave with another C++ compiler?==<br />
<br />
Yes, but development is done primarily with GCC, so you may hit some incompatibilities. Octave is intended to be portable to any standard conforming compiler. If you have difficulties that you think are bugs, please report them to the http://bugs.octave.org bug tracker, or ask for help on the [mailto:help@octave.org mailing list].<br />
<br />
== How do I install ''all'' Octave packages? ==<br />
Do not do it! Really, there is no reason to do this. Octave Forge has many packages for different needs but it's unlikely that you need all of them. The common misconception is that the more packages one installs, the more complete and powerful its octave installation will be. However, in the same way one would ''never'' install all perl modules, ruby gems or python packages (because it simply makes no sense), one should not install all octave packages. This isn't desirable and it's not even possible.<br />
<br />
Packages should be installed and loaded selectively. Note that some packages are meant to shadow core functions changing the way Octave works, and different packages can have different implementations of a function with the same name, leading to unpredictable results. Others are just broken or crappy and will break your system. What's worse, some of them packages are even loaded automatically at startup so you may be screwing your octave installation without even realizing it.<br />
<br />
=Coding=<br />
<br />
==What features are unique to Octave?==<br />
<br />
Although most of the Octave language will be familiar to Matlab users, it has some unique features of its own.<br />
<br />
=== Functions defined on the command-line===<br />
Functions can be defined by entering code on the command line, a feature not supported by Matlab. For example, you may type:<br />
<br />
octave:1> function s = hello_string (to_who)<br />
> ## Say hello<br />
> if nargin<1, to_who = "World"; end<br />
> s = ["Hello ",\<br />
> to_who];<br />
> endfunction<br />
octave:2> hello_string ("Moon")<br />
ans = Hello Moon<br />
<br />
As a natural extension of this, functions can also be defined in script files (m-files whose first non-comment line isn't {{Codeline|function out &#61; foo (...)}})<br />
<br />
===Comments with #===<br />
<br />
The pound character, {{Codeline|#}}, may be used to start comments, in addition to {{Codeline|%}}. See the previous example. The major advantage of this is that as {{Codeline|#}} is also a comment character for unix script files, any file that starts with a string like {{Codeline|#! /usr/bin/octave -q}} will be treated as an octave script and be executed by octave.<br />
<br />
===Strings delimited by double quotes "===<br />
<br />
The double quote, {{Codeline|"}}, may be used to delimit strings, in addition to the single quote {{Codeline|'}}. See the previous example. Also, double-quoted strings include backslash interpretation (like C++, C, and Perl) while single quoted are uninterpreted (like Matlab and Perl).<br />
<br />
===Line continuation by backslash===<br />
<br />
Lines can be continued with a backslash, {{Codeline|\}}, in addition to three points {{Codeline|...}}. See the previous example.<br />
<br />
===Informative block closing===<br />
<br />
You may close function, for, while, if, ... blocks with endfunction, endfor, endwhile, ... keywords in addition to using end. As with Matlab, the end (or endfunction) keyword that marks the end of a function defined in a .m file is optional.<br />
<br />
===Coherent syntax===<br />
<br />
Indexing other things than variables is possible, as in:<br />
<br />
octave:1> [3 1 4 1 5 9](3)<br />
ans = 4<br />
octave:2> cos([0 pi pi/4 7])(3)<br />
ans = 0.70711<br />
<br />
In Matlab, it is for example necessary to assign the intermediate result {{Codeline|cos([0 pi pi/4 7])}} to a variable before it can be indexed again.<br />
<br />
===Exclamation mark as not operator===<br />
<br />
The exclamation mark {{Codeline|!}} (aka “Bang!”) is a negation operator, just like the tilde {{Codeline|~}}:<br />
<br />
octave:1> if ! strcmp (program_name, "octave"),<br />
> "It's an error"<br />
> else<br />
> "It works!"<br />
> end<br />
ans = It works!<br />
Note however that Matlab uses the {{Codeline|!}} operator for shell escapes, for which Octave requires using the system command.<br />
<br />
===Increment and decrement operators===<br />
<br />
If you like the {{Codeline|++}}, {{Codeline|+&#61;}} etc operators, rejoice! Octave includes the C-like increment and decrement operators {{Codeline|++}} and {{Codeline|--}} in both their prefix and postfix forms, in addition to {{Codeline|+&#61;}}, {{Codeline|-&#61;}}, {{Codeline|*&#61;}}, {{Codeline|/&#61;}}, {{Codeline|^&#61;}}, {{Codeline|.*&#61;}}, {{Codeline|./&#61;}}, and {{Codeline|.^&#61;}}.<br />
<br />
For example, to pre-increment the variable x, you would write {{Codeline|++x}}. This would add one to x and then return the new value of x as the result of the expression. It is exactly the same as the expression {{Codeline|x &#61; x + 1}}.<br />
<br />
To post-increment a variable x, you would write {{Codeline|x++}}. This adds one to the variable x, but returns the value that x had prior to incrementing it. For example, if x is equal to 2, the result of the expression x++ is 2, and the new value of x is 3.<br />
<br />
For matrix and vector arguments, the increment and decrement operators work on each element of the operand.<br />
<br />
===Unwind-protect===<br />
<br />
In addition to try-catch blocks, Octave supports an alternative form of exception handling modeled after the unwind-protect form of Lisp. The general form of an unwind_protect block looks like this:<br />
<br />
unwind_protect<br />
body<br />
unwind_protect_cleanup<br />
cleanup<br />
end_unwind_protect<br />
<br />
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.<br />
<br />
The unwind_protect statement is often used to reliably restore the values of global variables that need to be temporarily changed.<br />
<br />
Matlab can be made to do something similar with their {{Codeline|onCleanup}} function that was introduced in 2008a. Octave also has {{Codeline|onCleanup}} since version 3.4.0.<br />
<br />
===Built-in ODE and DAE solvers===<br />
<br />
Octave includes LSODE, DASSL and DASPK for solving systems of stiff ordinary differential and differential-algebraic equations. These functions are built in to the interpreter.<br />
<br />
==How does Octave solve linear systems?==<br />
<br />
In addition to consulting Octave's source for the precise details, you can read the Octave manual for a complete high-level description of the algorithm that Octave uses to decide how to solve a particular linear system, e.g. how the backslash operator {{Codeline|A\x}} will be interpreted. Sections [http://www.gnu.org/software/octave/doc/interpreter/Techniques-Used-for-Linear-Algebra.html#Techniques-Used-for-Linear-Algebra Techniques Used for Linear Algebra] and [http://www.gnu.org/software/octave/doc/interpreter/Sparse-Linear-Algebra.html Linear Algebra on Sparse Matrices] from the manual describe this procedure.<br />
<br />
=How do I...?=<br />
<br />
==How do I execute an Octave script?==<br />
<br />
First of all, make sure you understand [http://www.gnu.org/software/octave/doc/interpreter/Script-Files.html the difference between script files and function files]. If you want to execute a function defined in a file, just call the function like any other Octave function: <code>foo(arg1, arg2);</code><br />
<br />
To execute a script from within Octave, just type its name without the .m extension. Thus, if you have a script called <code>foo.m</code>, just type <code>foo</code> from within Octave to execute it. You have to make sure that the script is in your current path. Type <code>path</code> in Octave to see what this path is, and type <code>pwd</code> to print the working directory (where you're currently standing). The current working directory is referred to as "." in the <code>path</code>.<br />
<br />
If the script name has characters that are not valid for an Octave identifier, or if you do not want to use addpath to add the script's location to the current path, you can use the <code>run</code> function instead:<br />
<br />
octave> run("Script Name With Spaces.m")<br />
octave> run("/opt/local/foo.m")<br />
<br />
An alternative is to run the script from outside Octave by calling Octave from your operating system shell. Unlike calling the script from inside Octave, this also allows you to pass arguments from the shell into the script, which the script can access using the <code>argv</code> command:<br />
<br />
$ octave the-script.m arg1 arg2<br />
<br />
In a Unix environment, if the script has a [http://en.wikipedia.org/wiki/Shebang_%28Unix%29 shebang] (e.g. <code>#!/usr/bin/octave</code>) and executable permissions, you can call it like any other Unix program with arguments:<br />
<br />
$ ./the-script arg1 arg2<br />
<br />
If you call the script from the shell and it's plotting, please note [[#When I try plotting from a script, why am I not seeing anything?|how to plot when running a script from the shell]].<br />
<br />
==do xxxx?==<br />
<br />
You are probably looking for the function ''lookfor''. This function searches the help text of all functions for a specific string and returns a list of functions. Note that by default it will only search the first line of the help text (check ''help lookfor'' at the octave prompt for more). The following example helps to find the function to calculate correlation coefficient in a matrix:<br />
<br />
octave> lookfor correlation<br />
corr2 Returns the correlation coefficient between I and J.<br />
cor Compute correlation.<br />
corrcoef Compute correlation.<br />
spearman Compute Spearman's rank correlation coefficient RHO for each of the variables sp<br />
autocor Return the autocorrelations from lag 0 to H of vector X.<br />
<br />
Also, there's a high chance that the function name has a suggestive name, and so you can try auto-completion to get some hints. For the previous example, typing ''corr'' at the octave promp followed by pressing [Tab] twice would suggest the following:<br />
<br />
octave> corr<br />
corr2 corrcoef<br />
<br />
==How do I erase a figure?== <br />
<br />
closeplot(); <br />
closefig(number)<br />
<br />
==How do I set the number of displayed decimals?==<br />
<br />
octave:1> format long<br />
octave:2> pi<br />
pi = 3.14159265358979<br />
octave:3> format short<br />
octave:4> pi<br />
pi = 3.1416<br />
<br />
==How do I call an octave function from C++?==<br />
<br />
*Here is an untested code snippet for calling rand([9000,1]), modified from a post by HerberFarnsworth? to help-octave on 2003-05-01:<br />
<br />
#include <octave/oct.h><br />
...<br />
ColumnVector NumRands(2);<br />
NumRands(0) = 9000;<br />
NumRands(1) = 1;<br />
octave_value_list f_arg, f_ret;<br />
f_arg(0) = octave_value(NumRands);<br />
f_ret = feval("rand",f_arg,1);<br />
Matrix unis(f_ret(0).matrix_value());<br />
<br />
==How do I change colour/line definition in gnuplot postscript?==<br />
Here is a awk script to get a rainbow colour map<br />
<br />
#!/bin/awk -f<br />
<br />
BEGIN {<br />
split("0 4 6 7 5 3 1 2 8", rainbow, " ");<br />
split("7 3 1 0 2 4 6 5 8", invraim, " ");<br />
}<br />
<br />
$1 ~ /\/LT[0-8]/ {<br />
n = substr($1, 4, 1);<br />
if (n == 0)<br />
lt = "{ PL [] 0.9 0.1 0.1 DL } def";<br />
else if (n == 1)<br />
lt = "{ PL [4 dl 2 dl] 0.1 .75 0.1 DL } def";<br />
else if (n == 2)<br />
lt = "{ PL [2 dl 3 dl] 0.1 0.1 0.9 DL } def";<br />
else if (n == 3)<br />
lt = "{ PL [1 dl 1.5 dl] 0.9 0 0.8 DL } def";<br />
else if (n == 4)<br />
lt = "{ PL [5 dl 2 dl 1 dl 2 dl] 0.1 0.8 0.8 DL } def";<br />
else if (n == 5)<br />
lt = "{ PL [4 dl 3 dl 1 dl 3 dl] 0.9 0.8 0.2 DL } def";<br />
else if (n == 6)<br />
lt = "{ PL [2 dl 2 dl 2 dl 4 dl] 0.5 0.3 0.1 DL } def";<br />
else if (n == 7)<br />
lt = "{ PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.4 0 DL } def";<br />
else if (n == 8)<br />
lt = "{ PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def";<br />
$0 = sprintf("/LT%d %s", rainbow[n+1], lt);<br />
##$0 = sprintf("/LT%x %s", invraim[n+1], lt);<br />
##$0 = sprintf("/LT%x %s", n, lt);<br />
}<br />
<br />
{ print; }<br />
<br />
==How do I tell if a file exists?==<br />
<br />
Look at functions like exist, file_in_path.. and the other functions that their descriptions point to.<br />
<br />
<br />
==How do I create a plot without a window popping up (ie, a plot to a file)?==<br />
<br />
'''This only works with gnuplot as graphics_toolkit, NOT with fltk. See [https://savannah.gnu.org/bugs/?33180 Bug#33180]'''<br />
<br />
figure(1, "visible", "off");<br />
plot(sin(1:100));<br />
print -deps "/tmp/sin.eps"<br />
<br />
One can set that behaviour as default:<br />
<br />
set(0, 'defaultfigurevisible', 'off');<br />
<br />
== How do I make Octave use more precision? ==<br />
<br />
Octave's default numerical type is IEEE 754 doubles, a.k.a. hardware floats. This type has 52 bits of precision or about 16 decimal digits. It's implemented in your computer's hardware, in your CPU, so it's '''fast'''. This type is assumed throughout for Octave's calculations.<br />
<br />
You can use a few other built-in types. The int64 type will have 63 bits of precision. One bit is used for the sign, but if you don't want to lose that bit, uint64 can be used instead. These types, however, cannot represent numbers as large as the default double type, and can only represent integers. Furthermore, there is no way to represent integer literals, so if you do <br />
<br />
<syntaxhighlight lang="Octave">uint64(18446744073709551610);</syntaxhighlight><br />
<br />
the literal "18446744073709551610" first gets converted to a double precision type, so <code>uint64</code>'s additional precision is lost. Instead, initialise the <code>uint64</code> with smaller numbers and perform a computation to get the larger number you want. E.g., <br />
<br />
<syntaxhighlight lang="Octave">uint64(999999999999999) * 10000</syntaxhighlight><br />
<br />
would produce value 9999999999999990000, which is close to the maximum possible value for the uint64 type, but can't be at the moment input directly, doing uint64(9999999999999990000), due to the mentioned error of rounding.<br />
<br />
Alternatively, one may use arbitrary precision arithmetic, which has as much precision as is practical to hold in your computer's memory. The ''symbolic'' package, when it works, has a vpa() function for arbitrary precision arithmetic. Note that arbitrary precision arithmetic must be implemented '''in software''' which makes it much slower than hardware floats.<br />
<br />
At present, however, the symbolic package is almost useless, since even when you get it to compile and not crash, it cannot handle any array type, which hardly helps for an array-oriented language like Octave. If this limitation is not important to you, attempt to use the symbolic package. If you would like to get this fixed, [http://octave.1599824.n4.nabble.com/Internal-Precision-Symbolic-tp4645257p4645594.html Jordi Gutiérrez Hermoso has volunteered] to fix the package for 5000 USD, which can be obtained from a kickstarter campaign.<br />
<br />
Consider carefully if your problem really needs more precision. Often if you're running out of precision the problem lies fundamentally in your methods being [http://en.wikipedia.org/wiki/Numerical_stability numerically unstable], so more precision will not help you here. If you absolutely must use arbitrary-precision arithmetic, you're at present better off using a CAS instead of Octave. An example of such a CAS is [http://sagemath.org Sage].<br />
<br />
=Common problems=<br />
<br />
==I am running a script that should produce output during execution but I don't see anything until it has finished==<br />
<br />
By default Octave is set to pass its screen output through a pager (usually the default pager is "less") which allows<br />
things such as navigating through the output with arrow keys or searching for text or regular expressions within the output.<br />
The pager only displays the output after it's finished receiving it, so when it is active you'll not be able to see anything until your script has terminated. To change this behavior temporarily or permanently you may want to use one of the options described [http://www.gnu.org/software/octave/doc/interpreter/Paging-Screen-Output.html here].<br />
<br />
==When I try plotting from a script, why am I not seeing anything?==<br />
<br />
If you are running an Octave script that includes a plotting command, the script and Octave may terminate immediately. So the plot window does show up, but immediately closes when Octave finishes execution. Alternatively, if using fltk, the plot window needs a readline loop to show up (the time when Octave is sitting around doing nothing waiting for interactive input).<br />
<br />
A common solution is to put a {{Codeline|pause}} command at the end of your script.<br />
<br />
==How do I get sound input or output in Windows?== <br />
Sound I/O is badly broken on anything that isn't using Linux's Open Sound System. Nowadays, this usually doesn't even include Linux, since OSS is frequently considered "legacy". All of the audio functions in Octave are badly in need of a rewrite so that they actually work.<br />
<br />
==I cannot install a package. Octave complains about a missing mkoctfile.==<br />
<br />
You should normally use your distribution's packages. For Debian and Fedora, Octave package '''foo''' will be a deb or rpm called '''octave-foo''', and you should install that instead using apt or yum.<br />
<br />
If you really need to build Octave packages from source to install them, you'll need mkoctfile. Most distributions split Octave into several packages. The script mkoctfile is then part of a separate package:<br />
<br />
* Debian/Ubuntu: {{Codeline|octave-headers}} or {{Codeline|liboctave-dev}}<br />
<br />
* Fedora: {{Codeline|octave-devel}}<br />
<br />
== I'm having problem XXX using the latest Octave version ==<br />
<br />
Please be more specific. What is the latest version, according to you? If you mean the latest released version, be aware that you may still have an older version due to whatever distribution method you're using. There may be a newer version available that you're not aware of due to the distribution method you're using to get Octave, and in most cases, there is a way to get a newer version via your distribution method (see other wiki pages for [[Octave_for_GNU/Linux|GNU/Linux]], [[Octave_for_MacOS_X|Mac OSX]], and [[Octave_for_Windows|Windows]]).<br />
<br />
If you mean the latest Mercurial revision, please specify which one that is. "Latest tip" is not informative, because from the time you wrote "latest tip" to the time someone reads that message, "latest tip" might have changed meaning. Also, you might be standing on a different commit than what "hg tip" says. The tip may be on a different branch, or you might have updated to a different revision different from what "hg tip" says.<br />
<br />
Instead, report the output of "hg summary" or "hg id". Also please use hashes instead or in addition to revision numbers. Revision numbers are just a convenience and only make sense in your local repo, and might not coincide with what someone sees on their own repo. Hashes are globally unique across all repos.<br />
<br />
If your problem truly persists with the latest version, as indicated [http://www.gnu.org/software/octave/download.html here], then by all means report a bug or ask for help, but don't be surprised if volunteers are less inclined to help you with a problem that only exists in an older version of Octave.<br />
<br />
== Why is this floating point computation wrong? ==<br />
<br />
Floating point arithmetic is an approximation '''in binary''' to arithmetic on real or complex numbers. Just like you cannot represent 1/3 exactly in decimal arithmetic (0.333333 is only a rough approximation to 1/3), you cannot represent some fractions like <math>1/10</math> exactly in base 2. In binary, the representation to one tenth is <math>0.0\overline{0011}</math> where the bar indicates that it repeats infinitely (like how <math>1/6 = 0.1\overline{6}</math> in decimal). Because this infinite repetition cannot be represented exactly with a finite number of digits, rounding errors occur for values that appear to be exact in decimal but are in fact approximations in binary, such as for example how 0.3 - 0.2 - 0.1 is not equal to zero.<br />
<br />
This isn't an Octave bug. It happens with any program that uses [http://en.wikipedia.org/wiki/IEEE_754 IEEE 754 floating point arithmetic]. The reason why Octave and other programs use IEEE 754 floats is that they are ''fast'', because they are implemented in hardware. Unless you are using very exotic hardware, Octave will use your computer's processor for floating point arithmetic.<br />
<br />
Like death and taxes, rounding errors are a fact of life. You cannot avoid them. You can only move a rounding error from one part of a computation to another, or you can use more precision and delay the rounding error. One way to delay the rounding error is to use arbitrary precision arithmetic, which is inevitably slower as it has to be implemented in software instead of hardware. You may use the vpa function from the symbolic package for this purpose.<br />
<br />
To learn more about floating point arithmetic, consult [http://en.wikipedia.org/wiki/Floating_point_arithmetic its Wikipedia article] or the classical reference [http://floating-point-gui.de/ What Every Computer Scientist Should Know About Floating Point Arithmetic].<br />
<br />
== I have installed a package but still get a "foo undefined" error ==<br />
<br />
You have probably forgotten to load the package. Use {{Codeline|pkg load package-name}} to load it. Most packages are no longer loaded automatically to avoid surprises. See reasoning on related FAQ [[FAQ#How_do_I_install_all_Octave_packages.3F|how do I install all Octave packages]]. If you want a specific package to be loaded by default at startup, consider adding the {{Codeline|pkg load}} command on your {{path|.octaverc}} file.<br />
<br />
=Porting programs from Matlab to Octave=<br />
<br />
People often ask<br />
<br />
<blockquote><br />
I wrote some code for Matlab, and I want to get it running under Octave. Is there anything I should watch out for?<br />
</blockquote><br />
<br />
or alternatively<br />
<br />
<blockquote><br />
I wrote some code in Octave, and want to share it with Matlab users. Is there anything I should watch out for?<br />
</blockquote><br />
<br />
which is not quite the same thing. There are still a number of differences between Octave and Matlab, however in general differences between the two are considered as bugs. Octave might consider that the bug is in Matlab and do nothing about it, but generally functionality is almost identical. If you find an important functional difference between Octave behavior and Matlab, then you should send a description of this difference (with code illustrating the difference, if possible) to http://bugs.octave.org.<br />
<br />
Furthermore, Octave adds a few syntactical extensions to Matlab that might cause some issues when exchanging files between Matlab and Octave users. As both Octave and Matlab are under constant development the information in this section is subject to change at anytime.<br />
<br />
You should also look at the pages http://octave.sourceforge.net/packages.php and http://octave.sourceforge.net/docs.html that have a function reference that is up to date. You can use this function reference to see the number of octave functions that are available and their Matlab compatibility.<br />
<br />
==How is Octave different from Matlab?==<br />
<br />
The major differences between Octave 3.4.N and Matlab R2010b are:<br />
<br />
===Nested Functions===<br />
Octave has limited support for nested functions. That is<br />
<br />
function y = foo (x)<br />
y = bar(x)<br />
function y = bar (x)<br />
y = ...;<br />
end<br />
end<br />
<br />
is equivalent to<br />
<br />
function y = foo (x)<br />
y = bar(x)<br />
end<br />
function y = bar (x)<br />
y = ...;<br />
end<br />
<br />
The main difference with Matlab is a matter of scope. While nested functions have access to the parent function's scope in Matlab, no such thing is available in Octave, due to how Octave essentially “un-nests” nested functions.<br />
<br />
The authors of Octave consider the nested function scoping rules of Matlab to be more problems than they are worth as they introduce difficult to find bugs as inadvertently modifying a variable in a nested function that is also used in the parent is particularly easy for those not attentive to detail.<br />
<br />
===Differences in core syntax===<br />
<br />
There are a few core Matlab syntaxes that are not accepted by Octave, these being<br />
<br />
* Some limitations on the use of function handles. The major difference is related to nested function scoping rules (as above) and their use with function handles.<br />
<br />
* Some limitations of variable argument lists on the LHS of an expression, though the most common types are accepted.<br />
<br />
* Matlab classdef object oriented programming is not yet supported, though work is underway in a branch of the development tree.<br />
<br />
===Differences in core functions===<br />
<br />
A large number of the Matlab core functions (ie those that are in the core and not a toolbox) are implemented, and certainly all of the commonly used ones. There are a few functions that aren't implemented, usually to do with specific missing Octave functionality (GUI, DLL, Java, ActiveX, DDE, web, and serial functions). Some of the core functions have limitations that aren't in the Matlab version. For example the sprandn function can not force a particular condition number for the matrix like Matlab can.<br />
<br />
===Just-In-Time compiler===<br />
<br />
Matlab includes a "Just-In-Time" compiler. This compiler allows the acceleration of for-loops in Matlab to almost native performance with certain restrictions. The JIT must know the return type of all functions called in the loops and so you can't include user functions in the loop of JIT optimized loops. Octave doesn't have a JIT and so to some might seem slower than Matlab. For this reason you must vectorize your code as much as possible. The MathWorks themselves have a good document discussing vectorization at http://www.mathworks.com/support/tech-notes/1100/1109.html.<br />
<br />
===Compiler===<br />
<br />
On a related point, there is no Octave compiler, and so you can't convert your Octave code into a binary for additional speed or distribution. There have been several aborted attempts at creating an Octave compiler. Should the JIT compiler above ever be implemented, an Octave compiler should be more feasible.<br />
<br />
===Graphic handles===<br />
<br />
Up to Octave 2.9.9 there was no support for graphic handles in Octave itself. In the 3.2.N versions of Octave and beyond the support for graphics handles is converging towards full compatibility. The patch function is currently limited to 2-D patches, due to an underlying limitation in gnuplot, but the experimental OpenGL backend is starting to see an implementation of 3-D patches.<br />
<br />
===GUI functions ===<br />
<br />
There are no Matlab compatible GUI functions yet. This might be an issue if you intend to exchange Octave code with Matlab users. There are a number of bindings from Octave to {{Forge|tcl-octave|Tcl/Tk}}, [http://octaviz.sourceforge.net/index.php? VTK] and {{Forge|zenity}} for example, that can be used for a GUI, but these are not Matlab compatible. Work on a Matlab compatible GUI is in an alpha stage in the QtHandles project, which may form part of a future release of Octave.<br />
<br />
===Simulink===<br />
<br />
Octave itself includes no Simulink support. Typically the simulink models lag research and are less flexible, so shouldn't really be used in a research environment. However, some Matlab users that try to use Octave complain about this lack.<br />
<br />
===MEX-Files===<br />
<br />
Octave includes an API to the Matlab MEX interface. However, as MEX is an API to the internals of Matlab and the internals of Octave differ from Matlab, there is necessarily a manipulation of the data to convert from a MEX interface to the Octave equivalent. This is notable for all complex matrices, where Matlab stores complex arrays as real and imaginary parts, whereas Octave respects the C99/C++ standards of co-locating the real/imag parts in memory. Also due to the way Matlab allows access to the arrays passed through a pointer, the MEX interface might require copies of arrays (even non complex ones).<br />
<br />
===Block comments===<br />
<br />
Block comments denoted by {{Codeline|#{}} and {{Codeline|#&#125;}} markers (or {{Codeline|%{}} and {{Codeline|%&#125;}}) are supported by Octave with some limitations. The major limitation is that block comments are not supported within [] or {}.<br />
<br />
===Mat-File format===<br />
<br />
There are some differences in the mat v5 file format accepted by Octave. Matlab recently introduced the "-V7.3" save option which is an HDF5 format which is particularly useful for 64-bit platforms where the standard Matlab format can not correctly save variables. Octave accepts HDF5 files, but is not yet compatible with the "-v7.3" versions produced by Matlab.<br />
<br />
Although Octave can load inline function handles saved by Matlab, it can not yet save them.<br />
<br />
Finally, Some multi-byte Unicode characters aren't yet treated in mat-files.<br />
<br />
===Profiler===<br />
<br />
Thanks to Daniel Kraft's 2011 Google Summer of Code project, Octave has a profiler since version 3.6.0. However, at the moment it only produces text output and has its own makeshift interface for hierarchical profiling.<br />
<br />
===Toolboxes===<br />
<br />
Octave is a community project and so the toolboxes that exist are donated by those interested in them through [[Octave Forge]]. These might be lacking in certain functionality relative to the Matlab toolboxes, and might not exactly duplicate the Matlab functionality or interface.<br />
<br />
===Short-circuit {{Codeline|&}} and {{Codeline|&#124;}} operators===<br />
<br />
The {{Codeline|&}} and {{Codeline|&#124;}} operators in Matlab short-circuit when included in a condition (e.g. an {{Codeline|if}} or {{Codeline|while}} statement) and not otherwise. In Octave only the {{Codeline|&&}} and {{Codeline|&#124;&#124;}} short circuit. Note that this means that<br />
<br />
if (a | b)<br />
...<br />
end<br />
<br />
and<br />
<br />
t = a | b;<br />
if t<br />
...<br />
end<br />
<br />
have different semantics in Matlab. This is really a Matlab bug, but there is too much code out there that relies on this behaviour to change it. Prefer the {{Codeline|&#124;&#124;}} and {{Codeline|&&}} operators in {{Codeline|if}} statements if possible. If you need to use code written for Matlab that depends on this buggy behaviour, you can enable it since Octave 3.4.0 with the following command:<br />
<br />
do_braindead_shortcircuit_evaluation(1)<br />
<br />
Note that the difference with Matlab is also significant when either argument is a function with side effects or if the first argument is a scalar and the second argument is an empty matrix. For example, note the difference between<br />
<br />
t = 1 | []; ## results in [], so...<br />
if (t) 1, end ## in if ([]), this is false.<br />
<br />
and<br />
<br />
if (1 | []) 1, end ## short circuits so condition is true.<br />
<br />
Another case that is documented in the Matlab manuals is that<br />
<br />
t = [1, 1] | [1, 2, 3]; ## error<br />
if ([1, 1] | [1, 2, 3]) 1, end ## OK<br />
<br />
Also Matlab requires the operands of {{Codeline|&&}} and {{Codeline|&#124;&#124;}} to be scalar values but Octave does not (it just applies the rule that for an operand to be considered true, every element of the object must be nonzero or logically true).<br />
<br />
Finally, note the inconsistence of thinking of the condition of an {{Codeline|if}} statement as being equivalent to {{Codeline|all(X(:))}} when {{Codeline|X}} is a matrix. This is true for all cases EXCEPT empty matrices:<br />
<br />
if ([0, 1]) == if (all ([0, 1])) ==> i.e., condition is false.<br />
if ([1, 1]) == if (all ([1, 1])) ==> i.e., condition is true.<br />
<br />
However,<br />
<br />
if ([])<br />
<br />
is not the same as<br />
<br />
if (all ([]))<br />
<br />
because, despite the name, the {{Codeline|all}} is really returning true if none of the elements of the matrix are zero, and since there are no elements, well, none of them are zero. This is an example of [http://en.wikipedia.org/wiki/Vacuous_truth vacuous truth]. But, somewhere along the line, someone decided that {{Codeline|if ([])}} should be false. Mathworks probably thought it just looks wrong to have {{Codeline|[]}} be true in this context even if you can use logical gymnastics to convince yourself that "all" the elements of an empty matrix are nonzero. Octave however duplicates this behavior for {{Codeline|if}} statements containing empty matrices.<br />
<br />
===Solvers for singular, under- and over-determined matrices===<br />
<br />
Matlab's solvers as used by the operators mldivide (\) and mrdivide (/), use a different approach than Octave's in the case of singular, under-, or over-determined matrices. In the case of a singular matrix, Matlab returns the result given by the LU decomposition, even though the underlying solver has flagged the result as erroneous. Octave has made the choice of falling back to a minimum norm solution of matrices that have been flagged as singular which arguably is a better result for these cases.<br />
<br />
In the case of under- or over-determined matrices, Octave continues to use a minimum norm solution, whereas Matlab uses an approach that is equivalent to<br />
<br />
function x = mldivide (A, b)<br />
m = rows(A);<br />
[Q, R, E] = qr(A);<br />
x = [A \ b, E(:, 1:m) * (R(:, 1:m) \ (Q' * b))]<br />
end<br />
<br />
While this approach is certainly faster and uses less memory than Octave's minimum norm approach, this approach seems to be inferior in other ways.<br />
<br />
A numerical question arises: how big can the null space component become, relative to the minimum-norm solution? Can it be nicely bounded, or can it be arbitrarily big? Consider this example:<br />
<br />
m = 10;<br />
n = 10000;<br />
A = ones(m, n) + 1e-6 * randn(m,n);<br />
b = ones(m, 1) + 1e-6 * randn(m,1);<br />
norm(A \ b)<br />
<br />
while Octave's minimum-norm values are around 3e-2, Matlab's results are 50-times larger. For another issue, try this code:<br />
<br />
m = 5;<br />
n = 100;<br />
j = floor(m * rand(1, n)) + 1;<br />
b = ones(m, 1);<br />
A = zeros(m, n);<br />
A(sub2ind(size(A),j,1:n)) = 1;<br />
x = A \ b;<br />
[dummy,p] = sort(rand(1,n));<br />
y = A(:,p)\b;<br />
norm(x(p)-y)<br />
<br />
It shows that unlike in Octave, mldivide in Matlab is not invariant with respect to column permutations. If there are multiple columns of the same norm, permuting columns of the matrix gets you different result than permuting the solution vector. This will surprise many users.<br />
<br />
Since the mldivide (\) and mrdivide (/) operators are often part of a more complex expression, where there is no room to react to warnings or flags, it should prefer intelligence (robustness) to speed, and so the Octave developers are firmly of the opinion that Octave's approach for singular, under- and over-determined matrices is a better choice than Matlab's.<br />
<br />
===Octave extensions===<br />
<br />
The extensions in Octave over Matlab syntax are very useful, but might cause issues when sharing with Matlab users. A list of the major extensions that should be avoided to be compatible with Matlab are:<br />
<br />
Comments in octave can be marked with {{Codeline|#}}. This allows POSIX systems to have the first line as {{Codeline|#! octave -q}} and mark the script itself executable. Matlab doesn't have this feature due to the absence of comments starting with {{Codeline|#}}".<br />
<br />
Code blocks like if, for, while, etc can be terminated with block specific terminations like endif. Matlab doesn't have this and all blocks must be terminated with end.<br />
<br />
Octave has a lisp-like {{Codeline|unwind_protect}} block that allows blocks of code that terminate in an error to ensure that the variables that are touched are restored. You can do something similar with try/catch combined with {{Codeline|rethrow (lasterror ())}} in Matlab, however rethrow and lasterror are only available in Octave 2.9.10 and later. Matlab 2008a also introduced {{Codeline|OnCleanUp}} that is similar to {{Codeline|unwind_protect}}, except that the object created by this function has to be explicitly cleared in order for the cleanup code to run.<br />
<br />
Note that using try/catch combined with {{Codeline|rethrow (lasterror ())}} can not guarantee that global variables will be correctly reset, as it won't catch user interrupts with Ctrl-C. For example<br />
<br />
global a<br />
a = 1;<br />
try<br />
_a = a;<br />
a = 2<br />
while true<br />
end<br />
catch<br />
fprintf ('caught interrupt\n');<br />
a = _a;<br />
rethrow (lasterror());<br />
end<br />
<br />
compared to<br />
<br />
global a<br />
a = 1;<br />
unwind_protect<br />
_a = a;<br />
a = 2<br />
while true<br />
end<br />
unwind_protect_cleanup<br />
fprintf ('caught interrupt\n');<br />
a = _a;<br />
end<br />
<br />
Typing Ctrl-C in the first case returns the user directly to the prompt, and the variable ''a'' is not reset to the saved value. In the second case the variable ''a'' is reset correctly. Therefore Matlab gives no safe way of temporarily changing global variables.<br />
<br />
Indexing can be applied to all objects in Octave and not just variables. Therefore {{Codeline|sin(x)(1:10)}} for example is perfectly valid in Octave but not Matlab. To do the same in Matlab you must do {{Codeline|y &#61; sin(x); y &#61; y([1:10]);}}<br />
<br />
Octave has the operators {{Codeline|++}}, {{Codeline|–-}}, {{Codeline|-&#61;}}, {{Codeline|+&#61;}}, {{Codeline|*&#61;}}, etc. As Matlab doesn't, if you are sharing code these should be avoided.<br />
<br />
Character strings in Octave can be denoted with double or single quotes. There is a subtle difference between the two in that escaped characters like {{Codeline|\n}} (newline), {{Codeline|\t}} (tab), etc are interpreted in double quoted strings but not single quoted strings. This difference is important on Windows platforms where the {{Codeline|\}} character is used in path names, and so single quoted strings should be used in paths. Matlab doesn't have double quoted strings and so they should be avoided if the code will be transferred to a Matlab user.<br />
<br />
=GUI=<br />
This is a small section but it's probably one of the most frequent questions.<br />
<br />
==Does Octave have a GUI?==<br />
Yes! It was released with Octave 3.8.0 (Jan 1st, 2014) but is considered experimental. To start Octave with the GUI, use the {{Codeline|--force-gui}} option.<br />
<br />
==When will the GUI stop being experimental?==<br />
The plan is for the GUI to be considered stable with version 4.0.<br />
<br />
==Why are you working on yet another GUI instead of making one that already exists better?==<br />
None of the GUIs for Octave that have been developed thus far are part of Octave and there is a reason for it. All of them fail at a very important point, integration with Octave. They treat Octave as a foreign black box using pipes for communication, an approach that is bound to fail with each new version. Any fix made to make them work with new Octave versions would only be temporary. This included QtOctave (now abandoned and incompatible with newer versions of Octave), Xoctave (which is proprietary and commercial) and GUI Octave (which is proprietary).<br />
<br />
QtOctave was great and very useful tool. It looked beautiful and we are thankful to its developers for working on such a nice tool plus making it libre. However, it would ''never'' be stable.<br />
<br />
Quint was a project for an Octave GUI that actually tried to do it right. Eventually it was merged into the Octave repository and is no longer a separate project. Also, many bits from QtOctave were reused in the GUI.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4989OctConf 20142014-07-20T22:23:24Z<p>JordiGH: /* Dates */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso]. A higher end option could be the [https://www.deltahotels.com/Hotels/Delta-Montreal Delta].<br />
<br />
As for getting around, the metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
We will schedule sessions in an [https://en.wikipedia.org/wiki/Unconference unconference] style. Basically, this means we will decide the schedule when we first get there. Any time when someone is not giving talk is open for code sprints.<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|<br />
|''Friday''<br />
|''Saturday''<br />
|''Sunday''<br />
|-<br />
|09:00<br />
|Introductions, greetings, setting the agenda<br />
|Session 1<br />
|Session 1<br />
|-<br />
|10:30<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|-<br />
|10:45<br />
|Session 2<br />
|Session 2<br />
|Session 2<br />
|-<br />
|12:30<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|-<br />
|14:30<br />
|Session 3<br />
|Session 3<br />
|Session 3<br />
|-<br />
|16:00<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|-<br />
|16:15<br />
|Session 4<br />
|Session 4<br />
|Session 4<br />
|-<br />
|18:30<br />
|Social event (TBA, probably beer at a pub or a music event)<br />
|<br />
|<br />
|}<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4988OctConf 20142014-07-20T22:22:46Z<p>JordiGH: /* Dates */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso]. A higher end option could be the [https://www.deltahotels.com/Hotels/Delta-Montreal Delta].<br />
<br />
As for getting around, the metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
We will schedule sessions in an [https://en.wikipedia.org/wiki/Unconference unconference] style. Basically, this means we will decide the schedule when we first get there. Any time when someone is not giving talk is open for code sprints.<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|<br />
|''Friday''<br />
|''Saturday''<br />
|''Sunday''<br />
|-<br />
|09:00<br />
|Introductions, greetings, setting the agenda<br />
|Session 1<br />
|Session 1<br />
|-<br />
|10:30<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|-<br />
|10:45<br />
|Session 2<br />
|Session 2<br />
|Session 2<br />
|-<br />
|12:30<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|-<br />
|14:30<br />
|Tutorial 2: m-scripts and vectorisation<br />
|Tutorial 4: Working with dev tools<br />
|Exercises and code sprints<br />
|-<br />
|16:00<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|-<br />
|16:15<br />
|Session 3<br />
|Session 3<br />
|Session 3<br />
|-<br />
|18:30<br />
|Social event (TBA, probably beer at a pub or a music event)<br />
|<br />
|<br />
|}<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4987OctConf 20142014-07-20T22:21:57Z<p>JordiGH: /* Schedule */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso]. A higher end option could be the [https://www.deltahotels.com/Hotels/Delta-Montreal Delta].<br />
<br />
As for getting around, the metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
We will schedule sessions in an [https://en.wikipedia.org/wiki/Unconference unconference] style. Basically, this means we will decide the schedule when we first get there. Any time when someone is not giving talk is open for code sprints.<br />
<br />
{| class="wikitable" style="text-align: center;"<br />
|<br />
|''Friday''<br />
|''Saturday''<br />
|''Sunday''<br />
|-<br />
|09:00<br />
|Introductions, greetings, setting the agenda<br />
|Session 1<br />
|Session 1<br />
|-<br />
|10:30<br />
|-<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|'''Break 1'''<br />
|10:45<br />
|Session 2<br />
|Session 2<br />
|Session 2<br />
|-<br />
|12:30<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|'''Lunch'''<br />
|-<br />
|14:30<br />
|Tutorial 2: m-scripts and vectorisation<br />
|Tutorial 4: Working with dev tools<br />
|Exercises and code sprints<br />
|-<br />
|16:00<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|'''Break 2'''<br />
|-<br />
|16:15<br />
|Session 3<br />
|Session 3<br />
|Session 3<br />
|-<br />
|18:30<br />
|Social event (TBA, probably beer at a pub or a music event)<br />
|<br />
|<br />
|}<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4986OctConf 20142014-07-20T21:49:49Z<p>JordiGH: /* Lodging and getting around */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso]. A higher end option could be the [https://www.deltahotels.com/Hotels/Delta-Montreal Delta].<br />
<br />
As for getting around, the metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4985OctConf 20142014-07-20T21:47:33Z<p>JordiGH: /* Lodging and getting around */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is. Two other particular options that seem good at a glance are [http://abri-voyageur.ca/reservations/ Abri du Voyageur] and <br />
[http://hotelespresso.ca/ Hotel Espresso].<br />
<br />
The metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4984OctConf 20142014-07-20T21:38:46Z<p>JordiGH: /* Lodging and getting around */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM. Mile End is the neighbourhood in which the CRIM is.<br />
<br />
The metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4983OctConf 20142014-07-20T21:34:22Z<p>JordiGH: /* Lodging and getting around */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types%5B%5D=Entire+home%2Fapt&room_types%5B%5D=Private+room&room_types%5B%5D=Shared+room&price_max=200&neighborhoods%5B%5D=Downtown+Montreal&neighborhoods%5B%5D=McGill+Ghetto&neighborhoods%5B%5D=Mile+End&neighborhoods%5B%5D=Mont-Royal&neighborhoods%5B%5D=Quartier+des+Spectacles&hosting_amenities%5B%5D=4 This is the general neighbourhood] in which you might want to get a place and be relatively close to the CRIM.<br />
<br />
The metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4982OctConf 20142014-07-20T21:28:48Z<p>JordiGH: /* Lodging and getting around */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. [https://www.airbnb.ca/s/Montreal--QC--Canada?checkin=19-09-2014&checkout=21-09-2014&room_types[]=Entire+home%2Fapt&room_types[]=Private+room&room_types[]=Shared+room&price_max=200&neighborhoods[]=Downtown+Montreal&neighborhoods[]=McGill+Ghetto&neighborhoods[]=Mile+End&neighborhoods[]=Mont-Royal&neighborhoods[]=Quartier+des+Spectacles&hosting_amenities[]=4 This is the general neighbourhood] in which you might want to get a nice place and be relatively close to the CRIM.<br />
<br />
The metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4981OctConf 20142014-07-20T21:23:52Z<p>JordiGH: /* How to get there */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station and other stops downtown, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. <br />
<br />
The metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4980OctConf 20142014-07-20T21:14:10Z<p>JordiGH: /* Montréal, Québec, Canada */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards chilly. Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. <br />
<br />
The metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4979OctConf 20142014-07-20T21:13:00Z<p>JordiGH: /* Lodging and getting around */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards "chilly". Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM, amongst others.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. <br />
<br />
The metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4978OctConf 20142014-07-20T21:12:26Z<p>JordiGH: /* Lodging and getting around */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards "chilly". Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. <br />
<br />
The metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a car or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4977OctConf 20142014-07-20T21:12:05Z<p>JordiGH: /* Lodging */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards "chilly". Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging and getting around ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. <br />
<br />
The metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
If you really want some freedom to move around and you're feeling braver, you can of course also choose to rent a [car] or [http://montreal.about.com/od/gettingaroundtown/tp/montreal-bike-rentals.htm bicycle].<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4976OctConf 20142014-07-20T21:08:23Z<p>JordiGH: /* Lodging */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards "chilly". Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging ===<br />
<br />
There are several hotels and cheaper lodging in Montréal, but there is nothing particularly convenient within walking distance to the CRIM. However, since the CRIM is right on a metro station, any lodging within walking distance to a metro station should do. Additionally, the [http://www.stm.info/sites/default/files/planibus/en/80.pdf 80 bus] (schedule in French) goes by the CRIM.<br />
<br />
Your best bet therefore is to book a hotel or Airbnb and check Google maps for travel times by bus or metro to the CRIM. Airbnb lodging is usually cheaper, but make sure to get something that has had mostly positive reviews. ''Caveat emptor''. <br />
<br />
The metro is not very complicated to navigate, although buses can be a bit trickier. Public transit employees will frequently speak English (but not always), and they're usually willing to help visitors get around.<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4975OctConf 20142014-07-20T20:51:31Z<p>JordiGH: /* Location */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures, slightly leaning towards "chilly". Bring a sweater. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging ===<br />
<br />
There are several hotels and cheaper lodging in Montréal. More details will follow.<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
* [[User:Mtmiller|Mike Miller]]<br />
* [[User:Nir|Nir]]<br />
* [[User:Rik|Rik]]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=GNU_Octave_Wiki&diff=4894GNU Octave Wiki2014-05-17T18:39:30Z<p>JordiGH: No shouty-MATLAB needed.</p>
<hr />
<div>[http://www.octave.org GNU Octave] is a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation. GNU Octave is normally used through its interactive interface (CLI and GUI), but it can also be used to write non-interactive programs. The GNU Octave language is quite similar to Matlab so that most programs are easily portable.<br />
<br />
This wiki is intended to supplement the [http://www.gnu.org/software/octave/doc/interpreter GNU Octave documentation]. Before adding content, please check that it is not already part of, or belongs in, the documentation and read the [[Contribution guidelines]].<br />
<br />
== GNU Octave FAQ ==<br />
<br />
The [[FAQ]] is a list of frequently asked questions (FAQ) for GNU Octave users and a good place to start.<br />
<br />
Answers to questions regarding [[FAQ#General|what is Octave]], [[FAQ#Licensing_issues|licensing]], [[FAQ#What.27s_new_in_Octave|new features]], [[FAQ#What_documentation_exists_for_Octave.3F|documentation]], [[FAQ#Installation_issues_and_problems|installation]], [[FAQ#Coding|coding]], [[FAQ#How_can_I_get_involved_in_Octave_development.3F|contributing to Octave]], and more, are found there.<br />
<br />
== Table of contents ==<br />
<br />
Below is a temporary attempt to organize the "most wanted" pages of the Wiki. A list of all pages on the wiki can be seen [[Special:AllPages|here]]. To locate something specific, try the wiki's search box, or prepend {{Codeline|<nowiki>site:http://www.octave.org/wiki/</nowiki>}} to a [https://www.google.com/search?&q=site%3Ahttp%3A%2F%2Fwww.octave.org%2Fwiki google search]. Please read the [[Contribution guidelines]] first, if you want to contribute to this Wiki.<br />
<br />
=== [[:Category:Installation|Installation]] ===<br />
* [[Octave for Microsoft Windows]]<br />
* [[Octave for MinGW]]<br />
* [[Octave for MacOS X]]<br />
* [[Octave for GNU/Linux]]<br />
* [[Octave for other Unix systems]]<br />
<br />
=== [[:Category:Packages|Packages]] ===<br />
* [[OEP:pkg|Installing packages]]<br />
* [[Creating packages]]<br />
<br />
==== [[Octave-Forge]] ====<br />
* [[Dicom_package|Dicom]]<br />
* [[Geometry_package|Geometry]]<br />
* [[IO_package|I/O]]<br />
* [[Java_package|Java]]<br />
* [[Mechanics_package|Mechanics]]<br />
* [[Instrument_control__package|Instrument control]]<br />
* [[Sockets_package|Sockets]]<br />
* [[Image_acquisition_package|Image acquisition]] Capture images, for example from v4l2 hardware like webcams<br />
* [[Video_package|Video]]<br />
* [[Fem-fenics|fem-fenics]] Interface to [http://fenicsproject.org/ FEnics] FEM library<br />
* [[bim_package|bim]] Solve Partial Differential Equaltions with a Finite Element method<br />
* [http://modb.oce.ulg.ac.be/mediawiki/index.php/CGI_programming_with_Octave CGI] Common Gateway Interface for Octave<br />
* [http://modb.oce.ulg.ac.be/mediawiki/index.php/Optimal_interpolation_Fortran_module_with_Octave_interface optiminterp] Optimal interpolation<br />
* [http://modb.oce.ulg.ac.be/mediawiki/index.php/NetCDF_toolbox_for_Octave octcdf] NetCDF package (old)<br />
* [http://modb.oce.ulg.ac.be/mediawiki/index.php/Octave-netcdf netcdf] matlab-compatible NetCDF package<br />
* [http://modb.oce.ulg.ac.be/mediawiki/index.php/NcArray ncArray] High-level interface of accessing a single or a collection of NetCDF files as a multi-dimensional array<br />
<br />
=== [[:Category:Editors|Editors]] ===<br />
* [[Gedit]]<br />
* [[Emacs]]<br />
* [[Nano]]<br />
* [[Vim]]<br />
* [[Kate]]<br />
* [http://octclipse.sourceforge.net Octclipse] (Windows and GNU/Linux only. The Octclipse developers are seeking individuals to assist with MacOS X support.)<br />
* [https://sites.google.com/site/domainmathide/ DomainMath IDE] (Windows,GNU/Linux and Mac OS.)<br />
<br />
=== [[:Category:Resources|Tutorials/Examples]] ===<br />
* [[Octave Basics]] - For those just getting started.<br />
* [[Tips and tricks]] - Guidelines to improve your coding skills.<br />
* [[Cookbook]] - Several simple and useful examples.<br />
* [[Octave load]] - Use liboctave functions to load variables from a file in Octave's binary format. <br />
* [[Fortran]] - Accessing liboctave from a Fortran 2003 program.<br />
* [[Octave fun]] - Coding can be fun -- miscellaneous more or less funny scripts<br />
* [[Video tutorials]]<br />
==== [[:Category:Plotting tutorials|Plotting tutorials]] ====<br />
<br />
=== [[:Category:Development|Development]] ===<br />
* [[Release 3.8]] - Information about the upcoming 3.8 release.<br />
* [[Roadmap]] - Future plans for the development of Octave<br />
* [[International Characters Support]] - Using Octave in your own language.<br />
<br />
==== [[:Category:Building|Building]] ====<br />
* [[Building]]<br />
* [[Continuous Build]]<br />
* [[Enable large arrays: Build octave such that it can use arrays larger than 2Gb.|Building Octave to use large arrays]]<br />
<br />
==== [[:Category:Testing|Testing]] ====<br />
* [[Tests|Testing source code]]<br />
==== [[:Category:Packaging|Packaging]] ====<br />
* [[Create a MacOS X App Bundle Using MacPorts]]<br />
<br />
=== [[:Category:Academia|Academia]] ===<br />
* [[Publications using Octave]] - A compilation of scientific publications making reference to GNU Octave (add yours!).<br />
<br />
=== [[:Category:Project Ideas|Project Ideas]] ===<br />
* [[Projects]]<br />
* [[Summer of Code Project Ideas]]<br />
<br />
== External Links ==<br />
* [http://www.gnu.org/software/octave/ Octave Homepage]<br />
* [http://octave.sourceforge.net/ Octave Forge]<br />
* [https://savannah.gnu.org/bugs/?group=octave GNU Octave - Bug Tracker]<br />
* [https://savannah.gnu.org/task/?group=octave GNU Octave - Task Tracker]<br />
* [https://savannah.gnu.org/patch/?group=octave GNU Octave - Patch Tracker]<br />
* [https://savannah.gnu.org/hg/?group=octave GNU Octave - Mercurial Repositories]<br />
* [http://planet.octave.org Planet Octave] (site summary for blogs from Octave's [http://code.google.com/soc/ GSoC] and [http://sophia.estec.esa.int/socis2013/ SoCiS] students)</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=GNU_Octave_Wiki&diff=4893GNU Octave Wiki2014-05-17T18:32:11Z<p>JordiGH: No need to defend Matlab's trademark, that's their job, not ours.</p>
<hr />
<div>[http://www.octave.org GNU Octave] is a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation. GNU Octave is normally used through its interactive interface (CLI and GUI), but it can also be used to write non-interactive programs. The GNU Octave language is quite similar to MATLAB so that most programs are easily portable.<br />
<br />
This wiki is intended to supplement the [http://www.gnu.org/software/octave/doc/interpreter GNU Octave documentation]. Before adding content, please check that it is not already part of, or belongs in, the documentation and read the [[Contribution guidelines]].<br />
<br />
== GNU Octave FAQ ==<br />
<br />
The [[FAQ]] is a list of frequently asked questions (FAQ) for GNU Octave users and a good place to start.<br />
<br />
Answers to questions regarding [[FAQ#General|what is Octave]], [[FAQ#Licensing_issues|licensing]], [[FAQ#What.27s_new_in_Octave|new features]], [[FAQ#What_documentation_exists_for_Octave.3F|documentation]], [[FAQ#Installation_issues_and_problems|installation]], [[FAQ#Coding|coding]], [[FAQ#How_can_I_get_involved_in_Octave_development.3F|contributing to Octave]], and more, are found there.<br />
<br />
== Table of contents ==<br />
<br />
Below is a temporary attempt to organize the "most wanted" pages of the Wiki. A list of all pages on the wiki can be seen [[Special:AllPages|here]]. To locate something specific, try the wiki's search box, or prepend {{Codeline|<nowiki>site:http://www.octave.org/wiki/</nowiki>}} to a [https://www.google.com/search?&q=site%3Ahttp%3A%2F%2Fwww.octave.org%2Fwiki google search]. Please read the [[Contribution guidelines]] first, if you want to contribute to this Wiki.<br />
<br />
=== [[:Category:Installation|Installation]] ===<br />
* [[Octave for Microsoft Windows]]<br />
* [[Octave for MinGW]]<br />
* [[Octave for MacOS X]]<br />
* [[Octave for GNU/Linux]]<br />
* [[Octave for other Unix systems]]<br />
<br />
=== [[:Category:Packages|Packages]] ===<br />
* [[OEP:pkg|Installing packages]]<br />
* [[Creating packages]]<br />
<br />
==== [[Octave-Forge]] ====<br />
* [[Dicom_package|Dicom]]<br />
* [[Geometry_package|Geometry]]<br />
* [[IO_package|I/O]]<br />
* [[Java_package|Java]]<br />
* [[Mechanics_package|Mechanics]]<br />
* [[Instrument_control__package|Instrument control]]<br />
* [[Sockets_package|Sockets]]<br />
* [[Image_acquisition_package|Image acquisition]] Capture images, for example from v4l2 hardware like webcams<br />
* [[Video_package|Video]]<br />
* [[Fem-fenics|fem-fenics]] Interface to [http://fenicsproject.org/ FEnics] FEM library<br />
* [[bim_package|bim]] Solve Partial Differential Equaltions with a Finite Element method<br />
* [http://modb.oce.ulg.ac.be/mediawiki/index.php/CGI_programming_with_Octave CGI] Common Gateway Interface for Octave<br />
* [http://modb.oce.ulg.ac.be/mediawiki/index.php/Optimal_interpolation_Fortran_module_with_Octave_interface optiminterp] Optimal interpolation<br />
* [http://modb.oce.ulg.ac.be/mediawiki/index.php/NetCDF_toolbox_for_Octave octcdf] NetCDF package (old)<br />
* [http://modb.oce.ulg.ac.be/mediawiki/index.php/Octave-netcdf netcdf] matlab-compatible NetCDF package<br />
* [http://modb.oce.ulg.ac.be/mediawiki/index.php/NcArray ncArray] High-level interface of accessing a single or a collection of NetCDF files as a multi-dimensional array<br />
<br />
=== [[:Category:Editors|Editors]] ===<br />
* [[Gedit]]<br />
* [[Emacs]]<br />
* [[Nano]]<br />
* [[Vim]]<br />
* [[Kate]]<br />
* [http://octclipse.sourceforge.net Octclipse] (Windows and GNU/Linux only. The Octclipse developers are seeking individuals to assist with MacOS X support.)<br />
* [https://sites.google.com/site/domainmathide/ DomainMath IDE] (Windows,GNU/Linux and Mac OS.)<br />
<br />
=== [[:Category:Resources|Tutorials/Examples]] ===<br />
* [[Octave Basics]] - For those just getting started.<br />
* [[Tips and tricks]] - Guidelines to improve your coding skills.<br />
* [[Cookbook]] - Several simple and useful examples.<br />
* [[Octave load]] - Use liboctave functions to load variables from a file in Octave's binary format. <br />
* [[Fortran]] - Accessing liboctave from a Fortran 2003 program.<br />
* [[Octave fun]] - Coding can be fun -- miscellaneous more or less funny scripts<br />
* [[Video tutorials]]<br />
==== [[:Category:Plotting tutorials|Plotting tutorials]] ====<br />
<br />
=== [[:Category:Development|Development]] ===<br />
* [[Release 3.8]] - Information about the upcoming 3.8 release.<br />
* [[Roadmap]] - Future plans for the development of Octave<br />
* [[International Characters Support]] - Using Octave in your own language.<br />
<br />
==== [[:Category:Building|Building]] ====<br />
* [[Building]]<br />
* [[Continuous Build]]<br />
* [[Enable large arrays: Build octave such that it can use arrays larger than 2Gb.|Building Octave to use large arrays]]<br />
<br />
==== [[:Category:Testing|Testing]] ====<br />
* [[Tests|Testing source code]]<br />
==== [[:Category:Packaging|Packaging]] ====<br />
* [[Create a MacOS X App Bundle Using MacPorts]]<br />
<br />
=== [[:Category:Academia|Academia]] ===<br />
* [[Publications using Octave]] - A compilation of scientific publications making reference to GNU Octave (add yours!).<br />
<br />
=== [[:Category:Project Ideas|Project Ideas]] ===<br />
* [[Projects]]<br />
* [[Summer of Code Project Ideas]]<br />
<br />
== External Links ==<br />
* [http://www.gnu.org/software/octave/ Octave Homepage]<br />
* [http://octave.sourceforge.net/ Octave Forge]<br />
* [https://savannah.gnu.org/bugs/?group=octave GNU Octave - Bug Tracker]<br />
* [https://savannah.gnu.org/task/?group=octave GNU Octave - Task Tracker]<br />
* [https://savannah.gnu.org/patch/?group=octave GNU Octave - Patch Tracker]<br />
* [https://savannah.gnu.org/hg/?group=octave GNU Octave - Mercurial Repositories]<br />
* [http://planet.octave.org Planet Octave] (site summary for blogs from Octave's [http://code.google.com/soc/ GSoC] and [http://sophia.estec.esa.int/socis2013/ SoCiS] students)</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=User:JordiGH&diff=4892User:JordiGH2014-05-17T18:27:09Z<p>JordiGH: </p>
<hr />
<div>I'm Jordi Gutiérrez Hermoso. You may contact me at [mailto:jordigh@octave.org jordigh@octave.org]. [http://jordi.inversethought.com My personal website and blog] are elsewhere.<br />
<br />
Testing math:<br />
<math><br />
\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}<br />
</math></div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=Summer_of_Code_-_Getting_Started&diff=4761Summer of Code - Getting Started2014-03-26T15:53:50Z<p>JordiGH: /* Criteria by which applications are judged */ Remove the relevance part, focus on the ability to submit patches</p>
<hr />
<div>The following is distilled from the [[Projects]] page for the benefit of potential [http://code.google.com/soc/Google Google] and [http://sophia.estec.esa.int/socis2012/?q=node/13 ESA] Summer of Code (SoC) students. Although students are welcome to attempt any of the projects in that page or any of their own choosing, here we offer some suggestions on what good student projects might be.<br />
<br />
= Steps Toward a Successful Application =<br />
<br />
If you like any of the projects described below these are the steps you need to follow to apply:<br />
<br />
* '''Help Us Get To Know You'''<br><br />
: If you aren't communicating with us before the application is due, your application will not be accepted.<br />
:: '''Join the maintainers mailing list''' or read the archives and see what topics we discuss and how the developers interact with each other.<br />
:: '''Hang out in our IRC channel'''. Ask questions, submit patches, show us that you are motivated and well-prepared. There will be more applicants than we can effectively mentor, so do ask for feedback on your public application to increase the strength of your proposal!<br />
* '''Find Something That Interests You'''<br />
: It's '''critical''' that you '''find a project that excites you''' You'll be spending most of the summer working on it (we expect you to treat the SoC as a full-time job). But don't just tell us how interested you are, show us. You can do that by fixing a few bugs or interacting with us on IRC well before the deadline. Our experience shows us that successful SoC students demonstrate their interest early and often.<br />
* '''Prepare Your Proposal With Us'''<br />
: By working with us to prepare your proposal, you'll be getting to know us and showing us how you approach problems. The best place for this is your wiki user page and the IRC channel.<br />
* '''Complete Your Application'''<br />
: Fill out our '''''public''''' application template.<br />
:: This is best done by '''[[Special:CreateAccount|creating an account at this wiki]]''' and copying the '''[[Template:Student_application_template_public|template]]''' from its page.<br/><br />
:: You really only need to copy and answer the '''''public''''' part there, there is no need to showcase everything else to everybody reading your user page!<br />
: Fill out our '''''private''''' application template.<br />
:: This is best done by copying the '''[[Template:Student_application_template_private|template]]''' from its page and '''adding the required information to your application at Google (melange)''' or at '''ESA'''.<br><br />
:: Only the organization admin and the possible mentors will see this data. You can still edit it after submitting until the deadline!<br />
<br />
== Things You'll be Expected to Know or Quickly Learn ==<br />
<br />
Octave is mostly written in C++ and its own scripting language that is mostly compatible with Matlab. There are bits and pieces of Fortran, Perl, C, awk, and Unix shell scripts here and there. In addition to being familiar with C++ and Octave's scripting language, successful applicants will be familiar with or able to quickly learn about Octave's infrastructure. You can't spend the whole summer learning how to build Octave or prepare a changeset and still successfully complete your project.<br />
<br />
* '''The Build System'''<br />
: [http://en.wikipedia.org/wiki/GNU_build_system The GNU build system] is used to build Octave.<br />
: While you generally don't need to understand too much unless you actually want to change how Octave is built, you should be able to understand enough to get a general idea of how to build Octave.<br />
: If you've ever done a <tt>configure && make && make install</tt> series of commands, you have already used the GNU build system.<br />
: '''You must demonstrate that you are able to build the development version of Octave from sources before the application deadline.'''<br />
* '''The Version Control System'''<br />
: We use [http://mercurial.selenic.com/ Mercurial] (abbreviated hg).<br />
: Mercurial is the [http://en.wikipedia.org/wiki/Distributed_Version_Control_System distributed version control system] (DVCS) we use for managing our source code. You should have some basic understanding of how a DVCS works, but hg is pretty easy to pick up, especially if you already know a VCS like git or svn.<br />
* '''The Procedure for Contributing Changesets'''<br />
: You will be expected to follow the same procedures as other contributors and core developers.<br />
: You will be helping current and future Octave developers by using the same style for changes, commit messages, and so on. You should also read the same [http://www.gnu.org/software/octave/doc/interpreter/Contributing-Guidelines.html#Contributing-Guidelines contributing] [http://hg.savannah.gnu.org/hgweb/octave/file/tip/etc/HACKING guidelines] we have for everyone.<br />
* '''The Maintainers Mailing List'''<br />
: We primarily use [https://mailman.cae.wisc.edu/listinfo/octave-maintainers mailing lists] for communication among developers.<br />
: The mailing list is used most often for discussions about non-trivial changes to Octave, or for setting the direction of development.<br />
: You should follow basic mailing list etiquette. For us, this mostly means "do not [http://en.wikipedia.org/wiki/Top_posting#Top-posting top post]".<br />
* '''The IRC Channel'''<br />
: We also have [http://webchat.freenode.net?channels=octave the #octave IRC channel in Freenode].<br />
: You should be familiar with the IRC channel. It's very helpful for new contributors (you) to get immediate feedback on ideas and code.<br />
: Unless your primary mentor has a strong preference for some other method of communication, the IRC channel will likely be your primary means of communicating with your mentor and Octave developers.<br />
* '''The Octave Forge Project'''<br />
: [http://octave.sf.net Octave-Forge] is a project closely related to Octave where packages reside. They are somewhat analogous to Matlab's toolboxes.<br />
* '''Related Skills'''<br />
: In addition, you probably should know '''some''' mathematics, engineering, or experimental science or something of the sort.<br />
: If you've used Matlab before, you probably have already been exposed to the kinds of problems that Octave is used for.<br />
<br />
== Criteria by which applications are judged ==<br />
<br />
These might vary somewhat depending on the mentors and coordinators for a particular Summer of Code, but typically the main factors considered would be:<br />
<br />
* '''Applicant has demonstrated an ability to make substantial modifications to Octave'''<br />
: The most important thing is that your application has some interesting code samples to judge you by. It's ok during the application period to ask for help on how to format these code samples, which normally are Mercurial patches.<br />
<br />
* '''Applicant shows understanding of topic'''<br />
: Your application should make it clear that you're reasonably well versed in the subject area and won't need all summer just to read up on it.<br />
<br />
* '''Applicant shows understanding of and interest in Octave development'''<br />
: The best evidence for this is previous contributions and interactions.<br />
<br />
* '''Well thought out, adequately detailed, realistic project plan'''<br />
: "I'm good at this, so trust me" isn't enough. You should desribe which algorithms you'll use and how you'll integrate with existing Octave code. You should also prepare a full timeline and goals for the midterm and final evaluations.<br />
<br />
<noinclude>[[Category:Summer of Code]]</noinclude><br />
<br />
= Suggested projects =<br />
<br />
The following projects are broadly grouped by category and probable skills required to tackle each. Remember to check [[Projects]] for more ideas if none of these suit you, and your own ideas are always welcome.<br />
<br />
== Numerical ==<br />
<br />
These projects involve implementing certain mathematical functions in Octave.<br />
<br />
'''Required skills''': You should understand quite a bit of mathematics. Words like "eigenvalue", "analytic", and "Taylor series" shouldn't scare you at all. There is probably little C++ experience required, and probably many of these problems can be solved with m-scripts.<br />
<br />
'''Difficulty''': Mid-to-hard depending how much mathematics you know and how well you can read numerical analysis journal articles.<br />
<br />
'''Potential mentor''': Carlo de Falco, Fotios Kasolis, Luis Gustavo Lira, JuanPi Carbajal<br />
<br />
=== Incomplete sparse factorizations ichol, ilu ===<br />
<br />
Octave still lacks of an incomplete Cholesky and LU factorization for sparse matrices. These functions are [http://www.mathworks.com/help/matlab/matrix-decomposition.html available in Matlab] as ichol and ilu. Incomplete factorizations are useful as preconditioners for iterative solvers such as [http://hg.savannah.gnu.org/hgweb/octave/file/812162c34a93/scripts/sparse/gmres.m gmres] or [http://hg.savannah.gnu.org/hgweb/octave/file/812162c34a93/scripts/sparse/pcg.m pcg].<br />
<br />
Good introductions to the math behind these factorizations are:<br />
* [http://netlib.org/linalg/html_templates/node81.html Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods] especially [http://netlib.org/linalg/html_templates/node100.html#SECTION00933000000000000000 this chapter] <br />
* [http://www-users.cs.umn.edu/~saad/IterMethBook_2ndEd.pdf Iterative Methods for Sparse Linear Systems (2nd Edition)] chapter 10 (also available as textbook)<br />
<br />
One should additionally familiarize with Octave's internal sparse matrix format which is [http://netlib.org/linalg/html_templates/node92.html#SECTION00931200000000000000 CCS] rather than [http://netlib.org/linalg/html_templates/node91.html#SECTION00931100000000000000 CRS], used in the listed textbooks. In the past GSoC a solution using [http://www-users.cs.umn.edu/~saad/software/ITSOL/ ITSOL] has been created. This work needs several improvements before it can be integrated into the Octave core. Read more about the past GSoC project in [http://siko1056-gsoc.blogspot.de/ this blog]. A [http://siko1056-gsoc.blogspot.de/p/getting-my-work.html demo implementation] is also available from there.<br />
<br />
Compared to other projects in this section this one might require more knowledge of C++ and mathematical software programming. But this project doesn't need to be started from scratch and can be continued from the previous approach, if desired.<br />
<br />
'''Potential mentor''': Kai T. Ohlhus ([[User:Siko1056]])<br />
<br />
=== General purpose Finite Element library ===<br />
<br />
Octave-Forge already has a set of packages for discretizing Partial Differential operators by Finite Elements and/or Finite Volumes,<br />
namely the [[bim package]] which relies on the [http://octave.sf.net/msh msh package] (which is in turn based on [http://geuz.org/gmsh/ gmsh]) for creating and managing 2D triangular and 3D tetrahedral meshes and on the [http://octave.sf.net/fpl fpl package] for visualizing 2D results within Octave or exporting 2D or 3D results in a format compatible with [http://www.paraview.org Paraview] or [https://wci.llnl.gov/codes/visit/ VisIT]. These packages, though, offer only a limited choice of spatial discretization methods which are based on low degree polynomials and therefore have a low order of accuracy even for problems with extremely smooth solutions.<br />
The [http://geopdes.sf.net GeoPDEs] project, on the other hand, offers a complete suite of functions for discretizing a wide range of<br />
differential operators related to important physical problems and uses basis functions of arbitrary polynomial degree that allow the construction of methods of high accuracy. These latter, though, are based on the IsoGeometric Analysis Method which, although very powerful and often better performing, is less widely known and adopted than the Finite Elements Method. The implementation of a general purpose library of Finite Elements seems therefore a valuable addition to Octave-Forge. Two possible interesting choices for implementing this package exist, the first consists of implementing the most common Finite Element spaces in the [http://geopdes.sf.net GeoPDEs] framework, which is possible as IsoGeometric Analysis can be viewed as a superset of the Finite Element Method, the other is to construct Octave language bindings for the free software library [http://fenicsproject.org/documentation/ FEniCS] based on the existing C++ or Python interfaces. This second approach has been developed during the GSOC 2013 and the Octave-Forge package [http://octave.sf.net/fem-fenics fem-fenics] is now available. However, fem-fenics could be extended in many different ways:<br />
* implement the bindings for the UFL language inside Octave<br />
* add new functions already available with Fenics but not yet in Octave<br />
* create new functions specifically suited for Octave<br />
* improve the efficiency of the code<br />
The main goal for the fem-fenics package is ultimately to be merged with the FEnics project itself, so that it can remain in-sync with the main library development.<br />
<br />
'''Potential mentor''': Marco Vassallo<br />
<br />
=== Improve logm, sqrtm, funm ===<br />
<br />
The goal here is to implement some missing Matlab functions related to matrix functions like the [http://en.wikipedia.org/wiki/Matrix_exponential matrix exponential]. There is [http://octave.1599824.n4.nabble.com/matrix-functions-td3137935.html a general discussion] of the problem.<br />
<br />
=== Generalised eigenvalue problem ===<br />
<br />
[http://www.mathworks.com/help/techdoc/ref/eig.html Certain calling forms] of the <tt>eig</tt> function are missing. The problem is to understand what those missing forms are and implement them.<br />
<br />
=== Various sparse matrix improvements ===<br />
<br />
The implementation of sparse matrices in Octave needs several improvements. Any of [[Projects#Sparse Matrices|these]] would be good. The paper by [http://arxiv.org/abs/cs.MS/0604006 Bateman & Adler] is good reading for understanding the sparse matrix implementation.<br />
<br />
=== Implement solver for initial-boundary value problems for parabolic-elliptic PDEs in 1D ===<br />
<br />
The project will deliver a solver for initial-boundary value problems for parabolic-elliptic PDEs in 1D similar to Matlab's function <tt>pdepe</tt>. A good starting point is the [http://en.wikipedia.org/wiki/Method_of_lines method of lines] for which you can find more details [http://en.wikibooks.org/wiki/Partial_Differential_Equations/Method_of_Lines here] and [http://www.scholarpedia.org/article/Method_of_lines here], whereas an example implementation can be found [http://www.scholarpedia.org/article/Method_of_Lines/Example_Implementation here]. In addition, [http://www.pdecomp.net/ this page] provides some useful material.<br />
<br />
=== Implement solver for 1D nonlinear boundary value problems ===<br />
<br />
The project will complete the implementation of the bvp4c solver that is already available in an initial version in the odepkg package<br />
by adding a proper error estimator and will implement a matlab-compatible version of the bvp5c solver.<br />
Details on the methods to be implemented can be found in [http://dx.doi.org/10.1145/502800.502801 this paper] on bvp4c and [http://www.jnaiam.net/new/uploads/files/014dde86eef73328e7ab674d1a32aa9c.pdf this paper] on bvp5c. Further details are available in [http://books.google.it/books/about/Nonlinear_two_point_boundary_value_probl.html?id=s_pQAAAAMAAJ&redir_esc=y this book].<br />
<br />
=== Geometric integrators for Hamiltonian Systems ===<br />
<br />
[http://openlibrary.org/books/OL9056139M/Geometric_Numerical_Integration Geometric (AKA Symplectic) integrators] are useful for <br />
multi-dimensional classical mechanics problems and for molecular dynamics simulations.<br />
The odepkg package has a number of solvers for ODE, DAE and DDE problems but none of them is currently<br />
specifically suited for second order problems in general and Hamiltonian systems in particular.<br />
Therefore a new package for geometric integrators would be a useful contribution.<br />
This could be created as new package or added as a set of new functions for odepkg.<br />
The function interface should be consistent throughout the package and should be modeled to follow <br />
that of other functions in odepkg (or that of DASPK and LSODE) but will need specific extensions to accommodate for specific options that only make sense for this specific class of solvers.<br />
An initial list of methods to be implemented includes (but is not limited to)<br />
* Symplectic Euler methods, see [http://en.wikipedia.org/wiki/Semi-implicit_Euler_method here] and [http://openlibrary.org/books/OL9056139M/Geometric_Numerical_Integration here]<br />
* Störmer-Verlet method, see [http://en.wikipedia.org/wiki/Verlet_integration here] and [http://openlibrary.org/books/OL9056139M/Geometric_Numerical_Integration here]<br />
* Velocity Verlet method, see [http://en.wikipedia.org/wiki/Verlet_integration here] and [http://openlibrary.org/books/OL9056139M/Geometric_Numerical_Integration here]<br />
* Symplectic partitioned Runge-Kutta methods, see [http://reference.wolfram.com/mathematica/tutorial/NDSolveSPRK.html here] or [http://dx.doi.org/10.1137/0733019 here]<br />
* Spectral Variational Integrator methods, see [http://www3.nd.edu/~izaguirr/papers/acta_numerica.pdf here] or [http://www.math.ucsd.edu/~mleok/pdf/HaLe2012_SVI.pdf here]<br />
<br />
For this latter there is an existing code which is already working but needs to be improved, posted on the patch tracker.<br />
Furthermore, methods to implement solutions of problems with rigid constraints should be implemented, e.g.<br />
* SHAKE, see [http://en.wikipedia.org/wiki/Constraint_algorithm here] or [http://dx.doi.org/10.1016/0021-9991(77)90098-5 here]<br />
* RATTLE, see [http://dx.doi.org/10.1016/0021-9991(83)90014-1 here] or [http://dx.doi.org/10.1002/jcc.540161003 here]<br />
<br />
'''Potential mentor:''' Mattia Penati, Edie Miglio, Carlo de Falco<br />
<br />
=== Matlab-compatible ODE solvers in core-Octave ===<br />
<br />
* Adapt "odeset" and "odeget" from the odepkg package so that the list of supported options is more Matlab-compatible, in the sense that all option names that are supported by Matlab should be available. On the other hand, Matlab returns an error if an option which is not in the list of known options is passed to "odeset", but we would rather make this a warning in order to allow for special extensions, for example for symplectic integrators.<br />
* Adapt the interface of "ode45" in odepkg to be completely Matlab compatible, fix its code and documentation style and move it to Octave-core.<br />
* Build Matlab compatible versions of "ode15s" and "ode15i". jwe has prototype implementations [https://savannah.gnu.org/patch/index.php?8102|here] of these built as wrappers to "dassl" and "daspk". An initial approach could be to just improve these wrappers, but eventually it would be better to have wrappers for "IDA" from the sundials library.<br />
* Implement Matlab compatible versions of "deval".<br />
<br />
'''Potential mentor:''' Sebastian Schöps, Carlo de Falco, JuanPi Carbajal<br />
<br />
== GUI ==<br />
<br />
Octave currently includes an experimental native GUI, written in Qt. There are various ways in which it could be improved.<br />
<br />
'''Required skills''': C++ and Qt. Whatever tools you want to use to write Qt code are fine, but Qt Creator is a popular choice nowadays.<br />
<br />
'''Difficulty''': Mostly medium, depending if you've had Qt or GUI development experience before.<br />
<br />
'''Potential mentor''': Jordi Gutiérrez Hermoso, Michael Goffioul, Torsten<br />
<br />
=== Finish the Octave GUI ===<br />
<strike><br />
The GUI is currently on its own branch in hg. It is not stable enough and its design is still in flux. It is in a very alpha stage and needs to be turned into a real usable product. At the moment, it consists of the basic building blocks (terminal window, editor, variable browser, history, file browser) that are put together into a main interface. The GUI uses the Qt library. Among the things to improve are:<br />
* improve integration with octave: variable browser/editor, debugger, profiler...<br />
* define and implement an option/preferences dialog<br />
* improve additional components like the documentation browser<br />
</strike><br />
Fix existing bugs related to the GUI, which can be browsed [https://savannah.gnu.org/bugs/index.php?go_report=Apply&group=octave&func=browse&set=custom&msort=0&report_id=100&advsrch=0&status_id=1&resolution_id=0&assigned_to=0&category_id=107&bug_group_id=0&history_search=0&history_field=0&history_event=modified&history_date_dayfd=5&history_date_monthfd=2&history_date_yearfd=2014&chunksz=50&spamscore=5&boxoptionwanted=1#options here]<br />
<br />
=== Implement a Qt widget for manipulating plots ===<br />
<br />
Octave has had for some time a native OpenGL plotter. The plotter requires some user interaction for manipulating the plots, and it's been using fltk for quite some time. We want to replace this with Qt, so it fits better with the overall GUI look-and-feel and is easier to extend in the future.<br />
<br />
[https://github.com/goffioul/QtHandles QtHandles] is a current work in progress integrating the octave OpenGL renderer plus good support for GUI elements (uicontrol, uimenu, uitoolbar...). This project may initially consists of integrating the existing QtHandles code base into Octave. Then if time permits, further improvements can be made to QtHandles.<br />
<br />
=== Create a better (G)UI for the profiler ===<br />
<br />
During GSoC 2011, Daniel Kraft successfully implemented a profiler for Octave. It needs a better interface and a way to generate reports. This may be done with Qt, but not necessarily, and HTML reports might also be good.<br />
<br />
=== Sisotool. Create a graphical design tool for tuning closed loop control system (control pkg) ===<br />
<br />
When tuning a SISO feedback system it is very helpful to be able to grab a pole or a zero and move them by dragging them with the mouse. As they are moving the software must update all the plotted lines. There should be the ability to display various graphs rlocuse, bode, step, impulse etc. and have them all change dynamically as the mouse is moving. The parameters of the compensator must be displayed and updated.<br />
Potential mentor: Doug Stewart<br />
<br />
== Graphics ==<br />
<br />
Octave has a new native OpenGL plotter (currently via [http://en.wikipedia.org/wiki/Fltk fltk], but we want to move away from that). There are several possible projects involved with it.<br />
<br />
'''Required skills''': C++ and OpenGL. General understanding of computer graphics.<br />
<br />
'''Difficulty''': Medium, depending on your previous understanding of the topic.<br />
<br />
'''Potential mentor''': Michael Goffioul<br />
<br />
=== Lighting ===<br />
<br />
Implement transparency and lighting in OpenGL backend(s). A basic implementation is available in [http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/extra/jhandles/ JHandles]. This needs to be ported/re-implement/re-engineered/optimized in the C++ OpenGL renderer of Octave.<br />
<br />
=== Object selection in OpenGL renderer ===<br />
<br />
This project is about the implementation of a selection method of graphics elements within the OpenGL renderer [http://glprogramming.com/red/chapter13.html]<br />
<br />
=== Non-OpenGL renderer ===<br />
<br />
Besides the original gnuplot backend, Octave also contains an OpenGL-based renderer for advanced and more powerful 3D plots. However, OpenGL is not perfectly suited for 2D-only plots where other methods could result in better graphics. The purpose of this project is to implement an alternate graphics renderer for 2D only plots (although 3D is definitely not the focus, extending the new graphics renderer to support basic 3D features should also be taken into account). There is no particular toolkit/library that must be used, but natural candidates are:<br />
* [http://qt.nokia.com Qt]: the GUI is currently written in Qt and work is also in progress to provide a Qt/OpenGL based backend [https://github.com/goffioul/QtHandles]<br />
* [http://en.wikipedia.org/wiki/Cairo_%28software%29 Cairo]: this library is widely used and known to provides high-quality graphics with support for PS/PDF/SVG output.<br />
<br />
=== TeX/LaTeX markup ===<br />
<br />
Text objects in plots (like titles, labels, texts...) in the OpenGL renderer only support plain text mode without any formatting possibility. Support for TeX and/or LaTeX formatting needs to be added.<br />
<br />
* The TeX formatting support actually only consists of a very limited subset of the TeX language. This can be implemented directly in C++ into Octave by extending the existing text engine, avoiding to add a dependency on a full TeX system. Essentially, support for Greek letters, super/sub-scripts, and several mathematical symbols needs to be supported. For example,<br />
<br />
:<pre>\alpha \approx \beta_0 + \gamma^\chi</pre><br />
<br />
:Would be rendered as,<br />
<br />
:&alpha; &asymp; &beta;<sub>0</sub> + &gamma;<sup>&chi;</sup><br />
<br />
:This is analogous to how special characters may be included in a wiki using html.<br />
<br />
:<pre>&amp;alpha; &amp;asymp; &amp;beta;<sub>0</sub> + &amp;gamma;<sup>&amp;chi;</sup></pre><br />
<br />
:The text object's {{Codeline|extent}} for the rendered result needs to be calculated and the text placed the location specified by the text object's {{Codeline|position}} property. An itemized list of a text objects properties can be found [http://www.gnu.org/software/octave/doc/interpreter/Text-Properties.html here].<br />
<br />
* On the other hand, the LaTeX formatting support is expected to provide full LaTeX capabilities. This will require to use an external LaTeX system to produce text graphics in some format (to be specified) that is then integrated into Octave plots.<br />
<br />
:The matplotlib project [http://matplotlib.sourceforge.net/users/usetex.html has already done this in Python] and might be used as an example of how to do this in Octave. Mediawiki has also also done [http://en.wikipedia.org/wiki/Wikipedia:Texvc something similar]. There is also [http://forge.scilab.org/index.php/p/jlatexmath/ JLaTeXMath], a Java API to display LaTeX code in mathematical mode.<br />
<br />
== Interpreter ==<br />
<br />
The interpreter is written in C++, undocumented. There are many possible projects associated with it.<br />
<br />
'''Required skills''': ''Very good'' C and C++ knowledge, possibly also understanding of [http://en.wikipedia.org/wiki/Gnu_bison GNU bison] and [http://en.wikipedia.org/wiki/Flex_lexical_analyser flex]. Understanding how compilers and interpreters are made plus being able to understand how to use a profiler and a debugger will probably be essential skills.<br />
<br />
'''Difficulty''': Mid hard to very hard. Some of the biggest problems will probably be the interpreter.<br />
<br />
'''Potential mentors''': John W. Eaton, Jordi Gutiérrez Hermoso, Max Brister.<br />
<br />
=== Improve JIT compiling ===<br />
<br />
Octave's interpreter is ''very'' slow on some loops. Last year, thanks to Max Brister's work, an initial implement of a just-in-time compiler (JITC) in [http://llvm.org LLVM] for GSoC 2012. This project consists in understanding Max's current implementation and extending it so that functions and exponents (e.g. 2^z) compile with the JITC. This requires knowledge of compilers, C++, LLVM, and the Octave or Matlab languages. A capable student who demonstrates the ability to acquire this knowledge quickly may also be considered. Max himself will mentor this project. [http://planet.octave.org/octconf2012/jit.pdf Here] is Max's OctConf 2012 presentation about his current implementation. See also [[JIT]].<br />
<br />
=== Improve memory management ===<br />
<br />
From profiling the interpreter, it appears that a lot of time is spending allocating and deallocating memory. A better memory management algorithm might provide some improvement.<br />
<br />
=== Implement classdef classes ===<br />
<br />
Matlab has two kinds of classes: old style @classes and new style classdef. Octave has only fully implemented the old style. There is partial support for new classes in [http://hg.savannah.gnu.org/hgweb/octave/shortlog/classdef our classdef branch]. There is irregular work here, and classdef is [http://www.mathworks.com/help/matlab/matlab_oop/method-attributes.html a very] [http://www.mathworks.com/help/matlab/events-sending-and-responding-to-messages.html complicated] [http://www.mathworks.com/help/matlab/enumeration-classes.html thing] to fully implement. A successful project would be to implement enough of classdef for most basic usages. Familiarity with Matlab's current classdef support would be a huge plus. Michael Goffioul and jwe can mentor this.<br />
<br />
Although there's already a substantial classdef support in current octave code base, there are still many areas that are unimplemented or need improvements. The main ones that come to my mind are:<br />
* support for events<br />
* support for enums<br />
* support for "import" (this requires good understanding of octave internals, especially he symbol table)<br />
* improving multiple inheritance and method resolution<br />
* honoring and computing "Sealed" attribute<br />
* support for function handle to methods<br />
<br />
== Infrastructure ==<br />
<br />
There are several projects closely related to Octave but not exactly core Octave that could be worked on. They are mostly infrastructure around Octave, stuff that would help a lot.<br />
<br />
'''Required skills''': Various. See below.<br />
<br />
'''Difficulty''': Various. See below.<br />
<br />
'''Potential mentor''': Jordi Gutiérrez Hermoso, Carlo de Falco, JuanPi Carbajal<br />
<br />
=== Finish the Agora website ===<br />
<br />
In 2009, the Mathworks decided to restrict the terms of use Matlab Central, a place dedicated to Matlab collaboration. The Mathworks forbade copyleft licenses and using the "free" code found in Matlab central on anything other than Mathworks products (e.g. forbidding from using it on Octave, even if the authors of the code wanted to allow this). Thus Octave users have no place to centrally, quickly, and conveniently share Octave code. See the [[FAQ#Why_can.27t_I_use_code_from_File_Exchange_in_Octave.3F_It.27s_released_under_a_BSD_license.21|FAQ]] for more details.<br />
<br />
In response to this, a website started to form, [http://agora.octave.org/ Agora Octave].<br />
<br />
This should be relatively easy webdev in Python using [http://en.wikipedia.org/wiki/Django_%28web_framework%29 Django].<br />
<br />
Things to be considered when working on this:<br />
<br />
* [http://octave-forge.blogspot.ie/2012/08/octconf2012-agora-and-pkg.html discussion of Agora during OctConf2012]<br />
* [http://scipy-central.org/ Scipy Central] - a website with the same objective as Agora for Scipy. Their [https://github.com/scipy/SciPyCentral Code] is released under a BSD license. Might be useful to reuse some parts.<br />
<br />
Most of the basic functionality of Agora is already in, but there are many ways in which it could be improved, such as implementing comment threads, giving it an email interface, or a ReSTful API which could be used from Octave for package management. See also [[Agora]].<br />
<br />
=== Improve binary packaging ===<br />
<br />
We would like to be able to easily generate binary packages for Windows and Mac OS X. Right now, it's difficult and tedious to do so. Any way to help us do this in a faster way would be appreciated. Required knowledge is understanding how building binaries in Windows and Mac OS X works. Our current approach to fixing this is to cross-compile from a GNU system using [http://mxe.cc/ MXE] or [http://lilypond.org/gub/ GUB].<br />
<br />
'''Skills Required''': Knowledge of GNU build systems, Makefiles, configure files, chasing library dependencies, how to use a compiler. If you choose to work on GUB, Python will be required. No m-scripting or C++ necessary, beyond understanding [http://david.rothlis.net/c/compilation_model/ the C++ compilation model].<br />
<br />
'''Difficulty''': Medium to easy. You need to understand how build systems work and how to fix packages when they don't build.<br />
<br />
'''Possible mentors''': John W. Eaton or Jordi Gutiérrez Hermoso<br />
<br />
=== Installation of packages ===<br />
We would like to enhance the management of Octave-forge packages from within Octave environment. Currently there is a working (but rather monolithic) function that is used to do the job. The work would be to improve the way Octave interacts with the package server. Since the functionality is already sketched by the current function, the most important skill is software design.<br />
<br />
'''Minimum requirements''': Ability to read and write Octave code. Minimal FTP/HTTP knowledge.<br />
<br />
'''Difficulty''': Easy<br />
<br />
== Octave-Forge packages ==<br />
<br />
=== Improve MPI package ===<br />
Octave Forge's [http://octave.sourceforge.net/mpi/index.html MPI package] <br />
is a wrapper for basic MPI functions for parallel computing. It is implemented <br />
by wrapping MPI function calls in simple DLD functions that map Octave's Datataypes to <br />
MPI Derived Datatypes. <br />
The proposed project deals with improving and extending the Octave MPI package, for example:<br />
* Octave MPI applications can currently be only run in batch mode, add the ability to launch parallel jobs and collect their output in an interactive Octave session.<br />
* Implement functions for non-blocking communication (MPI_Isend, MPI_Irecv)<br />
* Implement one-to-many (Broadcast, Scatter), many-to-one (Reduce, Gather), and many-to-many (All Reduce, Allgather) communication routines<br />
<br />
'''Required skills''': C++. Message Passing Interface (MPI).<br />
<br />
'''Difficulty''': medium.<br />
<br />
'''Potential mentor''': Carlo de Falco, Michael Creel, Sukanta Basu<br />
<br />
=== Rewrite symbolic package ===<br />
Octave's current [http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/main/symbolic/ symbolic] package for symbolic computation is outdated, fragile and limited in its capabilities. The new symbolic package should offer better Matlab compatibility, for example handling of symbolic matrices. Like the current symbolic package, the new package could use the proven [http://www.ginac.de/ GiNaC] library for symbolic computations.<br />
<br />
The work would be to integrate GiNaC by using Octave's objects and classes. This can be done in C++ in a way similar to Michele Martone's new [http://librsb.sourceforge.net/ sparsersb] package.<br />
<br />
This idea has not been selected by any SoC student yet, if you want to see it happen before next SoC<br />
you can offer a bounty [http://www.freedomsponsors.org/core/issue/289/gnu-octave-rewrite-the-symbolic-package here].<br />
<br />
'''Required skills''': C++. Ability to understand Octave and GiNaC API documentation.<br />
<br />
'''Difficulty''': medium.<br />
<br />
'''Potential mentor''': Lukas Reichlin<br />
<br />
=== Improvements to N-dimensional image processing ===<br />
<br />
The image package has partial functionality for N-dimensional images. These images do exist in practice for example in medical imaging where slices from scans are assembled to form anatomical 3D images, or even exposures taken over time on different wavelengths can result in 5D images. As part of GSoC 2013, the core functions {{codeline|imwrite}} and {{codeline|imread}} were extended to better support this type of images. Likewise, many functions in the image package, mostly morphology operators, were expanded to deal with this type of images. Still, many are left to, specially image transformation and analysis of ROIs.<br />
<br />
Note that while many of the functions in the image package will not complain about ND images, they are actually not correctly implemented and will give incorrect results.<br />
<br />
'''Required skills''': Mostly m-file scripting, some C++. Familiarity with common CS algorithms will be useful.<br />
<br />
'''Difficulty''': difficult.<br />
<br />
'''Potential mentor''': Jordi Gutiérrez Hermoso<br />
<br />
=== Interface to Electronic Circuit Simulator ===<br />
<br />
[http://sourceforge.net/projects/qucs/ Qucs] is a C++ based circuit simulation package. This project aims to improve the interface to the Qucs algorithms to allow the transient, i.e. time series, simulation of circuits in Octave within a larger ODE system simulation driven by Octave. Other possible goals would be to make other analysis types available directly from Octave. There is an existing C++ interface which is based on handle class syntax available in the development version of Octave. The Qucs interface is intended to have two modes, synchronous and asynchronous. The asynchronous mode uses qucs to solve a circuit between two given time steps (internally taking as many smaller time steps as required), returning only the final result. This method is well developed. The alternative synchronous mode is intended to give full control of the time steps to Octave, and it is this mode which requires more work. A simple synchronous interface exists which can be built upon.<br />
<br />
'''Required skills''': C++ and m-file scripting. Familiarity with new classdef syntax would be useful. May require some modification/adaptation of the Qucs sources. Familiarity with the Octave ODE solvers useful but not essential. Ability to compile Octave from the development sources.<br />
<br />
'''Difficulty''': medium.<br />
<br />
'''Potential mentor''': <strike>Richard Crozier</strike> ''Unfortunately I can't mentor this year (2014)''<br />
<br />
'''Main Goals'''<br />
* Improve the functionality of the transient solver interface by implementing a robust synchronous simulation mode that integrates well with Octave ode solvers, particularly those from the odepkg package from OctaveForge. <br />
* Create interface to other analysis types (AC, DC, S-Parameter and Harmonic Balance)<br />
* Packaging the interface for Octave, to make it available through OctaveForge<br />
<br />
=== Color management functions in image package ===<br />
<br />
The goal is to implement these functions:<br />
<br />
iccread<br />
iccwrite<br />
makecform<br />
applycform<br />
<br />
These functions are useful for color management, in particular for converting data (especially images) between color spaces. ICC profiles are essentially used to store look-up tables or matrix transforms (or both) that define the conversions. For example, to convert an CMYK image to sRGB, you would load a "print" ICC profile that defines the conversion from CMYK to L*a*b* (the CIE color space that is supposed to match the human visual system), then load another profile that defines the conversion from L*a*b* to sRGB (there is a standard profile for this conversion (IEC 61966-2-1), which is why Matlab has a built-in conversion from sRGB to L*a*b*). To do the above conversions in Matlab, you would use the following code:<br />
<br />
<syntaxhighlight lang="octave"><br />
cmykImage = double(imread('cmyk-image-filename.tif'));<br />
iccProfile = iccread('icc-profile-filename.icc');<br />
labImage = applycform(cmykImage, makecform('clut', iccProfile, 'AToB3'));<br />
rgbImage = applycform(labImage, makecform('lab2srgb'));<br />
</syntaxhighlight><br />
<br />
The <code>'AToB3'</code> selects one of the color transforms (look-up tables) contained in the profile. This one is "Absolute Colorimetric." More details on ICC profiles may be obtained from [http://www.color.org/icc_specs2.xalter the ICC spec].<br />
<br />
Knowledge of ICC profiles (at least knowledge of their application) would be a prerequisite. Since [http://www.littlecms.com/ littlecms] implements all the necessary functions for reading, writing, and applying profiles, it would be primarily a matter of integrating this library into Octave (assuming that is the preferred implementation -- one could certainly read the ICC files directly, but why reinvent that particular wheel).<br />
<br />
'''Required skills''': C++ programming, some knowledge of ICC profiles desirable.<br />
<br />
'''Difficulty''': Easy.<br />
<br />
'''Possible Mentor''': TBD<br />
<br />
=== High Precision Arithmetic Computation ===<br />
The Linear Algebra Fortran libraries used by Octave make use of of single (32 bits) and double (64 bits) precision floating point numbers. Many operations are stopped when matrices condition number goes below 1e-16: such matrices are considered as ill-conditionned. There are cases where this is not enough, for instance simulations implying chemical concentrations covering the range 10^4 up to 10^34. There are a number of ways to increase the numerical resolution, like f.i. make use of 128 bits quadruple precision numbers available in GFortran. A simpler option is to build an interface over Gnu MPL arbitrary precision library, which is used internally by gcc and should be available on any platform where gcc runs. Such approach has been made available for MatLab under the name mptoolbox and is licensed under a BSD license. The author kindly provided a copy of the latest version and agreed to have it ported under Octave and re-distributed under GPL v3.0<br />
<br />
The architecture consists of an Octave class interface implementing "mp" (multi-precision) objects. Arithmetic operations are forwarded to MPL using MEX files. This is totally transparent to the end user, except when displaying numbers. This implementation needs to be ported and tested under Octave. <br />
<br />
'''Required skills''': Octave classes and object programming. C for understanding the MEX glue code.<br />
<br />
'''Difficulty''': medium.<br />
<br />
'''Potential mentor''': Pascal Dupuis<br />
<br />
=== Mapping package ===<br />
The [[Mapping package]] has started but lacks many functions, see [[Mapping package#Missing functions]]. Source code for some of the calculations has been donated and could be ported, or at least used for testing. Choose this project if you'd like to learn more about mapping and GPS!<br />
<br />
'''Required skills''': m-file scripting<br />
<br />
'''Difficulty''': medium<br />
<br />
'''Potential mentor''': fgnievinski<br />
<br />
=== TISEAN package ===<br />
[http://www.mpipks-dresden.mpg.de/~tisean/Tisean_3.0.1/index.html TISEAN] is a suite of code for nonlinear time series analysis. It is old but there are many algorithms there that haven't been re-implentented as libre software. The objective is to integrate TISEAN as a<br />
octave package as it was done for the Control package.<br />
<br />
'''Required skills''': m-file scripting, c/C++ and FORTRAN API knowledge. <br />
<br />
'''Difficulty''': easy/medium<br />
<br />
'''Potential mentor''': [[User:KaKiLa]]<br />
<br />
= HG Procedures for students and mentors =<br />
<br />
[[Hg_instructions_for_mentors#Mercurial_Tips_for_SoC_students | This page]] describes the procedures students are expected to use to publicly display their progress in a public mercurial repo during their work.<br />
<br />
[[hg instructions for mentors | This page]] describes what mentors should do to review their work.<br />
<br />
[[Category:Summer of Code]]<br />
[[Category:Project Ideas]]</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4695OctConf 20142014-03-20T19:10:41Z<p>JordiGH: /* Dates */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging ===<br />
<br />
There are several hotels and cheaper lodging in Montréal. More details will follow.<br />
<br />
== Dates ==<br />
<br />
September 19-21, 2014. This is from Friday to Sunday. Participants are encouraged to attend for all three days, but anyone is welcome for any duration of time.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4694OctConf 20142014-03-20T18:56:54Z<p>JordiGH: /* Lodging */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging ===<br />
<br />
There are several hotels and cheaper lodging in Montréal. More details will follow.<br />
<br />
== Dates ==<br />
<br />
July 16-20, 2012. First two days are intended for newbies and casual users, who may possibly be interested in getting involved in development. Next three days are for code sprints and development. Participants are encouraged to attend for all five days, but may choose only the first two or last three as convenient.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4693OctConf 20142014-03-20T18:50:15Z<p>JordiGH: /* Montréal, Québec, Canada */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crim.ca/en/computer-research-institute-of-montreal Computer Research Institute of Montréal (CRIM)] is a non-profit organization, one of the region’s only applied research centre, offering several services.<br />
<br />
The Montréal fall has moderate temperatures. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging ===<br />
<br />
There are several hotels and cheaper lodging in Montréal. <br />
<br />
== Dates ==<br />
<br />
July 16-20, 2012. First two days are intended for newbies and casual users, who may possibly be interested in getting involved in development. Next three days are for code sprints and development. Participants are encouraged to attend for all five days, but may choose only the first two or last three as convenient.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4692OctConf 20142014-03-20T18:44:07Z<p>JordiGH: /* How to get there */</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crm.umontreal.ca Centre de Recherches Mathématiques] (CRM) is a mathematical centre that brings together researchers from all four universities and many others from [http://en.wikipedia.org/wiki/Montreal Montréal] and Canada.<br />
<br />
The Montréal summer can be quite hot and humid with some chance of rain. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://www.stm.info/en bus schedules are posted online] and near metro stations.<br />
<br />
You can also get [http://www.stm.info/en/info/fares/transit-fares/3-days a 3-day pass for 18 CAD] that gives you full access to Montréal's excellent public transportation, including the 747 express bus.<br />
<br />
=== Lodging ===<br />
<br />
There are several hotels and cheaper lodging in Montréal. <br />
<br />
== Dates ==<br />
<br />
July 16-20, 2012. First two days are intended for newbies and casual users, who may possibly be interested in getting involved in development. Next three days are for code sprints and development. Participants are encouraged to attend for all five days, but may choose only the first two or last three as convenient.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=OctConf_2014&diff=4691OctConf 20142014-03-20T18:40:51Z<p>JordiGH: init</p>
<hr />
<div>OctConf 2014 will take place in Montréal, Canada for three days from September 19 until September 21.<br />
<br />
Please email [mailto:jordigh@octave.org Jordi (jordigh@octave.org)] if you think you could attend. Also write your name below in the Participants section if you think of attending with high probability.<br />
== Location ==<br />
<br />
=== Montréal, Québec, Canada ===<br />
<br />
[http://en.wikipedia.org/wiki/Montreal Montréal] is lively city with English and French widely spoken plus many other minority languages. Most business can be conducted in either language. It has four large universities, two Anglophones, [http://en.wikipedia.org/wiki/McGill_University McGill], [http://en.wikipedia.org/wiki/Concordia_University Concordia]; and two Francophones: [http://en.wikipedia.org/wiki/UQAM Université du Québec à Montréal] (UQAM), and [http://en.wikipedia.org/wiki/Universit%C3%A9_de_Montr%C3%A9al Université de Montréal]. The [http://www.crm.umontreal.ca Centre de Recherches Mathématiques] (CRM) is a mathematical centre that brings together researchers from all four universities and many others from [http://en.wikipedia.org/wiki/Montreal Montréal] and Canada.<br />
<br />
The Montréal summer can be quite hot and humid with some chance of rain. The city has a very serviceable public transportation network of buses and underground trains (metro), so it is convenient to get around without renting a car.<br />
<br />
=== Venue ===<br />
<br />
The [http://www.crim.ca/en/ CRIM] will be offering us hosting.<br />
<br />
==== How to get there ====<br />
<br />
Take your flight to the [http://maps.google.com/maps?f=q&source=s_q&hl=en&q=Montr%C3%A9al-Pierre+Elliott+Trudeau+International+Airport&ie=UTF8&t=m&vpsrc=6&sll=45.764649,-73.100281&sspn=0.747254,1.874542&st=115968771510351694523&rq=1&ev=zo&split=1&hq=Universit%C3%A9+de+Montr%C3%A9al&hnear=&ll=45.461094,-73.748474&spn=0.418036,1.056747&z=11&iwloc=A&cid=2175423857934231437 Montréal-Pierre Elliott Trudeau International Airport].<br />
<br />
From the airport, you can either take a cab to any location in the city, which is 40 CAD, or you can take the public 747 express bus, which is 8 CAD. It will take you to the Lionel-Groulx metro station, from which you can continue your travel with the same ticket (it's valid for 2 hours). The metro system is relatively simple to navigate, and [http://stm.info/English/a-somm.htm bus schedules are posted online] and near metro stations.<br />
<br />
Starting on Monday, you can get a weekly bus and metro pass for 23.50 CAD. This is highly recommended, as it gives you access to all of the public transportation network within the island of Montréal.<br />
<br />
=== Lodging ===<br />
<br />
There are several hotels and cheaper lodging in Montréal. <br />
<br />
== Dates ==<br />
<br />
July 16-20, 2012. First two days are intended for newbies and casual users, who may possibly be interested in getting involved in development. Next three days are for code sprints and development. Participants are encouraged to attend for all five days, but may choose only the first two or last three as convenient.<br />
<br />
=== Schedule ===<br />
<br />
TBA<br />
<br />
== Suggestions for Sessions ==<br />
<br />
Code sprints and informal discussion will happen every day. The following are topics of interest for these sessions.<br />
<br />
TBA<br />
<br />
== Participants ==<br />
<br />
* [http://jweaton.org John W. Eaton]<br />
* [http://jordi.inversethought.com Jordi Gutiérrez Hermoso]<br />
<br />
== Funding ==<br />
<br />
There is limited funding to cover the travel expenses of selected participants.</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=Octave_for_Debian_systems&diff=4546Octave for Debian systems2014-03-17T14:28:18Z<p>JordiGH: /* Distribution repositories */</p>
<hr />
<div>For Debian, and Debian based distributions such as Ubuntu, specific solutions. <br />
<br />
== Pre-compiled binaries ==<br />
<br />
=== Distribution repositories ===<br />
<br />
Binary packages for Octave and many Octave-Forge packages are provided by all versions of Debian and Ubuntu. These are the most well-tested binaries available and should work best for most users.<br />
<br />
sudo apt-get install octave<br />
<br />
Aside the {{codeline|octave}} package that installs GNU Octave, other pieces of it are split over multiple packages. These are {{codeline|octave-doc}}, {{codeline|octave-info}}, and {{codeline|octave-htmldoc}} for the documentation, {{codeline|liboctave-dev}} for the octave development library and required to install some Octave Forge packages, and {{codeline|octave-dbg}} for the debugging symbols.<br />
<br />
For Debian stable users, there may also be newer packages available in backports, so don't forget to check there.<br />
<br />
=== Octave's Personal Package Archive (PPA) ===<br />
<br />
However, for some Ubuntu releases the octave packages are old (Debian Squeeze and Ubuntu 12.04 or older only have Octave version 3.2). The [https://launchpad.net/~octave GNU Octave Team] on Launchpad maintain a PPA providing a binary packages of the latest stable and unstable versions of Octave for all versions of Ubuntu. To set up your system to install these packages<br />
<br />
sudo apt-add-repository ppa:octave/stable<br />
sudo apt-add-repository ppa:octave/unstable # optional<br />
sudo apt-get update<br />
sudo apt-get install octave<br />
<br />
== Compiling from source ==<br />
The only ''tricky'' part is to install the dependencies. Once that is solved, installing from source should be as easy as {{Codeline|./configure && make && make install}}. See the manual for the [http://www.gnu.org/software/octave/doc/interpreter/Running-Configure-and-Make.html#Running-Configure-and-Make configure options].<br />
<br />
=== Dependencies ===<br />
{{Note|different Debian and Ubuntu versions may have slightly different package names but their differences should be pretty small, mostly limited to version numbers.}}<br />
==== The easy way ====<br />
The easy way to install ''most'' of the necessary dependencies is to {{Codeline|sudo apt-get build-dep octave}}. This will install all packages necessary to build and prepare a Debian package for the octave version available on your system repositories. However:<br />
* will install unnecessary packages related to the building of a Debian package;<br />
* may miss some new dependencies;<br />
* may install packages that are no longer octave dependencies.<br />
<br />
==== The right way ====<br />
The best way is to select and install all the dependencies as listed in the {{Path|INSTALL.OCTAVE}} file. The following are their package names in Debian repositories (they will have their own dependencies which your package maintainer will solve automatically).<br />
<br />
{{Warning|Debian repositories has several libraries for dealing with HDF data files. The recommended is {{Codeline|libhdf5-serial-dev}}. However, the {{Forge|msh|msh package}} requires [http://www.geuz.org/gmsh/ gmsh] which is incompatible with it.}}<br />
{{Warning|the GraphicsMagick++ library (libgraphicsmagick++-dev) on the Debian repositories was compiled with quantum 8 which limits reading images to 8 bit. The solution is to recompile [[GraphicsMagick]] with quantum <br />
16 or 32 before building Octave.}}<br />
{{Note|if only the native graphics toolkit will be used, gnuplot will not be necessary.}}<br />
<br />
* build tools<br />
:<pre>g++ gcc gfortran make</pre><br />
* external packages<br />
:<pre>libblas-dev liblapack-dev libpcre3-dev</pre><br />
* optional but ''strongly'' recommended. Check the [http://www.gnu.org/software/octave/doc/interpreter/External-Packages.html Octave manual] for more information on them. Packages marked with * are virtual packages (you'll have to pick one of the displayed versions).<br />
:{| class="wikitable"<br />
|-<br />
! Dependency !! Debian Squeeze !! Ubuntu 13.10<br />
|-<br />
| ARPACK || libarpack2-dev || libarpack2-dev<br />
|-<br />
| cURL || libcurl4-gnutls-dev || libcurl4-gnutls-dev<br />
|-<br />
| epstool || epstool || epstool<br />
|-<br />
| FFTW3 || libfftw3-dev || libfftw3-dev<br />
|-<br />
| fig2dev || transfig || transfig<br />
|-<br />
| FLTK || libfltk-dev * || libfltk-dev *<br />
|-<br />
| fontconfig || libfontconfig1-dev || libfontconfig1-dev<br />
|-<br />
| FreeType || libfreetype6-dev || libfreetype6-dev<br />
|-<br />
| gl2ps || libgl2ps-dev || libgl2ps-dev<br />
|-<br />
| GLPK || libglpk-dev || libglpk-dev<br />
|-<br />
| GNU Readline || libreadline-dev || libreadline-dev<br />
|-<br />
| gnuplot || gnuplot || gnuplot<br />
|-<br />
| GraphicsMagick++ || libgraphicsmagick++-dev || libgraphicsmagick++-dev<br />
|-<br />
| HDF5 || libhdf5-serial-dev || libhdf5-serial-dev<br />
|-<br />
| Java JDK || openjdk-7-jdk || openjdk-7-jdk<br />
|-<br />
| LLVM || llvm-dev * || llvm-dev *<br />
|-<br />
| lpr || lpr || lpr<br />
|-<br />
| makeinfo || texinfo || texinfo<br />
|-<br />
| OpenGL || libgl-dev * || libgl-dev *<br />
|-<br />
| pstoedit || pstoedit || pstoedit<br />
|-<br />
| Qhull || libqhull-dev || libqhull-dev<br />
|-<br />
| QRUPDATE || libqrupdate-dev || libqrupdate-dev<br />
|-<br />
| QScintilla || libqscintilla2-dev || libqscintilla2-dev<br />
|-<br />
| Qt || libqt4-dev libqtcore4 libqtwebkit4 libqt4-network libqtgui4 || libqt4-dev libqtcore4 libqtwebkit4 libqt4-network libqtgui4<br />
|-<br />
| SuiteSparse || libsuitesparse-dev || libsuitesparse-dev<br />
|-<br />
| Xft || libxft-dev || libxft-dev<br />
|-<br />
| zlib || zlib1g-dev || zlib1g-dev<br />
|-<br />
|}<br />
<br />
==== Building development version ====<br />
If you are building development versions, you'll require some more packages as listed on {{Path|etc/HACKING}} and {{Path|INSTALL}}. Many of them will already be installed on your system.<br />
<br />
* development tools<br />
:<pre>autoconf automake bison flex gperf gzip libtool perl rsync tar</pre><br />
* extra dependencies for the development version<br />
: ''None at the moment''<br />
<br />
[[Category:Building]]<br />
[[Category:Installation]]<br />
[[Category:Debian]]</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=Octave_in_home_directory&diff=4096Octave in home directory2014-02-20T01:16:17Z<p>JordiGH: Proofreading, rename "userland" to "home directory".</p>
<hr />
<div>Installing in your home directory is a method to install GNU Octave next to your repository installation at the same time. This works with every Linux distribution and is especially for old Ubuntu LTS versions very useful!<br />
<br />
One advantage is that you do not clutter your system by running ''sudo make install''.<br />
Another advantage is that you can keep your Octave installation that is provided by your distribution.<br />
<br />
== 1. Install dependencies == <br />
<br />
Take a look at [[Building for Linux systems]] and [[Building]].<br />
<br />
General information you can gather from the `./configure` summary or read the {{Path|INSTALL.OCTAVE}} file that comes distributed with Octave.<br />
<br />
== 2. Download Octave Sourcecode ==<br />
<br />
Take a release from ftp.gnu.org, e.g. 3.8.0.<br />
<br />
wget ftp://ftp.gnu.org/gnu/octave/octave-3.8.0.tar.bz2<br />
tar xfvj octave-3.8.0.tar.bz2<br />
cd octave-3.8.0/<br />
<br />
or clone current development branch<br />
<br />
hg clone http://hg.octave.org/octave/<br />
cd octave/<br />
<br />
<br />
== 3. configure ==<br />
<br />
Only if you want to install from mercurial ''(hg.octave.org)'', you have to do first:<br />
./bootstrap<br />
<br />
Now it's time to run ./configure with a prefix that points to a directory in your home directory. E.g., my username is ''maxpower'' and I want to install Octave to ''~/.octave38/''<br />
./configure --prefix=/home/maxpower/.octave38/<br />
Pay attention to the configure summary at the end (See chapter 1). <br />
<br />
== 4. make & make install ==<br />
<br />
After you have successful configured octave without errors ''(warnings may be okay)'', you can run ''make''. If you have a dual core CPU, you can run make with two threads like that (increase -j number if you have more CPU cores).<br />
make -j2<br />
This may take now ~30-300 Minutes (depends on the speed of your cpu and the size of your RAM)<br />
<br />
Feel free to run ''make check'' too.<br />
<br />
When ''make -j2'' finished without errors, simply run '''without''' sudo/root permissions<br />
make install<br />
Octave will now be installed to /home/maxpower/.octave38/<br />
<br />
<br />
== 5. create a smart bashrc entry ==<br />
<br />
echo "alias octave38='~/.octave38/bin/octave'" >> ~/.bashrc<br />
. ~/.bashrc # this will update your bashrc without doing logout and login!<br />
<br />
If you simply enter ''octave'', you'll start your repository installation provided by your distribution. But when you enter ''octave38'', you'll start your new snappy octave version installed to your home directory.<br />
<br />
== Uninstall ==<br />
<br />
==== Method A ====<br />
<br />
If you're still have the compiled source folder, just do ''make uninstall'' from it. And don't forget to remove the ''alias octave38'' entry in your ''~/.bashrc''.<br />
<br />
==== Method B ====<br />
<br />
Just delete (e.g. ''rm -rf ~/.octave38/'') the install folder and remove the ''alias octave38'' entry from your ''~/.bashrc''.<br />
<br />
<br />
[[Category:Building]]<br />
[[Category:Installation]]</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=Octave_in_Userland&diff=4095Octave in Userland2014-02-20T01:12:22Z<p>JordiGH: moved Octave in Userland to Octave in home directory</p>
<hr />
<div>#REDIRECT [[Octave in home directory]]</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=Octave_in_home_directory&diff=4094Octave in home directory2014-02-20T01:12:22Z<p>JordiGH: moved Octave in Userland to Octave in home directory</p>
<hr />
<div>Installing in Userland is a methode to install GNU Octave next to your repository installation at the same time. This works with every Linux distribution and is especially for old Ubuntu LTS versions very profitable!<br />
<br />
One advantage is that you do not clutter your system by running ''sudo make install''.<br />
Another advantage is that you can keep your octave installation that is provided by your distribution.<br />
<br />
== 1. Install dependencies == <br />
<br />
Take a look at [[Building for Linux systems]] and [[Building]].<br />
<br />
General information you can gather from the `./configure` summary or read the {{Path|INSTALL.OCTAVE}} file that comes distributed with Octave.<br />
<br />
== 2. Download Octave Sourcecode ==<br />
<br />
Take a release from ftp.gnu.org, e.g. 3.8.0.<br />
<br />
wget ftp://ftp.gnu.org/gnu/octave/octave-3.8.0.tar.bz2<br />
tar xfvj octave-3.8.0.tar.bz2<br />
cd octave-3.8.0/<br />
<br />
or clone current stable branch<br />
<br />
hg clone http://hg.octave.org/octave/<br />
cd octave/<br />
<br />
<br />
== 3. configure ==<br />
<br />
Only if you want to install from mercurial ''(hg.octave.org)'', you have to do first:<br />
./bootstrap<br />
<br />
Now it's time to run ./configure with a prefix that points to a directory in your home directory. E.g., my username is ''maxpower'' and I want to install Octave to ''~/.octave38/''<br />
./configure --prefix=/home/maxpower/.octave38/<br />
Pay attention to the configure summary at the end (See chapter 1). <br />
<br />
== 4. make & make install ==<br />
<br />
After you have successful configured octave without errors ''(warnings may be okey)'', you can run ''make''. If you have a dual core cpu, you can run make with two threads like that (increase -j number if you have more cpu cores).<br />
make -j2<br />
This may take now ~30-300 Minutes (depends on the speed of your cpu and the size of your RAM) :) <br />
<br />
Feel free to run ''make check'' too.<br />
<br />
When ''make -j2'' finished without errors, simply run '''without''' sudo/root permissions<br />
make install<br />
Octave will now be installed to /home/maxpower/.octave38/<br />
<br />
<br />
== 5. create a smart bashrc entry ==<br />
<br />
echo "alias octave38='~/.octave38/bin/octave'" >> ~/.bashrc<br />
. ~/.bashrc # this will update your bashrc without doing logout and login!<br />
<br />
If you simply enter ''octave'', you'll start your repository installation provided by your distribution. But when you enter ''octave38'', you'll start your new snappy octave version installed to your home directory.<br />
<br />
== Uninstall ==<br />
<br />
==== Methode A ====<br />
<br />
If you're still have the compiled source folder, just do ''make uninstall'' from it. And don't forget to remove the ''alias octave38'' entry in your ''~/.bashrc''.<br />
<br />
==== Methode B ====<br />
<br />
Just delete (e.g. ''rm -rf ~/.octave38/'') the install folder and remove the ''alias octave38'' entry from your ''~/.bashrc''.<br />
<br />
<br />
[[Category:Building]]<br />
[[Category:Installation]]</div>JordiGHhttps://wiki.octave.org/wiki/index.php?title=Asking_for_package_to_be_released_under_GPL:_examples&diff=4039Asking for package to be released under GPL: examples2014-02-06T20:55:09Z<p>JordiGH: </p>
<hr />
<div>These are examples of e-mails sent to packages owners asking for a release of their package under GPL compatible licenses.<br />
<br />
{{Note|this is only required if the code being requested is available for download ''only'' through File Exchange. Please read the [[FAQ#Why_can.27t_I_use_code_from_File_Exchange_in_Octave.3F_It.27s_released_under_a_BSD_license.21|FAQ]] to understand why permission is required in such cases. However, if, for example, the author also provides the code on their own homepage (or their university/institution homepage) under GPL-compatible terms, there is no need to bother them with legalese. Of course, you could email them telling that you find their code useful; we all enjoy appreciation of our work.}}<br />
<br />
== real2rgb from File Exchange ==<br />
* 12/10/2012<br />
<br />
<pre><br />
Dear Oliver Woodford,<br />
<br />
My name is Juan Pablo Carbajal, I am developer at Octave-Forge[1] a<br />
sibling project of GNU Octave. I have downloaded your package real2rgb from<br />
the Matlab file exchange and I find it<br />
very useful.<br />
Would you like to contribute it to Octave-Forge? I know licensing issues are<br />
difficult topics and therefore I approach you with utter respect.<br />
<br />
If you accept this invitation to contribute code to Octave-Forge, I can<br />
offer<br />
you the following<br />
- You will be properly credited and your papers will be linked as well.<br />
- Maintenance of your function, test and demos will be taken over by the<br />
Octave and Octave-forge community. Of course you can continue contributing,<br />
and we will very happy to have you among us. I will also<br />
let you know of any bug report we get from the users.<br />
- I will take care of porting (code formatting, demos and test).<br />
- You function will be directly downloaded and installed from an<br />
Octave prompt (assuming it is packed inside real2rgb package):<br />
> pkg -forge install real2rgb<br />
<br />
The only thing that you need to do is to release your code under GPLv3 (we<br />
like this one :D ) or any license compatible with them, e.g. FreeBSD. I<br />
cannot use the downloaded the packages from the Matlab file exchange because<br />
it will be a violation of their "Terms of Use" (that code can be used only<br />
in<br />
Mathworks products). You need only to let me know that you allow me to<br />
redistribute your code under your free license of choice, I will<br />
take care of adding the header to each file of your package.<br />
<br />
In case you are interested, I can tell you about successful experiences of<br />
other researches contributing their work. For example the matGeom<br />
community[2] released under GPLv3 so that Octave-forge can mirror they<br />
package[3], since the package have enjoyed several new contributions and<br />
code<br />
optimization. A group form the technical<br />
university of Denmark[4] working on nonnegative matrix factorization also<br />
allowed us to redistribute their package under GPLv3. Biomechanics &<br />
Neurosciences researchers[5] have also changed their license to GPLv3 to<br />
allow us to produce packages out of their excellent algorithms.<br />
<br />
We have no other objective but to offer a truly free platform for the<br />
exchange of our research. I hope you join us!<br />
<br />
If you have any question or comments, please let me know without hesitation.<br />
<br />
Thank you very much for your excellent code!<br />
<br />
Regards,<br />
<br />
[1] http://octave.sourceforge.net/<br />
[2] http://sourceforge.net/apps/mediawiki/matgeom/index.php?title=Main_Page<br />
[3] http://www.octave.org/wiki/index.php?title=Geometry_package<br />
[4] http://cogsys.imm.dtu.dk/toolbox/nmf/index.html<br />
[5]<br />
http://sites.google.com/site/systemsneurosciencegroup/people/stewart-heitmann<br />
</pre><br />
<br />
== Gaussian Processes for machine learning ==<br />
* 21/5/2012<br />
<pre><br />
Dear Dr. Nickisch and Dr. Rasmussen,<br />
<br />
My name is Juan Pablo Carbajal, I am developer at Octave-Forge[1] a<br />
sibling project of GNU Octave. I<br />
have downloaded your package gpml-v3.1 from your website and I find it<br />
very useful (also fan of your book GP for ML).<br />
Would you like to contribute it to Octave-Forge? I know licensing<br />
issues are difficult topics and therefore I approach you with utter<br />
respect.<br />
<br />
If you accept this invitation to contribute code to Octave-Forge, I<br />
can offer you the following<br />
- You will be properly credited and your papers will be linked as well.<br />
- Maintenance of your function, test and demos will be taken over by<br />
the Octave and Octave-forge community. Of course you can continue<br />
contributing, and we will very happy to have you among us. I will also<br />
let you know of any bug report we get from the users.<br />
- I will take care of code formatting, demos and test.<br />
- You function will be directly downloaded and installed from an<br />
Octave terminal (assuming it is packed inside gaussp package):<br />
>pkg -forge install gaussp<br />
<br />
The only thing that you need to do is to release your code under GPLv3<br />
(we like this one :D ) or any license compatible with them, e.g.<br />
FreeBSD. Although the current license of your package is quite free,<br />
it is a custom license<br />
and GNU wouldn't accept it. You need only to let me know that you<br />
allow me to redistribute your code under your free license of choice, I will<br />
take care of adding the header to each file of your package.<br />
<br />
In case you are interested, I can tell you about successful<br />
experiences of other researches contributing their work. For<br />
example the Matgeom community[2] released under GPLv3 so that<br />
Octave-forge can mirror they package[3], since the package have<br />
enjoyed several new contributions and code optimization. A group form<br />
the technical<br />
university of Denmark[4] working on nonnegative matrix factorization<br />
also allowed us to<br />
redistribute their package under GPLv3. Biomechanics & Neurosciences<br />
researchers[5] have also changed their license to GPLv3 to allow us to<br />
produce packages out of their excellent algorithms.<br />
<br />
We have no other objective but to offer a truly free platform for the<br />
exchange of our research. I hope<br />
you join us!<br />
<br />
If you have any question or comments, please let me know without hesitation.<br />
<br />
Thank you very much for your excellent code (and book!)<br />
<br />
[1] http://octave.sourceforge.net/<br />
[2] http://sourceforge.net/apps/mediawiki/matgeom/index.php?title=Main_Page<br />
[3] http://www.octave.org/wiki/index.php?title=Geometry_package<br />
[4] http://cogsys.imm.dtu.dk/toolbox/nmf/index.html<br />
[5] http://sites.google.com/site/systemsneurosciencegroup/people/stewart-heitmann<br />
</pre><br />
<br />
== SPM ID Toolbox ==<br />
<br />
* 7/1/2011<br />
<pre><br />
Dear Brett,<br />
<br />
Thank you very much for your toolbox.<br />
I am trying to run it in Octave 3.5.0+ and it doesn't work. On one<br />
side the control functions of octave have been updated and the old<br />
ones (that apparently are dumped by Mathworks in the signal toolbox)<br />
were removed, but I am working on it. On the other side, I found some<br />
bugs in your package.<br />
<br />
For example, the function rksqrtv.m is empty! which makes demo_unit<br />
option 19 fail. However, even if the function were there, with the<br />
interface as explained in the help, then ks.m would produce an error<br />
at the end, because the matrix G has no field called ss.<br />
<br />
Another bug I found in m2f line 165. The output of mimofr would be of<br />
size number-of-ouputs x number-of-inputs x number-of-frequencies. As<br />
it is used there, the addition will fail for the option 20 of<br />
demo_unit I corrected by doing<br />
G.H=mimofr(G.ss.A,G.ss.K,G.ss.C,[],ww);<br />
DK = eye(size(G.H,1),size(G.H,2));<br />
G.H=G.H + DK(:,:,ones(1,length(ww)));<br />
<br />
by the way, if you were aiming to make UNIT compatible with Octave<br />
3.5.0+, you would have freqresp.m available in the control package.<br />
<br />
Are you planning to produce an Octave 3.5.0+ compatible version of<br />
your excellent package?<br />
<br />
Thanks again,<br />
<br />
Regards,<br />
</pre><br />
<br />
* 12/9/2012<br />
<pre><br />
Dear Brett Ninness,<br />
<br />
I am writing you once more in relation to the SPM toolbox<br />
(http://sigpromu.org/idtoolbox/).<br />
<br />
GNU Octave is now in its 3.6.x version and the packages are<br />
experiencing fast development. Take for example (and most related to<br />
your package) the control package<br />
(http://octave.sourceforge.net/control/overview.html). You may notice<br />
under the section "Experimental data handling" and "System<br />
identification" some interesting new functionality.<br />
<br />
Do you have plans to release your package under a GPL compatible<br />
license (http://en.wikipedia.org/wiki/List_of_FSF-approved_software_licenses)?<br />
Only under this licesing scheme we can include and extended your<br />
package into GNU Octave packages. It may be advantageous, in terms of<br />
visibility and use, to release a free version that can be shipped with<br />
GNU Octave packages, since users can download it and install it<br />
directly from the prompt. Additionally, the packages that are most<br />
popular are shipped within Linux distributions like Debian and Fedora.<br />
<br />
Please let us know about your decision.<br />
<br />
Thank you very much in advance.<br />
<br />
Kind regards,<br />
</pre><br />
<br />
== Non-negative matrix factorization ==<br />
* 9/3/2012<br />
<pre><br />
Dear Dr. Jingu Kim,<br />
<br />
My name is Juan Pablo Carbajal, I am a developer of Octave-Forge[1]. I<br />
have downloaded your package nmf_bpas from your website and I find it<br />
very useful.<br />
Would you like to contribute it to Octave-Forge? I know licensing<br />
issues are difficult topics and therefore I approach you with utter<br />
respect.<br />
<br />
If you accept this invitation to contribute code to Octave-Forge, I<br />
can offer you the following<br />
- You will be properly credited and your papers will be linked as well.<br />
- Maintenance of your function, test and demos will be taken over by<br />
the Octave and Octave-forge community. Of course you can continue<br />
contributing, and we will very happy to have you among us.<br />
- I will take care of code formatting, demos and test.<br />
- You function will be directly downloaded and installed form an<br />
Octave terminal (assuming it is packed inside linear-algebra package):<br />
>pkg -forge install linear-algebra<br />
<br />
The only thing that you need to do is to release your code under GPLv3<br />
(we like this one :D ) or any license compatible with them, e.g.<br />
FreeBSD. We already have an algorithm for nmf, by Chih-Jen Lin[2] but<br />
we would like to have a good variety of implementations, therefore we<br />
ask for your contribution.<br />
<br />
In case you are interested, I can tell you about successful<br />
experiences of together researches contributing their work. For<br />
example the Matgeom community[3] released under GPLv3 so that<br />
Octave-forge can mirror they package[4]. Biomechanics & Neurosciences<br />
researchers[5] have also changed their license to GPLv3 to allow us to<br />
produce packages out of their excellent algorithms. We are trying to<br />
offer a truly free platform for the exchange of our research. I hope<br />
you join us!<br />
<br />
[1] http://octave.sourceforge.net/<br />
[2] http://www.csie.ntu.edu.tw/~cjlin/nmf/index.html<br />
[3] http://sourceforge.net/apps/mediawiki/matgeom/index.php?title=Main_Page<br />
[4] http://www.octave.org/wiki/index.php?title=Geometry_package<br />
[5] http://sites.google.com/site/systemsneurosciencegroup/people/stewart-heitmann<br />
<br />
Looking forward to your answer,<br />
<br />
Best regards,<br />
</pre><br />
<br />
<pre><br />
Dear Chih-Jen Lin,<br />
<br />
My name is Juan Pablo Carbajal, I am a developer of Octave-Forge[1]. I<br />
have downloaded your function nmf.m from your website and I find it<br />
very useful.<br />
Would you like to contribute it to Octave-Forge? I know licensing<br />
issues are difficult topics and therefore I approach you with utter<br />
respect.<br />
<br />
If you accept this invitation to contribute code to Octave-Forge, I<br />
can offer you the following<br />
- You will be properly credited and your papers will be linked as well.<br />
- Maintenance of your function, test and demos will be taken over by<br />
the Octave and Octave-forge community. Of course you can continue<br />
contributing, and we will very happy to have you among us.<br />
- I will take care of code formatting, demos and test.<br />
- You function will be directly downloaded and installed form an<br />
Octave terminal (assuming it is packed inside linear-algebra package):<br />
>pkg -forge install linear-algebra<br />
<br />
The only thing that you need to do is to release your code under GPLv3<br />
(we like this one :D ) or any license compatible with them, e.g.<br />
FreeBSD.<br />
<br />
In case you are interested, I can tell you about successful<br />
experiences of together researches contributing their work. For<br />
example the Matgeom community[2] released under GPLv3 so that<br />
Octave-forge can mirror they package[3]. Biomechanics & Neurosciences<br />
researchers[4] have also changed their license to GPLv3 to allow us to<br />
produce packages out of their excellent algorithms. We are trying to<br />
offer a truly free platform for the exchange of our research. I hope<br />
you join us!<br />
<br />
Looking forward to your answer,<br />
<br />
Best regards,<br />
</pre><br />
<br />
* 27/3/2012<br />
<pre><br />
Dear Kasper Winther Joergensen,<br />
<br />
My name is Juan Pablo Carbajal, I am a developer of Octave-Forge[1]. I have downloaded the nmf toolbox 1-4-0 from your website and I find it very useful.<br />
Would you like to contribute it to Octave-Forge? I know licensing issues are difficult topics and therefore I approach you with utter respect.<br />
<br />
If you accept this invitation to contribute code to Octave-Forge, I can offer you the following<br />
- You will be properly credited and your papers will be linked as well.<br />
- Maintenance of your toolbox, test and demos will be taken over by the Octave and Octave-forge community. Of course you can continue contributing, and we will very happy to have you among us.<br />
- I will take care of code formatting, demos and test.<br />
- You function will be directly downloaded and installed form an Octave terminal (assuming it is packed inside linear-algebra package):<br />
>pkg -forge install linear-algebra<br />
<br />
The only thing that you need to do is to release your code under GPLv3 (we like this one :D ) or any license compatible with them, e.g.<br />
FreeBSD. Chih-Jen Lin (author of the file nmf_cjlin in your toolbox) and Jingu Kim have already send me their permission to post their code in Octave-Forge. I hope you join us!<br />
<br />
In case you are interested, I can tell you about successful experiences of together researches contributing their work. For example the Matgeom community[2] released under GPLv3 so that Octave-forge can mirror they package[3]. Biomechanics & Neurosciences researchers[4] have also changed their license to GPLv3 to allow us to produce packages out of their excellent algorithms. We are trying to offer a truly free platform for the exchange of our research.<br />
<br />
Looking forward to your answer,<br />
<br />
Best regards,<br />
</pre><br />
<br />
== Motion tracking ==<br />
*29/8/2012<br />
<pre><br />
Dear Marie Dacke and Emily Baird,<br />
<br />
Thank you once more for your interesting research and motivating<br />
presentation about dung beetles.<br />
As we discussed post-processing the data recorded with cameras and<br />
tracking the position of the bugs is time consuming. Automatizing and<br />
standardizing this task is very important for reproducible research<br />
and the speed up development in ethology.<br />
<br />
You told me that you post-process your movies using Matlab. I would<br />
like to port your scripts to GNU Octave to make them completely free<br />
(that is the code can be run in free software). If you could provide<br />
some of your code so I can test it in Octave, it would be very<br />
helpful. We will see what developments are needed in the current<br />
version of Octave and the community will work on that.<br />
<br />
To be useful in Octave we would need that the code you send is<br />
released under a free license (we refer GPLv3, but any in the column<br />
GPL compatible would do fine<br />
http://en.wikipedia.org/wiki/List_of_FSF_approved_software_licenses).<br />
Your authorship will never be removed form the files, only editors<br />
names will be added if required.<br />
<br />
Looking forward to work on your code.<br />
<br />
Sincerely<br />
</pre><br />
<br />
== Biomechanical muscle models ==<br />
* 21/12/2011<br />
<pre><br />
Dear Stewart,<br />
<br />
Thank you again for establishing the contact.<br />
<br />
From the latest video I understand that the torques generated in<br />
joints closer to the "shoulder" due to the segments farther away,<br />
change the stability of some of the equilibrium points. If that is the<br />
case this is something that one cannot predict studying isolated<br />
links. However, I guess that studying isolated links with an extra<br />
constant term would show these bifurcations as well (that is, the<br />
torque due to its own weight + some external constant torque).<br />
<br />
I have an interest in your work since my work is related. In my thesis<br />
I study the effect that body properties (around here people speaks of<br />
"morphology") may have on the difficulty of performing certain tasks.<br />
Stated as a question, Can we quantify the relation between function<br />
and morphology? I studied several cases and one of them is kinematic<br />
chains, though I did not achieve a strong answer to the question I<br />
came up with a method to calculate solution to control problems base<br />
don the natural dynamics of the kinematic chain. Using models as the<br />
one you report in your paper is of high interest to me (but for an<br />
after thesis life, i.e. ~July 2012). Maybe we can have a sort of<br />
collaboration there. I am collaborating with Andrea d'Avella (context<br />
of AMARSi project[0]) and with a student of Francesco Nori, I guess it<br />
will be great to unite forces ;D.<br />
<br />
Additionally, I plan to release my algorithms in a package (probably<br />
named biomechanics) for Octave[1,2] (I hope you know it, is very<br />
similar to Matlab) and I was wondering if you would like to release<br />
yours as well, in the same package. The only formal requirement is<br />
that your code has a GNU compatible license (FreeBSD, GPL, LGPL, etc).<br />
I am already a developer there, so I could take care of the<br />
"administrative" burden. Here [3] you can see my TODO list for Octave,<br />
to see what is to come (for example the robotics package!)<br />
<br />
Looking forward to your answer!<br />
<br />
[0] http://www.amarsi-project.eu/<br />
[1] http://www.gnu.org/software/octave/<br />
[2] http://octave.sourceforge.net/<br />
[3] http://octave.org/wiki/index.php?title=User:KaKiLa<br />
</pre><br />
<br />
== matGeom ==<br />
* 26/9/2011<br />
<pre><br />
Dear David,<br />
<br />
I would like to discuss the possibility of making matGeom compatible<br />
with Octave and upload it to the Octave-Packages server.<br />
http://octave.sourceforge.net/index.html<br />
<br />
Packages there are maintained individually and people can get them<br />
directly from inside octave. That make is really easy to install the<br />
package.<br />
<br />
Regarding the license. You can release your code with multiple<br />
licenses, that is not a problem at all. If you add the GPL version to<br />
a zip and send it, then that code will be GPL. Nevertheless BSD work<br />
fine as well. Just let me know when you add the license (make sure you<br />
add 3-clause or 2-clause BSD<br />
(http://en.wikipedia.org/wiki/BSD_licenses), otherwise we cannot add<br />
it to Octave).<br />
<br />
As soon as you let me know, I will start the upload.<br />
<br />
Thanks<br />
<br />
Regards,<br />
<br />
</pre></div>JordiGH