Vowpal Wabbit
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Search::predictor Class Reference

#include <search.h>

Public Member Functions

 predictor (search &sch, ptag my_tag)
 
 ~predictor ()
 
predictorset_input (example &input_example)
 
predictorset_input (example *input_example, size_t input_length)
 
void set_input_length (size_t input_length)
 
void set_input_at (size_t posn, example &input_example)
 
predictorerase_oracles ()
 
predictorreset ()
 
predictoradd_oracle (action a)
 
predictoradd_oracle (action *a, size_t action_count)
 
predictoradd_oracle (v_array< action > &a)
 
predictorset_oracle (action a)
 
predictorset_oracle (action *a, size_t action_count)
 
predictorset_oracle (v_array< action > &a)
 
predictorset_weight (float w)
 
predictorerase_alloweds ()
 
predictoradd_allowed (action a)
 
predictoradd_allowed (action *a, size_t action_count)
 
predictoradd_allowed (v_array< action > &a)
 
predictorset_allowed (action a)
 
predictorset_allowed (action *a, size_t action_count)
 
predictorset_allowed (v_array< action > &a)
 
predictoradd_allowed (action a, float cost)
 
predictoradd_allowed (action *a, float *costs, size_t action_count)
 
predictoradd_allowed (v_array< std::pair< action, float > > &a)
 
predictoradd_allowed (std::vector< std::pair< action, float > > &a)
 
predictorset_allowed (action a, float cost)
 
predictorset_allowed (action *a, float *costs, size_t action_count)
 
predictorset_allowed (v_array< std::pair< action, float > > &a)
 
predictorset_allowed (std::vector< std::pair< action, float > > &a)
 
predictoradd_condition (ptag tag, char name)
 
predictorset_condition (ptag tag, char name)
 
predictoradd_condition_range (ptag hi, ptag count, char name0)
 
predictorset_condition_range (ptag hi, ptag count, char name0)
 
predictorset_learner_id (size_t id)
 
predictorset_tag (ptag tag)
 
action predict ()
 

Private Member Functions

template<class T >
void make_new_pointer (v_array< T > &A, size_t new_size)
 
