code: public static boolean strideDescendingCAscendingF(INDArray array) {
          if(array.rank() <= 1)
              return true;
          long[] strides = array.stride();
          if (array.isVector() && strides[0] == 1 && strides[1] == 1)
              return true;
          char order = array.ordering();
  
          if (order == 'c') { //Expect descending. [100,10,1] etc
              for (int i = 1; i < strides.length; i++)
                  if (strides[i - 1] <= strides[i])
                      return false;
              return true;
          } else if (order == 'f') {//Expect ascending. [1,10,100] etc
              for (int i = 1; i < strides.length; i++)
                  if (strides[i - 1] >= strides[i])
                      return false;
              return true;
          } else if (order == 'a') {
              return true;
          } else {
              throw new RuntimeException("Invalid order: not c or f (is: " + order + ")");
          }
      }
docs: Check if strides are in order suitable for non-strided mmul etc.
  Returns true if c order and strides are descending [100,10,1] etc
  Returns true if f order and strides are ascending [1,10,100] etc
  False otherwise.
  @return true if c+descending, f+ascending, false otherwise