TensorD

scalation.mathstat.TensorD
See theTensorD companion object
class TensorD(val dim: Int, val dim2: Int, val dim3: Int, var v: Array[Array[Array[Double]]]) extends Serializable

The TensorD class is a simple implementation for 3-dimensional tensors. The names of the dimensions corresponds to MATLAB (row, column, sheet).

Value parameters

dim

size of the 1st level/dimension (row) of the tensor (height)

dim2

size of the 2nd level/dimension (column) of the tensor (width)

dim3

size of the 3rd level/dimension (sheet) of the tensor (depth)

v

the 3D array for holding the tensor elements

Attributes

See also

RTensorD for non-rectangular (ragged) tensors.

Companion
object
Graph
Supertypes
trait Serializable
class Object
trait Matchable
class Any

Members list

Value members

Constructors

def this(dim: Int)

Construct a dim by dim by dim cubic tensor.

Construct a dim by dim by dim cubic tensor.

Value parameters

dim

the row and column dimension

Attributes

def this(u: Array[Array[Array[Double]]])

Construct a tensor from three dimensional array.

Construct a tensor from three dimensional array.

Value parameters

u

the three dimensional array

Attributes

Concrete methods

def *(s: Double): TensorD

Multiply this tensor by scalar s.

Multiply this tensor by scalar s.

Value parameters

s

the scalar to multiply by

Attributes

def *(b: MatrixD, c: MatrixD, d: MatrixD): TensorD

Multiply (multi-linear product) this tensor by three matrices b, c and d. this * (a, b, c)

Multiply (multi-linear product) this tensor by three matrices b, c and d. this * (a, b, c)

Value parameters

b

the first matrix to multiply by (requires leDimensions)

c

the second matrix to multiply by (requires leDimensions)

d

the third matrix to multiply by (requires leDimensions)

Attributes

See also
def *~(b: TensorD): TensorD

Multiply element-wise (Hadamard product) this tensor by tensor b.

Multiply element-wise (Hadamard product) this tensor by tensor b.

Value parameters

b

the tensor to add (requires leDimensions)

Attributes

def +(b: TensorD): TensorD

Add this tensor and tensor b.

Add this tensor and tensor b.

Value parameters

b

the tensor to add (requires leDimensions)

Attributes

def +(s: Double): TensorD

Add this tensor and scalar s.

Add this tensor and scalar s.

Value parameters

s

the scalar to add

Attributes

def -(b: TensorD): TensorD

From this tensor subtract tensor b.

From this tensor subtract tensor b.

Value parameters

b

the tensor to add (requires leDimensions)

Attributes

def -(s: Double): TensorD

From this tensor subtract scalar s.

From this tensor subtract scalar s.

Value parameters

s

the scalar to add

Attributes

def apply(i: Int, j: Int, k: Int): Double

Retrieve the i, j, k-th SCALAR element from the tensor x_ijk.

Retrieve the i, j, k-th SCALAR element from the tensor x_ijk.

Value parameters

i

the 1st dimension (row) index of the tensor

j

the 2nd dimension (column) index of the tensor

k

the 3rd dimension (sheet) index of the tensor

Attributes

def apply(i: Int, j: Int): VectorD

Retrieve the i, j-th VECTOR from the tensor x_ij:.

Retrieve the i, j-th VECTOR from the tensor x_ij:.

Value parameters

i

the 1st dimension (row) index of the tensor

j

the 2nd dimension (column) index of the tensor

Attributes

def apply(i: Int, all: Char, k: Int): VectorD

Retrieve the i, k-th VECTOR from the tensor x_i:k.

Retrieve the i, k-th VECTOR from the tensor x_i:k.

Value parameters

all

use the all columns indicator ?

i

the 1st dimension (row) index of the tensor

k

the 3rd dimension (sheet) index of the tensor

Attributes

def apply(all: Char, j: Int, k: Int): VectorD

