(self, x, bounds=None, copy=True, copy_always=False)
return y
maps the genotypic input argument into the phenotypic space,
        boundaries are only applied if argument ``bounds is not None``, see
        help for class `GenoPheno`
maps the genotypic input argument into the phenotypic space,
        boundaries are only applied if argument ``bounds is not None``, see
        help for class `GenoPheno`
maps the genotypic input argument into the phenotypic space boundaries are only applied if argument bounds is not None see help for class GenoPheno
def pheno(self, x, bounds=None, copy=True, copy_always=False):
        """maps the genotypic input argument into the phenotypic space,
        boundaries are only applied if argument ``bounds is not None``, see
        help for class `GenoPheno`

        """
        if copy_always and not copy:
            raise ValueError('arguments copy_always=' + str(copy_always) +
                             ' and copy=' + str(copy) + ' have inconsistent values')
        if self.isidentity and bounds in (None, [None, None], (None, None)):
            return x if not copy_always else array(x, copy=copy_always)

        if self.fixed_values is None:
            y = array(x, copy=copy)  # make a copy, in case
        else:  # expand with fixed values
            y = list(x)  # is a copy
            for i in sorted(self.fixed_values.keys()):
                y.insert(i, self.fixed_values[i])
            y = array(y, copy=False)

        if self.scales is not 1:  # just for efficiency
            y *= self.scales

        if self.typical_x is not 0:
            y += self.typical_x

        if self.tf_pheno is not None:
            y = array(self.tf_pheno(y), copy=False)

        if bounds is not None:
            y = self.into_bounds(y, bounds)

        if self.fixed_values is not None:
            for i, k in list(self.fixed_values.items()):
                y[i] = k

        return y
def pheno ( self , x , bounds = None , copy = True , copy_always = False ) : if copy_always and not copy : raise ValueError ( 'arguments copy_always=' + str ( copy_always ) + ' and copy=' + str ( copy ) + ' have inconsistent values' ) if self . isidentity and bounds in ( None , [ None , None ] , ( None , None ) ) : return x if not copy_always else array ( x , copy = copy_always ) if self . fixed_values is None : y = array ( x , copy = copy ) # make a copy, in case else : # expand with fixed values y = list ( x ) # is a copy for i in sorted ( self . fixed_values . keys ( ) ) : y . insert ( i , self . fixed_values [ i ] ) y = array ( y , copy = False ) if self . scales is not 1 : # just for efficiency y *= self . scales if self . typical_x is not 0 : y += self . typical_x if self . tf_pheno is not None : y = array ( self . tf_pheno ( y ) , copy = False ) if bounds is not None : y = self . into_bounds ( y , bounds ) if self . fixed_values is not None : for i , k in list ( self . fixed_values . items ( ) ) : y [ i ] = k return y