Changeset: b5fccf1949f3 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b5fccf1949f3
Modified Files:
monetdb5/extras/crackers/crackers.mx
monetdb5/extras/crackers/crackers_holistic.c
monetdb5/extras/crackers/crackers_holistic.h
monetdb5/extras/crackers/crackers_selecthol_ops.mx
Branch: holindex
Log Message:
Compilation errors fix.
diffs (206 lines):
diff --git a/monetdb5/extras/crackers/crackers.mx
b/monetdb5/extras/crackers/crackers.mx
--- a/monetdb5/extras/crackers/crackers.mx
+++ b/monetdb5/extras/crackers/crackers.mx
@@ -280,15 +280,11 @@ address CRKthetaselecthol_@2
comment "Retrieve the subset using a cracker
index producing preferably a BATview.";
-command initFrequencyStruct(b:bat[:any_1,:@2]):void
-address CRKinitFrequencyStruct_@2
+@
+command initFrequencyStruct(b:bat[:any,:any]):void
+address CRKinitFrequencyStruct
comment "Initialize the struct(lifo) with zero values.";
-command selectNode(l:int,h:int):void
-address CRKselectNode
-comment "Select node/BAT to crack (randomly).";
-
-@
@= Index
command printCrackerIndexBATpart(b:bat[:any_1,:@2]):void
address CRKprintCrackerIndexBATpart
diff --git a/monetdb5/extras/crackers/crackers_holistic.c
b/monetdb5/extras/crackers/crackers_holistic.c
--- a/monetdb5/extras/crackers/crackers_holistic.c
+++ b/monetdb5/extras/crackers/crackers_holistic.c
@@ -12,7 +12,7 @@ existsFrequencyStruct(FrequencyNode* hea
return 1;
}
FrequencyNode*
-createFrequencyStruct()
+createFrequencyStruct(void)
{
FrequencyNode *x;
x=(FrequencyNode *) GDKmalloc(sizeof(FrequencyNode));
@@ -70,6 +70,26 @@ searchBAT(FrequencyNode* head,int bat_id
}
return temp;
}
+int
+findMax(FrequencyNode* head)
+{
+ FrequencyNode* temp;
+ double tmpW;
+ int bat;
+ temp=head->next;
+ tmpW=temp->weight;
+ bat=temp->bid;
+ while(temp!=NULL)
+ {
+ if(temp->weight > tmpW)
+ {
+ tmpW=temp->weight;
+ bat=temp->bid;
+ }
+ temp=temp->next;
+ }
+ return bat;
+}
double
changeWeight(FrequencyNode* node,int N,int L1)
{
@@ -79,8 +99,9 @@ changeWeight(FrequencyNode* node,int N,i
p = 2 * (node->c);
Sp =((double)N)/p;
d = ABS(Sp - L1);
+ fprintf(stderr,"p=%d Sp=%lf d=%lf\n",p,Sp,d);
node->weight = ((node->f2)/(node->f1)) * d;
-
+ fprintf(stderr,"W=%lf\n",node->weight);
return node->weight;
}
diff --git a/monetdb5/extras/crackers/crackers_holistic.h
b/monetdb5/extras/crackers/crackers_holistic.h
--- a/monetdb5/extras/crackers/crackers_holistic.h
+++ b/monetdb5/extras/crackers/crackers_holistic.h
@@ -1,22 +1,37 @@
#ifndef _CRACKERS_HOLISTIC_H_
#define _CRACKERS_HOLISTIC_H_
+
+
+#ifdef WIN32
+#ifndef LIBCRACKERS
+#define holistic_export extern __declspec(dllimport)
+#else
+#define holistic_export extern __declspec(dllexport)
+#endif
+#else
+#define holistic_export extern
+#endif
+
+
typedef struct frequency{
int bid; /* The base BAT */
-
int c; /*number of times the column was
cracked*/
int f1; /*number of queries that triggered
cracking*/
int f2; /*number of queries that did not
trigger cracking(because the value already existed in the index)*/
double weight;
struct frequency *next;
+
}FrequencyNode;
-int existsFrequencyStruct(FrequencyNode* head);
-FrequencyNode* createFrequencyStruct();
-FrequencyNode* push(int bat_id,FrequencyNode* head);
-FrequencyNode* pop(FrequencyNode* head);
-void printFrequencyStruct(FrequencyNode* head);
-FrequencyNode* searchBAT(FrequencyNode* head,int bat_id);
-double changeWeight(FrequencyNode* node,int N,int L1);
+holistic_export int existsFrequencyStruct(FrequencyNode* head);
+holistic_export FrequencyNode* createFrequencyStruct(void);
+holistic_export FrequencyNode* push(int bat_id,FrequencyNode* head);
+holistic_export FrequencyNode* pop(FrequencyNode* head);
+holistic_export void printFrequencyStruct(FrequencyNode* head);
+holistic_export FrequencyNode* searchBAT(FrequencyNode* head,int bat_id);
+holistic_export double changeWeight(FrequencyNode* node,int N,int L1);
+holistic_export int findMax(FrequencyNode* head);
+
#endif /*crackers_holistic*/
diff --git a/monetdb5/extras/crackers/crackers_selecthol_ops.mx
b/monetdb5/extras/crackers/crackers_selecthol_ops.mx
--- a/monetdb5/extras/crackers/crackers_selecthol_ops.mx
+++ b/monetdb5/extras/crackers/crackers_selecthol_ops.mx
@@ -63,8 +63,9 @@ crackers_export str CRKselecthol_@1(int
crackers_export str CRKuselecthol_@1(int *vid, int *bid, @1 *low, @1 *hgh);
crackers_export str CRKthetaselecthol_@1(int *vid, int *bid, @1 *val, str *op);
crackers_export str CRKthetauselecthol_@1(int *vid, int *bid, @1 *val, str
*op);
-crackers_export str CRKinitFrequencyStruct_@1(int *vid,int *bid);
@
+crackers_export str CRKinitFrequencyStruct(int *vid,int *bid);
+
@c
/*
* @+ Implementation
@@ -214,9 +215,15 @@ CRKthetauselecthol_@1(int *vid, int *bid
return CRKuselectholBounds_@1(vid, bid, low, high, &lin, &rin);
}
+
+
+@
+
str
CRKinitFrequencyStruct_@1(int *vid,int *bid)
{
+ FrequencyNode* new_node;
+
fprintf(stderr,"BAT_ID=%d\n",*bid);
if (FrequencyStruct == NULL)
{
@@ -225,15 +232,12 @@ CRKinitFrequencyStruct_@1(int *vid,int *
}
- FrequencyNode* new_node;
new_node=push(*bid,FrequencyStruct);
fprintf(stderr,"Bid=%d c=%d f1=%d f2=%d weight=%lf
\n",new_node->bid,new_node->c,new_node->f1,new_node->f2,new_node->weight);
return MAL_SUCCEED;
}
-
-@
* @- Local support functions and macros
@= crkThreeTree
@@ -323,20 +327,18 @@ createView:
int countBatElements;
int L1=3072; /*KiloBytes*/
-
+ int maxWB=0;
+
+ /*k and randomoid are used for DD1R*/
+ @1 k,temp_h;
FrequencyNode* FN;
FN=searchBAT(FrequencyStruct,*bid);
FN->c = FN->c + 1;
fprintf(stderr,"FN->bid=%d\n",FN->bid);
-
-
- /*k and randomoid are used for DD1R*/
- @1 k,temp_h;
-
fprintf(stderr,"This is from selcrack_HOL operators\n");
- fprintf(stderr,"BBPsize=%d\n",BBPsize);
+ fprintf(stderr,"BBPsize=%d maxWB=%d",BBPsize,maxWB);
if (@2_GT(low,hgh,@3@1))
throw(MAL, "crackers.crack", "illegal range");
@@ -580,10 +582,10 @@ createView:
FN->f2 = FN->f2 +1;
}
countBatElements=BATcount(b);
- fprintf(stderr,"BATcount(b)=%d",countBatElements);
+ fprintf(stderr,"BATcount(b)=%d\n",countBatElements);
FN->weight = changeWeight(FN,countBatElements,L1);
printFrequencyStruct(FrequencyStruct);
-
+ maxWB=findMax(FrequencyStruct);
@:CreateResult()@
return MAL_SUCCEED;
@
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list