source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/qtfm/@quaternion/sqrt.m @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

File size: 1005 bytes
Line 
1function Y = sqrt(X)
2% SQRT   Square root.
3% (Quaternion overloading of standard Matlab function.)
4
5% Copyright © 2005, 2006 Stephen J. Sangwine and Nicolas Le Bihan.
6% See the file : Copyright.m for further details.
7
8error(nargchk(1, 1, nargin)), error(nargoutchk(0, 1, nargout))
9
10if isreal(X)
11   
12    % X is a real quaternion, and we compute the square root of an
13    % isomorphic complex number using the standard Matlab square root
14    % function, then construct a quaternion with the same axis as the
15    % original quaternion.
16   
17    Y = isoquaternion(sqrt(isocomplex(X)), X);
18else
19   
20    % X is a complex quaternion, and therefore we cannot use the method
21    % above for real quaternions, because it is not possible to construct
22    % an isomorphic complex number. Therefore we use polar form and halve
23    % the argument. Note that the modulus and argument here are complex,
24    % so the square root of the modulus is complex.
25   
26    Y = sqrt(abs(X)) .* exp(axis(X) .* angle(X) ./ 2);
27end;
Note: See TracBrowser for help on using the repository browser.