For some Context

There are a lot of good resources about using context packages in software based on your programming language. However, I found that most of these do not address the basic questions of motivation behind the need of context: How does the use of context help us in programming? When should…

Typing in Python, Go and JavaScript

Disclaimer: This post has been written from the point-of-view of a software developer rather than a theoretical computer science. So I "ask for forgiveness" if the post seems too colloquial and pragmatic. Reading through the articles on programming languages, you are bound to stumble upon statements similar to…

Duck Typing in Python

What is Duck Typing? Python is a dynamic language which is strongly typed. Dynamic binding is the capability to use an instance without regard for its type. It is handled entirely through a simple attribute lookup process. Whenever an attribute is accessed as object.attribute: attribute is located by searching…

How Iterables Actually Work in Python

This past week I read about Python's iterator protocol and how the philosophy of iteration is deeply embedded into the language design. Many features that I love about Python such as list comprehensions, tuple unpacking leverage the power of iterator protocol. I wrote an article on Medium explaining how developers…

GSoC Week 10 & 11 - The One with `solvify`

FiniteSet | list ImageSet, | list (if `f` is periodic) Union | EmptySet | empty list Others | None Adding domain support. I added a domain argument to isolve whose default value is the real domain (domain=S.Reals). A few limitation to the conditions of S.Infinity and S.NegativeInfinity followed. Another noticable point,…

GSoC Week 09 - The One with Inequalities

This week I worked on solving trigonometric inequalities. Trigonometric inequalities The primary univariate inequality solver - solve_univariate_inequality, depends upon the results of solve in order to solve the given inequality. Taking a cue from PR#10022 on incorporating solveset for inequalities, I worked on developing an approach for…

GSoC Week 06 - The One with Singularities

This week I worked on the topic of singularities. Singularities A singularity is in general a point at which a given mathematical object is not defined. Examples: 1/x has a singularity at x = 0 as it seems to reach infinity. |x| (Absolute) has a singularity at x = 0 since…

GSoC Weeks 04 & 05 - The One with Periodicity

Hi folks ! The past couple of weeks were spent of developing heuristics for determining the fundamental period of a given trigonometric function. In our higher school, we all must have come across Trigonometric Functions. One of the most striking properties of these functions is their periodicty. The ability of a…

GSoC Week 03 - The One With Function Range (Part II)

Hey ! This week I worked on implementing a method for finding the range of a function in a given domain. Following from last weeek's research on the same, I tried to develop these utility functions. Implementation Here, I have defined the two functions along with some of their implementation details:…