Retrieve the j, k-th VECTOR from the tensor x_:jk.

Retrieve the j, k-th VECTOR from the tensor x_:jk.

Value parameters

all

use the all rows indicator ?

j

the 2nd dimension (column) index of the tensor

k

the 3rd dimension (sheet) index of the tensor

Attributes

def apply(i: Int): MatrixD

Return the i-th ROW FIXED MATRIX from the tensor (horizontal slice x_i::).

Return the i-th ROW FIXED MATRIX from the tensor (horizontal slice x_i::).

Value parameters

i

the 1st dimension (row) index of the tensor

Attributes

See also
def apply(all: Char, j: Int): MatrixD

Retrieve the j-th COLUMN FIXED MATRIX from the tensor (lateral slice x_:j:).

Retrieve the j-th COLUMN FIXED MATRIX from the tensor (lateral slice x_:j:).

Value parameters

all

use the all rows indicator ?

j

the 2nd dimension (column) index of the tensor

Attributes

See also
inline def apply(all: Char, all2: Char, k: Int): MatrixD

Retrieve the k-th SHEET FIXED MATRIX from the tensor (frontal slice x_::k).

Retrieve the k-th SHEET FIXED MATRIX from the tensor (frontal slice x_::k).

Value parameters

all

use the all rows indicator ?

all2

use the all columns indicator ?

k

the 3rd dimension (sheet) index of the tensor

Attributes

See also
def apply(ii: (Int, Int)): TensorD

Retrieve the ii._1 to ii._2 row slice of the tensor.

Retrieve the ii._1 to ii._2 row slice of the tensor.

Value parameters

ii

1st dimension (row) indices of the tensor

Attributes

def apply(ii: (Int, Int), jj: (Int, Int)): TensorD

Retrieve the ii._1 to ii._2, jj._1 to jj._2 row-column slice of the tensor.

Retrieve the ii._1 to ii._2, jj._1 to jj._2 row-column slice of the tensor.

Value parameters

ii

1st dimension (row) indices of the tensor (null => all)

jj

2nd dimension (column) indices of the tensor

Attributes

def apply(ii: (Int, Int), jj: (Int, Int), kk: (Int, Int)): TensorD

Retrieve the ii._1 to ii._2, jj._1 to jj._2, kk._1 to kk._2 row-column-sheet slice of the tensor.

Retrieve the ii._1 to ii._2, jj._1 to jj._2, kk._1 to kk._2 row-column-sheet slice of the tensor.

Value parameters

ii

1st dimension (row) indices of the tensor (null => all)

jj

2nd dimension (column) indices of the tensor (null => all)

kk

3rd dimension (sheet) indices of the tensor

Attributes

def apply(is: Array[Int]): TensorD

Retrieve the is row selections from the tensor.

Retrieve the is row selections from the tensor.

Value parameters

is

1st dimension (row) indices of the tensor

Attributes

def apply(is: Array[Int], js: Array[Int]): TensorD

Retrieve the is, js row-column selections from the tensor.

Retrieve the is, js row-column selections from the tensor.

Value parameters

is

1st dimension (row) indices of the tensor (null => all)

js

2nd dimension (column) indices of the tensor

Attributes

def apply(is: Array[Int], js: Array[Int], ks: Array[Int]): TensorD

Retrieve the is, js, ks row-column-sheet selections from the tensor.

Retrieve the is, js, ks row-column-sheet selections from the tensor.

Value parameters

is

1st dimension (row) indices of the tensor (null => all)

js

2nd dimension (column) indices of the tensor (null => all)

ks

3rd dimension (sheet) indices of the tensor

Attributes

def apply(ir: Range, all2: Char, sheet: Int): MatrixD

Retrieve a slice of the tensor as a MatrixD, based on a row range and specified sheet.

Retrieve a slice of the tensor as a MatrixD, based on a row range and specified sheet.

Value parameters

