General > General Technical Chat
Raising a number to a non-integer power.
SiliconWizard:
--- Quote from: Nominal Animal on May 28, 2020, 03:25:48 am ---Actually, the form ab = 2b log2 a is useful, as it is something a computer can do in binary directly, and quite efficiently for base-2 floating point numbers. Details.
--- End quote ---
Yep!
Generally speaking, even for integer exponentiation, a binary algorithm is much more efficient than a simple linear algorithm (multiplying the number by itself b times.)
Nominal Animal:
For those interested, the binary integer algorithm calculates ab for integer b>0 with at most 2 log2 b multiplications. In pseudocode,
--- Code: ---Function ipow(a, b):
Let result = 1
While b > 0:
If b is odd:
result = result × a
b = (b - 1) / 2
Else
b = b / 2
End If
a = a × a
End While
Return result
End Function
--- End code ---
For negative b, you do 1/ipow(a,-b) or ipow(1/a, -b). b=0 is mathematically ambiguous case, and usually handled separately.
Programming languages with integer division (dropping the fractional part, or rounding toward zero, or binary shift right by one bit), just do b = b / 2 in both branches of the If clause.
The one extra squaring of a is avoided in practice by moving the end-of-loop test to just after halving b.
RoGeorge:
Op asks what is the intuitive representation of raising a number to a fractional power, gets answers about best numerical algorithms. ::)
Software devs are the best example for the saying "When you have a hammer, everything looks like a nail". Not sure if this is their biggest flaw or their biggest power. And, if that's a power indeed, is it a non-integer one? ;D
magic:
--- Quote from: RoGeorge on May 29, 2020, 05:37:32 am ---Software devs are the best example for the saying "When you have a hammer, everything looks like a nail". Not sure if this is their biggest flaw or their biggest power.
--- End quote ---
Look at the software available today, compare with the software available 15 years ago, take a wild guess ::)
aneevuser:
--- Quote from: magic on May 28, 2020, 12:57:38 pm ---
Fair enough, off the top of my head I can't provide a simple algebraic argument why complex exponents should be defined the way they are. That doesn't necessarily mean no such argument exists. I don't know what reasoning originally led to the Euler identity and things like that - perhaps the Taylor series, maybe something more direct and straightforward.
--- End quote ---
You might want to take a look at the first chapter (and others) of "Visual Complex Analysis" by Needham, which gives a couple of suggestive geometric/algebraic arguments for the validity of Euler's formula.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version