1 /* { dg-do compile { target { powerpc*-*-* } } } */
2 /* { dg-skip-if "" { powerpc*-*-darwin* } } */
3 /* { dg-options "-O2 -ffast-math -mdejagnu-cpu=power7" } */
4 /* { dg-require-effective-target powerpc_vsx } */
12 double vx
, vy
, vz
, vw
, dx
, dy
, dz
;
19 double r
, r0
, xt
, yt
, zt
;
20 double lcutoff
, cutoff
, get_f_variable ();
22 int inbond
, inangle
, i
;
23 ATOM
*a1
, *a2
, *bonded
[10], *angled
[10];
25 int uselist (), nuse
, used
;
27 int a_number (), inbuffer
;
28 double (*buffer
)[], xx
, yy
, zz
, k
;
29 int invector
, atomsused
, ii
, jj
, imax
;
34 dielectric
= get_f_variable ("dielec");
36 for (jj
= 1; jj
< imax
; jj
++, a1
= bp
)
38 if ((*use
)[used
] == a1
)
42 while ((*use
)[used
] != a1
)
44 for (i
= 0; i
< inbuffer
; i
++)
47 xx
= a1
->x
+ lambda
* a1
->dx
;
48 yy
= a1
->y
+ lambda
* a1
->dy
;
49 zz
= a1
->z
+ lambda
* a1
->dz
;
50 for (i
= 0; i
< inbuffer
; i
++)
52 xt
= xx
- (*buffer
)[3 * i
];
53 yt
= yy
- (*buffer
)[3 * i
+ 1];
54 zt
= zz
- (*buffer
)[3 * i
+ 2];
55 r
= xt
* xt
+ yt
* yt
+ zt
* zt
;
60 -a1
->q
* (*atms
)[i
]->q
* dielectric
* exp (-r0
/ rdebye
) *
61 (1. / (rdebye
* r0
) + 1. / r
);
62 k
+= a1
->a
* (*atms
)[i
]->a
/ r
/ r0
* 6;
63 k
-= a1
->b
* (*atms
)[i
]->b
/ r
/ r
/ r0
* 12;
64 (*vector
)[3 * i
] = xt
* k
;
65 (*vector
)[3 * i
+ 1] = yt
* k
;
66 (*vector
)[3 * i
+ 2] = zt
* k
;