[BAEL-7530] Fix Norm calculation by performing sqrt operation (#15846)

Co-authored-by: rajatgarg <rajatgarg@adobe.com>
This commit is contained in:
Rajat Garg 2024-02-12 22:59:51 +05:30 committed by GitHub
parent 9a7e33f5df
commit 5e91827680
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 5 additions and 5 deletions

View File

@ -63,7 +63,7 @@ public class VectorAPIExamples {
public float[] scalarNormOfTwoArrays(float[] arr1, float[] arr2) { public float[] scalarNormOfTwoArrays(float[] arr1, float[] arr2) {
float[] finalResult = new float[arr1.length]; float[] finalResult = new float[arr1.length];
for (int i = 0; i < arr1.length; i++) { for (int i = 0; i < arr1.length; i++) {
finalResult[i] = (arr1[i] * arr1[i] + arr2[i] * arr2[i]) * -1.0f; finalResult[i] = (float) Math.sqrt(arr1[i] * arr1[i] + arr2[i] * arr2[i]);
} }
return finalResult; return finalResult;
} }
@ -77,13 +77,13 @@ public class VectorAPIExamples {
var vb = FloatVector.fromArray(PREFERRED_SPECIES, arr2, i); var vb = FloatVector.fromArray(PREFERRED_SPECIES, arr2, i);
var vc = va.mul(va) var vc = va.mul(va)
.add(vb.mul(vb)) .add(vb.mul(vb))
.neg(); .sqrt();
vc.intoArray(finalResult, i); vc.intoArray(finalResult, i);
} }
// tail cleanup // tail cleanup
for (; i < arr1.length; i++) { for (; i < arr1.length; i++) {
finalResult[i] = (arr1[i] * arr1[i] + arr2[i] * arr2[i]) * -1.0f; finalResult[i] = (float) Math.sqrt(arr1[i] * arr1[i] + arr2[i] * arr2[i]);
} }
return finalResult; return finalResult;
} }

View File

@ -28,7 +28,7 @@ public class VectorAPIUnitTest {
public void whenTwoValuesProvided_thenComputeScalarNorm() { public void whenTwoValuesProvided_thenComputeScalarNorm() {
float[] arr1 = { 1, 2.3f }; float[] arr1 = { 1, 2.3f };
float[] arr2 = { 1.3f, 2.0f }; float[] arr2 = { 1.3f, 2.0f };
float[] result = { -2.6899998f, -9.29f }; float[] result = { 1.6401219f, 3.047950f };
Assertions.assertArrayEquals(result, vector.scalarNormOfTwoArrays(arr1, arr2)); Assertions.assertArrayEquals(result, vector.scalarNormOfTwoArrays(arr1, arr2));
} }
@ -36,7 +36,7 @@ public class VectorAPIUnitTest {
public void whenTwoValuesProvided_thenComputeVectorNorm() { public void whenTwoValuesProvided_thenComputeVectorNorm() {
float[] arr1 = { 1, 2.3f }; float[] arr1 = { 1, 2.3f };
float[] arr2 = { 1.3f, 2.0f }; float[] arr2 = { 1.3f, 2.0f };
float[] result = { -2.6899998f, -9.29f }; float[] result = { 1.6401219f, 3.047950f };
Assertions.assertArrayEquals(result, vector.vectorNormalForm(arr1, arr2)); Assertions.assertArrayEquals(result, vector.vectorNormalForm(arr1, arr2));
} }