template<class T >
predictoradd_to (v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
 
template<class T >
predictoradd_to (v_array< T > &A, bool &A_is_ptr, T *a, size_t count, bool clear_first)
 
void free_ec ()
 

Private Attributes

bool is_ldf
 
ptag my_tag
 
exampleec
 
size_t ec_cnt
 
bool ec_alloced
 
float weight
 
v_array< actionoracle_actions
 
bool oracle_is_pointer
 
v_array< ptagcondition_on_tags
 
v_array< char > condition_on_names
 
v_array< actionallowed_actions
 
bool allowed_is_pointer
 
v_array< float > allowed_actions_cost
 
bool allowed_cost_is_pointer
 
size_t learner_id
 
searchsch
 

Detailed Description

Definition at line 256 of file search.h.

Constructor & Destructor Documentation

◆ predictor()

Search::predictor::predictor ( search sch,
ptag  my_tag 
)

Definition at line 3119 of file search.cc.

References allowed_actions, allowed_actions_cost, condition_on_names, condition_on_tags, and oracle_actions.

3120  : is_ldf(false)
3121  , my_tag(my_tag)
3122  , ec(nullptr)
3123  , ec_cnt(0)
3124  , ec_alloced(false)
3125  , weight(1.)
3126  , oracle_is_pointer(false)
3127  , allowed_is_pointer(false)
3128  , allowed_cost_is_pointer(false)
3129  , learner_id(0)
3130  , sch(sch)
3131 {
3132  oracle_actions = v_init<action>();
3133  condition_on_tags = v_init<ptag>();
3134  condition_on_names = v_init<char>();
3135  allowed_actions = v_init<action>();
3136  allowed_actions_cost = v_init<float>();
3137 }
size_t ec_cnt
Definition: search.h:336
v_array< char > condition_on_names
Definition: search.h:342
v_array< float > allowed_actions_cost
Definition: search.h:345
size_t learner_id
Definition: search.h:347
v_array< ptag > condition_on_tags
Definition: search.h:341
bool allowed_is_pointer
Definition: search.h:344
bool allowed_cost_is_pointer
Definition: search.h:346
example * ec
Definition: search.h:335
search & sch
Definition: search.h:348
v_array< action > oracle_actions
Definition: search.h:339
bool oracle_is_pointer
Definition: search.h:340
v_array< action > allowed_actions
Definition: search.h:343

◆ ~predictor()

Search::predictor::~predictor ( )

Definition at line 3151 of file search.cc.

References allowed_actions, allowed_actions_cost, allowed_cost_is_pointer, allowed_is_pointer, condition_on_names, condition_on_tags, v_array< T >::delete_v(), free_ec(), oracle_actions, and oracle_is_pointer.

3152 {
3153  if (!oracle_is_pointer)
3155  if (!allowed_is_pointer)
3159  free_ec();
3162 }
v_array< char > condition_on_names
Definition: search.h:342
v_array< float > allowed_actions_cost
Definition: search.h:345
v_array< ptag > condition_on_tags
Definition: search.h:341
bool allowed_is_pointer
Definition: search.h:344
bool allowed_cost_is_pointer
Definition: search.h:346
v_array< action > oracle_actions
Definition: search.h:339
bool oracle_is_pointer
Definition: search.h:340
void delete_v()
Definition: v_array.h:98
v_array< action > allowed_actions
Definition: search.h:343

Member Function Documentation

◆ add_allowed() [1/7]

predictor & Search::predictor::add_allowed ( action  a)

Definition at line 3342 of file search.cc.

References add_to(), allowed_actions, and allowed_is_pointer.

Referenced by add_allowed(), SequenceSpanTask::run(), and set_allowed().

3342 { return add_to(allowed_actions, allowed_is_pointer, a, false); }
bool allowed_is_pointer
Definition: search.h:344
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
constexpr uint64_t a
Definition: rand48.cc:11
v_array< action > allowed_actions
Definition: search.h:343

◆ add_allowed() [2/7]

predictor & Search::predictor::add_allowed ( action a,
size_t  action_count 
)

Definition at line 3343 of file search.cc.

References add_to(), allowed_actions, and allowed_is_pointer.

3344 {
3345  return add_to(allowed_actions, allowed_is_pointer, a, action_count, false);
3346 }
bool allowed_is_pointer
Definition: search.h:344
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
constexpr uint64_t a
Definition: rand48.cc:11
v_array< action > allowed_actions
Definition: search.h:343

◆ add_allowed() [3/7]

predictor & Search::predictor::add_allowed ( v_array< action > &  a)

Definition at line 3347 of file search.cc.

References add_to(), allowed_actions, allowed_is_pointer, v_array< T >::begin(), and v_array< T >::size().

3348 {
3349  return add_to(allowed_actions, allowed_is_pointer, a.begin(), a.size(), false);
3350 }
bool allowed_is_pointer
Definition: search.h:344
T *& begin()
Definition: v_array.h:42
size_t size() const
Definition: v_array.h:68
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
v_array< action > allowed_actions
Definition: search.h:343

◆ add_allowed() [4/7]

predictor & Search::predictor::add_allowed ( action  a,
float  cost 
)

Definition at line 3362 of file search.cc.

References add_to(), allowed_actions, allowed_actions_cost, allowed_cost_is_pointer, and allowed_is_pointer.

3363 {
3365  return add_to(allowed_actions, allowed_is_pointer, a, false);
3366 }
v_array< float > allowed_actions_cost
Definition: search.h:345
bool allowed_is_pointer
Definition: search.h:344
bool allowed_cost_is_pointer
Definition: search.h:346
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
constexpr uint64_t a
Definition: rand48.cc:11
v_array< action > allowed_actions
Definition: search.h:343

◆ add_allowed() [5/7]

predictor & Search::predictor::add_allowed ( action a,
float *  costs,
size_t  action_count 
)

Definition at line 3368 of file search.cc.

References a, add_allowed(), add_to(), allowed_actions, allowed_actions_cost, allowed_cost_is_pointer, and allowed_is_pointer.

3369 {
3370  add_to(allowed_actions_cost, allowed_cost_is_pointer, costs, action_count, false);
3371  return add_to(allowed_actions, allowed_is_pointer, a, action_count, false);
3372 }
v_array< float > allowed_actions_cost
Definition: search.h:345
bool allowed_is_pointer
Definition: search.h:344
bool allowed_cost_is_pointer
Definition: search.h:346
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
constexpr uint64_t a
Definition: rand48.cc:11
v_array< action > allowed_actions
Definition: search.h:343

◆ add_allowed() [6/7]

predictor& Search::predictor::add_allowed ( v_array< std::pair< action, float > > &  a)

◆ add_allowed() [7/7]

predictor& Search::predictor::add_allowed ( std::vector< std::pair< action, float > > &  a)

◆ add_condition()

predictor & Search::predictor::add_condition ( ptag  tag,
char  name 
)

Definition at line 3414 of file search.cc.

References condition_on_names, condition_on_tags, and v_array< T >::push_back().

Referenced by EntityRelationTask::predict_relation(), GraphTask::run(), and set_condition().

3415 {
3418  return *this;
3419 }
v_array< char > condition_on_names
Definition: search.h:342
v_array< ptag > condition_on_tags
Definition: search.h:341
void push_back(const T &new_ele)
Definition: v_array.h:107

◆ add_condition_range()

predictor & Search::predictor::add_condition_range ( ptag  hi,
ptag  count,
char  name0 
)

Definition at line 3427 of file search.cc.

References condition_on_names, condition_on_tags, and v_array< T >::push_back().

Referenced by SequenceSpanTask::run(), and set_condition_range().

3428 {
3429  if (count == 0)
3430  return *this;
3431  for (ptag i = 0; i < count; i++)
3432  {
3433  if (i > hi)
3434  break;
3435  char name = name0 + i;
3436  condition_on_tags.push_back(hi - i);
3438  }
3439  return *this;
3440 }
v_array< char > condition_on_names
Definition: search.h:342
v_array< ptag > condition_on_tags
Definition: search.h:341
void push_back(const T &new_ele)
Definition: v_array.h:107
uint32_t ptag
Definition: search.h:20

◆ add_oracle() [1/3]

predictor & Search::predictor::add_oracle ( action  a)

Definition at line 3304 of file search.cc.

References add_to(), oracle_actions, and oracle_is_pointer.

3304 { return add_to(oracle_actions, oracle_is_pointer, a, false); }
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
v_array< action > oracle_actions
Definition: search.h:339
constexpr uint64_t a
Definition: rand48.cc:11
bool oracle_is_pointer
Definition: search.h:340

◆ add_oracle() [2/3]

predictor & Search::predictor::add_oracle ( action a,
size_t  action_count 
)

Definition at line 3305 of file search.cc.

References add_to(), oracle_actions, and oracle_is_pointer.

3306 {
3307  return add_to(oracle_actions, oracle_is_pointer, a, action_count, false);
3308 }
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
v_array< action > oracle_actions
Definition: search.h:339
constexpr uint64_t a
Definition: rand48.cc:11
bool oracle_is_pointer
Definition: search.h:340

◆ add_oracle() [3/3]

predictor & Search::predictor::add_oracle ( v_array< action > &  a)

Definition at line 3309 of file search.cc.

References add_to(), v_array< T >::begin(), oracle_actions, oracle_is_pointer, and v_array< T >::size().

3310 {
3311  return add_to(oracle_actions, oracle_is_pointer, a.begin(), a.size(), false);
3312 }
T *& begin()
Definition: v_array.h:42
size_t size() const
Definition: v_array.h:68
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
v_array< action > oracle_actions
Definition: search.h:339
bool oracle_is_pointer
Definition: search.h:340

◆ add_to() [1/2]

template<class T >
predictor & Search::predictor::add_to ( v_array< T > &  A,
bool &  A_is_ptr,
a,
bool  clear_first 
)
private

Definition at line 3233 of file search.cc.

References a, v_array< T >::begin(), v_array< T >::clear(), v_array< T >::end(), v_array< T >::push_back(), and v_array< T >::size().

Referenced by add_allowed(), add_oracle(), set_allowed(), and set_oracle().

3234 {
3235  if (A_is_ptr) // we need to make our own memory
3236  {
3237  if (clear_first)
3238  A.end() = A.begin();
3239  size_t new_size = clear_first ? 1 : (A.size() + 1);
3240  make_new_pointer<T>(A, new_size);
3241  A_is_ptr = false;
3242  A[new_size - 1] = a;
3243  }
3244  else // we've already allocated our own memory
3245  {
3246  if (clear_first)
3247  A.clear();
3248  A.push_back(a);
3249  }
3250  return *this;
3251 }
T *& begin()
Definition: v_array.h:42
size_t size() const
Definition: v_array.h:68
void push_back(const T &new_ele)
Definition: v_array.h:107
void clear()
Definition: v_array.h:88
T *& end()
Definition: v_array.h:43
constexpr uint64_t a
Definition: rand48.cc:11

◆ add_to() [2/2]

template<class T >
predictor & Search::predictor::add_to ( v_array< T > &  A,
bool &  A_is_ptr,
T *  a,
size_t  count,
bool  clear_first 
)
private

Definition at line 3254 of file search.cc.

References a, v_array< T >::begin(), v_array< T >::clear(), v_array< T >::delete_v(), v_array< T >::end(), v_array< T >::end_array, and v_array< T >::size().

3255 {
3256  size_t old_size = A.size();
3257  if (old_size > 0)
3258  {
3259  if (A_is_ptr) // we need to make our own memory
3260  {
3261  if (clear_first)
3262  {
3263  A.end() = A.begin();
3264  old_size = 0;
3265  }
3266  size_t new_size = old_size + count;
3267  make_new_pointer<T>(A, new_size);
3268  A_is_ptr = false;
3269  if (a != nullptr)
3270  memcpy(A.begin() + old_size, a, count * sizeof(T));
3271  }
3272  else // we already have our own memory
3273  {
3274  if (clear_first)
3275  A.clear();
3276  if (a != nullptr)
3277  push_many<T>(A, a, count);
3278  }
3279  }
3280  else // old_size == 0, clear_first is irrelevant
3281  {
3282  if (!A_is_ptr)
3283  A.delete_v(); // avoid memory leak
3284 
3285  A.begin() = a;
3286  if (a != nullptr) // a is not nullptr
3287  A.end() = a + count;
3288  else
3289  A.end() = a;
3290  A.end_array = A.end();
3291  A_is_ptr = true;
3292  }
3293  return *this;
3294 }
T *& begin()
Definition: v_array.h:42
size_t size() const
Definition: v_array.h:68
T *& end()
Definition: v_array.h:43
constexpr uint64_t a
Definition: rand48.cc:11

◆ erase_alloweds()

predictor & Search::predictor::erase_alloweds ( )

Definition at line 3330 of file search.cc.

References allowed_actions, allowed_actions_cost, allowed_cost_is_pointer, allowed_is_pointer, v_array< T >::begin(), v_array< T >::clear(), and v_array< T >::end().

Referenced by reset(), DepParserTask::run(), and set_allowed().

3331 {
3332  if (allowed_is_pointer)
3334  else
3338  else
3340  return *this;
3341 }
v_array< float > allowed_actions_cost
Definition: search.h:345
bool allowed_is_pointer
Definition: search.h:344
T *& begin()
Definition: v_array.h:42
bool allowed_cost_is_pointer
Definition: search.h:346
void clear()
Definition: v_array.h:88
T *& end()
Definition: v_array.h:43
v_array< action > allowed_actions
Definition: search.h:343

◆ erase_oracles()

predictor & Search::predictor::erase_oracles ( )

Definition at line 3296 of file search.cc.

References v_array< T >::begin(), v_array< T >::clear(), v_array< T >::end(), oracle_actions, and oracle_is_pointer.

Referenced by reset().

3297 {
3298  if (oracle_is_pointer)
3300  else
3302  return *this;
3303 }
T *& begin()
Definition: v_array.h:42
void clear()
Definition: v_array.h:88
v_array< action > oracle_actions
Definition: search.h:339
T *& end()
Definition: v_array.h:43
bool oracle_is_pointer
Definition: search.h:340

◆ free_ec()

void Search::predictor::free_ec ( )
private

Definition at line 3139 of file search.cc.

References COST_SENSITIVE::cs_label, VW::dealloc_example(), CB::delete_label(), ec, ec_alloced, ec_cnt, and is_ldf.

Referenced by reset(), set_input(), and ~predictor().

3140 {
3141  if (ec_alloced)
3142  {
3143  if (is_ldf)
3144  for (size_t i = 0; i < ec_cnt; i++) VW::dealloc_example(CS::cs_label.delete_label, ec[i]);
3145  else
3146  VW::dealloc_example(nullptr, *ec);
3147  free(ec);
3148  }
3149 }
size_t ec_cnt
Definition: search.h:336
label_parser cs_label
void dealloc_example(void(*delete_label)(void *), example &ec, void(*delete_prediction)(void *))
Definition: example.cc:219
void delete_label(void *v)
Definition: cb.cc:98
example * ec
Definition: search.h:335

◆ make_new_pointer()

template<class T >
void Search::predictor::make_new_pointer ( v_array< T > &  A,
size_t  new_size 
)
private

Definition at line 3222 of file search.cc.

References v_array< T >::begin(), v_array< T >::end(), v_array< T >::end_array, and v_array< T >::size().

3223 {
3224  size_t old_size = A.size();
3225  T* old_pointer = A.begin();
3226  A.begin() = calloc_or_throw<T>(new_size);
3227  A.end() = A.begin() + new_size;
3228  A.end_array = A.end();
3229  memcpy(A.begin(), old_pointer, old_size * sizeof(T));
3230 }
T *& begin()
Definition: v_array.h:42
size_t size() const
Definition: v_array.h:68
T *& end()
Definition: v_array.h:43
T * end_array
Definition: v_array.h:38

◆ predict()

action Search::predictor::predict ( )

Definition at line 3460 of file search.cc.

References allowed_actions, allowed_actions_cost, v_array< T >::begin(), condition_on_names, condition_on_tags, ec, ec_cnt, is_ldf, learner_id, my_tag, oracle_actions, v_array< T >::pop(), Search::search::predict(), Search::search::predictLDF(), v_array< T >::push_back(), sch, v_array< T >::size(), and weight.

Referenced by EntityRelationTask::predict_entity(), EntityRelationTask::predict_relation(), SequenceSpanTask::run(), GraphTask::run(), and DepParserTask::run().

3461 {
3462  const action* orA = oracle_actions.size() == 0 ? nullptr : oracle_actions.begin();
3463  const ptag* cOn = condition_on_names.size() == 0 ? nullptr : condition_on_tags.begin();
3464  const char* cNa = nullptr;
3465  if (condition_on_names.size() > 0)
3466  {
3467  condition_on_names.push_back((char)0); // null terminate
3468  cNa = condition_on_names.begin();
3469  }
3470  const action* alA = (allowed_actions.size() == 0) ? nullptr : allowed_actions.begin();
3471  const float* alAcosts = (allowed_actions_cost.size() == 0) ? nullptr : allowed_actions_cost.begin();
3472  size_t numAlA = std::max(allowed_actions.size(), allowed_actions_cost.size());
3473  action p = is_ldf
3474  ? sch.predictLDF(ec, ec_cnt, my_tag, orA, oracle_actions.size(), cOn, cNa, learner_id, weight)
3475  : sch.predict(*ec, my_tag, orA, oracle_actions.size(), cOn, cNa, alA, numAlA, alAcosts, learner_id, weight);
3476 
3477  if (condition_on_names.size() > 0)
3478  condition_on_names.pop(); // un-null-terminate
3479  return p;
3480 }
size_t ec_cnt
Definition: search.h:336
v_array< char > condition_on_names
Definition: search.h:342
T pop()
Definition: v_array.h:58
v_array< float > allowed_actions_cost
Definition: search.h:345
size_t learner_id
Definition: search.h:347
v_array< ptag > condition_on_tags
Definition: search.h:341
uint32_t action
Definition: search.h:19
T *& begin()
Definition: v_array.h:42
size_t size() const
Definition: v_array.h:68
example * ec
Definition: search.h:335
void push_back(const T &new_ele)
Definition: v_array.h:107
action predictLDF(example *ecs, size_t ec_cnt, ptag my_tag, const action *oracle_actions, size_t oracle_actions_cnt=1, const ptag *condition_on=nullptr, const char *condition_on_names=nullptr, size_t learner_id=0, float weight=0.)
Definition: search.cc:3003
search & sch
Definition: search.h:348
action predict(example &ec, ptag my_tag, const action *oracle_actions, size_t oracle_actions_cnt=1, const ptag *condition_on=nullptr, const char *condition_on_names=nullptr, const action *allowed_actions=nullptr, size_t allowed_actions_cnt=0, const float *allowed_actions_cost=nullptr, size_t learner_id=0, float weight=0.)
Definition: search.cc:2967
v_array< action > oracle_actions
Definition: search.h:339
uint32_t ptag
Definition: search.h:20
v_array< action > allowed_actions
Definition: search.h:343

◆ reset()

predictor & Search::predictor::reset ( )

Definition at line 3163 of file search.cc.

References v_array< T >::clear(), condition_on_names, condition_on_tags, erase_alloweds(), erase_oracles(), and free_ec().

3164 {
3165  this->erase_oracles();
3166  this->erase_alloweds();
3169  free_ec();
3170  return *this;
3171 }
v_array< char > condition_on_names
Definition: search.h:342
v_array< ptag > condition_on_tags
Definition: search.h:341
predictor & erase_alloweds()
Definition: search.cc:3330
void clear()
Definition: v_array.h:88
predictor & erase_oracles()
Definition: search.cc:3296

◆ set_allowed() [1/7]

predictor & Search::predictor::set_allowed ( action  a)

Definition at line 3352 of file search.cc.

References add_to(), allowed_actions, and allowed_is_pointer.

Referenced by EntityRelationTask::predict_entity(), EntityRelationTask::predict_relation(), SequenceSpanTask::run(), DepParserTask::run(), and set_allowed().

3352 { return add_to(allowed_actions, allowed_is_pointer, a, true); }
bool allowed_is_pointer
Definition: search.h:344
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
constexpr uint64_t a
Definition: rand48.cc:11
v_array< action > allowed_actions
Definition: search.h:343

◆ set_allowed() [2/7]

predictor & Search::predictor::set_allowed ( action a,
size_t  action_count 
)

Definition at line 3353 of file search.cc.

References add_to(), allowed_actions, and allowed_is_pointer.

3354 {
3355  return add_to(allowed_actions, allowed_is_pointer, a, action_count, true);
3356 }
bool allowed_is_pointer
Definition: search.h:344
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
constexpr uint64_t a
Definition: rand48.cc:11
v_array< action > allowed_actions
Definition: search.h:343

◆ set_allowed() [3/7]

predictor & Search::predictor::set_allowed ( v_array< action > &  a)

Definition at line 3357 of file search.cc.

References add_to(), allowed_actions, allowed_is_pointer, v_array< T >::begin(), and v_array< T >::size().

3358 {
3359  return add_to(allowed_actions, allowed_is_pointer, a.begin(), a.size(), true);
3360 }
bool allowed_is_pointer
Definition: search.h:344
T *& begin()
Definition: v_array.h:42
size_t size() const
Definition: v_array.h:68
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
v_array< action > allowed_actions
Definition: search.h:343

◆ set_allowed() [4/7]

predictor & Search::predictor::set_allowed ( action  a,
float  cost 
)

Definition at line 3392 of file search.cc.

References add_to(), allowed_actions, allowed_actions_cost, allowed_cost_is_pointer, and allowed_is_pointer.

3393 {
3395  return add_to(allowed_actions, allowed_is_pointer, a, true);
3396 }
v_array< float > allowed_actions_cost
Definition: search.h:345
bool allowed_is_pointer
Definition: search.h:344
bool allowed_cost_is_pointer
Definition: search.h:346
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
constexpr uint64_t a
Definition: rand48.cc:11
v_array< action > allowed_actions
Definition: search.h:343

◆ set_allowed() [5/7]

predictor & Search::predictor::set_allowed ( action a,
float *  costs,
size_t  action_count 
)

Definition at line 3398 of file search.cc.

References a, add_allowed(), add_to(), allowed_actions, allowed_actions_cost, allowed_cost_is_pointer, allowed_is_pointer, erase_alloweds(), and set_allowed().

3399 {
3400  add_to(allowed_actions_cost, allowed_cost_is_pointer, costs, action_count, true);
3401  return add_to(allowed_actions, allowed_is_pointer, a, action_count, true);
3402 }
v_array< float > allowed_actions_cost
Definition: search.h:345
bool allowed_is_pointer
Definition: search.h:344
bool allowed_cost_is_pointer
Definition: search.h:346
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
constexpr uint64_t a
Definition: rand48.cc:11
v_array< action > allowed_actions
Definition: search.h:343

◆ set_allowed() [6/7]

predictor& Search::predictor::set_allowed ( v_array< std::pair< action, float > > &  a)

◆ set_allowed() [7/7]

predictor& Search::predictor::set_allowed ( std::vector< std::pair< action, float > > &  a)

◆ set_condition()

predictor & Search::predictor::set_condition ( ptag  tag,
char  name 
)

Definition at line 3420 of file search.cc.

References add_condition(), v_array< T >::clear(), condition_on_names, and condition_on_tags.

3421 {
3424  return add_condition(tag, name);
3425 }
v_array< char > condition_on_names
Definition: search.h:342
predictor & add_condition(ptag tag, char name)
Definition: search.cc:3414
v_array< ptag > condition_on_tags
Definition: search.h:341
void clear()
Definition: v_array.h:88

◆ set_condition_range()

predictor & Search::predictor::set_condition_range ( ptag  hi,
ptag  count,
char  name0 
)

Definition at line 3441 of file search.cc.

References add_condition_range(), v_array< T >::clear(), condition_on_names, and condition_on_tags.

Referenced by SequenceTask::run(), SequenceSpanTask::run(), and DepParserTask::run().

3442 {
3445  return add_condition_range(hi, count, name0);
3446 }
v_array< char > condition_on_names
Definition: search.h:342
v_array< ptag > condition_on_tags
Definition: search.h:341
predictor & add_condition_range(ptag hi, ptag count, char name0)
Definition: search.cc:3427
void clear()
Definition: v_array.h:88

◆ set_input() [1/2]

predictor & Search::predictor::set_input ( example input_example)

Definition at line 3173 of file search.cc.

References ec, ec_alloced, ec_cnt, free_ec(), and is_ldf.

Referenced by EntityRelationTask::predict_entity(), EntityRelationTask::predict_relation(), SequenceTask::run(), SequenceSpanTask::run(), GraphTask::run(), and DepParserTask::run().

3174 {
3175  free_ec();
3176  is_ldf = false;
3177  ec = &input_example;
3178  ec_cnt = 1;
3179  ec_alloced = false;
3180  return *this;
3181 }
size_t ec_cnt
Definition: search.h:336
example * ec
Definition: search.h:335

◆ set_input() [2/2]

predictor & Search::predictor::set_input ( example input_example,
size_t  input_length 
)

Definition at line 3183 of file search.cc.

References ec, ec_alloced, ec_cnt, free_ec(), and is_ldf.

3184 {
3185  free_ec();
3186  is_ldf = true;
3187  ec = input_example;
3188  ec_cnt = input_length;
3189  ec_alloced = false;
3190  return *this;
3191 }
size_t ec_cnt
Definition: search.h:336
example * ec
Definition: search.h:335

◆ set_input_at()

void Search::predictor::set_input_at ( size_t  posn,
example input_example 
)

Definition at line 3209 of file search.cc.

References VW::copy_example_data(), CB::copy_label(), COST_SENSITIVE::cs_label, ec, ec_alloced, ec_cnt, and THROW.

3210 {
3211  if (!ec_alloced)
3212  THROW("call to set_input_at without previous call to set_input_length");
3213 
3214  if (posn >= ec_cnt)
3215  THROW("call to set_input_at with too large a position: posn (" << posn << ") >= ec_cnt(" << ec_cnt << ")");
3216 
3218  false, ec + posn, &ex, CS::cs_label.label_size, CS::cs_label.copy_label); // TODO: the false is "audit"
3219 }
size_t ec_cnt
Definition: search.h:336
void copy_label(void *dst, void *src)
Definition: cb.cc:104
label_parser cs_label
void copy_example_data(bool audit, example *dst, example *src)
Definition: example.cc:72
example * ec
Definition: search.h:335
#define THROW(args)
Definition: vw_exception.h:181

