#ifndef __AMSCPPNARRAY_MATH_HPP__
#define __AMSCPPNARRAY_MATH_HPP__

namespace ams
{
namespace narray
{

template<typename T> T narray_max(const narray<T> &q);
template<typename T> T narray_min(const narray<T> &q);
template<typename T> double narray_mean(const narray<T> &q);
template<typename T> double narray_var(const narray<T> &q);
template<typename T> double narray_stdev(const narray<T> &q);
template<typename T> double narray_L2norm(const narray<T> &q);

template<typename T> T narray_sum(const narray<T> &q);

template<typename T> narray<T> narray_abs(narray<T> &q);

void narray_testmath1();
void narray_testmath2();

}; //end namespaces
};

#include <amscppnarray/amscppnarray_mathimpl.hpp>

#endif