%-------------------------- % @Author: Jingqiao Hu % @Date: 2020-10-30 19:13:57 % @LastEditors: Jingqiao Hu % @LastEditTime: 2020-11-10 21:01:00 %-------------------------- % fast_version function P = PK1_fast(u, l, F) Fdet = F(1, :).*F(4, :) - F(2, :).*F(3, :); % if sum(Fdet<0)>0 % 2333; % end JJ = log(Fdet); Finv = F([4,2,3,1], :) .* [1;-1;-1; 1] ./ Fdet; FinvT = Finv([1,3,2,4], :); P = u(:)' .* (F - FinvT) + l(:)' .* JJ .* FinvT; end