Vowpal Wabbit
Classes | Namespaces | Macros | Typedefs | Functions
example.h File Reference
#include <cstdint>
#include "v_array.h"
#include "no_label.h"
#include "simple_label.h"
#include "multiclass.h"
#include "multilabel.h"
#include "cost_sensitive.h"
#include "cb.h"
#include "constant.h"
#include "feature_group.h"
#include "action_score.h"
#include "example_predict.h"
#include "conditional_contextual_bandit.h"
#include "ccb_label.h"
#include <vector>

Go to the source code of this file.

Classes

union  polylabel
 
union  polyprediction
 
struct  example
 
struct  flat_example
 

Namespaces

 VW
 

Macros

#define add_passthrough_feature(ec, i, x)   add_passthrough_feature_magic(ec, __FILE__[0] * 483901 + __FILE__[1] * 3417 + __FILE__[2] * 8490177, i, x);
 

Typedefs

typedef std::vector< example * > multi_ex
 

Functions

void delete_scalars (void *v)
 
flat_exampleflatten_example (vw &all, example *ec)
 
flat_exampleflatten_sort_example (vw &all, example *ec)
 
void free_flatten_example (flat_example *fec)
 
int example_is_newline (example const &ec)
 
bool valid_ns (char c)
 
void add_passthrough_feature_magic (example &ec, uint64_t magic, uint64_t i, float x)
 
void VW::return_multiple_example (vw &all, v_array< example *> &examples)
 

Macro Definition Documentation

◆ add_passthrough_feature

#define add_passthrough_feature (   ec,
  i,
 
)    add_passthrough_feature_magic(ec, __FILE__[0] * 483901 + __FILE__[1] * 3417 + __FILE__[2] * 8490177, i, x);

Typedef Documentation

◆ multi_ex

typedef std::vector<example*> multi_ex

Definition at line 122 of file example.h.

Function Documentation

◆ add_passthrough_feature_magic()

void add_passthrough_feature_magic ( example ec,
uint64_t  magic,
uint64_t  i,
float  x 
)
inline

Definition at line 113 of file example.h.

References FNV_prime, example::passthrough, and features::push_back().

114 {
115  if (ec.passthrough)
116  ec.passthrough->push_back(x, (FNV_prime * magic) ^ i);
117 }
void push_back(feature_value v, feature_index i)
features * passthrough
Definition: example.h:74
constexpr uint32_t FNV_prime
Definition: constant.h:17

◆ delete_scalars()

void delete_scalars ( void *  v)
inline

Definition at line 37 of file example.h.

References v_array< T >::delete_v().

Referenced by lda_setup(), mwt_setup(), and oaa_setup().

38 {
39  v_array<float>* preds = (v_array<float>*)v;
40  preds->delete_v();
41 }
void delete_v()
Definition: v_array.h:98

◆ example_is_newline()

int example_is_newline ( example const &  ec)
inline

Definition at line 104 of file example.h.

References constant_namespace, v_array< T >::empty(), example_predict::indices, v_array< T >::last(), v_array< T >::size(), and example::tag.

Referenced by LEARNER::example_is_newline_not_header(), CB_ALGS::example_is_newline_not_header(), output_example(), CSOAA::output_example(), CSOAA::output_rank_example(), and VW::setup_example().

105 { // if only index is constant namespace or no index
106  if (!ec.tag.empty())
107  return false;
108  return ((ec.indices.empty()) || ((ec.indices.size() == 1) && (ec.indices.last() == constant_namespace)));
109 }
constexpr unsigned char constant_namespace
Definition: constant.h:22

◆ flatten_example()

flat_example* flatten_example ( vw all,
example ec 
)

Definition at line 152 of file example.cc.

References v_array< T >::begin(), example::example_counter, flat_example::example_counter, flat_example::fs, full_features_and_source::fs, example_predict::ft_offset, flat_example::ft_offset, example::l, flat_example::l, full_features_and_source::mask, parameters::mask(), parameters::not_null(), example::num_features, flat_example::num_features, polylabel::simple, v_array< T >::size(), full_features_and_source::stride_shift, parameters::stride_shift(), example::tag, flat_example::tag, flat_example::tag_len, label_data::weight, example::weight, and vw::weights.

