#include <iostream>
#include <vector>
using namespace std;
double voltage(double v) {
return v;
}
double hdot(double h) {
return h * 2;
}
double ndot(double n) {
return n * 3;
}
typedef double(*eqpointer)(double);
int main() {
vector<eqpointer> ODE = { voltage, hdot, ndot };
int eq_num = ODE.size(); // quantity elements in ODE[]
vector<double> midvalues(eq_num);
for (int j = 0; j < eq_num; j++) {
midvalues[j] = (*ODE[j])((j + 1) * 10) / 2; // Value For Example
printf("midvalues[%d]: %f\n", j, midvalues[j]);
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgogICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiAgICBkb3VibGUgdm9sdGFnZShkb3VibGUgdikgewogICAgICAgIHJldHVybiB2OwogICAgfQogICAgZG91YmxlIGhkb3QoZG91YmxlIGgpIHsKICAgICAgICByZXR1cm4gaCAqIDI7CiAgICB9CiAgICBkb3VibGUgbmRvdChkb3VibGUgbikgewogICAgICAgIHJldHVybiBuICogMzsKICAgIH0KCiAgICB0eXBlZGVmIGRvdWJsZSgqZXFwb2ludGVyKShkb3VibGUpOwoKaW50IG1haW4oKSB7CiAgICB2ZWN0b3I8ZXFwb2ludGVyPiBPREUgPSB7IHZvbHRhZ2UsIGhkb3QsIG5kb3QgfTsKICAgIGludCBlcV9udW0gPSBPREUuc2l6ZSgpOyAvLyBxdWFudGl0eSBlbGVtZW50cyBpbiBPREVbXQogICAgdmVjdG9yPGRvdWJsZT4gbWlkdmFsdWVzKGVxX251bSk7CiAgICBmb3IgKGludCBqID0gMDsgaiA8IGVxX251bTsgaisrKSB7CiAgICAgICAgbWlkdmFsdWVzW2pdID0gKCpPREVbal0pKChqICsgMSkgKiAxMCkgLyAyOyAgLy8gVmFsdWUgRm9yIEV4YW1wbGUKICAgICAgICBwcmludGYoIm1pZHZhbHVlc1slZF06ICVmXG4iLCBqLCBtaWR2YWx1ZXNbal0pOwogICAgfQogICAgcmV0dXJuIDA7Cn0=