use function pointer instead of macro to implement log,cos...
this will makes object and executable file smaller