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

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

[Octave-bug-tracker] [bug #61340] [octave forge] (splines) csaps 'noncon


From: Nicholas Jankowski
Subject: [Octave-bug-tracker] [bug #61340] [octave forge] (splines) csaps 'nonconformant argument' errors from unhandled inputs expected for matlab compatibility.
Date: Fri, 15 Oct 2021 12:50:02 -0400 (EDT)
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36

Update of bug #61340 (project octave):

                Severity:              3 - Normal => 2 - Minor              
              Item Group: Unexpected Error or Warning => Matlab Compatibility 
 
                  Status:                    None => Confirmed              
                 Summary: [octave forge] (splines) csaps produces
nonconformant arguments error for valid input => [octave forge] (splines)
csaps 'nonconformant argument' errors  from unhandled inputs expected for
matlab compatibility.

    _______________________________________________________

Follow-up Comment #2:

the comment #0 code fails on line 108, which is:


u = (6*(1-p)*QT*diag(1 ./ w)*QT' + p*R) \ (QT*y);

 whos p QT w R y
Variables visible from the current scope:

   Attr Name        Size                     Bytes  Class
   ==== ====        ====                     =====  =====
    f   p           1x21                       168  double
        QT         19x21                      1088  double
    f   w          21x1                        168  double
        R          19x19                      1040  double
    f   y          21x1                        168  double


the QT*diag(1./w)*QT' part is fine, but then the (1-p)*ans part produces

error: operator *: nonconformant arguments (op1 is 1x21, op2 is 19x19)

looking at this, i realize it expects p to be a constant to set the smoothing
parameter. Octave's implementation does not accept other types of this
parameter.  from the matlab help:

"p — Smoothing parameter
scalar in the range [0,1] | vector | cell array | empty array

Smoothing parameter, specified as a scalar value between 0 and 1 or as a cell
array of values for multivariate data. You can also specify values for the
roughness measure weights λ by providing p as a vector. To provide roughness
measure weights for multivariate data, use a cell array of vectors. If you
provide an empty array, the function chooses a default value for p based on
the data sites x and the default value of 1 for the roughness measure weight
λ."


ok, so that at least narrows down these errors as being related to csaps not
accepting the full range of input types now supported by Matlab's csaps. The
lack of input type checking allows the inputs to propagate through and create
the nonconformant arguments error messages 

Retitling to better capture the issue, changed the category.

recommended short fix:  improve usability by adding input type checks and more
useful error messages

recommended long fix:  implement the missing matlab compatible input handling
options.





    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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