@Override
    public void rot(long N, INDArray X, INDArray Y, double c, double s) {


        if (X instanceof BaseSparseNDArray) {
            BaseSparseNDArray sparseX = (BaseSparseNDArray) X;

            switch (X.data().dataType()) {
                case DOUBLE:
                    droti(N, X, sparseX.getVectorCoordinates(), Y, c, s);
                    break;
                case FLOAT:
                    sroti(N, X, sparseX.getVectorCoordinates(), Y, c, s);
                    break;
                case HALF:
                    hroti(N, X, sparseX.getVectorCoordinates(), Y, c, s);
                    break;
                default:
                    throw new UnsupportedOperationException();
            }
        } else {
            throw new UnsupportedOperationException();
        }
    }
@ Override public void rot ( long N , INDArray X , INDArray Y , double c , double s ) { if ( X instanceof BaseSparseNDArray ) { BaseSparseNDArray sparseX = ( BaseSparseNDArray ) X ; switch ( X . data ( ) . dataType ( ) ) { case DOUBLE : droti ( N , X , sparseX . getVectorCoordinates ( ) , Y , c , s ) ; break ; case FLOAT : sroti ( N , X , sparseX . getVectorCoordinates ( ) , Y , c , s ) ; break ; case HALF : hroti ( N , X , sparseX . getVectorCoordinates ( ) , Y , c , s ) ; break ; default : throw new UnsupportedOperationException ( ) ; } } else { throw new UnsupportedOperationException ( ) ; } }
Applies Givens rotation to sparse vectors one of which is in compressed form.

@param N The number of elements in vectors X and Y
@param X a sparse vector
@param Y a full-storage vector
@param c a scalar
@param s a scalar