Quantcast

GSoC 2017- Symbolic Package

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

GSoC 2017- Symbolic Package

NVS Abhilash
Hello,

I am NVS Abhilash, and I am interested in completing the Symbolic Package project[1] for GSoC 2017.
I have already contributed something to OctSympy[2].
I just need some directions so that I can prepare for the project, in the context of GSoC.

I need to know:
1. Can I do a mini-project, which will help me understand more about the communication between Octsympy and Pytave? If so, can someone suggest me one?
2. I have a basic knowledge of C++, Octave, and Python. But I don't have any mastery of these. Can anyone give me a rough idea about what all higher concepts are needed as prerequisites for this project?

Thanks,
NVS

[1]: http://wiki.octave.org/Summer_of_Code_Project_Ideas#Symbolic_package
[2]: https://github.com/cbm755/octsympy/commits/master?author=nvs-abhilash
NVS Abhilash
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017- Symbolic Package

Colin Macdonald-2
On 01/03/17 02:46, NVS Abhilash wrote:

> I am NVS Abhilash, and I am interested in completing the Symbolic Package
> project[1] for GSoC 2017.
> I have already contributed something to OctSympy[2].
> I just need some directions so that I can prepare for the project, in the
> context of GSoC.
>
> I need to know:
> 1. Can I do a mini-project, which will help me understand more about the
> communication between Octsympy and Pytave? If so, can someone suggest me
> one?
> 2. I have a basic knowledge of C++, Octave, and Python. But I don't have any
> mastery of these. Can anyone give me a rough idea about what all higher
> concepts are needed as prerequisites for this project?

Thanks for your contributions so far!

1.  First step: get Octave, Pytave and Symbolic all working together.
Report any problems.  If this isn't straightforward, document it
somewhere like the Octave wiki.

2.  Well, same here :-/

You might try to play with this a bit:
https://github.com/cbm755/octsympy/pull/590

There are also various class-related problems we're hitting in Octave
itself like https://savannah.gnu.org/bugs/?49169.  Looking at Octave
source may address your 2nd question.

Colin



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017- Symbolic Package

Abhinav Tripathi
In reply to this post by NVS Abhilash

On Wed, Mar 1, 2017 at 4:16 PM, NVS Abhilash <[hidden email]> wrote:
Hello,


Hi. .
 
I am NVS Abhilash, and I am interested in completing the Symbolic Package
project[1] for GSoC 2017.
I have already contributed something to OctSympy[2].
I just need some directions so that I can prepare for the project, in the
context of GSoC.

I did GSoC 2016 with Octave Symbolic project. So, I'll just put some of my views on how you can better approach this project.
 

I need to know:
1. Can I do a mini-project, which will help me understand more about the
communication between Octsympy and Pytave? If so, can someone suggest me
one?

You can look at the pytave codebase and try to understand the inner workings. It would probably be best if you look at the Python C API and then try to see which parts in the code that currently use Boost be replaced by Python API calls. As far as I know, Mike wants to remove all the Boost dependency from pytave and may be inclined to help you on this.
Nevertheless, if you can update even 1 function definition and submit a PR, you will have a good learning experience about the API calls used for communication.
 
2. I have a basic knowledge of C++, Octave, and Python. But I don't have any
mastery of these. Can anyone give me a rough idea about what all higher
concepts are needed as prerequisites for this project?

Well, if you have basic idea about all 3 then you, if selected, can obviously learn everything that's required on the way. Not much higher level constructs are used in the code and it is fairly understandable (in my opinion).


Don't get scared if whatever I wrote looks much to do at first. I am just trying to point at something that can be done. You can always look at the issues on github (for symbolic) and bitbucket (for pytave) to tackle some problems and get to know more about the codebase.
.
Good Luck for GSoC!
Abhinav

 

Thanks,
NVS

[1]: http://wiki.octave.org/Summer_of_Code_Project_Ideas#Symbolic_package
[2]: https://github.com/cbm755/octsympy/commits/master?author=nvs-abhilash




-----
NVS Abhilash
--
View this message in context: http://octave.1599824.n4.nabble.com/GSoC-2017-Symbolic-Package-tp4682073.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017- Symbolic Package

