User:Antonio Pino: Difference between revisions
Antonio Pino (talk | contribs) |
Antonio Pino (talk | contribs) |
||
Line 71: | Line 71: | ||
== Y: Your task == | == Y: Your task == | ||
* Did you select a task from our list of proposals and ideas? | * Did you select a task from our list of proposals and ideas? | ||
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] at the University of Manchester. At this point in time, in Octave there are the following implementations: the [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/scripts/linear-algebra/expm.m expm] function is implemented using Padé approximant, [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/scripts/linear-algebra/expm.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 | 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] at the University of Manchester. At this point in time, in Octave there are the following implementations: the [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/scripts/linear-algebra/expm.m expm] function is implemented using Padé approximant, [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/scripts/linear-algebra/expm.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 is [http://sourceforge.net/p/octave/linear-algebra/ci/default/tree/inst/funm.m funm] implemented using diagonalization, and there are [http://sourceforge.net/p/octave/linear-algebra/ci/default/tree/inst/thfm.m trigonometric and hyperbolic matrix functions] as well (done by calling expm and logm). | ||
Line 77: | Line 77: | ||
* Please provide a rough estimated timeline for your work on the task. ''This should include the GSoC midterms and personal commitments like exams or vacation ("non-coding time"). Optionally include two or three milestones you expect.'' | * Please provide a rough estimated timeline for your work on the task. ''This should include the GSoC midterms and personal commitments like exams or vacation ("non-coding time"). Optionally include two or three milestones you expect.'' | ||
[1] N.J. Higham. | [1] N.J. Higham. A New sqrtm for MATLAB. Numerical Analysis Report No. 336, Manchester Centre for Computational Mathematics, Manchester, England, January 1999. | ||
[[Category: Summer of Code]] | [[Category: Summer of Code]] |
Revision as of 11:58, 25 March 2015
Public application template
A: An introduction
- Please describe yourself in three sentences, one of them regarding your current studies.
I am Antonio Pino Robles and I am currently an undergratuate student at the University of the Basque Country, in the Basque Country (Northern Spain). I have always enjoyed literature and math, things I like to do when I enjoy the heavy rain pouring in my hometown.
- Which languages do you speak?
My mouthertounges (I honestly cannot remember which was first) are Basque and Spanish. I also speak fluent English, working Italian, and French.
- What's your overall background?
As an ungergrad I am following a programme that leads me to a major in Electronic Engineering and a minor in Physics, that means that I have expirience in subjects such as Control Theory, Signal Analysis on one side, and Quantum Physics and Thermodynamics on the other; all with a strong mathematical background.
- Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?
I hope to learn how programming is done outside of the sandboxed problems I have done until now (at Uni) while contributing to free software. Besides, I have been following the FSF for a long time, and a free software user for longer, so this can be a way of giving back.
- Why are you choosing Octave?
Last year, I took two courses the relied heavily on the matrix exponential (Control Theory and Non-linear dynamics) to solve systems (or approximate them) by
Needless to say, they tried to push Matlab to all the students, and I got by with Gnu-Octave, for which I am thankful to the whole developer team.
C: Contact
- Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave.
While at IRC my nickname will be AntonioPino, and I am readily available by email at data.script93 <at> gmail.com
- Which time zone do you live in? Will that change over GSoC duration?
In Spain we are at UTC-1 (summer UTC-2), although there have been talk to change to the British (UTC-0, summer model, I am not aware of any changes taking place soon nor do I plan to travel outside UTC-2 this summer.
- 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.
E: Coding experience
This part is one of the more important ones in your application. You are allowed to be as verbose as you want, as long as you stay on topic ;-)
- Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.
I have been writing m-scripts for two years now, to solve specific engineering problems, 100-200 lines long on average. Appart from that, I have a basic level of C++ (not wih the octave api) and I have not used OpenGL nor Qt before.
- Please describe your experience with other programming languages.
A big part of the programming done at Uni has been done in Python: from the basic algortithm courses to symbolic problem solving with sympy. It has also been the tool of choice for a little klugde here and there. On the other hand, I have used VHDL for building and testing a discrete signal filter. And c to do a little systems and microcontroller programming.
- Please describe your experience with being in a development team.
If selected this will be my first experience as a free software developer.
- 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, a job mainly done 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.
- Please state the commits and patches you already contributed to Octave.
F: Feeling fine
- Please describe (in short) your experience with the following tools: We only use this question to determine where you need guidance, not for rating! We by no means expect you to be familiar with all of these and you'll won't necessarily need them while working with us.
- IRC and mailing lists
In spite of not having much experience with relay chat, I have been following several mailing lists in the free software world (fsf, fsfe, octave).
- Mercurial or other source code management systems
Basic usage of git and hg only (just in order to clone-update-build).
- make, gcc, gdb or other development tools
My experience with these is limited, having used GCC, make and autotools to build free software packages.
- What will make you actively stay in our community after this GSoC is over?
If I stick to my discipline, I will be using numerics for a long time, and octave will be one of my main tools.
O: Only out of interest
- Did you ever hear about Octave before?
I have been using octave for a long time now, in veying courses such as Linear Algebra, Control Theory, Quantum Physics
- What was the first question concerning Octave you could not find an answer to rather quickly?
Finding a way to systematically test a functions was not very easy. I also missed a guide on the differences with Matlab (specially syntax), which should be crucial as Matlab is sadly more promoted than Octave in Universities and people dicover the latter when looking for an alternative to the former, just like me.
P: Prerequisites
- Please state the operating system you work with.
I have access as root to two laptops running Debian Gnu-Linux and Ubuntu. During the day I have access to both of them with a reasonably working internet connection for at least 6-8 hours. This means that I don't expect any problem to follow the schedule.
S: Self-assessment
- Please describe how useful criticism looks from your point of view as committing student.
Let me put it this way: I would rather be told straight away that something isn't working than end up in a misunderstanding, even if they need to be a little rude with me.
- How autonomous are you when developing? If you answer both subquestions with "Yes, definitely", we are a tad confused. ;-)
- Do you like to discuss changes intensively and not start coding until you know what you want to do?
- Do you like to code a proof of concept to 'see how it turns out', modifying that and taking the risk of having work thrown away if it doesn't match what the project or original proponent had in mind?
'see how it turn out' is usualy my approach to a problem, although I never start doing it completely blindly, and I like to make the goal clear, if not completely, before starting.
Y: Your task
- Did you select a task from our list of proposals and ideas?
The project I intend to do is Improve logm, sqrtm, funm; its aim is to improve the existing implementations of Matrix Functions in octave based on the algorithms developed by a team lead by Prof. Higham at the University of Manchester. At this point in time, in Octave there are the following implementations: the expm function is implemented using Padé approximant, logm uses a Schur-Parlett algorithm, and sqrtm using a variant of the algorithm in A New sqrtm for MATLAB[1]. On the other hand, in Octave-Forge there is funm implemented using diagonalization, and there are trigonometric and hyperbolic matrix functions as well (done by calling expm and logm).
- Please provide a rough estimated timeline for your work on the task. This should include the GSoC midterms and personal commitments like exams or vacation ("non-coding time"). Optionally include two or three milestones you expect.
[1] N.J. Higham. A New sqrtm for MATLAB. Numerical Analysis Report No. 336, Manchester Centre for Computational Mathematics, Manchester, England, January 1999.