Listing 2 C Code to Implement Dempster's Rule of Combination

     /*
     *   This is the function that implements dempster's rule
     *   of combination.
     *   vector1 & vector2 are belief vectors. vector2 will
     *   hold the result of the combination.
     */
#define LENGTH_OF_BELIEF_VECTOR 8

combine_using_dempsters_rule (vector1, vector2)
     float vector1[LENGTH_OF_BELIEF_VECTOR],
          vector2[LENGTH_OF_BELIEF_VECTOR];
{
float denominator, sum_vector[LENGTH_OF_BELIEF_VECTOR];

int a, i, place;

/* set the sums to zero */
for(i=0; i<LENGTH_OF_BELIEF_VECTOR; i++)
    sum_vector[i] = 0.0;

/*   Now go through the intersection tableau.
*    Look for the intersection of non-zero beliefs
*    and save their products. */

for(a=1; a<LENGTH_OF_BELIEF_VECTOR; a++){

    if(vector2[a] > 0.0){

        for(i=0; i<LENGTH_OF_BELIEF_VECTOR; i++){
            place = i & a;
            if(vector1[i] > 0.0)
               sum_vector[place] = (vector1[i] * vector2[a])
                                    + sum_vector[place];
        }    /* ends loop over i */

    }    /* ends if vector2[a] > 0.0 */

}    /* ends loop over a */

denominator = 1.0 - sum_vector[0];
for(i=1; i<LENGTH_OF_BELIEF_VECTOR; i++)
    vectorl[i] = sum_vector[i]/demoninator;

}    /* ends combine_using_dempsters_rule */