26 #ifndef MLN_NORM_LINFTY_HH
27 # define MLN_NORM_LINFTY_HH
36 # include <mln/math/abs.hh>
37 # include <mln/algebra/vec.hh>
48 template <
unsigned n,
typename C>
49 C
linfty(
const C (&vec)[n]);
51 template <
unsigned n,
typename C>
52 C
linfty(
const algebra::vec<n,C>& vec);
58 template <
unsigned n,
typename C>
61 template <
unsigned n,
typename C>
63 const algebra::vec<n,C>& vec2);
67 # ifndef MLN_INCLUDE_ONLY
72 template <
unsigned n,
typename C,
typename V>
74 C linfty_(
const V& vec)
77 for (
unsigned i = 0; i < n; ++i)
88 template <
unsigned n,
typename C,
typename V>
90 C linfty_distance_(
const V& vec1,
const V& vec2)
93 for (
unsigned i = 0; i < n; ++i)
111 template <
unsigned n,
typename C>
115 return impl::linfty_<n, C>(vec);
118 template <
unsigned n,
typename C>
120 C
linfty(
const algebra::vec<n,C>& vec)
122 return impl::linfty_<n, C>(vec);
125 template <
unsigned n,
typename C>
129 return impl::linfty_distance_<n, C>(vec1, vec2);
132 template <
unsigned n,
typename C>
135 const algebra::vec<n,C>& vec2)
137 return impl::linfty_distance_<n, C>(vec1, vec2);
140 # endif // ! MLN_INCLUDE_ONLY
147 #endif // ! MLN_NORM_LINFTY_HH