code: @Override
      public void spr(char order, char Uplo, double alpha, INDArray X, INDArray Ap) {
          if (Nd4j.getExecutioner().getProfilingMode() == OpExecutioner.ProfilingMode.ALL)
              OpProfiler.getInstance().processBlasCall(false, Ap, X);
  
  
          // FIXME: int cast
  
          if (X.data().dataType() == DataType.DOUBLE) {
              DefaultOpExecutioner.validateDataType(DataType.DOUBLE, X);
              dspr(order, Uplo, (int) X.length(), alpha, X, X.stride(-1), Ap);
          } else {
              DefaultOpExecutioner.validateDataType(DataType.FLOAT, X);
              sspr(order, Uplo, (int) X.length(), (float) alpha, X, X.stride(-1), Ap);
          }
  
          OpExecutionerUtil.checkForAny(Ap);
      }
docs: spr performs a rank-1 update of an n-by-n packed symmetric matrix a:
  a := alpha*x*x' + a.
  
  @param order
  @param Uplo
  @param alpha
  @param X
  @param Ap