--- number_org.vala	2014-02-23 01:19:09.316250000 +0530
+++ number.vala	2014-02-23 13:29:44.531359000 +0530
@@ -30,7 +30,7 @@
 /* Size of the multiple precision values */
 private const int SIZE = 1000;
 
-/* Base for numbers */
+/* Base for  public Number xpowy (Number y) public Number xpowy (Number y)numbers */
 private const int BASE = 10000;
 
 //2E0 BELOW ENSURES AT LEAST ONE GUARD DIGIT
@@ -910,14 +910,6 @@ public class Number
             return new Number.integer (0);
         }
 
-        /* 0^0 is indeterminate */
-        if (is_zero () && n == 0)
-        {
-            /* Translators: Error displayed when attempted to raise 0 to power of zero */
-            mperr (_("Zero raised to zero is undefined"));
-            return new Number.integer (0);
-        }
-
         /* x^0 = 1 */
         if (n == 0)
             return new Number.integer (1);
@@ -942,10 +934,10 @@ public class Number
         var z = new Number.integer (1);
         while (n != 0)
         {
-            if (n % 2 == 1)
+            if ((n&1) == 1)
                 z = z.multiply (t);
             t = t.multiply (t);
-            n = n / 2;
+            n>>=1;
         }
         return z;
     }
