MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / scale_rational

Function scale_rational

modules/data/mp3/libmad/mad_timer.c:137–152  ·  view source on GitHub ↗

* NAME: scale_rational() * DESCRIPTION: solve numer/denom == ?/scale avoiding overflowing */

Source from the content-addressed store, hash-verified

135 * DESCRIPTION: solve numer/denom == ?/scale avoiding overflowing
136 */
137static
138unsigned long scale_rational(unsigned long numer, unsigned long denom,
139 unsigned long scale)
140{
141 reduce_rational(&numer, &denom);
142 reduce_rational(&scale, &denom);
143
144 assert(denom != 0);
145
146 if (denom < scale)
147 return numer * (scale / denom) + numer * (scale % denom) / denom;
148 if (denom < numer)
149 return scale * (numer / denom) + scale * (numer % denom) / denom;
150
151 return numer * scale / denom;
152}
153
154/*
155 * NAME: timer->set()

Callers 4

mad_timer_setFunction · 0.85
mad_timer_countFunction · 0.85
mad_timer_fractionFunction · 0.85
mad_timer_stringFunction · 0.85

Calls 2

reduce_rationalFunction · 0.85
assertFunction · 0.50

Tested by

no test coverage detected