typename traits::unit_vector<Value>::type inline unit_vector(std::size_t k, std::size_t n) { using math::zero; using math::one; dense_vector<Value> v(n, zero(Value())); v[k]= one(Value()); return v; }
static inline void init(Value& value) { using math::one; value= one(value); }
static inline Value apply(const Value& v) { using math::zero; using math::one; return v == zero(v) ? zero(v) : ( v < zero(v) ? -one(v) : one(v) ); }