changeset 1950:ab6abe89aaa1

[project @ 1996-02-14 04:36:21 by jwe]
author jwe
date Wed, 14 Feb 1996 04:38:44 +0000
parents 4689b52b4c6f
children db375ab88640
files liboctave/CMatrix.cc liboctave/dMatrix.cc
diffstat 2 files changed, 31 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/CMatrix.cc
+++ b/liboctave/CMatrix.cc
@@ -3685,16 +3685,23 @@
 
   double scale;
   int info;
+
+  Complex *pa = sch_a.fortran_vec ();
+  Complex *pb = sch_b.fortran_vec ();
+  Complex *px = cx.fortran_vec ();
   
-  F77_FCN (ztrsyl, ZTRSYL) ("N", "N", 1, a_nr, b_nr,
-			    sch_a.fortran_vec (), a_nr,
-			    sch_b.fortran_vec (), b_nr,
-			    cx.fortran_vec (), a_nr, scale,
-			    info, 1L, 1L);
-
-  // XXX FIXME XXX -- check info?
-
-  retval = -ua * cx * ub.hermitian ();
+  F77_XFCN (ztrsyl, ZTRSYL, ("N", "N", 1, a_nr, b_nr, pa, a_nr, pb,
+			     b_nr, px, a_nr, scale,
+			     info, 1L, 1L));
+
+  if (f77_exception_encountered)
+    (*current_liboctave_error_handler) ("unrecoverable error in ztrsyl");
+  else
+    {
+      // XXX FIXME XXX -- check info?
+
+      retval = -ua * cx * ub.hermitian ();
+    }
 
   return retval;
 }
--- a/liboctave/dMatrix.cc
+++ b/liboctave/dMatrix.cc
@@ -2664,16 +2664,22 @@
   double scale;
   int info;
 
-  F77_FCN (dtrsyl, DTRSYL) ("N", "N", 1, a_nr, b_nr,
-			    sch_a.fortran_vec (), a_nr, 
-			    sch_b.fortran_vec (), b_nr,
-			    cx.fortran_vec (), a_nr, scale,
-			    info, 1L, 1L);
-
-
-  // XXX FIXME XXX -- check info?
+  double *pa = sch_a.fortran_vec ();
+  double *pb = sch_b.fortran_vec ();
+  double *px = cx.fortran_vec ();
+
+  F77_XFCN (dtrsyl, DTRSYL, ("N", "N", 1, a_nr, b_nr, pa, a_nr, pb,
+			     b_nr, px, a_nr, scale, info, 1L, 1L));
+
+
+  if (f77_exception_encountered)
+    (*current_liboctave_error_handler) ("unrecoverable error in dtrsyl");
+  else
+    {
+      // XXX FIXME XXX -- check info?
   
-  retval = -ua*cx*ub.transpose ();
+      retval = -ua*cx*ub.transpose ();
+    }
 
   return retval;
 }