1 | /* Implementation E */ |

2 | Y | = pair(table[n1+0],table[n2+0]); |

3 | F | = pair(table[n1+1],table[n2+1]); |

4 | G | = pair(table[n1+2],table[n2+2]); |

5 | H | = pair(table[n1+3],table[n2+3]); |

6 | GHeps | = __fpmadd(G,eps,H); |

7 | VV | =__fpmadd(Y,eps,__fpmadd(F,eps,GHeps)); |

8 | FF | = __fpmadd(F,eps, |

9 | __fpmadd(__fpadd(GHeps,GHeps),eps,H)); |

10 | force | =__fpmul(qq,FF); |

11 | energy | =__fpmadd(energy,VV,qq) |

12 | | |

13 | /* Implementation G */ |

14 | buf1 | = dual_load(table+n1+0); |

15 | buf2 | = cross_load(table+n2+0); |

16 | buf3 | = dual_load(table+n1+2); |

17 | buf4 | = cross_load(table+n2+2); |

18 | Y | = pair(primary(buf1), secondary(buf2)); |

19 | F | = pair(primary(buf2), secondary(buf1)); |

20 | G | = pair(primary(buf3), secondary(buf4)); |

21 | H | = pair(primary(buf4), secondary(buf3)); |

22 | epsx | = __fxmr(eps); |

23 | GHeps | = __fxmadd(G,H,eps); |

24 | VV | = __fxmadd(Y,__fxmadd(F,GHeps,epsx),eps); |

25 | FF | = __fxmadd(F, |

26 | __fxmadd(__fpadd(GHeps,GHeps),H,eps),epsx); |

27 | force | = __fxmul(FF,qq); |

28 | energy | = __fpmadd(energy,VV,qq) |

29 | | |

30 | /* Implementation I */ |

31 | buf3 | = dual_load(table+n1+2); |

32 | buf4 | = cross_load(table+n2+2); |

33 | Y | = pair(table[n1+0],table[n2+0]); |

34 | F | = pair(table[n1+1],table[n2+1]); |

35 | G | = pair(primary(buf3), secondary(buf4)); |

36 | H | = pair(primary(buf4), secondary(buf3)); |

37 | GHeps | = __fxmadd(G,H,eps); |

38 | VV | =__fpmadd(Y,eps,__fpmadd(F,eps,GHeps)); |

39 | FF | = __fpmadd(F,eps, |

40 | __fxmadd(__fpadd(GHeps,GHeps),H,eps)); |

41 | force | =__fpmul(qq,FF); |

42 | energy | =__fpmadd(energy,VV,qq) |