◆ set_input_length()

void Search::predictor::set_input_length ( size_t  input_length)

Definition at line 3193 of file search.cc.

References ec, ec_alloced, ec_cnt, is_ldf, and THROW.

3194 {
3195  is_ldf = true;
3196  if (ec_alloced)
3197  {
3198  example* temp = (example*)realloc(ec, input_length * sizeof(example));
3199  if (temp != nullptr)
3200  ec = temp;
3201  else
3202  THROW("realloc failed in search.cc");
3203  }
3204  else
3205  ec = calloc_or_throw<example>(input_length);
3206  ec_cnt = input_length;
3207  ec_alloced = true;
3208 }
size_t ec_cnt
Definition: search.h:336
example * ec
Definition: search.h:335
#define THROW(args)
Definition: vw_exception.h:181

◆ set_learner_id()

predictor & Search::predictor::set_learner_id ( size_t  id)

Definition at line 3448 of file search.cc.

References id(), and learner_id.

Referenced by EntityRelationTask::predict_entity(), EntityRelationTask::predict_relation(), SequenceSpanTask::run(), and GraphTask::run().

3449 {
3450  learner_id = id;
3451  return *this;
3452 }
size_t learner_id
Definition: search.h:347
float id(float in)
Definition: scorer.cc:51

◆ set_oracle() [1/3]

