:orphan:
# VecDotNorm2
computes the inner product of two vectors and the 2-norm squared of the second vector
## Synopsis
```
#include "petscvec.h"
PetscErrorCode VecDotNorm2(Vec s, Vec t, PetscScalar *dp, PetscReal *nm)
```
Collective
## Input Parameters
- ***s -*** first vector
- ***t -*** second vector
## Output Parameters
- ***dp -*** s'conj(t)
- ***nm -*** t'conj(t)
## Note
conj(x) is the complex conjugate of x when x is complex
## See Also
`Vec`, `VecDot()`, `VecNorm()`, `VecDotBegin()`, `VecNormBegin()`, `VecDotEnd()`, `VecNormEnd()`
## Level
advanced
## Location
src/vec/vec/utils/vinv.c
## Implementations
VecDotNorm2_MPIKokkos in src/vec/vec/impls/mpi/kokkos/mpikok.kokkos.cxx
VecDotNorm2_MPIViennaCL in src/vec/vec/impls/mpi/mpiviennacl/mpiviennacl.cxx
VecDotNorm2_Nest in src/vec/vec/impls/nest/vecnest.c
VecDotNorm2_SeqKokkos in src/vec/vec/impls/seq/kokkos/veckok.kokkos.cxx
VecDotNorm2_SeqViennaCL in src/vec/vec/impls/seq/seqviennacl/vecviennacl.cxx
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/vec/utils/vinv.c)
[Index of all Vec routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)