@Override
public void rot(long N, INDArray X, INDArray Y, double c, double s) {
if (Nd4j.getExecutioner().getProfilingMode() == OpExecutioner.ProfilingMode.ALL)
OpProfiler.getInstance().processBlasCall(false, X, Y);
if (X.isSparse() && !Y.isSparse()) {
Nd4j.getSparseBlasWrapper().level1().rot(N, X, Y, c, s);
} else if (X.data().dataType() == DataBuffer.Type.DOUBLE) {
DefaultOpExecutioner.validateDataType(DataBuffer.Type.DOUBLE, X, Y);
drot(N, X, BlasBufferUtil.getBlasStride(X), Y, BlasBufferUtil.getBlasStride(X), c, s);
} else {
DefaultOpExecutioner.validateDataType(DataBuffer.Type.FLOAT, X, Y);
srot(N, X, BlasBufferUtil.getBlasStride(X), Y, BlasBufferUtil.getBlasStride(X), (float) c, (float) s);
}
}