Tabnine Logo
JCublas.cublasSetMatrixNative
Code IndexAdd Tabnine to your IDE (free)

How to use
cublasSetMatrixNative
method
in
jcuda.jcublas.JCublas

Best Java code snippets using jcuda.jcublas.JCublas.cublasSetMatrixNative (Showing top 18 results out of 315)

origin: org.nd4j/jcublas-osx

/**
 * Wrapper for CUBLAS function.<br />
 * <br />
 * cublasStatus
 * cublasSetMatrix (int rows, int cols, int elemSize, const void *A,
 *                  int lda, void *B, int ldb)<br />
 *<br />
 * copies a tile of rows x cols elements from a matrix A in CPU memory
 * space to a matrix B in GPU memory space. Each element requires storage
 * of elemSize bytes. Both matrices are assumed to be stored in column
 * major format, with the leading dimension (i.e. number of rows) of
 * source matrix A provided in lda, and the leading dimension of matrix B
 * provided in ldb. In general, B points to an object, or part of an
 * object, that was allocated via cublasAlloc().<br />
 *<br />
 * Return Values<br />
 * -------------<br />
 * CUBLAS_STATUS_NOT_INITIALIZED  if CUBLAS library has not been initialized<br />
 * CUBLAS_STATUS_INVALID_VALUE    if rows or cols < 0, or elemSize, lda, or
 *                                ldb <= 0<br />
 * CUBLAS_STATUS_MAPPING_ERROR    if error occurred accessing GPU memory<br />
 * CUBLAS_STATUS_SUCCESS          if the operation completed successfully<br />
 */
public static int cublasSetMatrix (int rows, int cols, int elemSize, Pointer A, int lda, Pointer B, int ldb)
{
  return checkResult(cublasSetMatrixNative(rows, elemSize, cols, A, lda, B, ldb));
}
origin: org.nd4j/nd4j-jcublas-common

/**
 * Wrapper for CUBLAS function.<br />
 * <br />
 * cublasStatus
 * cublasSetMatrix (int rows, int cols, int elemSize, const void *A,
 *                  int lda, void *B, int ldb)<br />
 *<br />
 * copies a tile of rows x cols elements from a matrix A in CPU memory
 * space to a matrix B in GPU memory space. Each element requires storage
 * of elemSize bytes. Both matrices are assumed to be stored in column
 * major format, with the leading dimension (i.e. number of rows) of
 * source matrix A provided in lda, and the leading dimension of matrix B
 * provided in ldb. In general, B points to an object, or part of an
 * object, that was allocated via cublasAlloc().<br />
 *<br />
 * Return Values<br />
 * -------------<br />
 * CUBLAS_STATUS_NOT_INITIALIZED  if CUBLAS library has not been initialized<br />
 * CUBLAS_STATUS_INVALID_VALUE    if rows or cols < 0, or elemSize, lda, or
 *                                ldb <= 0<br />
 * CUBLAS_STATUS_MAPPING_ERROR    if error occurred accessing GPU memory<br />
 * CUBLAS_STATUS_SUCCESS          if the operation completed successfully<br />
 */
public static int cublasSetMatrix (int rows, int cols, int elemSize, Pointer A, int lda, Pointer B, int ldb)
{
  return checkResult(cublasSetMatrixNative(rows, elemSize, cols, A, lda, B, ldb));
}
origin: org.jcuda/jcublas

/**
 * Wrapper for CUBLAS function.<br />
 * <br />
 * cublasStatus
 * cublasSetMatrix (int rows, int cols, int elemSize, const void *A,
 *                  int lda, void *B, int ldb)<br />
 *<br />
 * copies a tile of rows x cols elements from a matrix A in CPU memory
 * space to a matrix B in GPU memory space. Each element requires storage
 * of elemSize bytes. Both matrices are assumed to be stored in column
 * major format, with the leading dimension (i.e. number of rows) of
 * source matrix A provided in lda, and the leading dimension of matrix B
 * provided in ldb. In general, B points to an object, or part of an
 * object, that was allocated via cublasAlloc().<br />
 *<br />
 * Return Values<br />
 * -------------<br />
 * CUBLAS_STATUS_NOT_INITIALIZED  if CUBLAS library has not been initialized<br />
 * CUBLAS_STATUS_INVALID_VALUE    if rows or cols < 0, or elemSize, lda, or
 *                                ldb <= 0<br />
 * CUBLAS_STATUS_MAPPING_ERROR    if error occurred accessing GPU memory<br />
 * CUBLAS_STATUS_SUCCESS          if the operation completed successfully<br />
 */
