add more numeric functions to Num protocolg