predictor & Search::predictor::set_oracle ( action  a)

Definition at line 3314 of file search.cc.

References add_to(), oracle_actions, and oracle_is_pointer.

Referenced by EntityRelationTask::predict_entity(), EntityRelationTask::predict_relation(), SequenceTask::run(), SequenceSpanTask::run(), GraphTask::run(), and DepParserTask::run().

3314 { return add_to(oracle_actions, oracle_is_pointer, a, true); }
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
v_array< action > oracle_actions
Definition: search.h:339
constexpr uint64_t a
Definition: rand48.cc:11
bool oracle_is_pointer
Definition: search.h:340

◆ set_oracle() [2/3]

predictor & Search::predictor::set_oracle ( action a,
size_t  action_count 
)

Definition at line 3315 of file search.cc.

References add_to(), oracle_actions, and oracle_is_pointer.

3316 {
3317  return add_to(oracle_actions, oracle_is_pointer, a, action_count, true);
3318 }
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
v_array< action > oracle_actions
Definition: search.h:339
constexpr uint64_t a
Definition: rand48.cc:11
bool oracle_is_pointer
Definition: search.h:340

◆ set_oracle() [3/3]

predictor & Search::predictor::set_oracle ( v_array< action > &  a)

Definition at line 3319 of file search.cc.

