DoubleNdArray

interface pública DoubleNdArray
Subclasses indiretas conhecidas

Um NdArray de duplas.

Métodos Públicos

abstrato DoubleNdArray
copyTo ( NdArray <Duplo> dst)
abstrato NdArraySequence < DoubleNdArray >
elementos (int dimensãoIdx)
Retorna uma sequência de todos os elementos em uma determinada dimensão.
abstrato DoubleNdArray
obter (longas... coordenadas)
Retorna o elemento N-dimensional desta matriz nas coordenadas fornecidas.
duplo abstrato
getDouble (longo... coordenadas)
Retorna o valor duplo do escalar encontrado nas coordenadas fornecidas.
abstrato duplo
getObject (longo... coordenadas)
Retorna o valor do escalar encontrado nas coordenadas fornecidas.
abstrato DoubleNdArray
ler ( DataBuffer <Duplo> dst)
abstrato DoubleNdArray
abstrato NdArraySequence < DoubleNdArray >
escalares ()
Retorna uma sequência de todos os escalares nesta matriz.
abstrato DoubleNdArray
set ( NdArray <Double> src, long... coordenadas)
abstrato DoubleNdArray
setDouble (valor duplo, coordenadas longas)
Atribui o valor duplo do escalar encontrado nas coordenadas fornecidas.
abstrato DoubleNdArray
setObject (valor duplo, coordenadas longas)
abstrato DoubleNdArray
fatia ( Índice... índices)
Cria uma visualização multidimensional (ou fatia) desta matriz mapeando uma ou mais dimensões para os seletores de índice fornecidos.
abstrato DoubleNdArray
escrever ( DataBuffer <Double> src)
abstrato DoubleNdArray

Métodos herdados

Métodos Públicos

público abstrato DoubleNdArray copyTo ( NdArray <Double> dst)

público abstrato NdArraySequence < DoubleNdArray > elementos (int dimensionIdx)

Retorna uma sequência de todos os elementos em uma determinada dimensão.

Logicamente, a matriz N-dimensional pode ser nivelada em um único vetor, onde os escalares do (n - 1) -ésimo elemento precedem aqueles do (n) -ésimo elemento, para um total de valores size() .

Por exemplo, dada uma matriz nxm nos eixos [x, y] , os elementos são iterados na seguinte ordem:

x 0 y 0 , x 0 y 1 , ..., x 0 y m-1 , x 1 y 0 , x 1 y 1 , ..., x n-1 y m-1

A sequência retornada pode então ser iterada para visitar cada elemento, chamando forEach(Consumer) ou forEachIndexed(BiConsumer) .

// Iterate matrix for initializing each of its vectors
    matrixOfFloats.elements(0).forEach(v -> {
      v.set(vector(1.0f, 2.0f, 3.0f));
    );

    // Iterate a vector for reading each of its scalar
    vectorOfFloats.scalars().forEachIdx((coords, s) -> {
      System.out.println("Value " + s.getFloat() + " found at " + coords);
    });
 }

Parâmetros
dimensãoIdx índice da dimensão
Devoluções
  • uma sequência NdArray

public abstract DoubleNdArray get (coordenadas longas...)

Retorna o elemento N-dimensional desta matriz nas coordenadas fornecidas.

Elementos de qualquer uma das dimensões desta matriz podem ser recuperados. Por exemplo, se o número de coordenadas for igual ao número de dimensões deste array, então um array de classificação 0 (escalar) é retornado, cujo valor pode então ser obtido chamando `array.getObject()`.

Quaisquer alterações aplicadas aos elementos retornados também afetam os dados deste array, pois não há cópia envolvida.

Observe que invocar esse método é uma maneira equivalente e mais eficiente de dividir esse array em um único escalar, ou seja, array.get(x, y, z) é igual a array.slice(at(x), at(y), at(z))

Parâmetros
coordenadas coordenadas do elemento a ser acessado, nenhuma retornará este array
Devoluções
  • o elemento neste índice

público abstrato duplo getDouble (longo... coordenadas)

Retorna o valor duplo do escalar encontrado nas coordenadas fornecidas.

Para acessar o elemento escalar, o número de coordenadas fornecidas deve ser igual ao número de dimensões deste array (ou seja, sua classificação). Por exemplo:

DoubleNdArray matrix = NdArrays.ofDoubles(shape(2, 2));  // matrix rank = 2
  matrix.getDouble(0, 1);  // succeeds, returns 0.0
  matrix.getDouble(0);  // throws IllegalRankException

  DoubleNdArray scalar = matrix.get(0, 1);  // scalar rank = 0
  scalar.getDouble();  // succeeds, returns 0.0
 

