ArithmeticValue.st
changeset 21935 93150e33d131
parent 21879 66122e220e92
child 21940 4720e68ae2b4
--- a/ArithmeticValue.st	Sat Jul 01 21:36:54 2017 +0200
+++ b/ArithmeticValue.st	Sun Jul 02 00:45:22 2017 +0200
@@ -1202,6 +1202,33 @@
     "Created: 17.4.1996 / 12:34:00 / cg"
 !
 
+raisedFromFloat:aFloat
+    "aFloat does not know how to be raised to the receiver"
+
+    self isNumber ifTrue:[
+        self isFloat ifFalse:[
+            ^ self asFloat raisedFromFloat:aFloat
+        ].
+    ].
+    ^ self raisedFromNumber:aFloat
+
+    "Created: / 01-07-2017 / 21:18:54 / cg"
+    "Modified: / 02-07-2017 / 00:44:47 / cg"
+!
+
+raisedFromNumber:aNumber
+    "aNumber does not know how to be raised to the receiver"
+
+    ^ self class
+        raise:#domainErrorSignal
+        receiver:aNumber
+        selector:#raisedTo:
+        arguments:(Array with:self)
+        errorString:'bad receiver/arg in raisedTo:'
+
+    "Created: / 01-07-2017 / 21:17:06 / cg"
+!
+
 remainderFromFloat:aFloat
     "aFloat does not know how to compute the remainder with the receiver -
      retry the operation by coercing to higher generality"
@@ -1386,10 +1413,21 @@
 !
 
 raisedTo: aNumber
+    "return the receiver raised to aNumber (i.e. self ^ aNumber)"
+
     aNumber isInteger ifTrue:[
-	^ self raisedToInteger:aNumber
+        ^ self raisedToInteger:aNumber
     ].
     ^ self subclassResponsibility
+
+    "
+     2 raisedTo:16
+     2.0 raisedTo:16
+
+     3 raisedTo:4
+    "
+
+    "Modified (format): / 01-07-2017 / 20:59:35 / cg"
 !
 
 raisedToInteger:exp