Changeset 24873


Ignore:
Timestamp:
05/18/20 11:53:41 (5 years ago)
Author:
jdquinn
Message:

BUG: Python version of allequal() was not doing what was intended; cleanup

Location:
issm/trunk-jpl/src/m
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/array/MatlabArray.py

    r24261 r24873  
    2929    aout = allequal(ain, aval)
    3030    '''
    31     if type(ain) != type(aval):
    32         print((allequal.__doc__))
    33         raise RuntimeError("ain and aval must be of the same type")
     31    # if type(ain) != type(aval):
     32    #     print((allequal.__doc__))
     33    #     raise RuntimeError("ain and aval must be of the same type")
     34    aincopy = ain.copy() # Save copy to return in case ain[n] != aval (we modify ain in order to iterate over its values)
    3435
    3536    if type(ain) == list:
     
    4041    for i in ain:
    4142        if i != aval:
    42             if type(ain) == str:
    43                 return ''
    44             else:
    45                 return []
    46     return ain
     43            return aincopy
     44    return []
    4745
    4846
  • issm/trunk-jpl/src/m/classes/qmu/normal_uncertain.py

    r24870 r24873  
    142142    @staticmethod
    143143    def prop_mean(nuv): #{{{
    144         if type(nuv) not in [list, np.ndarray]:
    145             return [nuv.mean]
    146 
    147144        mean = np.zeros(np.size(nuv))
    148145        for i in range(np.size(nuv)):
     
    153150    @staticmethod
    154151    def prop_stddev(nuv): #{{{
    155         if type(nuv) not in [list, np.ndarray]:
    156             return [nuv.stddev]
    157152        stddev = np.zeros(np.size(nuv))
    158153        for i in range(np.size(nuv)):
     
    230225        # collect only the variables of the appropriate class
    231226        # nuv = [struc_class(i, 'normal_uncertain', 'nuv') for i in dvar]
    232         fields = fieldnames(dvar)
     227        nuv = deepcopy(dvar)
     228        fields = fieldnames(nuv)
    233229        for field in fields:
    234             if getattr(dvar, field)[0].__class__.__name__ != 'normal_uncertain':
    235                 delattr(dvar, field)
    236         if len(dvar) > 0:
    237             vlist_write(fidi, 'normal_uncertain', 'nuv', dvar)
    238     #}}}
    239 
     230            if getattr(nuv, field)[0].__class__.__name__ != 'normal_uncertain':
     231                delattr(nuv, field)
     232        if len(nuv) > 0:
     233            vlist_write(fidi, 'normal_uncertain', 'nuv', nuv)
     234    #}}}
     235
  • issm/trunk-jpl/src/m/classes/qmu/response_function.py

    r24870 r24873  
    204204        # collect only the responses of the appropriate class
    205205        #rf = [struc_class(vars(dresp)[i][j], 'response_function', 'rf') for i in fieldnames(dresp) for j in range(len(vars(dresp)[i]))]
    206         fields = fieldnames(dresp)
     206        resp = deepcopy(dresp)
     207        fields = fieldnames(resp)
    207208        for field in fields:
    208             if getattr(dresp, field)[0].__class__.__name__ != 'response_function':
    209                 delattr(dresp, field)
    210         if len(dresp) > 0:
    211             rdesc = rlist_write(fidi, 'response_function', 'rf', dresp, rdesc)
     209            if getattr(resp, field)[0].__class__.__name__ != 'response_function':
     210                delattr(resp, field)
     211        if len(resp) > 0:
     212            rdesc = rlist_write(fidi, 'response_function', 'rf', resp, rdesc)
    212213        return rdesc
    213214
  • issm/trunk-jpl/src/m/classes/qmu/uniform_uncertain.py

    r24870 r24873  
    8181                if npart != len(uuv.lower):
    8282                    raise RuntimeError("uniform_uncertain constructor: for the scaled variable %s the lower field is not currently a vector of values for all the partitions described in the partition vector" % uuv.descriptor)
    83                    
     83
    8484        return [uuv] # Always return a list, so we have something akin to a MATLAB single row matrix
    8585
     
    146146    @staticmethod
    147147    def prop_lower(uuv): #{{{
    148         if type(uuv) not in [list, np.ndarray]:
    149             return [uuv.lower]
    150 
    151148        lower = np.zeros(np.size(uuv))
    152149        for i in range(np.size(uuv)):
     
    160157    @staticmethod
    161158    def prop_upper(uuv): #{{{
    162         if type(uuv) not in [list, np.ndarray]:
    163             return [uuv.upper]
    164 
    165159        upper = np.zeros(np.size(uuv))
    166160        for i in range(np.size(uuv)):
    167161            upper[i] = uuv[i].upper
    168162
    169         upper = allequal(upper, np.Inf)
     163        #upper = allequal(upper, np.Inf)
    170164
    171165        return upper
     
    240234        # # collect only the variables of the appropriate class
    241235        # uuv = [struc_class(i, 'uniform_uncertain', 'uuv') for i in dvar]
    242         fields = fieldnames(dvar)
     236        uuv = deepcopy(dvar)
     237        fields = fieldnames(uuv)
    243238        for field in fields:
    244             if getattr(dvar, field)[0].__class__.__name__ != 'uniform_uncertain':
    245                 delattr(dvar, field)
    246         if len(dvar) > 0:
    247             vlist_write(fidi, 'uniform_uncertain', 'uuv', dvar)
    248     #}}}
     239            if getattr(uuv, field)[0].__class__.__name__ != 'uniform_uncertain':
     240                delattr(uuv, field)
     241        if len(uuv) > 0:
     242            vlist_write(fidi, 'uniform_uncertain', 'uuv', uuv)
     243    #}}}
  • issm/trunk-jpl/src/m/qmu/expandresponses.py

    r24213 r24873  
    1212
    1313    for k in fnames:
    14         v = eval('responses.{}'.format(k))
     14        v = getattr(responses, k)
    1515        exec('dresp.{} = type(v)()'.format(k))
    1616        for j in range(len(v)):
  • issm/trunk-jpl/src/m/qmu/importancefactors.m

    r24870 r24873  
    88%   Example: factors=importancefactors(md,'drag','max_vel');
    99%
     10
    1011variablenamelength=length(variablename);
    1112
  • issm/trunk-jpl/src/m/qmu/importancefactors.py

    r24870 r24873  
    1010
    1111    Example: factors = importancefactors(md, 'drag', 'max_vel')
    12     '''
     12'''
     13
    1314    variablenamelength = len(variablename)
    1415
Note: See TracChangeset for help on using the changeset viewer.