References add_to(), v_array< T >::begin(), oracle_actions, oracle_is_pointer, and v_array< T >::size().

3320 {
3321  return add_to(oracle_actions, oracle_is_pointer, a.begin(), a.size(), true);
3322 }
T *& begin()
Definition: v_array.h:42
size_t size() const
Definition: v_array.h:68
predictor & add_to(v_array< T > &A, bool &A_is_ptr, T a, bool clear_first)
Definition: search.cc:3233
v_array< action > oracle_actions
Definition: search.h:339
bool oracle_is_pointer
Definition: search.h:340

◆ set_tag()

predictor & Search::predictor::set_tag ( ptag  tag)

Definition at line 3454 of file search.cc.

References my_tag.

Referenced by SequenceTask::run(), SequenceSpanTask::run(), and DepParserTask::run().

3455 {
3456  my_tag = tag;
3457  return *this;
3458 }

◆ set_weight()

predictor & Search::predictor::set_weight ( float  w)

Definition at line 3324 of file search.cc.

Referenced by GraphTask::run().

3325 {
3326  weight = w;
3327  return *this;
3328 }
float weight

Member Data Documentation

◆ allowed_actions

v_array<action> Search::predictor::allowed_actions
private

Definition at line 343 of file search.h.

Referenced by add_allowed(), erase_alloweds(), predict(), predictor(), set_allowed(), and ~predictor().

