#include <deal.II/lac/vector.h>
#include <deal.II/lac/block_vector.h>
-#include <boost/math/special_functions/round.hpp>
-
#include <iostream>
#include <iomanip>
&wr[0], mu, &mm, mvt, &nn,
&work[0], &lwork, &ipiv[0], &info);
AssertThrow (info==0, LAPACKSupport::ExcErrorCode("gesdd", info));
- // Now resize work array and
- lwork = boost::math::iround(work[0]);
+ // Resize the work array. Add one to the size computed by LAPACK to be on
+ // the safe side.
+ lwork = static_cast<int>(work[0] + 1);
work.resize(lwork);
// Do the actual SVD.
// geev returns info=0 on success. Since we only queried the optimal size
// for work, everything else would not be acceptable.
Assert (info == 0, ExcInternalError());
- // Allocate working array according to suggestion.
- lwork = boost::math::iround(work[0]);
+ // Allocate working array according to suggestion (same strategy as was
+ // noted in compute_svd).
+ lwork = static_cast<int>(work[0] + 1);
// resize workspace array
work.resize((size_type ) lwork);
// syevx returns info=0 on success. Since we only queried the optimal size
// for work, everything else would not be acceptable.
Assert (info == 0, ExcInternalError());
- // Allocate working array according to suggestion.
- lwork = boost::math::iround(work[0]);
+ // Allocate working array according to suggestion (same strategy as was noted in
+ // compute_svd).
+ lwork = static_cast<int>(work[0] + 1);
work.resize(static_cast<size_type> (lwork));
// Finally compute the eigenvalues.
// sygvx returns info=0 on success. Since we only queried the optimal size
// for work, everything else would not be acceptable.
Assert (info == 0, ExcInternalError());
- // Allocate working array according to suggestion.
- lwork = boost::math::iround(work[0]);
+ // Allocate working array according to suggestion (same strategy as was
+ // noted in compute_svd).
+ lwork = static_cast<int>(work[0] + 1);
// resize workspace arrays
work.resize(static_cast<size_type> (lwork));
// sygv returns info=0 on success. Since we only queried the optimal size
// for work, everything else would not be acceptable.
Assert (info == 0, ExcInternalError());
- // Allocate working array according to suggestion.
- lwork = boost::math::iround(work[0]);
+ // Allocate working array according to suggestion (same strategy as was
+ // noted in compute_svd).
+ lwork = static_cast<int>(work[0] + 1);
// resize workspace array
work.resize((size_type) lwork);