Example #1
0
static void ann_predict_meanstd(uint16_t *pixels, float mean, float std)
{
    int i, j;
    float ah[6];
    float x, x_val, y_val;

    for (i = 0; i < num_hidden; i++)  {
        ah[i] = BH(i);
    }

    uint16_t subsample;
    for (i = 0; i < num_subsample; i++) {
        subsample = pixels[i];
        x = (float)(subsample - mean) / std;

        for (j = 0; j < num_hidden; j++) {
            float wih_tmp = WIH(i, j);
            ah[j] += x * wih_tmp;
        }
    }

    x_val = BO(0);
    y_val = BO(1);

    for (i = 0; i < num_hidden; i++) {
        x_val += WHO(i, 0) * tanh_approx(ah[i]);
        y_val += WHO(i, 1) * tanh_approx(ah[i]);
    }

    // pred = global for storing prediction values
    pred[PRED_X] = (unsigned short)((x_val * 112) + 0.5);
    pred[PRED_Y] = (unsigned short)((y_val * 111) + 0.5);

    return;
}
///////////////////////////////////////////////////////////////////
// CLOSEST IN
///////////////////////////////////////////////////////////////////
Vec3f ClosestIn(Simplex& P){
	assert(P.GetSize() > 0);
	if(P.GetSize() == 1) return P.at(0);
	else if(P.GetSize() == 2){ //We have a line.
		Vector3f AO(-P.at(1)[0], -P.at(1)[1], -P.at(1)[2]);
		Vector3f AB(P.at(0)[0] - P.at(1)[0], P.at(0)[1] - P.at(1)[1], P.at(0)[2] - P.at(1)[2]);
		Vector3f BO(-P.at(0)[0], -P.at(0)[1], -P.at(0)[2]);
		float v = (AB.dot(AO))/(AB.dot(AO) + (-AB).dot(BO));
		return (P.at(1)*(1-v) + (P.at(0))*v);
	}else{//We have a triangle
		Vector3f A(P.at(2)[0], P.at(2)[1], P.at(2)[2]);
		Vector3f B(P.at(1)[0], P.at(1)[1], P.at(1)[2]);
		Vector3f C (P.at(0)[0], P.at(0)[1], P.at(0)[2]);
		Vector3f AB = B-A;
		Vector3f AC = C-A;
		Vector3f N = AB.cross(AC);
		Vector3f Nab = N.cross(AB);
		Vector3f Nac = N.cross(AC);

		float v = (-A).dot(Nac)/((AB).dot(Nac));
		float w = (-A).dot(Nab)/((AC).dot(Nab));
		float u = 1-v-w;

		return (P.at(2)*u + P.at(1)*v + P.at(0)*w);
	}
}
Example #3
0
void test_oid_and_interpolation() {
    char *oid_s = "010203040506070809101112";
    bcon oid_bc[] = { "_id", BO(""), "user_id", BO("010203040506070809101112"), "admin_id", BPO(&oid_s), BEND };
    if ( verbose ) { putchar('\t'); bcon_print( oid_bc ); putchar('\n'); }
    test_bson_from_bcon( oid_bc, BCON_OK, BSON_VALID );;
}