#include #include using namespace Eigen; #ifndef SCALAR #define SCALAR float #endif #ifndef SIZE #define SIZE 10000 #endif #ifndef REPEAT #define REPEAT 10000 #endif typedef Matrix Vec; using namespace std; SCALAR E_VDW(const Vec &interactions1, const Vec &interactions2) { return (interactions2.cwise()/interactions1) .cwise().cube() .cwise().square() .cwise().square() .sum(); } int main() { // // 1 2 3 4 ... (interactions) // ka . . . . ... // rab . . . . ... // energy . . . . ... // ... ... ... ... ... ... // (variables // for // interaction) // Vec interactions1(SIZE), interactions2(SIZE); // SIZE is the number of vdw interactions in our system // SetupCalculations() SCALAR rab = 1.0; interactions1.setConstant(2.4); interactions2.setConstant(rab); // Energy() SCALAR energy = 0.0; for (unsigned int i = 0; i