Check range for power function
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Life is Wonderful
el 14 de Sept. de 2021
Comentada: Life is Wonderful
el 16 de Sept. de 2021
I am looking for a unit test vectors which checks the range of input values for power function so that I can implement equivalent of C type in fix point
A = fi([1:2^5/32:2^5],0,32); % A > 0, so it starting with lowest positive fraction value
B = fi([-2:1e-2:2],1,32);
% C = power(A,B) % seeking help here for C type power implementation but
% gettting error
% % Error using fixed.internal.power.validateK (line 13)
% % Exponent input to 'power' must be a real scalar and the value must be a non-negative integer.
% %
% % Error in fixed.internal.power.powImpl>validateInputs (line 39)
% % fixed.internal.power.validateK(k);
% %
% % Error in fixed.internal.power.powImpl (line 9)
% % validateInputs(a, k);
% %
% % Error in .^ (line 32)
% % y = fixed.internal.power.powImpl(a, k);
figure(100);
A = [1:32];
B = [-2:2];
hold on; grid on;
plot(power(A(1),B(1:end)),'r-.');
plot(power(A(2),B(1:end)),'g-.');
plot(power(A(3),B(1:end)),'b-.');
plot(power(A(4),B(1:end)),'m-.');
%.
%.
%.
%.
plot(power(A(32),B(1:end)),'k-.','linewidth', 2.0);
0 comentarios
Respuestas (1)
Walter Roberson
el 14 de Sept. de 2021
When you use fi, the power must be a positive integer scalar.
Also, log(A) does not appear to be supported so you cannot use the usual exp(log(A) .* B)
You will need to implement your own fractional power, perhaps using a CORDIC method.
3 comentarios
Life is Wonderful
el 14 de Sept. de 2021
Editada: Life is Wonderful
el 14 de Sept. de 2021
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!