Summer of Code - Getting Started: Difference between revisions

Jump to navigation Jump to search
re-ordered projects to clarify core vs. package placement
(→‎Steps Toward a Successful Application: add note about clear email subject and skip "introduction" emails)
(re-ordered projects to clarify core vs. package placement)
Line 86: Line 86:
== Numerical ==
== Numerical ==


These projects involve implementing certain mathematical functions in Octave.
These projects involve implementing certain mathematical functions, primarily in core Octave.


=== ode15s : Matlab Compatible DAE solver ===
=== ode15s : Matlab Compatible DAE solver ===
Line 123: Line 123:
* '''Potential mentor'''
* '''Potential mentor'''
: Nir Krakauer
: Nir Krakauer
=== Improve iterative methods for sparse linear systems ===
GNU Octave currently has the following Krylov subspace methods for sparse linear systems: pcg (spd matrices) and pcr (Hermitian matrices), bicg,
bicgstab, cgs, gmres, and qmr (general matrices). Their descriptions and their error messages are not aligned. Moreover, they have similar blocks of code (input check for instance) which can be written once and for all in common functions. The first step in this project could be a revision
and a synchronization of the codes.
In Matlab, some additional methods are available: minres and symmlq (symmetric matrices), tfqmr and bicgstabl (generale matrices), lsqr (least
squares). The second step in this project could be the implementation of some of these missing functions.
The reference book is available [www-users.cs.umn.edu/~saad/IterMethBook_2ndEd.pdf here]
* '''Required skills'''
: Not yet listed.
* '''Difficulty'''
: Not yet listed.
* '''Mentor'''
: Marco Caliari, Carlo de Falco
== Adding functionality to Forge packages ==


=== TISEAN package ===
=== TISEAN package ===
Line 168: Line 189:
: [[User:oheim|Oliver Heimlich]]
: [[User:oheim|Oliver Heimlich]]


=== Improve iterative methods for sparse linear systems ===
=== Mapping package: Implement boolean operations on polygons ===


GNU Octave currently has the following Krylov subspace methods for sparse linear systems: pcg (spd matrices) and pcr (Hermitian matrices), bicg,
The goal is to implement a Matlab-compatible set of boolean operations and supporting function for acting on polygons. These include the standard set of potential operations such as union/OR, intersection/AND, difference/subtraction, and exclusiveor/XOR. There are a variety of existing polygon libraries that implement much of the functionality and thus this would be incorporating the library into GNU Octave. The libraries with acceptable licenses are [http://www.angusj.com/delphi/clipper.php ClipperLib], [http://www.boost.org/doc/libs/1_60_0/libs/polygon/doc/index.htm Boost::Polygon], [https://github.com/boostorg/geometry Boost::Geometry], or [http://boolean.klaasholwerda.nl/bool.html kbool]. This would include implementing the following functions: polybool, ispolycw, poly2ccw, poly2cw, poly2fv, polyjoin, and polysplit. A partial implementation with ClipperLib and GPC can be found [https://sites.google.com/site/ulfgri/numerical/polybool here].
bicgstab, cgs, gmres, and qmr (general matrices). Their descriptions and their error messages are not aligned. Moreover, they have similar blocks of code (input check for instance) which can be written once and for all in common functions. The first step in this project could be a revision
and a synchronization of the codes.
 
In Matlab, some additional methods are available: minres and symmlq (symmetric matrices), tfqmr and bicgstabl (generale matrices), lsqr (least
squares). The second step in this project could be the implementation of some of these missing functions.
 
The reference book is available [www-users.cs.umn.edu/~saad/IterMethBook_2ndEd.pdf here]


* '''Required skills'''
* '''Required skills'''
: Not yet listed.
: Knowledge of C++; C; familiarity with boolean logic; polygons, windings, and geometry
* '''Difficulty'''
* '''Difficulty'''
: Not yet listed.
: Easy to Medium.
* '''Mentor'''
* '''Potential mentor'''
: Marco Caliari, Carlo de Falco
: John Swensen


== Infrastructure ==
== Infrastructure ==
Line 279: Line 293:




== Missing Core Matlab functions ==
=== Implement boolean operations on polygons ===
The goal is to implement a Matlab-compatible set of boolean operations and supporting function for acting on polygons. These include the standard set of potential operations such as union/OR, intersection/AND, difference/subtraction, and exclusiveor/XOR. There are a variety of existing polygon libraries that implement much of the functionality and thus this would be incorporating the library into GNU Octave. The libraries with acceptable licenses are [http://www.angusj.com/delphi/clipper.php ClipperLib], [http://www.boost.org/doc/libs/1_60_0/libs/polygon/doc/index.htm Boost::Polygon], [https://github.com/boostorg/geometry Boost::Geometry], or [http://boolean.klaasholwerda.nl/bool.html kbool]. This would include implementing the following functions: polybool, ispolycw, poly2ccw, poly2cw, poly2fv, polyjoin, and polysplit. A partial implementation with ClipperLib and GPC can be found [https://sites.google.com/site/ulfgri/numerical/polybool here].


* '''Required skills'''
: Knowledge of C++; C; familiarity with boolean logic; polygons, windings, and geometry
* '''Difficulty'''
: Easy to Medium.
* '''Potential mentor'''
: John Swensen




281

edits

Navigation menu