2 /* Originator: James Troup <james@nocrew.org> */
4 /* { dg-do compile } */
5 /* { dg-options "-g -O1" } */
7 extern __inline
double sqrt (double __x
)
10 __asm ("fsqrtd %1,%0" : "=f" (__r
) : "f" (__x
));
14 static double our_skew
, max_update_skew
;
16 static double Sqr(double x
)
21 void REF_SetReference(double skew
)
23 double previous_skew
, new_skew
;
24 double old_weight
, new_weight
, sum_weight
;
25 double delta_freq1
, delta_freq2
;
28 previous_skew
= our_skew
;
29 skew1
= sqrt((Sqr(delta_freq1
) * old_weight
+ Sqr(delta_freq2
) * new_weight
) / sum_weight
);
30 skew2
= (previous_skew
* old_weight
+ new_skew
* new_weight
) / sum_weight
;
31 our_skew
= skew1
+ skew2
;