Source files: 10

Click here to show/hide file names

Clones detected: 23

236 of 1224 lines are duplicates (19.28%)

Parameters
clustering_threshold = 10
distance_threshold = 5
size_threshold = 5
hashing_depth = 1
clusterize_using_hash = False
clusterize_using_dcup = False

Time elapsed
Construction of AST : 0.28 seconds
Building statement hash : 0.00 seconds
Building patterns : 0.64 seconds
Marking similar statements : 0.75 seconds
Finding similar sequences of statements : 0.10 seconds
Refining candidates : 0.38 seconds
Total time: 2.16
Started at: Mon Aug 1 06:57:04 2016
Finished at: Mon Aug 1 06:57:06 2016

Clone # 1
Distance between two fragments = 3
Clone size = 12
Source file "tools/basistools.py"
The first line is 602
Source file "tools/basistools.py"
The first line is 805
def gm_to_std_transform_matrix(dimOrBlockDims):
    _, gateDim, blockDims = _processBlockDims(dimOrBlockDims)
    gmToStd = _np.zeros((gateDim, gateDim), 'complex')
    start = 0
    for blockDim in blockDims:
        mxs = gm_matrices(blockDim)
        assert len(mxs) == (blockDim) ** (2)
        for j, mx in enumerate(mxs):
            gmToStd[start:(start) + ((blockDim) ** (2)),(start) + (j)] = mx.flatten()
        start += (blockDim) ** (2)
    assert start == gateDim
    return gmToStd
def pp_to_std_transform_matrix(dimOrBlockDims):
    _, gateDim, blockDims = _processBlockDims(dimOrBlockDims)
    ppToStd = _np.zeros((gateDim, gateDim), 'complex')
    start = 0
    for blockDim in blockDims:
        mxs = pp_matrices(blockDim)
        assert len(mxs) == (blockDim) ** (2)
        for j, mx in enumerate(mxs):
            ppToStd[start:(start) + ((blockDim) ** (2)),(start) + (j)] = mx.flatten()
        start += (blockDim) ** (2)
    assert start == gateDim
    return ppToStd



Clone # 2
Distance between two fragments = 4
Clone size = 11
Source file "tools/basistools.py"
The first line is 931
Source file "tools/basistools.py"
The first line is 724
if dimOrBlockDims is None:
    dimOrBlockDims = int(round(_np.sqrt(mxInPauliProdBasis.shape[0])))
    assert (dimOrBlockDims) ** (2) == mxInPauliProdBasis.shape[0]
if dimOrBlockDims is None:
    dimOrBlockDims = int(round(_np.sqrt(mxInGellMannBasis.shape[0])))
    assert (dimOrBlockDims) ** (2) == mxInGellMannBasis.shape[0]
ppToStd = pp_to_std_transform_matrix(dimOrBlockDims) gmToStd = gm_to_std_transform_matrix(dimOrBlockDims)
stdToPP = _np.linalg.inv(ppToStd) stdToGM = _np.linalg.inv(gmToStd)
if (len(mxInPauliProdBasis.shape) == 2) and (mxInPauliProdBasis.shape[0] == mxInPauliProdBasis.shape[1]):
    return _np.dot(ppToStd, _np.dot(mxInPauliProdBasis, stdToPP))
elif (len(mxInPauliProdBasis.shape) == 1) or ((len(mxInPauliProdBasis.shape) == 2) and (mxInPauliProdBasis.shape[1] == 1)):
    return _np.dot(ppToStd, mxInPauliProdBasis)
else:
    raise ValueError('Invalid dimension of object - must be 1 or 2, i.e. a vector or matrix')
if (len(mxInGellMannBasis.shape) == 2) and (mxInGellMannBasis.shape[0] == mxInGellMannBasis.shape[1]):
    return _np.dot(gmToStd, _np.dot(mxInGellMannBasis, stdToGM))
elif (len(mxInGellMannBasis.shape) == 1) or ((len(mxInGellMannBasis.shape) == 2) and (mxInGellMannBasis.shape[1] == 1)):
    return _np.dot(gmToStd, mxInGellMannBasis)