public static int cublasSetMatrix (int rows, int cols, int elemSize, Pointer A, int lda, Pointer B, int ldb)
{
  return checkResult(cublasSetMatrixNative(rows, elemSize, cols, A, lda, B, ldb));
}
origin: org.nd4j/jcublas

/**
 * Wrapper for CUBLAS function.<br />
 * <br />
 * cublasStatus
 * cublasSetMatrix (int rows, int cols, int elemSize, const void *A,
 *                  int lda, void *B, int ldb)<br />
 *<br />
 * copies a tile of rows x cols elements from a matrix A in CPU memory
 * space to a matrix B in GPU memory space. Each element requires storage
 * of elemSize bytes. Both matrices are assumed to be stored in column
 * major format, with the leading dimension (i.e. number of rows) of
 * source matrix A provided in lda, and the leading dimension of matrix B
 * provided in ldb. In general, B points to an object, or part of an
 * object, that was allocated via cublasAlloc().<br />
 *<br />
 * Return Values<br />
 * -------------<br />
 * CUBLAS_STATUS_NOT_INITIALIZED  if CUBLAS library has not been initialized<br />
 * CUBLAS_STATUS_INVALID_VALUE    if rows or cols < 0, or elemSize, lda, or
 *                                ldb <= 0<br />
 * CUBLAS_STATUS_MAPPING_ERROR    if error occurred accessing GPU memory<br />
 * CUBLAS_STATUS_SUCCESS          if the operation completed successfully<br />
 */
public static int cublasSetMatrix (int rows, int cols, int elemSize, Pointer A, int lda, Pointer B, int ldb)
{
  return checkResult(cublasSetMatrixNative(rows, elemSize, cols, A, lda, B, ldb));
}
origin: org.scalanlp/jcublas

/**
 * Wrapper for CUBLAS function.<br />
 * <br />
 * cublasStatus
 * cublasSetMatrix (int rows, int cols, int elemSize, const void *A,
 *                  int lda, void *B, int ldb)<br />
 *<br />
 * copies a tile of rows x cols elements from a matrix A in CPU memory
 * space to a matrix B in GPU memory space. Each element requires storage
 * of elemSize bytes. Both matrices are assumed to be stored in column
 * major format, with the leading dimension (i.e. number of rows) of
 * source matrix A provided in lda, and the leading dimension of matrix B
 * provided in ldb. In general, B points to an object, or part of an
 * object, that was allocated via cublasAlloc().<br />
 *<br />
 * Return Values<br />
 * -------------<br />
 * CUBLAS_STATUS_NOT_INITIALIZED  if CUBLAS library has not been initialized<br />
 * CUBLAS_STATUS_INVALID_VALUE    if rows or cols < 0, or elemSize, lda, or
 *                                ldb <= 0<br />
 * CUBLAS_STATUS_MAPPING_ERROR    if error occurred accessing GPU memory<br />
 * CUBLAS_STATUS_SUCCESS          if the operation completed successfully<br />
 */
public static int cublasSetMatrix (int rows, int cols, int elemSize, Pointer A, int lda, Pointer B, int ldb)
{
 return checkResult(cublasSetMatrixNative(rows, elemSize, cols, A, lda, B, ldb));
}
origin: org.nd4j/jcublas-windows64

/**
 * Wrapper for CUBLAS function.<br />
 * <br />
 * cublasStatus
 * cublasSetMatrix (int rows, int cols, int elemSize, const void *A,
 *                  int lda, void *B, int ldb)<br />
 *<br />
 * copies a tile of rows x cols elements from a matrix A in CPU memory
 * space to a matrix B in GPU memory space. Each element requires storage
 * of elemSize bytes. Both matrices are assumed to be stored in column
 * major format, with the leading dimension (i.e. number of rows) of
 * source matrix A provided in lda, and the leading dimension of matrix B
 * provided in ldb. In general, B points to an object, or part of an
 * object, that was allocated via cublasAlloc().<br />
 *<br />
 * Return Values<br />
 * -------------<br />
 * CUBLAS_STATUS_NOT_INITIALIZED  if CUBLAS library has not been initialized<br />
 * CUBLAS_STATUS_INVALID_VALUE    if rows or cols < 0, or elemSize, lda, or
 *                                ldb <= 0<br />
 * CUBLAS_STATUS_MAPPING_ERROR    if error occurred accessing GPU memory<br />
 * CUBLAS_STATUS_SUCCESS          if the operation completed successfully<br />
 */