all2

a character indicating all columns should be included (typically '?').

ir

the range of rows to include in the slice.

sheet

the index of the sheet to extract from.

Attributes

def apply(ir: Range, jr: Range, kr: Range): TensorD

Retrieve a sub-tensor based on the three ranges.

Retrieve a sub-tensor based on the three ranges.

Value parameters

ir

the range of rows to include in the slice.

jr

the range of columns to include in the slice.

kr

the range of sheet to include in the slice.

Attributes

inline def dims: (Int, Int, Int)

Return the row, column and sheet dimensions of this tensor.

Return the row, column and sheet dimensions of this tensor.

Attributes

Flatten this tensor in row-major fashion, returning a matrix containing all the elements from the tensor.

Flatten this tensor in row-major fashion, returning a matrix containing all the elements from the tensor.

Attributes

def leDimensions(b: TensorD): Boolean

Check whether the dimensions of this tensor are less than or equal to le those of the other tensor b.

Check whether the dimensions of this tensor are less than or equal to le those of the other tensor b.

Value parameters

b

the other matrix

Attributes

Map each row of this tensor by applying function f to each row matrix and returning the collected result as a matrix.

Map each row of this tensor by applying function f to each row matrix and returning the collected result as a matrix.

Value parameters

f

the matrix to vector function to apply

Attributes

Map each element of this tensor by applying function f to each element and returning the collected result as a tensor.

Map each element of this tensor by applying function f to each element and returning the collected result as a tensor.

Value parameters

f

the scalar to scalar function to apply

Attributes

Map each row of this tensor by applying function f to each row matrix and returning the collected result as a tensor.

Map each row of this tensor by applying function f to each row matrix and returning the collected result as a tensor.

Value parameters

f

the matrix to matrix function to apply

Attributes

def not(is: Array[Int]): TensorD

Retrieve the complement of the is row selections from the tensor.

Retrieve the complement of the is row selections from the tensor.

Value parameters

is

1st dimension (row) indices of the tensor

Attributes

def not(is: Array[Int], js: Array[Int]): TensorD

Retrieve the complement of the is row selections from the tensor.

Retrieve the complement of the is row selections from the tensor.

Value parameters

is

1st dimension (row) indices of the tensor

js

2nd dimension (column) indices of the tensor

Attributes

def not(is: Array[Int], js: Array[Int], ks: Array[Int]): TensorD

Retrieve the complement of the is row selections from the tensor.

Retrieve the complement of the is row selections from the tensor.

Value parameters

is

1st dimension (row) indices of the tensor

js

2nd dimension (column) indices of the tensor

ks

3rd dimension (sheet) indices of the tensor

Attributes

def set(x: Double): Unit

Set all the tensor element values to x.

Set all the tensor element values to x.

Value parameters

x

the value to set all elements to

Attributes

def setFormat(newFormat: String): Unit

Set the format to the newFormat.

Set the format to the newFormat.

Value parameters

newFormat

the new format string

Attributes

def toInt: TensorD

Convert this tensor to a matrix where all the elements have integer values.

Convert this tensor to a matrix where all the elements have integer values.

Attributes

override def toString: String

Convert this tensor to a string with a double line break after each sheet and a single line break after each row.

Convert this tensor to a string with a double line break after each sheet and a single line break after each row.

Attributes

Definition Classes
Any
def toString2: String

Convert this tensor to a string with a line break after each sheet.

Convert this tensor to a string with a line break after each sheet.

Attributes

def update(i: Int, j: Int, k: Int, x: Double): Unit

Update a single SCALAR element of the tensor to the given value. Usage: z(i, j, k) = x

Update a single SCALAR element of the tensor to the given value. Usage: z(i, j, k) = x

Value parameters

i

1st dimension (row) index of the tensor

j

2nd dimension (column) index of the tensor

k

3rd dimension (sheet) index of the tensor

x

the value for updating the tensor at the above position

