POWER

From MCS Wiki AVR
Revision as of 22:11, 11 February 2013 by Admin (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Action

Returns the power of a single or double variable and its argument

 

 

Syntax

var = POWER( source, raise )

 

 

Remarks

Var

A numeric variable that is assigned with the power of variable source ^ raise.

Source

The single or double variable to get the power of.

 

The POWER function works for positive floating point variables only.

When you use a ^ b , the sign will be preserved.

 

While Excel does not allow raising a negative single, QB does allow it.

The Power functions uses less code compared with the code that is generated when you use ^ for floating point values.

It is important that you use single variables for both single and raise. Constants are not accepted.

 

In version 1.11.9.2 the power function is improved so that it returns the same result as Excel. Previously it returned the same number as QB/VB. For example : -2 ^ 2 would be returned as -4, but -2 ^ 3 would be returned as -8 which is wring since -2 ^ 3 = -2 x -2 x -2=4 x -2 = -8. Minus times a minutes makes a positive number. So it depends on the sign of the base and if the number of raise if even or odd.

 

The exception handling was also improved.

Base

Raise

Result

0

0

NAN

NAN

x

NAN

x

NAN

NAN

Infinity

x

NAN

x

Infinity

NAN

0

x<0

Infinity

0

x>0

0

x

0

1

x<0

x<>int(x)

NAN

 

 

 

See Also

EXP ,LOGLOG10 , SQR

 

 

Example

Show sample

 

 

Example for Double Exceptions


$regfile = "m128def.dat"
$crystal = 4000000
 
 
Dim D1 As Double , D2 As Double , D3 As Double
Dim dInf as Double, dNAN as Double
 
d1 = -1: dNAN = log(d1)
d1 = 1: d2 = 0: dInf = D1 / D2
 
Print "POWER() - Test"
Print "=============="
 
D1 = 0: D2 = 0: GoSub ShowPowerTest
 
D1 = dNAN: D2 = 3: GoSub ShowPowerTest
 
D1 = 3: D2 = dNAN: GoSub ShowPowerTest
 
D1 = dInf: D2 = 4: GoSub ShowPowerTest
 
D1 = 4: D2 = dInf: GoSub ShowPowerTest
 
D1 = 0: D2 = -2: GoSub ShowPowerTest
 
D1 = 0: D2 = 3: GoSub ShowPowerTest
 
D1 = 5: D2 = 0: GoSub ShowPowerTest
 
D1 = -2: D2 = -3.5: GoSub ShowPowerTest
 
D1 = -2: D2 = 3.5: GoSub ShowPowerTest
 
D1 = -2: D2 = -3: GoSub ShowPowerTest
 
D1 = -2: D2 = -4: GoSub ShowPowerTest
 
D1 = -2: D2 = -5: GoSub ShowPowerTest
 
D1 = -2: D2 = 3: GoSub ShowPowerTest
 
D1 = -2: D2 = 4: GoSub ShowPowerTest
 
D1 = -2: D2 = 5: GoSub ShowPowerTest
 
 
end
 
 
ShowPowerTest:
 
D3 = POWER(D1, D2)
 
Print "POWER( " ; D1 ; " , " ; D2 ; ") = " ; D3
 
Return
 
 
--------------------------Simulator Output -------------------
POWER() - Test
 
==============
 
POWER( 0 , 0) = NAN
 
POWER( NAN , 3) = NAN
 
POWER( 3 , NAN) = NAN
 
POWER( Infinity , 4) = NAN
 
POWER( 4 , Infinity) = NAN
 
POWER( 0 , -2) = Infinity
 
POWER( 0 , 3) = 0
 
POWER( 5 , 0) = 1
 
POWER( -2 , -3.5) = NAN
 
POWER( -2 , 3.5) = NAN
 
POWER( -2 , -3) = -125E-3
 
POWER( -2 , -4) = 62.5E-3
 
POWER( -2 , -5) = -31.25E-3
 
POWER( -2 , 3) = -8
 
POWER( -2 , 4) = 16
 
POWER( -2 , 5) = -32

Languages   English Deutsch  
Personal tools
Namespaces
Variants
Actions
Navigation
In other languages
Language