public static int cublasSetMatrix (int rows, int cols, int elemSize, Pointer A, int lda, Pointer B, int ldb)
{
  return checkResult(cublasSetMatrixNative(rows, elemSize, cols, A, lda, B, ldb));
}
origin: org.scalanlp/jcublas

/**
 * Extended wrapper for arrays of cuComplex values. Note that this method
 * only exists for convenience and compatibility with native C code. It
 * is much more efficient to provide a Pointer to a float array containing
 * the complex numbers, where each pair of consecutive numbers in the array
 * describes the real- and imaginary part of one complex number.
 *
 * @see JCublas#cublasSetMatrix(int, int, int, Pointer, int, Pointer, int)
 */
public static int cublasSetMatrix (int rows, int cols, cuComplex A[], int offsetA, int lda, Pointer B, int ldb)
{
 ByteBuffer byteBufferA = ByteBuffer.allocateDirect(A.length * 4 * 2);
 byteBufferA.order(ByteOrder.nativeOrder());
 FloatBuffer floatBufferA = byteBufferA.asFloatBuffer();
 for (int i=0; i<A.length; i++)
 {
  floatBufferA.put(A[i].x);
  floatBufferA.put(A[i].y);
 }
 return checkResult(cublasSetMatrixNative(rows, cols, 8, Pointer.to(floatBufferA).withByteOffset(offsetA * 4 * 2), lda, B, ldb));
}
origin: org.nd4j/jcublas

/**
 * Extended wrapper for arrays of cuComplex values. Note that this method
 * only exists for convenience and compatibility with native C code. It
 * is much more efficient to provide a Pointer to a float array containing
 * the complex numbers, where each pair of consecutive numbers in the array
 * describes the real- and imaginary part of one complex number.
 *
 * @see JCublas#cublasSetMatrix(int, int, int, Pointer, int, Pointer, int)
 */
public static int cublasSetMatrix (int rows, int cols, cuComplex A[], int offsetA, int lda, Pointer B, int ldb)
{
  ByteBuffer byteBufferA = ByteBuffer.allocateDirect(A.length * 4 * 2);
  byteBufferA.order(ByteOrder.nativeOrder());
  FloatBuffer floatBufferA = byteBufferA.asFloatBuffer();
  for (int i=0; i<A.length; i++)
  {
    floatBufferA.put(A[i].x);
    floatBufferA.put(A[i].y);
  }
  return checkResult(cublasSetMatrixNative(rows, cols, 8, Pointer.to(floatBufferA).withByteOffset(offsetA * 4 * 2), lda, B, ldb));
}
origin: org.nd4j/jcublas-windows64

/**
 * Extended wrapper for arrays of cuComplex values. Note that this method
 * only exists for convenience and compatibility with native C code. It
 * is much more efficient to provide a Pointer to a float array containing
 * the complex numbers, where each pair of consecutive numbers in the array
 * describes the real- and imaginary part of one complex number.
 *
 * @see jcuda.jcublas.JCublas#cublasSetMatrix(int, int, int, jcuda.Pointer, int, jcuda.Pointer, int)
 */
public static int cublasSetMatrix (int rows, int cols, cuComplex A[], int offsetA, int lda, Pointer B, int ldb)
{
  ByteBuffer byteBufferA = ByteBuffer.allocateDirect(A.length * 4 * 2);
  byteBufferA.order(ByteOrder.nativeOrder());
  FloatBuffer floatBufferA = byteBufferA.asFloatBuffer();
  for (int i=0; i<A.length; i++)
  {
    floatBufferA.put(A[i].x);
    floatBufferA.put(A[i].y);
  }
  return checkResult(cublasSetMatrixNative(rows, cols, 8, Pointer.to(floatBufferA).withByteOffset(offsetA * 4 * 2), lda, B, ldb));
}
origin: org.nd4j/nd4j-jcublas-common

