diff --git a/include/armadillo_bits/newarp_DoubleShiftQR_meat.hpp b/include/armadillo_bits/newarp_DoubleShiftQR_meat.hpp index 0996ea42..9eb1a139 100644 --- a/include/armadillo_bits/newarp_DoubleShiftQR_meat.hpp +++ b/include/armadillo_bits/newarp_DoubleShiftQR_meat.hpp @@ -123,7 +123,7 @@ DoubleShiftQR::update_block(uword il, uword iu) // Apply the first reflector apply_PX(mat_H, il, il, 3, n - il, il); - apply_XP(mat_H, 0, il, il + std::min(bsize, uword(4)), 3, il); + apply_XP(mat_H, 0, il, il + (std::min)(bsize, uword(4)), 3, il); // Calculate the following reflectors // If entering this loop, block size is at least 4. @@ -132,7 +132,7 @@ DoubleShiftQR::update_block(uword il, uword iu) compute_reflector(mat_H.colptr(il + i - 1) + il + i, il + i); // Apply the reflector to X apply_PX(mat_H, il + i, il + i - 1, 3, n + 1 - il - i, il + i); - apply_XP(mat_H, 0, il + i, il + std::min(bsize, uword(i + 4)), 3, il + i); + apply_XP(mat_H, 0, il + i, il + (std::min)(bsize, uword(i + 4)), 3, il + i); } // The last reflector diff --git a/include/armadillo_bits/newarp_GenEigsSolver_meat.hpp b/include/armadillo_bits/newarp_GenEigsSolver_meat.hpp index 369c4a17..58a52a3b 100644 --- a/include/armadillo_bits/newarp_GenEigsSolver_meat.hpp +++ b/include/armadillo_bits/newarp_GenEigsSolver_meat.hpp @@ -151,6 +151,7 @@ GenEigsSolver::restart(uword k) fac_H.diag() += ritz_val(i).real(); } } + // V -> VQ // Q has some elements being zero // The first (ncv - k + i) elements of the i-th column of Q are non-zero @@ -186,7 +187,7 @@ GenEigsSolver::num_converged(eT tol) const eT f_norm = arma::norm(fac_f); for(uword i = 0; i < nev; i++) { - eT thresh = tol * std::max(approx0, std::abs(ritz_val(i))); + eT thresh = tol * (std::max)(approx0, std::abs(ritz_val(i))); eT resid = std::abs(ritz_est(i)) * f_norm; ritz_conv[i] = (resid < thresh); } @@ -210,7 +211,7 @@ GenEigsSolver::nev_adjusted(uword nconv) if(std::abs(ritz_est(i)) < eps) { nev_new++; } } // Adjust nev_new again, according to dnaup2.f line 660~674 in ARPACK - nev_new += std::min(nconv, (ncv - nev_new) / 2); + nev_new += (std::min)(nconv, (ncv - nev_new) / 2); if(nev_new == 1 && ncv >= 6) { nev_new = ncv / 2; @@ -394,7 +395,7 @@ GenEigsSolver::compute(uword maxit, eT tol) niter = i + 1; - return std::min(nev, nconv); + return (std::min)(nev, nconv); } @@ -435,7 +436,7 @@ GenEigsSolver::eigenvectors(uword nvec) arma_extra_debug_sigprint(); uword nconv = std::count(ritz_conv.begin(), ritz_conv.end(), true); - nvec = std::min(nvec, nconv); + nvec = (std::min)(nvec, nconv); Mat< std::complex > res(dim_n, nvec); if(nvec > 0) diff --git a/include/armadillo_bits/newarp_SymEigsSolver_meat.hpp b/include/armadillo_bits/newarp_SymEigsSolver_meat.hpp index 649a5e2e..f13205a9 100644 --- a/include/armadillo_bits/newarp_SymEigsSolver_meat.hpp +++ b/include/armadillo_bits/newarp_SymEigsSolver_meat.hpp @@ -172,6 +172,7 @@ SymEigsSolver::restart(uword k) Col v(Vs.colptr(i), dim_n, false, true); v = V * q; } + Vs.col(k) = fac_V * Q.col(k); fac_V.head_cols(k + 1) = Vs; @@ -193,7 +194,7 @@ SymEigsSolver::num_converged(eT tol) const eT f_norm = norm(fac_f); for(uword i = 0; i < nev; i++) { - eT thresh = tol * std::max(eps23, std::abs(ritz_val(i))); + eT thresh = tol * (std::max)(eps23, std::abs(ritz_val(i))); eT resid = std::abs(ritz_est(i)) * f_norm; ritz_conv[i] = (resid < thresh); } @@ -217,7 +218,7 @@ SymEigsSolver::nev_adjusted(uword nconv) } // Adjust nev_new, according to dsaup2.f line 677~684 in ARPACK - nev_new += std::min(nconv, (ncv - nev_new) / 2); + nev_new += (std::min)(nconv, (ncv - nev_new) / 2); if(nev_new >= ncv) { nev_new = ncv - 1; } if(nev_new == 1 && ncv >= 6) { @@ -416,7 +417,7 @@ SymEigsSolver::compute(uword maxit, eT tol) niter = i + 1; - return std::min(nev, nconv); + return (std::min)(nev, nconv); } @@ -457,7 +458,7 @@ SymEigsSolver::eigenvectors(uword nvec) arma_extra_debug_sigprint(); uword nconv = std::count(ritz_conv.begin(), ritz_conv.end(), true); - nvec = std::min(nvec, nconv); + nvec = (std::min)(nvec, nconv); Mat res(dim_n, nvec); if(nvec > 0) diff --git a/include/armadillo_bits/spop_max_meat.hpp b/include/armadillo_bits/spop_max_meat.hpp index 154b542c..d8b113ed 100644 --- a/include/armadillo_bits/spop_max_meat.hpp +++ b/include/armadillo_bits/spop_max_meat.hpp @@ -150,7 +150,7 @@ spop_max::vector_max } else { - return std::max(eT(0), op_max::direct_max(p.get_values(), p.get_n_nonzero())); + return (std::max)(eT(0), op_max::direct_max(p.get_values(), p.get_n_nonzero())); } } else @@ -175,7 +175,7 @@ spop_max::vector_max } else { - return std::max(eT(0), result); + return (std::max)(eT(0), result); } } } @@ -234,7 +234,7 @@ spop_max::max(const SpBase& X) } else { - return std::max(eT(0), max_val); + return (std::max)(eT(0), max_val); } } @@ -298,7 +298,7 @@ spop_max::max_with_index(const SpProxy& P, uword& index_of_max_val) if(n_elem != n_nonzero) { - max_val = std::max(eT(0), max_val); + max_val = (std::max)(eT(0), max_val); // If the max_val is a nonzero element, we need its actual position in the matrix. if(max_val == eT(0)) @@ -631,7 +631,7 @@ spop_max::max_with_index(const SpProxy& P, uword& index_of_max_val) if(n_elem != n_nonzero) { - max_val = std::max(T(0), max_val); + max_val = (std::max)(T(0), max_val); // If the max_val is a nonzero element, we need its actual position in the matrix. if(max_val == T(0)) diff --git a/include/armadillo_bits/spop_min_meat.hpp b/include/armadillo_bits/spop_min_meat.hpp index 68a9dd1f..2a17034c 100644 --- a/include/armadillo_bits/spop_min_meat.hpp +++ b/include/armadillo_bits/spop_min_meat.hpp @@ -150,7 +150,7 @@ spop_min::vector_min } else { - return std::min(eT(0), op_min::direct_min(p.get_values(), p.get_n_nonzero())); + return (std::min)(eT(0), op_min::direct_min(p.get_values(), p.get_n_nonzero())); } } else @@ -175,7 +175,7 @@ spop_min::vector_min } else { - return std::min(eT(0), result); + return (std::min)(eT(0), result); } } } @@ -234,7 +234,7 @@ spop_min::min(const SpBase& X) } else { - return std::min(eT(0), min_val); + return (std::min)(eT(0), min_val); } } @@ -298,7 +298,7 @@ spop_min::min_with_index(const SpProxy& P, uword& index_of_min_val) if(n_elem != n_nonzero) { - min_val = std::min(eT(0), min_val); + min_val = (std::min)(eT(0), min_val); // If the min_val is a nonzero element, we need its actual position in the matrix. if(min_val == eT(0)) @@ -667,7 +667,7 @@ spop_min::min_with_index(const SpProxy& P, uword& index_of_min_val) if(n_elem != n_nonzero) { - min_val = std::min(T(0), min_val); + min_val = (std::min)(T(0), min_val); // If the min_val is a nonzero element, we need its actual position in the matrix. if(min_val == T(0))