Commit f611db80 authored by Thibault Hallouin's avatar Thibault Hallouin
Browse files

refactor function in namespace

Showing with 28 additions and 24 deletions
+28 -24
#include <vector>
#include "xtensor/xexpression.hpp"
#include "xtensor/xmath.hpp"
namespace eh {
template <class A>
A nse(const xt::xexpression<A>& sim,
const xt::xexpression<A>& obs,
int axis = 0);
template <class A>
A nse(const xt::xexpression<A>& sim,
const xt::xexpression<A>& obs,
int axis)
{
const A& q_sim = sim.derived_cast();
const A& q_obs = obs.derived_cast();
A q_avg = xt::mean(q_obs, xt::keep_dims);
A f_num = xt::sum(xt::square(q_obs - q_sim), std::vector<int> { axis }, xt::keep_dims);
A f_den = xt::sum(xt::square(q_obs - q_avg), xt::keep_dims);
return 1 - (f_num / f_den);
}
}
#include <vector>
#include <xtensor/xexpression.hpp>
#include <xtensor/xmath.hpp>
template <class A>
A nse(const xt::xexpression<A>& sim,
const xt::xexpression<A>& obs,
int axis = 0);
template <class A>
A nse(const xt::xexpression<A>& sim,
const xt::xexpression<A>& obs,
int axis)
{
const A& q_sim = sim.derived_cast();
const A& q_obs = obs.derived_cast();
A q_avg = xt::mean(q_obs, xt::keep_dims);
A f_num = xt::sum(xt::square(q_obs - q_sim), std::vector<int> { axis }, xt::keep_dims);
A f_den = xt::sum(xt::square(q_obs - q_avg), xt::keep_dims);
return 1 - (f_num / f_den);
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment