Commit ad7ddcf3 authored by Jakub Klinkovský's avatar Jakub Klinkovský
Browse files

Refactoring: renamed StaticFor to UnrolledFor

The main purpose of this algorithm is to do loop unrolling, not to
handle static/constant bounds. The true StaticFor will handle the
iteration indices in such a way that they can be used in constant
expressions (e.g. passed as template arguments).
parent 142c2e5c
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -6,12 +6,10 @@ ELSE()
   ADD_CUSTOM_COMMAND( COMMAND ParallelForExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/ParallelForExample.out OUTPUT ParallelForExample.out )
ENDIF()

IF( BUILD_CUDA )
ADD_CUSTOM_TARGET( RunAlgorithmsExamples-cuda ALL DEPENDS
   ParallelForExample.out
 )
ELSE()
ADD_EXECUTABLE(UnrolledForExample UnrolledForExample.cpp)
ADD_CUSTOM_COMMAND( COMMAND UnrolledForExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/UnrolledForExample.out OUTPUT UnrolledForExample.out )

ADD_CUSTOM_TARGET( RunAlgorithmsExamples ALL DEPENDS
   ParallelForExample.out
   UnrolledForExample.out
)
ENDIF()
 No newline at end of file
+7 −4
Original line number Diff line number Diff line
#include <iostream>
#include <cstdlib>
#include <TNL/Containers/StaticVector.h>
#include <TNL/Algorithms/StaticFor.h>
#include <TNL/Algorithms/UnrolledFor.h>

using namespace TNL;
using namespace TNL::Containers;
@@ -20,8 +19,12 @@ int main( int argc, char* argv[] )
   /****
    * Compute an addition of a vector and a constant number.
    */
   auto addition = [&]( int i, const double& c ) { a[ i ] = b[ i ] + c; sum += a[ i ]; };
   Algorithms::StaticFor< 0, Size >::exec( addition, 3.14 );
   auto addition = [&]( int i, const double& c )
   {
      a[ i ] = b[ i ] + c;
      sum += a[ i ];
   };
   Algorithms::UnrolledFor< 0, Size >::exec( addition, 3.14 );
   std::cout << "a = " << a << std::endl;
   std::cout << "sum = " << sum << std::endl;
}
+0 −4
Original line number Diff line number Diff line
ADD_EXECUTABLE( StaticForExample StaticForExample_ug.cpp )
ADD_CUSTOM_COMMAND( COMMAND StaticForExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/StaticForExample.out OUTPUT StaticForExample.out )

ADD_EXECUTABLE( TemplateStaticForExample TemplateStaticForExample_ug.cpp )
ADD_CUSTOM_COMMAND( COMMAND TemplateStaticForExample > ${TNL_DOCUMENTATION_OUTPUT_SNIPPETS_PATH}/TemplateStaticForExample.out OUTPUT TemplateStaticForExample.out )

ADD_CUSTOM_TARGET( ForLoops ALL DEPENDS
   StaticForExample.out
   TemplateStaticForExample.out
)
+0 −4
Original line number Diff line number Diff line
for( int i = 0; i < Size; i++ )
{
   a[ i ] = b[ i ] + c; sum += a[ i ];
};
+0 −1
Original line number Diff line number Diff line
Algorithms::StaticFor< 0, Size, true >::exec( addition, 3.14 );
 No newline at end of file
Loading