Page MenuHomePhorge

Cross_Confidence_Validator.cpp
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

Cross_Confidence_Validator.cpp

This document is not UTF8. It was detected as ISO-8859-1 (Latin 1) and converted to UTF8 for display.
#include "Cross_Confidence_Validator.h"
#include <stdio.h>
//TODO: bproband = 0 ???
void Cross_Confidence_Validator :: initialize_cross_confidence_validator(float percentage_of_inputs_must_be_bad) {
this->percentage_of_inputs_must_be_bad = percentage_of_inputs_must_be_bad;
this->proband = 0;
}
Cross_Confidence_Validator :: Cross_Confidence_Validator(float percentage_of_inputs_must_be_bad) {
set_name(NO_NAME);
initialize_cross_confidence_validator(percentage_of_inputs_must_be_bad);
}
Cross_Confidence_Validator :: Cross_Confidence_Validator(char* name, float percentage_of_inputs_must_be_bad) {
set_name(name);
initialize_cross_confidence_validator(percentage_of_inputs_must_be_bad);
}
//TODO: FEhlerbehandlung nötig?
bool Cross_Confidence_Validator :: set_proband(unsigned int proband) {
this->proband = proband;
return true; //dummy
}
//TODO: Fehlerbehandlung, wenn proband > num_of_input
//TODO: dies sollte eine von mehreren möglichkeiten sein
bool Cross_Confidence_Validator :: cross_validate(unsigned int num_of_input, int* input, bool* input_is_valid) {
/*
printf("DRINNEN\n");
printf("input[proband] = %i, input_is_valid[proband] = %i\n", input[proband], *(input_is_valid+proband));
*/
if(input_is_valid[proband] == false) {
//printf("HIER?\n");
return false;
}
//TODO: kein hardcoded 0 ... könnte ja auch einen schlechten score bedeuten
if(input[proband] != 0) {
unsigned int num_of_valid = 0;
unsigned int num_of_not_perfect = 0;
for(unsigned int in_ix=0; in_ix<num_of_input; in_ix++) {
//printf("input_is_valid[%i] = %i\n", in_ix, input_is_valid[in_ix]);
if(input_is_valid[in_ix]) {
num_of_valid++;
if(in_ix != proband) {
//TODO: kein hardcoded 0 ... könnte ja auch einen schlechten score bedeuten
if(input[in_ix] != 0) {
num_of_not_perfect++;
}
}
}
}
//printf("num_of_valid = %u, num_of_not_perfect = %u, divided = %f, \% = %f\n", num_of_valid, num_of_not_perfect, (float)num_of_not_perfect/(float)num_of_valid, percentage_of_inputs_must_be_bad);
//TO CHECK: passt das?
if(num_of_valid == 0) {
return false;
}
if((float)num_of_not_perfect/(float)num_of_valid >= percentage_of_inputs_must_be_bad) {
return true;
} else {
return false;
}
} else {
//printf("gib true zurück\n");
return true;
}
}

File Metadata

Mime Type
text/x-c
Expires
Sat, Aug 29, 3:21 PM (1 d, 15 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
375917
Default Alt Text
Cross_Confidence_Validator.cpp (2 KB)

Event Timeline