6 using namespace shogun;
9 m_num_states(0), m_feat_dim3(0), m_plif_matrix(NULL), m_state_signals(NULL)
34 m_num_plifs=num_plifs;
37 for (int32_t i=0; i<num_plifs; i++)
108 SG_ERROR(
"limits size mismatch expected (%d,%d) got (%d,%d)\n",
116 lim[k] = limits.
matrix[i*m_num_limits+k];
128 SG_ERROR(
"penalties size mismatch expected (%d,%d) got (%d,%d)\n",
137 pen[k] = penalties.
matrix[i*m_num_limits+k];
148 SG_ERROR(
"names size mismatch (num_values=%d vs.num_plifs=%d)\n", num_values,
m_num_plifs);
162 SG_ERROR(
"transform_type size mismatch (num_values=%d vs.num_plifs=%d)\n", num_values,
m_num_plifs);
169 if (!
m_PEN[
id]->set_transform_type(transform_str))
175 SG_ERROR(
"transform type not recognized ('%s')\n", transform_str) ;
185 int32_t num_states = penalties_array.
dims[0];
192 m_num_states = num_states;
197 for (int32_t i=0; i<num_states; i++)
199 for (int32_t j=0; j<num_states; j++)
202 CPlif * plif = NULL ;
203 for (int32_t k=0; k<penalties_array.
dims[2]; k++)
205 if (penalties.
element(i,j,k)==0)
211 plif_array->
clear() ;
214 int32_t
id = (int32_t) penalties.
element(i,j,k)-1 ;
216 if ((id<0 || id>=num_plifs) && (
id!=-1))
256 int32_t
id = (int32_t) state_signals.
matrix[i]-1 ;
257 if ((id<0 || id>=Nplif) && (
id!=-1))
264 PEN_state_signal[i]=NULL ;
266 PEN_state_signal[i]=PEN[id] ;
273 int32_t *plif_id_matrix, int32_t m, int32_t max_num_signals)
276 SG_ERROR(
"plif_state_signal_matrix size does not match previous info %i!=%i\n", m,
m_num_plifs) ;
void set_plif_penalty(SGVector< float64_t > p_penalties)
CPlifBase ** m_state_signals
void set_max_value(float64_t p_max_value)
void set_plif_name(char *p_name)
void set_plif_transform_type(SGString< char > *transform_type, int32_t num_values, int32_t maxlen=0)
void set_plif_use_cache(SGVector< bool > use_cache)
void set_plif_limits(SGVector< float64_t > p_limits)
void set_plif_state_signal_matrix(int32_t *plif_id_matrix, int32_t m, int32_t n)
const T & element(int32_t idx1, int32_t idx2, int32_t idx3) const
bool compute_plif_matrix(SGNDArray< float64_t > penalties_array)
bool resize_array(int32_t n)
void set_use_cache(int32_t p_use_cache)
void set_plif_penalties(SGMatrix< float64_t > penalties)
void set_plif_limits(SGMatrix< float64_t > limits)
void add_plif(CPlifBase *new_plif)
void set_plif_min_values(SGVector< float64_t > min_values)
void set_plif_ids(SGVector< int32_t > ids)
void set_plif_use_svm(SGVector< int32_t > use_svm)
int32_t get_plif_id(int32_t idx)
void set_id(int32_t p_id)
void set_array(T *p_array, int32_t p_array_size, bool p_free_array=true, bool copy_array=false)
void set_plif_max_values(SGVector< float64_t > max_values)
void set_use_svm(int32_t p_use_svm)
void set_plif_names(SGString< char > *names, int32_t num_values, int32_t maxlen=0)
bool compute_signal_plifs(SGMatrix< int32_t > state_signals)
void set_min_value(float64_t p_min_value)
static ST * get_zero_terminated_string_copy(SGString< ST > str)
CPlifBase ** m_plif_matrix
shogun n-dimensional array
#define SG_MALLOC(type, len)
static void delete_penalty_struct(CPlif **PEN, int32_t P)
void create_plifs(int32_t num_plifs, int32_t num_limits)