Attributes

def update(i: Int, j: Int, x: VectorD): Unit

Update a single VECTOR of the tensor to the given vector. Usage: z(i, j) = x

Update a single VECTOR of the tensor to the given vector. Usage: z(i, j) = x

Value parameters

i

1st dimension (row) index of the tensor

j

2nd dimension (column) index of the tensor

x

the vector for updating the tensor at the above position

Attributes

def update(i: Int, all: Char, k: Int, x: VectorD): Unit

Update a single VECTOR of the tensor to the given vector. Usage: z(i, ?, k) = x

Update a single VECTOR of the tensor to the given vector. Usage: z(i, ?, k) = x

Value parameters

all

use the all columns indicator ?

i

1st dimension (row) index of the tensor

k

3rd dimension (sheet) index of the tensor

x

the vector for updating the tensor at the above position

Attributes

def update(all: Char, j: Int, k: Int, x: VectorD): Unit

Update a single VECTOR of the tensor to the given vector. Usage: z(?, j, k) = x

Update a single VECTOR of the tensor to the given vector. Usage: z(?, j, k) = x

Value parameters

all

use the all rows indicator ?

j

2nd dimension (column) index of the tensor

k

3rd dimension (sheet) index of the tensor

x

the vector for updating the tensor at the above position

Attributes

def update(i: Int, x: MatrixD): Unit

Update a single MATRIX of the tensor (for ROW i) to the given matrix. Usage: z(i) = x

Update a single MATRIX of the tensor (for ROW i) to the given matrix. Usage: z(i) = x

Value parameters

i

1st dimension (row) index of the tensor

x

the matrix for updating the tensor at the above position

Attributes

def update(all: Char, j: Int, x: MatrixD): Unit

Update a single MATRIX of the tensor (for COLUMN j) to the given matrix. Usage: z(?, j) = x

Update a single MATRIX of the tensor (for COLUMN j) to the given matrix. Usage: z(?, j) = x

Value parameters

all

use the all rows indicator ?

j

2nd dimension (column) index of the tensor

x

the matrix for updating the tensor at the above position

Attributes

def update(all: Char, all2: Char, k: Int, x: MatrixD): Unit

Update a single MATRIX of the tensor (for SHEET k) to the given matrix. Usage: z(?, ?, k) = x

Update a single MATRIX of the tensor (for SHEET k) to the given matrix. Usage: z(?, ?, k) = x

Value parameters

all

use the all rows indicator ?

all2

use the all columns indicator ?

k

the 3rd dimension (sheet) index of the tensor

x

the matrix for updating the tensor at the above position

Attributes

def update(ir: Range, all2: Char, sheet: Int, matrix: MatrixD): Unit

Update a slice of the tensor with values from a given matrix.

Update a slice of the tensor with values from a given matrix.

Value parameters

all2

a character indicating all columns should be updated (typically '?').

ir

n the range of rows in the tensor to update.

matrix

the matrix containing the values to update the tensor with.

sheet

the index of the sheet in the tensor to update.

Attributes

Throws
IllegalArgumentException

if the dimensions of the row range and matrix do not match.

def update(all1: Char, all2: Char, kr: Range, tensorBlk: TensorD): Unit

Update a slice of the tensor with values from a given 3D block (matrix over multiple sheets).

Update a slice of the tensor with values from a given 3D block (matrix over multiple sheets).

Value parameters

all1

a character indicating all rows should be updated (typically '?').

all2

a character indicating all columns should be updated (typically '?').

kr

the range of sheets in the tensor to update.

tensorBlk

the 3D block (rows x columns x sheets) containing the values to update the tensor with.

Attributes

Throws
IllegalArgumentException

if the dimensions of the tensor block do not match the tensor's dimensions.

Concrete fields

val dim: Int
val dim2: Int
val dim3: Int
val indices: Range
val indices2: Range
val indices3: Range