Long Way Back

Around one year ago, I was a completely different runner than I am today. My cross country season ended in shambles with a stress fracture–I was unable to run even a single mile.

Read More

Final Stretch (Week 6)

I concluded my final week by adding a final large feature, doing lots of refactoring/documentation, and presenting it all at the lab meeting!

Read More

Me and Paul vs. CMake (Week 5)

I am back to working in WhiskerToolbox. Having knowledge on dynamic linking and app bundling on MacOS became very useful, as it turned out the target audience for this app was mainly Mac users.

Read More

Tongue Tracking (Week 3)

This was a short week since the 4th and 5th were both holidays (I went on a whale watch!), followed immediately by the weekend. I mainly focused on a single thing during this week.

Read More

A Whisker Toolbox (Week 2)

After the first week I had pretty much settled into Cambridge. After becoming more familiar with the lab’s work. I began doing more complicated tasks.

Read More

Cache Locality Optimization

There is the problem: “Given an array $a$ of length $n$ where, $1\leq a_i\leq 10^9$ and $1\leq n\leq 10^5$, count the ordered pairs $(i, j)$ such that $i<j$ and $a_i\& a_j = 0$ where $\&$ denotes the bitwise AND operation.”

Read More

SQRT Decomposition On Queries

You can use SQRT Decomposition On Queries to solve range query problems with some kind of update operation. It is not as well documented as two popular algorithm SQRT based algorithms (Mo’s Algorithm, SQRT Decomposition).

Read More

Easier Binary Search

Everyone knows the traditional binary search algorithm using $l$ and $r$ pointers. However to new CPers it is especially easy to make a bounds mistake. When I can’t use lower_bound or the like I implement a different method of binary searching. It is similar to the binary lifting technique for trees.

Read More