00001 /* 00002 * This program is free software; you can redistribute it and/or modify 00003 * it under the terms of the GNU General Public License as published by 00004 * the Free Software Foundation; either version 3 of the License, or 00005 * (at your option) any later version. 00006 * 00007 * Written (W) 2010 Soeren Sonnenburg 00008 * Copyright (C) 2010 Berlin Institute of Technology 00009 */ 00010 #include "lib/Parameter.h" 00011 00012 using namespace shogun; 00013 00014 void CParameter::add(float64_t* parameter, const char* name, 00015 CRange* range, const char* description) 00016 { 00017 TParameter* par=new TParameter[1]; 00018 par->parameter=parameter; 00019 par->datatype=DT_SCALAR_REAL; 00020 00021 if (name) 00022 par->name=strdup(name); 00023 else 00024 par->name=NULL; 00025 00026 if (description) 00027 par->description=strdup(description); 00028 else 00029 par->description=NULL; 00030 00031 if (range) 00032 par->range=range; 00033 else 00034 par->range=NULL; 00035 00036 m_parameters->append_element(par); 00037 } 00038 00039 void CParameter::list_parameters() 00040 { 00041 ASSERT(m_parameters); 00042 00043 for (int32_t i=0; i<get_num_parameters(); i++) 00044 { 00045 TParameter* par=m_parameters->get_element(i); 00046 SG_PRINT("Parameter '%s'\n", par->name); 00047 } 00048 } 00049 00050 void CParameter::free_parameters() 00051 { 00052 ASSERT(m_parameters); 00053 00054 for (int32_t i=0; i<get_num_parameters(); i++) 00055 { 00056 TParameter* par=m_parameters->get_element(i); 00057 free(par->name); 00058 free(par->description); 00059 delete[] par; 00060 } 00061 00062 delete m_parameters; 00063 m_parameters=NULL; 00064 }