|
1 |
| -function eps=vos_g(z) |
| 1 | +function [out, outim]=vos_g(z, img_z) |
2 | 2 |
|
3 |
| - zplus1 = z + ones(size(z)); |
4 |
| - zminus1 = z - ones(size(z)); |
5 |
| - |
6 |
| - dummy1 = log( abs(zplus1) ./ abs(zminus1) ); |
7 |
| - dummy2 = angle(zplus1) - angle(zminus1); |
8 |
| - |
9 |
| - real_sq = (real(z)).^2; |
10 |
| - imag_sq = (imag(z)).^2; |
11 |
| - |
12 |
| - reim1 = bsxfun(@minus,1,real_sq - imag_sq); |
13 |
| - |
14 |
| - outreal_1 = real(z) + 0.5*bsxfun(@times,reim1,dummy1); |
15 |
| - outreal = outreal_1 + bsxfun(@times,bsxfun(@times,real(z),imag(z)),dummy2); |
| 3 | + if nargin < 2 |
| 4 | + reZ = real(z); |
| 5 | + imgZ = imag(z); |
| 6 | + else |
| 7 | + reZ = z; |
| 8 | + imgZ = img_z; |
| 9 | + end |
| 10 | + |
| 11 | + zplus1 = z + 1; |
| 12 | + zminus1 = z - 1; |
16 | 13 |
|
17 |
| - outimag_1 = imag(z) + 0.5*bsxfun(@times,reim1,dummy2); |
18 |
| - outimag = outimag_1 - bsxfun(@times,bsxfun(@times,real(z),imag(z)),dummy1); |
| 14 | + if any(any(imgZ ~= 0)) |
| 15 | + imgZ2 = imgZ.*imgZ; |
| 16 | + % dummy1 = log( abs(zplus1) ./ abs(zminus1) ); |
| 17 | + dummy1 = log( sqrt((zplus1.*zplus1+imgZ2) ./ (zminus1.*zminus1+imgZ2)) ); |
| 18 | + % dummy2 = angle(zplus1) - angle(zminus1); |
| 19 | + dummy2 = atan2(imgZ, zplus1) - atan2(imgZ, zminus1); |
| 20 | + |
| 21 | + reim1 = 1 - (reZ.^2 - imgZ2); |
| 22 | + |
| 23 | + outreal_1 = reZ + 0.5*reim1.*dummy1; |
| 24 | + outreal = outreal_1 + reZ.*imgZ.*dummy2; |
| 25 | + |
| 26 | + outimag_1 = imgZ + 0.5*reim1.*dummy2; |
| 27 | + outimag = outimag_1 - reZ.*imgZ.*dummy1; |
| 28 | + else |
| 29 | +% imgZ2 = imgZ.*imgZ; |
| 30 | + dummy1 = log( abs(zplus1) ./ abs(zminus1) ); |
| 31 | + % dummy2 = angle(zplus1) - angle(zminus1); |
| 32 | + dummy2 = atan2(0, zplus1) - atan2(0, zminus1); |
| 33 | + |
| 34 | + reim1 = 1 - reZ.^2; |
| 35 | + |
| 36 | + outreal_1 = reZ + 0.5*reim1.*dummy1; |
| 37 | + outreal = outreal_1;%; + reZ.*imgZ.*dummy2; |
| 38 | + |
| 39 | + outimag_1 = 0.5*reim1.*dummy2;% + imgZ |
| 40 | + outimag = outimag_1;% - reZ.*imgZ.*dummy1; |
| 41 | + end |
19 | 42 |
|
20 | 43 | % outreal = real(z) + 0.5* (1.0 - (real(z)*real(z) - imag(z)*imag(z))) *dummy1 + real(z)*imag(z)*dummy2;
|
21 |
| -% outimag = imag(z) + 0.5*(1.0 - (real(z)*real(z) - imag(z)*imag(z)))*dummy2 - real(z)*imag(z)*dummy1; |
| 44 | +% outimag = imag(z) + 0.5* (1.0 - (real(z)*real(z) - imag(z)*imag(z))) *dummy2 - real(z)*imag(z)*dummy1; |
22 | 45 |
|
23 |
| - eps=complex(outreal,outimag); |
| 46 | + if nargout == 1 |
| 47 | + out = complex(outreal,outimag); |
| 48 | + else |
| 49 | + out = outreal; |
| 50 | + outim = outimag; |
| 51 | + end |
24 | 52 | end
|
0 commit comments