VecNorm#
Computes the vector norm.
Synopsis#
#include "petscvec.h"
PetscErrorCode VecNorm(Vec x, NormType type, PetscReal *val)
Collective
Input Parameters#
x - the vector
type - the type of the norm requested
Output Parameter#
val - the norm
Notes#
See NormType
for descriptions of each norm.
For complex numbers NORM_1
will return the traditional 1 norm of the 2 norm of the complex
numbers; that is the 1 norm of the absolute values of the complex entries. In PETSc 3.6 and
earlier releases it returned the 1 norm of the 1 norm of the complex entries (what is
returned by the BLAS routine asum()
). Both are valid norms but most people expect the former.
This routine stashes the computed norm value, repeated calls before the vector entries are
changed are then rapid since the precomputed value is immediately available. Certain vector
operations such as VecSet()
store the norms so the value is immediately available and does
not need to be explicitly computed. VecScale()
updates any stashed norm values, thus calls
after VecScale()
do not need to explicitly recompute the norm.
See Also#
Vectors and Parallel Data, Vec
, NormType
, VecDot()
, VecTDot()
, VecDotBegin()
, VecDotEnd()
, VecNormAvailable()
,
VecNormBegin()
, VecNormEnd()
, NormType()
Level#
intermediate
Location#
Examples#
src/mat/tutorials/ex3.c
src/tao/leastsquares/tutorials/tomography.c
src/mat/tutorials/ex9.c
src/tao/pde_constrained/tutorials/parabolic.c
src/tao/constrained/tutorials/tomographyADMM.c
src/tao/pde_constrained/tutorials/hyperbolic.c
src/tao/unconstrained/tutorials/eptorsion3.c
src/tao/tutorials/ex4.c
src/mat/tutorials/ex2.c
src/tao/pde_constrained/tutorials/elliptic.c
Implementations#
VecNorm_MPIKokkos() in src/vec/vec/impls/mpi/kokkos/mpikok.kokkos.cxx
VecNorm_MPIViennaCL() in src/vec/vec/impls/mpi/mpiviennacl/mpiviennacl.cxx
VecNorm_MPI() in src/vec/vec/impls/mpi/pvec2.c
VecNorm_Nest() in src/vec/vec/impls/nest/vecnest.c
VecNorm_Seq() in src/vec/vec/impls/seq/bvec2.c
VecNorm_SeqKokkos() in src/vec/vec/impls/seq/kokkos/veckok.kokkos.cxx
VecNorm_SeqViennaCL() in src/vec/vec/impls/seq/seqviennacl/vecviennacl.cxx
Index of all Vec routines
Table of Contents for all manual pages
Index of all manual pages