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];
127 SG_ERROR(
"penalties size mismatch expected (%d,%d) got (%d,%d)\n",
136 pen[k] = penalties.
matrix[i*m_num_limits+k];
160 SG_ERROR(
"transform_type size mismatch (num_values=%d vs.num_plifs=%d)\n", num_values,
m_num_plifs)
167 if (!
m_PEN[
id]->set_transform_type(transform_str))
173 SG_ERROR(
"transform type not recognized ('%s')\n", transform_str)
175 SG_FREE(transform_str);
183 int32_t num_states = penalties_array.
dims[0];
190 m_num_states = num_states;
195 for (int32_t i=0; i<num_states; i++)
197 for (int32_t j=0; j<num_states; j++)
200 CPlif * plif = NULL ;
201 for (int32_t k=0; k<penalties_array.
dims[2]; k++)
203 if (penalties.
element(i,j,k)==0)
209 plif_array->
clear() ;
212 int32_t
id = (int32_t) penalties.
element(i,j,k)-1 ;
214 if ((id<0 || id>=num_plifs) && (
id!=-1))
254 int32_t
id = (int32_t) state_signals.
matrix[i]-1 ;
255 if ((id<0 || id>=Nplif) && (
id!=-1))
262 PEN_state_signal[i]=NULL ;
264 PEN_state_signal[i]=PEN[id] ;
271 int32_t *plif_id_matrix, int32_t m, int32_t max_num_signals)
274 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
CDynamicArray< int32_t > m_ids
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)
bool compute_plif_matrix(SGNDArray< float64_t > penalties_array)
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)
bool resize_array(int32_t ndim1, int32_t ndim2=1, int32_t ndim3=1)
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_num_elements, int32_t array_size)
all of classes and functions are contained in the shogun namespace
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)
const T & element(int32_t idx1, int32_t idx2=0, int32_t idx3=0) const
bool compute_signal_plifs(SGMatrix< int32_t > state_signals)
void set_min_value(float64_t p_min_value)
CPlifBase ** m_plif_matrix
static void delete_penalty_struct(CPlif **PEN, int32_t P)
void create_plifs(int32_t num_plifs, int32_t num_limits)
static ST * get_zero_terminated_string_copy(SGString< ST > str)