changeset 3093:020f7e3d7aa0 octave-forge

Support single band by not allowing grid density as the 4th parameter.
author pkienzle
date Fri, 09 Feb 2007 03:42:57 +0000
parents fb433de39444
children 84a0fafae187
files main/signal/src/remez.cc
diffstat 1 files changed, 7 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/main/signal/src/remez.cc	Thu Feb 08 21:12:17 2007 +0000
+++ b/main/signal/src/remez.cc	Fri Feb 09 03:42:57 2007 +0000
@@ -817,7 +817,9 @@
   OCTAVE_LOCAL_BUFFER (double, weight, numbands);
   for (i=0; i < numbands; i++) weight[i] = 1.0;
   if (nargin > 3) {
-    if (args(3).is_real_matrix()) {
+    if (args(3).is_string())
+      stype = args(3).string_value();
+    else if (args(3).is_real_matrix() || args(3).is_real_scalar()) {
       ColumnVector o_weight(args(3).vector_value());
       if (o_weight.length() != numbands) {
 	error("remez: need one weight for each band [=length(band)/2]");
@@ -825,10 +827,6 @@
       }
       for (i=0; i < numbands; i++) weight[i] = o_weight(i);
     }
-    else if (args(3).is_string())
-      stype = args(3).string_value();
-    else if (args(3).is_real_scalar())
-      density = NINT(args(3).double_value());
     else {
       error("remez: incorrect argument list");
       return retval;
@@ -837,7 +835,7 @@
   if (nargin > 4) {
     if (args(4).is_string() && !args(3).is_string())
       stype = args(4).string_value();
-    else if (args(4).is_real_scalar() && !args(3).is_real_scalar())
+    else if (args(4).is_real_scalar())
       density = NINT(args(4).double_value());
     else {
       error("remez: incorrect argument list");
@@ -845,10 +843,9 @@
     }
   }
   if (nargin > 5) {
-    if (args(5).is_real_scalar() 
-	&& !args(4).is_real_scalar() 
-	&& !args(3).is_real_scalar())
-      density = NINT(args(4).double_value());
+    if (args(5).is_real_scalar()
+	&& !args(4).is_real_scalar())
+      density = NINT(args(5).double_value());
     else {
       error("remez: incorrect argument list");
       return retval;