-
Notifications
You must be signed in to change notification settings - Fork 98
BLAS 1::nrm2
Christian Trott edited this page Jan 22, 2018
·
1 revision
Header File: KokkosBlas1_nrm2.hpp
Usage: nrm = KokkosBlas::nrm2(x);
KokkosBlas::nrm2(r,x);
Computes the square root of the sum of all squares of the absolute values of x
.
template<class VectorX, class VectorY>
InnerProductSpaceTraits<VectorX::non_const_value_type>::mag_type
nrm2 (const VectorX& X);
- VectorX: A rank-1
Kokkos::View
X.rank == 1
template<class ReturnVector, class VectorX>
void nrm2 (const ReturnVector& R, const VectorX& X);
- ReturnVector: A rank-0 or rank-1
Kokkos::View
- VectorX: A rank-1 or rank-2
Kokkos::View
X.rank == R.rank + 1
R.extent(0) == X.extent(1)
ReturnVector::non_const_value_type == ReturnVector::value_type
#include<Kokkos_Core.hpp>
#include<KokkosBlas1_nrm2.hpp>
int main(int argc, char* argv[]) {
Kokkos::initialize();
int N = atoi(argv[1]);
Kokkos::View<double*> x("X",N);
Kokkos::deep_copy(x,3.0);
double x_nrm = KokkosBlas::nrm2(x);
printf("X_nrm: %lf Expected: %lf Diff: %e\n",x_nrm,1.0*sqrt(N*3.0*3.0),x_nrm-1.0*sqrt(N*3.0*3.0));
Kokkos::finalize();
}