/**
 * Extended wrapper for arrays of cuComplex values. Note that this method
 * only exists for convenience and compatibility with native C code. It
 * is much more efficient to provide a Pointer to a float array containing
 * the complex numbers, where each pair of consecutive numbers in the array
 * describes the real- and imaginary part of one complex number.
 *
 * @see JCublas#cublasSetMatrix(int, int, int, Pointer, int, Pointer, int)
 */
public static int cublasSetMatrix (int rows, int cols, cuComplex A[], int offsetA, int lda, Pointer B, int ldb)
{
  ByteBuffer byteBufferA = ByteBuffer.allocateDirect(A.length * 4 * 2);
  byteBufferA.order(ByteOrder.nativeOrder());
  FloatBuffer floatBufferA = byteBufferA.asFloatBuffer();
  for (int i=0; i<A.length; i++)
  {
    floatBufferA.put(A[i].x);
    floatBufferA.put(A[i].y);
  }
  return checkResult(cublasSetMatrixNative(rows, cols, 8, Pointer.to(floatBufferA).withByteOffset(offsetA * 4 * 2), lda, B, ldb));
}
origin: org.jcuda/jcublas

/**
 * Extended wrapper for arrays of cuComplex values. Note that this method
 * only exists for convenience and compatibility with native C code. It
 * is much more efficient to provide a Pointer to a float array containing
 * the complex numbers, where each pair of consecutive numbers in the array
 * describes the real- and imaginary part of one complex number.
 *
 * @see JCublas#cublasSetMatrix(int, int, int, Pointer, int, Pointer, int)
 */
public static int cublasSetMatrix (int rows, int cols, cuComplex A[], int offsetA, int lda, Pointer B, int ldb)
{
  ByteBuffer byteBufferA = ByteBuffer.allocateDirect(A.length * 4 * 2);
  byteBufferA.order(ByteOrder.nativeOrder());
  FloatBuffer floatBufferA = byteBufferA.asFloatBuffer();
  for (int i=0; i<A.length; i++)
  {
    floatBufferA.put(A[i].x);
    floatBufferA.put(A[i].y);
  }
  return checkResult(cublasSetMatrixNative(rows, cols, 8, Pointer.to(floatBufferA).withByteOffset(offsetA * 4 * 2), lda, B, ldb));
}
origin: org.nd4j/jcublas-osx

/**
 * Extended wrapper for arrays of cuComplex values. Note that this method
 * only exists for convenience and compatibility with native C code. It
 * is much more efficient to provide a Pointer to a float array containing
 * the complex numbers, where each pair of consecutive numbers in the array
 * describes the real- and imaginary part of one complex number.
 *
 * @see JCublas#cublasSetMatrix(int, int, int, Pointer, int, Pointer, int)
 */
public static int cublasSetMatrix (int rows, int cols, cuComplex A[], int offsetA, int lda, Pointer B, int ldb)
{
  ByteBuffer byteBufferA = ByteBuffer.allocateDirect(A.length * 4 * 2);
  byteBufferA.order(ByteOrder.nativeOrder());
  FloatBuffer floatBufferA = byteBufferA.asFloatBuffer();
  for (int i=0; i<A.length; i++)
  {
    floatBufferA.put(A[i].x);
    floatBufferA.put(A[i].y);
  }
  return checkResult(cublasSetMatrixNative(rows, cols, 8, Pointer.to(floatBufferA).withByteOffset(offsetA * 4 * 2), lda, B, ldb));
}
origin: org.nd4j/jcublas

/**
 * Extended wrapper for arrays of cuDoubleComplex values. Note that this method
 * only exists for convenience and compatibility with native C code. It
 * is much more efficient to provide a Pointer to a double array containing
 * the complex numbers, where each pair of consecutive numbers in the array
 * describes the real- and imaginary part of one complex number.
 *
 * @see JCublas#cublasSetMatrix(int, int, int, Pointer, int, Pointer, int)
 */