else:
    raise ValueError('Invalid dimension of object - must be 1 or 2, i.e. a vector or matrix')



Clone # 3
Distance between two fragments = 4
Clone size = 11
Source file "tools/basistools.py"
The first line is 434
Source file "tools/basistools.py"
The first line is 385
indxMap = [] indxMap = []
start = 0 start = 0
for blockDim in blockDims:
    for i in range(start, (start) + (blockDim)):
        for j in range(start, (start) + (blockDim)):
            indxMap.append(((dmDim) * (i)) + (j))
    start += blockDim
for blockDim in blockDims:
    for i in range(start, (start) + (blockDim)):
        for j in range(start, (start) + (blockDim)):
            indxMap.append(((dmDim) * (i)) + (j))
    start += blockDim
for i, fi in enumerate(indxMap):
    for j, fj in enumerate(indxMap):
        mx[i,j] = mxInStdBasis[fi,fj]
for i, fi in enumerate(indxMap):
    for j, fj in enumerate(indxMap):
        mx[fi,fj] = mxInStdBasis[i,j]
return mx return mx



Clone # 4
Distance between two fragments = 1
Clone size = 10
Source file "tools/jamiolkowski.py"
The first line is 102
Source file "tools/jamiolkowski.py"
The first line is 161
N = gateMxInStdBasis.shape[0] N = choiMx.shape[0]
dmDim = int(round(_np.sqrt(N))) dmDim = int(round(_np.sqrt(N)))
if choiMxBasis == 'gm':
    BVec = _bt.gm_matrices(dmDim)
elif choiMxBasis == 'std':
    BVec = _bt.std_matrices(dmDim)
elif choiMxBasis == 'pp':
    BVec = _bt.pp_matrices(dmDim)
else:
    raise ValueError(('Invalid choiMxBasis: %s') % (choiMxBasis))
if choiMxBasis == 'gm':
    BVec = _bt.gm_matrices(dmDim)
elif choiMxBasis == 'std':
    BVec = _bt.std_matrices(dmDim)
elif choiMxBasis == 'pp':
    BVec = _bt.pp_matrices(dmDim)
else:
    raise ValueError(('Invalid choiMxBasis: %s') % (choiMxBasis))
assert len(BVec) == N assert len(BVec) == N



Clone # 5
Distance between two fragments = 1
Clone size = 9
Source file "tools/basistools.py"
The first line is 288
Source file "tools/basistools.py"
The first line is 777
def is_integer(x):
    return bool(abs((x) - (round(x))) < 1e-06)
def is_integer(x):
    return bool(abs((x) - (round(x))) < 1e-06)
if type(dimOrBlockDims) != int:
    if (type(dimOrBlockDims) in (list, tuple)) and (len(dimOrBlockDims) == 1):
        dimOrBlockDims = dimOrBlockDims[0]
    else:
        raise ValueError('Dimension for Pauli tensor product matrices must be an *integer* power of 2')
if type(dim) != int:
    if (type(dim) in (list, tuple)) and (len(dim) == 1):
        dim = dim[0]
    else:
        raise ValueError('Dimension for Pauli tensor product matrices must be an *integer* power of 2')
nQubits = _np.log2(dimOrBlockDims) nQubits = _np.log2(dim)
if not is_integer(nQubits):
    raise ValueError('Dimension for Pauli tensor product matrices must be an integer *power of 2*')
if not is_integer(nQubits):
    raise ValueError('Dimension for Pauli tensor product matrices must be an integer *power of 2*')



Clone # 6
Distance between two fragments = 4
Clone size = 8
Source file "tools/basistools.py"
The first line is 1193
Source file "tools/basistools.py"
The first line is 1219
def stdmx_to_ppvec(m):
    assert (len(m.shape) == 2) and (m.shape[0] == m.shape[1])
    dim = m.shape[0]
    ppMxs = pp_matrices(dim)
    v = _np.empty(((dim) ** (2), 1))
    for i, ppMx in enumerate(ppMxs):
        v[i,0] = _np.real(_mt.trace(_np.dot(ppMx, m)))
    return v
