Excuse my ignorance (and allow me to play Devil's Advocate, if I can make sense)
I don't quite understand your problem or your request, you say "Math for Abs() and Round()"; but, what exactly do you call math? I mean, you are using basic math operators, alright, but you are also using %...so, what's wrong with using abs()? What if programmers had used the single non-alphabetic character "|" to express the unary "operator" absolute value of a number, |x ? would you be looking for a mathematical expression for it, too, then? Or would you be content with it?
Have you looked into how abs() is typically implemented, in the first place?
Is it done mathematically? I presume not, otherwise you wouldn't be asking?
So, who is to say that every mathematical function can be expressed mathematically, whatever that means?
I mean, it is not like every function is simply a short hand or abbreviation for some purely mathematical expression. is it?
By the way, what exactly you are planning of implementing again? As mention before, your expressions may not evaluate well under certain conditions...how about working with integers? what are you going to do with the result from ^0.5 ? How are you going to know that you need to return an integer? and are you going to round up or down? what's the result? 1.9999? 2.00001?
Another "by the way", have you tried defining your own abs() function? I once had Fortran function called pow() (it is not an intrinsic in Fortran) just to realized that is was somehow over writting the 'behind-the-scenes' C-function pow() that apparently was being used to implement Fortran's exponentiation operation '**'
What I am trying to say, in the previous paragraph, is that you may find that you can simply put your own functions in front of the intrinsic ones and you are done. Is this not good enough? does it not accomplish what you want?
Anyway, just asking questions as I feel the problem was not fully constraint in my opinion.
gsal