public virtual double Norm(IVector x, NORMS normtype)
        {
            switch (normtype)
            {
            case NORMS.NORM1:
                return(Norm1(x));

            case NORMS.NORM2:
                return(Norm2(x));

            case NORMS.NORMINF:
                return(NormInf(x));
            }

            throw new ArgumentException("normtype must be one of BLAS.NORM1, BLAS.NORM2 or BLAS.NORMINF");
        }
        public virtual double Norm(IMatrix A, NORMS normtype)
        {
            switch (normtype)
            {
            case NORMS.NORM1:
                return(Norm1(A));

            case NORMS.NORMF:
                return(NormF(A));

            case NORMS.NORMINF:
                return(NormInf(A));
            }

            throw new ArgumentException("normtype must be one of BLAS.NORM1, BLAS.NORMF or BLAS.NORMINF");
        }
 /// <summary> Constructor for AbstractEigenvalueIteration.</summary>
 public AbstractEigenvalueIteration()
 {
     this.blas = Blas.Default;
     monitor   = new NullEigenvalueIterationMonitor();
     norm_type = NORMS.NORM2;
 }
 /// <summary> Constructor for AbstractLinearIteration. Default norm is the 2-norm with
 /// no monitoring.
 /// </summary>
 public AbstractLinearIteration() : base()
 {
     this.blas = Blas.Default;
     normType_ = NORMS.NORM2;
     monitor_  = new NullLinearIterationMonitor();
 }