mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-01 22:58:47 -04:00
Add new pa_reduce() and pa_gcd() functions
This commit is contained in:
parent
98049fbf81
commit
c850aa0c5b
2 changed files with 27 additions and 0 deletions
|
|
@ -2487,3 +2487,27 @@ pa_bool_t pa_in_valgrind(void) {
|
||||||
return b > 1;
|
return b > 1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
unsigned pa_gcd(unsigned a, unsigned b) {
|
||||||
|
|
||||||
|
while (b > 0) {
|
||||||
|
unsigned t = b;
|
||||||
|
b = a % b;
|
||||||
|
a = t;
|
||||||
|
}
|
||||||
|
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
|
||||||
|
void pa_reduce(unsigned *num, unsigned *den) {
|
||||||
|
|
||||||
|
unsigned gcd = pa_gcd(*num, *den);
|
||||||
|
|
||||||
|
if (gcd <= 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
*num /= gcd;
|
||||||
|
*den /= gcd;
|
||||||
|
|
||||||
|
pa_assert(pa_gcd(*num, *den) == 1);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -206,4 +206,7 @@ static inline pa_bool_t pa_in_valgrind(void) {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
unsigned pa_gcd(unsigned a, unsigned b);
|
||||||
|
void pa_reduce(unsigned *num, unsigned *den);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue