My project focused on improving the state of the octave-pythonic package of Octave. Octave-Pythonic provides support to use/call Python functions, modules and classes from within Octave REPL. Octave-Pythonic aims to be MATLAB compatible. My goal for the project was to fix bugs, add in many of the missing features, support the latest version of Python and fix issues related to using Octave-Pythonic on Windows.
This is an account of all the tasks that I am finished with from the start of GSoC, or am working on at the moment.
This is an account of all the things I have done during the
community period and the 1st week of the Google Summer of
Code (GSoC) 2023. You can find more details about my GSoC
2023 project here.
Summary of what I am going to do during Google Summer of Code 2023. Information regarding my project and tentative timeline of the work I will be going.
I am learning how to solve differential equations, systems of differential equations, Fourier series and transforms, etc., in college. We are given practice questions from the college to solve, but only some of the practice questions had answers. So, how to verify if the answer I got is correct? In some cases, my friends got a different answer than me, so which one is correct? To find out if my answers were correct, I looked for solvers of differential equations and Fourier series and transforms. I came across sympy (https://www.sympy.org/en/index.html) a Python package used in mathematical computation and symbolic calculations. I had no idea that computers can differentiate functions without evaluating them, and can perform indefinite integrations. And the sad part is, computers are better at it than me. This fact angered me. I could not accept that a mindless/useless machine “a computer” is better than me in algebra and calculus. It can already do numerical calculations way faster then me, and now it is coming for my algebraic and calculus skills. That's when I decided to make my own symbolic calculator. If I can't perform the calculations or solve the equations faster than a computer let me at least learn how a computer does it itself.
Firstly let's start with the definition of a class?
According to Wikipedia class is defined as follows: In
object-oriented programming, a class is an extensible
program-code-template for creating objects, providing
initial values for state (member variables) and
implementations of behavior (member functions or methods).
In college we are taught that a class is a blueprint modelling some entity. A class can have data associated with it (attributes) and can perform some certain actions (methods). Instances are the entities created with classes or the blueprint.
How are cpp classes laid in memory?
Ever wondered about it! Every instance of a class should have its own separate space in memory to store attributes. Whereas all the instances of the same class can share the same class methods, and need not create multiple copies of it. All the class methods are stored in the code section of the compiled binary and attributes are created while the application is being run.