@@ -369,13 +369,13 @@ inline double makeInf() {
369
369
return ADOLC_MATH_NSP::numeric_limits<double >::infinity ();
370
370
}
371
371
372
- #define FOR_I_EQ_0_LT_NUMDIR for (int _i = 0 ; _i < adouble::numDir; ++_i)
372
+ #define FOR_I_EQ_0_LT_NUMDIR for (decltype(adouble::numDir) _i = 0 ; _i < adouble::numDir; ++_i)
373
373
#define FOR_J_EQ_0_LT_DEGREE_FOR_I_EQ_0_LT_NUMDIR \
374
- for (int _j = 0 ; _j < adouble::degree; ++_j) \
375
- for (int _i = 0 ; _i < adouble::numDir; ++_i)
374
+ for (decltype(adouble::degree) _j = 0 ; _j < adouble::degree; ++_j) \
375
+ for (decltype(adouble::numDir) _i = 0 ; _i < adouble::numDir; ++_i)
376
376
#define FOR_I_EQ_0_LT_NUMDIR_FOR_J_EQ_0_LT_DEGREE \
377
- for (int _i = 0 ; _i < adouble::numDir; ++_i) \
378
- for (int _j = 0 ; _j < adouble::degree; ++_j)
377
+ for (decltype(adouble::numDir) _i = 0 ; _i < adouble::numDir; ++_i) \
378
+ for (decltype(adouble::degree) _j = 0 ; _j < adouble::degree; ++_j)
379
379
#define ADVAL_I adval[_i]
380
380
#define ADV_I adv[_i]
381
381
#define V_I v[_i]
@@ -647,11 +647,11 @@ inline adouble adouble::operator*(const adouble &a) const {
647
647
{
648
648
int i;
649
649
double sum = 0.0 ;
650
- for (int l = 0 ; l < numDir; l++) {
651
- for (int k = 0 ; k < degree; k++) {
650
+ for (size_t l = 0 ; l < numDir; l++) {
651
+ for (size_t k = 0 ; k < degree; k++) {
652
652
sum = val * a.ho_deriv [k][l] + ho_deriv[k][l] * a.val ;
653
653
i = k - 1 ;
654
- for (int j = 0 ; j < k; j++) {
654
+ for (size_t j = 0 ; j < k; j++) {
655
655
sum = sum + ho_deriv[j][l] * a.ho_deriv [i - j][l];
656
656
}
657
657
tmp.ho_deriv [k][l] = sum;
@@ -720,11 +720,11 @@ inline adouble adouble::operator/(const adouble &a) const {
720
720
{
721
721
int i;
722
722
double sum = 0.0 ;
723
- for (int l = 0 ; l < adouble::numDir; l++) {
724
- for (int k = 0 ; k < adouble::degree; k++) {
723
+ for (size_t l = 0 ; l < adouble::numDir; l++) {
724
+ for (size_t k = 0 ; k < adouble::degree; k++) {
725
725
sum = tmp.val * a.ho_deriv [k][l];
726
726
i = k - 1 ;
727
- for (int j = 0 ; j < k; j++) {
727
+ for (size_t j = 0 ; j < k; j++) {
728
728
sum += tmp.ho_deriv [j][l] * a.ho_deriv [i - j][l];
729
729
}
730
730
tmp.ho_deriv [k][l] = (1.0 / a.val ) * (ho_deriv[k][l] - sum);
@@ -757,11 +757,11 @@ inline adouble operator/(const double v, const adouble &a) {
757
757
{
758
758
int i;
759
759
double sum = 0.0 ;
760
- for (int l = 0 ; l < adouble::numDir; l++) {
761
- for (int k = 0 ; k < adouble::degree; k++) {
760
+ for (size_t l = 0 ; l < adouble::numDir; l++) {
761
+ for (size_t k = 0 ; k < adouble::degree; k++) {
762
762
sum = tmp.val * a.ho_deriv [k][l];
763
763
i = k - 1 ;
764
- for (int j = 0 ; j < k; j++) {
764
+ for (size_t j = 0 ; j < k; j++) {
765
765
sum += tmp.ho_deriv [j][l] * a.ho_deriv [i - j][l];
766
766
}
767
767
tmp.ho_deriv [k][l] = (1.0 / a.val ) * (-sum);
@@ -877,10 +877,10 @@ inline adouble exp(const adouble &a) {
877
877
double sum = 0 ;
878
878
int i;
879
879
FOR_I_EQ_0_LT_NUMDIR
880
- for (int k = 0 ; k < adouble::degree; k++) {
880
+ for (size_t k = 0 ; k < adouble::degree; k++) {
881
881
sum = tmp.val * (k + 1 ) * a.ho_deriv [k][_i];
882
882
i = k - 1 ;
883
- for (int j = 0 ; j < k; j++)
883
+ for (size_t j = 0 ; j < k; j++)
884
884
sum += tmp.ho_deriv [i - j][_i] * (j + 1.0 ) * a.ho_deriv [j][_i];
885
885
tmp.ho_deriv [k][_i] = (1.0 / (k + 1 )) * sum;
886
886
sum = 0.0 ;
@@ -915,11 +915,11 @@ inline adouble log(const adouble &a) {
915
915
{
916
916
int i;
917
917
double sum = 0.0 ;
918
- for (int l = 0 ; l < adouble::numDir; l++) {
919
- for (int k = 0 ; k < adouble::degree; k++) {
918
+ for (size_t l = 0 ; l < adouble::numDir; l++) {
919
+ for (size_t k = 0 ; k < adouble::degree; k++) {
920
920
// ho_deriv[i-j][l]
921
921
i = k - 1 ;
922
- for (int j = 0 ; j < k; j++)
922
+ for (size_t j = 0 ; j < k; j++)
923
923
sum += a.ho_deriv [i - j][l] * (j + 1 ) * tmp.ho_deriv [j][l];
924
924
tmp.ho_deriv [k][l] = (1.0 / (k + 1 )) * (1.0 / a.val ) *
925
925
((k + 1 ) * a.ho_deriv [k][l] - sum);
@@ -956,11 +956,11 @@ inline adouble sqrt(const adouble &a) {
956
956
{
957
957
int i;
958
958
double sum = 0.0 ;
959
- for (int l = 0 ; l < adouble::numDir; l++) {
960
- for (int k = 0 ; k < adouble::degree; k++) {
959
+ for (size_t l = 0 ; l < adouble::numDir; l++) {
960
+ for (size_t k = 0 ; k < adouble::degree; k++) {
961
961
// ho_deriv[i-j][l]
962
962
i = k - 1 ;
963
- for (int j = 0 ; j < k; j++)
963
+ for (size_t j = 0 ; j < k; j++)
964
964
sum += tmp.ho_deriv [j][l] * tmp.ho_deriv [i - j][l];
965
965
tmp.ho_deriv [k][l] = 1.0 / (2.0 * tmp.val ) * (a.ho_deriv [k][l] - sum);
966
966
sum = 0.0 ;
@@ -999,14 +999,14 @@ inline adouble sin(const adouble &a) {
999
999
{
1000
1000
int i, m;
1001
1001
double sum1 = 0.0 , sum2 = 0.0 ;
1002
- for (int l = 0 ; l < adouble::numDir; l++) {
1003
- for (int k = 0 ; k < adouble::degree; k++) {
1002
+ for (size_t l = 0 ; l < adouble::numDir; l++) {
1003
+ for (size_t k = 0 ; k < adouble::degree; k++) {
1004
1004
// ho_deriv[k][l]
1005
1005
m = k + 1 ;
1006
1006
sum1 = tmp2.val * m * a.ho_deriv [k][l];
1007
1007
sum2 = -tmp.val * m * a.ho_deriv [k][l];
1008
1008
i = k - 1 ;
1009
- for (int j = 0 ; j < k; j++) {
1009
+ for (size_t j = 0 ; j < k; j++) {
1010
1010
sum1 += (j + 1 ) * a.ho_deriv [j][l] * tmp2.ho_deriv [i - j][l];
1011
1011
sum2 += -(j + 1 ) * a.ho_deriv [j][l] * tmp.ho_deriv [i - j][l];
1012
1012
}
@@ -1042,14 +1042,14 @@ inline adouble cos(const adouble &a) {
1042
1042
{
1043
1043
int i, m;
1044
1044
double sum1 = 0.0 , sum2 = 0.0 ;
1045
- for (int l = 0 ; l < adouble::numDir; l++) {
1046
- for (int k = 0 ; k < adouble::degree; k++) {
1045
+ for (size_t l = 0 ; l < adouble::numDir; l++) {
1046
+ for (size_t k = 0 ; k < adouble::degree; k++) {
1047
1047
// ho_deriv[k][l]
1048
1048
m = k + 1 ;
1049
1049
sum1 = tmp2.val * m * a.ho_deriv [k][l];
1050
1050
sum2 = -tmp.val * m * a.ho_deriv [k][l];
1051
1051
i = k - 1 ;
1052
- for (int j = 0 ; j < k; j++) {
1052
+ for (size_t j = 0 ; j < k; j++) {
1053
1053
sum1 += (j + 1 ) * a.ho_deriv [j][l] * tmp2.ho_deriv [i - j][l];
1054
1054
sum2 += -(j + 1 ) * a.ho_deriv [j][l] * tmp.ho_deriv [i - j][l];
1055
1055
}
@@ -1210,9 +1210,10 @@ inline adouble pow(const adouble &a, double v) {
1210
1210
// this is different than in GW08. The formula in the table gives a nan
1211
1211
// for input zero.
1212
1212
double factorial_val = tgamma (v + 1.0 );
1213
- for (int k = 0 ; k < adouble::degree; k++)
1214
- for (int l = 0 ; l < adouble::numDir; l++) {
1215
- for (int k = 0 ; k < adouble::degree;
1213
+ for (size_t k = 0 ; k < adouble::degree; k++)
1214
+ for (size_t l = 0 ; l < adouble::numDir; l++) {
1215
+ // TODO: This is shadowing the outer loop variable
1216
+ for (size_t k = 0 ; k < adouble::degree;
1216
1217
k++) // unsure if this is needed here. keep it for the moment
1217
1218
// TODO: check if tmp.ho_deriv is zero before here
1218
1219
{
@@ -1227,12 +1228,12 @@ inline adouble pow(const adouble &a, double v) {
1227
1228
} else {
1228
1229
int i;
1229
1230
double sum1 = 0.0 , sum2 = 0.0 ;
1230
- for (int l = 0 ; l < adouble::numDir; l++) {
1231
- for (int k = 0 ; k < adouble::degree; k++) {
1231
+ for (size_t l = 0 ; l < adouble::numDir; l++) {
1232
+ for (size_t k = 0 ; k < adouble::degree; k++) {
1232
1233
// ho_deriv[k][l]
1233
1234
sum1 = tmp.val * (k + 1 ) * a.ho_deriv [k][l];
1234
1235
i = k - 1 ;
1235
- for (int j = 0 ; j < k; j++) {
1236
+ for (size_t j = 0 ; j < k; j++) {
1236
1237
sum1 += tmp.ho_deriv [i - j][l] * (j + 1 ) * a.ho_deriv [j][l];
1237
1238
sum2 += a.ho_deriv [i - j][l] * (1 + j) * tmp.ho_deriv [j][l];
1238
1239
}
@@ -1299,13 +1300,13 @@ inline adouble pow(double v, const adouble &a) {
1299
1300
{
1300
1301
int i;
1301
1302
double sum;
1302
- for (int l = 0 ; l < adouble::numDir; l++) {
1303
+ for (size_t l = 0 ; l < adouble::numDir; l++) {
1303
1304
sum = 0.0 ;
1304
- for (int k = 0 ; k < adouble::degree; k++) {
1305
+ for (size_t k = 0 ; k < adouble::degree; k++) {
1305
1306
// ho_deriv[k][l]
1306
1307
sum = tmp.val * (k + 1 ) * a.ho_deriv [k][l];
1307
1308
i = k - 1 ;
1308
- for (int j = 0 ; j < k; j++)
1309
+ for (size_t j = 0 ; j < k; j++)
1309
1310
sum += tmp.ho_deriv [i - j][l] * (j + 1 ) * a.ho_deriv [j][l];
1310
1311
tmp.ho_deriv [k][l] = (1.0 / (k + 1 )) * sum * ADOLC_MATH_NSP::log (v);
1311
1312
sum = 0.0 ;
@@ -1365,14 +1366,14 @@ inline adouble sinh(const adouble &a) {
1365
1366
tmp2 = ADOLC_MATH_NSP::cosh (a.val );
1366
1367
int i, m;
1367
1368
double sum1 = 0.0 , sum2 = 0.0 ;
1368
- for (int l = 0 ; l < adouble::numDir; l++) {
1369
- for (int k = 0 ; k < adouble::degree; k++) {
1369
+ for (size_t l = 0 ; l < adouble::numDir; l++) {
1370
+ for (size_t k = 0 ; k < adouble::degree; k++) {
1370
1371
// ho_deriv[k][l]
1371
1372
m = k + 1 ;
1372
1373
sum1 = tmp2.val * m * a.ho_deriv [k][l];
1373
1374
sum2 = tmp.val * m * a.ho_deriv [k][l];
1374
1375
i = k - 1 ;
1375
- for (int j = 0 ; j < k; j++) {
1376
+ for (size_t j = 0 ; j < k; j++) {
1376
1377
sum1 += (j + 1 ) * a.ho_deriv [j][l] * tmp2.ho_deriv [i - j][l];
1377
1378
sum2 += (j + 1 ) * a.ho_deriv [j][l] * tmp.ho_deriv [i - j][l];
1378
1379
}
@@ -1409,14 +1410,14 @@ inline adouble cosh(const adouble &a) {
1409
1410
int i, m;
1410
1411
double sum1 = 0.0 , sum2 = 0.0 ;
1411
1412
tmp2 = ADOLC_MATH_NSP::sinh (a.val );
1412
- for (int l = 0 ; l < adouble::numDir; l++) {
1413
- for (int k = 0 ; k < adouble::degree; k++) {
1413
+ for (size_t l = 0 ; l < adouble::numDir; l++) {
1414
+ for (size_t k = 0 ; k < adouble::degree; k++) {
1414
1415
// ho_deriv[k][l]
1415
1416
m = k + 1 ;
1416
1417
sum1 = tmp2.val * m * a.ho_deriv [k][l];
1417
1418
sum2 = tmp.val * m * a.ho_deriv [k][l];
1418
1419
i = k - 1 ;
1419
- for (int j = 0 ; j < k; j++) {
1420
+ for (size_t j = 0 ; j < k; j++) {
1420
1421
sum1 += (j + 1 ) * a.ho_deriv [j][l] * tmp2.ho_deriv [i - j][l];
1421
1422
sum2 += (j + 1 ) * a.ho_deriv [j][l] * tmp.ho_deriv [i - j][l];
1422
1423
}
@@ -1577,14 +1578,14 @@ inline adouble fabs(const adouble &a) {
1577
1578
// coefficient
1578
1579
1579
1580
int *leading_sgn = (int *)alloca (sizeof (int ) * adouble::degree);
1580
- for (int l = 0 ; l < adouble::numDir; l++) // Init
1581
+ for (size_t l = 0 ; l < adouble::numDir; l++) // Init
1581
1582
{
1582
1583
leading_sgn[l] = 1 ;
1583
1584
}
1584
1585
bool found;
1585
1586
1586
- for (int l = 0 ; l < adouble::numDir; l++) {
1587
- for (int k = 0 ; k < adouble::degree; k++) {
1587
+ for (size_t l = 0 ; l < adouble::numDir; l++) {
1588
+ for (size_t k = 0 ; k < adouble::degree; k++) {
1588
1589
if (tmp.ho_deriv [k][l] > 0 && (!found)) {
1589
1590
leading_sgn[l] = 1 ;
1590
1591
found = true ;
@@ -1611,8 +1612,8 @@ inline adouble fabs(const adouble &a) {
1611
1612
1612
1613
// assume we found all leading Taylor coefficients
1613
1614
1614
- for (int l = 0 ; l < adouble::numDir; l++) {
1615
- for (int k = 0 ; k < adouble::degree; k++) {
1615
+ for (size_t l = 0 ; l < adouble::numDir; l++) {
1616
+ for (size_t k = 0 ; k < adouble::degree; k++) {
1616
1617
tmp.ho_deriv [k][l] *= leading_sgn[l];
1617
1618
// TODO do not forget zero-th Taylor coefficient
1618
1619
}
0 commit comments