def draw_values(params, point=None):
 givens = {}
 for param in params:
  if hasattr(param, 'name'):
   named_nodes = get_named_nodes(param)
   if (param.name in named_nodes):
    named_nodes.pop(param.name)
   for (name, node) in named_nodes.items():
    if (not isinstance(node, (tt.sharedvar.TensorSharedVariable, tt.TensorConstant))):
     givens[name] = (node, draw_value(node, point=point))
 values = [None for _ in params]
 for (i, param) in enumerate(params):
  values[i] = np.atleast_1d(draw_value(param, point=point, givens=givens.values()))
 if (len(values) == 1):
  return values[0]
 else:
  return values

def draw_values ( params , point = None ) : givens = { } for param in params : if hasattr ( param , 'name' ) : named_nodes = get_named_nodes ( param ) if ( param . name in named_nodes ) : named_nodes . pop ( param . name ) for ( name , node ) in named_nodes . items ( ) : if ( not isinstance ( node , ( tt . sharedvar . TensorSharedVariable , tt . TensorConstant ) ) ) : givens [ name ] = ( node , draw_value ( node , point = point ) ) values = [ None for _ in params ] for ( i , param ) in enumerate ( params ) : values [ i ] = np . atleast_1d ( draw_value ( param , point = point , givens = givens . values ( ) ) ) if ( len ( values ) == 1 ) : return values [ 0 ] else : return values
draw parameter values .