def get_default_datatype(expr):
 if expr.is_integer:
  return default_datatypes['int']
 elif isinstance(expr, MatrixBase):
  for element in expr:
   if (not element.is_integer):
    return default_datatypes['float']
  return default_datatypes['int']
 else:
  return default_datatypes['float']

def get_default_datatype ( expr ) : if expr . is_integer : return default_datatypes [ 'int' ] elif isinstance ( expr , MatrixBase ) : for element in expr : if ( not element . is_integer ) : return default_datatypes [ 'float' ] return default_datatypes [ 'int' ] else : return default_datatypes [ 'float' ]
derives an appropriate datatype based on the expression .