Parâmetros
coordenadas coordenadas do escalar para resolver
Devoluções
  • valor desse escalar
Lança
IndexOutOfBoundsException se algumas coordenadas estiverem fora dos limites de sua respectiva dimensão
IlegalRankException se o número de coordenadas não for suficiente para acessar um elemento escalar

público abstrato Double getObject (coordenadas longas...)

Retorna o valor do escalar encontrado nas coordenadas fornecidas.

Para acessar o elemento escalar, o número de coordenadas fornecidas deve ser igual ao número de dimensões deste array (ou seja, sua classificação). Por exemplo:

FloatNdArray matrix = NdArrays.ofFloats(shape(2, 2));  // matrix rank = 2
  matrix.getObject(0, 1);  // succeeds, returns 0.0f
  matrix.getObject(0);  // throws IllegalRankException

  FloatNdArray scalar = matrix.get(0, 1);  // scalar rank = 0
  scalar.getObject();  // succeeds, returns 0.0f
 
Nota: se este array armazena valores de um tipo primitivo, prefira a utilização do método especializado na subclasse para esse tipo. Por exemplo, floatArray.getFloat(0); .

Parâmetros
coordenadas coordenadas do escalar para resolver
Devoluções
  • valor desse escalar

leitura pública abstrata DoubleNdArray ( DataBuffer <Double> dst)

leitura pública abstrata DoubleNdArray ( DoubleDataBuffer dst)

público abstrato NdArraySequence < DoubleNdArray > escalares ()

Retorna uma sequência de todos os escalares nesta matriz.

Isso é equivalente a chamar elements(shape().numDimensions() - 1)

Devoluções
  • uma sequência NdArray

public abstract DoubleNdArray set ( NdArray <Double> src, long... coordenadas)

public abstract DoubleNdArray setDouble (valor duplo, long... coordenadas)

Atribui o valor duplo do escalar encontrado nas coordenadas fornecidas.

Para acessar o elemento escalar, o número de coordenadas fornecidas deve ser igual ao número de dimensões deste array (ou seja, sua classificação). Por exemplo:

DoubleNdArray matrix = NdArrays.ofDoubles(shape(2, 2));  // matrix rank = 2
  matrix.setDouble(10.0, 0, 1);  // succeeds
  matrix.setDouble(10.0, 0);  // throws IllegalRankException

  DoubleNdArray scalar = matrix.get(0, 1);  // scalar rank = 0
  scalar.setDouble(10.0);  // succeeds
 

Parâmetros
valor valor a atribuir
coordenadas coordenadas do escalar a ser atribuído
Devoluções
  • esta matriz
Lança
IndexOutOfBoundsException se algumas coordenadas estiverem fora dos limites de sua respectiva dimensão
IllegalRankException se o número de coordenadas não for suficiente para acessar um elemento escalar

público abstrato DoubleNdArray setObject (valor duplo, coordenadas longas...)

fatia DoubleNdArray abstrata pública ( Índice... índices)

Cria uma visualização multidimensional (ou fatia) desta matriz mapeando uma ou mais dimensões para os seletores de índice fornecidos.

As fatias permitem percorrer um array N-dimensional em qualquer um de seus eixos e/ou filtrar apenas os elementos de interesse. Por exemplo, para uma determinada matriz nos eixos [x, y] , é possível iterar elementos em y=0 para todos x .

Quaisquer alterações aplicadas à fatia retornada também afetam os dados desta matriz, pois não há cópia envolvida.

Exemplo de uso:

FloatNdArray matrix3d = NdArrays.ofFloats(shape(3, 2, 4));  // with [x, y, z] axes

    // Iterates elements on the x axis by preserving only the 3rd value on the z axis,
    // (i.e. [x, y, 2])
    matrix3d.slice(all(), all(), at(2)).elements(0).forEach(m -> {
      assertEquals(shape(2), m); // y=2, z=0 (scalar)
    );

    // Creates a slice that contains only the last element of the y axis and elements with an
    // odd `z` coordinate.
    FloatNdArray slice = matrix3d.slice(all(), at(1), odd());
    assertEquals(shape(3, 2), slice.shape());  // x=3, y=0 (scalar), z=2 (odd coordinates)

    // Iterates backward the elements on the x axis
    matrix3d.slice(flip()).elements(0).forEach(m -> {
      assertEquals(shape(2, 4), m);  // y=2, z=4
    });
 }

Parâmetros
índices seletores de índice por dimensões, começando na dimensão 0 desta matriz.
Devoluções
  • o elemento resultante da seleção do índice

gravação pública abstrata DoubleNdArray ( DataBuffer <Double> src)

gravação pública abstrata DoubleNdArray ( DoubleDataBuffer src)