public static int cublasSetMatrix (int rows, int cols, cuDoubleComplex A[], int offsetA, int lda, Pointer B, int ldb)
{
  ByteBuffer byteBufferA = ByteBuffer.allocateDirect(A.length * 8 * 2);
  byteBufferA.order(ByteOrder.nativeOrder());
  DoubleBuffer doubleBufferA = byteBufferA.asDoubleBuffer();
  for (int i=0; i<A.length; i++)
  {
    doubleBufferA.put(A[i].x);
    doubleBufferA.put(A[i].y);
  }
  return checkResult(cublasSetMatrixNative(rows, cols, 16, Pointer.to(doubleBufferA).withByteOffset(offsetA * 8 * 2), lda, B, ldb));
}
origin: org.scalanlp/jcublas

/**
 * Extended wrapper for arrays of cuDoubleComplex values. Note that this method
 * only exists for convenience and compatibility with native C code. It
 * is much more efficient to provide a Pointer to a double array containing
 * the complex numbers, where each pair of consecutive numbers in the array
 * describes the real- and imaginary part of one complex number.
 *
 * @see JCublas#cublasSetMatrix(int, int, int, Pointer, int, Pointer, int)
 */
public static int cublasSetMatrix (int rows, int cols, cuDoubleComplex A[], int offsetA, int lda, Pointer B, int ldb)
{
 ByteBuffer byteBufferA = ByteBuffer.allocateDirect(A.length * 8 * 2);
 byteBufferA.order(ByteOrder.nativeOrder());
 DoubleBuffer doubleBufferA = byteBufferA.asDoubleBuffer();
 for (int i=0; i<A.length; i++)
 {
  doubleBufferA.put(A[i].x);
  doubleBufferA.put(A[i].y);
 }
 return checkResult(cublasSetMatrixNative(rows, cols, 16, Pointer.to(doubleBufferA).withByteOffset(offsetA * 8 * 2), lda, B, ldb));
}
origin: org.nd4j/nd4j-jcublas-common

/**
 * Extended wrapper for arrays of cuDoubleComplex values. Note that this method
 * only exists for convenience and compatibility with native C code. It
 * is much more efficient to provide a Pointer to a double array containing
 * the complex numbers, where each pair of consecutive numbers in the array
 * describes the real- and imaginary part of one complex number.
 *
 * @see JCublas#cublasSetMatrix(int, int, int, Pointer, int, Pointer, int)
 */
public static int cublasSetMatrix (int rows, int cols, cuDoubleComplex A[], int offsetA, int lda, Pointer B, int ldb)
{
  ByteBuffer byteBufferA = ByteBuffer.allocateDirect(A.length * 8 * 2);
  byteBufferA.order(ByteOrder.nativeOrder());
  DoubleBuffer doubleBufferA = byteBufferA.asDoubleBuffer();
  for (int i=0; i<A.length; i++)
  {
    doubleBufferA.put(A[i].x);
    doubleBufferA.put(A[i].y);
  }
  return checkResult(cublasSetMatrixNative(rows, cols, 16, Pointer.to(doubleBufferA).withByteOffset(offsetA * 8 * 2), lda, B, ldb));
}
origin: org.nd4j/jcublas-windows64

/**
 * Extended wrapper for arrays of cuDoubleComplex values. Note that this method
 * only exists for convenience and compatibility with native C code. It
 * is much more efficient to provide a Pointer to a double array containing
 * the complex numbers, where each pair of consecutive numbers in the array
 * describes the real- and imaginary part of one complex number.
 *
 * @see jcuda.jcublas.JCublas#cublasSetMatrix(int, int, int, jcuda.Pointer, int, jcuda.Pointer, int)
 */
public static int cublasSetMatrix (int rows, int cols, cuDoubleComplex A[], int offsetA, int lda, Pointer B, int ldb)
{
  ByteBuffer byteBufferA = ByteBuffer.allocateDirect(A.length * 8 * 2);
  byteBufferA.order(ByteOrder.nativeOrder());
  DoubleBuffer doubleBufferA = byteBufferA.asDoubleBuffer();
  for (int i=0; i<A.length; i++)
  {
    doubleBufferA.put(A[i].x);
    doubleBufferA.put(A[i].y);
  }
  return checkResult(cublasSetMatrixNative(rows, cols, 16, Pointer.to(doubleBufferA).withByteOffset(offsetA * 8 * 2), lda, B, ldb));
}
origin: org.nd4j/jcublas-osx

