LongNdArray

antarmuka publik LongNdArray
Subkelas Tidak Langsung yang Diketahui

Sebuah NdArray yang panjang.

Metode Publik

abstrak LongNdArray
copyTo ( NdArray <Panjang> dst)
Urutan NdArray abstrak < LongNdArray >
elemen (int dimensiIdx)
Mengembalikan urutan semua elemen pada dimensi tertentu.
abstrak LongNdArray
dapatkan (panjang...koordinat)
Mengembalikan elemen berdimensi N dari larik ini pada koordinat yang ditentukan.
abstrak panjang
getLong (panjang...koordinat)
Mengembalikan nilai panjang skalar yang ditemukan pada koordinat tertentu.
abstrak Panjang
getObject (panjang...koordinat)
Mengembalikan nilai skalar yang ditemukan pada koordinat tertentu.
abstrak LongNdArray
baca ( DataBuffer <Panjang> dst)
abstrak LongNdArray
Urutan NdArray abstrak < LongNdArray >
skalar ()
Mengembalikan urutan semua skalar dalam larik ini.
abstrak LongNdArray
set ( NdArray <Panjang> src, panjang... koordinat)
abstrak LongNdArray
setLong (nilai panjang, panjang... koordinat)
Menetapkan nilai panjang skalar yang ditemukan pada koordinat tertentu.
abstrak LongNdArray
setObject (Nilai panjang, panjang... koordinat)
abstrak LongNdArray
irisan ( Indeks... indeks)
Membuat tampilan (atau potongan) multidimensi dari larik ini dengan memetakan satu atau lebih dimensi ke pemilih indeks tertentu.
abstrak LongNdArray
abstrak LongNdArray
menulis ( DataBuffer <Panjang> src)

Metode Warisan

Metode Publik

abstrak publik LongNdArray copyTo ( NdArray <Panjang> dst)

elemen NdArraySequence < LongNdArray > abstrak publik (int DimensionIdx)

Mengembalikan urutan semua elemen pada dimensi tertentu.

Logikanya, array berdimensi-N dapat diratakan dalam satu vektor, dengan skalar elemen ke- (n - 1) mendahului skalar elemen ke- (n) , dengan total nilai size() .

Misalnya, jika diberi matriks nxm pada sumbu [x, y] , elemen akan diiterasi dengan urutan sebagai berikut:

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

Urutan yang dikembalikan kemudian dapat diulang untuk mengunjungi setiap elemen, baik dengan memanggil forEach(Consumer) atau 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);
    });
 }

Parameter
dimensiIdx indeks dimensi
Kembali
  • urutan NdArray

abstrak publik LongNdArray dapatkan (panjang... koordinat)

Mengembalikan elemen berdimensi N dari larik ini pada koordinat yang ditentukan.

Elemen dari dimensi mana pun dari array ini dapat diambil. Misalnya, jika jumlah koordinat sama dengan jumlah dimensi array ini, maka array peringkat-0 (skalar) dikembalikan, yang nilainya kemudian dapat diperoleh dengan memanggil `array.getObject()`.

Setiap perubahan yang diterapkan pada elemen yang dikembalikan juga akan memengaruhi data array ini, karena tidak ada penyalinan yang terlibat.

Perhatikan bahwa menjalankan metode ini adalah cara yang setara dan lebih efisien untuk mengiris array ini pada skalar tunggal, yaitu array.get(x, y, z) sama dengan array.slice(at(x), at(y), at(z))

Parameter
koordinat koordinat elemen yang akan diakses, tidak ada yang akan mengembalikan array ini
Kembali
  • elemen pada indeks ini

abstrak publik long getLong (panjang... koordinat)

Mengembalikan nilai panjang skalar yang ditemukan pada koordinat tertentu.

Untuk mengakses elemen skalar, jumlah koordinat yang diberikan harus sama dengan jumlah dimensi array ini (yaitu peringkatnya). Misalnya:

