Reinitializes an int array to the given value in an optimized way: intArraySet : Array Util « Collections Data Structure « C# / C Sharp






Reinitializes an int array to the given value in an optimized way: intArraySet

  

/*
* 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 an int 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  intArraySet(int[] arr, int 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.Return the average of the given values
2.Return the percentage of a given value.
3.return the min value in the list of double
4.return the max value in the list of double
5.Returns a string representation of the sbyte array
6.Returns a string representation of the char array
7.Returns a string representation of the double array
8.Returns a string representation of the float array
9.Returns a string representation of the int array
10.Returns a string representation of the long array
11.Returns a string representation of the object array
12.Returns a string representation of the short value array
13.Returns a string representation of the bool value array
14.Ensures that the sbyte array cannot hold more than maxCapacity elements.
15.Ensures that the char array cannot hold more than maxCapacity elements.
16.Ensures that the double array cannot hold more than maxCapacity elements.
17.Ensures that the float array cannot hold more than maxCapacity elements.
18.Ensures that the int array cannot hold more than maxCapacity elements.
19.Ensures that the long array cannot hold more than maxCapacity elements.
20.Ensures that the object array cannot hold more than maxCapacity elements.
21.Ensures that the short array cannot hold more than maxCapacity elements.
22.Ensures that the bool array cannot hold more than maxCapacity elements.
23.Copy an array into another array.
24.Swap two elements in a array
25.Generic Growable Array
26.foreach is used to display the contents of an array of integers.
27.Are two arrays equal.
28.Are thos two arrays having the save contents
29.Convert object array to string
30.Get array size
31.Convert array content to generic type array
32.Searches for the specified object and returns the index of the first occurrence within the entire one-dimensional System.Array.
33.Creates a new array with just the specified elements.
34.Array 2D
35.Get a array of object from a enum datatype.
36.Returns a Boolean indicating whether the Array is Empty (is Null or has a length of zero).
37.Places elements from an enumerable into an array.
38.Bit Array 2D
39.Counting the distribution of the values in an array.
40.Collection of static methods for operations on arrays
41.Char Array Writer
42.Computes the indices
43.Compare Array
44.Remove element from Array
45.Concatenate Array
46.Get the array slice between the two indexes
47.Find subarray in the source array.
48.Check if the array contains needle on specified position