Referenced by flatten_sort_example().

153 {
154  flat_example& fec = calloc_or_throw<flat_example>();
155  fec.l = ec->l;
156  fec.l.simple.weight = ec->weight;
157 
158  fec.tag_len = ec->tag.size();
159  if (fec.tag_len > 0)
160  {
161  fec.tag = calloc_or_throw<char>(fec.tag_len + 1);
162  memcpy(fec.tag, ec->tag.begin(), fec.tag_len);
163  }
164 
166  fec.ft_offset = ec->ft_offset;
167  fec.num_features = ec->num_features;
168 
170  ffs.stride_shift = all.weights.stride_shift();
171  if (all.weights.not_null()) // TODO:temporary fix. all.weights is not initialized at this point in some cases.
172  ffs.mask = (uint64_t)all.weights.mask() >> all.weights.stride_shift();
173  else
174  ffs.mask = (uint64_t)LONG_MAX >> all.weights.stride_shift();
175  GD::foreach_feature<full_features_and_source, uint64_t, vec_ffs_store>(all, *ec, ffs);
176 
177  fec.fs = ffs.fs;
178 
179  return &fec;
180 }
v_array< char > tag
Definition: example.h:63
size_t example_counter
Definition: example.h:64
parameters weights
Definition: global_data.h:537
float weight
Definition: simple_label.h:15
label_data simple
Definition: example.h:28
polylabel l
Definition: example.h:86
features fs
Definition: example.h:97
T *& begin()
Definition: v_array.h:42
size_t size() const
Definition: v_array.h:68
char * tag
Definition: example.h:89
size_t num_features
Definition: example.h:67
uint64_t ft_offset
Definition: example.h:92
size_t tag_len
Definition: example.h:88
polylabel l
Definition: example.h:57
size_t num_features
Definition: example.h:95
size_t example_counter
Definition: example.h:91
uint32_t stride_shift()
float weight
Definition: example.h:62
uint64_t mask()

◆ flatten_sort_example()

flat_example* flatten_sort_example ( vw all,
example ec 
)

Definition at line 182 of file example.cc.

References collision_cleanup(), flatten_example(), flat_example::fs, vw::parse_mask, features::sort(), and flat_example::total_sum_feat_sq.

Referenced by learn(), memory_tree_ns::normalized_linear_prod(), and predict().

183 {
184  flat_example* fec = flatten_example(all, ec);
185  fec->fs.sort(all.parse_mask);
187  return fec;
188 }
float total_sum_feat_sq
Definition: example.h:96
features fs
Definition: example.h:97
float collision_cleanup(features &fs)
Definition: example.cc:11
bool sort(uint64_t parse_mask)
flat_example * flatten_example(vw &all, example *ec)
Definition: example.cc:152
uint64_t parse_mask
Definition: global_data.h:453

◆ free_flatten_example()

void free_flatten_example ( flat_example fec)

Definition at line 190 of file example.cc.

References features::delete_v(), flat_example::fs, flat_example::tag, and flat_example::tag_len.

Referenced by memory_tree_ns::normalized_linear_prod(), and svm_example::~svm_example().

191 {
192  // note: The label memory should be freed by by freeing the original example.
193  if (fec)
194  {
195  fec->fs.delete_v();
196  if (fec->tag_len > 0)
197  free(fec->tag);
198  free(fec);
199  }
200 }
void delete_v()
features fs
Definition: example.h:97
char * tag
Definition: example.h:89
size_t tag_len
Definition: example.h:88

◆ valid_ns()

bool valid_ns ( char  c)
inline

Definition at line 111 of file example.h.

Referenced by INTERACTIONS::expand_namespaces_with_recursion(), and parse_affix_argument().

111 { return !(c == '|' || c == ':'); }
constexpr uint64_t c
Definition: rand48.cc:12