27 #ifndef MLN_NORM_LINFTY_HH
28 # define MLN_NORM_LINFTY_HH
37 # include <mln/math/abs.hh>
38 # include <mln/algebra/vec.hh>
51 template <
unsigned n,
typename C>
52 C
linfty(
const C (&vec)[n]);
54 template <
unsigned n,
typename C>
55 C
linfty(
const algebra::vec<n,C>& vec);
64 template <
unsigned n,
typename C>
67 template <
unsigned n,
typename C>
69 const algebra::vec<n,C>& vec2);
73 # ifndef MLN_INCLUDE_ONLY
78 template <
unsigned n,
typename C,
typename V>
80 C linfty_(
const V& vec)
83 for (
unsigned i = 0; i < n; ++i)
94 template <
unsigned n,
typename C,
typename V>
96 C linfty_distance_(
const V& vec1,
const V& vec2)
99 for (
unsigned i = 0; i < n; ++i)
117 template <
unsigned n,
typename C>
119 C
linfty(
const C (&vec)[n])
121 return impl::linfty_<n, C>(vec);
124 template <
unsigned n,
typename C>
126 C
linfty(
const algebra::vec<n,C>& vec)
128 return impl::linfty_<n, C>(vec);
131 template <
unsigned n,
typename C>
135 return impl::linfty_distance_<n, C>(vec1, vec2);
138 template <
unsigned n,
typename C>
141 const algebra::vec<n,C>& vec2)
143 return impl::linfty_distance_<n, C>(vec1, vec2);
146 # endif // ! MLN_INCLUDE_ONLY
153 #endif // ! MLN_NORM_LINFTY_HH