octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #60786] mpower: negative scalar to power of ma


From: A.R. Burgers
Subject: [Octave-bug-tracker] [bug #60786] mpower: negative scalar to power of matrix containing non-integers returns nan
Date: Sun, 20 Jun 2021 16:36:08 -0400 (EDT)
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 Edg/91.0.864.41

Follow-up Comment #3, bug #60786 (project octave):

The float-float version must be changed accordingly


diff -r c75127492941 libinterp/corefcn/xpow.cc
--- a/libinterp/corefcn/xpow.cc Fri Jun 18 08:26:54 2021 +0200
+++ b/libinterp/corefcn/xpow.cc Sun Jun 20 22:25:20 2021 +0200
@@ -124,7 +124,7 @@

   if (nr != nc)
     err_nonsquare_matrix ();
-
+  std::complex<double> pow_arg(a, 0);
   try
     {
       EIG b_eig (b);
@@ -136,9 +136,9 @@
         {
           Complex elt = lambda(i);
           if (std::imag (elt) == 0.0)
-            lambda(i) = std::pow (a, std::real (elt));
+            lambda(i) = std::pow (pow_arg, std::real (elt));
           else
-            lambda(i) = std::pow (a, elt);
+            lambda(i) = std::pow (pow_arg, elt);
         }
       ComplexDiagMatrix D (lambda);

@@ -1558,10 +1558,13 @@
   if (nr != nc)
     err_nonsquare_matrix ();

-  FloatEIG b_eig (b);
+  std::complex<float> pow_arg(a, 0);

   try
     {
+
+      FloatEIG b_eig (b);
+
       FloatComplexColumnVector lambda (b_eig.eigenvalues ());
       FloatComplexMatrix Q (b_eig.right_eigenvectors ());

@@ -1569,9 +1572,9 @@
         {
           FloatComplex elt = lambda(i);
           if (std::imag (elt) == 0.0)
-            lambda(i) = std::pow (a, std::real (elt));
+            lambda(i) = std::pow (pow_arg, std::real (elt));
           else
-            lambda(i) = std::pow (a, elt);
+            lambda(i) = std::pow (pow_arg, elt);
         }
       FloatComplexDiagMatrix D (lambda);


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?60786>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]