Feat C++ API
A feature engineering automation tool
n_equal.cc
Go to the documentation of this file.
1 /* FEAT
2 copyright 2017 William La Cava
3 license: GNU/GPL v3
4 */
5 #include "n_equal.h"
6 
7 namespace FT{
8 
9  namespace Pop{
10  namespace Op{
12  {
13  name = "=";
14  otype = 'b';
15  arity['f'] = 2;
16  complexity = 1;
17  }
18 
19  #ifndef USE_CUDA
21  void NodeEqual::evaluate(const Data& data, State& state)
22  {
23  state.push<bool>(state.pop<float>() == state.pop<float>());
24  }
25  #else
26  void NodeEqual::evaluate(const Data& data, State& state)
27  {
28  GPU_Equal(state.dev_f, state.dev_b, state.idx['f'], state.idx[otype], state.N);
29  }
30  #endif
31 
34  {
35  state.push<bool>("(" + state.popStr<float>() + "==" + state.popStr<float>() + ")");
36  }
37 
38  NodeEqual* NodeEqual::clone_impl() const { return new NodeEqual(*this); }
39 
40  NodeEqual* NodeEqual::rnd_clone_impl() const { return new NodeEqual(); }
41  }
42  }
43 }
data holding X, y, and Z data
Definition: data.h:42
NodeEqual * rnd_clone_impl() const override
Definition: n_equal.cc:40
void eval_eqn(State &state)
Evaluates the node symbolically.
Definition: n_equal.cc:33
void evaluate(const Data &data, State &state)
Evaluates the node and updates the state states.
Definition: n_equal.cc:21
NodeEqual * clone_impl() const override
Definition: n_equal.cc:38
string name
node type
Definition: node.h:56
std::map< char, unsigned int > arity
arity of the operator
Definition: node.h:59
char otype
output type
Definition: node.h:58
int complexity
complexity of node
Definition: node.h:60
void GPU_Equal(float *xf, bool *xb, size_t idxf, size_t idxb, size_t N)
main Feat namespace
Definition: data.cc:13
contains various types of State actually used by feat
Definition: state.h:102
string popStr()
Definition: state.h:143
Eigen::Array< T, Eigen::Dynamic, 1 > pop()
Definition: state.h:128
void push(Eigen::Array< T, Eigen::Dynamic, 1 > value)
Definition: state.h:123