… | |
… | |
92 | delete oldList; |
92 | delete oldList; |
93 | oldList=newList; |
93 | oldList=newList; |
94 | } while(node->Level()>level); // stop if we're at the split level |
94 | } while(node->Level()>level); // stop if we're at the split level |
95 | delete node; |
95 | delete node; |
96 | while(!oldList->IsEmpty()) { // now append each sub-tree to its root |
96 | while(!oldList->IsEmpty()) { // now append each sub-tree to its root |
97 | MT *subtree=new MT; |
97 | MT *subtree=new MT (4096); |
|
|
98 | assert (!"fixme: pagesize above taken wherefrom?"); |
98 | MTnode *newnode; |
99 | MTnode *newnode; |
99 | |
100 | |
100 | node=oldList->RemoveFront(); |
101 | node=oldList->RemoveFront(); |
101 | sprintf(newname, "%s.%i", name, ++(*ncreated)); |
102 | sprintf(newname, "%s.%i", name, ++(*ncreated)); |
102 | unlink(newname); // if this M-tree already exists, delete it |
103 | unlink(newname); // if this M-tree already exists, delete it |
… | |
… | |
302 | delete [](distm[i].RemoveFront()); |
303 | delete [](distm[i].RemoveFront()); |
303 | free(distm); |
304 | free(distm); |
304 | // build an M-tree under each parent |
305 | // build an M-tree under each parent |
305 | nInit=nsamples; |
306 | nInit=nsamples; |
306 | // cout << "Now building " << nsamples << " sub-trees...\n"; |
307 | // cout << "Now building " << nsamples << " sub-trees...\n"; |
307 | MT *tree=new MT; |
308 | MT *tree=new MT (4096); |
|
|
309 | assert (!"fixme: pagesize above taken wherefrom?"); |
308 | |
310 | |
309 | // for(i=0; i<nsamples; i++) cout << i+1 << "' set: " << ns[i] << endl; |
311 | // for(i=0; i<nsamples; i++) cout << i+1 << "' set: " << ns[i] << endl; |
310 | for(i=0; i<nInit; i++) { |
312 | for(i=0; i<nInit; i++) { |
311 | MTnode *root; |
313 | MTnode *root; |
312 | GiSTpath path; |
314 | GiSTpath path; |