#!/usr/bin/env python3

import scipy.linalg as la
import numpy as np

D = [-1, 0, 1e10]
sol = [0, np.log(3), 2/3*np.log(3/2) + 1/3*np.log(6)]

for i in range(len(D)):
    d = D[i]

    A = np.array([ [1, d, -d], [d, 1, d], [-d, d, 1] ], dtype=np.float64)

    A /= np.sqrt(6*d**2+3)

    E, Vec = la.eig(A)

    E = np.real(E)
    S = -sum(E**2*np.log(E**2))
    print(f'S: {S:.12f}\t(exact: {sol[i]:.12f})')