def stdmx_to_gmvec(m):
    assert (len(m.shape) == 2) and (m.shape[0] == m.shape[1])
    dim = m.shape[0]
    gmMxs = gm_matrices(dim)
    v = _np.empty(((dim) ** (2), 1))
    for i, gmMx in enumerate(gmMxs):
        v[i,0] = _np.real(_mt.trace(_np.dot(gmMx, m)))
    return v



Clone # 7
Distance between two fragments = 4
Clone size = 8
Source file "tools/basistools.py"
The first line is 1219
Source file "tools/basistools.py"
The first line is 1246
def stdmx_to_gmvec(m):
    assert (len(m.shape) == 2) and (m.shape[0] == m.shape[1])
    dim = m.shape[0]
    gmMxs = gm_matrices(dim)
    v = _np.empty(((dim) ** (2), 1))
    for i, gmMx in enumerate(gmMxs):
        v[i,0] = _np.real(_mt.trace(_np.dot(gmMx, m)))
    return v
def stdmx_to_stdvec(m):
    assert (len(m.shape) == 2) and (m.shape[0] == m.shape[1])
    dim = m.shape[0]
    stdMxs = std_matrices(dim)
    v = _np.empty(((dim) ** (2), 1))
    for i, stdMx in enumerate(stdMxs):
        v[i,0] = _np.real(_mt.trace(_np.dot(stdMx, m)))
    return v



Clone # 8
Distance between two fragments = 4
Clone size = 8
Source file "tools/basistools.py"
The first line is 1193
Source file "tools/basistools.py"
The first line is 1246
def stdmx_to_ppvec(m):
    assert (len(m.shape) == 2) and (m.shape[0] == m.shape[1])
    dim = m.shape[0]
    ppMxs = pp_matrices(dim)
    v = _np.empty(((dim) ** (2), 1))
    for i, ppMx in enumerate(ppMxs):
        v[i,0] = _np.real(_mt.trace(_np.dot(ppMx, m)))
    return v
def stdmx_to_stdvec(m):
    assert (len(m.shape) == 2) and (m.shape[0] == m.shape[1])
    dim = m.shape[0]
    stdMxs = std_matrices(dim)
    v = _np.empty(((dim) ** (2), 1))
    for i, stdMx in enumerate(stdMxs):
        v[i,0] = _np.real(_mt.trace(_np.dot(stdMx, m)))
    return v



Clone # 9
Distance between two fragments = 4
Clone size = 7
Source file "tools/basistools.py"
The first line is 1117
Source file "tools/basistools.py"
The first line is 1143
def ppvec_to_stdmx(v):
    dim = int(_np.sqrt(len(v)))
    ppMxs = pp_matrices(dim)
    ret = _np.zeros((dim, dim), 'complex')
    for i, ppMx in enumerate(ppMxs):
        ret += (float(v[i])) * (ppMx)
    return ret
def gmvec_to_stdmx(v):
    dim = int(_np.sqrt(len(v)))
    gmMxs = gm_matrices(dim)
    ret = _np.zeros((dim, dim), 'complex')
    for i, gmMx in enumerate(gmMxs):
        ret += (float(v[i])) * (gmMx)
    return ret



Clone # 10
Distance between two fragments = 4
Clone size = 7
Source file "tools/basistools.py"
The first line is 1143
Source file "tools/basistools.py"
The first line is 1167
def gmvec_to_stdmx(v):
    dim = int(_np.sqrt(len(v)))
    gmMxs = gm_matrices(dim)
    ret = _np.zeros((dim, dim), 'complex')
    for i, gmMx in enumerate(gmMxs):
        ret += (float(v[i])) * (gmMx)
    return ret
def stdvec_to_stdmx(v):
    dim = int(_np.sqrt(len(v)))
    stdMxs = std_matrices(dim)
    ret = _np.zeros((dim, dim), 'complex')
    for i, stdMx in enumerate(stdMxs):
        ret += (float(v[i])) * (stdMx)
    return ret



