From: <par...@us...> - 2011-12-30 16:42:56
|
Revision: 9492 http://octave.svn.sourceforge.net/octave/?rev=9492&view=rev Author: paramaniac Date: 2011-12-30 16:42:50 +0000 (Fri, 30 Dec 2011) Log Message: ----------- quaternion_oo: activate multiple subscripts. requires indexing with empty subscript structs and therefore octave versions >= 3.5.90 to avoid coredumps Modified Paths: -------------- trunk/octave-forge/extra/quaternion_oo/DESCRIPTION trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/subsasgn.m trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/subsref.m Modified: trunk/octave-forge/extra/quaternion_oo/DESCRIPTION =================================================================== --- trunk/octave-forge/extra/quaternion_oo/DESCRIPTION 2011-12-30 14:09:30 UTC (rev 9491) +++ trunk/octave-forge/extra/quaternion_oo/DESCRIPTION 2011-12-30 16:42:50 UTC (rev 9492) @@ -1,11 +1,11 @@ Name: quaternion -Version: 1.9.50 -Date: 2011-12-01 +Version: 1.9.51 +Date: 2011-12-30 Author: Lukas Reichlin <luk...@gm...> Maintainer: Lukas Reichlin <luk...@gm...> Title: Quaternion Description: Overloaded operators for quaternions -Depends: octave (>= 3.2.3) +Depends: octave (>= 3.5.90) Autoload: yes License: GPL version 3 or later Url: http://octave.sf.net Modified: trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/subsasgn.m =================================================================== --- trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/subsasgn.m 2011-12-30 14:09:30 UTC (rev 9491) +++ trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/subsasgn.m 2011-12-30 16:42:50 UTC (rev 9492) @@ -19,7 +19,7 @@ ## Author: Lukas Reichlin <luk...@gm...> ## Created: November 2011 -## Version: 0.1 +## Version: 0.2 function q = subsasgn (q, idx, val) @@ -40,23 +40,18 @@ if (! is_real_array (val)) error ("quaternion: subsasgn: invalid type"); endif - if (! size_equal (q.w, val)) - ## if (! size_equal (subsref (q.w, idx(2:end)), val)) + if (! size_equal (subsref (q.w, idx(2:end)), val)) error ("quaternion: subsasgn: invalid size"); endif switch (tolower (idx(1).subs)) case {"w", "s"} - ## q.w = subsasgn (q.w, idx(2:end), val); - q.w = val; + q.w = subsasgn (q.w, idx(2:end), val); case {"x", "i"} - ## q.x = subsasgn (q.x, idx(2:end), val); - q.x = val; + q.x = subsasgn (q.x, idx(2:end), val); case {"y", "j"} - ## q.y = subsasgn (q.y, idx(2:end), val); - q.y = val; + q.y = subsasgn (q.y, idx(2:end), val); case {"z", "k"} - ## q.z = subsasgn (q.z, idx(2:end), val); - q.z = val; + q.z = subsasgn (q.z, idx(2:end), val); otherwise error ("quaternion: subsasgn: invalid subscript name"); endswitch @@ -65,8 +60,4 @@ error ("quaternion: subsasgn: under construction"); endswitch - ## TODO: q.x(:, 1) = matrix - ## wait until the jwe's bugfix makes it into a release - ## probably Octave 3.6.0 - endfunction Modified: trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/subsref.m =================================================================== --- trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/subsref.m 2011-12-30 14:09:30 UTC (rev 9491) +++ trunk/octave-forge/extra/quaternion_oo/inst/@quaternion/subsref.m 2011-12-30 16:42:50 UTC (rev 9492) @@ -18,35 +18,24 @@ ## Author: Lukas Reichlin <luk...@gm...> ## Created: May 2010 -## Version: 0.2 +## Version: 0.3 function ret = subsref (q, s) - ## FIXME: With the code commented out, stuff like q.w(1:2, :) works, - ## but now simple things like q.w crash octave: - ## panic: impossible state reached in file `ov-base-mat.cc' at line 60 - - ## TODO: File bug report - switch (s(1).type) case "." # q.w switch (tolower (s(1).subs)) case {"w", "s"} # scalar part - ## ret = subsref (q.w, s(2:end)); - ret = q.w; + ret = subsref (q.w, s(2:end)); case {"x", "i"} - ## ret = subsref (q.x, s(2:end)); - ret = q.x; + ret = subsref (q.x, s(2:end)); case {"y", "j"} - ## ret = subsref (q.y, s(2:end)); - ret = q.y; + ret = subsref (q.y, s(2:end)); case {"z", "k"} - ## ret = subsref (q.z, s(2:end)); - ret = q.z; + ret = subsref (q.z, s(2:end)); case "v" # vector part, scalar part set to zero - q.w = zeros (size (q.w), class (q.w)); - ## ret = subsref (q, s(2:end)); - ret = q; + q.w = zeros (size (q.w)); + ret = subsref (q, s(2:end)); otherwise error ("quaternion: invalid subscript name"); endswitch This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |