46  template <ArrayOfRank<1> A>
 
   47  double norm(A 
const &a, 
double p = 2.0) {
 
   50    if (p == 2.0) [[likely]] {
 
   55    } 
else if (p == 1.0) {
 
   57    } 
else if (p == 0.0) {
 
   59      for (
long i = 0; i < a.size(); ++i) {
 
   63    } 
else if (p == std::numeric_limits<double>::infinity()) {
 
   65    } 
else if (p == -std::numeric_limits<double>::infinity()) {
 
   68      return std::pow(
sum(
pow(
abs(a), p)), 1.0 / p);
 
Provides various algorithms to be used with nda::Array objects.
 
Provides basic functions to create and manipulate arrays and views.
 
Provides a generic interface to the BLAS dot, dotu and dotc routine.
 
Check if a given type satisfies the memory array concept.
 
Check if a given type is either an arithmetic or complex type.
 
Provides concepts for the nda library.
 
auto max_element(A const &a)
Find the maximum element of an array.
 
auto sum(A const &a)
Sum all the elements of an nda::Array object.
 
auto min_element(A const &a)
Find the minimum element of an array.
 
decltype(auto) make_regular(A &&a)
Make a given object regular.
 
auto abs(A &&a)
Function abs for nda::ArrayOrScalar types (lazy and coefficient-wise for nda::Array types).
 
auto pow(A &&a, double p)
Function pow for nda::ArrayOrScalar types (lazy and coefficient-wise for nda::Array types).
 
std::decay_t< decltype(get_first_element(std::declval< A const  >()))> get_value_t
Get the value type of an array/view or a scalar type.
 
auto dotc(X const &x, Y const &y)
Interface to the BLAS dotc routine.
 
Provides lazy, coefficient-wise array operations of standard mathematical functions together with ove...
 
Provides type traits for the nda library.