@@ -503,12 +503,12 @@ inline void strex_kick (cflw<M> &m, num_t lw, int is, bool no_k0l=false)
503
503
template <typename M, typename T=M::T, typename P=M::P, typename R=M::R>
504
504
inline void strex_kicks (cflw<M> &m, num_t lw, M &p, T &pz)
505
505
{
506
- if (fval (m.ks ) < minstr || fval (m.lrad ) < minlen) return ;
506
+ if (fabs (m.ks ) < minstr || fabs (m.lrad ) < minlen) return ;
507
507
508
- num_t wchg = lw*m.sdir *m. edir *m.charge ;
509
- P hss = lw*sqr (R (m.ks ));
508
+ num_t wchg = lw*m.edir *m.charge ; // lrad is already weighted by sdir
509
+ P hss = lw*R (m. lrad )* sqr (R (m.ks ));
510
510
T _dpp = inv (pz);
511
- T ang = 0.5 *wchg*R (m.ks )*R (m.lrad )*_dpp;
511
+ T ang = ( 0.5 *wchg) *R (m.ks )*R (m.lrad )*_dpp;
512
512
T ca = cos (ang), sa = sin (ang);
513
513
514
514
T nx = ca*p. x + sa*p. y;
@@ -527,7 +527,7 @@ inline void strex_kicks (cflw<M> &m, num_t lw, M &p, T &pz)
527
527
template <typename M, typename T=M::T, typename P=M::P, typename R=M::R>
528
528
inline void strex_kickhs (cflw<M> &m, num_t lw, int is)
529
529
{ (void )is;
530
- if ((!m.nmul && fval (m.ks ) < minstr) || !m.charge ) return ;
530
+ if ((!m.nmul && fabs (m.ks ) < minstr) || !m.charge ) return ;
531
531
532
532
mdump (0 );
533
533
num_t wchg = lw*m.sdir *m.edir *m.charge ;
0 commit comments