add numeric M function