#!/usr/bin/python
# -*- coding: UTF-8 -*-
import numpy
from numpy import sqrt
import scipy.spatial.distance
from sklearn.manifold import MDS
from sklearn.metrics import euclidean_distances
from sklearn.decomposition import PCA


def mds(utv):
    rdm = scipy.spatial.distance.squareform(utv)
    seed = numpy.random.RandomState(seed=3)
    mds = MDS(n_components=2, max_iter=3000, eps=1e-9, random_state=seed,
                   dissimilarity="precomputed", n_jobs=1)
    pos = mds.fit_transform(rdm)

    # rescale
    #pos *= sqrt((X_true ** 2).sum()) / sqrt((pos ** 2).sum())


   # Y = mds.fit_transform(RDM)
#    if itime == 0:
#        Y = mds.fit_transform(RDM)
#    else:
#        d, Y, _ = procrustes(
#            Y, mds.fit_transform(RDM), scaling=False)

    # Rotate the data
    # clf = PCA(n_components=2)
    # pos = clf.fit_transform(pos)
    return pos