Tips

How to calculate A * B mod N, where numbers are 64 bit integers

I made a program to calculate ‘A * B mod N’, where A, B and N are 64 bit integers.

Main problem is to avoid overflow when calculate ‘A * B’.

I searched a while and finally decided to use the interleaved modular multiplication method, which is used in the feild of electric circuit design.

I found some bugs when I tested corner cases, so I have to fix them [2018.9.2]. I think I’ve fixed them [2018.9.3]. I’ve just improved it! [2018.9.5]

The program is shown below:


Blind-Deblurring System

At the end of 2014, I was shocked at the progress of blind deblurring algorithm, so I studied the recent researches in this field.

I read many papers and made a system based on this paper: “Blind deconvolution using alternating maximum a posteriori estimation with heavy-tailed priors”.


Customized Statistics Views in PostgreSQL

I always use my customized statistics views shown below because the original ones provide only minimum information.

I show my tools in this post.


CentOS with GNOME desktop on Vagrant

I made a CentOS vagrant box which contains GNOME desktop environment, so I will show how to use and to make it.


How to relocate tablespace directory

I’ll demonstrate how to relocate a tablespace directory without the reconstruction of databases.