File: ngbitarray.cpp

package info (click to toggle)
netgen 6.2.2601%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,076 kB
  • sloc: cpp: 166,627; tcl: 6,310; python: 2,868; sh: 528; makefile: 90
file content (85 lines) | stat: -rw-r--r-- 1,603 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/**************************************************************************/
/* File:   bitarray.cc                                                    */
/* Autho: Joachim Schoeberl                                              */
/* Date:   01. Jun. 95                                                    */
/**************************************************************************/

/* 
   data type NgBitArray
*/

#include <mystdlib.h>
#include <myadt.hpp>


namespace netgen
{
  //using namespace netgen;

  NgBitArray :: NgBitArray ()
  {
    size = 0;
    data = NULL;
  }

  NgBitArray :: NgBitArray (int asize)
  {
    size = 0;
    data = NULL;
    SetSize (asize);
  }

  NgBitArray :: ~NgBitArray ()
  {
    delete [] data;
  }

  void NgBitArray :: SetSize (int asize)
  {
    if (size == asize) return;
    delete [] data;

    size = asize;
    data = new unsigned char [Addr (size)+1];
  }

  void NgBitArray :: Set ()
  {
    if (!size) return;
    for (int i = 0; i <= Addr (size); i++)
      data[i] = UCHAR_MAX;
  }

  void NgBitArray :: Clear ()
  {
    if (!size) return;
    for (int i = 0; i <= Addr (size); i++)
      data[i] = 0;
  }



  void NgBitArray :: Invert ()
  {
    if (!size) return;
    for (int i = 0; i <= Addr (size); i++)
      data[i] ^= 255;
  }

  void NgBitArray :: And (const NgBitArray & ba2)
  {
    if (!size) return;
    for (int i = 0; i <= Addr (size); i++)
      data[i] &= ba2.data[i];
  }


  void NgBitArray :: Or (const NgBitArray & ba2)
  {
    if (!size) return;
    for (int i = 0; i <= Addr (size); i++)
      data[i] |= ba2.data[i];
  }


}