#include "adolc/adouble.h" #include "adolc/drivers/drivers.h" #include #include using namespace std; #define N_SAMPLES 4 #define N_IN 2 #define N_OUT 1 #define LAYERS 2 #define ELEMENTS_LAYER1 2 #define ELEMENTS_LAYER2 1 #define ELEMENTS_LAYER_MAX 2 #define WEIGHTS_LAYER_MAX 6 #define WEIGHTS 3 struct w_layer { int n; int w;}; adouble magnitude_squared(int n_x, adouble *x) { adouble r; r = 0.0; int j; for (j = 0; j>= error_p; trace_off(); gradient(1, n_w0, w0_p, grad_f); for (j = 0; j>= error_p; cout << setprecision(18) << error_p << endl; delete[] w0; delete[] grad_f;} int main() { int i, j, n_xor_ws0; struct w_layer xor_ws0_format[LAYERS]; xor_ws0_format[0].n = ELEMENTS_LAYER1; xor_ws0_format[1].n = ELEMENTS_LAYER2; xor_ws0_format[0].w = WEIGHTS; xor_ws0_format[1].w = WEIGHTS; n_xor_ws0 = 0; for (i = 0; i