Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
SWIFT
SWIFTsim
Commits
6d6bbcb1
Commit
6d6bbcb1
authored
May 21, 2018
by
Jacob Kegerreis
Browse files
Return the found index instead of using the pointer
parent
9a6f8a45
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/utilities.h
View file @
6d6bbcb1
...
...
@@ -27,12 +27,11 @@
* @param x The value to find
* @param array The array to search
* @param n The length of the array
* @param index The found index
*
*
S
et -1 and n for x below and above the array edge values respectively.
*
R
et
urn
-1 and n for x below and above the array edge values respectively.
*/
INLINE
static
void
find_value_in_monotonic_array
(
const
float
x
,
const
float
*
array
,
const
int
n
,
int
*
index
)
{
INLINE
static
int
find_value_in_monotonic_array
(
const
float
x
,
const
float
*
array
,
const
int
n
)
{
int
index_mid
,
index_low
=
0
,
index_high
=
n
;
...
...
@@ -49,11 +48,11 @@ INLINE static void find_value_in_monotonic_array(
// Set index with the found index_low or an error value if outside the array
if
(
x
<
array
[
0
])
*
index
=
-
1
;
return
-
1
;
else
if
(
array
[
n
-
1
]
<=
x
)
*
index
=
n
;
return
n
;
else
*
index
=
index_low
;
return
index_low
;
}
#endif
/* SWIFT_UTILITIES_H */
tests/testUtilities.c
View file @
6d6bbcb1
...
...
@@ -37,28 +37,28 @@ int main() {
// Typical value
x
=
42
.
42
f
;
find_value_in_monotonic_array
(
x
,
array
,
n
,
&
index
);
index
=
find_value_in_monotonic_array
(
x
,
array
,
n
);
if
(
index
!=
42
)
{
error
(
"Failed with a typical value "
);
}
// Value on array element
x
=
33
.
f
;
find_value_in_monotonic_array
(
x
,
array
,
n
,
&
index
);
index
=
find_value_in_monotonic_array
(
x
,
array
,
n
);
if
(
index
!=
33
)
{
error
(
"Failed with an array element "
);
}
// Value below array
x
=
-
123
.
f
;
find_value_in_monotonic_array
(
x
,
array
,
n
,
&
index
);
index
=
find_value_in_monotonic_array
(
x
,
array
,
n
);
if
(
index
!=
-
1
)
{
error
(
"Failed with a value below the array "
);
}
// Value above array
x
=
123
.
f
;
find_value_in_monotonic_array
(
x
,
array
,
n
,
&
index
);
index
=
find_value_in_monotonic_array
(
x
,
array
,
n
);
if
(
index
!=
n
)
{
error
(
"Failed with a value above the array "
);
}
...
...
@@ -66,7 +66,7 @@ int main() {
// Array slice with typical value
x
=
9
.
81
f
;
n
=
10
;
find_value_in_monotonic_array
(
x
,
array
+
5
,
n
,
&
index
);
index
=
find_value_in_monotonic_array
(
x
,
array
+
5
,
n
);
if
(
index
!=
4
)
{
error
(
"Failed with an array slice "
);
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment