function C = intvpower(A,p)
if p>0
    if nnz(rem(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