Clone # 11
Distance between two fragments = 4
Clone size = 7
Source file "tools/basistools.py"
The first line is 1117
Source file "tools/basistools.py"
The first line is 1167
def ppvec_to_stdmx(v):
    dim = int(_np.sqrt(len(v)))
    ppMxs = pp_matrices(dim)
    ret = _np.zeros((dim, dim), 'complex')
    for i, ppMx in enumerate(ppMxs):
        ret += (float(v[i])) * (ppMx)
    return ret
def stdvec_to_stdmx(v):
    dim = int(_np.sqrt(len(v)))
    stdMxs = std_matrices(dim)
    ret = _np.zeros((dim, dim), 'complex')
    for i, stdMx in enumerate(stdMxs):
        ret += (float(v[i])) * (stdMx)
    return ret



Clone # 12
Distance between two fragments = 4
Clone size = 6
Source file "tools/rpetools.py"
The first line is 320
Source file "tools/rpetools.py"
The first line is 316
try:
    epsilonTrue = trueGateset.epsilonTrue
except:
    epsilonTrue = extract_epsilon(trueGateset)
try:
    alphaTrue = trueGateset.alphaTrue
except:
    alphaTrue = extract_alpha(trueGateset)
try:
    thetaTrue = trueGateset.thetaTrue
except:
    thetaTrue = extract_theta(trueGateset)
try:
    epsilonTrue = trueGateset.epsilonTrue
except:
    epsilonTrue = extract_epsilon(trueGateset)



Clone # 13
Distance between two fragments = 0
Clone size = 6
Source file "tools/likelihoodfns.py"
The first line is 257
Source file "tools/likelihoodfns.py"
The first line is 378
S = ((countVecMx) / (min_p)) - (totalCntVec[None,None:None]) S = ((countVecMx) / (min_p)) - (totalCntVec[None,None:None])
S2 = ((-0.5) * (countVecMx)) / ((min_p) ** (2)) S2 = ((-0.5) * (countVecMx)) / ((min_p) ** (2))
v = ((countVecMx) * (_np.log(pos_probs))) - ((totalCntVec[None,None:None]) * (pos_probs)) v = ((countVecMx) * (_np.log(pos_probs))) - ((totalCntVec[None,None:None]) * (pos_probs))
v = _np.minimum(v, 0) v = _np.minimum(v, 0)
v = _np.where(probs < min_p, ((v) + ((S) * ((probs) - (min_p)))) + ((S2) * (((probs) - (min_p)) ** (2))), v) v = _np.where(probs < min_p, ((v) + ((S) * ((probs) - (min_p)))) + ((S2) * (((probs) - (min_p)) ** (2))), v)
v = _np.where(countVecMx == 0, (-totalCntVec[None,None:None]) * (_np.where(probs >= a, probs, ((((-1.0) / ((3) * ((a) ** (2)))) * ((probs) ** (3))) + (((probs) ** (2)) / (a))) + ((a) / (3.0)))), v) v = _np.where(countVecMx == 0, (-totalCntVec[None,None:None]) * (_np.where(probs >= a, probs, ((((-1.0) / ((3) * ((a) ** (2)))) * ((probs) ** (3))) + (((probs) ** (2)) / (a))) + ((a) / (3.0)))), v)



Clone # 14
Distance between two fragments = 0
Clone size = 6
Source file "tools/likelihoodfns.py"
The first line is 266
Source file "tools/likelihoodfns.py"
The first line is 395
S = (countVecMx) / (min_p) S = (countVecMx) / (min_p)
S2 = ((-0.5) * (countVecMx)) / ((min_p) ** (2)) S2 = ((-0.5) * (countVecMx)) / ((min_p) ** (2))
v = (countVecMx) * (_np.log(pos_probs)) v = (countVecMx) * (_np.log(pos_probs))
v = _np.minimum(v, 0) v = _np.minimum(v, 0)
v = _np.where(probs < min_p, ((v) + ((S) * ((probs) - (min_p)))) + ((S2) * (((probs) - (min_p)) ** (2))), v) v = _np.where(probs < min_p, ((v) + ((S) * ((probs) - (min_p)))) + ((S2) * (((probs) - (min_p)) ** (2))), v)
v = _np.where(countVecMx == 0, 0.0, v) v = _np.where(countVecMx == 0, 0.0, v)



