A.vmult(Ad,d);
alpha = d*Ad;
+ Assert(alpha != 0., ExcDivideByZero());
alpha = gh/alpha;
g.add(alpha,Ad);
precondition.vmult(h,g);
beta = gh;
+ Assert(beta != 0., ExcDivideByZero());
gh = g*h;
beta = gh/beta;
eigen_beta_alpha = beta/alpha;
offdiagonal.push_back(std::sqrt(beta)/alpha);
}
-
+
if (additional_data.compute_all_condition_numbers && (diagonal.size()>1))
{
TridiagonalMatrix<double> T(diagonal.size(), true);
sum3 += *X++ * Number(numbers::NumberTraits<Number2>::conjugate(*Y++));
sum += sum3;
+ Assert(numbers::is_finite(sum), ExcNumberNotFinite());
+
return sum;
}
sum3 += numbers::NumberTraits<Number>::abs_square(*X++);
sum += sum3;
+ Assert(numbers::is_finite(sum), ExcNumberNotFinite());
+
return sum;
}
void Vector<Number>::equ (const Number a,
const Vector<Number>& u)
{
- Assert (numbers::is_finite(a),
- ExcMessage("The given value is not finite but either infinite or Not A Number (NaN)"));
+ Assert (numbers::is_finite(a), ExcNumberNotFinite());
Assert (vec_size!=0, ExcEmptyObject());
Assert (vec_size == u.vec_size, ExcDimensionMismatch(vec_size, u.vec_size));
void Vector<Number>::equ (const Number a,
const Vector<Number2>& u)
{
- Assert (numbers::is_finite(a),
- ExcMessage("The given value is not finite but either infinite or Not A Number (NaN)"));
+ Assert (numbers::is_finite(a), ExcNumberNotFinite());
Assert (vec_size!=0, ExcEmptyObject());
Assert (vec_size == u.vec_size, ExcDimensionMismatch(vec_size, u.vec_size));