Skip to content

Commit

Permalink
feat: add BoundsFloat32Array() to utils module in @observerly/iris
Browse files Browse the repository at this point in the history
feat: add BoundsFloat32Array() to utils module in @observerly/iris
  • Loading branch information
michealroberts committed Oct 5, 2024
1 parent e8b9662 commit 3e5c2f7
Show file tree
Hide file tree
Showing 3 changed files with 176 additions and 63 deletions.
132 changes: 69 additions & 63 deletions coverage.txt
Original file line number Diff line number Diff line change
Expand Up @@ -113,48 +113,54 @@ github.com/observerly/iris/pkg/qsort/qsort.go:129.2,131.27 2 2
github.com/observerly/iris/pkg/qsort/qsort.go:131.27,132.19 1 7
github.com/observerly/iris/pkg/qsort/qsort.go:132.19,134.4 1 6
github.com/observerly/iris/pkg/qsort/qsort.go:138.2,138.30 1 2
github.com/observerly/iris/pkg/utils/array.go:14.57,15.22 1 2
github.com/observerly/iris/pkg/utils/array.go:15.22,17.3 1 1
github.com/observerly/iris/pkg/utils/array.go:19.2,21.19 2 1
github.com/observerly/iris/pkg/utils/array.go:21.19,23.3 1 10
github.com/observerly/iris/pkg/utils/array.go:25.2,25.15 1 1
github.com/observerly/iris/pkg/utils/array.go:34.62,35.22 1 2
github.com/observerly/iris/pkg/utils/array.go:35.22,37.3 1 1
github.com/observerly/iris/pkg/utils/array.go:39.2,41.19 2 1
github.com/observerly/iris/pkg/utils/array.go:41.19,43.3 1 10
github.com/observerly/iris/pkg/utils/array.go:45.2,45.15 1 1
github.com/observerly/iris/pkg/utils/array.go:54.62,55.22 1 2
github.com/observerly/iris/pkg/utils/array.go:55.22,57.3 1 1
github.com/observerly/iris/pkg/utils/array.go:59.2,61.19 2 1
github.com/observerly/iris/pkg/utils/array.go:61.19,63.3 1 10
github.com/observerly/iris/pkg/utils/array.go:65.2,65.15 1 1
github.com/observerly/iris/pkg/utils/array.go:74.74,75.22 1 3
github.com/observerly/iris/pkg/utils/array.go:75.22,77.3 1 1
github.com/observerly/iris/pkg/utils/array.go:79.2,81.19 2 2
github.com/observerly/iris/pkg/utils/array.go:81.19,84.17 2 20
github.com/observerly/iris/pkg/utils/array.go:84.17,86.4 1 3
github.com/observerly/iris/pkg/utils/array.go:86.9,88.4 1 17
github.com/observerly/iris/pkg/utils/array.go:91.2,91.15 1 2
github.com/observerly/iris/pkg/utils/array.go:100.56,101.17 1 1
github.com/observerly/iris/pkg/utils/array.go:101.17,103.3 1 0
github.com/observerly/iris/pkg/utils/array.go:105.2,107.22 2 1
github.com/observerly/iris/pkg/utils/array.go:107.22,109.3 1 10
github.com/observerly/iris/pkg/utils/array.go:111.2,111.35 1 1
github.com/observerly/iris/pkg/utils/array.go:120.58,121.17 1 3
github.com/observerly/iris/pkg/utils/array.go:121.17,123.3 1 0
github.com/observerly/iris/pkg/utils/array.go:125.2,127.19 2 3
github.com/observerly/iris/pkg/utils/array.go:127.19,128.20 1 21
github.com/observerly/iris/pkg/utils/array.go:128.20,130.30 1 72
github.com/observerly/iris/pkg/utils/array.go:130.30,132.5 1 1
github.com/observerly/iris/pkg/utils/array.go:134.4,134.20 1 71
github.com/observerly/iris/pkg/utils/array.go:134.20,135.13 1 0
github.com/observerly/iris/pkg/utils/array.go:138.4,138.19 1 71
github.com/observerly/iris/pkg/utils/array.go:141.3,141.26 1 20
github.com/observerly/iris/pkg/utils/array.go:144.2,144.15 1 2
github.com/observerly/iris/pkg/utils/array.go:152.51,155.22 2 2
github.com/observerly/iris/pkg/utils/array.go:155.22,156.23 1 3
github.com/observerly/iris/pkg/utils/array.go:156.23,158.4 1 15
github.com/observerly/iris/pkg/utils/array.go:161.2,161.10 1 2
github.com/observerly/iris/pkg/utils/array.go:27.57,28.22 1 2
github.com/observerly/iris/pkg/utils/array.go:28.22,30.3 1 1
github.com/observerly/iris/pkg/utils/array.go:32.2,34.19 2 1
github.com/observerly/iris/pkg/utils/array.go:34.19,36.3 1 10
github.com/observerly/iris/pkg/utils/array.go:38.2,38.15 1 1
github.com/observerly/iris/pkg/utils/array.go:49.62,50.22 1 2
github.com/observerly/iris/pkg/utils/array.go:50.22,52.3 1 1
github.com/observerly/iris/pkg/utils/array.go:54.2,56.19 2 1
github.com/observerly/iris/pkg/utils/array.go:56.19,58.3 1 10
github.com/observerly/iris/pkg/utils/array.go:60.2,60.15 1 1
github.com/observerly/iris/pkg/utils/array.go:71.62,72.22 1 2
github.com/observerly/iris/pkg/utils/array.go:72.22,74.3 1 1
github.com/observerly/iris/pkg/utils/array.go:76.2,78.19 2 1
github.com/observerly/iris/pkg/utils/array.go:78.19,80.3 1 10
github.com/observerly/iris/pkg/utils/array.go:82.2,82.15 1 1
github.com/observerly/iris/pkg/utils/array.go:93.74,94.22 1 3
github.com/observerly/iris/pkg/utils/array.go:94.22,96.3 1 1
github.com/observerly/iris/pkg/utils/array.go:98.2,100.19 2 2
github.com/observerly/iris/pkg/utils/array.go:100.19,103.17 2 20
github.com/observerly/iris/pkg/utils/array.go:103.17,105.4 1 3
github.com/observerly/iris/pkg/utils/array.go:105.9,107.4 1 17
github.com/observerly/iris/pkg/utils/array.go:110.2,110.15 1 2
github.com/observerly/iris/pkg/utils/array.go:121.56,122.17 1 1
github.com/observerly/iris/pkg/utils/array.go:122.17,124.3 1 0
github.com/observerly/iris/pkg/utils/array.go:126.2,128.22 2 1
github.com/observerly/iris/pkg/utils/array.go:128.22,130.3 1 10
github.com/observerly/iris/pkg/utils/array.go:132.2,132.35 1 1
github.com/observerly/iris/pkg/utils/array.go:143.58,144.17 1 3
github.com/observerly/iris/pkg/utils/array.go:144.17,146.3 1 0
github.com/observerly/iris/pkg/utils/array.go:148.2,150.19 2 3
github.com/observerly/iris/pkg/utils/array.go:150.19,151.20 1 21
github.com/observerly/iris/pkg/utils/array.go:151.20,153.30 1 72
github.com/observerly/iris/pkg/utils/array.go:153.30,155.5 1 1
github.com/observerly/iris/pkg/utils/array.go:157.4,157.20 1 71
github.com/observerly/iris/pkg/utils/array.go:157.20,158.13 1 0
github.com/observerly/iris/pkg/utils/array.go:161.4,161.19 1 71
github.com/observerly/iris/pkg/utils/array.go:164.3,164.26 1 20
github.com/observerly/iris/pkg/utils/array.go:167.2,167.15 1 2
github.com/observerly/iris/pkg/utils/array.go:177.51,180.22 2 2
github.com/observerly/iris/pkg/utils/array.go:180.22,181.23 1 3
github.com/observerly/iris/pkg/utils/array.go:181.23,183.4 1 15
github.com/observerly/iris/pkg/utils/array.go:186.2,186.10 1 2
github.com/observerly/iris/pkg/utils/array.go:196.57,200.22 2 1
github.com/observerly/iris/pkg/utils/array.go:200.22,201.14 1 12
github.com/observerly/iris/pkg/utils/array.go:201.14,203.4 1 2
github.com/observerly/iris/pkg/utils/array.go:203.9,203.21 1 10
github.com/observerly/iris/pkg/utils/array.go:203.21,205.4 1 4
github.com/observerly/iris/pkg/utils/array.go:208.2,208.17 1 1
github.com/observerly/iris/pkg/utils/fastrand.go:14.31,17.2 2 2
github.com/observerly/iris/pkg/utils/fastrand.go:24.31,25.15 1 2
github.com/observerly/iris/pkg/utils/fastrand.go:25.15,27.3 1 2
Expand All @@ -181,15 +187,15 @@ github.com/observerly/iris/pkg/utils/utils.go:81.4,81.20 1 0
github.com/observerly/iris/pkg/vcurve/vcurve.go:39.53,45.36 3 2
github.com/observerly/iris/pkg/vcurve/vcurve.go:45.36,48.3 2 42
github.com/observerly/iris/pkg/vcurve/vcurve.go:51.2,66.3 4 2
github.com/observerly/iris/pkg/vcurve/vcurve.go:70.65,73.2 2 23688
github.com/observerly/iris/pkg/vcurve/vcurve.go:70.65,73.2 2 24003
github.com/observerly/iris/pkg/vcurve/vcurve.go:76.75,78.30 1 1
github.com/observerly/iris/pkg/vcurve/vcurve.go:78.30,79.55 1 0
github.com/observerly/iris/pkg/vcurve/vcurve.go:83.2,83.20 1 1
github.com/observerly/iris/pkg/vcurve/vcurve.go:83.20,84.57 1 0
github.com/observerly/iris/pkg/vcurve/vcurve.go:88.2,88.40 1 1
github.com/observerly/iris/pkg/vcurve/vcurve.go:88.40,90.24 2 1128
github.com/observerly/iris/pkg/vcurve/vcurve.go:90.24,98.4 2 23688
github.com/observerly/iris/pkg/vcurve/vcurve.go:99.3,99.15 1 1128
github.com/observerly/iris/pkg/vcurve/vcurve.go:88.40,90.24 2 1143
github.com/observerly/iris/pkg/vcurve/vcurve.go:90.24,98.4 2 24003
github.com/observerly/iris/pkg/vcurve/vcurve.go:99.3,99.15 1 1143
github.com/observerly/iris/pkg/vcurve/vcurve.go:108.79,126.16 5 1
github.com/observerly/iris/pkg/vcurve/vcurve.go:126.16,128.3 1 0
github.com/observerly/iris/pkg/vcurve/vcurve.go:131.2,136.8 1 1
Expand Down Expand Up @@ -237,15 +243,15 @@ github.com/observerly/iris/pkg/statistics/stats.go:193.24,198.3 3 770008
github.com/observerly/iris/pkg/statistics/stats.go:202.2,204.11 2 5
github.com/observerly/iris/pkg/statistics/stats.go:218.100,224.24 3 3
github.com/observerly/iris/pkg/statistics/stats.go:224.24,226.7 2 769000
github.com/observerly/iris/pkg/statistics/stats.go:226.7,229.43 2 769132
github.com/observerly/iris/pkg/statistics/stats.go:226.7,229.43 2 769101
github.com/observerly/iris/pkg/statistics/stats.go:229.43,230.10 1 769000
github.com/observerly/iris/pkg/statistics/stats.go:234.3,234.16 1 769000
github.com/observerly/iris/pkg/statistics/stats.go:237.2,239.15 2 3
github.com/observerly/iris/pkg/statistics/stats.go:253.96,259.24 3 3
github.com/observerly/iris/pkg/statistics/stats.go:259.24,262.7 2 769000
github.com/observerly/iris/pkg/statistics/stats.go:262.7,266.43 3 769178
github.com/observerly/iris/pkg/statistics/stats.go:266.43,267.13 1 117
github.com/observerly/iris/pkg/statistics/stats.go:270.4,271.45 2 769061
github.com/observerly/iris/pkg/statistics/stats.go:262.7,266.43 3 769202
github.com/observerly/iris/pkg/statistics/stats.go:266.43,267.13 1 125
github.com/observerly/iris/pkg/statistics/stats.go:270.4,271.45 2 769077
github.com/observerly/iris/pkg/statistics/stats.go:271.45,272.10 1 769000
github.com/observerly/iris/pkg/statistics/stats.go:276.3,276.50 1 769000
github.com/observerly/iris/pkg/statistics/stats.go:281.2,283.11 2 3
Expand Down Expand Up @@ -444,7 +450,7 @@ github.com/observerly/iris/pkg/photometry/stars.go:67.101,73.2 3 2
github.com/observerly/iris/pkg/photometry/stars.go:80.97,111.2 13 1
github.com/observerly/iris/pkg/photometry/stars.go:121.119,125.25 2 95855
github.com/observerly/iris/pkg/photometry/stars.go:125.25,129.39 2 862695
github.com/observerly/iris/pkg/photometry/stars.go:129.39,132.4 2 862227
github.com/observerly/iris/pkg/photometry/stars.go:129.39,132.4 2 862263
github.com/observerly/iris/pkg/photometry/stars.go:135.2,137.23 2 95855
github.com/observerly/iris/pkg/photometry/stars.go:148.89,152.25 2 7
github.com/observerly/iris/pkg/photometry/stars.go:152.25,153.20 1 10253216
Expand All @@ -460,21 +466,21 @@ github.com/observerly/iris/pkg/photometry/stars.go:217.29,223.44 3 10420
github.com/observerly/iris/pkg/photometry/stars.go:223.44,226.4 2 10173
github.com/observerly/iris/pkg/photometry/stars.go:229.2,229.31 1 5
github.com/observerly/iris/pkg/photometry/stars.go:232.85,249.26 8 6
github.com/observerly/iris/pkg/photometry/stars.go:249.26,254.38 2 8582
github.com/observerly/iris/pkg/photometry/stars.go:254.38,255.41 1 18284
github.com/observerly/iris/pkg/photometry/stars.go:249.26,254.38 2 8581
github.com/observerly/iris/pkg/photometry/stars.go:254.38,255.41 1 18281
github.com/observerly/iris/pkg/photometry/stars.go:255.41,256.13 1 1130
github.com/observerly/iris/pkg/photometry/stars.go:259.4,259.39 1 17154
github.com/observerly/iris/pkg/photometry/stars.go:259.39,260.42 1 44144
github.com/observerly/iris/pkg/photometry/stars.go:259.4,259.39 1 17151
github.com/observerly/iris/pkg/photometry/stars.go:259.39,260.42 1 44135
github.com/observerly/iris/pkg/photometry/stars.go:260.42,261.14 1 4636
github.com/observerly/iris/pkg/photometry/stars.go:265.5,268.53 2 39508
github.com/observerly/iris/pkg/photometry/stars.go:268.53,275.22 5 224935
github.com/observerly/iris/pkg/photometry/stars.go:265.5,268.53 2 39499
github.com/observerly/iris/pkg/photometry/stars.go:268.53,275.22 5 224543
github.com/observerly/iris/pkg/photometry/stars.go:275.22,276.27 1 7278
github.com/observerly/iris/pkg/photometry/stars.go:283.3,293.17 5 1304
github.com/observerly/iris/pkg/photometry/stars.go:283.3,293.17 5 1303
github.com/observerly/iris/pkg/photometry/stars.go:293.17,295.4 1 180
github.com/observerly/iris/pkg/photometry/stars.go:295.9,296.24 1 1124
github.com/observerly/iris/pkg/photometry/stars.go:296.24,298.5 1 3966
github.com/observerly/iris/pkg/photometry/stars.go:300.4,300.38 1 1124
github.com/observerly/iris/pkg/photometry/stars.go:303.3,303.19 1 1304
github.com/observerly/iris/pkg/photometry/stars.go:295.9,296.24 1 1123
github.com/observerly/iris/pkg/photometry/stars.go:296.24,298.5 1 3957
github.com/observerly/iris/pkg/photometry/stars.go:300.4,300.38 1 1123
github.com/observerly/iris/pkg/photometry/stars.go:303.3,303.19 1 1303
github.com/observerly/iris/pkg/photometry/stars.go:306.2,309.31 3 6
github.com/observerly/iris/pkg/photometry/stars.go:319.106,321.26 1 3
github.com/observerly/iris/pkg/photometry/stars.go:321.26,324.71 2 665
Expand Down Expand Up @@ -509,7 +515,7 @@ github.com/observerly/iris/pkg/photometry/stars.go:454.43,457.29 2 116129
github.com/observerly/iris/pkg/photometry/stars.go:457.29,458.14 1 44028
github.com/observerly/iris/pkg/photometry/stars.go:461.5,465.47 3 72101
github.com/observerly/iris/pkg/photometry/stars.go:465.47,467.15 2 71847
github.com/observerly/iris/pkg/photometry/stars.go:467.15,469.7 1 54117
github.com/observerly/iris/pkg/photometry/stars.go:467.15,469.7 1 54125
github.com/observerly/iris/pkg/photometry/stars.go:471.5,472.18 2 72101
github.com/observerly/iris/pkg/photometry/stars.go:477.3,481.81 3 417
github.com/observerly/iris/pkg/photometry/stars.go:481.81,482.12 1 79
Expand Down
49 changes: 49 additions & 0 deletions pkg/utils/array.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,23 @@
/*****************************************************************************************************************/

