def getType(v):
    """
        Returns a tuple with True if a vsip type is found, plus a string indicating the type.
        For instance for
        a = vsip_vcreate_f(10,VSIP_MEM_NONE)
        will return for the call getType(a) (True,'vview_f')
        also returns types of scalars derived from structure. for instance
        c = vsip_cscalar_d() will return for getType(c) the tuple (True, 'cscalar_d').
        attr = vsip_mattr_d() will return for getType(attr) the tuple (True, 'mattr_d')
        If float or int type is passed in returns (True,'scalar')
        If called with a non VSIPL type returns (False, 'Not a VSIPL Type')
    """
    t = repr(v).rpartition('vsip_')
    if t[1] == 'vsip_':
        return(True,t[2].partition(" ")[0])
    elif isinstance(v,float):
        return(True,'scalar')
    elif isinstance(v,int):
        return(True,'scalar')
    else:
        return(False,'Not a VSIPL Type')