Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdint.h>
- #include <string.h>
- #include <math.h>
- #include "hash.h"
- #include "bloom.h"
- #define ELEM_LENGTH 4
- #define HASH_NUMBER 10
- #define CELL_NUMBER 1048576
- void insertElem(const uint8_t* elem)
- {
- int i =1;
- k = HASH_NUMBER;
- while (i<=k)
- {
- filter[hashFunction(elem,i)] = 1;
- i++;
- }
- };
- bool checkElem(const uint8_t* elem)
- {
- int i=1;
- k = HASH_NUMBER;
- while (i<=k)
- {
- if (filter[hashFunction(elem,i)] == 0)
- {
- return false;
- }
- i++;
- }
- return true;
- };
- void buildFilter(const uint8_t** dataset)
- {
- int j=0;
- m = CELL_NUMBER;
- filter = malloc(m * sizeof(bool));
- for(;j<n;j++) {filter[j] = 0;}
- j = 0;
- for(; j< n; j++)
- {
- insertElem(dataset[j]);
- }
- };
- void selfCheck(const uint8_t** dataset, FILE* fout)
- {
- int i = 0; // true positives
- for(int j=0; j < n; j++)
- {
- if (checkElem(dataset[j]) == false)
- {
- exit(1);
- }
- else
- {
- i++;
- }
- }
- fprintf(fout,"True positives (self-check): %d\n", i);
- };
- void nonElementsCheck(const uint8_t** dataset, FILE* fout)
- {
- int i = 0; // False positives
- int k = 0; // True negatives
- int j;
- for(j=0; j < non_elements; j++)
- {
- if (checkElem(dataset[j]) == false)
- {
- k++;
- }
- else
- {
- i++;
- }
- }
- double l = 0; // tasso falsi positivi
- l = (double) i/non_elements;
- fprintf(fout,"True negatives: %d\n", k);
- fprintf(fout,"False positives: %d\n", i);
- fprintf(fout,"FPR: %.6f", l);
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement