#ifndef PYTHONIC_INCLUDE_NUMPY_VAR_HPP #define PYTHONIC_INCLUDE_NUMPY_VAR_HPP #include "pythonic/include/utils/functor.hpp" #include "pythonic/include/types/ndarray.hpp" #include "pythonic/include/builtins/None.hpp" #include "pythonic/include/numpy/add.hpp" #include "pythonic/include/numpy/mean.hpp" #include "pythonic/include/numpy/sum.hpp" #include PYTHONIC_NS_BEGIN namespace numpy { template using var_type = typename std::conditional< std::is_integral::value, double, decltype(std::real(std::declval()))>::type; template auto var(E const &expr, types::none_type axis = builtins::None, types::none_type dtype = builtins::None, types::none_type out = builtins::None, long ddof = 0) -> decltype(var_type(std::real(mean(expr)))); template auto var(E const &expr, long axis, types::none_type dtype = builtins::None, types::none_type out = builtins::None, long ddof = 0) -> typename assignable() * mean(expr, axis))>::type; DEFINE_FUNCTOR(pythonic::numpy, var); } PYTHONIC_NS_END #endif