Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
tianlh
LightGBM-DCU
Commits
7586d9a8
"src/vscode:/vscode.git/clone" did not exist on "da005221a650fdd38d7b2a0de38f298c9e10d7cc"
Commit
7586d9a8
authored
Apr 07, 2017
by
Guolin Ke
Browse files
fix bug when indices exceed int32.max for dense matrix.
parent
bfb0217a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
6 deletions
+6
-6
src/c_api.cpp
src/c_api.cpp
+6
-6
No files found.
src/c_api.cpp
View file @
7586d9a8
...
...
@@ -993,9 +993,9 @@ LIGHTGBM_C_EXPORT int LGBM_BoosterPredictForCSC(BoosterHandle handle,
int64_t
num_preb_in_one_row
=
GetNumPredOneRow
(
ref_booster
,
predict_type
,
num_iteration
);
int
ncol
=
static_cast
<
int
>
(
ncol_ptr
-
1
);
Threading
::
For
<
data_size
_t
>
(
0
,
static_cast
<
data_size
_t
>
(
num_row
),
Threading
::
For
<
int64
_t
>
(
0
,
static_cast
<
int64
_t
>
(
num_row
),
[
&
predictor
,
&
out_result
,
num_preb_in_one_row
,
ncol
,
col_ptr
,
col_ptr_type
,
indices
,
data
,
data_type
,
ncol_ptr
,
nelem
]
(
int
,
data_size
_t
start
,
data_size
_t
end
)
{
(
int
,
int64
_t
start
,
int64
_t
end
)
{
std
::
vector
<
CSC_RowIterator
>
iterators
;
for
(
int
j
=
0
;
j
<
ncol
;
++
j
)
{
iterators
.
emplace_back
(
col_ptr
,
col_ptr_type
,
indices
,
data
,
data_type
,
ncol_ptr
,
nelem
,
j
);
...
...
@@ -1118,7 +1118,7 @@ RowFunctionFromDenseMatric(const void* data, int num_row, int num_col, int data_
if
(
is_row_major
)
{
return
[
data_ptr
,
num_col
,
num_row
]
(
int
row_idx
)
{
std
::
vector
<
double
>
ret
(
num_col
);
auto
tmp_ptr
=
data_ptr
+
num_col
*
row_idx
;
auto
tmp_ptr
=
data_ptr
+
static_cast
<
size_t
>
(
num_col
)
*
row_idx
;
for
(
int
i
=
0
;
i
<
num_col
;
++
i
)
{
ret
[
i
]
=
static_cast
<
double
>
(
*
(
tmp_ptr
+
i
));
}
...
...
@@ -1128,7 +1128,7 @@ RowFunctionFromDenseMatric(const void* data, int num_row, int num_col, int data_
return
[
data_ptr
,
num_col
,
num_row
]
(
int
row_idx
)
{
std
::
vector
<
double
>
ret
(
num_col
);
for
(
int
i
=
0
;
i
<
num_col
;
++
i
)
{
ret
[
i
]
=
static_cast
<
double
>
(
*
(
data_ptr
+
num_row
*
i
+
row_idx
));
ret
[
i
]
=
static_cast
<
double
>
(
*
(
data_ptr
+
static_cast
<
size_t
>
(
num_row
)
*
i
+
row_idx
));
}
return
ret
;
};
...
...
@@ -1138,7 +1138,7 @@ RowFunctionFromDenseMatric(const void* data, int num_row, int num_col, int data_
if
(
is_row_major
)
{
return
[
data_ptr
,
num_col
,
num_row
]
(
int
row_idx
)
{
std
::
vector
<
double
>
ret
(
num_col
);
auto
tmp_ptr
=
data_ptr
+
num_col
*
row_idx
;
auto
tmp_ptr
=
data_ptr
+
static_cast
<
size_t
>
(
num_col
)
*
row_idx
;
for
(
int
i
=
0
;
i
<
num_col
;
++
i
)
{
ret
[
i
]
=
static_cast
<
double
>
(
*
(
tmp_ptr
+
i
));
}
...
...
@@ -1148,7 +1148,7 @@ RowFunctionFromDenseMatric(const void* data, int num_row, int num_col, int data_
return
[
data_ptr
,
num_col
,
num_row
]
(
int
row_idx
)
{
std
::
vector
<
double
>
ret
(
num_col
);
for
(
int
i
=
0
;
i
<
num_col
;
++
i
)
{
ret
[
i
]
=
static_cast
<
double
>
(
*
(
data_ptr
+
num_row
*
i
+
row_idx
));
ret
[
i
]
=
static_cast
<
double
>
(
*
(
data_ptr
+
static_cast
<
size_t
>
(
num_row
)
*
i
+
row_idx
));
}
return
ret
;
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment