Skip to content

Commit ed76cff

Browse files
authored
resolve "Multiplication result converted to larger type" (#3149)
cast `int` to `int64_t` (for `AddDim`) or `size_t` (for `resize`) Signed-off-by: Jinzhe Zeng <[email protected]>
1 parent e218f9c commit ed76cff

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+222
-218
lines changed

source/api_c/include/deepmd.hpp

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -644,8 +644,8 @@ class DeepPot {
644644
const VALUETYPE *box_ = !box.empty() ? &box[0] : nullptr;
645645
const int *atype_ = &atype[0];
646646
double *ener_ = _DP_Get_Energy_Pointer(ener, nframes);
647-
force.resize(nframes * natoms * 3);
648-
virial.resize(nframes * 9);
647+
force.resize(static_cast<size_t>(nframes) * natoms * 3);
648+
virial.resize(static_cast<size_t>(nframes) * 9);
649649
VALUETYPE *force_ = &force[0];
650650
VALUETYPE *virial_ = &virial[0];
651651
std::vector<VALUETYPE> fparam_, aparam_;
@@ -706,10 +706,10 @@ class DeepPot {
706706
const int *atype_ = &atype[0];
707707

708708
double *ener_ = _DP_Get_Energy_Pointer(ener, nframes);
709-
force.resize(nframes * natoms * 3);
710-
virial.resize(nframes * 9);
711-
atom_energy.resize(nframes * natoms);
712-
atom_virial.resize(nframes * natoms * 9);
709+
force.resize(static_cast<size_t>(nframes) * natoms * 3);
710+
virial.resize(static_cast<size_t>(nframes) * 9);
711+
atom_energy.resize(static_cast<size_t>(nframes) * natoms);
712+
atom_virial.resize(static_cast<size_t>(nframes) * natoms * 9);
713713
VALUETYPE *force_ = &force[0];
714714
VALUETYPE *virial_ = &virial[0];
715715
VALUETYPE *atomic_ener_ = &atom_energy[0];
@@ -774,8 +774,8 @@ class DeepPot {
774774
const VALUETYPE *box_ = !box.empty() ? &box[0] : nullptr;
775775
const int *atype_ = &atype[0];
776776
double *ener_ = _DP_Get_Energy_Pointer(ener, nframes);
777-
force.resize(nframes * natoms * 3);
778-
virial.resize(nframes * 9);
777+
force.resize(static_cast<size_t>(nframes) * natoms * 3);
778+
virial.resize(static_cast<size_t>(nframes) * 9);
779779
VALUETYPE *force_ = &force[0];
780780
VALUETYPE *virial_ = &virial[0];
781781
std::vector<VALUETYPE> fparam_, aparam_;
@@ -845,10 +845,10 @@ class DeepPot {
845845
const int *atype_ = &atype[0];
846846

847847
double *ener_ = _DP_Get_Energy_Pointer(ener, nframes);
848-
force.resize(nframes * natoms * 3);
849-
virial.resize(nframes * 9);
850-
atom_energy.resize(nframes * natoms);
851-
atom_virial.resize(nframes * natoms * 9);
848+
force.resize(static_cast<size_t>(nframes) * natoms * 3);
849+
virial.resize(static_cast<size_t>(nframes) * 9);
850+
atom_energy.resize(static_cast<size_t>(nframes) * natoms);
851+
atom_virial.resize(static_cast<size_t>(nframes) * natoms * 9);
852852
VALUETYPE *force_ = &force[0];
853853
VALUETYPE *virial_ = &virial[0];
854854
VALUETYPE *atomic_ener_ = &atom_energy[0];
@@ -910,8 +910,8 @@ class DeepPot {
910910
const VALUETYPE *box_ = !box.empty() ? &box[0] : nullptr;
911911
const int *atype_ = &atype[0];
912912
double *ener_ = _DP_Get_Energy_Pointer(ener, nframes);
913-
force.resize(nframes * natoms * 3);
914-
virial.resize(nframes * 9);
913+
force.resize(static_cast<size_t>(nframes) * natoms * 3);
914+
virial.resize(static_cast<size_t>(nframes) * 9);
915915
VALUETYPE *force_ = &force[0];
916916
VALUETYPE *virial_ = &virial[0];
917917
std::vector<VALUETYPE> fparam_, aparam_;
@@ -972,10 +972,10 @@ class DeepPot {
972972
const int *atype_ = &atype[0];
973973

974974
double *ener_ = _DP_Get_Energy_Pointer(ener, nframes);
975-
force.resize(nframes * natoms * 3);
976-
virial.resize(nframes * 9);
977-
atom_energy.resize(nframes * natoms);
978-
atom_virial.resize(nframes * natoms * 9);
975+
force.resize(static_cast<size_t>(nframes) * natoms * 3);
976+
virial.resize(static_cast<size_t>(nframes) * 9);
977+
atom_energy.resize(static_cast<size_t>(nframes) * natoms);
978+
atom_virial.resize(static_cast<size_t>(nframes) * natoms * 9);
979979
VALUETYPE *force_ = &force[0];
980980
VALUETYPE *virial_ = &virial[0];
981981
VALUETYPE *atomic_ener_ = &atom_energy[0];
@@ -1079,7 +1079,7 @@ class DeepPot {
10791079
const int &dparam,
10801080
const std::vector<VALUETYPE> &param) const {
10811081
if (param.size() == dparam) {
1082-
out_param.resize(nframes * dparam);
1082+
out_param.resize(static_cast<size_t>(nframes) * dparam);
10831083
for (int ii = 0; ii < nframes; ++ii) {
10841084
std::copy(param.begin(), param.end(), out_param.begin() + ii * dparam);
10851085
}
@@ -1210,7 +1210,7 @@ class DeepPotModelDevi {
12101210
virial.resize(numb_models);
12111211
for (int i = 0; i < numb_models; i++) {
12121212
ener[i] = energy_flat[i];
1213-
force[i].resize(natoms * 3);
1213+
force[i].resize(static_cast<size_t>(natoms) * 3);
12141214
virial[i].resize(9);
12151215
for (int j = 0; j < natoms * 3; j++) {
12161216
force[i][j] = force_flat[i * natoms * 3 + j];
@@ -1292,10 +1292,10 @@ class DeepPotModelDevi {
12921292
atom_virial.resize(numb_models);
12931293
for (int i = 0; i < numb_models; i++) {
12941294
ener[i] = energy_flat[i];
1295-
force[i].resize(natoms * 3);
1295+
force[i].resize(static_cast<size_t>(natoms) * 3);
12961296
virial[i].resize(9);
12971297
atom_energy[i].resize(natoms);
1298-
atom_virial[i].resize(natoms * 9);
1298+
atom_virial[i].resize(static_cast<size_t>(natoms) * 9);
12991299
for (int j = 0; j < natoms * 3; j++) {
13001300
force[i][j] = force_flat[i * natoms * 3 + j];
13011301
}
@@ -1496,7 +1496,7 @@ class DeepPotModelDevi {
14961496
const int &dparam,
14971497
const std::vector<VALUETYPE> &param) const {
14981498
if (param.size() == dparam) {
1499-
out_param.resize(nframes * dparam);
1499+
out_param.resize(static_cast<size_t>(nframes) * dparam);
15001500
for (int ii = 0; ii < nframes; ++ii) {
15011501
std::copy(param.begin(), param.end(), out_param.begin() + ii * dparam);
15021502
}
@@ -1653,8 +1653,8 @@ class DeepTensor {
16531653
const VALUETYPE *box_ = !box.empty() ? &box[0] : nullptr;
16541654
const int *atype_ = &atype[0];
16551655
global_tensor.resize(odim);
1656-
force.resize(odim * natoms * 3);
1657-
virial.resize(odim * 9);
1656+
force.resize(static_cast<size_t>(odim) * natoms * 3);
1657+
virial.resize(static_cast<size_t>(odim) * 9);
16581658
VALUETYPE *global_tensor_ = &global_tensor[0];
16591659
VALUETYPE *force_ = &force[0];
16601660
VALUETYPE *virial_ = &virial[0];
@@ -1697,9 +1697,9 @@ class DeepTensor {
16971697
const int *atype_ = &atype[0];
16981698

16991699
global_tensor.resize(odim);
1700-
force.resize(odim * natoms * 3);
1701-
virial.resize(odim * 9);
1702-
atom_virial.resize(odim * natoms * 9);
1700+
force.resize(static_cast<size_t>(odim) * natoms * 3);
1701+
virial.resize(static_cast<size_t>(odim) * 9);
1702+
atom_virial.resize(static_cast<size_t>(odim) * natoms * 9);
17031703
VALUETYPE *global_tensor_ = &global_tensor[0];
17041704
VALUETYPE *force_ = &force[0];
17051705
VALUETYPE *virial_ = &virial[0];
@@ -1752,8 +1752,8 @@ class DeepTensor {
17521752
const VALUETYPE *box_ = !box.empty() ? &box[0] : nullptr;
17531753
const int *atype_ = &atype[0];
17541754
global_tensor.resize(odim);
1755-
force.resize(odim * natoms * 3);
1756-
virial.resize(odim * 9);
1755+
force.resize(static_cast<size_t>(odim) * natoms * 3);
1756+
virial.resize(static_cast<size_t>(odim) * 9);
17571757
VALUETYPE *global_tensor_ = &global_tensor[0];
17581758
VALUETYPE *force_ = &force[0];
17591759
VALUETYPE *virial_ = &virial[0];
@@ -1800,9 +1800,9 @@ class DeepTensor {
18001800
const int *atype_ = &atype[0];
18011801

18021802
global_tensor.resize(odim);
1803-
force.resize(odim * natoms * 3);
1804-
virial.resize(odim * 9);
1805-
atom_virial.resize(odim * natoms * 9);
1803+
force.resize(static_cast<size_t>(odim) * natoms * 3);
1804+
virial.resize(static_cast<size_t>(odim) * 9);
1805+
atom_virial.resize(static_cast<size_t>(odim) * natoms * 9);
18061806
VALUETYPE *global_tensor_ = &global_tensor[0];
18071807
VALUETYPE *force_ = &force[0];
18081808
VALUETYPE *virial_ = &virial[0];
@@ -1954,7 +1954,7 @@ class DipoleChargeModifier {
19541954
const int *dpairs = reinterpret_cast<const int *>(&pairs[0]);
19551955
const VALUETYPE *delef = &delef_[0];
19561956

1957-
dfcorr_.resize(natoms * 3);
1957+
dfcorr_.resize(static_cast<size_t>(natoms) * 3);
19581958
dvcorr_.resize(9);
19591959
VALUETYPE *dfcorr = &dfcorr_[0];
19601960
VALUETYPE *dvcorr = &dvcorr_[0];
@@ -2071,7 +2071,7 @@ void select_map(std::vector<VT> &out,
20712071
nall2++;
20722072
}
20732073
}
2074-
out.resize(nall2 * stride);
2074+
out.resize(static_cast<size_t>(nall2) * stride);
20752075
DP_SelectMapInt(&in[0], &fwd_map[0], stride, nall1, nall2, &out[0]);
20762076
};
20772077

source/api_c/tests/test_deepdipole_hpp.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ class TestInferDeepDipoleNew : public ::testing::Test {
234234
}
235235
}
236236

237-
expected_gv.resize(odim * 9);
237+
expected_gv.resize(static_cast<size_t>(odim) * 9);
238238
for (int kk = 0; kk < odim; ++kk) {
239239
for (int ii = 0; ii < natoms; ++ii) {
240240
for (int dd = 0; dd < 9; ++dd) {

source/api_c/tests/test_deeppolar_hpp.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ class TestInferDeepPolarNew : public ::testing::Test {
466466
}
467467
}
468468

469-
expected_gv.resize(odim * 9);
469+
expected_gv.resize(static_cast<size_t>(odim) * 9);
470470
for (int kk = 0; kk < odim; ++kk) {
471471
for (int ii = 0; ii < natoms; ++ii) {
472472
for (int dd = 0; dd < 9; ++dd) {

source/api_c/tests/test_deeppot_a_fparam_aparam_nframes.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ class TestInferDeepPotAFparamAparamNFrames : public ::testing::Test {
126126
EXPECT_EQ(nframes * natoms * 3, expected_f.size());
127127
EXPECT_EQ(nframes * natoms * 9, expected_v.size());
128128
expected_tot_e.resize(nframes);
129-
expected_tot_v.resize(nframes * 9);
129+
expected_tot_v.resize(static_cast<size_t>(nframes) * 9);
130130
std::fill(expected_tot_e.begin(), expected_tot_e.end(), 0.);
131131
std::fill(expected_tot_v.begin(), expected_tot_v.end(), 0.);
132132
for (int kk = 0; kk < nframes; ++kk) {
@@ -767,7 +767,7 @@ class TestInferDeepPotAFparamAparamNFramesSingleParam : public ::testing::Test {
767767
EXPECT_EQ(nframes * natoms * 3, expected_f.size());
768768
EXPECT_EQ(nframes * natoms * 9, expected_v.size());
769769
expected_tot_e.resize(nframes);
770-
expected_tot_v.resize(nframes * 9);
770+
expected_tot_v.resize(static_cast<size_t>(nframes) * 9);
771771
std::fill(expected_tot_e.begin(), expected_tot_e.end(), 0.);
772772
std::fill(expected_tot_v.begin(), expected_tot_v.end(), 0.);
773773
for (int kk = 0; kk < nframes; ++kk) {

source/api_c/tests/test_deeppot_a_nframes_hpp.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ class TestInferDeepPotANFrames : public ::testing::Test {
119119
EXPECT_EQ(nframes * natoms * 3, expected_f.size());
120120
EXPECT_EQ(nframes * natoms * 9, expected_v.size());
121121
expected_tot_e.resize(nframes);
122-
expected_tot_v.resize(nframes * 9);
122+
expected_tot_v.resize(static_cast<size_t>(nframes) * 9);
123123
std::fill(expected_tot_e.begin(), expected_tot_e.end(), 0.);
124124
std::fill(expected_tot_v.begin(), expected_tot_v.end(), 0.);
125125
for (int kk = 0; kk < nframes; ++kk) {
@@ -728,7 +728,7 @@ class TestInferDeepPotANFramesNoPbc : public ::testing::Test {
728728
EXPECT_EQ(nframes * natoms * 3, expected_f.size());
729729
EXPECT_EQ(nframes * natoms * 9, expected_v.size());
730730
expected_tot_e.resize(nframes);
731-
expected_tot_v.resize(nframes * 9);
731+
expected_tot_v.resize(static_cast<size_t>(nframes) * 9);
732732
std::fill(expected_tot_e.begin(), expected_tot_e.end(), 0.);
733733
std::fill(expected_tot_v.begin(), expected_tot_v.end(), 0.);
734734
for (int kk = 0; kk < nframes; ++kk) {

source/api_c/tests/test_utils.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ inline void _fold_back(std::vector<VALUETYPE> &out,
4242
const int nall,
4343
const int ndim,
4444
const int nframes = 1) {
45-
out.resize(nframes * nloc * ndim);
45+
out.resize(static_cast<size_t>(nframes) * nloc * ndim);
4646
_fold_back<VALUETYPE>(out.begin(), in.begin(), mapping, nloc, nall, ndim,
4747
nframes);
4848
}

source/api_cc/src/DataModifier.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ void DipoleChargeModifier::run_model(
123123
auto of = output_f.flat<MODELTYPE>();
124124
auto ov = output_v.flat<MODELTYPE>();
125125

126-
dforce.resize(nall * 3);
126+
dforce.resize(static_cast<size_t>(nall) * 3);
127127
dvirial.resize(9);
128128
for (int ii = 0; ii < nall * 3; ++ii) {
129129
dforce[ii] = of(ii);
@@ -186,7 +186,7 @@ void DipoleChargeModifier::compute(
186186
int nall_real = real_bkw_map.size();
187187
int nloc_real = nall_real - nghost_real;
188188
if (nloc_real == 0) {
189-
dfcorr_.resize(nall * 3);
189+
dfcorr_.resize(static_cast<size_t>(nall) * 3);
190190
dvcorr_.resize(9);
191191
fill(dfcorr_.begin(), dfcorr_.end(), (VALUETYPE)0.0);
192192
fill(dvcorr_.begin(), dvcorr_.end(), (VALUETYPE)0.0);
@@ -196,8 +196,8 @@ void DipoleChargeModifier::compute(
196196
std::vector<VALUETYPE> dcoord_real;
197197
std::vector<VALUETYPE> delef_real;
198198
std::vector<int> datype_real;
199-
dcoord_real.resize(nall_real * 3);
200-
delef_real.resize(nall_real * 3);
199+
dcoord_real.resize(static_cast<size_t>(nall_real) * 3);
200+
delef_real.resize(static_cast<size_t>(nall_real) * 3);
201201
datype_real.resize(nall_real);
202202
// fwd map
203203
select_map<VALUETYPE>(dcoord_real, dcoord_, real_fwd_map, 3);

source/api_cc/src/DeepTensor.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ void DeepTensor::run_model(
253253
}
254254

255255
// component-wise virial
256-
dvirial_.resize(odim * 9);
256+
dvirial_.resize(static_cast<size_t>(odim) * 9);
257257
for (unsigned ii = 0; ii < odim * 9; ++ii) {
258258
dvirial_[ii] = ov(ii);
259259
}
@@ -266,7 +266,7 @@ void DeepTensor::run_model(
266266
std::vector<int> sel_srt = sel_fwd;
267267
select_map<int>(sel_srt, sel_fwd, atommap.get_fwd_map(), 1);
268268
std::remove(sel_srt.begin(), sel_srt.end(), -1);
269-
datom_tensor_.resize(nsel * odim);
269+
datom_tensor_.resize(static_cast<size_t>(nsel) * odim);
270270
select_map<VALUETYPE>(datom_tensor_, datom_tensor, sel_srt, odim);
271271

272272
// component-wise atomic virial

source/api_cc/src/common.cc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,14 +171,15 @@ void deepmd::select_real_atoms_coord(std::vector<VALUETYPE>& dcoord,
171171
// resize to nall_real
172172
nall_real = bkw_map.size();
173173
nloc_real = nall_real - nghost_real;
174-
dcoord.resize(nframes * nall_real * 3);
174+
dcoord.resize(static_cast<size_t>(nframes) * nall_real * 3);
175175
datype.resize(nall_real);
176176
// fwd map
177177
select_map<VALUETYPE>(dcoord, dcoord_, fwd_map, 3, nframes, nall_real, nall);
178178
select_map<int>(datype, datype_, fwd_map, 1);
179179
// aparam
180180
if (daparam > 0) {
181-
aparam.resize(nframes * (aparam_nall ? nall_real : nloc_real));
181+
aparam.resize(static_cast<size_t>(nframes) *
182+
(aparam_nall ? nall_real : nloc_real));
182183
select_map<VALUETYPE>(aparam, aparam_, fwd_map, daparam, nframes,
183184
(aparam_nall ? nall_real : nloc_real),
184185
(aparam_nall ? nall : (nall - nghost)));
@@ -396,7 +397,7 @@ int deepmd::session_input_tensors(
396397

397398
TensorShape coord_shape;
398399
coord_shape.AddDim(nframes);
399-
coord_shape.AddDim(nall * 3);
400+
coord_shape.AddDim(static_cast<int64_t>(nall) * 3);
400401
TensorShape type_shape;
401402
type_shape.AddDim(nframes);
402403
type_shape.AddDim(nall);
@@ -540,7 +541,7 @@ int deepmd::session_input_tensors(
540541

541542
TensorShape coord_shape;
542543
coord_shape.AddDim(nframes);
543-
coord_shape.AddDim(nall * 3);
544+
coord_shape.AddDim(static_cast<int64_t>(nall) * 3);
544545
TensorShape type_shape;
545546
type_shape.AddDim(nframes);
546547
type_shape.AddDim(nall);
@@ -675,7 +676,7 @@ int deepmd::session_input_tensors_mixed_type(
675676

676677
TensorShape coord_shape;
677678
coord_shape.AddDim(nframes);
678-
coord_shape.AddDim(nall * 3);
679+
coord_shape.AddDim(static_cast<int64_t>(nall) * 3);
679680
TensorShape type_shape;
680681
type_shape.AddDim(nframes);
681682
type_shape.AddDim(nall);

source/api_cc/tests/test_deepdipole.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ class TestInferDeepDipoleNew : public ::testing::Test {
238238
}
239239
}
240240

241-
expected_gv.resize(odim * 9);
241+
expected_gv.resize(static_cast<size_t>(odim) * 9);
242242
for (int kk = 0; kk < odim; ++kk) {
243243
for (int ii = 0; ii < natoms; ++ii) {
244244
for (int dd = 0; dd < 9; ++dd) {

0 commit comments

Comments
 (0)