Mike Miller-4
In reply to this post by NVS Abhilash
On Wed, Mar 01, 2017 at 02:46:12 -0800, NVS Abhilash wrote:
> Hello,
>
> I am NVS Abhilash, and I am interested in completing the Symbolic Package
> project[1] for GSoC 2017.
> I have already contributed something to OctSympy[2].
> I just need some directions so that I can prepare for the project, in the
> context of GSoC.

Sounds good.

Can I ask about your earlier interest in the logm/funm project? Did you
explore that option at all, look at work that has been done so far, or
talk to potential mentors on that project?

What led you to change your focus from what seemed like your strong
interest in the logm/funm project to the symbolic project?

Have you spent any more time developing the categorical array functions
or working on some example scripts demonstrating how the categorical
type works and why it would be beneficial to be included in Octave?

> I need to know:
> 1. Can I do a mini-project, which will help me understand more about the
> communication between Octsympy and Pytave? If so, can someone suggest me
> one?
> 2. I have a basic knowledge of C++, Octave, and Python. But I don't have any
> mastery of these. Can anyone give me a rough idea about what all higher
> concepts are needed as prerequisites for this project?

An interesting idea might be to make a new datatype in Octave that is
based on pytave's pyobject. This could be similar to the @sym data type
in octsympy, or could be a completely new type, like an XML parser or a
redis interface or something, just as an exploration of the types of
concepts useful for this project.

--
mike

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017- Symbolic Package

NVS Abhilash
Mike Miller-4 wrote
Can I ask about your earlier interest in the logm/funm project? Did you
explore that option at all, look at work that has been done so far, or
talk to potential mentors on that project?

What led you to change your focus from what seemed like your strong
interest in the logm/funm project to the symbolic project?
Well, I tried reaching out. But maybe I was not welcomed because of my bad way of communicating with the potential mentor.
Maybe I was too eager and might have sounded fake. So, I really wanted to contribute something to Octave, then I checked other potential projects and then I read Symbolic Project, which was more active projects. I have no complaints here, It's just that my priority changed.

Mike Miller-4 wrote
 
Have you spent any more time developing the categorical array functions
or working on some example scripts demonstrating how the categorical
type works and why it would be beneficial to be included in Octave?
Well, not really. Maybe I was too fast, to skip the details. The reason I paused working on categorical arrays, is because my implementation was not serving one of the important purposes of categorical arrays. I was implementing categorical arrays with cell arrays.

But as shown in this article
http://in.mathworks.com/help/matlab/matlab_prog/advantages-of-using-categorical-arrays.html

Categorical arrays take very less space as compared to cell arrays for same data. Which was not happening in my implementation. So I have to write the whole code with some other data structure I guess. But I am still interested in this project. And will think to continue the development of it.
 
Mike Miller-4 wrote
An interesting idea might be to make a new datatype in Octave that is
based on pytave's pyobject. This could be similar to the @sym data type
in octsympy, or could be a completely new type, like an XML parser or a
redis interface or something, just as an exploration of the types of
concepts useful for this project.
Thanks for the suggestion. Will try to work on it.

Thank you, Mike your feedback has been always helpful :)
--
NVS
NVS Abhilash
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017- Symbolic Package

NVS Abhilash
In reply to this post by Colin Macdonald-2
Colin Macdonald-2 wrote
1.  First step: get Octave, Pytave and Symbolic all working together.
Report any problems.  If this isn't straightforward, document it
somewhere like the Octave wiki.
Thanks Colin for your advice. I am trying to do that but I am not sure, how Octsympy is using pytave. I know this was the work Abhinav did and might be an obvious thing. But still, I feel I am a newbie, can you or Abhinav direct me somewhere or explain how Pytave is used for IPC in Octsympy.

I am getting this weird doubt because I have not installed Pytave yet. But I can still run Octsympy.
My guess is that it is still using old way of communication. Is it something to do with `pyexec = sympref ('python')` ?

I might be completely getting it wrong. Can you help me understand how the pieces fit together / getting the bigger picture?
A small direction to the right source file where I should look will also do the job. :)

Maybe Octsympy needs an extensive developer documentation (For long run :D).
NVS Abhilash
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017- Symbolic Package

Abhinav Tripathi