// @author Michael Roberts <[email protected]>
// @package @observerly/iris
// @license Copyright © 2021-2024 observerly

/*****************************************************************************************************************/

package utils

/*****************************************************************************************************************/

import (
"errors"
"fmt"
"math"
)

/*****************************************************************************************************************/

/*
Add
Expand All @@ -25,6 +38,8 @@ func AddFloat32Array(a, b []float32) ([]float32, error) {
return s, nil
}

/*****************************************************************************************************************/

/*
Subtract
Expand All @@ -45,6 +60,8 @@ func SubtractFloat32Array(a, b []float32) ([]float32, error) {
return s, nil
}

/*****************************************************************************************************************/

/*
Multiply
Expand All @@ -65,6 +82,8 @@ func MultiplyFloat32Array(a, b []float32) ([]float32, error) {
return p, nil
}

/*****************************************************************************************************************/

/*
Divide
Expand All @@ -91,6 +110,8 @@ func DivideFloat32Array(a, b []float32, bMax float32) ([]float32, error) {
return d, nil
}

/*****************************************************************************************************************/

/*
Average
Expand All @@ -111,6 +132,8 @@ func AverageFloat32Array(a []float32) (float32, error) {
return sum / float32(len(a)), nil
}

/*****************************************************************************************************************/

/*
Mean
Expand Down Expand Up @@ -144,6 +167,8 @@ func MeanFloat32Arrays(a [][]float32) ([]float32, error) {
return m, nil
}

/*****************************************************************************************************************/

/*
Flatten2DUInt32Array
Expand All @@ -160,3 +185,27 @@ func Flatten2DUInt32Array(a [][]uint32) []float32 {

return f
}

/*****************************************************************************************************************/

/*
BoundsFloat32Array
Computes the minimum and maximum values of array a.
*/
func BoundsFloat32Array(a []float32) (float32, float32) {
// Set the initial min and max values:
min, max := float32(math.MaxFloat32-1), float32(0.0)

for _, j := range a {
if j < min {
min = j
} else if j > max {
max = j
}
}

return min, max
}

/*****************************************************************************************************************/
Loading

0 comments on commit 3e5c2f7

Please sign in to comment.