/**
 * Extended wrapper for arrays of cuDoubleComplex values. Note that this method
 * only exists for convenience and compatibility with native C code. It
 * is much more efficient to provide a Pointer to a double array containing
 * the complex numbers, where each pair of consecutive numbers in the array
 * describes the real- and imaginary part of one complex number.
 *
 * @see JCublas#cublasSetMatrix(int, int, int, Pointer, int, Pointer, int)
 */
public static int cublasSetMatrix (int rows, int cols, cuDoubleComplex A[], int offsetA, int lda, Pointer B, int ldb)
{
  ByteBuffer byteBufferA = ByteBuffer.allocateDirect(A.length * 8 * 2);
  byteBufferA.order(ByteOrder.nativeOrder());
  DoubleBuffer doubleBufferA = byteBufferA.asDoubleBuffer();
  for (int i=0; i<A.length; i++)
  {
    doubleBufferA.put(A[i].x);
    doubleBufferA.put(A[i].y);
  }
  return checkResult(cublasSetMatrixNative(rows, cols, 16, Pointer.to(doubleBufferA).withByteOffset(offsetA * 8 * 2), lda, B, ldb));
}
origin: org.jcuda/jcublas

/**
 * Extended wrapper for arrays of cuDoubleComplex values. Note that this method
 * only exists for convenience and compatibility with native C code. It
 * is much more efficient to provide a Pointer to a double array containing
 * the complex numbers, where each pair of consecutive numbers in the array
 * describes the real- and imaginary part of one complex number.
 *
 * @see JCublas#cublasSetMatrix(int, int, int, Pointer, int, Pointer, int)
 */
public static int cublasSetMatrix (int rows, int cols, cuDoubleComplex A[], int offsetA, int lda, Pointer B, int ldb)
{
  ByteBuffer byteBufferA = ByteBuffer.allocateDirect(A.length * 8 * 2);
  byteBufferA.order(ByteOrder.nativeOrder());
  DoubleBuffer doubleBufferA = byteBufferA.asDoubleBuffer();
  for (int i=0; i<A.length; i++)
  {
    doubleBufferA.put(A[i].x);
    doubleBufferA.put(A[i].y);
  }
  return checkResult(cublasSetMatrixNative(rows, cols, 16, Pointer.to(doubleBufferA).withByteOffset(offsetA * 8 * 2), lda, B, ldb));
}
jcuda.jcublasJCublascublasSetMatrixNative

Popular methods of JCublas

  • checkResult
    If the given result is different to cublasStatus.CUBLAS_STATUS_SUCCESS and exceptions have been enab
  • checkResultBLAS
    Obtain the current CUBLAS status by calling cublasGetErrorNative, and store the result as the lastRe
  • cublasAllocNative
  • cublasCaxpyNative
  • cublasCcopyNative
  • cublasCdotcNative
  • cublasCdotuNative
  • cublasCgbmvNative
  • cublasCgemmNative
  • cublasCgemvNative
  • cublasCgercNative
  • cublasCgeruNative
  • cublasCgercNative,
  • cublasCgeruNative,
  • cublasChbmvNative,
  • cublasChemmNative,
  • cublasChemvNative,
  • cublasCher2Native,
  • cublasCher2kNative,
  • cublasCherNative,
  • cublasCherkNative,
  • cublasChpr2Native

Popular in Java

  • Updating database using SQL prepared statement
  • startActivity (Activity)
  • onRequestPermissionsResult (Fragment)
  • compareTo (BigDecimal)
  • Color (java.awt)
    The Color class is used to encapsulate colors in the default sRGB color space or colors in arbitrary
  • FileNotFoundException (java.io)
    Thrown when a file specified by a program cannot be found.
  • PrintStream (java.io)
    Fake signature of an existing Java class.
  • DateFormat (java.text)
    Formats or parses dates and times.This class provides factories for obtaining instances configured f
  • LinkedList (java.util)
    Doubly-linked list implementation of the List and Dequeinterfaces. Implements all optional list oper
  • TreeMap (java.util)
    Walk the nodes of the tree left-to-right or right-to-left. Note that in descending iterations, next
  • Top plugins for WebStorm
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimAtomGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyStudentsTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now