- Switched motor to hdb
- Changes to Hipadaba - Added project to histogram memory code - Started regression testing code - Added hill climbing as optimization method to optimise
This commit is contained in:
23
hipadaba.c
23
hipadaba.c
@@ -270,9 +270,9 @@ hdbValue makeHdbValue(int datatype, int length){
|
||||
case HIPINTAR:
|
||||
case HIPINTVARAR:
|
||||
val.arrayLength = length;
|
||||
val.v.intArray = malloc(length*sizeof(long));
|
||||
val.v.intArray = malloc(length*sizeof(int));
|
||||
if(val.v.intArray != NULL){
|
||||
memset(val.v.intArray,0,length*sizeof(long));
|
||||
memset(val.v.intArray,0,length*sizeof(int));
|
||||
}
|
||||
break;
|
||||
case HIPFLOATAR:
|
||||
@@ -285,6 +285,7 @@ hdbValue makeHdbValue(int datatype, int length){
|
||||
break;
|
||||
case HIPTEXT:
|
||||
val.v.text = strdup("UNKNOWN");
|
||||
val.arrayLength = length;
|
||||
break;
|
||||
}
|
||||
return val;
|
||||
@@ -311,10 +312,11 @@ hdbValue MakeHdbText(char *initText){
|
||||
|
||||
result.dataType = HIPTEXT;
|
||||
result.v.text = initText;
|
||||
result.arrayLength = strlen(initText);
|
||||
return result;
|
||||
}
|
||||
/*-------------------------------------------------------------------------*/
|
||||
hdbValue MakeHdbIntArray(int length, long *data){
|
||||
hdbValue MakeHdbIntArray(int length, int *data){
|
||||
hdbValue result;
|
||||
|
||||
result.dataType = HIPINTAR;
|
||||
@@ -438,11 +440,11 @@ pHdb MakeHipadabaNode(char *name, int datatype, int length){
|
||||
case HIPINTAR:
|
||||
case HIPINTVARAR:
|
||||
pNew->value.arrayLength = length;
|
||||
pNew->value.v.intArray = malloc(length*sizeof(long));
|
||||
pNew->value.v.intArray = malloc(length*sizeof(int));
|
||||
if(pNew->value.v.intArray == NULL){
|
||||
return NULL;
|
||||
}
|
||||
memset(pNew->value.v.intArray,0,length*sizeof(long));
|
||||
memset(pNew->value.v.intArray,0,length*sizeof(int));
|
||||
break;
|
||||
case HIPFLOATAR:
|
||||
case HIPFLOATVARAR:
|
||||
@@ -454,6 +456,7 @@ pHdb MakeHipadabaNode(char *name, int datatype, int length){
|
||||
memset(pNew->value.v.floatArray,0,length*sizeof(double));
|
||||
break;
|
||||
case HIPTEXT:
|
||||
pNew->value.arrayLength = length;
|
||||
pNew->value.v.text = strdup("UNKNOWN");
|
||||
break;
|
||||
}
|
||||
@@ -463,7 +466,10 @@ pHdb MakeHipadabaNode(char *name, int datatype, int length){
|
||||
void AddHipadabaChild(pHdb parent, pHdb child){
|
||||
pHdb current = NULL, prev = NULL;
|
||||
|
||||
assert(parent != NULL && child != NULL);
|
||||
assert(parent != NULL);
|
||||
if(child == NULL){
|
||||
return;
|
||||
}
|
||||
|
||||
current = parent->child;
|
||||
child->mama = parent;
|
||||
@@ -745,11 +751,11 @@ int copyHdbValue(hdbValue *source, hdbValue *target){
|
||||
if(target->v.intArray != NULL){
|
||||
free(target->v.intArray);
|
||||
}
|
||||
target->v.intArray = malloc(source->arrayLength * sizeof(long));
|
||||
target->v.intArray = malloc(source->arrayLength * sizeof(int));
|
||||
if(target->v.intArray == NULL){
|
||||
return 0;
|
||||
}
|
||||
memset(target->v.intArray,0,source->arrayLength * sizeof(long));
|
||||
memset(target->v.intArray,0,source->arrayLength * sizeof(int));
|
||||
target->arrayLength = source->arrayLength;
|
||||
}
|
||||
for(i = 0; i < source->arrayLength; i++){
|
||||
@@ -812,4 +818,3 @@ int GetHipadabaPar(pHdb node, hdbValue *v, void *callData){
|
||||
copyHdbValue(&node->value,v);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user