4283105c95b5748e7216e477b8036d93ec0de3a5
3 double square_test (VSArray p
, void* _dat
){
5 for(int k
=0; k
<p
.len
;k
++){
6 val
+=(k
+1)*3*(p
.dat
[k
]-k
)*(p
.dat
[k
]-k
);
11 void test_gradientoptimizer(){
14 fprintf(stderr
,"********** Gradient Optimizer Test:\n");
16 for(int i
=0; i
<numruns
; i
++){
18 VSArray params
= vs_array_new(i
+1);
19 VSArray stepsizes
= vs_array_new(i
+1);
20 for(int k
=0; k
<i
+1; k
++){
22 stepsizes
.dat
[k
]= 0.1;
25 VSArray result
= vsGradientDescent(square_test
, params
, NULL
, 50, stepsizes
, 1e-15, &residual
);
26 fprintf(stderr
,"** %iD: residual %lg :", i
+1, residual
);
27 vs_array_print(result
, stderr
);
28 fprintf(stderr
,"***\n");
29 test_bool(residual
<1e-10);
30 vs_array_free(result
);
31 vs_array_free(params
);