21 using namespace shogun;
56 if (strcmp(type_str,
"linear")==0)
58 else if (strcmp(type_str,
"")==0)
60 else if (strcmp(type_str,
"log")==0)
62 else if (strcmp(type_str,
"log(+1)")==0)
64 else if (strcmp(type_str,
"log(+3)")==0)
66 else if (strcmp(type_str,
"(+3)")==0)
70 SG_ERROR(
"unknown transform type (%s)\n", type_str) ;
97 this->
cache=local_cache ;
104 strcpy(
name,p_name) ;
109 for (int32_t i=0; i<P; i++)
130 d_value = log(d_value) ;
133 d_value = log(d_value+1) ;
136 d_value = log(d_value+3) ;
139 d_value = d_value+3 ;
148 for (int32_t i=0; i<
len; i++)
222 d_value = log(d_value) ;
225 d_value = log(d_value+1) ;
228 d_value = log(d_value+3) ;
231 d_value = d_value+3 ;
239 SG_PRINT(
" -> value = %1.4f ", d_value) ;
244 for (int32_t i=0; i<
len; i++)
277 for (int32_t i=0; i<
len; i++)
299 d_value = log(d_value) ;
302 d_value = log(d_value+1) ;
305 d_value = log(d_value+3) ;
308 d_value = d_value+3 ;
316 for (int32_t i=0; i<
len; i++)
346 d_value = log(d_value) ;
349 d_value = log(d_value+1) ;
352 d_value = log(d_value+3) ;
355 d_value = d_value+3 ;
363 for (int32_t i=0; i<
len; i++)
384 svm_ids[(*num_svms)] =
use_svm;
void penalty_clear_derivative()
void set_plif_name(char *p_name)
static const float64_t INFTY
infinity
const char * get_transform_type()
float64_t lookup_penalty_svm(float64_t p_value, float64_t *d_values) const
void get_used_svms(int32_t *num_svms, int32_t *svm_ids)
void penalty_add_derivative_svm(float64_t p_value, float64_t *svm_values, float64_t factor)
enum ETransformType transform
virtual const char * get_name() const
bool set_transform_type(const char *type_str)
float64_t * cum_derivatives
void set_plif_length(int32_t p_len)
float64_t lookup_penalty(float64_t p_value, float64_t *svm_values) const
void penalty_add_derivative(float64_t p_value, float64_t *svm_values, float64_t factor)
#define SG_MALLOC(type, len)
static void delete_penalty_struct(CPlif **PEN, int32_t P)
void init_penalty_struct_cache()