mail[task #7801] Design interface between the user and the functional code is to perform comprehensive checks of input


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Troels E. Linnet on May 22, 2014 - 11:05:
URL:
  <http://gna.org/task/?7801>

                 Summary: Design interface between the user and the functional
code is to perform comprehensive checks of input
                 Project: relax
            Submitted by: tlinnet
            Submitted on: Thu 22 May 2014 09:05:46 AM UTC
         Should Start On: Thu 22 May 2014 12:00:00 AM UTC
   Should be Finished on: Thu 22 May 2014 12:00:00 AM UTC
                Category: relax's source code
                Priority: 5 - Normal
                  Status: None
        Percent Complete: 0%
             Assigned to: tlinnet
             Open/Closed: Open
         Discussion Lock: Any
                  Effort: 0.00

    _______________________________________________________

Details:

The target_functions.relax_disp and lib.dispersion code make
assumptions as to how the data they receive will look like.  If this
is violated, then it will be random how different code paths fail.  

This happens if data is missing for a spin.
If one is setting metadata for spectral 
information from two field strengths, but only loading data from one.

In the numeric models, we use a special matrix_exponential() function
 calls numpy.linalg.eig().  The eig()
function is where the can occur.  This function is not used in
the analytic models, so the same failure cannot be observed.

The best approach in designing the interface between the user and the
functional code is to perform comprehensive checks of what the user
has supplied.  If things are missing or incorrect, raising a
RelaxError is the best way to give feedback to the user.  Then we make
sure that we package the data up for sending to the target functions
only when all required data is supplied.  Then the target functions
will always receive the data in the correct format.  So the idea is to
block this code path - the optimisation - until everything is as we
expect. Therefore we can add checks as users encounter and report problems.

--- 
This is related to bug:
bug #22065 (https://gna.org/bugs/?22065) Systemtest
Relax_disp.test_hansen_cpmg_data_missing_auto_analysis has tcp array with
multiple nan

bug #22017 (https://gna.org/bugs/index.php?22017) LinAlgError, for all
numerical CPMG models.









    _______________________________________________________

Reply to this item at:

  <http://gna.org/task/?7801>

_______________________________________________
  Message sent via/by Gna!
  http://gna.org/




Related Messages


Powered by MHonArc, Updated Thu May 22 14:40:14 2014