diff mbox series

[FFmpeg-devel] avutil/rational: Document what is to be expected from av_d2q() of doubles representing rational numbers

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

Checks

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

Commit Message

Michael Niedermayer Jan. 31, 2024, 7:47 p.m. UTC
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libavutil/rational.h | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Marvin Scholz Jan. 31, 2024, 8:30 p.m. UTC | #1
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".
Michael Niedermayer Jan. 31, 2024, 11:34 p.m. UTC | #2
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 mbox series

Patch

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