Need a quick and dirty way to exponentiate integers? Or perhaps you are working on a number library of your own. This will work in all cases.
templateTYPE power(TYPE x, TYPE y) { if (y == 0) { // Identity return 1; } else if (y > 0) { // if (y % 2) { // Odd return x * power(x * x, y / 2); } else { // Even return power(x * x, y / 2); } } else { // Not Implemented return 0; }} // TYPE power(TYPE,TYPE)