◆ allowed_actions_cost

v_array<float> Search::predictor::allowed_actions_cost
private

Definition at line 345 of file search.h.

Referenced by add_allowed(), erase_alloweds(), predict(), predictor(), set_allowed(), and ~predictor().

◆ allowed_cost_is_pointer

bool Search::predictor::allowed_cost_is_pointer
private

Definition at line 346 of file search.h.

Referenced by add_allowed(), erase_alloweds(), set_allowed(), and ~predictor().

◆ allowed_is_pointer

bool Search::predictor::allowed_is_pointer
private

Definition at line 344 of file search.h.

Referenced by add_allowed(), erase_alloweds(), set_allowed(), and ~predictor().

◆ condition_on_names

v_array<char> Search::predictor::condition_on_names
private

◆ condition_on_tags

v_array<ptag> Search::predictor::condition_on_tags
private

◆ ec

example* Search::predictor::ec
private

Definition at line 335 of file search.h.

Referenced by free_ec(), predict(), set_input(), set_input_at(), and set_input_length().

◆ ec_alloced

bool Search::predictor::ec_alloced
private

Definition at line 337 of file search.h.

Referenced by free_ec(), set_input(), set_input_at(), and set_input_length().

◆ ec_cnt

size_t Search::predictor::ec_cnt
private

Definition at line 336 of file search.h.

Referenced by free_ec(), predict(), set_input(), set_input_at(), and set_input_length().

◆ is_ldf

bool Search::predictor::is_ldf
private

Definition at line 333 of file search.h.

Referenced by free_ec(), predict(), set_input(), and set_input_length().

◆ learner_id

size_t Search::predictor::learner_id
private

Definition at line 347 of file search.h.

Referenced by predict(), and set_learner_id().

◆ my_tag

ptag Search::predictor::my_tag
private

Definition at line 334 of file search.h.

Referenced by predict(), and set_tag().

◆ oracle_actions

v_array<action> Search::predictor::oracle_actions
private

Definition at line 339 of file search.h.

Referenced by add_oracle(), erase_oracles(), predict(), predictor(), set_oracle(), and ~predictor().

◆ oracle_is_pointer

bool Search::predictor::oracle_is_pointer
private

Definition at line 340 of file search.h.

Referenced by add_oracle(), erase_oracles(), set_oracle(), and ~predictor().

◆ sch

search& Search::predictor::sch
private

Definition at line 348 of file search.h.

Referenced by predict().

◆ weight

float Search::predictor::weight
private

Definition at line 338 of file search.h.

Referenced by predict().


The documentation for this class was generated from the following files: