23 lines
681 B
Text
23 lines
681 B
Text
declare exp generic
|
|
(iexp when (fixed, fixed),
|
|
fexp when (float, fixed) );
|
|
iexp: procedure (m, n) returns (fixed binary (31));
|
|
declare (m, n) fixed binary (31) nonassignable;
|
|
declare exp fixed binary (31) initial (m), i fixed binary;
|
|
if m = 0 & n = 0 then signal error;
|
|
if n = 0 then return (1);
|
|
do i = 2 to n;
|
|
exp = exp * m;
|
|
end;
|
|
return (exp);
|
|
end iexp;
|
|
fexp: procedure (a, n) returns (float (15));
|
|
declare (a float, n fixed binary (31)) nonassignable;
|
|
declare exp float initial (a), i fixed binary;
|
|
if a = 0 & n = 0 then signal error;
|
|
if n = 0 then return (1);
|
|
do i = 2 to n;
|
|
exp = exp * a;
|
|
end;
|
|
return (exp);
|
|
end fexp;
|