Author: Chen, Shou-liang.