ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/Exclude.cpp
Revision: 431
Committed: Thu Mar 27 22:16:27 2003 UTC (21 years, 3 months ago) by mmeineke
File size: 1405 byte(s)
Log Message:
fixed a bug where excludes were not being initialized

File Contents

# User Rev Content
1 mmeineke 431 #include <iostream>
2 mmeineke 408 #include <cstdlib>
3    
4 mmeineke 431
5 mmeineke 408 #include "Exclude.hpp"
6    
7 mmeineke 413 int Exclude::nExcludes;
8 mmeineke 428 int* Exclude::exPairs;
9 mmeineke 408
10 gezelter 410 Exclude::Exclude( int theIndex ){
11     exI = theIndex*2;
12     exJ = theIndex*2 + 1;
13 mmeineke 408 }
14    
15 mmeineke 412 void Exclude::createArray( int the_nExcludes ){
16    
17     nExcludes = the_nExcludes;
18 mmeineke 431 std::cerr << "nExcludes = " << nExcludes << "\n";
19 gezelter 410 exPairs = new int[nExcludes*2];
20 mmeineke 408 }
21    
22 gezelter 410 void Exclude::destroyArray( void ){
23     delete[] exPairs;
24 mmeineke 408 }
25    
26     void Exclude::setPair( int i, int j ){
27 gezelter 410 exPairs[exI] = i;
28     exPairs[exJ] = j;
29     }
30 mmeineke 408
31 gezelter 410 void Exclude::addExcludePairs(int nAdded, int* AexPairs) {
32     int nNew = nExcludes + nAdded;
33    
34     int* new_exPairs = new int[nNew*2];
35     int i, j;
36    
37     for (i = 0; i < 2*nExcludes; i++) {
38     new_exPairs[i] = exPairs[i];
39     }
40    
41     for (i=0; i < 2*nAdded; i++) {
42     j = i + 2*nExcludes;
43     new_exPairs[j] = AexPairs[i];
44     }
45    
46     delete[] exPairs;
47    
48     exPairs = new_exPairs;
49    
50     nExcludes = nNew;
51 mmeineke 408 }
52 gezelter 410
53     void Exclude::deleteExcludePair(int theIndex) {
54     deleteRange(theIndex, theIndex);
55     }
56    
57     void Exclude::deleteRange(int startIndex, int stopIndex) {
58    
59     int nNew = nExcludes - (stopIndex - startIndex + 1);
60     int* new_exPairs = new int[nNew*2];
61     int i, j;
62    
63     for (i=0; i < 2*startIndex; i++) {
64     new_exPairs[i] = exPairs[i];
65     }
66     for(i=2*(stopIndex+1); i < 2*nExcludes; i++) {
67     j = i-2*startIndex + 1;
68     new_exPairs[j] = exPairs[i];
69     }
70    
71     delete[] exPairs;
72    
73     exPairs = new_exPairs;
74     nExcludes = nNew;
75     }