Skip to content
Snippets Groups Projects
Commit 1e16cc4d authored by cmaffeo2's avatar cmaffeo2
Browse files

Sped up minimizeRMSD when no weight is used

parent 3268d1e7
No related branches found
No related tags found
No related merge requests found
......@@ -48,17 +48,23 @@ def _minimizeRmsd(coordsB, coordsA, weights=None):
shapeA,shapeB = [np.shape(X) for X in (A,B)]
assert( shapeA == shapeB )
for X,s in zip((A,B),(shapeA,shapeB)):
assert( s[1] == 3 and s[0] >= s[1] )
assert( s[1] == 3 and s[0] >= s[1] )
if weights is None: weights = np.ones(len(A))
assert( len(weights[:]) == len(B) )
W = np.diag(weights)
# if weights is None: weights = np.ones(len(A))
if weights is None:
comA,comB = [np.mean( X, axis=0 ) for X in (A,B)]
else:
assert( len(weights[:]) == len(B) )
W = np.diag(weights)
comA,comB = [np.sum( W.dot(X), axis=0 ) / np.sum(W) for X in (A,B)]
comA,comB = [np.sum( W.dot(X), axis=0 ) / np.sum(W) for X in (A,B)]
A = np.array( A-comA )
B = np.array( B-comB )
s = A.T.dot(W.dot(B))
if weights is None:
s = A.T.dot(B)
else:
s = A.T.dot(W.dot(B))
sxx,sxy,sxz = s[0,:]
syx,syy,syz = s[1,:]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment