Reinitializes a byte array to the given value in an optimized way: byteArraySet : Byte Array « File Stream « C# / C Sharp






Reinitializes a byte array to the given value in an optimized way: byteArraySet

     

/*
* CVS identifier:
*
* $Id: ArrayUtil.java,v 1.10 2000/09/05 09:25:15 grosbois Exp $
*
* Class:                   ArrayUtil
*
* Description:             Utillities for arrays.
*
*
*
* COPYRIGHT:
* 
* This software module was originally developed by Raphal Grosbois and
* Diego Santa Cruz (Swiss Federal Institute of Technology-EPFL); Joel
* Askelf (Ericsson Radio Systems AB); and Bertrand Berthelot, David
* Bouchard, Flix Henry, Gerard Mozelle and Patrice Onno (Canon Research
* Centre France S.A) in the course of development of the JPEG2000
* standard as specified by ISO/IEC 15444 (JPEG 2000 Standard). This
* software module is an implementation of a part of the JPEG 2000
* Standard. Swiss Federal Institute of Technology-EPFL, Ericsson Radio
* Systems AB and Canon Research Centre France S.A (collectively JJ2000
* Partners) agree not to assert against ISO/IEC and users of the JPEG
* 2000 Standard (Users) any of their rights under the copyright, not
* including other intellectual property rights, for this software module
* with respect to the usage by ISO/IEC and Users of this software module
* or modifications thereof for use in hardware or software products
* claiming conformance to the JPEG 2000 Standard. Those intending to use
* this software module in hardware or software products are advised that
* their use may infringe existing patents. The original developers of
* this software module, JJ2000 Partners and ISO/IEC assume no liability
* for use of this software module or modifications thereof. No license
* or right to this software module is granted for non JPEG 2000 Standard
* conforming products. JJ2000 Partners have full right to use this
* software module for his/her own purpose, assign or donate this
* software module to any third party and to inhibit third parties from
* using this software module for non JPEG 2000 Standard conforming
* products. This copyright notice must be included in all copies or
* derivative works of this software module.
* 
* Copyright (c) 1999/2000 JJ2000 Partners.
* 
* 
* 
*/
using System;
namespace CSJ2K.j2k.util
{
  
  /// <summary> This class contains a colleaction of utility static methods for arrays.
  /// 
  /// </summary>
  public class ArrayUtil
  {
    
    /// <summary>The maximum array size to do element by element copying, larger
    /// arrays are copyied in a n optimized way. 
    /// </summary>
    public const int MAX_EL_COPYING = 8;
    
    /// <summary>The number of elements to copy initially in an optimized array copy </summary>
    public const int INIT_EL_COPYING = 4;
    
    /// <summary> Reinitializes a byte array to the given value in an optimized way. If
    /// the length of the array is less than MAX_EL_COPYING, then the array
    /// is set element by element in the normal way, otherwise the first
    /// INIT_EL_COPYING elements are set element by element and then
    /// System.arraycopy is used to set the other parts of the array.
    /// 
    /// </summary>
    /// <param name="arr">The array to set.
    /// 
    /// </param>
    /// <param name="val">The value to set the array to.
    /// 
    /// 
    /// 
    /// </param>
    public static void  byteArraySet(byte[] arr, byte val)
    {
      int i, len, len2;
      
      len = arr.Length;
      // Set array to 'val' in an optimized way
      if (len < MAX_EL_COPYING)
      {
        // Not worth doing optimized way
        for (i = len - 1; i >= 0; i--)
        {
          // Set elements
          arr[i] = val;
        }
      }
      else
      {
        // Do in optimized way
        len2 = len >> 1;
        for (i = 0; i < INIT_EL_COPYING; i++)
        {
          // Set first elements
          arr[i] = val;
        }
        for (; i <= len2; i <<= 1)
        {
          // Copy values doubling size each time
          Array.Copy(arr, 0, arr, i, i);
        }
        if (i < len)
        {
          // Copy values to end
          Array.Copy(arr, 0, arr, i, len - i);
        }
      }
    }
  }
}

   
    
    
    
    
  








Related examples in the same category

1.Convert a byte array to string using default encoding
2.Get the byte array from a string using default encoding
3.Write a byte array to a file
4.Read byte array from file
5.Read Stream to Byte array
6.Save Byte Array To File
7.Bit Array To Byte Array
8.Bit Array To Byte Array (2)
9.Checks if the input byte array contains only safe values, the data does not need to be encoded for use with LDIF
10.Convert byte array into a string
11.Byte Array To String
12.Bytes To Formatted String
13.Get string from byte array
14.Reads a file into a byte array
15.Read entire stream into a byte array
16.Read Stream to fill the byte array
17.Convert to easy-to-read byte value
18.Conversions between complex types and byte arrays.
19.Search a byte array for a sub byte array
20.Append various data types to byte array
21.Convert a byte array to an Object.
22.Compares the values of two byte arrays, and returns true only if every array member is identical
23.Convert an object to a byte array.
24.Bytes Equal
25.Compare Bytes
26.Pad bytes.
27.Bytes To Comma Separated List
28.Compare Byte Array Elements
29.Byte Arrays Are Equal
30.Converts a number of bytes into a more easily read form.
31.Int to byte array converter
32.Compares up to n elements of byte array a[] against byte array b[].
33.Utility method to compare two byte arrays for equality
34.Swap Byte Order
35.Get bytes and read bytes
36.Copy as much data as possible for a read operation.