+template<typename T, unsigned D>
+inline Negation<T, D>::Negation(const Negation<T, D> &other):
+ shape(other.shape->clone())
+{ }
+
+template<typename T, unsigned D>
+inline Negation<T, D> &Negation<T, D>::operator=(const Negation<T, D> &other)
+{
+ delete shape;
+ shape = other.shape->clone();
+ return *this;
+}
+
+template<typename T, unsigned D>
+inline Negation<T, D>::~Negation()
+{
+ delete shape;
+}
+