On Mar 9, 2017 8:10 AM, "NVS Abhilash" <[hidden email]> wrote:
>
> Colin Macdonald-2 wrote
> > 1.  First step: get Octave, Pytave and Symbolic all working together.
> > Report any problems.  If this isn't straightforward, document it
> > somewhere like the Octave wiki.
>
> Thanks Colin for your advice. I am trying to do that but I am not sure, how
> Octsympy is using pytave. I know this was the work Abhinav did and might be
> an obvious thing. But still, I feel I am a newbie, can you or Abhinav direct
> me somewhere or explain how Pytave is used for IPC in Octsympy.
>

Pytave is just one of the options to use for IPC. You will have to first build pytave from source. Then open octave. Add pytave's directory in path. Now if you call any symbolic function, pytave will be used. We just check if pytave's functions are in scope then pytave is used else some other IPC is used.
One more thing that currently pytave can only be built on linux.

Regards,
Abhinav

> I am getting this weird doubt because I have not installed Pytave yet. But I
> can still run Octsympy.
> My guess is that it is still using old way of communication. Is it something
> to do with `pyexec = sympref ('python')` ?
>
> I might be completely getting it wrong. Can you help me understand how the
> pieces fit together / getting the bigger picture?
> A small direction to the right source file where I should look will also do
> the job. :)
>
> Maybe Octsympy needs an extensive developer documentation (For long run :D).
>
>
>
> -----
> NVS Abhilash
> --
> View this message in context: http://octave.1599824.n4.nabble.com/GSoC-2017-Symbolic-Package-tp4682073p4682235.html
> Sent from the Octave - Maintainers mailing list archive at Nabble.com.
>

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017- Symbolic Package

Colin Macdonald-2
On 08/03/17 07:58 PM, Abhinav Tripathi wrote:
> Pytave is just one of the options to use for IPC. You will have to first
> build pytave from source. Then open octave. Add pytave's directory in
> path. Now if you call any symbolic function, pytave will be used. We
> just check if pytave's functions are in scope then pytave is used else
> some other IPC is used.
> One more thing that currently pytave can only be built on linux.

That's right.  Also, we may have disabled it by default (just before the
last release).  I think you have to do something like "syspref ipc native".

Colin

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017- Symbolic Package

NVS Abhilash
Hi all,
Sorry for late reply, (academic preoccupation).
So, I have successfully integrated Octave, Pytave and Symbolic Package.

This is how I did it (I have Ubuntu 16.10, 64-bit Machine):

1. Installed Octave
2. In the terminal: "git clone https://github.com/cbm755/octsympy.git"
3. In the terminal: "hg clone https://bitbucket.org/mtmiller/pytave"
4. Installed dependencies for pytave (I did not had boost.python, So I installed it)
5. In pytave folder did as documented in INSTALL.md.
6. Then I added $PYTHON_HOME = path/to/pytave
7. And I move to octsympy/inst/
8. Run `octave --path="$PYTAVE_HOME"`
9. Then I did `sympref ipc native`.

I hope these are the steps to do that.

Then just out of curiosity, I ran `octsympy_tests` to see if all working fine.
But I got this:

Summary:

  PASS      1978
  FAIL        56
  XFAIL       30
  TIME      509s (466s CPU)

Is it expected (56 FAILED)?


NVS Abhilash
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017- Symbolic Package

NVS Abhilash
In reply to this post by Colin Macdonald-2
Hi again,

I also need some clear idea about the GSoC project and what all is expected for the project to be completed in summer.
I spent some time understanding the codebase of both Octsympy and Pytave (Not completely, just some bits and pieces).

Like the wiki says "expose the *full functionality* of SymPy". Can you give some more examples (other than in the wiki) about what it actually means?

Also, what are all the benefits of making @sym a child class of @pyobject ?

I know these could be obvious, but it can be helpful to bring more clarity to the scope of the project.

Also, if I want to start making @sym a child of @pyobject, can you direct me to a starting point?

Thanks,
NVS
NVS Abhilash
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: GSoC 2017- Symbolic Package

NVS Abhilash
In reply to this post by Colin Macdonald-2
Hey Colin, Mike, and Abhinav,

I have drafted a rough project plan. This is what I think should be the plan.

http://wiki.octave.org/User:Nvs-abhilash#Y:_Your_task

I want to know is this what you exactly have in mind or I am going is some wrong directions?
Please, can you take a look at the application and suggest changes if needed or give feedback.

Public application: http://wiki.octave.org/User:Nvs-abhilash

I have also submitted the private application, please suggest any changes there if you can.

Really appreciate all your support.
Thanks,
NVS
NVS Abhilash
Loading...