Author: Chen, Tse-yuan.