const func float: fltIPow (in var float: base, in var integer: exponent) is func result var float: power is 1.0; local var integer: stop is 0; begin if base = 0.0 then if exponent < 0 then power := Infinity; elsif exponent > 0 then power := 0.0; end if; else if exponent < 0 then stop := -1; end if; if odd(exponent) then power := base; end if; exponent >>:= 1; while exponent <> stop do base *:= base; if odd(exponent) then power *:= base; end if; exponent >>:= 1; end while; if stop = -1 then power := 1.0 / power; end if; end if; end func;