sales@scenomics.com +1 650 396 9674


Release details are described below:

Change Log
Added support for <ExperimentalAlgorithms> and <TypedIterator> objects. This is a limited feature preview and not meant for production use. For example:

   // In some SSL library:

   int a_nSrcCnt = 10;
   int a_nSrcPos = 0;

   int a_nDstCnt = 10;
   int a_nDstPos = 3;

   LibFloat32ArrayAlgorithms.CopyFloat32ArrayToFloat32Array(
      a_nSrcCnt, a_nSrcPos, a_nDstCnt, a_nDstPos );

   Implementation of CopyFloat32ArrayToFloat32Array() is as follows:

   string a_sFunc = Script.Runtime.CurrentFunction.Name;
   Console.Out( "Executing: " + a_sFunc );

   // Create source data.
   auto Int32Array src;
   src.Count = p_nSrcCount;

   auto Float32Iterator a_itSrcF = ExpInt32ArrayAlgorithms.First( src );
   auto Float32Iterator a_itSrcL = ExpInt32ArrayAlgorithms.Last( src );

   // Fill the source data with values.
   ExpInt32ArrayAlgorithms.Iota( a_itSrcF, a_itSrcL, 1 );

   // Alter iterator position to change the destination
   // range we'll submit to the copy algorithm below.
   a_itSrcF.Position = p_nSrcPos;

   LibFloat32Array.Out( src );
   //Console.Out( src.GetCount() );

   // Create destination data.
   int a_nCount = p_nDstCount;
   auto Float32Array dst;
   dst.Count = p_nDstCount;

   auto Float32Iterator a_itDstF = ExpFloat32ArrayAlgorithms.First( dst );
   auto Float32Iterator a_itDstL = ExpFloat32ArrayAlgorithms.Last( dst );

   // Alter iterator position to change the destination
   // range we'll submit to the copy algorithm below.
   a_itDstF.Position = 0;

   // Begin performance profiling here.
   int a_nStartTickCount = LibAppServicePerformance.Start();

   auto Float32Iterator a_itValue;
   a_itValue.Data = 0.0;
   ExpFloat32ArrayAlgorithms.Fill( a_itDstF, a_itDstL, a_itValue );
   ExpFloat32ArrayAlgorithms.Copy( a_itDstF, a_itDstL, a_itSrcF );

   PrintPerf( a_nStartTickCount, a_sFunc );

   LibFloat32Array.Out( dst );
   //Console.Out( dst.GetCount() );

   Console.Out( "" );