Mercurial > forge
changeset 8922:a0db8e48d873 octave-forge
quaternion_oo: disable features introduced with last commit because it can crash octave. filing a bug report against octave wouldn't be a bad idea.
author | paramaniac |
---|---|
date | Tue, 15 Nov 2011 16:30:17 +0000 |
parents | 663f26d8f892 |
children | ba575291987f |
files | extra/quaternion_oo/inst/@quaternion/subsref.m |
diffstat | 1 files changed, 16 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/extra/quaternion_oo/inst/@quaternion/subsref.m Tue Nov 15 16:22:40 2011 +0000 +++ b/extra/quaternion_oo/inst/@quaternion/subsref.m Tue Nov 15 16:30:17 2011 +0000 @@ -22,20 +22,31 @@ 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 = subsref (q.w, s(2:end)); + ret = q.w; case {"x", "i"} - ret = subsref (q.x, s(2:end)); + ## ret = subsref (q.x, s(2:end)); + ret = q.x; case {"y", "j"} - ret = subsref (q.y, s(2:end)); + ## ret = subsref (q.y, s(2:end)); + ret = q.y; case {"z", "k"} - ret = subsref (q.z, s(2:end)); + ## ret = subsref (q.z, s(2:end)); + ret = q.z; 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 = subsref (q, s(2:end)); + ret = q; otherwise error ("quaternion: invalid subscript name"); endswitch