Class 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 Details

    • 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 for
      ignoreUnknownValues - 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 Details

    • 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 class Context
      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 Value get(String name)
      Perform a slow lookup by name
      Specified by:
      get in class Context
      Parameters:
      name - the name of the variable whose value to return.
      Returns:
      the value of the named variable.
    • get

      public final Value get(int index)
      Perform a faster lookup by index
      Specified by:
      get in interface ContextIndex
      Overrides:
      get in class Context
      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 class AbstractArrayContext