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:…

GSoC Week 02 - The One With Function Range (Part I)

This week I worked on developing methods for computing the range of an univariate function. For this pupose, I spent most of my time in research; reading previous discussions on mailing lists, pull requests and wikis. Progress Suppose, we want to solve the following equation in the variable x: sin(…

GSoC Week 01 - The One with Intersections

$ git log PR #11149 : Intersection of null Range and an Interval returns EmptySet PR #11164 : Intersection of certain ImageSets with Intervals In the next week, I will try to design a method to determine the range of a function in the given domain. This will require some digging up and…