mailRe: [bug #22065] Systemtest Relax_disp.test_hansen_cpmg_data_missing_auto_analysis has tcp array with multiple nan


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

Header


Content

Posted by Troels Emtekær Linnet on May 21, 2014 - 19:47:
Hi Ed.

I will check it.

I did the implementation in commit 23246 and 23268.

Best
Troels

2014-05-21 19:33 GMT+02:00 Edward d'Auvergne <edward@xxxxxxxxxxxxx>:
Hi,

You should try the following.  When the number is less than 1e-307,
print out all the parameters of the model.  What do you see?  Or print
out all arguments input into the function.  It might be possible to
catch this on line 1 instead.

Regards,

Edward



On 21 May 2014 19:24, Troels Emtekær Linnet <tlinnet@xxxxxxxxxxxxx> wrote:
Hi Ed.

The trunk code says:
    t113 = t97_nt99 - t112
    t115 = num_cpmg
    t116 = power(0.5*(t97_t99 + t112), t115)

I have tried to catch the underflow of t116, the power function.
This is when a number is represented as less than 1.e-307 (something).

import numpy as np
print np.finfo('d')
Machine parameters for float64
---------------------------------------------------------------------
precision= 15   resolution= 1.0000000000000001e-15
machep=   -52   eps=        2.2204460492503131e-16
negep =   -53   epsneg=     1.1102230246251565e-16
minexp= -1022   tiny=       2.2250738585072014e-308
maxexp=  1024   max=        1.7976931348623157e+308
nexp  =    11   min=        -max
---------------------------------------------------------------------

So, in the array, I look for the maximum power, and match the value
with the list, and see if that value is below the limit.

Hm, maybe I should delete it again.
But I caught other numpy-raises error, found in the test-suite.

But here this bug is triggered by an array, which is sent in with tcp
array of nan.

I think it is because spin :71@N miss data from field 800.

Best
Troels

2014-05-21 19:03 GMT+02:00 Edward d'Auvergne <edward@xxxxxxxxxxxxx>:
Hi,

Maybe this shouldn't be a bug?  It's only present in your 'disp_speed'
branch and is only seen with a debugging flag turned on.  If you add
the check I mentioned at
http://www.mail-archive.com/relax-devel@xxxxxxx/msg05731.html to the
first line of this function, maybe all the checks you have added
compared to the trunk could be removed and this issue will just
disappear.  It would be worth trying.  Also, what does the following
line do?

    # Calculate lowest positive val, which raised to the power will
not be represented less than 1.-e300.
    low_pos_rep = power(1.e-300, 1./max_t115)

Why is max_t115 inverted when the original code from Nikolai and Martin 
is:

        t115 = N/2;
        t116 = (t69/2+t83/2+t92/2+t96/2+t112/2).^t115;
        t118 = 1./t112;
        t120 = t69+t83-t92-t96+t112;
        t122 = (t69/2+t83/2+t92/2+t96/2-t112/2).^t115;

Here t115 is never inverted.  The 1/max_t115 is causing this divide by
zero error.  Anyway, adding the 'No Rex' check in the above link will
likely make all of this redundant.

Regards,

Edward




On 21 May 2014 18:46, Troels E. Linnet <NO-REPLY.INVALID-ADDRESS@xxxxxxx> 
wrote:
Follow-up Comment #3, bug #22065 (project relax):

This only fails when --numpy-raise is set on.

    _______________________________________________________

Reply to this item at:

  <http://gna.org/bugs/?22065>

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




Related Messages


Powered by MHonArc, Updated Wed May 21 21:00:15 2014