public class AsymmetricTensor extends Tensor
Tensors which are not symmetric, as
opposed to the symmetry defined in SymmetricTensor.Tensor,
SymmetricTensor| Modifier and Type | Field and Description |
|---|---|
protected double[][][] |
tensor
The internal tensor.
|
| Constructor and Description |
|---|
AsymmetricTensor(double[][][] asym_tensor,
int n,
byte k)
This constructor creates and checks a filled asymmetric tensor with given
dimension.
|
AsymmetricTensor(int n,
byte k)
This constructor creates an empty asymmetric tensor with given dimension.
|
| Modifier and Type | Method and Description |
|---|---|
int[] |
getMaximalEdgeFor(byte k,
int child,
int... parents)
Returns the edge
permute(parents[0],...,parents[k-1]) -> child that maximizes
the score. |
double |
getRootValue(int child)
Returns the value for
child as root. |
double |
getValue(byte k,
int child,
int... parents)
Returns the value for the edge
parents[0],...,parents[k-1] -> child. |
void |
resetValue(byte k,
int child,
int... parents)
Sets the value for the edge
parents[0],...,parents[k-1] -> child to
Double.NEGATIVE_INFINITY. |
void |
setRootValue(int child,
double val)
Sets the value
val for the root node child. |
void |
setValue(byte k,
double val,
int child,
int... parents)
Sets the value for the edge
parents[0],...,parents[k-1] -> child. |
getAsymIndex, getNumberOfNodes, getOrder, readTensorFromFile, toDouble3DArray, writeTensorToFilepublic AsymmetricTensor(int n,
byte k)
n - the number of nodesk - the orderTensor.Tensor(int, byte)public AsymmetricTensor(double[][][] asym_tensor,
int n,
byte k)
throws IllegalArgumentException
asym_tensor - the tensor weightsn - the number of nodesk - the orderIllegalArgumentException - if n < 0 or k < 1 or the
given tensor has a wrong dimensionTensor.Tensor(int, byte)public int[] getMaximalEdgeFor(byte k,
int child,
int... parents)
Tensorpermute(parents[0],...,parents[k-1]) -> child that maximizes
the score.getMaximalEdgeFor in class Tensork - the number of parents to be usedchild - the child nodeparents - the parent nodes (only the first k will be used)permute(parents[0],...,parents[k-1]) -> child that
maximizes the scorepublic double getRootValue(int child)
Tensorchild as root.getRootValue in class Tensorchild - the name of the nodepublic double getValue(byte k,
int child,
int... parents)
Tensorparents[0],...,parents[k-1] -> child.public void setRootValue(int child,
double val)
Tensorval for the root node child.setRootValue in class Tensorchild - the name of the nodeval - the value for the nodepublic void setValue(byte k,
double val,
int child,
int... parents)
Tensorparents[0],...,parents[k-1] -> child.public void resetValue(byte k,
int child,
int... parents)
Tensorparents[0],...,parents[k-1] -> child to
Double.NEGATIVE_INFINITY.resetValue in class Tensork - the number of parents to be usedchild - the child nodeparents - the parent nodes (only the first k will be used)