Clone # 15
Distance between two fragments = 2
Clone size = 6
Source file "tools/gatetools.py"
The first line is 44
Source file "tools/gatetools.py"
The first line is 51
evals, U = _np.linalg.eig(A) evals, U = _np.linalg.eig(B)
if len([ev for ev in evals if abs(ev) > 1e-08]) == 1:
    ivec = _np.argmax(evals)
    vec = U[None:None,ivec:(ivec) + (1)]
    F = _np.dot(_np.conjugate(_np.transpose(vec)), _np.dot(B, vec)).real
    return F
if len([ev for ev in evals if abs(ev) > 1e-08]) == 1:
    ivec = _np.argmax(evals)
    vec = U[None:None,ivec:(ivec) + (1)]
    F = _np.dot(_np.conjugate(_np.transpose(vec)), _np.dot(A, vec)).real
    return F



Clone # 16
Distance between two fragments = 3
Clone size = 5
Source file "tools/basistools.py"
The first line is 875
Source file "tools/basistools.py"
The first line is 669
if dimOrBlockDims is None:
    dimOrBlockDims = int(round(_np.sqrt(mxInStdBasis.shape[0])))
    assert (dimOrBlockDims) ** (2) == mxInStdBasis.shape[0]
if dimOrBlockDims is None:
    dimOrBlockDims = int(round(_np.sqrt(mxInStdBasis.shape[0])))
    assert (dimOrBlockDims) ** (2) == mxInStdBasis.shape[0]
ppToStd = pp_to_std_transform_matrix(dimOrBlockDims) gmToStd = gm_to_std_transform_matrix(dimOrBlockDims)
stdToPP = _np.linalg.inv(ppToStd) stdToGM = _np.linalg.inv(gmToStd)



Clone # 17
Distance between two fragments = 1
Clone size = 5
Source file "tools/basistools.py"
The first line is 875
Source file "tools/basistools.py"
The first line is 931
if dimOrBlockDims is None:
    dimOrBlockDims = int(round(_np.sqrt(mxInStdBasis.shape[0])))
    assert (dimOrBlockDims) ** (2) == mxInStdBasis.shape[0]
if dimOrBlockDims is None:
    dimOrBlockDims = int(round(_np.sqrt(mxInPauliProdBasis.shape[0])))
    assert (dimOrBlockDims) ** (2) == mxInPauliProdBasis.shape[0]
ppToStd = pp_to_std_transform_matrix(dimOrBlockDims) ppToStd = pp_to_std_transform_matrix(dimOrBlockDims)
stdToPP = _np.linalg.inv(ppToStd) stdToPP = _np.linalg.inv(ppToStd)



Clone # 18
Distance between two fragments = 4
Clone size = 5
Source file "tools/basistools.py"
The first line is 875
Source file "tools/basistools.py"
The first line is 724
if dimOrBlockDims is None:
    dimOrBlockDims = int(round(_np.sqrt(mxInStdBasis.shape[0])))
    assert (dimOrBlockDims) ** (2) == mxInStdBasis.shape[0]
if dimOrBlockDims is None:
    dimOrBlockDims = int(round(_np.sqrt(mxInGellMannBasis.shape[0])))
    assert (dimOrBlockDims) ** (2) == mxInGellMannBasis.shape[0]
ppToStd = pp_to_std_transform_matrix(dimOrBlockDims) gmToStd = gm_to_std_transform_matrix(dimOrBlockDims)
stdToPP = _np.linalg.inv(ppToStd) stdToGM = _np.linalg.inv(gmToStd)



