diff --git a/core/src/superpose.cc b/core/src/superpose.cc index 51004902b8fa7c0d94c4b1620a1d066e908c2175..1d4fad622161e538c51eabf688360c73eb1381d6 100644 --- a/core/src/superpose.cc +++ b/core/src/superpose.cc @@ -25,6 +25,11 @@ void TheobaldRMSD(const promod3::core::EMatX3& pos_one, Real& rmsd, promod3::core::EMat3& rot){ + if(pos_one.rows() < 3){ + throw promod3::Error("Observed superposition with < 3 positions to " + "superpose!"); + } + promod3::core::EMat3 M = pos_one.transpose() * pos_two; // for the calculations itself we enforce double precision @@ -211,11 +216,6 @@ void Superpose(promod3::core::EMatX3& pos_one, throw promod3::Error("Cannot superpose positions of different size!"); } - if(pos_one.rows() < 3){ - throw promod3::Error("Observed superposition with < 3 positions to " - "superpose!"); - } - avg_one = AverageRow(pos_one); avg_two = AverageRow(pos_two);