docs: public Vec getDataWeights()
      {
          final int N = this.size();
          if(N == 0)
              return new DenseVector(0);
          //assume everyone has the same weight until proven otherwise.
          double weight = getWeight(0);
          double[] weights_copy = null;
          
          for(int i = 1; i < N; i++)
          {
              double w_i = getWeight(i);
              if(weights_copy != null || weight != w_i)
              {
                  if(weights_copy==null)//need to init storage place
                  {
                      weights_copy = new double[N];
                      Arrays.fill(weights_copy, 0, i, weight);
                  }
                  weights_copy[i] = w_i;
              }
          }
          
          if(weights_copy == null)
              return new ConstantVector(weight, size());
          else
              return new DenseVector(weights_copy);
      }