8000 MAINT: use more conservative integer types for umath linalg by argriffing · Pull Request #5899 · numpy/numpy · GitHub
[go: up one dir, main page]

Skip to content

MAINT: use more conservative integer types for umath linalg #5899

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 21, 2015
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
MAINT: more consistent notation in umath_linalg
  • Loading branch information
alexbrc committed May 21, 2015
commit b9f5e85659a79929ccc811498e931608af58c4b7
18 changes: 13 additions & 5 deletions numpy/linalg/umath_linalg.c.src
Original file line number Diff line number Diff line change
Expand Up @@ -2464,7 +2464,8 @@ init_@lapack_func@(GESDD_PARAMS_t *params,
fortran_int min_m_n = m<n?m:n;
size_t safe_min_m_n = min_m_n;
size_t s_size = safe_min_m_n * sizeof(@ftyp@);
fortran_int u_row_count, vt_column_count;
fortran_int u_row_count, vt_column_count;
size_t safe_u_row_count, safe_vt_column_count;
size_t u_size, vt_size;
fortran_int work_count;
size_t work_size;
Expand All @@ -2473,8 +2474,11 @@ init_@lapack_func@(GESDD_PARAMS_t *params,
if (!compute_urows_vtcolumns(jobz, m, n, &u_row_count, &vt_column_count))
goto error;

u_size = ((size_t)u_row_count) * safe_m * sizeof(@ftyp@);
vt_size = safe_n * ((size_t)vt_column_count) * sizeof(@ftyp@);
safe_u_row_count = u_row_count;
safe_vt_column_count = vt_column_count;

u_size = safe_u_row_count * safe_m * sizeof(@ftyp@);
vt_size = safe_n * safe_vt_column_count * sizeof(@ftyp@);

mem_buff = malloc(a_size + s_size + u_size + vt_size + iwork_size);

Expand Down Expand Up @@ -2572,6 +2576,7 @@ init_@lapack_func@(GESDD_PARAMS_t *params,
npy_uint8 *mem_buff = NULL, *mem_buff2 = NULL;
npy_uint8 *a,*s, *u, *vt, *work, *rwork, *iwork;
size_t a_size, s_size, u_size, vt_size, work_size, rwork_size, iwork_size;
size_t safe_u_row_count, safe_vt_column_count;
fortran_int u_row_count, vt_column_count, work_count;
size_t safe_m = m;
size_t safe_n = n;
Expand All @@ -2581,10 +2586,13 @@ init_@lapack_func@(GESDD_PARAMS_t *params,
if (!compute_urows_vtcolumns(jobz, m, n, &u_row_count, &vt_column_count))
goto error;

safe_u_row_count = u_row_count;
safe_vt_column_count = vt_column_count;

a_size = safe_m * safe_n * sizeof(@ftyp@);
s_size = safe_min_m_n * sizeof(@frealtyp@);
u_size = ((size_t)u_row_count) * safe_m * sizeof(@ftyp@);
vt_size = safe_n * ((size_t)vt_column_count) * sizeof(@ftyp@);
u_size = safe_u_row_count * safe_m * sizeof(@ftyp@);
vt_size = safe_n * safe_vt_column_count * sizeof(@ftyp@);
rwork_size = 'N'==jobz?
(7 * safe_min_m_n) :
(5*safe_min_m_n * safe_min_m_n + 5*safe_min_m_n);
Expand Down
0