Dynamic-Calibration/utils/YALMIP-master/modules/global/intvpower.m

40 lines
889 B
Matlab
Executable File

function C = intvpower(A,p)
if p>0
if nnz(rem(full(p),2))==0
if A(1)<0 & A(2)>0
C = [0 max([A(1)^p A(2)^p])];
else
a = A(1)^p;b = A(2)^p;
C = [min([a b]) max([a b])];
end
else
if isequal(-inf,A(1)) && isequal(inf,A(2))
C = A;
elseif p~=fix(p) & A(1)<0
C = [-inf inf];
else
a = A(1)^p;b = A(2)^p;
C = [a b];
end
end
else
if A(1)<0 && A(2)>0
% Nasty crossing
if even(p)
C = [min([A(1)^p A(2)^p]) inf];
else
C = [-inf inf];
end
elseif A(1)>= 0
% Decaying function
C = [A(2)^p (abs(A(1)))^p];
elseif even(p)
a = A(1)^p;b = A(2)^p;
C = [min([a b]) max([a b])];
else
a = A(1)^p;b = A(2)^p;
C = [b a];
end
end