test_class.declarator: reference
test_class.modifier: private
test_class.original_string: private List<Vector> reference;
test_class.type: List<Vector>
test_class.var_name: reference
test_class.declarator: candidate
test_class.modifier: private
test_class.original_string: private List<Vector> candidate;
test_class.type: List<Vector>
test_class.var_name: candidate
test_class.file: singa-mathematics/src/test/java/bio/singa/mathematics/algorithms/superimposition/VectorSuperimposerTest.java
test_class.identifier: VectorSuperimposerTest
test_case.body: @Test
      void calculateIdealSuperimposition() {
          VectorSuperimposition vectorSuperimposition = VectorSuperimposer.calculateIdealVectorSuperimposition(reference, candidate);
          assertEquals(0.19986139479017428, vectorSuperimposition.getRmsd(), 0.1E-6);
      }
test_case.class_method_signature: VectorSuperimposerTest.calculateIdealSuperimposition()
test_case.full_signature: @Test void calculateIdealSuperimposition()
test_case.identifier: calculateIdealSuperimposition
test_case.invocations: calculateIdealVectorSuperimposition assertEquals getRmsd
test_case.modifiers: @Test
test_case.parameters: ()
test_case.return: void
test_case.signature: void calculateIdealSuperimposition()
focal_class.file: singa-mathematics/src/main/java/bio/singa/mathematics/algorithms/superimposition/VectorSuperimposer.java
focal_class.identifier: VectorSuperimposer
focal_class.class_method_signature: VectorSuperimposer.VectorSuperimposer(List<Vector> reference, List<Vector> candidate)
focal_class.full_signature: private  VectorSuperimposer(List<Vector> reference, List<Vector> candidate)
focal_class.identifier: VectorSuperimposer
focal_class.modifiers: private
focal_class.parameters: (List<Vector> reference, List<Vector> candidate)
focal_class.signature:  VectorSuperimposer(List<Vector> reference, List<Vector> candidate)
focal_class.class_method_signature: VectorSuperimposer.calculateVectorSuperimposition(List<Vector> reference, List<Vector> candidate)
focal_class.full_signature: public static VectorSuperimposition<Vector> calculateVectorSuperimposition(List<Vector> reference, List<Vector> candidate)
focal_class.identifier: calculateVectorSuperimposition
focal_class.modifiers: public static
focal_class.parameters: (List<Vector> reference, List<Vector> candidate)
focal_class.return: VectorSuperimposition<Vector>
focal_class.signature: VectorSuperimposition<Vector> calculateVectorSuperimposition(List<Vector> reference, List<Vector> candidate)
focal_class.class_method_signature: VectorSuperimposer.calculateIdealVectorSuperimposition(List<Vector> reference, List<Vector> candidate)
focal_class.full_signature: public static VectorSuperimposition calculateIdealVectorSuperimposition(List<Vector> reference, List<Vector> candidate)
focal_class.identifier: calculateIdealVectorSuperimposition
focal_class.modifiers: public static
focal_class.parameters: (List<Vector> reference, List<Vector> candidate)
focal_class.return: VectorSuperimposition
focal_class.signature: VectorSuperimposition calculateIdealVectorSuperimposition(List<Vector> reference, List<Vector> candidate)
focal_class.class_method_signature: VectorSuperimposer.calculateKuhnMunkresSuperimposition(List<Vector> reference, List<Vector> candidate)
focal_class.full_signature: public static VectorSuperimposition calculateKuhnMunkresSuperimposition(List<Vector> reference, List<Vector> candidate)
focal_class.identifier: calculateKuhnMunkresSuperimposition
focal_class.modifiers: public static
focal_class.parameters: (List<Vector> reference, List<Vector> candidate)
focal_class.return: VectorSuperimposition
focal_class.signature: VectorSuperimposition calculateKuhnMunkresSuperimposition(List<Vector> reference, List<Vector> candidate)
focal_class.class_method_signature: VectorSuperimposer.center()
focal_class.full_signature: @Override protected void center()
focal_class.identifier: center
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void center()
focal_class.class_method_signature: VectorSuperimposer.calculateSuperimposition()
focal_class.full_signature: @Override protected VectorSuperimposition<Vector> calculateSuperimposition()
focal_class.identifier: calculateSuperimposition
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: VectorSuperimposition<Vector>
focal_class.signature: VectorSuperimposition<Vector> calculateSuperimposition()
focal_class.class_method_signature: VectorSuperimposer.applyMapping()
focal_class.full_signature: @Override protected void applyMapping()
focal_class.identifier: applyMapping
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void applyMapping()
focal_class.class_method_signature: VectorSuperimposer.calculateTranslation()
focal_class.full_signature: private void calculateTranslation()
focal_class.identifier: calculateTranslation
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void calculateTranslation()
focal_class.class_method_signature: VectorSuperimposer.calculateRotation()
focal_class.full_signature: private void calculateRotation()
focal_class.identifier: calculateRotation
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void calculateRotation()
focal_class.class_method_signature: VectorSuperimposer.calculateIdealSuperimposition()
focal_class.full_signature: private VectorSuperimposition calculateIdealSuperimposition()
focal_class.identifier: calculateIdealSuperimposition
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: VectorSuperimposition
focal_class.signature: VectorSuperimposition calculateIdealSuperimposition()
focal_class.class_method_signature: VectorSuperimposer.calculateKuhnMunkresSuperimposition()
focal_class.full_signature: private VectorSuperimposition calculateKuhnMunkresSuperimposition()
focal_class.identifier: calculateKuhnMunkresSuperimposition
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: VectorSuperimposition
focal_class.signature: VectorSuperimposition calculateKuhnMunkresSuperimposition()
focal_class.superclass: extends AbstractSuperimposer<Vector>
focal_method.body: private VectorSuperimposition calculateIdealSuperimposition() {
          Optional<VectorSuperimposition<Vector>> optionalSuperimposition = StreamPermutations.of(
                  candidate.toArray(new Vector[0]))
                  .parallel()
                  .map(s -> s.collect(Collectors.toList()))
                  .map(permutedCandidates -> new VectorSuperimposer(reference, permutedCandidates)
                          .calculateSuperimposition())
                  .reduce((VectorSuperimposition<Vector> s1, VectorSuperimposition<Vector> s2) ->
                          s1.getRmsd() < s2.getRmsd() ? s1 : s2);
          return optionalSuperimposition.orElse(null);
      }
focal_method.class_method_signature: VectorSuperimposer.calculateIdealSuperimposition()
focal_method.full_signature: private VectorSuperimposition calculateIdealSuperimposition()
focal_method.identifier: calculateIdealSuperimposition
focal_method.invocations: reduce map map parallel of toArray collect toList calculateSuperimposition getRmsd getRmsd orElse
focal_method.modifiers: private
focal_method.parameters: ()
focal_method.return: VectorSuperimposition
focal_method.signature: VectorSuperimposition calculateIdealSuperimposition()