split cpml.h to cpml.h and cpml.hpp to separate definition and implementation