User:Alisha: Difference between revisions

From Octave
Jump to navigation Jump to search
 
(30 intermediate revisions by the same user not shown)
Line 12: Line 12:
'''Location''': Ludhiana, Punjab, India
'''Location''': Ludhiana, Punjab, India


'''Typical Working Hours''':-GMT+5.30, Typical working hours will be 11AM to 2AM on working days and full time on weekends. I can devote 40 - 50 hours per week and more if required. My graduation will end by the mid of May. I will be after that. I can spare ample time from my college timings for my project. My working hours for the internship will be flexible and subject to the requirements of the project.
'''Typical Working Hours''':-GMT+5.30, Typical working hours will be 11AM to 2AM on working days and full time on weekends. I can devote 40 - 50 hours per week and more if required. My graduation will end by the mid of May. I will be completely free after that. My working hours for the internship will be flexible and subject to the requirements of the project.


== About me ==
== About me ==
I am an undergraduate 4th year Computer Science student at Guru Nanak Dev Engineering College, Ludhiana. I have formidable learning in C++, PHP and MySQL. I have a strong affinity for Mathematics which keeps my inquisitiveness alive for learning more about numerical functions and their implementation through programming. I am also passionate for programming.
I am an undergraduate 4th year Computer Science student at Guru Nanak Dev Engineering College, Ludhiana. I have formidable learning in C++, PHP and MySQL. I have a strong affinity for Mathematics which keeps my inquisitiveness alive for learning more about numerical functions and their implementation through programming.


== Heard about this program ==
== Heard about this program ==
Line 24: Line 24:
==== Experience with GNU products ====
==== Experience with GNU products ====


As a user I have a quite good experience GNU Bison.
As a user I have a quite good experience with GNU Bison and can use make, gcc and gdb.


==== Experience with other FOSS projects ====
==== Experience with other FOSS projects ====


As a user I have experienced many FOSS projects like Linux, OpenScad, Flex and  Wiki.
As a user I have experienced many FOSS projects like Linux, OpenScad, Flex and  Mediawiki and other Wiki software.


== Previous projects ==
== Previous projects ==
Line 40: Line 40:


