docs: def get_checkerboard_matrix(kernel_width, kernel_type="default", gaussian_param=0.1):
  
      """
      example matrix for width = 2
  
      -1  -1    1   1
      -1  -1    1   1
       1   1   -1  -1
       1   1   -1  -1
  
      :param kernel_type:
      :param kernel_width:
      :return:
      """
  
      if kernel_type is "gaussian":
          return get_gaussian_kernel(kernel_width, gaussian_param)
  
      if kernel_type is "default":
          return np.vstack((
              np.hstack((
                  -1 * np.ones((kernel_width, kernel_width)), np.ones((kernel_width, kernel_width))
              )),
              np.hstack((
                  np.ones((kernel_width, kernel_width)), -1 * np.ones((kernel_width, kernel_width))
              ))
          ))
  
      elif kernel_type is "bottom_right":
          return np.vstack((
              np.hstack((
                  np.ones((kernel_width, kernel_width)), np.ones((kernel_width, kernel_width))
              )),
              np.hstack((
                  np.ones((kernel_width, kernel_width)), -1 * np.ones((kernel_width, kernel_width))
              ))
          ))
  
      elif kernel_type is "top_left":
          return np.vstack((
              np.hstack((
                  -1 * np.ones((kernel_width, kernel_width)), np.ones((kernel_width, kernel_width))
              )),
              np.hstack((
                  np.ones((kernel_width, kernel_width)), np.ones((kernel_width, kernel_width))
              ))
          ))