add sma.cpp and tma.cpp