code: @Override
      public void scal(long N, double alpha, INDArray X) {
          if (Nd4j.getExecutioner().getProfilingMode() == OpExecutioner.ProfilingMode.ALL)
              OpProfiler.getInstance().processBlasCall(false, X);
  
          if (X.isSparse()) {
              Nd4j.getSparseBlasWrapper().level1().scal(N, alpha, X);
          } else if (X.data().dataType() == DataType.DOUBLE)
              dscal(N, alpha, X, BlasBufferUtil.getBlasStride(X));
          else if (X.data().dataType() == DataType.FLOAT)
              sscal(N, (float) alpha, X, BlasBufferUtil.getBlasStride(X));
          else if (X.data().dataType() == DataType.HALF)
              Nd4j.getExecutioner().exec(new ScalarMultiplication(X, alpha));
      }
docs: computes a vector by a scalar product.
  
  @param N
  @param alpha
  @param X