Commit 1c1a30b3 authored by Jakub Klinkovský's avatar Jakub Klinkovský
Browse files

Fixed formatting with clang-format

parent 8b58f8cb
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -16,7 +16,8 @@ namespace TNL {
 * https://arxiv.org/pdf/1609.04747.pdf
 *
 */
template< typename Vector, typename SolverMonitor =  IterativeSolverMonitor< typename Vector::RealType, typename Vector::IndexType > >
template< typename Vector,
          typename SolverMonitor = IterativeSolverMonitor< typename Vector::RealType, typename Vector::IndexType > >
class AdaGrad : public IterativeSolver< typename Vector::RealType, typename Vector::IndexType, SolverMonitor >
{
public:
@@ -45,11 +46,9 @@ public:
   solve( VectorView& w, GradientGetter&& getGradient );

protected:

   RealType relaxation = 1.0, epsilon = 1.0e-8;

   VectorType gradient, a;

};

}  // namespace Optimization
+18 −22
Original line number Diff line number Diff line
@@ -12,11 +12,9 @@ namespace TNL {
namespace Solvers {
namespace Optimization {


template< typename Vector, typename SolverMonitor >
void
AdaGrad< Vector, SolverMonitor >::
configSetup( Config::ConfigDescription& config, const String& prefix )
AdaGrad< Vector, SolverMonitor >::configSetup( Config::ConfigDescription& config, const String& prefix )
{
   IterativeSolver< RealType, IndexType, SolverMonitor >::configSetup( config, prefix );
   config.addEntry< double >( prefix + "relaxation", "Relaxation parameter for the gradient descent.", 1.0 );
@@ -24,8 +22,7 @@ configSetup( Config::ConfigDescription& config, const String& prefix )

template< typename Vector, typename SolverMonitor >
bool
AdaGrad< Vector, SolverMonitor >::
setup( const Config::ParameterContainer& parameters, const String& prefix )
AdaGrad< Vector, SolverMonitor >::setup( const Config::ParameterContainer& parameters, const String& prefix )
{
   this->setRelaxation( parameters.getParameter< double >( prefix + "relaxation" ) );
   return IterativeSolver< RealType, IndexType, SolverMonitor >::setup( parameters, prefix );
@@ -33,16 +30,14 @@ setup( const Config::ParameterContainer& parameters, const String& prefix )

template< typename Vector, typename SolverMonitor >
void
AdaGrad< Vector, SolverMonitor >::
setRelaxation( const RealType& lambda )
AdaGrad< Vector, SolverMonitor >::setRelaxation( const RealType& lambda )
{
   this->relaxation = lambda;
}

template< typename Vector, typename SolverMonitor >
auto
AdaGrad< Vector, SolverMonitor >::
getRelaxation() const -> const RealType&
AdaGrad< Vector, SolverMonitor >::getRelaxation() const -> const RealType&
{
   return this->relaxation;
}
@@ -50,8 +45,7 @@ getRelaxation() const -> const RealType&
template< typename Vector, typename SolverMonitor >
template< typename GradientGetter >
bool
AdaGrad< Vector, SolverMonitor >::
solve( VectorView& w, GradientGetter&& getGradient )
AdaGrad< Vector, SolverMonitor >::solve( VectorView& w, GradientGetter&& getGradient )
{
   this->gradient.setLike( w );
   this->a.setLike( w );
@@ -67,15 +61,17 @@ solve( VectorView& w, GradientGetter&& getGradient )

   /////
   // Start the main loop
   while( 1 )
   {
   while( 1 ) {
      /////
      // Compute the gradient
      getGradient( w_view, gradient_view );
      RealType lastResidue = this->getResidue();
      // a_i += grad_i^2
      a += gradient_view * gradient_view;
      this->setResidue( addAndReduceAbs( w_view, -this->relaxation / sqrt( this->a + this->epsilon  ) * gradient_view, TNL::Plus(), ( RealType ) 0.0 ) / ( this->relaxation * ( RealType ) w.getSize() ) );
      this->setResidue(
         addAndReduceAbs(
            w_view, -this->relaxation / sqrt( this->a + this->epsilon ) * gradient_view, TNL::Plus(), (RealType) 0.0 )
         / ( this->relaxation * (RealType) w.getSize() ) );

      if( ! this->nextIteration() )
         return this->checkConvergence();
+7 −8
Original line number Diff line number Diff line
@@ -12,7 +12,8 @@ namespace TNL {
namespace Solvers {
namespace Optimization {

template< typename Vector, typename SolverMonitor =  IterativeSolverMonitor< typename Vector::RealType, typename Vector::IndexType > >
template< typename Vector,
          typename SolverMonitor = IterativeSolverMonitor< typename Vector::RealType, typename Vector::IndexType > >
class GradientDescent : public IterativeSolver< typename Vector::RealType, typename Vector::IndexType, SolverMonitor >
{
public:
@@ -41,11 +42,9 @@ public:
   solve( VectorView& w, GradientGetter&& getGradient );

protected:

   RealType relaxation = 1.0;

   VectorType gradient;

};

}  // namespace Optimization
+16 −22
Original line number Diff line number Diff line
@@ -12,11 +12,9 @@ namespace TNL {
namespace Solvers {
namespace Optimization {


template< typename Vector, typename SolverMonitor >
void
GradientDescent< Vector, SolverMonitor >::
configSetup( Config::ConfigDescription& config, const String& prefix )
GradientDescent< Vector, SolverMonitor >::configSetup( Config::ConfigDescription& config, const String& prefix )
{
   IterativeSolver< RealType, IndexType, SolverMonitor >::configSetup( config, prefix );
   config.addEntry< double >( prefix + "relaxation", "Relaxation parameter for the gradient descent.", 1.0 );
@@ -24,8 +22,7 @@ configSetup( Config::ConfigDescription& config, const String& prefix )

template< typename Vector, typename SolverMonitor >
bool
GradientDescent< Vector, SolverMonitor >::
setup( const Config::ParameterContainer& parameters, const String& prefix )
GradientDescent< Vector, SolverMonitor >::setup( const Config::ParameterContainer& parameters, const String& prefix )
{
   this->setRelaxation( parameters.getParameter< double >( prefix + "relaxation" ) );
   return IterativeSolver< RealType, IndexType, SolverMonitor >::setup( parameters, prefix );
@@ -33,16 +30,14 @@ setup( const Config::ParameterContainer& parameters, const String& prefix )

template< typename Vector, typename SolverMonitor >
void
GradientDescent< Vector, SolverMonitor >::
setRelaxation( const RealType& lambda )
GradientDescent< Vector, SolverMonitor >::setRelaxation( const RealType& lambda )
{
   this->relaxation = lambda;
}

template< typename Vector, typename SolverMonitor >
auto
GradientDescent< Vector, SolverMonitor >::
getRelaxation() const -> const RealType&
GradientDescent< Vector, SolverMonitor >::getRelaxation() const -> const RealType&
{
   return this->relaxation;
}
@@ -50,8 +45,7 @@ getRelaxation() const -> const RealType&
template< typename Vector, typename SolverMonitor >
template< typename GradientGetter >
bool
GradientDescent< Vector, SolverMonitor >::
solve( VectorView& w, GradientGetter&& getGradient )
GradientDescent< Vector, SolverMonitor >::solve( VectorView& w, GradientGetter&& getGradient )
{
   this->gradient.setLike( w );
   auto gradient_view = gradient.getView();
@@ -65,13 +59,13 @@ solve( VectorView& w, GradientGetter&& getGradient )

   /////
   // Start the main loop
   while( 1 )
   {
   while( 1 ) {
      /////
      // Compute the gradient
      getGradient( w_view, gradient_view );
      RealType lastResidue = this->getResidue();
      this->setResidue( addAndReduceAbs( w_view, -this->relaxation * gradient_view, TNL::Plus(), ( RealType ) 0.0 ) / ( this->relaxation * ( RealType ) w.getSize() ) );
      this->setResidue( addAndReduceAbs( w_view, -this->relaxation * gradient_view, TNL::Plus(), (RealType) 0.0 )
                        / ( this->relaxation * (RealType) w.getSize() ) );

      if( ! this->nextIteration() )
         return this->checkConvergence();
+7 −8
Original line number Diff line number Diff line
@@ -12,7 +12,8 @@ namespace TNL {
namespace Solvers {
namespace Optimization {

template< typename Vector, typename SolverMonitor =  IterativeSolverMonitor< typename Vector::RealType, typename Vector::IndexType > >
template< typename Vector,
          typename SolverMonitor = IterativeSolverMonitor< typename Vector::RealType, typename Vector::IndexType > >
class Momentum : public IterativeSolver< typename Vector::RealType, typename Vector::IndexType, SolverMonitor >
{
public:
@@ -47,11 +48,9 @@ public:
   solve( VectorView& w, GradientGetter&& getGradient );

protected:

   RealType relaxation = 1.0, momentum = 0.9;

   VectorType gradient, v;

};

}  // namespace Optimization
Loading