This is more of a note for myself. Over time, I've learned some useful fact about ROOT that I now wish I have known when I started using ROOT. Hopefully as a ROOT user, you could also find some of these helpful. Tell ROOT to not show the startup banner You do: user@somepc:~$ root -l... Continue Reading →
Hacking code generated from ONNC Cortex-M backend to run on Cortex-A
Brute force software porting time again. This time I'm tasked to port some C generated from ONNC's Cortex-M backend to run on a Cortex A class processor. Sounds like a bad idea? It totally is! But I need that for research purposes - to add support for our academic AI accelerator - and writing and... Continue Reading →
SAS vs ROOT. Roasting SAS and comparing to ROOT
Recently, guys from the department of Finance asked on the school's discussion group for someone to help them in a data analysis contest (Hosted by SAS). What can go wrong? I have heard good things about SAS since I'm 10. My mother's company uses SAS extensively. In the worst case we can write ML algorithms... Continue Reading →
Why you should build your WebApp on C++
There's a lot of NDA involved, so expect me to gloss through details. My recent work involves writing a custom search engine for a client. It have to search through millions of records in a very short time according to a custom heuristic. Then sort and send the results back to the client. By boss... Continue Reading →
Exploratory Data Analysis on a large dataset using ROOT.
Having been messing with the physicists' toy for a while. And not being a Python fan for Python's easiness to write dirty code. I find ROOT to be a fascinating tool. Allowing almost perfect scaling and can be written in a way to use basically no memory. I'll be putting ROOT to do real work,... Continue Reading →
Real time plotting in C++ using ROOT
Sometime you just need to plot stuff as time progresses. Maybe you need to plot some statistics of your software, or visualize in realtime. But there's not much option. matplotlib is too slow for realtime, plplot's C/C++ interface is not maintained, QCustomPlot requires you to have a working Qt window and has a horrible API,... Continue Reading →
How fast is cling/ROOT? Comparing C++ JIT to real compilers on a ray tracer.
I have been in loved with ROOT - CERN's Data Analysis framework and it's interactive C++ shell. But how fast is the code JITed by ROOT? I have find myself compiling ROOT scripts (aka. ACLiC, basically clang) more then I run them in the interpreter. So, let's find that out today. Further more, how fast... Continue Reading →
Sparse Neural Network pt2 – Boosting. An additional layer of regularization.
It has been while since I touched upon the topic of Sparse Neural Networks. Let's finally get to the second part. Please make sure that you have read my last post about KWinner and sparse NNs. Otherwise you'll be confused. Boosting Boosting is the method which HTM uses to avoid common features in the input... Continue Reading →
Data science/analysis with C++ using CERN ROOT and xtensor.
My recent work have been dealing with tremendous amount of data and computing that Python simply turns out to be too slow and not scaling well. C++ to the rescue again. Setting up environment Setting on ROOT is quite easy on my Arch Linux box. sudo pacman -S root And we need something that replaces... Continue Reading →
Sparse Neural Networks pt.1 kwinner – The new line of defense against noise? with implementation in tiny-dnn!
Numenta has just released a new paper strengthening the noise resistant for neural networks. Purposing that a sparse network is more robust against noise than current one. Well, Let's try it out and implement a portion of the paper our self - in tiny-dnn! Implementing the layer The idea is simple. Given a input, select... Continue Reading →