[FFmpeg-cvslog] avutil/softfloat: fix av_sincos_sf()
Michael Niedermayer
git at videolan.org
Mon Oct 30 02:10:10 EET 2023
ffmpeg | branch: release/5.1 | Michael Niedermayer <michael at niedermayer.cc> | Tue Jun 20 00:59:40 2023 +0200| [706c44541ed6da16d352a55f3f80d9f48ca3c883] | committer: Michael Niedermayer
avutil/softfloat: fix av_sincos_sf()
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
(cherry picked from commit d84677abd8ffb8ca8ad94eced6d9e03928f35d79)
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=706c44541ed6da16d352a55f3f80d9f48ca3c883
---
libavutil/softfloat.h | 2 +-
libavutil/tests/softfloat.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavutil/softfloat.h b/libavutil/softfloat.h
index a651406f74..1520027ddc 100644
--- a/libavutil/softfloat.h
+++ b/libavutil/softfloat.h
@@ -281,7 +281,7 @@ static av_unused void av_sincos_sf(int a, int *s, int *c)
(int64_t)av_sintbl_4_sf[(idx & 0x1f) + 1] * (a & 0x7ff) +
0x400) >> 11);
- *c = (int)(((int64_t)cv * ct + (int64_t)sv * st + 0x20000000) >> 30);
+ *c = (int)(((int64_t)cv * ct - (int64_t)sv * st + 0x20000000) >> 30);
*s = (int)(((int64_t)cv * st + (int64_t)sv * ct + 0x20000000) >> 30);
}
diff --git a/libavutil/tests/softfloat.c b/libavutil/tests/softfloat.c
index c06de44933..a2e628fe81 100644
--- a/libavutil/tests/softfloat.c
+++ b/libavutil/tests/softfloat.c
@@ -148,7 +148,7 @@ int main(void){
av_sincos_sf(i*(1ULL<<32)/36/4, &s, &c);
errs = (double)s/ (1<<30) - sin(i*M_PI/36);
errc = (double)c/ (1<<30) - cos(i*M_PI/36);
- if (fabs(errs) > 0.00000002 || fabs(errc) >0.001) {
+ if (fabs(errs) > 0.000000004 || fabs(errc) >0.000000004) {
printf("sincos FAIL %d %f %f %f %f\n", i, (float)s/ (1<<30), (float)c/ (1<<30), sin(i*M_PI/36), cos(i*M_PI/36));
}
More information about the ffmpeg-cvslog
mailing list