/usr/include/shogun/structure/PlifArray.h is in libshogun-dev 3.2.0-7.3build4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | /*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* Written (W) 1999-2008 Gunnar Raetsch
* Copyright (C) 1999-2009 Fraunhofer Institute FIRST and Max-Planck-Society
*/
#ifndef __PLIFARRAY_H__
#define __PLIFARRAY_H__
#include <shogun/lib/common.h>
#include <shogun/mathematics/Math.h>
#include <shogun/base/DynArray.h>
#include <shogun/structure/PlifBase.h>
namespace shogun
{
/** @brief class PlifArray */
class CPlifArray: public CPlifBase
{
public:
/** default constructor */
CPlifArray();
virtual ~CPlifArray();
/** add plif
*
* @param new_plif the new plif to be added
*/
void add_plif(CPlifBase* new_plif);
/** clear */
void clear();
/** get number of plifs
*
* @return number of plifs
*/
int32_t get_num_plifs()
{
return m_array.get_num_elements();
}
/** lookup penalty float64_t
*
* @param p_value value
* @param svm_values SVM values
*/
virtual float64_t lookup_penalty(
float64_t p_value, float64_t* svm_values) const;
/** lookup penalty int32_t
*
* @param p_value value
* @param svm_values SVM values
*/
virtual float64_t lookup_penalty(
int32_t p_value, float64_t* svm_values) const;
/** penalty clear derivative */
virtual void penalty_clear_derivative();
/** penalty add derivative
*
* @param p_value value
* @param svm_values SVM values
* @param factor weighting the added value
*/
virtual void penalty_add_derivative(
float64_t p_value, float64_t* svm_values, float64_t factor);
/** get maximum value
*
* @return maximum value
*/
virtual float64_t get_max_value() const
{
return max_value;
}
/** get minimum value
*
* @return minumum value
*/
virtual float64_t get_min_value() const
{
return min_value;
}
/** check if plif uses SVM values
*
* @return if plif uses SVM values
*/
virtual bool uses_svm_values() const;
/** get maximum ID
*
* @return maximum ID
*/
virtual int32_t get_max_id() const;
void get_used_svms(int32_t* num_svms, int32_t* svm_ids);
/** print PLIF
*
* lists all PLIFs in array
*/
virtual void list_plif() const
{
SG_PRINT("CPlifArray(num_elements=%i, min_value=%1.2f, max_value=%1.2f)\n", m_array.get_num_elements(), min_value, max_value)
for (int32_t i=0; i<m_array.get_num_elements(); i++)
{
SG_PRINT("%i. ", i)
m_array[i]->list_plif() ;
}
}
/** @return object name */
virtual const char* get_name() const { return "PlifArray"; }
protected:
/** plif array */
DynArray<CPlifBase*> m_array;
/** maximum value */
float64_t max_value;
/** minimum value */
float64_t min_value;
};
}
#endif
|