From c8f956a5b085f9f6de4ab7e0c64aaa7257deff6d Mon Sep 17 00:00:00 2001
From: Anelli <anelli@mit.edu>
Date: Thu, 18 Aug 2016 18:30:51 +0200
Subject: [PATCH] Fixed bug in reading of dissimilarity matrices

dissimilarity matrix in file should contain dissimilarity not square of dissimilarity
---
 .../analysis.0.mymatrix3.dat.reference        | 12 ++++-----
 .../rt-calc-dissims/mymatrix.dat.reference    | 26 +++++++++----------
 .../rt-calc-dissims/mymatrix2.dat.reference   | 10 +++----
 .../rt-calc-dissims/mymatrix3.dat.reference   | 12 ++++-----
 .../rt-reselect-land/mymatrix.dat.reference   |  4 +--
 src/analysis/PrintDissimilarityMatrix.cpp     |  2 +-
 src/analysis/ReadDissimilarityMatrix.cpp      |  2 +-
 src/dimred/DimensionalityReductionBase.cpp    |  2 +-
 8 files changed, 35 insertions(+), 35 deletions(-)

diff --git a/regtest/analysis/rt-calc-dissims/analysis.0.mymatrix3.dat.reference b/regtest/analysis/rt-calc-dissims/analysis.0.mymatrix3.dat.reference
index 964f0140e..c41cddfd7 100644
--- a/regtest/analysis/rt-calc-dissims/analysis.0.mymatrix3.dat.reference
+++ b/regtest/analysis/rt-calc-dissims/analysis.0.mymatrix3.dat.reference
@@ -1,6 +1,6 @@
-   0.0000   1.0000   4.0000   9.0000  16.0000  25.0000
-   1.0000   0.0000   1.0000   4.0000   9.0000  16.0000
-   4.0000   1.0000   0.0000   1.0000   4.0000   9.0000
-   9.0000   4.0000   1.0000   0.0000   1.0000   4.0000
-  16.0000   9.0000   4.0000   1.0000   0.0000   1.0000
-  25.0000  16.0000   9.0000   4.0000   1.0000   0.0000
+   0.0000   1.0000   2.0000   3.0000   4.0000   5.0000
+   1.0000   0.0000   1.0000   2.0000   3.0000   4.0000
+   2.0000   1.0000   0.0000   1.0000   2.0000   3.0000
+   3.0000   2.0000   1.0000   0.0000   1.0000   2.0000
+   4.0000   3.0000   2.0000   1.0000   0.0000   1.0000
+   5.0000   4.0000   3.0000   2.0000   1.0000   0.0000
diff --git a/regtest/analysis/rt-calc-dissims/mymatrix.dat.reference b/regtest/analysis/rt-calc-dissims/mymatrix.dat.reference
index e7c621920..07321a10d 100644
--- a/regtest/analysis/rt-calc-dissims/mymatrix.dat.reference
+++ b/regtest/analysis/rt-calc-dissims/mymatrix.dat.reference
@@ -1,13 +1,13 @@
-   0.0000   0.0000   1.0000   4.0000   9.0000  16.0000  25.0000  36.0000  49.0000  64.0000  81.0000 100.0000 121.0000
-   0.0000   0.0000   1.0000   4.0000   9.0000  16.0000  25.0000  36.0000  49.0000  64.0000  81.0000 100.0000 121.0000
-   1.0000   1.0000   0.0000   1.0000   4.0000   9.0000  16.0000  25.0000  36.0000  49.0000  64.0000  81.0000 100.0000
-   4.0000   4.0000   1.0000   0.0000   1.0000   4.0000   9.0000  16.0000  25.0000  36.0000  49.0000  64.0000  81.0000
-   9.0000   9.0000   4.0000   1.0000   0.0000   1.0000   4.0000   9.0000  16.0000  25.0000  36.0000  49.0000  64.0000
-  16.0000  16.0000   9.0000   4.0000   1.0000   0.0000   1.0000   4.0000   9.0000  16.0000  25.0000  36.0000  49.0000
-  25.0000  25.0000  16.0000   9.0000   4.0000   1.0000   0.0000   1.0000   4.0000   9.0000  16.0000  25.0000  36.0000
-  36.0000  36.0000  25.0000  16.0000   9.0000   4.0000   1.0000   0.0000   1.0000   4.0000   9.0000  16.0000  25.0000
-  49.0000  49.0000  36.0000  25.0000  16.0000   9.0000   4.0000   1.0000   0.0000   1.0000   4.0000   9.0000  16.0000
-  64.0000  64.0000  49.0000  36.0000  25.0000  16.0000   9.0000   4.0000   1.0000   0.0000   1.0000   4.0000   9.0000
-  81.0000  81.0000  64.0000  49.0000  36.0000  25.0000  16.0000   9.0000   4.0000   1.0000   0.0000   1.0000   4.0000
- 100.0000 100.0000  81.0000  64.0000  49.0000  36.0000  25.0000  16.0000   9.0000   4.0000   1.0000   0.0000   1.0000
- 121.0000 121.0000 100.0000  81.0000  64.0000  49.0000  36.0000  25.0000  16.0000   9.0000   4.0000   1.0000   0.0000
+   0.0000   0.0000   1.0000   2.0000   3.0000   4.0000   5.0000   6.0000   7.0000   8.0000   9.0000  10.0000  11.0000
+   0.0000   0.0000   1.0000   2.0000   3.0000   4.0000   5.0000   6.0000   7.0000   8.0000   9.0000  10.0000  11.0000
+   1.0000   1.0000   0.0000   1.0000   2.0000   3.0000   4.0000   5.0000   6.0000   7.0000   8.0000   9.0000  10.0000
+   2.0000   2.0000   1.0000   0.0000   1.0000   2.0000   3.0000   4.0000   5.0000   6.0000   7.0000   8.0000   9.0000
+   3.0000   3.0000   2.0000   1.0000   0.0000   1.0000   2.0000   3.0000   4.0000   5.0000   6.0000   7.0000   8.0000
+   4.0000   4.0000   3.0000   2.0000   1.0000   0.0000   1.0000   2.0000   3.0000   4.0000   5.0000   6.0000   7.0000
+   5.0000   5.0000   4.0000   3.0000   2.0000   1.0000   0.0000   1.0000   2.0000   3.0000   4.0000   5.0000   6.0000
+   6.0000   6.0000   5.0000   4.0000   3.0000   2.0000   1.0000   0.0000   1.0000   2.0000   3.0000   4.0000   5.0000
+   7.0000   7.0000   6.0000   5.0000   4.0000   3.0000   2.0000   1.0000   0.0000   1.0000   2.0000   3.0000   4.0000
+   8.0000   8.0000   7.0000   6.0000   5.0000   4.0000   3.0000   2.0000   1.0000   0.0000   1.0000   2.0000   3.0000
+   9.0000   9.0000   8.0000   7.0000   6.0000   5.0000   4.0000   3.0000   2.0000   1.0000   0.0000   1.0000   2.0000
+  10.0000  10.0000   9.0000   8.0000   7.0000   6.0000   5.0000   4.0000   3.0000   2.0000   1.0000   0.0000   1.0000
+  11.0000  11.0000  10.0000   9.0000   8.0000   7.0000   6.0000   5.0000   4.0000   3.0000   2.0000   1.0000   0.0000
diff --git a/regtest/analysis/rt-calc-dissims/mymatrix2.dat.reference b/regtest/analysis/rt-calc-dissims/mymatrix2.dat.reference
index 5ed581592..bc2c5ae13 100644
--- a/regtest/analysis/rt-calc-dissims/mymatrix2.dat.reference
+++ b/regtest/analysis/rt-calc-dissims/mymatrix2.dat.reference
@@ -1,5 +1,5 @@
-   0.0000   1.0000   9.0000  25.0000  49.0000
-   1.0000   0.0000   4.0000  16.0000  36.0000
-   9.0000   4.0000   0.0000   4.0000  16.0000
-  25.0000  16.0000   4.0000   0.0000   4.0000
-  49.0000  36.0000  16.0000   4.0000   0.0000
+   0.0000   1.0000   3.0000   5.0000   7.0000
+   1.0000   0.0000   2.0000   4.0000   6.0000
+   3.0000   2.0000   0.0000   2.0000   4.0000
+   5.0000   4.0000   2.0000   0.0000   2.0000
+   7.0000   6.0000   4.0000   2.0000   0.0000
diff --git a/regtest/analysis/rt-calc-dissims/mymatrix3.dat.reference b/regtest/analysis/rt-calc-dissims/mymatrix3.dat.reference
index 964f0140e..c41cddfd7 100644
--- a/regtest/analysis/rt-calc-dissims/mymatrix3.dat.reference
+++ b/regtest/analysis/rt-calc-dissims/mymatrix3.dat.reference
@@ -1,6 +1,6 @@
-   0.0000   1.0000   4.0000   9.0000  16.0000  25.0000
-   1.0000   0.0000   1.0000   4.0000   9.0000  16.0000
-   4.0000   1.0000   0.0000   1.0000   4.0000   9.0000
-   9.0000   4.0000   1.0000   0.0000   1.0000   4.0000
-  16.0000   9.0000   4.0000   1.0000   0.0000   1.0000
-  25.0000  16.0000   9.0000   4.0000   1.0000   0.0000
+   0.0000   1.0000   2.0000   3.0000   4.0000   5.0000
+   1.0000   0.0000   1.0000   2.0000   3.0000   4.0000
+   2.0000   1.0000   0.0000   1.0000   2.0000   3.0000
+   3.0000   2.0000   1.0000   0.0000   1.0000   2.0000
+   4.0000   3.0000   2.0000   1.0000   0.0000   1.0000
+   5.0000   4.0000   3.0000   2.0000   1.0000   0.0000
diff --git a/regtest/analysis/rt-reselect-land/mymatrix.dat.reference b/regtest/analysis/rt-reselect-land/mymatrix.dat.reference
index a63e08105..328f27d32 100644
--- a/regtest/analysis/rt-reselect-land/mymatrix.dat.reference
+++ b/regtest/analysis/rt-reselect-land/mymatrix.dat.reference
@@ -1,2 +1,2 @@
-   0.0000   0.0171
-   0.0171   0.0000
+   0.0000   0.1308
+   0.1308   0.0000
diff --git a/src/analysis/PrintDissimilarityMatrix.cpp b/src/analysis/PrintDissimilarityMatrix.cpp
index f90f0a339..8fd4e2cd7 100644
--- a/src/analysis/PrintDissimilarityMatrix.cpp
+++ b/src/analysis/PrintDissimilarityMatrix.cpp
@@ -71,7 +71,7 @@ void PrintDissimilarityMatrix::performAnalysis(){
   std::string ofmt=" "+fmt;
   OFile ofile; ofile.setBackupString("analysis"); ofile.open(fname); 
   for(unsigned i=0;i<getNumberOfDataPoints();++i){
-      for(unsigned j=0;j<getNumberOfDataPoints();++j) ofile.printf(ofmt.c_str(), mydata->getDissimilarity( i,j ) );
+      for(unsigned j=0;j<getNumberOfDataPoints();++j) ofile.printf(ofmt.c_str(), sqrt( mydata->getDissimilarity( i,j ) ) );
       ofile.printf("\n");
   }   
   ofile.close();
diff --git a/src/analysis/ReadDissimilarityMatrix.cpp b/src/analysis/ReadDissimilarityMatrix.cpp
index 717803ac1..e52b3f6f0 100644
--- a/src/analysis/ReadDissimilarityMatrix.cpp
+++ b/src/analysis/ReadDissimilarityMatrix.cpp
@@ -156,7 +156,7 @@ unsigned ReadDissimilarityMatrix::getNumberOfDataPoints() const {
 }
 
 double ReadDissimilarityMatrix::getDissimilarity( const unsigned& iframe, const unsigned& jframe ){
-  return dissimilarities( iframe, jframe );
+  return dissimilarities( iframe, jframe )*dissimilarities( iframe, jframe );
 }
 
 ReferenceConfiguration* ReadDissimilarityMatrix::getReferenceConfiguration( const unsigned& idata, const bool& calcdist ){
diff --git a/src/dimred/DimensionalityReductionBase.cpp b/src/dimred/DimensionalityReductionBase.cpp
index ec7c165c9..32c30f8ec 100644
--- a/src/dimred/DimensionalityReductionBase.cpp
+++ b/src/dimred/DimensionalityReductionBase.cpp
@@ -79,7 +79,7 @@ void DimensionalityReductionBase::performAnalysis(){
       }
   }
   // Calculate matrix of dissimilarities
-  Matrix<double> targets( getNumberOfDataPoints(), getNumberOfDataPoints() );
+  Matrix<double> targets( getNumberOfDataPoints(), getNumberOfDataPoints() ); targets=0;
   for(unsigned i=1;i<getNumberOfDataPoints();++i){
      for(unsigned j=0;j<i;++j) targets(i,j)=targets(j,i)=getDissimilarity( i, j );
   }
-- 
GitLab