16 lines
436 B
Python
16 lines
436 B
Python
import numpy as np
|
|
from decimal import Decimal
|
|
|
|
from ..units import HighPrecisionMatrix
|
|
|
|
def calculate_distances(positions):
|
|
N = len(positions)
|
|
dists = HighPrecisionMatrix(N,N)
|
|
for i in range(N):
|
|
dists[i][i] = Decimal(0)
|
|
for j in range(i+1, N):
|
|
d = sum([x**2 for x in (positions[i]-positions[j])]).sqrt()
|
|
dists[i][j] = Decimal(d)
|
|
dists[j][i] = Decimal(d)
|
|
return dists
|