00001 /* 00002 * This file is part of ACADO Toolkit. 00003 * 00004 * ACADO Toolkit -- A Toolkit for Automatic Control and Dynamic Optimization. 00005 * Copyright (C) 2008-2014 by Boris Houska, Hans Joachim Ferreau, 00006 * Milan Vukov, Rien Quirynen, KU Leuven. 00007 * Developed within the Optimization in Engineering Center (OPTEC) 00008 * under supervision of Moritz Diehl. All rights reserved. 00009 * 00010 * ACADO Toolkit is free software; you can redistribute it and/or 00011 * modify it under the terms of the GNU Lesser General Public 00012 * License as published by the Free Software Foundation; either 00013 * version 3 of the License, or (at your option) any later version. 00014 * 00015 * ACADO Toolkit is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * Lesser General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU Lesser General Public 00021 * License along with ACADO Toolkit; if not, write to the Free Software 00022 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00023 * 00024 */ 00025 00026 00033 #include <acado/noise/colored_noise.hpp> 00034 00035 00036 00037 BEGIN_NAMESPACE_ACADO 00038 00039 00040 00041 00042 ColoredNoise::ColoredNoise( ) : Noise( ) 00043 { 00044 dynamicSystem = 0; 00045 } 00046 00047 00048 ColoredNoise::ColoredNoise( const DynamicSystem& _dynamicSystem 00049 ) : Noise( ) 00050 { 00051 dynamicSystem = new DynamicSystem( _dynamicSystem ); 00052 } 00053 00054 00055 ColoredNoise::ColoredNoise( const ColoredNoise &rhs ) : Noise( rhs ) 00056 { 00057 if( rhs.dynamicSystem != 0 ) 00058 dynamicSystem = new DynamicSystem( *(rhs.dynamicSystem) ); 00059 else 00060 dynamicSystem = 0; 00061 } 00062 00063 00064 ColoredNoise::~ColoredNoise( ) 00065 { 00066 if( dynamicSystem != 0 ) 00067 delete dynamicSystem; 00068 } 00069 00070 00071 ColoredNoise& ColoredNoise::operator=( const ColoredNoise &rhs ) 00072 { 00073 if( this != &rhs ) 00074 { 00075 if( dynamicSystem != 0 ) 00076 delete dynamicSystem; 00077 00078 Noise::operator=( rhs ); 00079 00080 if( rhs.dynamicSystem != 0 ) 00081 dynamicSystem = new DynamicSystem( *(rhs.dynamicSystem) ); 00082 else 00083 dynamicSystem = 0; 00084 } 00085 00086 return *this; 00087 } 00088 00089 00090 ColoredNoise* ColoredNoise::clone( ) const 00091 { 00092 return ( new ColoredNoise( *this ) ); 00093 } 00094 00095 00096 ColoredNoise* ColoredNoise::clone( uint idx 00097 ) const 00098 { 00099 if ( idx >= getDim( ) ) 00100 return 0; 00101 00102 return ( new ColoredNoise( *this ) ); 00103 } 00104 00105 00106 returnValue ColoredNoise::setDynamicSystem( const DynamicSystem& _dynamicSystem 00107 ) 00108 { 00109 if( dynamicSystem != 0 ) 00110 *dynamicSystem = _dynamicSystem; 00111 else 00112 dynamicSystem = new DynamicSystem( _dynamicSystem ); 00113 00114 return SUCCESSFUL_RETURN; 00115 } 00116 00117 00118 00119 returnValue ColoredNoise::init( uint seed 00120 ) 00121 { 00122 w.setZero( ); 00123 00124 setStatus( BS_READY ); 00125 return SUCCESSFUL_RETURN; 00126 } 00127 00128 00129 returnValue ColoredNoise::step( DVector& _w 00130 ) 00131 { 00132 return ACADOERROR( RET_NOT_YET_IMPLEMENTED ); 00133 } 00134 00135 00136 00137 returnValue ColoredNoise::step( VariablesGrid& _w 00138 ) 00139 { 00140 return ACADOERROR( RET_NOT_YET_IMPLEMENTED ); 00141 } 00142 00143 00144 CLOSE_NAMESPACE_ACADO 00145 00146 // end of file.