Skip to content

Commit

Permalink
Add layout specification on eval resolver tag (#250)
Browse files Browse the repository at this point in the history
* add LayoutKind enum

* add layout spec on eval resolver

* update default param for resolver on eager func

* update tests

* fix arduino tests
  • Loading branch information
alifahrri authored Oct 18, 2023
1 parent d3232d2 commit e95f05b
Show file tree
Hide file tree
Showing 147 changed files with 898 additions and 604 deletions.
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/celu.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace nmtools::array
* @param output
* @return NMTOOLS_UFUNC_CONSTEXPR
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t, typename alpha_t=float>
NMTOOLS_UFUNC_CONSTEXPR
auto celu(const array_t& array, alpha_t alpha=alpha_t{1.0},
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/elu.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace nmtools::array
* @param output
* @return NMTOOLS_UFUNC_CONSTEXPR
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t, typename alpha_t=float>
NMTOOLS_UFUNC_CONSTEXPR
auto elu(const array_t& array, alpha_t alpha=alpha_t{1.0},
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/hardshrink.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace nmtools::array
* @param output
* @return NMTOOLS_UFUNC_CONSTEXPR
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t, typename lambda_t=float>
NMTOOLS_UFUNC_CONSTEXPR
auto hardshrink(const array_t& array, lambda_t lambda=lambda_t{0.5},
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/hardswish.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
constexpr auto hardswish(const array_t& array,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/hardtanh.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t, typename min_val_t=float, typename max_val_t=float>
constexpr auto hardtanh(const array_t& array, const min_val_t min_val=min_val_t{-1.0},
const max_val_t max_val=max_val_t{1.0},
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/leaky_relu.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t, typename negative_slope_t=float>
constexpr auto leaky_relu(const array_t& array, negative_slope_t negative_slope=negative_slope_t{0.01},
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/log_sigmoid.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace nmtools::array
* @param output
* @return NMTOOLS_UFUNC_CONSTEXPR
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
NMTOOLS_UFUNC_CONSTEXPR
auto log_sigmoid(const array_t& array,
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/mish.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace nmtools::array
{
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
NMTOOLS_UFUNC_CONSTEXPR
auto mish(const array_t& array,
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/prelu.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t, typename alpha_t=float>
constexpr auto prelu(const array_t& array, alpha_t alpha=alpha_t{0.25},
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/relu.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
constexpr auto relu(const array_t& array,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/relu6.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
constexpr auto relu6(const array_t& array,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/selu.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace nmtools::array
* @param output
* @return NMTOOLS_UFUNC_CONSTEXPR
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
NMTOOLS_UFUNC_CONSTEXPR
auto selu(const array_t& array,
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/sigmoid.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace nmtools::array
* @param output
* @return NMTOOLS_UFUNC_CONSTEXPR
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
NMTOOLS_UFUNC_CONSTEXPR
auto sigmoid(const array_t& array,
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/silu.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace nmtools::array
* @param output
* @return NMTOOLS_UFUNC_CONSTEXPR
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
NMTOOLS_UFUNC_CONSTEXPR
auto silu(const array_t& array,
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/softplus.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace nmtools::array
* @param output
* @return NMTOOLS_UFUNC_CONSTEXPR
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t, typename beta_t=float, typename threshold_t=float>
NMTOOLS_UFUNC_CONSTEXPR
auto softplus(const array_t& array, beta_t beta=beta_t{1}, threshold_t threshold=threshold_t{20},
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/softshrink.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t, typename lambda_t=float>
constexpr auto softshrink(const array_t& array, lambda_t lambda=lambda_t{0.5},
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/softsign.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
constexpr auto softsign(const array_t& array,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/activations/tanhshrink.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace nmtools::array
* @param output
* @return NMTOOLS_UFUNC_CONSTEXPR
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
NMTOOLS_UFUNC_CONSTEXPR
auto tanhshrink(const array_t& array,
Expand Down
6 changes: 3 additions & 3 deletions include/nmtools/array/array/arange.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename start_t, typename stop_t, typename step_t, typename T=float>
constexpr auto arange(start_t start, stop_t stop, step_t step, dtype_t<T> dtype=float32,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand All @@ -37,7 +37,7 @@ namespace nmtools::array
);
} // arange

template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename start_t, typename stop_t, typename T=float>
constexpr auto arange(start_t start, stop_t stop, dtype_t<T> dtype=float32,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand All @@ -50,7 +50,7 @@ namespace nmtools::array
);
} // arange

template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename stop_t, typename T=float>
constexpr auto arange(stop_t stop, dtype_t<T> dtype=float32,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/atleast_1d.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
constexpr auto atleast_1d(const array_t& array,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/atleast_2d.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
constexpr auto atleast_2d(const array_t& array,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/atleast_3d.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
constexpr auto atleast_3d(const array_t& array,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
12 changes: 8 additions & 4 deletions include/nmtools/array/array/batch_norm.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,17 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t
, typename input_t, typename mean_t, typename var_t, typename weight_t, typename bias_t, typename epsilon_t=float>
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename input_t, typename mean_t, typename var_t, typename weight_t, typename bias_t, typename epsilon_t=float>
constexpr auto batch_norm(const input_t& input, const mean_t& mean, const var_t& var, const weight_t& weight, const bias_t& bias, epsilon_t eps=epsilon_t{1e-5}
, context_t&& context=context_t{}, output_t&& output=output_t{})
, context_t&& context=context_t{}, output_t&& output=output_t{}, meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
{
auto batch_norm_ = view::batch_norm(input,mean,var,weight,bias,eps);
return eval(batch_norm_,nmtools::forward<context_t>(context),nmtools::forward<output_t>(output));
return eval(batch_norm_
,nmtools::forward<context_t>(context)
,nmtools::forward<output_t>(output)
,resolver
);
} // batch_norm
} // namespace nmtools::array

Expand Down
4 changes: 2 additions & 2 deletions include/nmtools/array/array/broadcast_arrays.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ namespace nmtools::array
* @param arrays arrays to be broadcasted together
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t
,typename...arrays_t>
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename...arrays_t>
constexpr auto broadcast_arrays(const arrays_t&...arrays)
{
auto broadcasted_pack = view::broadcast_arrays(arrays...);
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/broadcast_to.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace nmtools::array
{
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t, typename shape_t>
constexpr auto broadcast_to(const array_t& array, shape_t& shape,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/compress.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename condition_t, typename array_t, typename axis_t>
constexpr auto compress(const condition_t& condition, const array_t& array, axis_t axis,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/concatenate.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename lhs_array_t, typename rhs_array_t, typename axis_t>
constexpr auto concatenate(const lhs_array_t& lhs, const rhs_array_t& rhs, axis_t axis,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/conv.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename input_t, typename weight_t, typename bias_t=none_t, typename stride_t=none_t, typename padding_t=none_t, typename dilation_t=none_t>
constexpr auto conv2d(const input_t& input, const weight_t& weight, const bias_t& bias=bias_t{}, const stride_t& stride=stride_t{}
, [[maybe_unused]] const padding_t& padding=padding_t{}, const dilation_t& dilation=dilation_t{}
Expand Down
9 changes: 5 additions & 4 deletions include/nmtools/array/array/copy.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,16 @@

namespace nmtools::array
{
template <typename output_t=none_t, typename context_t=none_t
, typename array_t>
constexpr auto copy(const array_t& array
, context_t&& context=context_t{}, output_t&& output=output_t{})
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
constexpr auto copy(const array_t& array,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
{
auto ref_ = view::ref(array);
return eval(ref_
,nmtools::forward<context_t>(context)
,nmtools::forward<output_t>(output)
,resolver
);
} // copy
} // namespace nmtools::array
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/cumprod.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace nmtools::array
* @param output optional output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t, typename axis_t, typename dtype_t=none_t>
constexpr auto cumprod(const array_t& a, axis_t axis, dtype_t dtype=dtype_t{},
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/cumsum.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace nmtools::array
* @param output optional output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t, typename axis_t, typename dtype_t=none_t>
constexpr auto cumsum(const array_t& a, axis_t axis, dtype_t dtype=dtype_t{},
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/expand_dims.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t, typename axis_t>
constexpr auto expand_dims(const array_t& array, axis_t axis,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/flatten.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t>
constexpr auto flatten(const array_t& array,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
2 changes: 1 addition & 1 deletion include/nmtools/array/array/flip.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ namespace nmtools::array
* @param output
* @return constexpr auto
*/
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t,
template <typename output_t=none_t, typename context_t=none_t, typename resolver_t=eval_result_t<>,
typename array_t, typename axis_t>
constexpr auto flip(const array_t& array, const axis_t& axis,
context_t&& context=context_t{}, output_t&& output=output_t{},meta::as_value<resolver_t> resolver=meta::as_value_v<resolver_t>)
Expand Down
Loading

0 comments on commit e95f05b

Please sign in to comment.