avutil/eval: change sqrt to hypot
authorGanesh Ajjanagadde <gajjanagadde@gmail.com>
Sat, 14 Nov 2015 17:04:53 +0000 (12:04 -0500)
committerGanesh Ajjanagadde <gajjanagadde@gmail.com>
Sat, 21 Nov 2015 13:51:49 +0000 (08:51 -0500)
This improves the mathematical behavior of hypotenuse computation.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
libavutil/eval.c

index 7642b91..44129d6 100644 (file)
@@ -299,7 +299,7 @@ static double eval_expr(Parser *p, AVExpr *e)
                 case e_add: return e->value * (d + d2);
                 case e_last:return e->value * d2;
                 case e_st : return e->value * (p->var[av_clip(d, 0, VARS-1)]= d2);
-                case e_hypot:return e->value * (sqrt(d*d + d2*d2));
+                case e_hypot:return e->value * hypot(d, d2);
                 case e_bitand: return isnan(d) || isnan(d2) ? NAN : e->value * ((long int)d & (long int)d2);
                 case e_bitor:  return isnan(d) || isnan(d2) ? NAN : e->value * ((long int)d | (long int)d2);
             }