Editing User:Antonio Pino
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 23: | Line 23: | ||
* Which time zone do you live in? Will that change over GSoC duration? | * Which time zone do you live in? Will that change over GSoC duration? | ||
In Spain we are at UTC+1 (DST UTC+2), although there have been talks to change to an UTC+0 (DST UTC+1) frame, I am not aware of those taking place soon, nor do I plan to travel outside UTC+2 this summer. | In Spain we are at UTC+1 (DST UTC+2), although there have been talks to change to an UTC+0 (DST UTC+1) frame, I am not aware of those taking place soon, nor do I plan to travel outside UTC+2 this summer. | ||
* Please state the | * Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers? | ||
I am really a morning person, so a eight to six (UTC+0) schedule will do for me. | I am really a morning person, so a eight to six (UTC+0) schedule will do for me. | ||
Line 38: | Line 38: | ||
* Please describe the biggest project you have written code for and what you learned by doing so. Also describe your role in that project over time. | * Please describe the biggest project you have written code for and what you learned by doing so. Also describe your role in that project over time. | ||
The biggest project I have worked on was the VHDL discrete filter, carried out along with two colleagues. The idea was to make use of all we learned about digital circuits so we implemented a RAM, adders, various types of registers, finite state machines, and we all went through the nightmare of 'looking for the bug' and creating | The biggest project I have worked on was the VHDL discrete filter, carried out along with two colleagues. The idea was to make use of all we learned about digital circuits so we implemented a RAM, adders, various types of registers, finite state machines, and we all went through the nightmare of 'looking for the bug' and creating testbenchs for vhdl. But more importantly that an innocent looking modification may break others' job. | ||
By the way, knowing about the nuts and bolts of how are numbers stored in the bare metal gave me an appreciation for what are the differences between an idealized (almighty) function and the ''real'' poor man's version of it. | By the way, knowing about the nuts and bolts of how are numbers stored in the bare metal gave me an appreciation for what are the differences between an idealized (almighty) function and the ''real'' poor man's version of it. | ||
Line 79: | Line 79: | ||
The project I intend to do is [http://wiki.octave.org/Summer_of_Code_Project_Ideas#Improve_logm.2C_sqrtm.2C_funm Improve logm, sqrtm, funm]; its aim is to improve the existing implementations of [https://en.wikipedia.org/wiki/Matrix_function Matrix Functions] in Octave based on the algorithms developed by [http://www.maths.manchester.ac.uk/~higham/NAMF/#People a team lead by Prof. Higham] (project entitled Numerical Analysis of Matrix Functions, NAMF) at the University of Manchester. At this point in time, in Octave there are the following: [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/scripts/linear-algebra/expm.m expm] makes use of Padé approximant, [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/scripts/linear-algebra/logm.m logm] uses a Schur-Parlett algorithm, and [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/libinterp/corefcn/sqrtm.cc sqrtm] using a variant of the algorithm in A New sqrtm for MATLAB[1]. On the other hand, in Octave-Forge there are [http://sourceforge.net/p/octave/linear-algebra/ci/default/tree/inst/funm.m funm] and [http://sourceforge.net/p/octave/linear-algebra/ci/default/tree/inst/thfm.m trigonometric and hyperbolic matrix functions]. For a general survey-introduction to matrix functions (or matrix computation in general) refer to Golub & Van Loan[2]. | The project I intend to do is [http://wiki.octave.org/Summer_of_Code_Project_Ideas#Improve_logm.2C_sqrtm.2C_funm Improve logm, sqrtm, funm]; its aim is to improve the existing implementations of [https://en.wikipedia.org/wiki/Matrix_function Matrix Functions] in Octave based on the algorithms developed by [http://www.maths.manchester.ac.uk/~higham/NAMF/#People a team lead by Prof. Higham] (project entitled Numerical Analysis of Matrix Functions, NAMF) at the University of Manchester. At this point in time, in Octave there are the following: [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/scripts/linear-algebra/expm.m expm] makes use of Padé approximant, [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/scripts/linear-algebra/logm.m logm] uses a Schur-Parlett algorithm, and [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/libinterp/corefcn/sqrtm.cc sqrtm] using a variant of the algorithm in A New sqrtm for MATLAB[1]. On the other hand, in Octave-Forge there are [http://sourceforge.net/p/octave/linear-algebra/ci/default/tree/inst/funm.m funm] and [http://sourceforge.net/p/octave/linear-algebra/ci/default/tree/inst/thfm.m trigonometric and hyperbolic matrix functions]. For a general survey-introduction to matrix functions (or matrix computation in general) refer to Golub & Van Loan[2]. | ||
I believe this is of interest to | I believe this is of interest to Gnu Octave first, due to the goal of overall MATLAB compatibility and second, because more and more systems are being described by a matrix equation lately. | ||
Upon completion | Upon completion Gnu Octave should have a working funm based on the Schur-Parlett algorithms by Higham et al., that calls to specific matrix functions if these have an instance of their own: expm, logm, sqrtm etc. | ||
'''Update:''' | '''Update:''' | ||
Part of the work is already done by Prof. N.J. Higham and is available under a GPLv3+ license: [http://www.ma.man.ac.uk/~higham/mftoolbox/ The Matrix Function Toolbox][3] which is closely related to the book by the same author[4]. A [http://www.ma.man.ac.uk/~higham/mctoolbox toolbox for matrix computations][ | Part of the work is already done by Prof. N.J. Higham and is available under a GPLv3+ license: [http://www.ma.man.ac.uk/~higham/mftoolbox/ The Matrix Function Toolbox][3] which is closely related to the book by the same author[4]. A [http://www.ma.man.ac.uk/~higham/mctoolbox toolbox for matrix computations][4] (The Matrix Computation Toolbox) is also provided by the same author, under the same license. Finally, a funm function is provided in the page of the NAMF project under GPLv3+. One might suggest that there is still room for improvement; because as Marco Caliari noted the toolboxes are from 2008. A review of the literature needs to be done in order to use more recent algorithms when writing the new functions. | ||
'''TENTATIVE TIMELINE''' | |||
'''week 0''' | |||
set up the working environment | |||
create an hg repository with the toolboxes | |||
start the blog | |||
'''weeks 1-2''' | |||
The start should be soft for I am having the finals in this period. At this point the list of algorithms to be used must be completely defined; that is, a final review of the literature is to be done. | The start should be soft for I am having the finals in this period. At this point the list of algorithms to be used must be completely defined; that is, a final review of the literature is to be done. | ||
Work on the toolboxes starts here. | Work on the toolboxes starts here. | ||
'''weeks 3-4''' | |||
: | ''Milestone 0'': the toolboxes are working and packaged. | ||
'''weeks 4-7''' | '''weeks 4-7''' | ||
funm | funm | ||
''Milestone 1'': general purpose funm based on a Schur-Parlett algorithm | ''Milestone 1'': general purpose funm based on a Schur-Parlett algorithm) | ||
'''weeks 8-9''' | '''weeks 8-9''' | ||
expm | expm and logm | ||
'''weeks 10-11''' | '''weeks 10-11''' | ||
Line 163: | Line 133: | ||
Pencils down. Run tests on the Matrix Functions and write/review their documentation. | Pencils down. Run tests on the Matrix Functions and write/review their documentation. | ||
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | <div class="toccolours mw-collapsible mw-collapsed" style="width:800px"> | ||
'''TENTATIVE | '''TENTATIVE TIMELINE'''(previous) | ||
<div class="mw-collapsible-content">'''Introduction''' | <div class="mw-collapsible-content">'''Introduction''' | ||
It appears to me that the natural task division for this project is to first improve and test funm (this should be ready by the mid-term), and then get to the rest, picking logm first. | It appears to me that the natural task division for this project is to first improve and test funm (this should be ready by the mid-term), and then get to the rest, picking logm first. | ||
Line 216: | Line 182: | ||
[6] M. I. Smith (2003). [http://www.maths.manchester.ac.uk/~higham/narep/narep392.ps.gz A Schur Algorithm For Computing Matrix Pth Roots], SIAM J. MATRIX ANAL. APPL. 24, 4, 971-989. | [6] M. I. Smith (2003). [http://www.maths.manchester.ac.uk/~higham/narep/narep392.ps.gz A Schur Algorithm For Computing Matrix Pth Roots], SIAM J. MATRIX ANAL. APPL. 24, 4, 971-989. | ||
---- | |||
[ | This section is being reworked in a sandbox, [[User:Antonio_Pino:anotherwiki|the other wiki]]. Will add it here when done. Note that the previous is still going though changes. | ||
==Z: submitted proposal== | ==Z: submitted proposal== | ||
Line 235: | Line 201: | ||
<div class="mw-collapsible-content">'''Introduction''' | <div class="mw-collapsible-content">'''Introduction''' | ||
I am Antonio Pino Robles, and if selected I will be working on the project for about 6-8 hours a day (8:00-16:00 UTC+0), with the exception of the first two weeks when I will be taking my final exams. Therefore, mine will be a soft start. As for IRC, I may be contacted | I am Antonio Pino Robles, and if selected I will be working on the project for about 6-8 hours a day (8:00-16:00 UTC+0), with the exception of the first two weeks when I will be taking my final exams. Therefore, mine will be a soft start. As for IRC, I may be contacted anytime during the day at AntonioPino in the #octave channel at freenode, via a mobile connection. That work plan shall not be altered, as I don't plan to travel this summer. | ||
On the other hand, I am a fluent English speaker, hold a Cambridge CAE certificate and have taken several university courses taught entirely in the English language. Besides, I am an avid reader, with a passion for the English literature. What I mean is that I do not expect any problem communicating with the mentors or organizers, either in a written fashion or orally. | On the other hand, I am a fluent English speaker, hold a Cambridge CAE certificate and have taken several university courses taught entirely in the English language. Besides, I am an avid reader, with a passion for the English literature. What I mean is that I do not expect any problem communicating with the mentors or organizers, either in a written fashion or orally. | ||
Line 260: | Line 226: | ||
On the other, more and more dynamical systems can be approximated by a Matrix differential equation, and to have efficient Matrix Function implementations in Gnu Octave will help any free software user (including myself) approach these systems. | On the other, more and more dynamical systems can be approximated by a Matrix differential equation, and to have efficient Matrix Function implementations in Gnu Octave will help any free software user (including myself) approach these systems. | ||
Finally, I have been writing m-scripts for two years now, to solve specific engineering problems, a strong python background. I order to | Finally, I have been writing m-scripts for two years now, to solve specific engineering problems, a strong python background. I order to fulfill it I will have to refresh my C++ knowledge by becoming familiar with the source tree, and get used to mercurial (hg), the version control system used to manage Gnu Octave. | ||
[0] N.J. Higham. A New sqrtm for MATLAB. Numerical Analysis Report No. 336, Manchester Centre for Computational Mathematics, Manchester, England, January 1999. | [0] N.J. Higham. A New sqrtm for MATLAB. Numerical Analysis Report No. 336, Manchester Centre for Computational Mathematics, Manchester, England, January 1999. |