Message ID | 20240131194746.11309-1-michael@niedermayer.cc |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] avutil/rational: Document what is to be expected from av_d2q() of doubles representing rational numbers | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
On 31 Jan 2024, at 20:47, Michael Niedermayer wrote: > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> > --- > libavutil/rational.h | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/libavutil/rational.h b/libavutil/rational.h > index 8cbfc8e0669..c6ac9fb1d91 100644 > --- a/libavutil/rational.h > +++ b/libavutil/rational.h > @@ -168,6 +168,10 @@ static av_always_inline AVRational av_inv_q(AVRational q) > * In case of infinity, the returned value is expressed as `{1, 0}` or > * `{-1, 0}` depending on the sign. > * > + * In general rational numbers with |num| <= 1<<26 && |den| <= 1<<26 > + * can be recovered exactly from their double representation. > + * (no exceptions where found within 100M random ones) I think you meant „were“ here instead of „where“? > + * > * @param d `double` to convert > * @param max Maximum allowed numerator and denominator > * @return `d` in AVRational form > -- > 2.17.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
On Wed, Jan 31, 2024 at 09:30:44PM +0100, epirat07@gmail.com wrote: > > > On 31 Jan 2024, at 20:47, Michael Niedermayer wrote: > > > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> > > --- > > libavutil/rational.h | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/libavutil/rational.h b/libavutil/rational.h > > index 8cbfc8e0669..c6ac9fb1d91 100644 > > --- a/libavutil/rational.h > > +++ b/libavutil/rational.h > > @@ -168,6 +168,10 @@ static av_always_inline AVRational av_inv_q(AVRational q) > > * In case of infinity, the returned value is expressed as `{1, 0}` or > > * `{-1, 0}` depending on the sign. > > * > > + * In general rational numbers with |num| <= 1<<26 && |den| <= 1<<26 > > + * can be recovered exactly from their double representation. > > + * (no exceptions where found within 100M random ones) > > I think you meant „were“ here instead of „where“? fixed also tested 1B more cases and 1<<27 as a limit btw fails as is to be expected fro the amount of bits in the mantisse thx [...]
diff --git a/libavutil/rational.h b/libavutil/rational.h index 8cbfc8e0669..c6ac9fb1d91 100644 --- a/libavutil/rational.h +++ b/libavutil/rational.h @@ -168,6 +168,10 @@ static av_always_inline AVRational av_inv_q(AVRational q) * In case of infinity, the returned value is expressed as `{1, 0}` or * `{-1, 0}` depending on the sign. * + * In general rational numbers with |num| <= 1<<26 && |den| <= 1<<26 + * can be recovered exactly from their double representation. + * (no exceptions where found within 100M random ones) + * * @param d `double` to convert * @param max Maximum allowed numerator and denominator * @return `d` in AVRational form
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- libavutil/rational.h | 4 ++++ 1 file changed, 4 insertions(+)