https://github.com/alishajain/Std-Flt-Converter
https://github.com/alishajain/Std-Flt-Converter
== Interested project ==
Because of my affinity for mathematics, I have my keen interest in 'Generalised_eigenvalue_problem' project [http://wiki.octave.org/Summer_of_Code_Project_Ideas#Generalised_eigenvalue_problem]. I want to explore myself more in the field of matrices.


== Project Details ==
== Project Details ==
=== Interested project ===
Because of my affinity for mathematics, I have my keen interest in [http://wiki.octave.org/Summer_of_Code_Project_Ideas#Generalised_eigenvalue_problem Generalised_eigenvalue_problem] project and would like to explore myself in the field of matrices.


=== Introduction to Project ===
=== Introduction to Project ===
This project deals with the file conversion of various file formats. The Translate extension has been developed for this purpose. The extension is made supportive for various file formats but the work for only specific format of the input files. The data is read from the input file and stored in the arrays (in the form of key-value pair for JSON file format) and then written in the output file following the file format specifications of the output file format.
This project deals with the [http://in.mathworks.com/help/matlab/ref/eig.html?searchHighlight=eig eig] function in GNU Octave, which calculates the eigenvalues and eigenvectors of a matrix.


=== Synopsis ===
=== Synopsis ===
This project will make the extension robust so that it can handle even the exceptional cases of the input file format. Moreover, a proper documentation will be maintained for the different file formats. I will be mainly focusing on AndroidXML, Qt ts and JSON file formats.
This project will implement missing calling forms of the eig function, which includes preliminary balancing, calculating left eigenvectors as a third ouput and choosing among the generalized eigenvalue algorithms.
 
=== Present state of project ===
After carrying out the scrutiny of present working code I found the following limitations:- Lack of proper documentations, unable to handle abnormal cases, only specific format of input file is translated, lack of robust programming and code is not secure.


=== Project partition ===
== Detail Project Timeline ==
Based on the different file formats I will be working on my project will be partioned in the following three parts:-
AndroidXML
QT ts
JSON


== Timeline - December 9, 2014 to March 9, 2015 ==


=== November 1 to December 9 ===
Community bonding period
* Setup the extension
* Communicate with the community members and get involved in it
* Work on a micro-task to get familiar with the extension
* Study the file format specifications
* Study the corner cases


=== December 10 to December 20 ===
    Getting familiar with the code
* Work on reading the AndroidXML file
    Interaction with mentors and the community members
* Examine the corner cases while reading the file


=== December 21 to December 31 ===
1st week (25th May - 30th May)
* Work on writing the AndroidXML file


=== January 1 to January 10 ===
    Designing the algorithm for calculation of left eigenvectors
* Testing on AndroidXML files for abnormalities
* Proceed with the decoding of the JSON files


=== January 11 to January 20 ===
2nd week (1st June - 7th June)
* Proceed with the decoding of the JSON files
* Robust the code


=== January 20 to January 31 ===
    Implementation of the algorithm
* Testing on JSON files for the accuracy
* Study on the specifications of QT ts file format


=== February 1 to February 10 ===
3rd week (8th June - 14th June)
* Work on reading the QT files
* Examine the exceptional cases while reading the file


=== February 11 to February 20 ===
    Implementation of calling form for calculating left eigenvectors as third output
* Work on writing the QT files
* Testing the code with aberrant cases of the file format


=== February 21 to february 28 ===
4th week (15th June - 21th June)
* Testing and enhancing the code
* Fixing all the bugs


=== March 1 to March 9 ===
    Studying Cholesky Factorisation algorithm and QR algorithm
* Documentation
* Mediawiki coding conventions


== Other Commitments ==
5th week (22nd June - 28th June)
Till mid of May, I would be having my final exams. But after that I would be completely free to devote all my time to GSoC. So I will be comfortably able to manage to fulfill my tasks within the specified time.


== Objective of joining GNU Octave ==
    Implementation of the calling form to choose among generalised algorithms
As I loved the very concept of open source development from the moment I learned about it, it would be a matter of honour for me to be a part of such a splendid crew. Also I have a firm belief that I will excel tremendously in my area of interest and nurture my skills by working ardently. GNU Octave being an paradigm of its field enticed me to work with it and learn manifold new things.


== Why me? ==
Mid-Term Evaluation
Being highly assiduous and fervent for my work I would love to contribute to the open source development since it is like a holy grail to me. I had been into coding environment from quite a time and I wish to apply my whole coding-impetus to a point. I have joined the octave-maintainers@gnu.org mailing list and #octave channel on IRC a few days ago and I am feeling good to interact there and I have already got some valuable suggestions. This is the real blessing for the young saplings in the garden of programming to grow in the guidance of the sublime mentors. I am so much self-obliged and excited to work with dexterous developers across the globe and be a part of the legacy.


== Contact ==
    Calling form of eig to calculate left eigenvectors as third output
* Please state the (unique and identical where possible) nick you use on IRC and any other communication channel related to Octave.
    Calling form for choosing among generalised eigenvalue algorithms


'''AsmaZLK'''
7th week (6th July - 12th July)


* Which time zone do you live in?
    Understanding the concept of balancing


''UTC+1 April-Oct''
8th week (13th July - 19th July)


* Please state the timeframe (in UTC+0) when you feel most comfortable working during GSoC. Where are your time buffers?
    Implementation of algorithm for balancing option


''As a rough guide, 1600 till late. But I am flexible. :)''
9th week (20th July - 26th July)


== Coding experience ==
    Implementation of calling form for preliminary balancing
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.


''Matlab. A lot. Throughout graduate and post graduate. Communications/Signal Processing/Optimization/Math.''
10th week ( 27th July - 2nd August)


''Octave. See [http://sourceforge.net/p/octave/optim/ci/62934b60c7505ce43caba6d517fd185ef04babc2/] and [https://github.com/AsmaAfzal/octave_workspace]''
    Writing test cases for these calling forms of eig function


* Please describe your experience with other programming languages.
11th and 12th week(3rd August - 16th August)


'' C/Verilog. AES encryption. ''
  Documentation for the code
  Reviewing the code
  Final touches to the code


* Please describe your experience with being in a development team.
== Other Commitments ==
Till mid of May, I would be having my final exams. But after that I would be completely free to devote all my time to GSoC. So I will be comfortably able to manage to fulfill my tasks within the specified time.


'' Undergraduate group assignments/final project. Involved Digital Design implementation in Verilog. ''
== Objective of joining GNU ==


* 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.
I have been using stupendous products of GNU organisation from the very starting point of my career in open source world. I have been a regular user of GNU Bison, gdb, gcc etc. GNU Octave being a project which touches my area of interest. So, it would be a great honor for me to be a part of such a cardinal community and ameliorate myself in the field of programming and mathematics.
'' AES Encryption implementation on Cypress Programmable System on Chip (PSoC) 3 [http://www.cypress.com/psoc3/?source=CY-ENG-HEADER] ''
'' The PSoC has a unique architecture and uses a combination of C/RTL blocks for implementing designs. ''
'' I was hired during my masters for implementing designs on the PSoC and publish how its architecture enhances implementations of designs. ''
'' See [http://www.embedded.com/design/safety-and-security/4417178/Enhancing-system-efficiency-of-embedded-encryption-applications-] and [http://www.embedded.com/design/prototyping-and-development/4422955/Building-an-efficient--intelligent--and-flexible-thermal-management-system] ''


'' This was mostly a solo task in terms of implementation. The actual documentation was collaborative. ''
== Why me? ==
 
* Please state the commits and patches you already contributed to Octave.
 
'' quadprog in Optim package [http://sourceforge.net/p/octave/optim/ci/62934b60c7505ce43caba6d517fd185ef04babc2/] ''
 
'' lsqlin in Optim package [http://sourceforge.net/p/octave/optim/ci/bb42d6e052a1ba0bd417110b54897e7229de01a3/] ''
 
== Feeling fine ==
* Please describe (in short) your experience with the following tools:
 
** IRC and mailing lists
 
'' Can use them. ''
 
** Mercurial or other source code management systems
 
'' Won't need help ''
 
** Mediawiki or other wiki software
 
'' Easy. ''
 
** make, gcc, gdb or other development tools
 
'' Will need to learn more for them. But might not need these. ''
 
* What will make you actively stay in our community after this GSoC is over?
 
''Being better positioned to practically contribute further to Octave.''
 
== Only out of interest ==
* Did you ever hear about Octave before?
 
''Sometimes as a MATLAB alternative.''
 
** If so, when and where? How far have you been involved already?
 
''Before GSoC. No.''
 
** If not, where would you expect or advise us to do advertising?
 
''MATLAB alternative is a big advertisement. Closer compatibility. ''
 
''Better windows installer is coming soon. That was a big barrier to entry.''
 
* What was the first question concerning Octave you could not find an answer to rather quickly?
''Difference between Octave and Octave Forge can be a bit confusing at first. Optim(forge)/Optimization(core). etc.''
 
== Prerequisites ==
* Please state the operating system you work with.
 
''Windows, Linux Mint.''
 
** If you have access to more than one, please state them and the conditions under which you are granted this access.
 
''Windows only in university lab. Windows/Linux at home.''
 
* Please estimate an average time per day you will be able to ''(if separated)'' access
** an internet connection
** a computer
** a computer with your progressing work on
 
''24/7''
 
* Please describe the degree up to which you can install new software on computers you have access to.
''Portable software on Windows in Lab. Admin rights on home PC/laptop.''
 
== Self-assessment ==
* Please describe how useful criticism looks from your point of view as committing student.
 
''I like feedback rather than silence. I prefer constructive criticism. :)''
 
* How autonomous are you when developing?
''After initial direction, I can be mostly autonomous.''
 
** 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?
 
''more on the code/see how it turns out.''
 
== Your task ==
* Did you select a task from our list of proposals and ideas?
 
''yes''
 
** If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information.
 
''http://wiki.octave.org/Summer_of_Code_Project_Ideas#Nonlinear_and_constrained_least_squares''
 
''http://octave.1599824.n4.nabble.com/GSoC-2015-Optimization-Package-Non-linear-and-constrained-least-squares-lsqcurvefit-lsqlin-lsqnonlin-tt4668777.html''
 
* Please provide a rough estimated timeline for your work on the task.
 
GSoC Application period
 
'' 'quadprog' wrapper around 'qp' ''
 
'' 'lsqlin' wrapper around 'qp' ''
 
Start of GSoC (May)
 
'' 'lsqnonlin' wrapper around 'nonlin_residmin' ''
 
'' 'lsqcurvefit' wrapper around 'nonlin_curvefit', 'nonlin_residmin', or 'lsqnonlin', ''
 
'' 'fmincon' wrapper around 'nonlin_min', ''
 
Midterm
 
instead of wrappers for top-level functions like qp. Call back-end function (__qp__) to be able to extract lambda.
 
See [http://octave.1599824.n4.nabble.com/GSoC-2015-Optimization-Package-Non-linear-and-constrained-least-squares-lsqcurvefit-lsqlin-lsqnonlin-tp4668777p4669284.html]


Stretch Goals
Because of my keen interest of contributing to the open source world and Octave being the most suitable community for me, I would like to put all sincere efforts to complete my project within the time period. I have joined octave-maintainers@gnu.org mailing list and #octave channel on IRC a few days ago and feeling great to interact with the community members and also I have got worthy feedback from them. Also, I have a good experience with C++ and mathematics always being one of my favorites, I think I am suitable according to the requirements of the project.
Implement another back-end algorithm/add variant.


[[Category: Summer of Code]]
[[Category: Summer of Code]]

Latest revision as of 14:14, 26 March 2015

Contact Information[edit]

Name: Alisha Jain

E-mail Address: jain.alisha14@gmail.com

IRC Handle: alisha

Blog: jainalisha14.wordpress.com

Github Account: https://github.com/alishajain

Location: Ludhiana, Punjab, India

Typical Working Hours:-GMT+5.30, Typical working hours will be 11AM to 2AM on working days and full time on weekends. I can devote 40 - 50 hours per week and more if required. My graduation will end by the mid of May. I will be completely free after that. My working hours for the internship will be flexible and subject to the requirements of the project.

About me[edit]

I am an undergraduate 4th year Computer Science student at Guru Nanak Dev Engineering College, Ludhiana. I have formidable learning in C++, PHP and MySQL. I have a strong affinity for Mathematics which keeps my inquisitiveness alive for learning more about numerical functions and their implementation through programming.

Heard about this program[edit]

I got to know about this program from the word of mouth from my friends who too were participants in GSOC 2014.

Experiences with FOSS projects[edit]

Experience with GNU products[edit]

As a user I have a quite good experience with GNU Bison and can use make, gcc and gdb.

Experience with other FOSS projects[edit]

As a user I have experienced many FOSS projects like Linux, OpenScad, Flex and Mediawiki and other Wiki software.

Previous projects[edit]

I have worked upon writing DXF files using C++. Below is the link to it:-

https://github.com/alishajain/dxfwentities

I have been also working on parser using Flex & Bison. You can check it here:-

https://github.com/alishajain/Xcad-Ecad-Converter

https://github.com/alishajain/Std-Flt-Converter

Project Details[edit]

Interested project[edit]

Because of my affinity for mathematics, I have my keen interest in Generalised_eigenvalue_problem project and would like to explore myself in the field of matrices.

Introduction to Project[edit]

This project deals with the eig function in GNU Octave, which calculates the eigenvalues and eigenvectors of a matrix.

Synopsis[edit]

This project will implement missing calling forms of the eig function, which includes preliminary balancing, calculating left eigenvectors as a third ouput and choosing among the generalized eigenvalue algorithms.

Detail Project Timeline[edit]

Community bonding period

   Getting familiar with the code
   Interaction with mentors and the community members

1st week (25th May - 30th May)

   Designing the algorithm for calculation of left eigenvectors

2nd week (1st June - 7th June)

   Implementation of the algorithm

3rd week (8th June - 14th June)

   Implementation of calling form for calculating left eigenvectors as third output

4th week (15th June - 21th June)

   Studying Cholesky Factorisation algorithm and QR algorithm

5th week (22nd June - 28th June)

   Implementation of the calling form to choose among generalised algorithms

Mid-Term Evaluation

   Calling form of eig to calculate left eigenvectors as third output
   Calling form for choosing among generalised eigenvalue algorithms 

7th week (6th July - 12th July)

   Understanding the concept of balancing

8th week (13th July - 19th July)

   Implementation of algorithm for balancing option

9th week (20th July - 26th July)

   Implementation of calling form for preliminary balancing

10th week ( 27th July - 2nd August)

   Writing test cases for these calling forms of eig function

11th and 12th week(3rd August - 16th August)

  Documentation for the code
  Reviewing the code
  Final touches to the code

Other Commitments[edit]

Till mid of May, I would be having my final exams. But after that I would be completely free to devote all my time to GSoC. So I will be comfortably able to manage to fulfill my tasks within the specified time.

Objective of joining GNU[edit]

I have been using stupendous products of GNU organisation from the very starting point of my career in open source world. I have been a regular user of GNU Bison, gdb, gcc etc. GNU Octave being a project which touches my area of interest. So, it would be a great honor for me to be a part of such a cardinal community and ameliorate myself in the field of programming and mathematics.

Why me?[edit]

Because of my keen interest of contributing to the open source world and Octave being the most suitable community for me, I would like to put all sincere efforts to complete my project within the time period. I have joined octave-maintainers@gnu.org mailing list and #octave channel on IRC a few days ago and feeling great to interact with the community members and also I have got worthy feedback from them. Also, I have a good experience with C++ and mathematics always being one of my favorites, I think I am suitable according to the requirements of the project.