Class DoubleOnlyArrayContext
- java.lang.Object
-
- com.yahoo.searchlib.rankingexpression.evaluation.Context
-
- com.yahoo.searchlib.rankingexpression.evaluation.AbstractArrayContext
-
- com.yahoo.searchlib.rankingexpression.evaluation.DoubleOnlyArrayContext
-
- All Implemented Interfaces:
ContextIndex
,com.yahoo.tensor.evaluation.EvaluationContext<Reference>
,com.yahoo.tensor.evaluation.TypeContext<Reference>
,Cloneable
public class DoubleOnlyArrayContext extends AbstractArrayContext
A variant of an array context variant which supports faster binding of variables but slower lookup from non-gbdt-optimized ranking expressions.- Author:
- bratseth
-
-
Constructor Summary
Constructors Constructor Description DoubleOnlyArrayContext(RankingExpression expression)
Create a fast lookup context for an expression.DoubleOnlyArrayContext(RankingExpression expression, boolean ignoreUnknownValues)
DoubleOnlyArrayContext(RankingExpression expression, boolean ignoreUnknownValues, Value missingValue)
Create a fast lookup context for an expression.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DoubleOnlyArrayContext
clone()
Creates a clone of this context suitable for evaluating against the same ranking expression in a different thread (i.e, name name to index map, different value set.Value
get(int index)
Perform a faster lookup by indexValue
get(String name)
Perform a slow lookup by namecom.yahoo.tensor.TensorType
getType(Reference reference)
void
put(int index, double value)
Same as put(index,DoubleValue.frozen(value))void
put(int index, Value value)
Puts a value by index.void
put(String name, Value value)
Puts a value by name.-
Methods inherited from class com.yahoo.searchlib.rankingexpression.evaluation.AbstractArrayContext
doubleValues, getDouble, getIndex, ignoreUnknownValues, names, nameToIndex, size, toString
-
-
-
-
Constructor Detail
-
DoubleOnlyArrayContext
public DoubleOnlyArrayContext(RankingExpression expression)
Create a fast lookup context for an expression. This instance should be reused indefinitely by a single thread. This will fail if unknown values are attempted added.
-
DoubleOnlyArrayContext
public DoubleOnlyArrayContext(RankingExpression expression, boolean ignoreUnknownValues)
-
DoubleOnlyArrayContext
public DoubleOnlyArrayContext(RankingExpression expression, boolean ignoreUnknownValues, Value missingValue)
Create a fast lookup context for an expression. This instance should be reused indefinitely by a single thread.- Parameters:
expression
- the expression to create a context forignoreUnknownValues
- whether attempts to put values not present in this expression should fail (false - the default), or be ignored (true)missingValue
- the value to return if not set.
-
-
Method Detail
-
put
public final void put(String name, Value value)
Puts a value by name. The value will be frozen if it isn't already.- Overrides:
put
in classContext
- Parameters:
name
- the name of the variable to set.value
- the value to set. Ownership of this value is transferred to this - if it is mutable (not frozen) it may be modified during execution- Throws:
IllegalArgumentException
- if the name is not present in the ranking expression this was created with, and ignoredUnknownValues is false
-
put
public final void put(int index, double value)
Same as put(index,DoubleValue.frozen(value))
-
put
public final void put(int index, Value value)
Puts a value by index.
-
getType
public com.yahoo.tensor.TensorType getType(Reference reference)
-
get
public final Value get(int index)
Perform a faster lookup by index- Specified by:
get
in interfaceContextIndex
- Overrides:
get
in classContext
- Parameters:
index
- the index of the variable whose value to return.- Returns:
- the value of the indexed variable.
-
clone
public DoubleOnlyArrayContext clone()
Creates a clone of this context suitable for evaluating against the same ranking expression in a different thread (i.e, name name to index map, different value set.- Overrides:
clone
in classAbstractArrayContext
-
-