Thank you for pointing this out. But I'm not sure if you mean the following method, aka, the maximum singular values based comparison:
In[1007]:= n = 8;
PointSet = Partition[RandomReal[{-25, 25}, 15], n];
center1 = Total[PointSet]/Length[PointSet];
ReflectedSet =
ReflectionTransform[r1 = RandomReal[{-5, 5}, n],
r2 = RandomReal[{-5, 5}, n]][
Permute[PointSet, RandomPermutation[Length[PointSet]]]];
center2 = Total[ReflectedSet]/Length[ReflectedSet];
mid = (center1 + center2)/2;
dir = center2 - center1;
m1 = (ReflectionTransform[dir, mid] // TransformationMatrix);
m2 = (ReflectionTransform[r1, r2] // TransformationMatrix);
m1 // Norm // NumberForm[#, 50] &
m2 // Norm // NumberForm[#, 50] &
% == %%
m1 // SingularValueList // Max
m2 // SingularValueList // Max
(m1 // SingularValueDecomposition)[[2]]
(m2 // SingularValueDecomposition)[[2]]
Out[1016]//NumberForm= \!\(
TagBox[
InterpretationBox[
StyleBox["\<\"9.39454965386593\"\>",
ShowStringCharacters->False],
9.394549653865932,
AutoDelete->True],
NumberForm[#, 50]& ]\)
Out[1017]//NumberForm= \!\(
TagBox[
InterpretationBox[
StyleBox["\<\"9.39454965386593\"\>",
ShowStringCharacters->False],
9.394549653865932,
AutoDelete->True],
NumberForm[#, 50]& ]\)
Out[1018]= True
Out[1019]= 9.39455
Out[1020]= 9.39455
Out[1021]= {{9.39455, 0., 0., 0., 0., 0., 0., 0., 0.}, {0., 1., 0.,
0., 0., 0., 0., 0., 0.}, {0., 0., 1., 0., 0., 0., 0., 0., 0.}, {0.,
0., 0., 1., 0., 0., 0., 0., 0.}, {0., 0., 0., 0., 1., 0., 0., 0.,
0.}, {0., 0., 0., 0., 0., 1., 0., 0., 0.}, {0., 0., 0., 0., 0., 0.,
1., 0., 0.}, {0., 0., 0., 0., 0., 0., 0., 1., 0.}, {0., 0., 0., 0.,
0., 0., 0., 0., 0.106445}}
Out[1022]= {{9.39455, 0., 0., 0., 0., 0., 0., 0., 0.}, {0., 1., 0.,
0., 0., 0., 0., 0., 0.}, {0., 0., 1., 0., 0., 0., 0., 0., 0.}, {0.,
0., 0., 1., 0., 0., 0., 0., 0.}, {0., 0., 0., 0., 1., 0., 0., 0.,
0.}, {0., 0., 0., 0., 0., 1., 0., 0., 0.}, {0., 0., 0., 0., 0., 0.,
1., 0., 0.}, {0., 0., 0., 0., 0., 0., 0., 1., 0.}, {0., 0., 0., 0.,
0., 0., 0., 0., 0.106445}}