docs: def __math(self, f, x):
          """operator function
          :param f: operator.add/sub/mul... used operator
          :param x: other object view should be add/sub... with (other View, number, numpy.ndarray, Field)
          :return: dictionary (same shape as field.d) with result of operation
          """
  
          d = {}
          #operation with single number
          if isinstance(x, (int, long, float, complex)):
              for i in self.d: d[i] = f(self.d[i], x)
              return d
          #operation with other view (must have same size and partitions as self) or Field from same mesh and same bounds like View
          elif isinstance(x, View) or isinstance(x, Field):
              try:
                  for i in self.d:
                      d[i] = f(self.d[i], x.d[i])
                  return d
              except: raise ValueError('Views have to be partitioned and shaped in the same way to be add/sub/mul/div/pow/mod\nField has to have same bounds and origin mesh as View.')
          #operation with numpy array
          elif isinstance(x, ndarray):
              #array has to be of the same Size as View
              try:
                  for i in self.d:
                      ind = self.__indices(self.__partition.meta_data[i], self.__mask)
                      d[i] = f(self.d[i], x[ind])
                  return d
              except: raise ValueError('Array has to have same shape as View for operation')
  
          else: raise ValueError('Operators only available for View and (View, Field, numpy.ndarray with same shape View, integer, float, complex).')