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