Clone # 19
Distance between two fragments = 4
Clone size = 5
Source file "tools/basistools.py"
The first line is 669
Source file "tools/basistools.py"
The first line is 931
if dimOrBlockDims is None:
    dimOrBlockDims = int(round(_np.sqrt(mxInStdBasis.shape[0])))
    assert (dimOrBlockDims) ** (2) == mxInStdBasis.shape[0]
if dimOrBlockDims is None:
    dimOrBlockDims = int(round(_np.sqrt(mxInPauliProdBasis.shape[0])))
    assert (dimOrBlockDims) ** (2) == mxInPauliProdBasis.shape[0]
gmToStd = gm_to_std_transform_matrix(dimOrBlockDims) ppToStd = pp_to_std_transform_matrix(dimOrBlockDims)
stdToGM = _np.linalg.inv(gmToStd) stdToPP = _np.linalg.inv(ppToStd)



Clone # 20
Distance between two fragments = 1
Clone size = 5
Source file "tools/basistools.py"
The first line is 669
Source file "tools/basistools.py"
The first line is 724
if dimOrBlockDims is None:
    dimOrBlockDims = int(round(_np.sqrt(mxInStdBasis.shape[0])))
    assert (dimOrBlockDims) ** (2) == mxInStdBasis.shape[0]
if dimOrBlockDims is None:
    dimOrBlockDims = int(round(_np.sqrt(mxInGellMannBasis.shape[0])))
    assert (dimOrBlockDims) ** (2) == mxInGellMannBasis.shape[0]
gmToStd = gm_to_std_transform_matrix(dimOrBlockDims) gmToStd = gm_to_std_transform_matrix(dimOrBlockDims)
stdToGM = _np.linalg.inv(gmToStd) stdToGM = _np.linalg.inv(gmToStd)



Clone # 21
Distance between two fragments = 0
Clone size = 5
Source file "tools/likelihoodfns.py"
The first line is 240
Source file "tools/likelihoodfns.py"
The first line is 358
totalCntVec = _np.sum(countVecMx, axis=0) totalCntVec = _np.sum(countVecMx, axis=0)
a = radius a = radius
min_p = minProbClip min_p = minProbClip
if evalTree is None:
    evalTree = gateset.bulk_evaltree(gatestring_list)
if evalTree is None:
    evalTree = gateset.bulk_evaltree(gatestring_list)



Clone # 22
Distance between two fragments = 3
Clone size = 5
Source file "tools/basistools.py"
The first line is 895
Source file "tools/basistools.py"
The first line is 689
pp = _np.dot(stdToPP, mxInStdBasis) gm = _np.dot(stdToGM, mxInStdBasis)
if _np.linalg.norm(_np.imag(pp)) > 1e-08:
    raise ValueError(('Pauil-product vector has non-zero imaginary part (%g)!') % (_np.linalg.norm(_np.imag(pp))))
if _np.linalg.norm(_np.imag(gm)) > 1e-08:
    raise ValueError(('Gell-Mann vector has non-zero imaginary part (%g)!') % (_np.linalg.norm(_np.imag(gm))))
return _np.real(pp) return _np.real(gm)



Clone # 23
Distance between two fragments = 4
Clone size = 5
Source file "tools/basistools.py"
The first line is 883
Source file "tools/basistools.py"
The first line is 677
pp = _np.dot(stdToPP, _np.dot(mxInStdBasis, ppToStd)) gm = _np.dot(stdToGM, _np.dot(mxInStdBasis, gmToStd))
if _np.linalg.norm(_np.imag(pp)) > 1e-08:
    raise ValueError(('Pauil-product matrix has non-zero imaginary part (%g)!') % (_np.linalg.norm(_np.imag(pp))))
if _np.linalg.norm(_np.imag(gm)) > 1e-08:
    raise ValueError(('Gell-Mann matrix has non-zero imaginary part (%g)!') % (_np.linalg.norm(_np.imag(gm))))
return _np.real(pp) return _np.real(gm)



Clone Digger is aimed to find software clones in Python and Java programs. It is provided under the GPL license and can be downloaded from the site http://clonedigger.sourceforge.net