LongNdArray matrix = NdArrays.ofLongs(shape(2, 2));  // matrix rank = 2
  matrix.getLong(0, 1);  // succeeds, returns 0L
  matrix.getLong(0);  // throws IllegalRankException

  LongNdArray scalar = matrix.get(0, 1);  // scalar rank = 0
  scalar.getLong();  // succeeds, returns 0L
 

Parameter
koordinat koordinat skalar yang akan diselesaikan
Kembali
  • nilai skalar itu
Melempar
IndexOutOfBoundsException jika beberapa koordinat berada di luar batas dimensinya masing-masing
IlegalRankException jika jumlah koordinat tidak cukup untuk mengakses elemen skalar

public abstract Long getObject (panjang... koordinat)

Mengembalikan nilai skalar yang ditemukan pada koordinat tertentu.

Untuk mengakses elemen skalar, jumlah koordinat yang diberikan harus sama dengan jumlah dimensi array ini (yaitu peringkatnya). Misalnya:

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
 
Catatan: jika array ini menyimpan nilai tipe primitif, pilihlah penggunaan metode khusus di subkelas untuk tipe tersebut. Misalnya, floatArray.getFloat(0); .

Parameter
koordinat koordinat skalar yang akan diselesaikan
Kembali
  • nilai skalar itu

abstrak publik LongNdArray dibaca ( DataBuffer <Panjang> dst)

abstrak publik LongNdArray dibaca ( LongDataBuffer dst)

abstrak publik NdArraySequence < LongNdArray > skalar ()

Mengembalikan urutan semua skalar dalam larik ini.

Ini setara dengan elements(shape().numDimensions() - 1)

Kembali
  • urutan NdArray

kumpulan LongNdArray abstrak publik ( NdArray <Panjang> src, panjang... koordinat)

public abstract LongNdArray setLong (nilai panjang, panjang... koordinat)

Menetapkan nilai panjang skalar yang ditemukan pada koordinat tertentu.

Untuk mengakses elemen skalar, jumlah koordinat yang diberikan harus sama dengan jumlah dimensi array ini (yaitu peringkatnya). Misalnya:

LongNdArray matrix = NdArrays.ofLongs(shape(2, 2));  // matrix rank = 2
  matrix.setLong(10L, 0, 1);  // succeeds
  matrix.setLong(10L, 0);  // throws IllegalRankException

  LongNdArray scalar = matrix.get(0, 1);  // scalar rank = 0
  scalar.setLong(10L);  // succeeds
 

Parameter
nilai nilai untuk ditetapkan
koordinat koordinat skalar yang akan ditetapkan
Kembali
  • susunan ini
Melempar
IndexOutOfBoundsException jika beberapa koordinat berada di luar batas dimensinya masing-masing
IlegalRankException jika jumlah koordinat tidak cukup untuk mengakses elemen skalar

public abstract LongNdArray setObject (Nilai panjang, panjang... koordinat)

irisan LongNdArray abstrak publik ( Indeks... indeks)

Membuat tampilan (atau potongan) multidimensi dari larik ini dengan memetakan satu atau lebih dimensi ke pemilih indeks tertentu.

Irisan memungkinkan untuk melintasi array berdimensi N di salah satu sumbunya dan/atau memfilter hanya elemen yang diinginkan. Misalnya, untuk matriks tertentu pada sumbu [x, y] , dimungkinkan untuk melakukan iterasi elemen pada y=0 untuk semua x .

Perubahan apa pun yang diterapkan pada potongan yang dikembalikan akan memengaruhi data array ini juga, karena tidak ada salinan yang terlibat.

Contoh penggunaan:

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
    });
 }

Parameter
indeks pemilih indeks per dimensi, mulai dari dimensi 0 array ini.
Kembali
  • elemen hasil pemilihan indeks

abstrak publik LongNdArray tulis ( LongDataBuffer src)

abstrak publik LongNdArray tulis ( DataBuffer <Panjang> src)